Skip to main content

CWL Worflows processor to generate PlantUML diagrams

Project description

cwl2puml

cwl2puml converts Common Workflow Language workflows into PlantUML diagrams.

It provides a CLI that can:

  • load a CWL workflow from a local path or URL
  • render PlantUML source files
  • optionally render PNG or SVG images through a PlantUML server

Supported Diagrams

  • activity
  • component
  • class
  • sequence
  • state

Requirements

  • Python >=3.10

Installation

Install from the repository:

pip install .

For development:

pip install hatch

CLI Usage

Show the CLI help:

cwl2puml --help

Basic example:

cwl2puml \
  https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-1.cwl \
  --workflow-id pattern-1 \
  --output ./out

This writes one .puml file per diagram type into ./out.

Generate only selected diagrams:

cwl2puml workflow.cwl \
  --workflow-id main \
  --diagrams component \
  --diagrams sequence \
  --output ./out

Generate SVG images through a PlantUML server:

cwl2puml workflow.cwl \
  --workflow-id main \
  --diagrams component \
  --output ./out \
  --convert-image \
  --image-format svg

Use a custom PlantUML server host:

cwl2puml workflow.cwl \
  --workflow-id main \
  --output ./out \
  --convert-image \
  --puml-server uml.planttext.com

Output

For each selected diagram type, the CLI writes:

  • <diagram>.puml
  • optionally <diagram>.png or <diagram>.svg

Development

Run the test matrix:

hatch run test:test-q

Run coverage:

hatch run test:test-cov

Run formatting checks:

hatch run dev:lint

Run Ruff fixes:

hatch run dev:check

Documentation

Project documentation: https://Terradue.github.io/cwl2puml/

Contributing

Open an issue at https://github.com/Terradue/cwl2puml/issues if you find a bug or want to propose a change.

License

This project is licensed under the MIT License. See LICENSE.

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

cwl2puml-0.38.0.tar.gz (9.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cwl2puml-0.38.0-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file cwl2puml-0.38.0.tar.gz.

File metadata

  • Download URL: cwl2puml-0.38.0.tar.gz
  • Upload date:
  • Size: 9.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cwl2puml-0.38.0.tar.gz
Algorithm Hash digest
SHA256 c3f0a203f1c30b0c17d670642adfc37d435ea9aa1b5e6624005f7feff57b0278
MD5 60b3c1c8ecffd2ea6cb74b99d50c783e
BLAKE2b-256 5a4f1bad62cf0f46fad4bb9d1954d0b58637b6f9f4a4cbb5f315c978f798b8ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for cwl2puml-0.38.0.tar.gz:

Publisher: package.yaml on Terradue/cwl2puml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cwl2puml-0.38.0-py3-none-any.whl.

File metadata

  • Download URL: cwl2puml-0.38.0-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cwl2puml-0.38.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94b293c77bce67351341e8591da82a493fed4f23dbe2900086aa9bce8d2946d9
MD5 2400a9e86ea7da7e748646af8a7eeadd
BLAKE2b-256 23722f694084ca3cbbd4b53ca47b8ef2b276514873e982ea3cd76f8768ea4ab5

See more details on using hashes here.

Provenance

The following attestation bundles were made for cwl2puml-0.38.0-py3-none-any.whl:

Publisher: package.yaml on Terradue/cwl2puml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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