tanat.store.source package#

Subpackages#

Submodules#

tanat.store.source.base module#

Abstract base class for all ingestion sources.

class tanat.store.source.base.AbstractSource[source]#

Bases: ABC, Registrable

Unified interface for all ingestion sources.

Subclasses implement read() and return a polars.LazyFrame. Registered by name so the resolver and builder can look them up by string.

Registration names: "csv", "parquet", "dataframe", "sql".

abstractmethod read() LazyFrame[source]#

Read the source and return a lazy frame.

abstractmethod schema() Schema[source]#

Return the column schema without reading the full dataset.

Implementations should be as cheap as possible - reading metadata only (file headers, SQL LIMIT 0 probe, in-memory schema, …).

Module contents#

Data source package.

class tanat.store.source.AbstractSource[source]#

Bases: ABC, Registrable

Unified interface for all ingestion sources.

Subclasses implement read() and return a polars.LazyFrame. Registered by name so the resolver and builder can look them up by string.

Registration names: "csv", "parquet", "dataframe", "sql".

abstractmethod read() LazyFrame[source]#

Read the source and return a lazy frame.

abstractmethod schema() Schema[source]#

Return the column schema without reading the full dataset.

Implementations should be as cheap as possible - reading metadata only (file headers, SQL LIMIT 0 probe, in-memory schema, …).