Transpiler Mate
Transpiler Mate is a Python library and CLI that extracts schema.org/SoftwareApplication metadata from annotated CWL documents and converts it into publication-ready formats.
What It Does
Given an input CWL metadata source, Transpiler Mate can:
- Generate CodeMeta JSON-LD.
- Generate DataCite metadata payloads.
- Generate OGC API - Records payloads.
- Generate Markdown documentation for workflows.
- Generate OCI Annotations.
- Bundle CWL documents into self-contained files with external references resolved.
- Publish records to InvenioRDM.
- Bump semantic versions in metadata files.
Documentation: https://terradue.github.io/transpiler-mate/
Supported Outputs
- CodeMeta: https://codemeta.github.io/
- DataCite Metadata: https://inveniordm.docs.cern.ch/reference/metadata/#metadata
- OGC API - Records: https://ogcapi.ogc.org/records/
- OCI Annotations: https://oras.land/docs/how_to_guides/manifest_annotations/
- InvenioRDM: https://inveniosoftware.org/products/rdm/
Requirements
- Python
>= 3.10
Installation
From source (recommended for development)
git clone https://github.com/Terradue/transpiler-mate.git
cd transpiler-mate
pip install -e .
Install tooling for local workflows
pip install hatch ruff
CLI Usage
Entry point:
transpiler-mate --help
Main commands:
transpiler-mate codemeta <source> [--code-repository URL] [--output codemeta.json]transpiler-mate datacite <source> [--output datacite.json]transpiler-mate ogcrecord <source> [--output record.json]transpiler-mate markdown <source> --workflow-id <id> [--output DIR] [--code-repository URL]transpiler-mate oci-annotations <source> --workflow-id <id> [--image-source URL] [--image-revision ] [--output annotations.json]transpiler-mate invenio-publish <source> --base-url URL --auth-token TOKEN [--attach FILE ...]transpiler-mate bump-version <source> [--version-part major|minor|patch|build|pre-release]transpiler-mate bundle <source> [--output bundle.cwl] [--oci-hostname HOST] [--oci-username USER] [--oci-password PASSWORD] [--oauth2-bearer TOKEN]
Examples
Generate CodeMeta:
transpiler-mate codemeta ./metadata.cwl --output ./dist/codemeta.json
Generate DataCite metadata:
transpiler-mate datacite ./metadata.cwl --output ./dist/datacite.json
Generate OGC Record:
transpiler-mate ogcrecord ./metadata.cwl --output ./dist/record.json
Generate Markdown documentation:
transpiler-mate markdown ./workflow.cwl --workflow-id main --output ./docs
Bundle a CWL document and resolve its external references:
transpiler-mate bundle ./workflow.cwl --output ./dist/bundle.cwl
The bundle command was migrated from the CWL Loader CLI.
Publish to InvenioRDM:
export INVENIO_AUTH_TOKEN="<token>"
transpiler-mate invenio-publish ./metadata.cwl --base-url https://invenio.example.org --auth-token "$INVENIO_AUTH_TOKEN"
Development
Run lint and formatting checks:
hatch run dev:check
hatch run dev:lint
Run tests for one interpreter:
hatch run test.py3.12:test-q
Run full Hatch test matrix (local environment permitting):
hatch run test:test-q
Project Tasks
Taskfile.yaml includes helper tasks for schema/model generation and quality checks:
task quality:testtask quality:linttask quality:check
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
[](https://www.apache.org/licenses/LICENSE-2.0)
Metadata
Release files for transpiler-mate 0.50.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| transpiler_mate-0.50.0.tar.gz | 549.5 kB | With provenance | Details for transpiler_mate-0.50.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| transpiler_mate-0.50.0-py3-none-any.whl | Python 3 | none | any | Details for transpiler_mate-0.50.0-py3-none-any.whl |
Total release size: 797.8 kB
Release files / transpiler_mate-0.50.0.tar.gz
| Download URL | transpiler_mate-0.50.0.tar.gz |
|---|---|
| Size | 549.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0491ea27a810e90842e1dfcb7811ee5af252ec4b0daa2a30b5365636125dbf32
|
|
BLAKE2b-256 checksum How to use checksums |
722718f093a92bb6c6efb0e248bd2debb42a2e6bdd0474bd69095b853efaf419
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logRelease files / transpiler_mate-0.50.0-py3-none-any.whl
| Download URL | transpiler_mate-0.50.0-py3-none-any.whl |
|---|---|
| Size | 248.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6cdd5c8bb3cf38bfaec82460e09bcf9a787d3953993c9b04e48ca8442ad9438a
|
|
BLAKE2b-256 checksum How to use checksums |
9606b2acbad441e8f96a14a166cc80bb74a038bb7b90c926f9fc509b5f18b364
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logSecurity for transpiler-mate 0.50.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for transpiler_mate-0.50.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.