OverviewHistoryStatsSecurity
npx skills add ...
Documentation
SKILL.md
npx skills add julianobarbosa/claude-code-skills --skill writing-python
Idiomatic Python 3.14+ development. Use when writing Python code, CLI tools, scripts, or services. Emphasizes stdlib, type hints, uv/ruff toolchain, and minimal dependencies.
npx skills add julianobarbosa/claude-code-skills --skill writing-python
from __future__ import annotationst"Hello {name}" returns Template objectexcept ValueError, TypeError:This skill now subsumes the former python-code-style and python-type-safety skills. Their original SKILL.md content is preserved as deep reference:
| Subject | Path |
|---|---|
| ruff, mypy, naming, imports, docstrings (Google style) | References/code-style.md |
| Type annotations, generics, protocols, strict checking patterns | References/type-safety.md |
For system-reliability concerns (background jobs, retries, observability), see the sibling python-infrastructure skill. For dependency management and project scaffolding, see uv.
from __future__ import annotations makes ALL annotations strings — runtime introspection (typing.get_type_hints) needs the actual types available; forward refs to local-scope classes fail.f"{var=}") is 3.8+ — quietly fails (treats = as literal) in 3.7 and earlier.dataclass(slots=True) is 3.10+ — silently does nothing in 3.9. Use __slots__ manually for portability.int | None) is 3.10+ at runtime — works as a string annotation in 3.9 with from __future__ import annotations, fails at runtime introspection.async def vs def for FastAPI dependencies: async deps run in the event loop; sync deps run in a thread pool. Mixing without thought causes either blocking or extra context-switch overhead.from dataclasses import dataclass, field
@dataclass
class Config:
host: str
port: int = 8080
tags: list[str] = field(default_factory=list)match event:
case {"type": "click", "x": x, "y": y}:
handle_click(x, y)
case {"type": "key", "code": code}:
handle_key(code)
case _:
raise ValueError(f"Unknown event: {event}")uv sync # Install deps
ruff check --fix . # Lint and autofix
ruff format . # Format
pytest -v # Test
mypy . # Type check