Skip to content

v1.5.0 — Data Pipeline, Concurrency, CLI Helpers, Protocols

Latest

Choose a tag to compare

@bysiber bysiber released this 25 Feb 08:27
· 31 commits to main since this release

v1.5.0

New Modules

Data Pipeline (data_pipeline.py)

Composable ETL pipelines with stage-based processing. StageStatus/PipelineStatus/ErrorStrategy enums. Stage results with timing, retries, success tracking. DataPipeline with add/remove/enable/disable stages, hooks, error strategies. fan_out/fan_in for parallel processing. batch_process with error handling. Functional transforms: map_data, filter_data, reduce_data, group_by, flatten, distinct, chunk.

Concurrency (concurrency.py)

Thread pool execution, task queues, and synchronization primitives. AtomicCounter and AtomicValue (thread-safe). TaskQueue with priority support. WorkerPool with configurable threads, submit/wait/results. parallel_map for concurrent processing. Debouncer, Throttle, and Once for execution control.

CLI Helpers (cli_helpers.py)

CLI argument parsing, output formatting, and progress indicators. Color enum with ANSI codes. Text formatting: truncate, pad, indent, tables, key-value, lists, sizes, durations. ProgressBar and Spinner with animations. parse_args with type coercion. format_help and draw_box with Unicode borders.

Protocols (protocols.py)

Type contracts and algebraic types. Result type (Ok/Err) with unwrap, map, try_result. Option type (Some/Nothing) for nullable values. Either type (Left/Right) for disjoint unions. 6 Protocol interfaces: Serializable, Renderable, Validatable, Disposable, Configurable, Identifiable. Type guards and Lazy evaluation. Safe conversions: safe_int, safe_float, safe_bool, safe_str.

Stats

  • Tests: 1999 passing
  • Public API: 464 exports
  • New exports: 109