Metadata-Version: 2.4
Name: matchplan
Version: 0.1.1
Summary: Choose how to match records: a run plan, what may be claimed, and repairs if the setup is dirty.
Author: Nikita N. Kadochnikov
License: CC-BY-NC-SA-4.0
Keywords: entity-matching,record-linkage,evaluation-protocol
Classifier: Development Status :: 3 - Alpha
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# matchplan

Choose how to match two record lists. The package writes a run plan, what may be claimed, and repairs if the setup is dirty. It does not merge the lists and does not invent quality scores.

License: [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/). Research and personal use are allowed. Commercial use is not.

## Install

```bash
pip install matchplan
```

From this directory (development):

```bash
pip install -e .
```

## Fields

1. `goal` — `prod` or `research`
2. `what` — what to match, in the caller's words
3. Limits — `max-labels`, optional `max-usd`, optional data path

## One command

```bash
matchplan run --goal prod --what "two product price lists" --out ./out --max-labels 0
```

Or a JSON file of the same fields:

```bash
matchplan run --request request.json --out ./out
```

`--out` gets `report.md` (how to run / what may be claimed / repairs), plus `plan.json` and `card.json`. Scores that were not computed are marked as not scored. Worked evaluation examples are not shipped in this package.

## For agents

1. Call this package. Do not invent F1 or cost.
2. Fill the fields. Ask only if a required field is missing.
3. Return the package output. Do not replace it with a free-text guess.
