3d_model / pyproject.toml
Azan
Clean deployment build (Squashed)
7a87926
[build-system]
requires = ["hatchling>=1.25", "hatch-vcs>=0.4"]
build-backend = "hatchling.build"
[project]
name = "ylff"
version = "0.0.0"
description = "You Learn From Failure: BA-Supervised Fine-Tuning for Visual Geometry"
readme = "README.md"
requires-python = ">=3.9, <=3.13"
license = { text = "Apache-2.0" }
authors = [{ name = "YLFF Contributors" }]
dependencies = [
"torch>=2.0.0",
"torchvision",
"numpy<2.0",
"opencv-python",
"pillow",
"tqdm",
"huggingface-hub",
"safetensors",
"einops",
"omegaconf",
"pycolmap>=0.4.0",
"typer[all]>=0.9.0",
"matplotlib>=3.5.0",
"wandb>=0.16.0",
"fastapi>=0.104.0",
"uvicorn[standard]>=0.24.0",
"python-multipart>=0.0.9",
"pydantic>=2.0.0",
"pydantic-settings>=2.0.0",
"requests>=2.31.0",
"psutil>=5.9.0",
"boto3>=1.34.0",
]
[project.optional-dependencies]
# GUI visualization (requires tkinter, usually included with Python)
gui = [
"plotly>=5.0.0", # For interactive 3D plots
]
# BA pipeline dependencies (hloc, LightGlue, etc.)
ba = [
# hloc and LightGlue are typically installed from source
# See SETUP.md for installation instructions
]
# Development dependencies
dev = [
"pytest>=7.0.0",
"black>=23.0.0",
"isort>=5.12.0",
"mypy>=1.0.0",
"pre-commit>=3.0.0",
]
# All optional dependencies
all = [
"ylff[gui,ba,dev]",
]
[project.scripts]
ylff = "ylff.cli:app"
[project.urls]
Homepage = "https://github.com/your-org/ylff"
Documentation = "https://github.com/your-org/ylff/docs"
Repository = "https://github.com/your-org/ylff"
[tool.hatch.version]
source = "vcs"
[tool.hatch.build.targets.wheel]
packages = ["ylff"]
include = [
"/ylff/resources",
]
[tool.hatch.build.targets.sdist]
include = [
"/README.md",
"/pyproject.toml",
"/ylff",
"/scripts",
"/configs",
"/docs",
]
[tool.mypy]
plugins = ["jaxtyping.mypy_plugin"]
python_version = "3.9"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false
[[tool.mypy.overrides]]
module = [
"cv2.*",
"pycolmap.*",
"hloc.*",
]
ignore_missing_imports = true
[tool.black]
line-length = 99
target-version = ['py39', 'py310', 'py311', 'py312']
include = '\.pyi?$'
exclude = '''
/(
| \.git
| \.venv
| __pycache__
| build
| dist
)/
'''
[tool.isort]
profile = "black"
multi_line_output = 3
include_trailing_comma = true
known_third_party = ["cv2", "omegaconf", "torch", "torchvision", "transformers", "typer", "matplotlib", "plotly"]
known_first_party = ["ylff"]
sections = ["FUTURE","STDLIB","THIRDPARTY","FIRSTPARTY","LOCALFOLDER"]
skip_gitignore = true
line_length = 99
no_lines_before = "THIRDPARTY"