Metadata-Version: 2.4
Name: intentumdiff-python
Version: 0.0.1
Requires-Dist: click>=8.1
Requires-Dist: pydantic>=2.7
Requires-Dist: rich>=13.0
Requires-Dist: rich-click>=1.8
Requires-Dist: unidiff>=0.7
Requires-Dist: pygments>=2.17
Requires-Dist: pyyaml>=6.0
Requires-Dist: wasmtime>=47.0.1
Requires-Dist: defusedxml>=0.7
Requires-Dist: pathspec>=0.12
Requires-Dist: watchdog>=3.0
Requires-Dist: duckdb>=0.10 ; extra == 'analytics'
Requires-Dist: numpy>=1.26 ; extra == 'analytics'
Requires-Dist: pandas>=2.0 ; extra == 'analytics'
Requires-Dist: pytest>=8.0 ; extra == 'dev'
Requires-Dist: pytest-snapshot ; extra == 'dev'
Requires-Dist: pytest-benchmark>=4.0 ; extra == 'dev'
Requires-Dist: pytest-timeout>=2.3 ; extra == 'dev'
Requires-Dist: coverage>=7.0 ; extra == 'dev'
Requires-Dist: ruff>=0.4 ; extra == 'dev'
Requires-Dist: mypy>=1.10 ; extra == 'dev'
Requires-Dist: pre-commit>=4.0 ; extra == 'dev'
Requires-Dist: hypothesis>=6.100 ; extra == 'dev'
Requires-Dist: pydantic[mypy] ; extra == 'dev'
Requires-Dist: httpx>=0.27 ; extra == 'dev'
Requires-Dist: gitpython>=3.1.57 ; extra == 'dev'
Requires-Dist: lsprotocol>=2023.0 ; extra == 'dev'
Requires-Dist: pygls>=1.3 ; extra == 'dev'
Requires-Dist: duckdb>=0.10 ; extra == 'dev'
Requires-Dist: numpy>=1.26 ; extra == 'dev'
Requires-Dist: pandas>=2.0 ; extra == 'dev'
Requires-Dist: lsprotocol>=2023.0 ; extra == 'lsp'
Requires-Dist: pygls>=1.3 ; extra == 'lsp-server'
Requires-Dist: fastapi>=0.110 ; extra == 'serve'
Requires-Dist: starlette>=1.3.1 ; extra == 'serve'
Requires-Dist: uvicorn[standard]>=0.29 ; extra == 'serve'
Provides-Extra: analytics
Provides-Extra: dev
Provides-Extra: hg
Provides-Extra: lsp
Provides-Extra: lsp-server
Provides-Extra: perforce
Provides-Extra: serve
License-File: LICENSE
Summary: Semantic code review: detect intent, moves, refactorings, and style changes
Keywords: diff,semantic,ast,refactoring,code-analysis
Author: BuchochelliQ Labs
Maintainer: BuchochelliQ Labs
License: MIT
Requires-Python: >=3.12
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://github.com/buchochelliq-labs/intentumdiff/tree/main/docs
Project-URL: Homepage, https://github.com/buchochelliq-labs/intentumdiff
Project-URL: Issues, https://github.com/buchochelliq-labs/intentumdiff/issues
Project-URL: Repository, https://github.com/buchochelliq-labs/intentumdiff

# intentumdiff (Python)

[![CI](https://github.com/buchochelliq-labs/intentumdiff-python/actions/workflows/ci.yml/badge.svg)](https://github.com/buchochelliq-labs/intentumdiff-python/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue.svg)](https://www.python.org/downloads/)

The **Python binding and `intentumdiff` PyPI package** — a thin shell over the IntentumDiff
engine. Semantic code review: detect intent, moves, refactorings, and style changes.

All diffing, matching, classification, guardrails, and presentation live in the engine
([intentumdiff-core](https://github.com/buchochelliq-labs/intentumdiff-core), Rust). This
package is the public Python API, CLI, and VCS/config orchestration: it loads the
engine's cdylib via ctypes and drives the stable C ABI (`intentumdiff_call`). The binding
does zero functional work.

```python
from intentumdiff import SemanticDiffer

diff = SemanticDiffer().diff_strings(old, new, "example.py")
for change in diff.changes:
    print(change.change_type, change.description)
```

## Building from source

The wheel bundles two provisioned build inputs — the engine and the parser components:

```bash
python scripts/provision_build_inputs.py \
    --core-dir /path/to/intentumdiff-core \      # or let it clone the repo
    --wasm-dir /path/to/built/components       # built by the parser repos
pip install -e .[dev]
```

Released wheels on PyPI are pre-built per platform — installing from source is a
development workflow, not the user path.

## Tests

```bash
python -m pytest tests/unit -q
```

The suite runs entirely over the ctypes path (there is no other path — the engine has
no Python dependency and this package has no engine).

## Provenance

Migrated files-only (no history) from the IntentumDiff monorepo
(`buchochelliq-labs/intentumdiff`), which remains the archive of record.

License: MIT.

