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).
npx claudepluginhub viktorbezdek/skillstack --plugin python-developmentThis skill uses the workspace's default tool permissions.
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.mdCompares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Designs, implements, and audits WCAG 2.2 AA accessible UIs for Web (ARIA/HTML5), iOS (SwiftUI traits), and Android (Compose semantics). Audits code for compliance gaps.
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.
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.