Metadata-Version: 2.4
Name: azcrawlerpy-recaptcha-text
Version: 1.0.1
Summary: Default weights for azcrawlerpy's text captcha solver: the SVTRv2 recogniser, its input-size selector and their provenance card.
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: pytest>=8.2; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: ruff>=0.5; extra == "dev"
Dynamic: license-file

# azcrawlerpy-recaptcha-text

The default model for [azcrawlerpy](https://pypi.org/project/azcrawlerpy/)'s `text` captcha solver:
the SVTRv2 recogniser `svtrv2.onnx`, the input-size selector `selector.onnx` fitted to it, and
their provenance card `svtrv2.json`. `azcrawlerpy[text]` installs it; there is nothing to import.

The recogniser and selector are one pair: the selector is fitted to one set of recogniser weights,
and azcrawlerpy refuses to load a recogniser without one beside it.

It is published apart from azcrawlerpy so that code releases do not upload the weights again, and
a retrained model ships without an azcrawlerpy release.

## Versions

- **Major**: the contract azcrawlerpy relies on (file names, ONNX inputs and outputs, charset).
  azcrawlerpy depends on `~=1.0`, so a major bump needs an azcrawlerpy release that accepts it.
- **Minor**: retrained weights. Existing azcrawlerpy installs pick them up on upgrade.

## Releasing a model

`promote()` in `captcha-training` writes the weights, selector and card into
`azcrawlerpy_recaptcha_text/` in this checkout, only when they beat the model already here. Commit
them, bump the minor version, check with `uv sync --extra dev && uv run pytest`, and publish with
`build.txt`. It builds the wheel only: an sdist would upload the same weights a second time against
the project's PyPI quota.
