toaster / pyproject.toml
augustin-bresset
fix(web): bundle the engine + vendored three in the wheel
3a2471b
Raw
History Blame Contribute Delete
2.5 kB
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "toaster"
version = "0.1.0"
description = "Annotate lidar point clouds in 3D, with pluggable clustering/segmentation models."
readme = "README.md"
requires-python = ">=3.11"
license = { text = "MIT" }
authors = [{ name = "Augustin Bresset", email = "augustin.bresset@gmail.com" }]
keywords = ["lidar", "point-cloud", "annotation", "segmentation", "clustering"]
dependencies = [
"numpy",
"PyYAML",
"scikit-learn>=1.3",
"laspy",
"plyfile",
"fastapi",
"uvicorn[standard]",
# Webview host for the desktop window. The pyside6 extra pulls PySide6 (LGPL,
# with QtWebEngine) and the qtpy shim pywebview's Qt backend imports. For a
# fully Qt-free host install system WebKitGTK and drop this to a bare pywebview.
"pywebview[pyside6]",
]
[project.optional-dependencies]
# apairo 0.5.0+ for ChannelWriter (label write-back); pinned to the release tag.
apairo = ["apairo @ git+https://github.com/apairo-robotics/apairo.git@v0.5.0"]
open3d = ["open3d"]
hdbscan = ["hdbscan"]
csf = ["cloth-simulation-filter"] # CSF ground-detection segmenter
models = ["onnxruntime-gpu"]
torch = ["torch"]
viewer3d = ["pyvista"] # legacy VTK Viewer backend (toaster.viewer.PyVistaViewer)
dev = ["pytest", "ruff", "httpx", "playwright"] # playwright: `playwright install chromium`
[project.scripts]
toaster = "toaster.desktop:main"
toaster-web = "toaster.api.server:main"
[project.urls]
Homepage = "https://github.com/augustin-bresset/toaster"
Repository = "https://github.com/augustin-bresset/toaster"
Issues = "https://github.com/augustin-bresset/toaster/issues"
Changelog = "https://github.com/augustin-bresset/toaster/blob/main/CHANGELOG.md"
[tool.setuptools.packages.find]
where = ["."]
include = ["toaster*"]
[tool.setuptools.package-data]
# web/js/*.js is non-recursive: the engine (web/js/engine/) and vendored three
# (web/vendor/) must be listed explicitly, or a wheel/package install (the HF
# Space) ships no engine and the 3D view loads nothing.
toaster = [
"py.typed",
"schemas/*.yaml",
"web/*.html",
"web/*.css",
"web/*.svg",
"web/*.png",
"web/js/*.js",
"web/js/engine/*.js",
"web/vendor/three/*.js",
"web/vendor/three/addons/controls/*.js",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.ruff]
target-version = "py311"
line-length = 100
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "W"]