Python Conventions

Apply Python conventions — uv, Ruff strict, mypy strict, pytest, pip-audit.

swell-agents 0fa644d 1.2 KB Updated

File contents

Default Stack

If the repo doesn't define its own tooling, use:

  • UV — dependency management, builds, running scripts
  • GitHub Actions — CI/CD
  • Ruff — linting and formatting, with these rule sets:
    • E (pycodestyle errors), F (pyflakes), I (isort), UP (pyupgrade)
    • B (flake8-bugbear), SIM (flake8-simplify), PTH (pathlib)
    • PIE (flake8-pie), RUF (ruff-specific), T201 (no print)
    • PLC0415 (import-outside-toplevel)
  • mypy — strict mode (strict = true, warn_return_any = true, warn_unused_configs = true)
  • pytest — testing (pytest-cov, pytest-asyncio)
  • vulture — dead code detection
  • pip-audit — dependency security audit

Scratch Testing

ALWAYS use test.py in project root for:

  • Ad-hoc testing, API calls, data exploration
  • Any Python code that isn't a formal test or production code
  • NEVER use inline Python heredocs via Bash (uv run python3 << 'EOF')

Write code to test.py, then run with uv run python test.py. Comment out previous code — keeps history. Gitignored — never commit.

swell-agents/coding-skills/tree/main/skills/python-conventions commit 0fa644d490

Frequently asked questions

npx skillmds@latest add swell-agents/python-conventions