loom.etl.runner¶
Runner API for compiling and executing ETL pipelines.
- class loom.etl.runner.ETLRunner(reader, writer, observers=(), dispatcher=None, checkpoint_store=None)[source]¶
Bases:
objectWire storage config, backend I/O, and executor into one callable.
- Parameters:
reader (SourceReader) – Source reader implementation.
writer (TargetWriter) – Target writer implementation.
observers (Sequence[ETLRunObserver]) – Lifecycle observers wrapped in a composite observer.
dispatcher (ParallelDispatcher | None) – Parallel task dispatcher.
checkpoint_store (CheckpointStore | None)
- classmethod from_config(config, obs_config=None, *, spark=None, dispatcher=None, cleaner=None)[source]¶
Build an
ETLRunnerfrom resolved config objects.- Parameters:
config (StorageConfig)
obs_config (ObservabilityConfig | None)
spark (SparkSession | None)
dispatcher (ParallelDispatcher | None)
cleaner (TempCleaner | None)
- Return type:
- classmethod from_yaml(path, *, spark=None, dispatcher=None)[source]¶
Load config from a YAML file and build an
ETLRunner.
- classmethod from_spark(spark, obs_config=None, *, dispatcher=None, cleaner=None)[source]¶
Build an
ETLRunnerusing Spark as the execution engine.- Parameters:
spark (SparkSession)
obs_config (ObservabilityConfig | None)
dispatcher (ParallelDispatcher | None)
cleaner (TempCleaner | None)
- Return type:
- classmethod from_dict(storage, observability=None, *, spark=None, dispatcher=None, cleaner=None)[source]¶
Build an
ETLRunnerfrom pre-resolved plain Python dicts.
- exception loom.etl.runner.InvalidStageError(include)[source]¶
Bases:
ValueErrorRaised when include matches no step or process in the compiled plan.