Skip to content

CDM Data Loaders Documentation

Data loaders, schema converters, and ingestion wranglers for the KBase Comparative Data Model (CDM).


Architecture Overview

cdm-data-loaders separates domain logic from pipeline orchestration:

  • Core and Settings (cdm_data_loaders.core): pydantic-settings base class hierarchy (CdmDataLoadersBase -> LoggerSettings -> LocalInputOutputSettings -> CtsSettings -> FileFormatIngestSettings -> XmlIngestSettings -> SingleTableXmlIngestSettings) and declarative table/column transforms (TransformSettingsMixin).
  • Schema Converters (cdm_data_loaders.converters): Hub-and-spoke schema translation via a frozen Intermediate Representation (IR): source readers (JsonSchemaReader, DltReader, IcebergReader, PyArrowReader, PydanticReader, XsdReader) and target emitters (JsonSchemaEmitter, DltEmitter, PySparkEmitter, PyArrowEmitter, LinkMLEmitter).
  • Readers and Parsers (cdm_data_loaders.readers, cdm_data_loaders.parsers): Streaming readers for JSONLines, XML (xmltodict and XSD-guided PyArrow), XSV (qsv + JSON Schema x-xsv-config), and domain parsers for UniProt/UniRef, NCBI Datasets, CheckM2, and BBMap.
  • Pipelines (cdm_data_loaders.pipelines): dlt-backed ingestion pipelines designed to run locally via uv run or in containers on the KBase Container Task Service (CTS).

Guides and Specifications

Pipeline and Execution Guides

Schema Converter Architecture and Specifications

Code and Schema Reference

  • Python API Reference: Auto-generated API reference for all packages and modules under src/cdm_data_loaders/.
  • Bundled Schemas and XSD Assets: Auto-generated catalog and syntax-highlighted source pages for all non-Python schema assets bundled in src/cdm_data_loaders/schemas/.