1111cwl-utils
1212---------
1313
14- A collection of scripts to demonstrate the use of the new Python classes
15- for loading and parsing `CWL
14+ Python Utilities and Autogenerated Classes for loading and parsing `CWL
1615v1.0 <https://github.com/common-workflow-language/cwl-utils/blob/main/cwl_utils/parser/v1_0.py> `__,
1716`CWL
1817v1.1 <https://github.com/common-workflow-language/cwl-utils/blob/main/cwl_utils/parser/v1_1.py> `__,
4140Pull the all referenced software container images
4241~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4342
44- ``docker_extract.py `` is useful to cache or pre-pull all software
43+ ``cwl-docker-extract `` is useful to cache or pre-pull all software
4544container images referenced in a CWL CommandLineTool or CWL Workflow
4645(including all referenced CommandLineTools and sub-Workflows and so on).
4746
@@ -50,15 +49,71 @@ the software container images in Docker format.
5049
5150.. code :: bash
5251
53- docker_extract.py DIRECTORY path_to_my_workflow.cwl
52+ cwl-docker-extract DIRECTORY path_to_my_workflow.cwl
5453
5554 Or you can use the Singularity software container engine to download and
5655save the software container images and convert them to the Singularity
5756format at the same time.
5857
5958.. code :: bash
6059
61- docker_extract.py --singularity DIRECTORY path_to_my_workflow.cwl
60+ cwl-docker-extract --singularity DIRECTORY path_to_my_workflow.cwl
61+
62+
63+ Print all referenced software packages
64+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65+
66+ ``cwl-cite-extract `` prints all software packages found (recursively) in the
67+ specified CWL document.
68+
69+ Currently the package name and any listed specs and version field are printed
70+ for all ``SoftwareRequirement `` s found.
71+
72+ .. code :: bash
73+
74+ cwl-cite-extract path_to_my_workflow.cwl
75+
76+
77+ Replace CWL Expressions with concrete steps
78+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79+
80+ ``cwl-expression-refactor `` refactors CWL documents so that any CWL Expression
81+ evaluations are separate steps (either CWL ExpressionTools or CWL CommandLineTools.)
82+ This allows execution by CWL engines that do not want to support inline expression
83+ evaluation outside of concrete steps, or do not want to directly support CWL's
84+ optional ``InlineJavascriptRequirement `` at all.
85+
86+
87+ .. code :: bash
88+
89+ cwl-expression-refactor directory/path/to/save/outputs path_to_my_workflow.cwl [more_workflows.cwl]
90+
91+ Split a packed CWL document
92+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
93+
94+ ``cwl-graph-split `` splits a packed CWL document file into multiple files.
95+
96+ Packed CWL documents use the $graph construct to contain multiple CWL Process
97+ objects (Workflow, CommandLineTool, ExpressionTool, Operation). Typically
98+ packed CWL documents contain a CWL Workflow under the name "main" and the
99+ workflow steps (including any sub-workflows).
100+
101+ .. code :: bash
102+
103+ cwl-graph-split --outdir optional/directory/path/to/save/outputs path_to_my_workflow.cwl
104+
105+ Normalize a CWL document
106+ ~~~~~~~~~~~~~~~~~~~~~~~~
107+
108+ ``cwl-normalizer `` normalizes one or more CWL document so that for each document,
109+ a JSON format CWL document is produces with it and all of its dependencies packed
110+ together, upgrading to CWL v1.2, as needed. Can optionally refactor CWL
111+ Expressions into separate steps in the manner of cwl-expression-refactor.
112+
113+ .. code :: bash
114+
115+ cwl-normalizer directory/path/to/save/outputs path_to_my_workflow.cwl [more_workflows.cwl]
116+
62117
63118 Using the CWL Parsers
64119~~~~~~~~~~~~~~~~~~~~~
0 commit comments