pygeofetch>=1.0.7
pystac>=1.9
pystac-client>=0.7
planetary-computer>=1.0
pydantic>=2.0
click>=8.0
pyyaml>=6.0
httpx>=0.27
tenacity>=8.2
numpy>=1.24
rich>=13.0
shapely>=2.0
pyproj>=3.6

[advanced]
transformers>=4.40
torch>=2.0
optuna>=3.5
scikit-learn>=1.3
statsmodels>=0.14

[all]
pygeovision[advanced,enterprise,foundation,geo,geo3d,insar,labeling,monitoring,serve,train,viz,vlm,xai]

[cloud]
boto3>=1.34
sagemaker>=2.0
azure-ai-ml>=1.14
azure-identity>=1.16
google-cloud-aiplatform>=1.47
google-cloud-storage>=2.14

[dev]
pytest>=8.0
pytest-cov>=5.0
pytest-asyncio>=0.23
ruff>=0.4
mypy>=1.9
black>=24
pre-commit>=3.6
types-pyyaml
types-requests

[edge]
onnxruntime>=1.17
onnxsim>=0.4

[enterprise]
cryptography>=42.0
passlib[bcrypt]>=1.7
python-jose[cryptography]>=3.3
pydantic>=2.0
sqlalchemy>=2.0

[foundation]
transformers>=4.40
torch>=2.0
timm>=0.9
hdbscan>=0.8.33
scikit-learn>=1.3
umap-learn>=0.5
faiss-cpu>=1.7

[geo]
rasterio>=1.3
geopandas>=1.0
rioxarray>=0.15
pyogrio>=0.7
shapely>=2.0
pyproj>=3.6

[geo3d]
laspy>=2.0
scipy>=1.12
pandas>=2.0
open3d>=0.18

[geoai]
geoai-py>=0.39.0

[insar]
scipy>=1.12
statsmodels>=0.14
matplotlib>=3.8

[labeling]
requests>=2.31
laspy>=2.0
s2sphere>=0.2.5
scipy>=1.12
Pillow>=10.0
faiss-cpu>=1.7

[minimal]
pygeovision[geo,train]

[monitoring]
scipy>=1.12
matplotlib>=3.8
requests>=2.31

[serve]
fastapi>=0.110
uvicorn[standard]>=0.29
onnxruntime>=1.17
onnxsim>=0.4
websockets>=12.0

[train]
torch>=2.0
torchvision>=0.15
timm>=0.9
segmentation-models-pytorch>=0.3
albumentations>=1.4
optuna>=3.5
mlflow>=2.10
wandb>=0.16

[viz]
matplotlib>=3.8
folium>=0.16
plotly>=5.18
seaborn>=0.13
scikit-learn>=1.3

[vlm]
transformers>=4.40
torch>=2.0
Pillow>=10.0
open-clip-torch>=2.24
faiss-cpu>=1.7

[xai]
shap>=0.45
captum>=0.7
torch>=2.0
matplotlib>=3.8
