[build-system] requires = ["setuptools>=68.0"] build-backend = "setuptools.build_meta" [project] name = "proportio-mcp-server" version = "1.0.0" description = "Gradio-hosted MCP server for reliable proportion calculations" authors = [{name = "Proportio Team"}] readme = "README.md" requires-python = ">=3.11" dependencies = [ "gradio[mcp]>=5.0.0", "pydantic>=2.8.0", "pytest>=8.0.0", ] [tool.black] line-length = 88 target-version = ['py311'] include = '\.pyi?$' [tool.ruff] target-version = "py311" line-length = 88 select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "B", # flake8-bugbear "C4", # flake8-comprehensions "UP", # pyupgrade ] ignore = [] [tool.ruff.per-file-ignores] "tests/*" = ["S101"] [tool.mypy] python_version = "3.11" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true disallow_incomplete_defs = true check_untyped_defs = true disallow_untyped_decorators = true no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true warn_no_return = true warn_unreachable = true strict_equality = true [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] addopts = [ "--strict-markers", "--strict-config", ]