irene / pyproject.toml
franch's picture
Sync: rate limits, validation, python-magic
510f74a verified
[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"]