Skip to main content

Transpiler Mate

PyPI - Version PyPI - Python Version

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

Requirements

  • Python >= 3.10

Installation

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:test
  • task quality:lint
  • task 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

[![Apache License, Version 2.0](https://img.shields.io/badge/license-Apache%20License%202.0-blue)](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)

Source distribution for transpiler-mate 0.50.0
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)

Table of built distributions (wheels) for transpiler-mate 0.50.0
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

0.50.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page