pyproject.toml•2.39 kB
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "root-signals-mcp"
version = "20250429-1"
description = "MCP server for RootSignals evaluators"
readme = "README.md"
authors = [
{name = "RootSignals Team", email = "info@rootsignals.ai"}
]
requires-python = ">=3.13"
license = {text = "MIT"}
classifiers = [
"Programming Language :: Python :: 3.13",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
dependencies = [
"mcp-python>=0.1.4",
"mcp[cli]>=1.4.1",
"uvicorn>=0.18.0",
"sse-starlette>=2.2.1",
"httpx-sse>=0.4.0",
"pydantic>=2.5.0",
"pydantic-settings>=2.1.0",
"httpx>=0.25.0",
"anyio>=3.7.0",
"starlette>=0.28.0",
"websockets>=15.0.1",
]
[project.optional-dependencies]
dev = [
"pytest>=7.0.0",
"pytest-asyncio>=0.20.0",
"mypy>=1.0.0",
"ruff>=0.0.244",
"isort>=5.12.0",
"freezegun>=1.5.1",
"pre-commit>=4.2.0",
"pytest-cov>=6.0.0",
"python-on-whales>=0.69.0", # integration tests
]
[tool.pytest.ini_options]
asyncio_mode = "strict"
asyncio_default_fixture_loop_scope = "session"
testpaths = ["src/root_signals_mcp/test"]
norecursedirs = ["references"]
markers = [
"integration: marks tests as integration tests requiring external dependencies"
]
[tool.coverage.run]
source = ["src/root_signals_mcp"]
omit = [
"src/root_signals_mcp/test/*",
"src/root_signals_mcp/*/test/*",
"*/__pycache__/*",
]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise NotImplementedError",
"if __name__ == '__main__':",
"pass",
"raise ImportError"
]
[project.scripts]
sse = "root_signals_mcp.sse_server:main"
stdio = "root_signals_mcp.stdio_server:main"
[tool.setuptools]
package-dir = {"" = "src"}
[tool.setuptools.packages.find]
where = ["src"]
[tool.mypy]
python_version = "3.13"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
exclude = ["demonstrations"]
explicit_package_bases = true
namespace_packages = true
mypy_path = "src"
[tool.ruff]
line-length = 100
target-version = "py313"
[tool.ruff.lint]
select = ["E", "F", "I", "B", "C4", "N", "UP", "PL"]
ignore = ["E501"]
[tool.ruff.lint.per-file-ignores]
"src/root_signals_mcp/test/**/*.py" = ["N", "B", "PLR2004", "PLR0912", "PLR0915"]