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.
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.
- Publish records to InvenioRDM.
- Bump semantic versions in metadata files.
Documentation: https://terradue.github.io/transpiler-mate/
- 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/
- Python
>= 3.10
git clone https://github.com/Terradue/transpiler-mate.git
cd transpiler-mate
pip install -e .pip install hatch ruffEntry point:
transpiler-mate --helpMain 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]
Generate CodeMeta:
transpiler-mate codemeta ./metadata.cwl --output ./dist/codemeta.jsonGenerate DataCite metadata:
transpiler-mate datacite ./metadata.cwl --output ./dist/datacite.jsonGenerate OGC Record:
transpiler-mate ogcrecord ./metadata.cwl --output ./dist/record.jsonGenerate Markdown documentation:
transpiler-mate markdown ./workflow.cwl --workflow-id main --output ./docsPublish to InvenioRDM:
export INVENIO_AUTH_TOKEN="<token>"
transpiler-mate invenio-publish ./metadata.cwl --base-url https://invenio.example.org --auth-token "$INVENIO_AUTH_TOKEN"Run lint and formatting checks:
hatch run dev:check
hatch run dev:lintRun tests for one interpreter:
hatch run test.py3.12:test-qRun full Hatch test matrix (local environment permitting):
hatch run test:test-qTaskfile.yaml includes helper tasks for schema/model generation and quality checks:
task testtask checktask lint
Apache License 2.0. See LICENSE.