networkx<4.0,>=2.6
cachetools<7.0,>=5.0
numpy<3.0,>=1.24
scipy<2.0,>=1.9

[compute-jax]
jax<1.0,>=0.4

[compute-torch]
torch<3.0,>=2.1

[dev-full]
pytest<9,>=7
pytest-cov<8,>=4
pytest-timeout<3,>=2
hypothesis<7,>=6
hypothesis-networkx<1.0,>=0.3
pytest-benchmark<6,>=4
pytest-xdist<4,>=3
pydocstyle<7,>=6
flake8<8,>=5
flake8-pyproject<2.0,>=1.2
vulture<3,>=2
matplotlib<4.0,>=3.7
jax<1.0,>=0.4
mypy<2.0,>=1.8
pyright<1.2.0,>=1.1.350
networkx-stubs>=0.0.1
types-cachetools>=6.0.0.0

[dev-minimal]
mypy<2.0,>=1.8
black<26,>=23
pytest<9,>=7
pytest-cov<8,>=4
pytest-timeout<3,>=2

[docs]
sphinx>=7.2
sphinx-autodoc-typehints>=1.25
myst-parser>=2.0
nbsphinx>=0.9
sphinx-rtd-theme>=1.3
sphinxcontrib-mermaid>=0.9
ipykernel>=6
nbconvert>=7.16
pypandoc-binary>=1.14
mkdocs>=1.5
mkdocs-material>=9.4
mkdocs-jupyter>=0.24

[jax]
jax<1.0,>=0.4

[numpy]

[orjson]
orjson<4,>=3

[release]
python-semantic-release<11,>=10.4
setuptools-scm<10,>=8
build<2,>=1
towncrier<26,>=23

[serialization]
pyyaml<7.0,>=6.0
orjson<4,>=3

[test]
pytest<9,>=7
pytest-cov<8,>=4
pytest-timeout<3,>=2
hypothesis<7,>=6
hypothesis-networkx<1.0,>=0.3
pytest-benchmark<6,>=4
pytest-xdist<4,>=3
pydocstyle<7,>=6
flake8<8,>=5
flake8-pyproject<2.0,>=1.2
vulture<3,>=2
matplotlib<4.0,>=3.7

[test-all]
pytest<9,>=7
pytest-cov<8,>=4
pytest-timeout<3,>=2
hypothesis<7,>=6
hypothesis-networkx<1.0,>=0.3
pytest-benchmark<6,>=4
pytest-xdist<4,>=3
pydocstyle<7,>=6
flake8<8,>=5
flake8-pyproject<2.0,>=1.2
vulture<3,>=2
matplotlib<4.0,>=3.7

[test-parallel]
pytest-xdist<4,>=3

[test-performance]
pytest-benchmark<6,>=4

[test-property]
hypothesis<7,>=6
hypothesis-networkx<1.0,>=0.3

[test-quality]
pydocstyle<7,>=6
flake8<8,>=5
flake8-pyproject<2.0,>=1.2
vulture<3,>=2

[test-unit]
pytest<9,>=7
pytest-cov<8,>=4
pytest-timeout<3,>=2

[torch]
torch<3.0,>=2.1

[typecheck]
mypy<2.0,>=1.8
pyright<1.2.0,>=1.1.350
networkx-stubs>=0.0.1
types-cachetools>=6.0.0.0

[viz]
matplotlib<4.0,>=3.7

[viz-basic]
matplotlib<4.0,>=3.7

[yaml]
pyyaml<7.0,>=6.0
