Skip to content

Latest commit

 

History

History
55 lines (35 loc) · 2.01 KB

File metadata and controls

55 lines (35 loc) · 2.01 KB

Full Learning Path

Curriculum for this repository. For the quickstart, see the main README. For pedagogy (Q/A/R, instrumentation), see Teaching Method.


Audience and prerequisites

These exercises assume you can read and write Python at a working-engineer level (functions, classes, exceptions, packaging basics). They are not a first programming course.

  • Solid on basics, new to asyncio: Use Cursor with "profile: junior" for gentler explanations; you still work the same tests.
  • Absolute beginners: Use an introductory Python resource first, then return here for mechanism-level practice.

The project requires Python 3.11+.


Modules (current state)

Each row is a learning_* directory. Registered tests are lesson files discovered by pytest under that module’s tests/ directory.

Module Registered tests Notes
learning_asyncio 4 Coroutine basics, tasks/gather, Event/Queue, cancellation/timeouts.
examples 1 test_try_it_out — good first run after install.

Suggested learning order

  1. Orientation — pip install -e ".[dev]", then pytest examples/test_try_it_out.py -v.
  2. Asyncio / coroutines — work learning_asyncio one lesson file at a time:
    1. test_coroutine_basics.py
    2. test_tasks_and_gather.py
    3. test_event_and_queue.py
    4. test_cancellation_and_timeouts.py

Time and scope (rough)

Area Indicative hours Comment
Asyncio / coroutines 8–12 Four lesson files; cancellation/shield is the steepest.

Success metrics

You can explain, with EventLog evidence:

  • Why calling an async def does not run its body
  • How create_task / gather schedule concurrent progress
  • How Event and Queue coordinate without threads
  • How cancellation and wait_for interact with shield and why swallowing CancelledError breaks the contract