Lesson 122: typing generics, overloads, TypeAlias
Focus
Assume a reviewer executes this verbatim: Advanced drills typing generics, overloads, TypeAlias; spin token 1051124 makes this page unlike its neighbours.
Key ideas
- Angle
Advanced: micro cadence2mixestyping generics, overloads, TypeAlias; spin21887. - Ritual: Swap one benign literal twice to see binding effects.
- Guardrail: name the surprise that triggered when literals shifted.
Example (LESSON_UID = "advanced-122")
# Advanced drill L122 topic-12 micro-1 pattern-6
LESSON_UID = "advanced-122"
spin_a, spin_b, spin_c = 841, 52, 213
start = 13 + 1 % 5
leap = 9
span = 63
bucket = []
for idx in range(start, start + span):
bucket.append(idx * (spin_a % 37 + leap))
squares = tuple(x * x if x % 2 == (1 % 2) else -x for x in bucket[-4:])
print(bucket, squares)
from pathlib import Path
import tempfile
with tempfile.TemporaryDirectory() as scratch:
target = Path(scratch) / "scratch-122.txt"
snap = [135, 981, 836, 691]
target.write_text("\n".join(str(x) for x in snap), encoding="utf-8")
print("scratch_bytes", target.stat().st_size, "rolling", sum(snap) % (213 + 131))
import asyncio
async def finalize(seed, spin):
await asyncio.sleep(0)
blend = (seed * 131 + 12 * (12 % 997) + 1 * (1 % 853) + spin) % 900001
return blend
async def harness(loop_seed):
print("async_result", await finalize(loop_seed, 38445))
asyncio.run(harness(16718))
Practice
Practice 19: Promote hottest literal into named constant; justify naming aloud. Literal nudge 19.
Fingerprints
- lesson_uid:
advanced-122 - umbrella band:
typing generics, overloads, TypeAlias(2/10) - lesson_index:
3880