equinox==0.13.4
finufft==2.3.1
grain==0.2.16
healpy==1.18.0
jax==0.9.0.1
jax_finufft==0.1.0
jaxopt==0.8.5
jaxtyping==0.2.38
kneed==0.8.5
matplotlib==3.10.0
more_itertools==10.6.0
mrcfile==1.5.4
numpy<2.3.0,>=2.0.0
optax==0.2.7
pandas==2.2.3
psutil>=5.9
scikit-image>=0.22.0
scikit-learn==1.6.1
scipy==1.15.2
seaborn==0.13.2
starfile==0.5.11
typing_extensions>=4.10.0
umap-learn>=0.5.5

[all]
recovar[dev,gpu,gui,interactive,plot]

[cuda]
jax[cuda12]==0.9.0.1

[cuda-flexible]
jax[cuda12]<0.10,>=0.9.0

[dev]
pytest>=8.0
pytest-cov>=5.0
mypy>=1.20.0
ruff>=0.8.0
pre-commit>=3.0

[flexible]
dataframe_image>=0.2.7
equinox>=0.13.0
finufft>=2.3.0
grain>=0.2.0
healpy>=1.17.0
jax<0.10,>=0.9.0
jax_finufft>=0.1.0
jaxopt>=0.8.0
jaxtyping>=0.2.30
kneed>=0.8.0
matplotlib>=3.9.0
more_itertools>=10.0.0
mrcfile>=1.5.0
numpy<2.3.0,>=2.0.0
optax>=0.2.0
pandas>=2.2.0
scikit-image>=0.22.0
scikit-learn>=1.5.0
scipy>=1.13.0
seaborn>=0.13.0
starfile>=0.5.0
typing_extensions>=4.10.0
umap-learn>=0.5.5

[gpu]
jax[cuda12]==0.9.0.1

[gpu-flexible]
jax[cuda12]<0.10,>=0.9.0

[gui]
fastapi>=0.111
uvicorn[standard]>=0.30
python-multipart>=0.0.9
sqlalchemy>=2.0
aiosqlite>=0.19
aiofiles>=23.0
tomli_w>=1.0
jinja2>=3.1

[interactive]
cufflinks
ipykernel
ipython>=8.12.0
ipywidgets>=8.1.0
jupyterlab
notebook<7

[plot]
umap-learn[plot]>=0.5.5
