|
|
Accidental quadratics: an index-backed join and a streaming top-k
|
Medium
|
End-to-End
|
|
|
|
A registry that does not prevent collection
|
Medium
|
Primitives
|
|
|
|
asdict() and astuple(): the deep-copy tax
|
Hard
|
Framework
|
|
|
|
A typed factory fixture
|
Hard
|
Primitives
|
|
|
|
Capstone: an immutable domain model that survives review
|
Hard
|
End-to-End
|
|
|
|
Class patterns, __match_args__ and an expression simplifier
|
Medium
|
End-to-End
|
|
|
|
ClassVar, field(), and the counter that must reset
|
Easy
|
Primitives
|
|
|
|
Converters and validate-on-assignment: what attrs buys you
|
Medium
|
Primitives
|
|
|
|
Dataclasses: slots, frozen, order
|
Easy
|
Primitives
|
|
|
|
@dataclass is a code generator: what it emits
|
Easy
|
Primitives
|
|
|
|
dataclass_transform (PEP 681): making your own decorator type-checkable
|
Hard
|
Framework
|
|
|
|
Does this version satisfy this specifier?
|
Medium
|
Primitives
|
|
|
|
eq, hash, and the eq/frozen/unsafe_hash truth table
|
Hard
|
Framework
|
|
|
|
field(): the seven knobs that change generated behaviour
|
Medium
|
Primitives
|
|
|
|
frozen=True: what it buys, what it costs, and what it does not do
|
Medium
|
Primitives
|
|
|
|
Generic dataclasses, Self, and the covariance question
|
Hard
|
Framework
|
|
|
|
Graceful Shutdown of a Process Pool
|
Hard
|
End-to-End
|
|
|
|
Guards, OR patterns, AS patterns and the binding rules
|
Medium
|
End-to-End
|
|
|
|
heapq: a priority queue that is FIFO among equal priorities
|
Medium
|
Primitives
|
|
|
|
Identity vs equality: fix the planted `is`
|
Easy
|
Primitives
|
|
|
|
kw_only, KW_ONLY and the inheritance ordering wall
|
Medium
|
Primitives
|
|
|
|
order=True, the 3.13 __eq__ change, and orderings that are not tuples
|
Hard
|
Primitives
|
|
|
|
Parse at the boundary, dataclasses in the core
|
Hard
|
End-to-End
|
|
|
|
Parse, don't validate: the boundary returns a narrower type
|
Medium
|
End-to-End
|
|
|
|
__post_init__ and InitVar: parameters that are consumed, not stored
|
Medium
|
Primitives
|
|
|
|
replace(), copy.replace(), and the mypy gap between them
|
Hard
|
Framework
|
|
|
|
Runtime introspection after PEP 649: Field.type is not a type
|
Hard
|
Framework
|
|
|
|
Serializing dataclasses properly: round-trips, paths and schema versions
|
Hard
|
End-to-End
|
|
|
|
__slots__, part 2: the eight things it breaks
|
Hard
|
Framework
|
|
|
|
The configuration boundary in practice: file, environment, argv, one Config
|
Medium
|
End-to-End
|
|
|
|
The mutable-default trap — and why the guard is weaker than you think
|
Easy
|
Primitives
|
|
|
|
Typed settings: parse the environment once, report every problem
|
Medium
|
End-to-End
|
|
|
|
Writing generic code over dataclasses under --strict
|
Hard
|
Framework
|
|