| [project] | |
| name = "small-cuts" | |
| version = "0.1.0" | |
| description = "An omniscient cinematic narrator for moments of your life, powered by small open models (Build Small Hackathon)" | |
| readme = "README.md" | |
| requires-python = ">=3.10" | |
| dependencies = [ | |
| "gradio>=5.0", | |
| "itsdangerous>=2.2", | |
| "pillow>=10.0", | |
| "pillow-heif>=0.18", | |
| "av>=12.0", | |
| "huggingface-hub>=1.19", | |
| "sentry-sdk>=2.0", | |
| # core viewer dep: decodes seed durations + writes generated voice-overs (viewer.py), | |
| # imported at module scope — must be in the base install (and CI), not just the tts extra. | |
| "soundfile>=0.12", | |
| ] | |
| [project.optional-dependencies] | |
| local = [ | |
| "transformers>=4.49", | |
| "torch>=2.4", | |
| "torchvision>=0.19", | |
| "accelerate>=1.0", | |
| ] | |
| tts = [ | |
| "kokoro>=0.9", | |
| "soundfile>=0.12", | |
| ] | |
| llama = [ | |
| "llama-cpp-python>=0.3", | |
| ] | |
| engine = [ | |
| "fastapi>=0.110", | |
| "uvicorn>=0.30", | |
| "websockets>=12", | |
| "jsonschema>=4.21", | |
| "soundfile>=0.12", | |
| "httpx>=0.27", | |
| ] | |
| dev = [ | |
| "pytest>=8.0", | |
| "ruff>=0.8", | |
| "jsonschema>=4.21", | |
| ] | |
| [build-system] | |
| requires = ["hatchling"] | |
| build-backend = "hatchling.build" | |
| [tool.hatch.build.targets.wheel] | |
| packages = ["src/small_cuts"] | |
| [tool.pytest.ini_options] | |
| testpaths = ["tests"] | |
| addopts = "-q" | |
| [tool.ruff] | |
| line-length = 100 | |
| src = ["src", "tests"] | |
| [tool.ruff.lint] | |
| select = ["E", "F", "W", "I", "UP", "B", "SIM"] | |