# ── DEV constraints — pins for the DEVELOPMENT environment and CI ────────
#
# Regenerate with `make lock`, never by hand. Generated by scripts/lock.py
# from a known-good environment: Python 3.13 on Linux (x86_64).
#
# THIS FILE DOES NOT NARROW THE LIBRARY'S DEPENDENCIES, and must never be
# read as if it did. `pyproject.toml` keeps `pymupdf>=1.24`, `numpy>=1.24`
# and the rest OPEN on purpose: a library that pins its runtime deps is
# unusable downstream — it makes itself uninstallable next to any project
# that pinned a different patch release of the same package, and the person
# who pays is a user who never asked us to have an opinion about their
# resolver. Applications pin; libraries declare ranges. Both are right.
#
# What this file is for: making the DEV environment identical on two
# machines, so that a test that fails on yours fails on mine. It is passed
# with `-c`, which caps versions WITHOUT adding installs — a package listed
# here that nothing requires is simply never installed.
#
#     pip install -e '.[dev]' -c constraints/dev.txt
#
# Scope, and its two deliberate holes:
#
#   1. Only `autosxtract[dev]` is covered — what `scripts/bootstrap.sh`
#      installs by default and what CI's quality job installs. The heavy
#      optional extras (docling ~2 GB, paddleocr, onnxtr, veto) are not
#      pinned, because pinning what we never install would be pinning a
#      guess.
#   2. Apple-only wheels (pyobjc-framework-Vision, ocrmac) are absent: this
#      file was generated off Apple hardware and a version invented here
#      would be a version nobody has run. The README already lists 'a
#      lockfile generated for another sys_platform' as a way to end up with
#      a silently amputated cascade — this file refuses to become one. Every
#      pin below is platform-neutral, so it is inert where it does not apply
#      rather than wrong.
#
# No hashes on purpose: `--require-hashes` is all-or-nothing and forbids the
# editable install of the project itself, which is the whole point of a dev
# environment. Version pinning is what reproducibility needs here; hash
# pinning is a supply-chain control that belongs on the release pipeline,
# where nothing is editable.

annotated-types==0.8.0
antlr4-python3-runtime==4.9.3
asn1crypto==1.5.1
ast-serialize==0.8.0
certifi==2026.7.22
cfgv==3.5.0
charset-normalizer==3.5.1
colorlog==6.12.0
coverage==7.16.0
distlib==0.4.3
filelock==3.32.4
flatbuffers==25.12.19
identify==2.6.19
idna==3.19
iniconfig==2.3.0
librt==0.15.0
mypy==2.3.1
mypy-extensions==1.1.0
nodeenv==1.10.0
numpy==2.5.2
omegaconf==2.3.1
onnxruntime==1.29.0
opencv-python==5.0.0.93
opencv-python-headless==5.0.0.93
packaging==26.3
pathspec==1.1.1
pillow==12.3.0
platformdirs==4.11.5
pluggy==1.6.0
pre-commit==4.6.2
protobuf==7.36.0
pyclipper==1.4.0
pydantic==2.13.5
pydantic-core==2.46.5
pygments==2.21.0
pymupdf==1.28.2
pytest==9.1.1
pytest-cov==7.1.0
python-discovery==1.6.0
pyyaml==6.0.3
rapidocr==3.9.2
requests==2.34.2
ruff==0.16.5
shapely==2.1.2
six==1.17.0
striprtf==0.0.33
tqdm==4.70.0
typing-extensions==4.16.0
typing-inspection==0.4.4
urllib3==2.7.0
virtualenv==21.7.7
