From python-development
Python development — use when the user works with .py files, pyproject.toml, uv, ruff, mypy, pytest, async/await, MicroPython, CLI tools, or PyPI publishing. Covers modern tooling, best practices, library architecture, functional patterns, and production workflows. NOT for TypeScript or JavaScript development (use typescript-development), NOT for React component patterns (use react-development).
How this skill is triggered — by the user, by Claude, or both
Slash command
/python-development:python-developmentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Expert guidance for modern Python development (Python 3.11-3.14+), covering everything from simple scripts to production-grade systems, library architecture, and embedded development.
assets/CONTRIBUTING.md.templateassets/README.md.templateassets/example-config.pyassets/example-exceptions.pyassets/example.pre-commit-config.yamlassets/hatch_build.pyassets/nested-typer-exceptions/README.mdassets/nested-typer-exceptions/nested-typer-exception-explosion.pyassets/nested-typer-exceptions/nested-typer-exception-explosion_corrected_rich_console.pyassets/nested-typer-exceptions/nested-typer-exception-explosion_corrected_typer_echo.pyassets/nested-typer-exceptions/nested-typer-exception-explosion_naive_workaround.pyassets/project-structure.txtassets/pyproject-toml-template.tomlassets/pyproject.toml.templateassets/test-structure.txtassets/typer_examples/console_containers_no_wrap.pyassets/typer_examples/console_no_wrap_example.pyassets/typer_examples/index.mdassets/version.pybest-practices-README.mdExpert guidance for modern Python development (Python 3.11-3.14+), covering everything from simple scripts to production-grade systems, library architecture, and embedded development.
Activate this skill when:
.py files, pyproject.toml, or uv.lockuv, pytest, ruff, or mypyChoose your complexity level:
| Tier | Use Case | Setup |
|---|---|---|
| Minimal | Single-file utilities, scripts | Just Python 3.12+ |
| Standard | Multi-file projects, team work | Python + uv + ruff + mypy + pytest |
| Full | PyPI packages, production systems | Complete tooling ecosystem + CI/CD |
Default to Standard - it covers most use cases.
# Install Python 3.12+ and uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create new project
uv init my-project
cd my-project
# Add dependencies
uv add requests pydantic httpx
# Add dev dependencies
uv add --dev pytest pytest-cov ruff mypy
# Run quality checks
uv run ruff check . # Linting
uv run ruff format . # Formatting
uv run mypy . # Type checking
uv run pytest --cov # Tests with coverage
uv.lock for reproducible buildsuv init my-project && cd my-project # Initialize
uv add requests pandas numpy # Add deps
uv add --dev pytest ruff mypy # Add dev deps
uv sync # Sync with lockfile
uv lock --upgrade # Update lockfile
uv run python script.py # Run code
uv run pytest # Run tests
ruff check . # Check for issues
ruff check --fix . # Auto-fix issues
ruff format . # Format code
mypy . # Type check entire project
mypy --strict . # Strict mode
myproject/
├── src/
│ └── myproject/
│ ├── __init__.py
│ ├── main.py
│ └── utils.py
├── tests/
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_main.py
│ └── test_utils.py
├── docs/
├── .gitignore
├── .python-version
├── pyproject.toml
├── uv.lock
└── README.md
[project]
name = "myproject"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = ["requests>=2.31.0"]
[project.optional-dependencies]
dev = ["pytest>=8.0.0", "ruff>=0.8.0", "mypy>=1.13.0"]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "N", "W", "B", "Q"]
[tool.mypy]
python_version = "3.11"
strict = true
[tool.pytest.ini_options]
testpaths = ["tests"]
| Avoid | Do Instead |
|---|---|
Mutable default args def f(lst=[]) | def f(lst=None) |
requests.get in async | httpx.AsyncClient |
| Classes for data bags | @dataclass(frozen=True) |
| Inheritance hierarchies | Protocols + composition |
| Mutating function args | Return new values |
try/except Exception | Specific exception types |
| Blocking in async | await asyncio.to_thread(fn) |
from module import * | Explicit imports |
Bare except: | except (ValueError, KeyError) |
Every Python task must pass:
uv run ruff format .uv run ruff check .uv run mypy .uv run pytest (>80% coverage)list[str] not List[str])For critical code (payments, auth, security):
uv run bandit -r src/See Extended Patterns for detailed code examples, testing patterns, async patterns, itertools/functools usage, library architecture, workflow routing, and complete reference file listings.
npx claudepluginhub viktorbezdek/skillstack --plugin python-developmentProvides tiered Python development guidance from simple scripts to production systems, covering PEP-8 style, Ruff linting, pytest testing, mypy typing, uv tooling, security, and packaging.
Sets up Python projects with uv for deps/envs, ruff for linting/formatting, ty for types, pytest for testing. Use for new projects, scripts, or migrations from pip/Poetry.
Configures Python projects with modern tooling (uv, ruff, ty). Use when creating projects, writing standalone scripts, or migrating from pip/Poetry/mypy/black.