[project]
name = "entropice"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
authors = [{ name = "Tobias Hölzer", email = "tobiashoelzer@hotmail.com" }]
requires-python = ">=3.13,<3.14"
dependencies = [
    "aiohttp>=3.12.11",
    "bokeh>=3.7.3",
    "bottleneck>=1.6.0",
    "cartopy>=0.24.1",
    "cdsapi>=0.7.6",
    "cyclopts>=4.0.0",
    "dask>=2025.11.0",
    "distributed>=2025.5.1",
    "earthengine-api>=1.6.9",
    "eemont>=2025.7.1",
    "entropy",
    "flox>=0.10.4",
    "folium>=0.19.7",
    "geemap>=0.36.3",
    "geopandas>=1.1.0",
    "h3>=4.2.2",
    "ipycytoscape>=1.3.3",
    "ipykernel>=6.29.5",
    "ipywidgets>=8.1.7",
    "mapclassify>=2.9.0",
    "matplotlib>=3.10.3",
    "netcdf4>=1.7.2",
    "numba>=0.61.2",
    "numbagg>=0.9.3",
    "numpy>=2.2.6",
    "odc-geo[all]>=0.4.10",
    "opt-einsum>=3.4.0",
    "pyarrow>=18.1.0",
    "requests>=2.32.3",
    "rich>=14.0.0",
    "rioxarray>=0.19.0",
    "scipy>=1.15.3",
    "seaborn>=0.13.2",
    "smart-geocubes[stac]>=0.1.0",
    "stopuhr>=0.0.10",
    "ultraplot>=1.63.0",
    "xanimate",
    "xarray>=2025.9.0",
    "xdggs",
    "xvec>=0.5.1",
    "zarr[remote]>=3.1.3",
    "geocube>=0.7.1,<0.8",
    "streamlit>=1.50.0,<2",
    "altair[all]>=5.5.0,<6",
    "h5netcdf>=1.7.3,<2",
    "streamlit-folium>=0.25.3,<0.26",
    "st-theme>=1.2.3,<2",
    "xgboost>=3.1.1,<4",
    "s3fs>=2025.10.0,<2026",
    "xarray-spatial",
    "cupy-xarray>=0.1.4,<0.2",
    "memray>=1.19.1,<2",
    "xarray-histogram>=0.2.2,<0.3",
    "antimeridian>=0.4.5,<0.5",
    "duckdb>=1.4.2,<2",
    "pydeck>=0.9.1,<0.10",
    "pypalettes>=0.2.1,<0.3",
    "ty>=0.0.11,<0.0.12",
    "ruff>=0.14.11,<0.15",
    "pandas-stubs>=2.3.3.251201,<3",
    "pytest>=9.0.2,<10",
    "autogluon-tabular[all,mitra,realmlp,interpret,fastai,tabm,tabpfn,tabdpt,tabpfnmix,tabicl,skew,imodels]>=1.5.0",
    "shap>=0.50.0,<0.51",
    "h5py>=3.15.1,<4",
    "pydantic>=2.12.5,<3", "nbformat>=5.10.4,<6", "fastcluster>=1.3.0,<2", "statsmodels>=0.14.6,<0.15", "scienceplots>=2.2.1,<3", "pypst>=0.8.0,<0.9",
]

[project.scripts]
create-grid = "entropice.spatial.grids:main"
darts = "entropice.ingest.darts:cli"
alpha-earth = "entropice.ingest.alphaearth:main"
era5 = "entropice.ingest.era5:cli"
arcticdem = "entropice.ingest.arcticdem:cli"
train = "entropice.ml.hpsearchcv:cli"
autogluon = "entropice.ml.autogluon:cli"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.uv]
package = true

[[tool.uv.index]]
name = "nvidia"
url = "https://pypi.nvidia.com"
explicit = true

[tool.uv.sources]
# entropyc = { git = "ssh://git@github.com/AlbertEMC2Stein/entropyc", branch = "refactor/tobi" }
entropy = { git = "ssh://git@forgejo.tobiashoelzer.de:22222/tobias/entropy.git" }
xanimate = { git = "https://github.com/davbyr/xAnimate" }
xdem = { git = "https://github.com/GlacioHack/xdem" }
xdggs = { git = "https://github.com/relativityhd/xdggs", branch = "feature/make-plotting-useful" }
xarray-spatial = { git = "https://github.com/relativityhd/xarray-spatial" }
# cudf-cu12 = { index = "nvidia" }
# cuml-cu12 = { index = "nvidia" }
# cuspatial-cu12 = { index = "nvidia" }

[tool.ruff]
line-length = 120

[tool.ruff.lint.pyflakes]
# Ignore libraries when checking for unused imports
allowed-unused-imports = [
    "hvplot.pandas",
    "hvplot.xarray",
    "rioxarray",
    "odc.geo.xr",
    "cupy_xarray",
    "xdggs",
    "xvec",
]

[tool.pixi.workspace]
channels = ["nvidia", "conda-forge", "rapidsai"]
channel-priority = "disabled"
platforms = ["linux-64"]

[tool.pixi.activation.env]
SCIPY_ARRAY_API = "1"
FAST_DATA_DIR = "./data"

[tool.pixi.system-requirements]
cuda = "12"

[tool.pixi.pypi-dependencies]
entropice = { path = ".", editable = true }

[tool.pixi.tasks]
dashboard = { cmd = [
    "streamlit",
    "run",
    "src/entropice/dashboard/app.py",
    "--server.port",
    "8501",
    "--server.address",
    "0.0.0.0",
] }

[tool.pixi.dependencies]
pytorch-gpu = ">=2.5.1,<3"
cupy = ">=13.6.0,<14"
nccl = ">=2.27.7.1,<3"
cudnn = ">=9.13.1.26,<10"
cusparselt = ">=0.8.1.1,<0.9"
cuda-version = "12.9.*"
# cudf = ">=25.10.0,<26"
# cuml = ">=25.10.0,<26"
healpix-geo = ">=0.0.6"
scikit-learn = ">=1.4.0,<1.8.0"
pyarrow = ">=7.0.0,<21.0.0"
cudf = ">=25.12.0,<26"
cuml = ">=25.12.0,<26"
