# Formatters are pinned so `scripts/check` is reproducible: new releases
# change formatting output and would fail lint on an otherwise-unchanged
# tree. They are lint-only tools, run only by the lint job (PYTHON_LATEST).
# Bump the pins deliberately, together with a tree-wide reformat.
black==26.5.1
isort==8.0.1
autoflake
flake8==5.0.4  # 5.0.4 can be upgraded to 6.0.0+ when we EOL Python 3.7
flake8-bugbear
flake8-comprehensions
hypothesis>=3.31
freezegun>=0.3.11
mock; python_version<'3.8'  # backport that contains AsyncMock class, includes mock library as dependency
pre-commit
pytest-aiofiles>=0.2.0
pytest-aiohttp>=0.3.0
pytest-asyncio
pytest-forked
pytest-picked
pytest-cov
pytest-random-order>=0.5.4
pytest-run-parallel>=0.10.0
pytest<8
python-dateutil>=2.8
pytz>=2018.7
bandit
twine
wheel
intervaltree
-r requirements.txt
# setuptools and Cython, so a test environment can build the extension
# modules in place rather than only through pip's isolated build.  See
# build.txt: without them `python setup.py build_ext --inplace` either dies
# on the setuptools import or silently builds nothing.
-r build.txt
# mypy, pinned for the same reason as the formatters above: `scripts/check`
# type-checks the faust package, so the lint job needs it installed.
-r typecheck.txt
-r extras/datadog.txt
-r extras/opentelemetry.txt
-r extras/opentracing.txt
# The API+SDK only (pure Python, no fastapi): enough to cover
# faust.contrib.opentelemetry's sensor.  The instrumentation packages in
# extras/opentelemetry.txt pull in fastapi and are left to that extra.
opentelemetry-api>=1.20.0
opentelemetry-sdk>=1.20.0
# uvicorn's only dependencies are click (already required by faust) and h11,
# both pure Python -- cheap enough to cover faust.contrib.asgi's server
# construction on every matrix leg.  fastapi itself is not added here: it
# pulls in pydantic-core, which has no wheel for every leg.
uvicorn>=0.27.0
-r extras/redis.txt
-r extras/statsd.txt
-r extras/yaml.txt
-r extras/prometheus.txt
