numpy<3,>=1.26
requests<3,>=2.32
pandas<3.0,>=2.0
scikit-learn<2.0,>=1.3
tensorflow>=2.13
phe>=1.5
PyYAML>=6.0
typer>=0.12
rich>=13.7
websockets>=12
PyJWT>=2.8
pycryptodome>=3.20
python-dotenv>=1.0

[3d]
open3d

[agent]
fastapi<1.0,>=0.110
Flask<4.0,>=3.0
flask-cors<7.0,>=4.0
uvicorn>=0.29
redis>=5
keyring>=24
pydantic<3.0,>=2.0
cryptography<47,>=41
pyOpenSSL>=23

[all]
Cython<4,>=3.0
Flask<4.0,>=3.0
Pillow>=10.0
Sphinx<9,>=7.4
cryptography<47,>=41
datasets
dgl
docutils<0.22,>=0.20
fastapi<1.0,>=0.110
flask-cors<7.0,>=4.0
geopandas
grpcio-reflection>=1.60
grpcio>=1.60
ipython>=8.12
ipywidgets>=8.1
keyring>=24
librosa<1.0,>=0.10
nbclient>=0.9
nbformat>=5.9
notebook>=7.0
open3d
opencv-python
pyOpenSSL>=23
pydantic<3.0,>=2.0
pydicom
pydub>=0.25
pytest>=8.0
redis>=5
torch-geometric>=2.4
torch>=2.2
torchaudio
transformers>=4.40
uvicorn>=0.29

[audio]
librosa<1.0,>=0.10
torchaudio
pydub>=0.25

[dev]
pytest>=8.0
Sphinx<9,>=7.4
docutils<0.22,>=0.20
Cython<4,>=3.0

[geo]
geopandas

[graph]
torch>=2.2
torch-geometric>=2.4
dgl

[medical]
pydicom

[nlp]
transformers>=4.40
datasets

[notebook]
ipython>=8.12
ipywidgets>=8.1
nbclient>=0.9
nbformat>=5.9
notebook>=7.0

[server]
grpcio>=1.60
grpcio-reflection>=1.60

[vision]
opencv-python
Pillow>=10.0
