Skip to main content

No project description provided

Project description

Linux Build Status Code coverage Documentation Status

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

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

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cwl-utils-0.12.tar.gz (179.4 kB view details)

Uploaded Source

Built Distribution

cwl_utils-0.12-py3-none-any.whl (205.8 kB view details)

Uploaded Python 3

File details

Details for the file cwl-utils-0.12.tar.gz.

File metadata

  • Download URL: cwl-utils-0.12.tar.gz
  • Upload date:
  • Size: 179.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for cwl-utils-0.12.tar.gz
Algorithm Hash digest
SHA256 fa5792e8b049221f7a607c4e0daf05c2ce5da36796e129de4f7d7a189cbe3cda
MD5 4765fdc50335a791fed581fc80c9f7a5
BLAKE2b-256 5b4503f7678b0da00503248b28633316167fa8055a6c8d0a53699774630b2e0f

See more details on using hashes here.

Provenance

File details

Details for the file cwl_utils-0.12-py3-none-any.whl.

File metadata

  • Download URL: cwl_utils-0.12-py3-none-any.whl
  • Upload date:
  • Size: 205.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for cwl_utils-0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 16dea149ac473e72114e9233f6f7c0045ecdfc55a324ec8d456b613483ab260e
MD5 5b1aaacc3e6e723e70146c0df109f77e
BLAKE2b-256 5fb9a15360aa3a26f0e8ab967493ec62fa1e52b2e870bd45aa2ad294426b0a49

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page