Releases: ludo-technologies/python-best-practices
Releases · ludo-technologies/python-best-practices
v0.2.0
v0.2.0
Corrections to the rule set, surfaced by a cross-cutting review with subagents. This release fixes 8 high-severity issues — incorrect or unsafe code examples and one structural mismatch.
Fixes & Improvements
- async-semaphore — Create the
Semaphoreinside a running loop (avoid wrong-loopRuntimeError); cache one semaphore per loop and drop the module-level example - async-create-task — Fix
collections.abc.Setmisuse →set[asyncio.Task[None]]; retrieve task results in the done-callback; clarify fire-and-forget vs.TaskGroup - async-gather — Inspect
return_exceptions=Trueresults withisinstance, handlingCancelledError(aBaseException) explicitly; note siblings keep running on default failure; mentionasyncio.timeout() - design-single-responsibility — Flag SHA-256 as unsafe for passwords (use argon2/bcrypt); drop field-less
@dataclassusage - oop-dataclass — Document the mutable-default pitfall (
field(default_factory=...)),frozen/__hash__, andDecimalfor money - oop-protocol — Add an ABC example for shared implementation and the
@runtime_checkablesignature limitation - oop-property — Warn against property overuse; assign via the setter in
__init__; notecached_propertyis not thread-safe - pkg-uv — Lead with the
uv.lockproject workflow (uv add/lock/sync/run); demoteuv pip compileto a pip-compatibility section - Moved
tooling.mdout ofrules/so the rule count (18) matches the directory contents
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Initial Release
Python best practices skill for AI coding agents.
Skills
coding-standards - 18 rules across 4 categories
- Performance Optimization
- Async Processing
- Design Principles
- Object-Oriented Programming
tooling - 7 rules across 6 categories
- Analysis, Linting, Type Checking, Formatting, Testing, Package Management
Installation
uvx add-skills ludo-technologies/python-best-practices