| [build-system] | |
| requires = ["setuptools>=69", "wheel"] | |
| build-backend = "setuptools.build_meta" | |
| [project] | |
| name = "ConvGRU-Ensemble" | |
| version = "0.1.0" | |
| description = "Ensemble precipitation nowcasting using Convolutional GRU networks" | |
| readme = "README.md" | |
| requires-python = ">=3.13" | |
| dependencies = [ | |
| "absl-py>=2.3.1", | |
| "einops>=0.8.1", | |
| "etils>=1.13.0", | |
| "fiddle>=0.3.0", | |
| "fire>=0.7.1", | |
| "importlib-resources>=6.5.2", | |
| "jupyterlab>=4.5.5", | |
| "matplotlib>=3.10.8", | |
| "numpy>=2.3.5", | |
| "netCDF4>=1.7.0", | |
| "pandas>=2.3.3", | |
| "pysteps>=1.19.0", | |
| "pytorch-lightning>=2.6.0", | |
| "pyyaml>=6.0.3", | |
| "tqdm>=4.67.1", | |
| "tensorboard>=2.20.0", | |
| "torch>=2.9.1", | |
| "torchvision>=0.24.1", | |
| "xarray>=2025.12.0", | |
| "zarr>=3.1.5", | |
| "huggingface_hub>=0.27.0", | |
| "h5netcdf>=1.8.1", | |
| "h5py>=3.15.1", | |
| "python-magic>=0.4.27", | |
| ] | |
| [project.optional-dependencies] | |
| serve = [ | |
| "fastapi>=0.115.0", | |
| "uvicorn>=0.34.0", | |
| "python-multipart>=0.0.18", | |
| ] | |
| [project.scripts] | |
| convgru-ensemble = "convgru_ensemble.cli:main" | |
| [dependency-groups] | |
| dev = [ | |
| "pytest>=8.3.5", | |
| "pre-commit>=4.0.0", | |
| "ruff>=0.9.10", | |
| ] | |
| [tool.setuptools] | |
| packages = ["convgru_ensemble"] | |
| [tool.ruff] | |
| target-version = "py313" | |
| line-length = 120 | |
| extend-exclude = ["notebooks/", "importance_sampler/"] | |
| [tool.ruff.lint] | |
| select = [ | |
| "E", # pycodestyle errors | |
| "W", # pycodestyle warnings | |
| "F", # pyflakes | |
| "I", # isort | |
| "UP", # pyupgrade | |
| "B", # flake8-bugbear | |
| "SIM", # flake8-simplify | |
| "NPY", # numpy-specific rules | |
| ] | |
| ignore = [ | |
| "E501", # line too long (handled by formatter) | |
| "SIM108", # ternary operator (readability preference) | |
| ] | |
| [tool.ruff.lint.isort] | |
| known-first-party = ["convgru_ensemble"] | |