[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "stackcraft" version = "0.1.0" description = "A reproducible falling-block playground for decision models" readme = "README.md" requires-python = ">=3.13,<3.14" dependencies = ["fastapi", "uvicorn"] [project.optional-dependencies] ml = [ "torch==2.14.1", "torchvision", "transformers==5.18.0", "peft==0.21.2", "safetensors>=0.8,<1", "huggingface-hub>=1.33,<2", "pillow>=12,<13", ] [project.scripts] stackcraft = "stackcraft.cli:main" [dependency-groups] dev = [ "pytest", "ruff", "ty", "httpx2>=2.13.1", ] [tool.hatch.build.targets.wheel] packages = ["src/stackcraft"] [tool.ruff] target-version = "py313" line-length = 100 [tool.ruff.lint] select = ["E", "F", "I", "UP", "B"] [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-ra" [tool.uv] required-version = ">=0.12.23,<0.13" [tool.uv.sources] torch = [{ index = "pytorch-cu130", marker = "sys_platform == 'linux'" }] torchvision = [{ index = "pytorch-cu130", marker = "sys_platform == 'linux'" }] [[tool.uv.index]] name = "pytorch-cu130" url = "https://download.pytorch.org/whl/cu130" explicit = true