No project description provided
Project description
cwl-utils
A collection of scripts to demonstrate the use of the new Python classes for loading and parsing CWL v1.0, CWL v1.1, and CWL v1.2 documents.
Requires Python 3.6+
Installation
pip3 install cwl-utils
To install from source:
git clone https://github.com/common-workflow-language/cwl-utils.git cd cwl-utils pip3 install .
Usage
Pull the all referenced software container images
docker_extract.py is useful to cache or pre-pull all software container images referenced in a CWL CommandLineTool or CWL Workflow (including all referenced CommandLineTools and sub-Workflows and so on).
The default behaviour is to use the Docker engine to download and save the software container images in Docker format.
docker_extract.py DIRECTORY path_to_my_workflow.cwl
Or you can use the Singularity software container engine to download and save the software container images and convert them to the Singularity format at the same time.
docker_extract.py --singularity DIRECTORY path_to_my_workflow.cwl
Using the CWL Parsers
from pathlib import Path
from ruamel import yaml
import sys
from cwl_utils.parser import load_document_by_uri, save
# File Input - This is the only thing you will need to adjust or take in as an input to your function:
cwl_file = Path("testdata/md5sum.cwl") # or a plain string works as well
# Import CWL Object
cwl_obj = load_document_by_uri(cwl_file)
# View CWL Object
print("List of object attributes:\n{}".format("\n".join(map(str, dir(cwl_obj)))))
# Export CWL Object into a built-in typed object
saved_obj = save(cwl_obj)
print(f"Export of the loaded CWL object: {saved_obj}.")
Development
Regenerate parsers
To regenerate install the schema_salad package and run:
cwl_utils/parser/cwl_v1_0.py was created via schema-salad-tool --codegen python https://github.com/common-workflow-language/common-workflow-language/raw/main/v1.0/CommonWorkflowLanguage.yml --codegen-parser-info "org.w3id.cwl.v1_0"
cwl_utils/parser/cwl_v1_1.py was created via schema-salad-tool --codegen python https://github.com/common-workflow-language/cwl-v1.1/raw/main/CommonWorkflowLanguage.yml --codegen-parser-info "org.w3id.cwl.v1_1"
cwl_utils/parser/cwl_v1_2.py was created via schema-salad-tool --codegen python https://github.com/common-workflow-language/cwl-v1.2/raw/1.2.1_proposed/CommonWorkflowLanguage.yml --codegen-parser-info "org.w3id.cwl.v1_2"
Release
To release CWLUtils, bump the version in cwl_utils/__meta__.py, and tag that commit with the new version. The gh-action-pypi-publish should release that tag.
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.