|
Accept Any Fetcher You Can Await
|
Medium
|
Primitives
|
|
|
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 an Owner for Background Tasks
|
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 Typed Async Wrapper for Blocking Calls
|
Medium
|
Primitives
|
|
|
Capstone: Build an Async Worker Pool with Retries and Clean Shutdown
|
Hard
|
End-to-End
|
|
|
Collect Results and Errors from a Thread Pool
|
Easy
|
Primitives
|
|
|
Download Pages at the Same Time with asyncio
|
Easy
|
Primitives
|
|
|
Download Pages with a Thread Pool
|
Easy
|
Primitives
|
|
|
Fetch Many Pages with a TaskGroup
|
Medium
|
Primitives
|
|
|
Fix a Counter That Loses Updates
|
Easy
|
Primitives
|
|
|
Map Over a Stream with at Most N Calls at Once
|
Hard
|
End-to-End
|
|
|
Placement 5/6: Cancel an asyncio Task at Each Stage
|
Hard
|
Primitives
|
|
|
Process a Stream with a Bounded Queue
|
Medium
|
Primitives
|
|
|
Retry Within One Shared Deadline
|
Medium
|
Primitives
|
|
|
Run Async Cleanup Without Hiding the Real Error
|
Hard
|
Primitives
|
|
|
Run Code in a Subinterpreter and Check the Result
|
Medium
|
Research
|
|
|
Split an Exception Group Without Losing Its Shape
|
Hard
|
Primitives
|
|
|
Write a Pool Map That Reports Every Failure
|
Medium
|
Primitives
|
|
|
Write a Sync Wrapper for Async Code
|
Easy
|
Primitives
|
|