Introduction to Data Pipelines
Configuration & Secrets (.env)
Separation of Concerns (I/O vs Logic)
Goal: Moving from class-heavy OOP to clean, testable functional pipelines.
Pure Functions*: Same input = same output, no side effects.
Composition*: Chaining functions (Result of A -> Input of B).
Immutability*: Why modifying data in-place (e.g., list.append) causes bugs in pipelines.
Type Hints for Functions*: Using Callable, Iterable in signatures.
When to use Classes*: Only for holding state (Dataclasses), not for logic/actions.
Refactor a stateful class Processor into a series of standalone functions.
Build a small transformation pipeline: read -> clean -> standardize -> write.

Found a mistake or have a suggestion? Let us know in the feedback form.