pyproject.toml•2.6 kB
[project]
name = "singlestore_mcp_server"
dynamic = ["version"]
description = "SingleStore MCP server"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"mcp>=1.10.1",
"nbformat>=5.10.4",
"pydantic-settings>=2.9.1",
"segment-analytics-python>=2.3.4",
"starlette>=0.46.2",
"jsonschema>=4.0.0",
"singlestoredb>=1.15.1",
"pre-commit>=4.2.0",
"pytest-asyncio>=1.1.0",
]
[project.scripts]
singlestore-mcp-server = "src.main:cli"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.version]
path = "src/version.py"
[tool.hatch.build.targets.wheel]
packages = ["src"]
[tool.ruff]
# Same as Black
line-length = 88
indent-width = 4
# Assume Python 3.10+
target-version = "py310"
# Exclude Jupyter notebooks
extend-exclude = ["*.ipynb"]
[tool.ruff.lint]
# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
# McCabe complexity (`C901`) by default.
select = ["E4", "E7", "E9", "F"]
ignore = []
# Allow fix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []
# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
[tool.ruff.format]
# Like Black, use double quotes for strings.
quote-style = "double"
# Like Black, indent with spaces, rather than tabs.
indent-style = "space"
# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false
# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"
# Enable auto-formatting of code examples in docstrings. Markdown,
# reStructuredText code/literal blocks and doctests are all supported.
#
# This is currently disabled by default, but it is planned for this
# to be opt-out in the future.
docstring-code-format = false
# Set the line length limit used when formatting code snippets in
# docstrings.
#
# This only has an effect when the `docstring-code-format` setting is
# enabled.
docstring-code-line-length = "dynamic"
[tool.uv]
dev-dependencies = [
"build>=1.0.3",
"pre-commit>=4.0.1",
"pyright>=1.1.391",
"pytest>=8.3.4",
"pytest-cov>=6.0.0",
"ruff>=0.8.5",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = [
"-v",
"--strict-markers",
"--strict-config"
]
markers = [
"integration: mark a test as an integration test",
"asyncio: mark a test as asyncio coroutine"
]
asyncio_default_fixture_loop_scope = "function"