cdm_data_loaders.pipelines.jsonlines.base ¶
Shared machinery for the JSONL registry-ingest pipelines.
Each pipeline reads one JSONL input subdirectory per table, routes valid records
to a table named after the entity, and routes failures to _rejected
with provenance columns (table_name, source_file, line_no, raw_record,
error_detail). This module holds the pieces all registry pipelines share;
each pipeline module supplies only its validator and registry loader.
build_entity_resource ¶
build_entity_resource(
table_name: str,
settings: Any,
resolve_error: ParseErrorResolver,
*,
transform_valid: Callable[[Any], Any] | None = None
) -> DltResource
Read plain or gzip JSONL files for one entity and route validated pages.
A missing entity directory produces no rows. Nested values are preserved rather than normalized into child tables.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
table_name
|
str
|
table name; also the input_dir subdirectory name |
required |
settings
|
Any
|
pipeline configuration with input_dir, file_glob, buffer_size |
required |
resolve_error
|
ParseErrorResolver
|
function returning None for valid records or error detail |
required |
transform_valid
|
Callable[[Any], Any] | None
|
validation function applied to each record before yielding |
None
|
Returns:
| Type | Description |
|---|---|
DltResource
|
resource yielding validated and rejected records for this entity |
Source code in src/cdm_data_loaders/pipelines/jsonlines/base.py
run_registry_ingest ¶
run_registry_ingest(
settings: Any,
registry: dict[
RegistryKey, type[BaseModel] | ValidatedSchema
],
build_resource: ResourceFactory,
pipeline_name: str,
pipeline_run_kwargs: dict[str, Any] | None = None,
) -> LoadInfo | None
Load tables using the shared pipeline runner.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settings
|
Any
|
pipeline configuration |
required |
registry
|
dict[RegistryKey, type[BaseModel] | ValidatedSchema]
|
registry of table name to its schema/model entry |
required |
build_resource
|
ResourceFactory
|
function building one entity's resource |
required |
pipeline_name
|
str
|
registered pipeline name |
required |
pipeline_run_kwargs
|
dict[str, Any] | None
|
extra kwargs for pipeline.run |
None
|
Returns:
| Type | Description |
|---|---|
LoadInfo | None
|
load information for the pipeline |