Skip to main content

Claude Code plugin: ruff + mypy + pytest + uv hooks and Python skills.

Project description

python-plugin

Claude Code plugin that wires the modern Python toolchain into every agent session: ruff for lint + format, mypy for strict static types, uv for envs and lockfile, pytest for related-test execution, and a missing-test warning for new modules.

Ships:

  • Hooks (PostToolUse after Edit | Write | MultiEdit):
    • posttooluse-ruffruff check + ruff format --check on edited .py.
    • posttooluse-mypy — type-check edited .py against the project's mypy config.
    • posttooluse-pytest — run pytest tests related to edited .py (companion test_<name>.py discovery; falls back to --lf).
    • posttouse-test-required — warn on new non-test .py without a sibling test_<name>.py.
    • posttooluse-uv-lock — re-lock pyproject.toml changes via uv lock.
  • Skills:
    • python — unified Python coding standard (load on any .py interaction).
    • python-ruff, python-mypy, python-uv, python-pytest, python-pypi — per-tool deep dives for fine-grained enablement.

Install

Add to your Claude Code marketplace plugins, or symlink the repo into ~/.claude/plugins/.

Per-shell toggles

Each hook honors a PYTHON_PLUGIN_<NAME>=0 env var to disable it:

  • PYTHON_PLUGIN_RUFF
  • PYTHON_PLUGIN_MYPY
  • PYTHON_PLUGIN_PYTEST
  • PYTHON_PLUGIN_REQUIRE_TESTS
  • PYTHON_PLUGIN_UV_LOCK

Requirements

  • python3 on PATH (3.11+).
  • One of ruff, mypy, pytest, uv available — either project-local in .venv/bin/, globally installed, or invocable via uvx. Hooks skip silently when their tool isn't reachable; CI is the source of truth.

License

Apache-2.0.

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

claude_python_plugin-0.2.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

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

claude_python_plugin-0.2.0-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file claude_python_plugin-0.2.0.tar.gz.

File metadata

  • Download URL: claude_python_plugin-0.2.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for claude_python_plugin-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3f023567608c2f5c259b4da504f357ce703de19518991a46c40044c4b8c461e9
MD5 27be66b413b38da4709b0c47278633da
BLAKE2b-256 f94f68cc0222eac4698ff84b66860887e297411af311b6ce795975ba2d9e14b4

See more details on using hashes here.

File details

Details for the file claude_python_plugin-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: claude_python_plugin-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for claude_python_plugin-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 89a8c201c14f8f243548e3df3da1085536ee8ca94cf4c9a270dd9bf3cfc7c98b
MD5 edd25fe9f7ceac6311239ef017e0404e
BLAKE2b-256 353ea18dea66d1034a40ac51154ff9d3c77e3d83ddedcd92aade2f16462d9e64

See more details on using hashes here.

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