[build-system] requires = ["hatchling>=1.26"] build-backend = "hatchling.build" [project] name = "micro-scout" version = "0.1.0" description = "A small, local code retrieval model and verifiable context tool" readme = "README.md" requires-python = ">=3.11,<3.14" dependencies = ["numpy>=1.26,<3"] [project.optional-dependencies] model = ["torch==2.7.1", "transformers==4.57.6", "safetensors>=0.5,<1"] train = ["micro-scout[model]", "pyarrow>=18,<24", "huggingface-hub>=0.34,<1"] mcp = ["mcp>=1.12,<2"] live = ["tokenizers>=0.21,<1"] policy = ["micro-scout[model,live]", "peft==0.17.1", "accelerate==1.10.1", "bitsandbytes==0.47.0"] dev = ["pytest>=8,<10", "ruff>=0.11,<1", "build>=1.2,<2"] [project.scripts] micro-scout = "micro_scout.cli:main" [tool.hatch.build.targets.wheel] packages = ["src/micro_scout"] [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-ra" markers = ["model: requires downloaded model weights"] [tool.ruff] target-version = "py311" line-length = 100 [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM"]