Metadata-Version: 2.4
Name: azcrawlerpy-recaptcha-google
Version: 1.0.1
Summary: Default weights for azcrawlerpy's reCAPTCHA v2 image-grid solver: the tile classifier and its 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-google

The default model for [azcrawlerpy](https://pypi.org/project/azcrawlerpy/)'s `recaptcha_v2` captcha
solver: a `yolov8s-cls` reCAPTCHA v2 tile classifier, `tile_cls.pt`, with its provenance card
`tile_cls.json` once a model is promoted through `captcha-training`. `azcrawlerpy[recaptcha]`
installs it; there is nothing to import.

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 name, format, class names, input size).
  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 and card into `azcrawlerpy_recaptcha_google/`
in this checkout, only when they beat the model already here. Commit both, 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.
