Schema.org 2 metadata formats transpiler
Project description
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.
- 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]
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
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 testtask checktask lint
License
Apache License 2.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file transpiler_mate-0.40.0.tar.gz.
File metadata
- Download URL: transpiler_mate-0.40.0.tar.gz
- Upload date:
- Size: 865.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61603c0c6ad5a54afbdaca8027652bbff8829923c6921871325b47f43ac0e111
|
|
| MD5 |
c53036779e4fba7073fb39c9746648b0
|
|
| BLAKE2b-256 |
4ae4ba9356fa0b3dc4ab13f334208ff9bcd22d2591720efb7417d7fe7b012a4f
|
Provenance
The following attestation bundles were made for transpiler_mate-0.40.0.tar.gz:
Publisher:
package.yaml on Terradue/transpiler-mate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
transpiler_mate-0.40.0.tar.gz -
Subject digest:
61603c0c6ad5a54afbdaca8027652bbff8829923c6921871325b47f43ac0e111 - Sigstore transparency entry: 1199488642
- Sigstore integration time:
-
Permalink:
Terradue/transpiler-mate@dcc539b0b4a5c92e7f7ae217b34ffe1c6f815878 -
Branch / Tag:
refs/tags/v0.40.0 - Owner: https://github.com/Terradue
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
package.yaml@dcc539b0b4a5c92e7f7ae217b34ffe1c6f815878 -
Trigger Event:
push
-
Statement type:
File details
Details for the file transpiler_mate-0.40.0-py3-none-any.whl.
File metadata
- Download URL: transpiler_mate-0.40.0-py3-none-any.whl
- Upload date:
- Size: 237.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddf77a1759833e3c6f36b61b10290409301c64408eba3111d69f0ca15663b12d
|
|
| MD5 |
09375561f18df4878860c2f5c364dc10
|
|
| BLAKE2b-256 |
04757489f7b7ca357e329ae7f8d84e185a22f6afdb6e85a8c224a28a8dc09c92
|
Provenance
The following attestation bundles were made for transpiler_mate-0.40.0-py3-none-any.whl:
Publisher:
package.yaml on Terradue/transpiler-mate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
transpiler_mate-0.40.0-py3-none-any.whl -
Subject digest:
ddf77a1759833e3c6f36b61b10290409301c64408eba3111d69f0ca15663b12d - Sigstore transparency entry: 1199488679
- Sigstore integration time:
-
Permalink:
Terradue/transpiler-mate@dcc539b0b4a5c92e7f7ae217b34ffe1c6f815878 -
Branch / Tag:
refs/tags/v0.40.0 - Owner: https://github.com/Terradue
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
package.yaml@dcc539b0b4a5c92e7f7ae217b34ffe1c6f815878 -
Trigger Event:
push
-
Statement type: