|
Accept Any Fetcher You Can Await
|
Medium
|
Primitives
|
|
|
Accept Read-Only Inputs and Return Concrete Results
|
Medium
|
Primitives
|
|
|
Accept Three Event Types with a Read-Only TypedDict
|
Medium
|
Primitives
|
|
|
Add Up Nested Sizes, Counting Each Object Once
|
Medium
|
Framework
|
|
|
Answer Chat Commands with match and case
|
Easy
|
Primitives
|
|
|
Audit a Library for Import-Time Side Effects
|
Hard
|
Framework
|
|
|
Batch an Async Stream and Close Its Source
|
Hard
|
End-to-End
|
|
|
Bring Thread Errors Back to the Caller
|
Medium
|
Primitives
|
|
|
Build a Blocking Queue with a Condition
|
Medium
|
Primitives
|
|
|
Build a Counter That Never Goes Over Its Limit
|
Medium
|
Primitives
|
|
|
Build a Generic Result Class
|
Medium
|
Primitives
|
|
|
Build a Generic Result Type with Ok and Err
|
Hard
|
Framework
|
|
|
Build a JSON Codec for Dataclasses
|
Hard
|
End-to-End
|
|
|
Build a JSON Converter Other Code Can Extend
|
Hard
|
Primitives
|
|
|
Build an ABC with an Abstract Property and Classmethod
|
Easy
|
Primitives
|
|
|
Build an Event Router with Guards
|
Medium
|
End-to-End
|
|
|
Build an Owner for Background Tasks
|
Medium
|
Primitives
|
|
|
Build a Paginator You Can Close Early
|
Medium
|
Primitives
|
|
|
Build a Payment Error Hierarchy
|
Medium
|
Primitives
|
|
|
Build a Pipeline from Small Generators
|
Easy
|
Primitives
|
|
|
Build a Rate Limiter That Reads a Fake Clock
|
Medium
|
Primitives
|
|
|
Build a Registry That Does Not Keep Objects Alive
|
Medium
|
Primitives
|
|
|
Build a Report as Text and UTF-8 Bytes
|
Medium
|
Primitives
|
|
|
Build a Request ID That Follows Tasks and Threads
|
Medium
|
Primitives
|
|
|
Build a Service That Shuts Down in Stages
|
Hard
|
End-to-End
|
|
|
Build a Streaming Pipeline from Start to Finish
|
Hard
|
End-to-End
|
|
|
Build a Task Queue That Keeps Arrival Order for Ties
|
Medium
|
Primitives
|
|
|
Build a Thread-Safe Cache with One Lock per Key
|
Hard
|
Research
|
|
|
Build a Typed Async Wrapper for Blocking Calls
|
Medium
|
Primitives
|
|
|
Build a Typed Factory Fixture
|
Hard
|
Primitives
|
|
|
Cache a Report Total Until You Clear It
|
Medium
|
Primitives
|
|
|
Capstone: Build an Async Worker Pool with Retries and Clean Shutdown
|
Hard
|
End-to-End
|
|
|
Capstone: Build an Immutable Order Model from Untrusted Data
|
Hard
|
End-to-End
|
|
|
Capstone: Check a Package's Layer and Import Rules
|
Hard
|
End-to-End
|
|
|
Capstone: Extend the Worker Pool to Keep Going After Failures
|
Hard
|
End-to-End
|
|
|
Capstone: Fix Five Performance Problems in an Order Pipeline
|
Hard
|
End-to-End
|
|
|
Capstone: Give Each Upload State Its Own Type
|
Hard
|
End-to-End
|
|
|
Capstone: Modernize a Typed Inventory Module
|
Hard
|
End-to-End
|
|
|
Catch a Renamed Method with @override
|
Easy
|
Primitives
|
|
|
Catch Errors by Category
|
Easy
|
Primitives
|
|
|
Catch the Backends That isinstance Lets Through
|
Medium
|
Primitives
|
|
|
Catch the Broken Versions
|
Easy
|
Primitives
|
|
|
Change an Attribute for One Block and Put It Back
|
Medium
|
Primitives
|
|
|
Check a Class Before You Add slots=True
|
Hard
|
Framework
|
|
|
Check a Run-Length Codec with Four Properties
|
Hard
|
Primitives
|
|
|
Check a Value Before You Use It
|
Easy
|
Primitives
|
|
|
Check a Version Against a Specifier
|
Medium
|
Primitives
|
|
|
Check Number Ranges at Runtime with Annotated
|
Medium
|
Framework
|
|
|
Check That Imports Follow Your Layers
|
Hard
|
Framework
|
|
|
Choose a Start Method for Each Platform
|
Medium
|
Framework
|
|