# Only Development dependencies (tooling, testing, docs, etc)
# Runtime dependencies are in pyproject.toml
# included in the Bazel lock through //py:requirements
# Transitive dependencies are resolved by compile_pip_requirements into requirements_lock.txt

# === Direct dev tooling ===
filetype~=1.2
inflection~=0.5
mypy~=2.1
pytest~=9.0
pytest-instafail~=0.5
pytest-mock~=3.15
pytest-trio~=0.8
rich~=15.0
Sphinx~=8.1
sphinx-material~=0.0
tox~=4.54
trio-typing~=0.10
twine~=6.2
types-certifi~=2021.10
types-PySocks~=1.7
zipp~=3.23

# === Platform-specific transitive deps ===
# Listed explicitly so they appear in requirements_lock.txt regardless of
# which platform runs compile_pip_requirements. Otherwise pip-compile on
# macOS silently drops them and Linux/Windows CI breaks.

# Linux keyring backend (twine -> keyring -> secretstorage -> cryptography):
cffi~=2.0
cryptography~=48.0
jeepney~=0.9
pycparser~=3.0
secretstorage~=3.5

# Windows keyring backend (twine -> keyring -> pywin32-ctypes):
pywin32-ctypes~=0.2
