Helper to generate cwl workflows
Project description
graph2cwl
Python module that interfaces with cwl-utils in order to generate cwl files.
Getting Started
pip install graph2cwl
Here is a code snippet :
from graph2cwl import WorkflowCreator
wf = WorkflowCreator(id="wf")
wf.add_step(id="step_1", run="./my_file.py")
wf.add_step(id="step_2", run="./my_file_2.py")
wf.add_dependency("step_1", "step_2", dep_name="step_1_out")
wf.add_workflow_input("input_1")
wf.add_workflow_output("output", outputSource="step_1/step_1_out")
wf.add_dependency("input_1", "step_2")
wf.add_dependency("input_1", "step_1")
wf.to_yaml("wf.yaml")
This creates the following valid cwl:
id: w
class: Workflow
inputs:
- id: input_1
type: File
outputs:
- id: output
outputSource: step_1/step_1_out
type: File
cwlVersion: v1.2
steps:
- id: step_1
in:
- id: xehsftvk
source: input_1
out:
- step_1_out
run: my_file.py
- id: step_2
in:
- id: fwfmzpkk
source: step_1/step_1_out
- id: ellhmrzg
source: input_1
out: []
run: my_file_2.py
which can be visualized (see cwl2nx):
• w/input_1
├─• w/step_1
│ ╰─• w/step_1/step_1_out
│ ├─• w/output
╰───┴─• w/step_2
Advanced usage
To embed the cwl with additionnal information, you must follow the cwl specification, implemented in cwl-utils. For example, to insert additional informations to a step, you can add the hints argument, or the extension_field one :
from graph2cwl import WorkflowCreator
wf = WorkflowCreator(id="w")
wf.add_step(id="step_1", run="./my_file.py", hints={"hint1": "value1"})
wf.add_step(id="step_2", run="./my_file_2.py")
wf.add_dependency("step_1", "step_2", dep_name="step_1_out")
wf.add_workflow_input("input_1", extension_fields={"additional_field": "het"})
wf.add_workflow_output("output", outputSource="step_1/step_1_out")
wf.add_dependency("input_1", "step_2")
wf.add_dependency("input_1", "step_1")
wf.to_yaml("wf2.yaml")
See : https://cwl-utils.readthedocs.io/en/latest/autoapi/cwl_utils/parser/cwl_v1_2/index.html#cwl_utils.parser.cwl_v1_2.WorkflowStep for the list of supported arguments.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file graph2cwl-0.0.1.tar.gz.
File metadata
- Download URL: graph2cwl-0.0.1.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16211cc795be589a9f432b4eae163a67a5398a0da5d8e85100947b52cdb6a08f
|
|
| MD5 |
d6d3f0c3012c599f3663613da7c98005
|
|
| BLAKE2b-256 |
951fd6590e7da70f82be615c60cd8440d18f845ee1513525cd746a9aab96ee45
|