loom.etl.backends.polars¶
Polars backend for the Loom ETL framework.
- class loom.etl.backends.polars.PolarsFileWriter[source]¶
Bases:
objectWrite FILE targets with Polars DataFrame writers.
- class loom.etl.backends.polars.PolarsPhysicalSchema(schema, partition_columns=())[source]¶
Bases:
objectPhysical schema snapshot for a resolved Polars target.
- class loom.etl.backends.polars.PolarsSourceReader(locator, *, route_resolver=None, file_locator=None, mongo_reader=None, clickhouse_reader=None)[source]¶
Bases:
SourceReaderRead table, file, and MongoDB sources using Polars.
- Parameters:
locator (str | TableLocator)
route_resolver (TableRouteResolver | None)
file_locator (FileLocator | None)
mongo_reader (MongoSourceReader | None)
clickhouse_reader (ClickHouseSourceReader | None)
- read(spec, params_instance, /)[source]¶
Read source spec and return lazy frame.
- Parameters:
spec (TableSourceSpec | FileSourceSpec | TempSourceSpec | MongoSourceSpec | ClickHouseSourceSpec)
params_instance (Any)
- Return type:
polars.LazyFrame
- read_streaming(spec, params_instance, /)[source]¶
Route streaming reads to the matching capability-aware sub-reader.
Only
ClickHouseSourceSpecis supported today; other kinds raiseTypeError. We refuse to silently fall back toread()because a step that opts into streaming for memory safety must fail loudly rather than risk OOM on a non-streaming path.- Parameters:
spec (TableSourceSpec | FileSourceSpec | TempSourceSpec | MongoSourceSpec | ClickHouseSourceSpec) – Compiled source specification.
params_instance (Any) – Concrete params for current run.
- Returns:
Lazy frame whose
collect(engine="streaming")is memory-bounded.- Raises:
TypeError – When spec is not a ClickHouse spec, or the matching sub-reader was not configured at construction time.
- Return type:
polars.LazyFrame
- class loom.etl.backends.polars.PolarsTargetWriter(locator, *, route_resolver=None, missing_table_policy=MissingTablePolicy.SCHEMA_MODE, file_locator=None, audit_config=None)[source]¶
Bases:
_WritePolicy[LazyFrame,DataFrame,PolarsPhysicalSchema]Polars target writer using delta-rs for Delta tables.
- Parameters:
locator (str | TableLocator)
route_resolver (TableRouteResolver | None)
missing_table_policy (MissingTablePolicy)
file_locator (FileLocator | None)
audit_config (AuditConfig | None)
- loom.etl.backends.polars.read_delta_physical_schema(uri, storage_options=None)[source]¶
Read physical schema directly from a Delta table URI.
- Parameters:
- Returns:
Physical schema when the table exists, else
None.- Return type:
PolarsPhysicalSchema | None