numpy>=1.24
scipy>=1.10
typing-extensions>=4.8

[all]
cvxpy>=1.4
torch>=2.2
jax>=0.4
jaxlib>=0.4
cvxpylayers>=1.0
jaxopt>=0.8
gymnasium>=0.29
scikit-learn>=1.3
matplotlib>=3.7
pandas>=2.0
mkdocs>=1.5
mkdocs-material>=9.5
mkdocstrings[python]>=0.24
pytest>=7.4
pytest-cov>=4.1
hypothesis>=6.88
pytest-benchmark>=4.0
build>=1.2
twine>=5.0
ruff>=0.4
mypy>=1.8
pre-commit>=3.6

[benchmarks]
pytest-benchmark>=4.0

[cvx]
cvxpy>=1.4

[dev]
pytest>=7.4
pytest-cov>=4.1
hypothesis>=6.88
mkdocs>=1.5
mkdocs-material>=9.5
mkdocstrings[python]>=0.24
pytest-benchmark>=4.0
build>=1.2
twine>=5.0
ruff>=0.4
mypy>=1.8
pre-commit>=3.6

[diffopt]
cvxpylayers>=1.0
jaxopt>=0.8

[docs]
mkdocs>=1.5
mkdocs-material>=9.5
mkdocstrings[python]>=0.24

[jax]
jax>=0.4
jaxlib>=0.4

[pandas]
pandas>=2.0

[plot]
matplotlib>=3.7

[release]
build>=1.2
twine>=5.0

[rl]
gymnasium>=0.29

[sklearn]
scikit-learn>=1.3

[test]
pytest>=7.4
pytest-cov>=4.1
hypothesis>=6.88

[torch]
torch>=2.2
