Skip to content

Commit ef0bce9

Browse files
authored
Merge branch 'master' into requirement-overrides
2 parents 6991437 + d9de04f commit ef0bce9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+1276
-185
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ MODULE=cwltool
2626
# `SHELL=bash` doesn't work for some, so don't use BASH-isms like
2727
# `[[` conditional expressions.
2828
PYSOURCES=$(wildcard ${MODULE}/**.py tests/*.py) setup.py
29-
DEVPKGS=pep8 diff_cover autopep8 pylint coverage pep257 flake8 pytest isort
30-
DEBDEVPKGS=pep8 python-autopep8 pylint python-coverage pep257 sloccount python-flake8
29+
DEVPKGS=pep8 diff_cover autopep8 pylint coverage pep257 flake8 pytest isort mock
30+
DEBDEVPKGS=pep8 python-autopep8 pylint python-coverage pep257 sloccount python-flake8 python-mock
3131
VERSION=1.0.$(shell date +%Y%m%d%H%M%S --date=`git log --first-parent \
3232
--max-count=1 --format=format:%cI`)
3333
mkfile_dir := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))

cwltool/expression.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ def evaluator(ex, jslib, obj, fullJS=False, timeout=None, debug=False):
144144
# type: (Text, Text, Dict[Text, Any], bool, int, bool) -> JSON
145145
m = param_re.match(ex)
146146
if m:
147+
if m.end(1)+1 == len(ex) and m.group(1) == "null":
148+
return None
147149
try:
148150
return next_seg(m.group(0)[m.end(1) - m.start(0):-1], obj[m.group(1)])
149151
except Exception as w:

cwltool/load_tool.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ def validate_document(document_loader, # type: Loader
148148
enable_dev=False, # type: bool
149149
strict=True, # type: bool
150150
preprocess_only=False, # type: bool
151-
fetcher_constructor=None
151+
fetcher_constructor=None,
152+
skip_schemas=None
152153
# type: Callable[[Dict[unicode, unicode], requests.sessions.Session], Fetcher]
153154
):
154155
# type: (...) -> Tuple[Loader, Names, Union[Dict[Text, Any], List[Dict[Text, Any]]], Dict[Text, Any], Text]
@@ -195,9 +196,10 @@ def validate_document(document_loader, # type: Loader
195196
raise avsc_names
196197

197198
processobj = None # type: Union[CommentedMap, CommentedSeq, unicode]
199+
198200
document_loader = Loader(sch_document_loader.ctx, schemagraph=sch_document_loader.graph,
199201
idx=document_loader.idx, cache=sch_document_loader.cache,
200-
fetcher_constructor=fetcher_constructor)
202+
fetcher_constructor=fetcher_constructor, skip_schemas=skip_schemas)
201203

202204
_add_blank_ids(workflowobj)
203205

cwltool/main.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@ def arg_parser(): # type: () -> argparse.ArgumentParser
141141
exgroup.add_argument("--non-strict", action="store_false", help="Lenient validation (ignore unrecognized fields)",
142142
default=True, dest="strict")
143143

144+
parser.add_argument("--skip-schemas", action="store_true",
145+
help="Skip loading of schemas", default=True, dest="skip_schemas")
146+
144147
exgroup = parser.add_mutually_exclusive_group()
145148
exgroup.add_argument("--verbose", action="store_true", help="Default logging")
146149
exgroup.add_argument("--quiet", action="store_true", help="Only print warnings and errors.")
@@ -641,6 +644,7 @@ def main(argsl=None, # type: List[str]
641644
'enable_dev': False,
642645
'enable_ext': False,
643646
'strict': True,
647+
'skip_schemas': False,
644648
'rdf_serializer': None,
645649
'basedir': None,
646650
'tool_help': False,
@@ -709,7 +713,8 @@ def main(argsl=None, # type: List[str]
709713
= validate_document(document_loader, workflowobj, uri,
710714
enable_dev=args.enable_dev, strict=args.strict,
711715
preprocess_only=args.print_pre or args.pack,
712-
fetcher_constructor=fetcher_constructor)
716+
fetcher_constructor=fetcher_constructor,
717+
skip_schemas=args.skip_schemas)
713718

714719
if args.pack:
715720
stdout.write(print_pack(document_loader, processobj, uri, metadata))

cwltool/schemas/README.md

Lines changed: 54 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
Common Workflow Language
22
========================
33

4-
[![GitHub stars](https://img.shields.io/github/stars/common-workflow-language/common-workflow-language.svg)](https://github.com/common-workflow-language/common-workflow-language/stargazers) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/common-workflow-language/common-workflow-language?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4+
[![GitHub stars](https://img.shields.io/github/stars/common-workflow-language/common-workflow-language.svg)](https://github.com/common-workflow-language/common-workflow-language/stargazers) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/common-workflow-language/common-workflow-language?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [**Support**](#Support)
55

66
The Common Workflow Language (CWL) is a specification for describing analysis
7-
workflows and tools that are portable and scalable across a variety of software
8-
and hardware environments, from workstations to cluster, cloud, and high
9-
performance computing (HPC) environments. CWL is designed to meet the needs of
10-
data-intensive science, such as Bioinformatics, Medical Imaging, Astronomy,
11-
Physics, and Chemistry.
7+
workflows and tools in a way that makes them portable and scalable across a
8+
variety of software and hardware environments, from workstations to cluster,
9+
cloud, and high performance computing (HPC) environments. CWL is designed to
10+
meet the needs of data-intensive science, such as Bioinformatics, Medical
11+
Imaging, Astronomy, Physics, and Chemistry.
1212

1313
CWL is developed by an informal, multi-vendor working group consisting of
14-
organizations and individuals interested enabling scientists to share data
15-
analysis workflows. [The CWL project is on Github.](https://github.com/common-workflow-language/common-workflow-language)
14+
organizations and individuals aiming to enable scientists to share data
15+
analysis workflows. [The CWL project is on Github](https://github.com/common-workflow-language/common-workflow-language) and we follow the [Open-Stand.org principles for collaborative open standards development](https://open-stand.org/about-us/principles/)
16+
17+
[![Open Stand badge](http://standards.ieee.org/images/openstand/128x128-blue2.png)](https://open-stand.org/about-us/principles/).
1618

1719
CWL builds on technologies such as [JSON-LD](http://json-ld.org)
1820
for data modeling and [Docker](http://docker.com) for portable runtime
@@ -40,17 +42,19 @@ Please cite https://dx.doi.org/10.6084/m9.figshare.3115156.v2
4042

4143
## Implementations
4244

43-
|Software|Description|CWL support|Platform support|Platform Maturity|
44-
|--------|-----------|-----------|--------|--------|
45-
|[cwltool](https://github.com/common-workflow-language/cwltool)|Reference implementation of CWL|[![Build Status](https://ci.commonwl.org/job/cwltool-conformance/badge/icon)](http://ci.commonwl.org/job/cwltool-conformance/lastBuild/testReport/)|Linux, OS X, local execution only|Production|
46-
|[Arvados](https://arvados.org)|Distributed computing platform for data analysis on massive data sets. [Using CWL on Arvados](http://doc.arvados.org/user/cwl/cwl-runner.html)|[![Build Status](https://ci.commonwl.org/job/arvados-conformance/badge/icon)](http://ci.commonwl.org/job/arvados-conformance/lastBuild/testReport/)|AWS, GCP, Azure, Slurm|Production|
47-
|[Toil](https://github.com/BD2KGenomics/toil)|Toil is a workflow engine entirely written in Python.|[![Build Status](https://ci.commonwl.org/job/toil-conformance/badge/icon)](http://ci.commonwl.org/job/toil-conformance/lastBuild/testReport/)|AWS, GCP, Azure, OpenStack, Grid Engine, Mesos|Production|
48-
|[Rabix Bunny](https://github.com/rabix/bunny)|Reproducible Analyses for Bioinformatics|[![Build Status](https://ci.commonwl.org/buildStatus/icon?job=rabix-conformance)](https://ci.commonwl.org/job/rabix-conformance/)|Java|alpha|
49-
|[Apache Taverna](http://taverna.incubator.apache.org/)|Domain-independent Workflow Management System|[alpha](https://issues.apache.org/jira/browse/TAVERNA-900)|Java|Production|
50-
|[Galaxy](https://galaxyproject.org/)|Web-based platform for data intensive biomedical research.|[alpha](https://github.com/common-workflow-language/galaxy)|Python|Production|
51-
|[AWE](https://github.com/MG-RAST/AWE)|Workflow and resource management system for bioinformatics data analysis.|[alpha](https://github.com/wgerlach/AWE)|Go|Production|
52-
|[Funnel](https://github.com/bmeg/funnel)|Use Google Genomics Pipeline API with CWL|alpha|GCP|alpha|
53-
|[xenon-cwl-runner](https://github.com/NLeSC/xenon-cwl-runner)|Run CWL workflows using Xenon|alpha|[any Xenon backend](http://nlesc.github.io/Xenon/): local, ssh, SLURM, Torque, Grid Engine|Production|
45+
|Software|Description|CWL support|Platform support|
46+
|--------|-----------|-----------|--------|
47+
|[cwltool](https://github.com/common-workflow-language/cwltool)|Reference implementation of CWL|[![Build Status](https://ci.commonwl.org/job/cwltool-conformance/badge/icon)](http://ci.commonwl.org/job/cwltool-conformance/lastBuild/testReport/)|Linux, OS X, local execution only|
48+
|[Arvados](https://arvados.org)|Distributed computing platform for data analysis on massive data sets. [Using CWL on Arvados](http://doc.arvados.org/user/cwl/cwl-runner.html)|[![Build Status](https://ci.commonwl.org/job/arvados-conformance/badge/icon)](http://ci.commonwl.org/job/arvados-conformance/lastBuild/testReport/)|AWS, GCP, Azure, Slurm|
49+
|[Toil](https://github.com/BD2KGenomics/toil)|Toil is a workflow engine entirely written in Python.|[![Build Status](https://ci.commonwl.org/job/toil-conformance/badge/icon)](http://ci.commonwl.org/job/toil-conformance/lastBuild/testReport/)|AWS, Azure, GCP, Grid Engine, LSF, Mesos, OpenStack, Slurm|
50+
|[Rabix Bunny](https://github.com/rabix/bunny)|An open-source, Java-based implementation of Common Workflow Language with support for multiple drafts/versions. See [Rabix.io](http://rabix.io) for details.|[![Build Status](https://ci.commonwl.org/buildStatus/icon?job=rabix-conformance)](https://ci.commonwl.org/job/rabix-conformance/)|Linux, OS X, [GA4GH TES](https://github.com/ga4gh/task-execution-server) (experimental)|
51+
|[cwl-tes](https://github.com/common-workflow-language/cwl-tes)|CWL engine backended by the [GA4GH Task Execution API](https://github.com/ga4gh/task-execution-schemas)|[![Build Status](https://travis-ci.org/common-workflow-language/cwl-tes.svg?branch=master)](https://travis-ci.org/common-workflow-language/cwl-tes)|Local, GCP, AWS, HTCondor, Grid Engine, PBS/Torque, Slurm|
52+
|[Airflow](https://github.com/Barski-lab/incubator-airflow)|Airflow updated with CWL-runner feature (supported by BioWardrobe Team, CCHMC)|[![Build Status](https://ci.commonwl.org/buildStatus/icon?job=airflow-conformance)](https://ci.commonwl.org/job/airflow-conformance)|Linux, OS X|
53+
|[Consonance](https://github.com/Consonance/consonance)|orchestration tool for running SeqWare workflows and CWL tools|[pending](https://ci.commonwl.org/job/rabix-conformance/)|AWS, OpenStack, Azure|
54+
|[Apache Taverna](http://taverna.incubator.apache.org/)|Domain-independent Workflow Management System|[alpha](https://issues.apache.org/jira/browse/TAVERNA-900)|Java|
55+
|[Galaxy](https://galaxyproject.org/)|Web-based platform for data intensive biomedical research.|[alpha](https://github.com/common-workflow-language/galaxy)|Python|
56+
|[AWE](https://github.com/MG-RAST/AWE)|Workflow and resource management system for bioinformatics data analysis.|[alpha](https://github.com/wgerlach/AWE)|Go|
57+
|[Xenon](http://nlesc.github.io/Xenon/)|Run CWL workflows using Xenon|[alpha](https://github.com/NLeSC/xenon-cwl-runner)|[any Xenon backend](http://nlesc.github.io/Xenon/): local, ssh, SLURM, Torque, Grid Engine|
5458

5559

5660
## Repositories of CWL Tools and Workflows
@@ -71,8 +75,20 @@ Please cite https://dx.doi.org/10.6084/m9.figshare.3115156.v2
7175
|[pypi2cwl](https://github.com/common-workflow-language/pypi2cwl)|Automatically run argparse2cwl on any package in PyPi|
7276
|[cwlavro](https://github.com/common-workflow-language/cwlavro)|Java classes for loading CWL documents|
7377
|[acd2cwl](https://github.com/common-workflow-language/acd2cwl)|CWL generator for ACD (EMBOSS) files |
74-
|[CWLviewer](https://github.com/MarkRobbo/CWLViewer)|A web application to view and share Common Workflow Language workflows|
78+
|[CWLviewer](https://view.commonwl.org/)|A web application to view and share Common Workflow Language workflows|
79+
|[cwl2zshcomp](https://github.com/kloetzl/cwl2zshcomp)|generates ZSH auto completions from CWL command line tool descriptions|
80+
|[scriptcwl](https://github.com/NLeSC/scriptcwl)|Create CWL workflows by writing a simple Python script|
81+
|[python-cwlgen](https://github.com/common-workflow-language/python-cwlgen)|Generation of CWL programmatically from Python.|
82+
83+
## Projects the CWL community is participating in
7584

85+
|Name|Details|
86+
|-------|-----------|
87+
|[GA4GH Task Execution API](https://github.com/ga4gh/task-execution-schemas/)|a minimal common API for submitting a single job to a remote execution endpoint. Many contributions from CWL project participants.|
88+
|[GA4GH Workflow Execution API](https://github.com/ga4gh/workflow-execution-schemas)|a minimal common API for submitting workflow requests to workflow execution systems in a standardized way. Many contributions from CWL project participants.|
89+
|[Bio-compute objects](https://hive.biochemistry.gwu.edu/htscsrs?pageid=biocompute)|"a step towards evaluation and validation of bio-medical scientific computations", CWL and researchobject.org participants are cooperating with this effort|
90+
91+
<a name="Support"></a>
7692
## Support, Community and Contributing
7793

7894
The recommended place to ask a question about all things CWL is on
@@ -87,9 +103,6 @@ join the [mailing list common-workflow-language on Google Groups](https://groups
87103
[fork the repository](https://github.com/common-workflow-language/common-workflow-language)
88104
and send a pull request!
89105

90-
Your CWL Community Engineer, Michael R. Crusoe, publishes a blog about his work
91-
with updates at http://mrc.commonwl.org.
92-
93106
### Code of Conduct
94107

95108
The CWL Project is dedicated to providing a harassment-free experience for
@@ -114,11 +127,16 @@ Conduct](https://github.com/common-workflow-language/common-workflow-language/bl
114127
* [Institut Pasteur](http://www.pasteur.fr)
115128
* [Wellcome Trust Sanger Institute](https://www.sanger.ac.uk/)
116129
* [University of California Santa Cruz](https://cbse.soe.ucsc.edu/research/bioinfo)
117-
* [Harvard Chan School of Public Health](http://www.hsph.harvard.edu/)
130+
* [Harvard T.H. Chan School of Public Health](http://www.hsph.harvard.edu/)
118131
* [Cincinnati Children's Hospital Medical Center](http://www.cincinnatichildrens.org/)
119132
* [Broad Institute](https://www.broadinstitute.org)
120-
* [BioDatomics](http://www.biodatomics.com/)
121-
* [Wolfson Wohl Cancer Research Centre](http://www.gla.ac.uk/researchinstitutes/cancersciences/ics/facilities/wwcrc/)
133+
* [University of Melbourne Center for Cancer Research](https://umccr.github.io/)
134+
* [Netherlands eScience Center](https://www.esciencecenter.nl/)
135+
* [Texas Advanced Computing Center Life Science Computing Group](https://www.tacc.utexas.edu/life-sciences-computing) / [Agave Platform](https://agaveapi.co/)
136+
* [CyVerse](http://www.cyverse.org/)
137+
* [Institute for Systems Biology](https://www.systemsbiology.org/)
138+
* [ELIXIR Europe](https://www.elixir-europe.org/)
139+
* [BioExcel CoE](http://bioexcel.eu/)
122140

123141
## Individual Contributors
124142

@@ -131,15 +149,24 @@ Conduct](https://github.com/common-workflow-language/common-workflow-language/bl
131149
* Michael R. Crusoe <[email protected]>
132150
* Roman Valls Guimerà <[email protected]>
133151
* Guillermo Carrasco Hernandez <[email protected]>
152+
* Kenzo-Hugo Hillion <[email protected]>
134153
* Sinisa Ivkovic <[email protected]>
154+
* Sehrish Kanwal <[email protected]>
135155
* Andrey Kartashov <[email protected]>
136156
* John Kern <[email protected]>
157+
* Farah Zaib Khan <[email protected]>
137158
* Dan Leehr <[email protected]>
138159
* Hervé Ménager <[email protected]>
139160
* Maxim Mikheev <[email protected]>
161+
* Michael Miller <[email protected]>
140162
* Tim Pierce <[email protected]>
141163
* Josh Randall <[email protected]>
164+
* Mark Robinson <[email protected]>
142165
* Janko Simonović <[email protected]>
143-
* Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
166+
* Stian Soiland-Reyes <[email protected]>
144167
* Luka Stojanovic <[email protected]>
145168
* Nebojša Tijanić <[email protected]>
169+
170+
171+
The CWL Community Engineer, Michael R. Crusoe, publishes a blog about his work
172+
with updates at http://mrc.commonwl.org.
8.22 KB
Binary file not shown.

0 commit comments

Comments
 (0)