Architecture

cwl2datacite is a Transpiler-Mate conversion plugin. Transpiler-Mate resolves the source CWL document and supplies its Schema.org metadata to the plugin. The plugin maps that metadata to Pydantic models generated for DataCite Metadata Schema 4.6 and serializes the result as JSON.

CWL document -> Transpiler-Mate metadata -> DataCite 4.6 models -> JSON

The relevant package layout is:

src/cwl2datacite/
    plugin.py                 # CWL-to-DataCite field mapping and serialization
    datacite_4_6_models.py    # generated DataCite 4.6 output models
schemas/
    datacite-4.6.yaml         # source schema for the generated models
tests/
docs/

The schema version is explicit in both the model module and its source file. Supporting a different DataCite release therefore requires an intentional schema and mapping update; it is not assumed to be interchangeable with 4.6.

The project uses Hatch for packaging, testing environments, and build orchestration. Documentation is organized according to Diátaxis so that learning, task completion, lookup, and conceptual understanding remain separated.