-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrequirements_dev.txt
More file actions
44 lines (44 loc) · 2.42 KB
/
Copy pathrequirements_dev.txt
File metadata and controls
44 lines (44 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# cryptography is only used by the cluster mTLS tests, to mint throwaway certs.
# It ships no win-arm64 wheel and can't build from source on that CI runner (no
# OpenSSL), so don't install it there; those tests importorskip it and self-skip
# when it's absent. Every other platform keeps full coverage.
cryptography; platform_machine != "ARM64" or sys_platform != "win32"
# orjson is the optional `speedups` extra, but the tests that cover the
# accelerated durable-state/gossip JSON paths are worthless if no CI cell ever
# installs it: they were importorskip-guarded and therefore skipped in all 12
# matrix cells, so the orjson arm of cronstable._json shipped unexercised.
# Installed here so `tox -e py` really runs it. Excluded where a wheel is not
# reliably available (win-arm64; a just-released Python that orjson has not
# built for yet) since it needs a Rust toolchain to build from source; those
# cells still self-skip via importorskip, and
# test_orjson_is_installed_where_a_wheel_exists fails if this line ever stops
# covering the cells that DO have wheels.
orjson>=3.9; python_version < "3.15" and (platform_machine != "ARM64" or sys_platform != "win32")
# pynacl backs the optional `push` extra (E2E-encrypted push alerts). Installed
# in dev unconditionally so the sealing/round-trip tests in tests/test_push.py
# really run in every CI cell: its cp38-abi3 wheels cover every runner we use
# (including win-arm64, unlike cryptography above), so no marker is needed;
# the tests still importorskip so a bare `pip install -e .` checkout can run
# the rest of the suite.
pynacl>=1.5
# zeroconf backs the optional `discovery` extra (the web.bonjour mDNS advert).
# Installed in dev for the same reason as pynacl above: without it every
# discovery test runs against hand-rolled fakes and a real-library signature
# change (ServiceInfo arguments, name validation) would ship with green CI,
# the exact optional-dep blind spot the orjson note above describes. It is
# pure Python with optional prebuilt speedups, so no platform marker is
# needed; the tests still importorskip so a bare checkout runs the rest.
zeroconf>=0.132
# security linter; bandit[toml] reads its config from pyproject.toml.
bandit[toml]
mypy
mypy-extensions
# validates docs/openapi.yaml (see .github/scripts/check_openapi.py, tox -e openapi).
openapi-spec-validator
pytest
pytest-asyncio
pytest-cov
ruff
tox
# tox-uv makes tox provision envs and install deps with uv (see tox.ini).
tox-uv