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.1.0.tar.gz (16.6 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.1.0-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: claude_python_plugin-0.1.0.tar.gz
  • Upload date:
  • Size: 16.6 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.1.0.tar.gz
Algorithm Hash digest
SHA256 cad2664d9d6e33e400702cb3dacca70a5c25e5b3fc4d84417054b11603c4d150
MD5 5176d1a16db96f7234ed7c4cc56ab8c2
BLAKE2b-256 f02f3b996933151377bec7f2ee4e08c71e683c044afc1e9c9bbc9e61819bc727

See more details on using hashes here.

File details

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

File metadata

  • Download URL: claude_python_plugin-0.1.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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 540a9108116a15c0ed6f54bbc3884741ef3ce848bef32d6671182f8062856617
MD5 06ccc079891d4a02427a94e06086cf2a
BLAKE2b-256 0581c44e54ba98bdb7cbdacb805a64c99d87c2986b2926168b6511ca033f7b7d

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