[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "zipsplat"
version = "1.0"
description = "ZipSplat: Fewer Gaussians, Better Splats."
authors = [{ name = "Alexander Veicht" }]
readme = "README.md"
requires-python = ">=3.10"
license = { file = "LICENSE" }
classifiers = [
    "Programming Language :: Python :: 3",
    "Operating System :: OS Independent",
]
urls = { Repository = "https://github.com/cvg/ZipSplat" }

dynamic = ["dependencies"]

[project.optional-dependencies]
# xformers' fused SwiGLU kernel the DA3-Giant checkpoint was trained with (optional speedup).
xformers = ["xformers"]
# interactive viser viewer (python -m zipsplat.viewer)
viewer = ["viser", "nerfview"]
dev = ["black==23.9.1", "flake8", "isort==5.12.0"]

[tool.setuptools]
packages = ["zipsplat"]

[tool.setuptools.dynamic]
dependencies = { file = ["requirements.txt"] }

[tool.black]
line-length = 100
exclude = "(venv/|docs/|third_party/)"

[tool.isort]
profile = "black"
line_length = 100
atomic = true

[tool.flake8]
max-line-length = 100
docstring-convention = "google"
ignore = ["E203", "W503", "E402"]
exclude = [".git", "__pycache__", "venv", "docs", "third_party", "scripts"]
