Skip to content

Repository files navigation

cwl-loader

PyPI - Version PyPI - Python Version

cwl-loader provides utilities to load CWL documents (local files, URLs, streams, or strings) into cwl-utils object models, normalize references, and sort dependency graphs.

Important

The cwl-loader bundle CLI has moved to Transpiler Mate. This package continues to provide the Python API for loading and serializing CWL documents.

Installation

pip install cwl-loader

Quick Start

Load a CWL document from a URL or local path:

from cwl_loader import load_cwl_from_location

process = load_cwl_from_location("workflow.cwl")

Load from in-memory text:

from cwl_loader import load_cwl_from_string_content

content = """
cwlVersion: v1.2
class: CommandLineTool
id: example-tool
baseCommand: echo
inputs: []
outputs: []
"""

process = load_cwl_from_string_content(content)

Dump back to YAML:

from cwl_loader import dump_cwl

with open("normalized.cwl", "w", encoding="utf-8") as out:
    dump_cwl(process, out)

Development

Run tests:

task test

Or directly with Hatch:

hatch run test:test

Run code quality checks:

task check
task lint

Documentation

Project documentation is published at: https://Terradue.github.io/cwl-loader/

Contributing

Issues and pull requests are welcome: https://github.com/eoap/cwl-loader/issues

Local quality checks

Install Hatch and Taskfiles then install the Git hook:

task quality:pre-commit:install

Every commit runs Ruff (including the configured McCabe complexity limit), Ruff formatting, strict mypy checks, and the pytest suite. Run the complete hook explicitly with:

task quality:pre-commit:run

License

Apache License, Version 2.0

About

Simple utilities to load CWL documents in a transparent way

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages