--- description: "Python coding conventions: PEP 8, type hints, pydantic, pytest, async patterns, project structure" globs: ["**/*.py", "**/pyproject.toml", "**/requirements*.txt"] --- # Python - Follow PEP 8: snake_case for functions/variables, PascalCase for classes, UPPER_CASE for constants - Use type hints on all function signatures; validate with `mypy` or `pyright` - Use `pydantic` for data validation and serialization - Import order: stdlib -> third-party -> local; use absolute imports - Use `src/` layout to separate app code from project files - Use context managers (`with`) for resource management - Catch specific exceptions, never bare `except:`; use custom exception classes - Use `async`/`await` with `asyncio` for I/O-bound concurrency - Use `pytest` for testing (not `unittest`); fixtures for setup/teardown - Use virtual environments (`venv` or `poetry`); pin dependencies - Format with `black`; lint with `ruff` or `flake8`