File size: 4,269 Bytes
a266324
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4c704a2
a266324
 
4c704a2
a266324
 
 
4c704a2
a266324
 
 
4c704a2
 
a266324
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6ef828c
a266324
4c704a2
a266324
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
[project]
name = "dvlt"
version = "0.0.1"
description = "Déjà View: Looping Transformers for Multi-View 3D Reconstruction"
readme = "README.md"
requires-python = ">= 3.11"
license = { file = "LICENSE" }
authors = [
    {name = "Tobias Fischer", email = "tobiasfischer623@gmail.com"},
    {name = "Alessandro Burzio", email = "aburzio@nvidia.com"},
    {name = "Haithem Turki", email = "hturki@nvidia.com"},
]
classifiers = [
    "Development Status :: 3 - Alpha",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: Apache Software License",
    "Operating System :: POSIX :: Linux",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.11",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Topic :: Scientific/Engineering :: Image Processing",
]
dependencies = [
    # core
    "accelerate==1.15.0",
    "h5py==3.16.0",
    "huggingface-hub==1.16.4",
    "hydra-core==1.3.8",
    "numpy==2.4.4",
    "omegaconf==2.3.0",
    "opencv-python==4.11.0.86",
    "Pillow==12.3.0",
    "pydantic==2.12.4",
    "safetensors==0.5.3",
    "scipy==1.16.0",
    "torch==2.13.0",
    "torchvision==0.28.0",
    "tqdm==4.67.1",
    # logging + console
    "rich==14.3.3",
    "tensorboard==2.19.0",
    "wandb==0.25.1",
    # visualization (transitively required by callbacks/__init__)
    "matplotlib==3.10.3",
    "plotly==6.2.0",
    "rerun-sdk==0.24.1",
    # 3D geometry (ICP, voxel downsampling)
    "open3d==0.19.0",
]

[project.optional-dependencies]
demos = [
    # interactive gradio demos
    "gradio[oauth,mcp]==6.31.0",
    "onnxruntime-gpu==1.25.0",
    "requests==2.34.2",
    "trimesh==4.8.3",
]
dev = [
    "black==25.1.0",
    "pre-commit==4.2.0",
    "pytest==8.4.1",
    "ruff==0.12.1",
]
all = ["dvlt[demos,dev]"]


# Using setuptools as the build backend
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

# setuptools configuration
[tool.setuptools.packages.find]
where = ["src"]
include = ["dvlt*"]

# Black configuration
[tool.black]
line-length = 120
target-version = ["py310"]
include = '\.pyi?$'
extend-exclude = '''
# A regex preceded with ^/ will apply only to files and directories
# in the root of the project.
^/build/
'''

# Ruff configuration
[tool.ruff]
line-length = 120
target-version = "py310"

# Enable various linting rules:
# E: pycodestyle errors (PEP 8 style guide)
# F: Pyflakes (detects logical errors)
# I: isort (import sorting)
# N: pep8-naming (naming conventions)
# W: pycodestyle warnings
# B: flake8-bugbear (additional bug detection)
# UP: pyupgrade (upgrade syntax to newer Python)
# PL: Pylint (general Python linting)
# RUF: Ruff-specific rules
lint.select = ["E", "F", "I", "W", "B", "PLE", "PLW", "PLC", "PLR"]
lint.ignore = [
    "E731",  # lambda expression
    "E501",  # Line too long.
    "PLR2004",  # Magic value used in comparison.
    "PLR0915",  # Too many statements.
    "PLR0913",  # Too many arguments.
    "PLC0414",  # Import alias does not rename variable. (this is used for exporting names)
    "PLC1901",  # Use falsey strings.
    "PLR0911",  # Too many return statements.
    "PLR0912",  # Too many branches.
    "PLW2901",  # For loop variable overwritten.
    "B027",     # Allow empty methods in abstract base class
]

# Specify directories that should be checked
include = ["src/**/*.py", "tests/**/*.py"]

# Exclude a variety of commonly ignored directories.
exclude = [
    ".bzr",
    ".direnv",
    ".eggs",
    ".git",
    ".git-rewrite",
    ".hg",
    ".mypy_cache",
    ".nox",
    ".pants.d",
    ".pytype",
    ".ruff_cache",
    ".svn",
    ".tox",
    ".venv",
    "__pypackages__",
    "_build",
    "buck-out",
    "build",
    "dist",
    "node_modules",
    "venv",
]

# Allow unused variables when underscore-prefixed.
lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"

[tool.ruff.lint.mccabe]
max-complexity = 10

[tool.ruff.lint.isort]
known-first-party = ["dvlt", "tests"]
force-single-line = false
lines-after-imports = 2

[tool.ruff.lint.flake8-quotes]
docstring-quotes = "double"
inline-quotes = "single"

[tool.ruff.lint.pydocstyle]
convention = "google"

[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]