Python Coding Guidelines
Python coding guidelines and best practices. Use when writing, reviewing, or refactoring Python code. Enforces PEP 8 style, syntax validation via py_compile, unit test execution, modern Python version
Python coding guidelines and best practices. Use when writing, reviewing, or refactoring Python code. Enforces PEP 8 style, syntax validation via py_compile, unit test execution, modern Python version
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
# Syntax check (always) python -m py_compile *.pyRun tests if present
python -m pytest tests/ -v 2>/dev/null || python -m unittest discover -v 2>/dev/null || echo "No tests found"
Format check (if available)
ruff check . --fix 2>/dev/null || python -m black --check . 2>/dev/null
Check for uv first, fall back to pip:
# Prefer uv if available if command -v uv &>/dev/null; then uv pip install <package> uv pip compile requirements.in -o requirements.txt else pip install <package> fi
For new projects with uv:
uv init or uv venv && source .venv/bin/activate
# ✅ List/dict comprehensions over loops squares = [x**2 for x in range(10)] lookup = {item.id: item for item in items}✅ Context managers for resources
with open("file.txt") as f: data = f.read()
✅ Unpacking
first, *rest = items a, b = b, a # swap
✅ EAFP over LBYL
try: value = d[key] except KeyError: value = default
✅ f-strings for formatting
msg = f"Hello {name}, you have {count} items"
✅ Type hints
def process(items: list[str]) -> dict[str, int]: ...
✅ dataclasses/attrs for data containers
from dataclasses import dataclass
@dataclass class User: name: str email: str active: bool = True
✅ pathlib over os.path
from pathlib import Path config = Path.home() / ".config" / "app.json"
✅ enumerate, zip, itertools
for i, item in enumerate(items): ... for a, b in zip(list1, list2, strict=True): ...
# ❌ Mutable default arguments def bad(items=[]): # Bug: shared across calls ... def good(items=None): items = items or []❌ Bare except
try: ... except: # Catches SystemExit, KeyboardInterrupt ... except Exception: # Better ...
❌ Global state
❌ from module import *
❌ String concatenation in loops (use join)
❌ == None (use
)is None❌ len(x) == 0 (use
)not x
test_*.py, test functions test_*python -m pytest -vdef fetch_user(user_id: int, include_deleted: bool = False) -> User | None: """Fetch a user by ID from the database.Args: user_id: The unique user identifier. include_deleted: If True, include soft-deleted users. Returns: User object if found, None otherwise. Raises: DatabaseError: If connection fails. """
py_compile)pytest).format() or %pathlib for file pathsNo automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.