[build-system] requires = ["setuptools>=69", "wheel"] build-backend = "setuptools.build_meta" [project] name = "mousehold" version = "0.1.0" description = "Household finance ledger with evidence-driven imports, project budgets, and settlement." readme = "README.md" requires-python = ">=3.12" license = { text = "AGPL-3.0-only" } dependencies = [ "fastapi>=0.115.0", "fints>=5.0.0", "pydantic>=2.8.0", "pydantic-settings>=2.4.0", "python-multipart>=0.0.9", "sqlalchemy>=2.0.32", "uvicorn[standard]>=0.30.0", ] [project.optional-dependencies] dev = [ "httpx>=0.27.0", "pytest>=8.3.0", "ruff>=0.6.0", ] [project.scripts] mousehold-api = "mousehold_api.main:run" mousehold-agent = "mousehold_agent.cli:main" [tool.setuptools.packages.find] where = ["apps/api", "apps/local-agent", "packages/domain", "packages/matching"] [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["apps/api", "apps/local-agent", "packages/domain", "packages/matching"] [tool.ruff] line-length = 120 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B"] ignore = ["B008"]