Lazy Pipelines vs Lists: Memory Peaks & batched()
Lessons in this course
- Functions as Objects: Closures & nonlocal StateFree
- Late Binding: The Loop-Variable Closure Trap Locked
- Writing Decorators: Wrappers, State & functools.wraps Locked
- Decorator Factories & Stacking Order Locked
- Memoization with lru_cache: Hits, Misses & Cache Growth Locked
- The Iterator Protocol: __iter__, __next__ & Exhaustion Locked
- Generators & Laziness: Short-Circuiting and Partial Consumption Locked
- send(), Priming & Generator-Based Coroutines Locked
- itertools in Practice: groupby, accumulate & Shared Iterators Locked
- Lazy Pipelines vs Lists: Memory Peaks & batched() Locked
- Context Managers: __enter__, __exit__ & Rollback Locked
- @contextmanager, try/finally & Nested Timers Locked
- Type Hints: Static Checks, Any & Run-Time Reality Locked
- asyncio Scheduling: await, gather & Semaphores Locked
- Blocking the Event Loop: time.sleep vs await & to_thread Locked
- Big-O in Practice: Counting Comparisons, list vs set Locked
- Profiling with cProfile: tottime, Hotspots & Amdahl's Law Locked
- __slots__ & Dataclasses: Memory per Object Locked
- Pythonic Design Patterns: Strategy & Registration Decorators Locked
- Packaging: pyproject.toml & Version Specifiers Locked
- Capstone: A Retrying, Batched, Rate-Limited Async Uploader Locked