Metadata-Version: 2.4
Name: py-smart-verify
Version: 1.1.0
Summary: Professional Python verification CLI tool combining linting, type checking, and smart testing
Project-URL: Homepage, https://github.com/jinto-ag/py_smart_verify
Project-URL: Repository, https://github.com/jinto-ag/py_smart_verify
Project-URL: Issues, https://github.com/jinto-ag/py_smart_verify/issues
Author: Jinto AG
License: MIT
License-File: LICENSE
Keywords: cli,linting,quality,testing,type-checking,verification
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: py-smart-test>=1.3.0
Requires-Dist: pydantic>=2.12.5
Requires-Dist: rich>=14.3.2
Requires-Dist: typer>=0.23.1
Provides-Extra: all-tools
Requires-Dist: black>=26.1.0; extra == 'all-tools'
Requires-Dist: coverage>=7.13.4; extra == 'all-tools'
Requires-Dist: flake8>=7.3.0; extra == 'all-tools'
Requires-Dist: isort>=7.0.0; extra == 'all-tools'
Requires-Dist: pylance>=2.0.1; extra == 'all-tools'
Requires-Dist: pyright>=1.1.408; extra == 'all-tools'
Requires-Dist: pytest>=9.0.2; extra == 'all-tools'
Requires-Dist: ruff>=0.15.1; extra == 'all-tools'
Provides-Extra: dev
Requires-Dist: coverage>=7.13.4; extra == 'dev'
Requires-Dist: pytest>=9.0.2; extra == 'dev'
Provides-Extra: mcp
Requires-Dist: mcp[cli]>=1.0.0; extra == 'mcp'
Description-Content-Type: text/markdown

# 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](https://pypi.org/project/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

```bash
pip install py-smart-verify
```

Or with [uv](https://github.com/astral-sh/uv):

```bash
uv add py-smart-verify
```

### Optional tools

Install all supported verification tools:

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

## Quick start

```bash
# 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.

```bash
# 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.

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

### `affected`

List tests affected by code changes.

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

### `regen-graph`

Regenerate the py-smart-test dependency graph.

```bash
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](LICENSE)
