File size: 2,499 Bytes
16760fa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b1390b1
 
16760fa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3a2471b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16760fa
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
[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"]