python-conventions

Solid

Python code conventions covering type hints, Ruff formatting/linting, mypy/pyright, pytest, async I/O, uv packaging, and dependency security scanning. Load when writing or reviewing Python code.

Code & Development 137 stars 13 forks Updated today MIT

Install

View on GitHub

Quality Score: 84/100

Stars 20%
71
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
64
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

- Python 3.10+, type hints on all public APIs, avoid `Any` — use precise types, generics, or `typing.Protocol`. - Formatting/linting: a fast linter/formatter (e.g., Ruff), zero warnings; strict static type checking (e.g., mypy or pyright). Security: a SAST tool (e.g., Bandit). - Testing: `pytest` with function-based tests, `pytest-cov` (80%+), `hypothesis` for property-based. - Error handling: specific exceptions only, never bare `except:`, `contextlib.suppress` for intentional ignoring. - Dataclasses or Pydantic for structured data — avoid raw dicts for known schemas. - `pathlib.Path` over `os.path` for filesystem operations. Google-style docstrings on public APIs. - Async: `async`/`await` for I/O, never mix blocking and async, `asyncio.gather()` for concurrency. - Package management: a fast, lockfile-based package manager (e.g., uv) with the lockfile committed, build with a PEP 517 backend (e.g., maturin or hatchling). - Security: `pip-audit` for dependency CVE scanning. Zero tolerance for critical/high vulnerabilities. - Logging: structured logging (key=value / JSON) — never f-strings in log calls. - Pattern matching (`match`/`case`) for multi-branch type dispatch (3.10+). - Anti-patterns: mutable default args, `import *`, global state, `time.sleep` in async.

Details

Author
Goldziher
Repository
Goldziher/ai-rulez
Created
1 years ago
Last Updated
today
Language
Go
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category