Skip to main content

Professional Python verification CLI tool combining linting, type checking, and smart testing

Project description

py-smart-verify

Professional Python verification CLI tool combining linting, type checking, and smart testing into a single command.

Features

  • Unified pipeline - Run formatters, linters, type checkers, and tests in one command
  • Smart testing - Only run tests affected by your changes (via py-smart-test)
  • Caching - Skip steps that haven't changed since the last run
  • Dependency graph - Detect circular dependencies and visualize module relationships
  • Code analysis - Check architecture guidelines, import patterns, and coding standards

Installation

pip install py-smart-verify

Or with uv:

uv add py-smart-verify

Optional tools

Install all supported verification tools:

pip install py-smart-verify[all-tools]

Quick start

# Run all quality checks (format, lint, type check, analyze)
py-smart-verify verify quality

# Run tests (smart mode - only affected tests)
py-smart-verify verify tests

# Run everything
py-smart-verify verify

# Use the short alias
pyv verify quality

Commands

verify

Run verification checks on Python code.

# Run specific tasks
py-smart-verify verify ruff mypy

# Run with options
py-smart-verify verify --no-cache --continue quality
py-smart-verify verify --paths src,lib --full-tests
py-smart-verify verify --staged tests  # pre-commit mode

Options:

Flag Description
--no-cache Disable caching
--continue Continue after errors (default: fast-fail)
--paths Paths to verify (comma-separated)
--full-tests Run all tests with smart prioritization
--staged Test only staged changes (pre-commit mode)
--since REF Git ref for smart test diff (default: main)
--skip-tests Skip test execution
-v Verbose output

graph

Build and display the dependency graph.

py-smart-verify graph
py-smart-verify graph --output deps.json

affected

List tests affected by code changes.

py-smart-verify affected
py-smart-verify affected --since main --json

regen-graph

Regenerate the py-smart-test dependency graph.

py-smart-verify regen-graph

Available tasks

Category Tasks
Formatters format (black), isort, ruff-fix
Linters flake8, pyflakes
Type checkers mypy, pyright, basedpyright
Analyzers architecture, standards, imports, circular-deps, deprecations
Testing tests, full-tests, e2e-tests, full-e2e-tests
Composite quality (all formatters + linters + type checkers + analyzers)

Requirements

  • Python 3.11+
  • Individual tools (ruff, mypy, etc.) installed separately or via py-smart-verify[all-tools]

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

py_smart_verify-1.1.0.tar.gz (57.5 kB view details)

Uploaded Source

Built Distribution

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

py_smart_verify-1.1.0-py3-none-any.whl (36.9 kB view details)

Uploaded Python 3

File details

Details for the file py_smart_verify-1.1.0.tar.gz.

File metadata

  • Download URL: py_smart_verify-1.1.0.tar.gz
  • Upload date:
  • Size: 57.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for py_smart_verify-1.1.0.tar.gz
Algorithm Hash digest
SHA256 d81b543657d3db3f14cebe156d02be4bbe01f3338c116d3f061eb224411a1e85
MD5 dd1ae547313dd44422c9b71d5ebe9f55
BLAKE2b-256 92cb48314566c3c0c7c1b40bdba0a1e7ff35887ac71bf0bfc8b4b04ea44fe6a3

See more details on using hashes here.

File details

Details for the file py_smart_verify-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: py_smart_verify-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 36.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for py_smart_verify-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc7dd0a6b37f112fd16809da63ef62ab35de36532d1b3722a7676fd0f97786a1
MD5 c3566b80b1a7ca3fae03bc0ced73bf26
BLAKE2b-256 2fe58570cf638c8f66e325adb8b343542195cd755e1dfcf9f1260f7d4124ac79

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