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
Metadata
Release files for py-smart-verify 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| py_smart_verify-1.1.0.tar.gz | 57.5 kB | Without provenance | Details for py_smart_verify-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| py_smart_verify-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for py_smart_verify-1.1.0-py3-none-any.whl |
Total release size: 94.4 kB
Release files / py_smart_verify-1.1.0.tar.gz
| Download URL | py_smart_verify-1.1.0.tar.gz |
|---|---|
| Size | 57.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d81b543657d3db3f14cebe156d02be4bbe01f3338c116d3f061eb224411a1e85
|
|
BLAKE2b-256 checksum How to use checksums |
92cb48314566c3c0c7c1b40bdba0a1e7ff35887ac71bf0bfc8b4b04ea44fe6a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / py_smart_verify-1.1.0-py3-none-any.whl
| Download URL | py_smart_verify-1.1.0-py3-none-any.whl |
|---|---|
| Size | 36.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fc7dd0a6b37f112fd16809da63ef62ab35de36532d1b3722a7676fd0f97786a1
|
|
BLAKE2b-256 checksum How to use checksums |
2fe58570cf638c8f66e325adb8b343542195cd755e1dfcf9f1260f7d4124ac79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for py-smart-verify 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.