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.