[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "ouestcharlie-woof" version = "0.15.2" description = "The MCP-App Photo Gallery" requires-python = ">=3.13" readme = "README.md" license = "MIT" license-files = ["LICENSE*"] authors = [ { name = "Antoine Hue" }, ] classifiers = [ "Programming Language :: Python :: 3", "Operating System :: OS Independent", ] dependencies = [ "mcp>=2.0,<3.0.0", "fastmcp>=3.2", "httpx>=0.27", "starlette>=1.0", "uvicorn>=0.40", "platformdirs>=4.0", "filelock>=3.13", "ouestcharlie-whitebeard>=0.15.0", "ouestcharlie-wally>=0.15.0", ] [project.urls] Homepage = "https://github.com/ouestcharlie/ouestcharlie-woof" Issues = "https://github.com/ouestcharlie/ouestcharlie-woof/issues" [project.scripts] woof = "woof.__main__:main" woof-bridge = "woof.bridge:main" [tool.uv.sources] ouestcharlie-whitebeard = { path = "../ouestcharlie-whitebeard", editable = true } ouestcharlie-wally = { path = "../ouestcharlie-wally", editable = true } [tool.hatch.build.targets.wheel] packages = ["src/woof"] artifacts = ["src/woof/gallery/dist"] [tool.pytest.ini_options] asyncio_mode = "strict" testpaths = ["tests", "tests_integration"] tmp_path_retention_policy = "none" filterwarnings = [ "ignore::DeprecationWarning:websockets", "ignore::DeprecationWarning:uvicorn", "ignore::starlette.exceptions.StarletteDeprecationWarning", # Windows ProactorEventLoop closes subprocess/pipe transports after gc; harmless. "ignore::pytest.PytestUnraisableExceptionWarning", ] [tool.ruff] target-version = "py313" line-length = 100 [tool.ruff.lint] select = ["E", "F", "W", "I", "UP", "B", "SIM"] [tool.ruff.lint.per-file-ignores] "src/woof/__main__.py" = ["E402"] # logging must be configured before woof modules are imported [tool.mypy] python_version = "3.13" strict = true [dependency-groups] dev = [ "mcp[cli]>=2.0,<3.0.0", "pre-commit>=4.5.1", "pytest>=9.0", "pytest-asyncio>=1.0", ]