click<9,>=8.1
numpy<2.0,>=1.24
matplotlib<4,>=3.5
scipy<2,>=1.10
pydantic<3,>=2.0
pandas<4,>=1.5
requests<3,>=2.31

[benchmark]
freegs>=0.6

[dev]
pytest>=9.0.3
pytest-cov>=5.0
hypothesis>=6.0
mypy>=1.10
ruff>=0.8
bandit>=1.7
pre-commit>=3.0
types-psutil>=7.2.2.20260518

[full]
streamlit
jax>=0.4.20
jaxlib>=0.4.20
cupy-cuda12x<14.0,>=13.6
nvidia-cuda-nvrtc-cu12<13.0,>=12.0
gymnasium>=1.0.0
freegs>=0.6
mpi4py>=4.1
omas>=0.70
maturin<2.0,>=1.14.1

[full-physics]
freegs>=0.6
omas>=0.70

[fuzz]
atheris>=2.3

[gpu]
jax[cuda12]>=0.4.20
cupy-cuda12x<14.0,>=13.6
nvidia-cuda-nvrtc-cu12<13.0,>=12.0

[ml]
jax>=0.4.20
jaxlib>=0.4.20

[mpi]
mpi4py>=4.1

[rl]
gymnasium>=1.0.0

[rust]
maturin<2.0,>=1.14.1

[snn]

[studio]
scpn-studio-platform<0.11,>=0.10

[ui]
streamlit
