← ClaudeAtlas

ia-python-serviceslisted

Python patterns for CLI tools, async concurrency, and backend services. Use when working with Python code, building CLI apps, FastAPI services, async with asyncio, background jobs, or configuring uv, ruff, ty, pytest, or pyproject.toml.
iliaal/whetstone · ★ 20 · AI & Automation · score 84
Install: claude install-skill iliaal/whetstone
# Python Services & CLI ## Modern Tooling | Tool | Replaces | Purpose | |------|----------|---------| | **uv** | pip, virtualenv, pyenv, pipx | Package/dependency management | | **ruff** | flake8, black, isort | Linting + formatting | | **ty** | mypy, pyright | Type checking (Astral, faster) | - `uv init --package myproject` for distributable packages, `uv init` for apps - `uv add <pkg>`, `uv add --group dev <pkg>`, never edit pyproject.toml deps manually - `uv run <cmd>` instead of activating venvs -- auto-activates the venv without explicit activation - `uv add --upgrade <pkg>` to upgrade a single package without touching others - `uv tree --outdated` to preview what would be upgraded before committing - `uv.lock` goes in version control - Use `[dependency-groups]` (PEP 735) for dev/test/docs, not `[project.optional-dependencies]` - PEP 723 inline metadata for standalone scripts with deps - `ruff check --fix . && ruff format .` for lint+format in one pass **Standard project layout:** ``` src/mypackage/ __init__.py main.py services/ models/ tests/ conftest.py test_main.py pyproject.toml ``` See [cli-tools.md](./references/cli-tools.md) for Click patterns, argparse, and CLI project layout. ## Parallelism | Workload | Approach | |----------|----------| | Many concurrent I/O calls | `asyncio` (gather, create_task) | | CPU-bound computation | `multiprocessing.Pool` or `concurrent.futures.ProcessPoolExecutor` | | Mixed I/O + CPU | `asyncio.to_thread