[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"