# Toolchain for scripts/generate.sh and the CI gates.
#
# The generator and the formatter both write into mangools/, so their versions are
# pinned to keep the generated code the same on every machine.

# 0.26.2, not the current 0.29.x. From 0.27.0 the generated code uses PEP 604
# unions (`X | None`) without `from __future__ import annotations`, which is a
# TypeError at import time on Python 3.9 — the floor this package declares.
openapi-python-client==0.26.2

# Runs as the generator's post_hooks and as the CI lint gate. The upper bound is
# openapi-python-client 0.26.2's own (`ruff>=0.2,<0.14`); 0.13.3 is the newest
# release inside it.
ruff==0.13.3

# Pinned so a new mypy release cannot turn the gate red without a code change.
mypy==1.18.2

# Typed stubs for the one runtime dependency that ships none.
types-python-dateutil==2.9.0.20251008

build==1.3.0

# Only for `twine check` in CI; publishing goes through PyPI trusted publishing.
#
# 7.x, not 6.x: `license-files` in pyproject.toml makes hatchling emit
# Metadata-Version 2.5, and twine 6.2.0 rejects it with
# "'2.5' is not a valid metadata version".
twine==7.0.0
