Skip to main content

Version-aware BAD/GOOD pattern guides that help AI coding agents generate modern Python

Project description

modern-python-guidance

CI PyPI version Python License

Stop your AI from writing typing.List, @validator, and setup.py. 39 version-aware BAD/GOOD pattern guides that teach AI coding agents to write modern Python — delivered via MCP, CLI, or Agent Skills.

Highlights

  • Measurable impact: +14.7pp overall improvement in A/B benchmark via Agent Skills (38 scored items, details). Largest variant (FastAPI, 32 items): Control 60.4% → Treatment 82.3%
  • 39 guides across stdlib, Pydantic, FastAPI, Django, SQLAlchemy, pytest, and toolchain
  • Version-aware: auto-detects your project's Python version and filters guides accordingly
  • 3 delivery methods: MCP server, CLI, Agent Skills plugin
  • Not Ruff: Ruff auto-fixes syntax (Listlist). mpg guides design decisions that Ruff can't touch — TaskGroup over gather, Pydantic V2 migration, SQLAlchemy 2.0 style

Note: The tool itself requires Python 3.11+ to run. Guides cover patterns from Python 3.9 onward, and --python-version filters guides for your target environment.

Quick start

MCP (for AI coding agents)

Install, then register the MCP server with your agent:

pip install modern-python-guidance

Claude Code:

claude mcp add mpg -- mpg mcp

Other MCP-compatible agents (Cursor, Windsurf, etc.) — add to your MCP config:

{
  "mcpServers": {
    "mpg": {
      "command": "mpg",
      "args": ["mcp"]
    }
  }
}

Your agent gets access to search_guides, retrieve_guides, list_guides, and detect_python_version.

CLI

pip install modern-python-guidance

# Search for a pattern
mpg search "pydantic validator"

# Get the full guide
mpg retrieve pydantic-v2-validators

Agent Skills (Claude Code plugin)

# Symlink into your project
SKILL_DIR=$(python -c "from pathlib import Path; import modern_python_guidance; print(Path(modern_python_guidance.__file__).parent / 'skills' / 'modern-python-guidance')")
ln -s "$SKILL_DIR" your-project/.claude/skills/modern-python-guidance

mpg is the short alias for modern-python-guidance. Both work.

CLI usage

# Search guides by keyword
mpg search "pydantic validator"

# Retrieve a specific guide (full BAD/GOOD content)
mpg retrieve use-builtin-generics

# List all guides compatible with your Python version
mpg list --python-version 3.11

# Auto-detect project Python version from pyproject.toml / .python-version
mpg detect-version

# Filter by category
mpg search "timeout" --category async

# JSON output (default when piped, explicit with --format)
mpg search "typing" --format json | jq '.[0].id'

Guide coverage

39 guides across 3 layers:

Layer Categories Count Examples
1 — stdlib typing, async, stdlib, data-structures 16 list over List, match/case, TaskGroup
2 — frameworks pydantic, fastapi, httpx, django, sqlalchemy, pytest 18 Pydantic V2 migration, SQLAlchemy 2.0 style, Annotated[Depends]
3 — toolchain toolchain 5 uv over pip, ruff over flake8, pickle avoidance

Run mpg list to see all 39 guides, or browse them on GitHub.

Version-aware filtering

Guides specify their minimum Python version. The CLI auto-detects your project's version from (in order):

  1. --python-version flag
  2. pyproject.toml requires-python
  3. .python-version file
  4. Default: 3.11
# Only shows guides compatible with Python 3.9
mpg list --python-version 3.9
# Excludes: TaskGroup (3.11+), match/case (3.10+), etc.

Development

git clone https://github.com/yottayoshida/modern-python-guidance.git
cd modern-python-guidance
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest

See CONTRIBUTING.md for project structure and guide authoring details.

License

Apache-2.0 OR MIT — see LICENSE and LICENSE-MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

modern_python_guidance-0.2.3.tar.gz (91.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

modern_python_guidance-0.2.3-py3-none-any.whl (65.8 kB view details)

Uploaded Python 3

File details

Details for the file modern_python_guidance-0.2.3.tar.gz.

File metadata

  • Download URL: modern_python_guidance-0.2.3.tar.gz
  • Upload date:
  • Size: 91.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for modern_python_guidance-0.2.3.tar.gz
Algorithm Hash digest
SHA256 f3e5cbf2d1a313e72f0cd536f7b906e6d6d707bd2183e1a34aaadef968857ba6
MD5 45055a35c6b5500a6a56e2a32d508f1d
BLAKE2b-256 0f9ae5ae874edfc3bf43df409e08823640a641c6cf5620b2703042af7b9abd29

See more details on using hashes here.

Provenance

The following attestation bundles were made for modern_python_guidance-0.2.3.tar.gz:

Publisher: publish.yml on yottayoshida/modern-python-guidance

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modern_python_guidance-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for modern_python_guidance-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e2313cd700aff576b8f9b0c5bb609da9d73daabea5ccd30881a3b82fee9ceb7b
MD5 bb9d06543dad77c90376e3df1564f497
BLAKE2b-256 cabf5accb7efbf8a45238ec6fe7ac82e83e54b91ec2630c1b489c09d1f1b2aae

See more details on using hashes here.

Provenance

The following attestation bundles were made for modern_python_guidance-0.2.3-py3-none-any.whl:

Publisher: publish.yml on yottayoshida/modern-python-guidance

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page