Files
OpenBB/openbb_platform/extensions/mcp_server/pyproject.toml
dlee-bq cad1fdcab5 Target Python 3.11 in ruff and ty for cli, core, mcp_server, platform_api, cookiecutter
With ruff target-version py310 and ty python-version 3.10, both tools
reject an unconditional `import tomllib`: ty reports it as unresolved
(exit 1) and ruff's isort classifies it as third-party. Raise the targets
in the projects that now import tomllib directly, and in the root
ruff.toml that governs dev_install.py.

- ruff target-version = "py311" and ty python-version = "3.11" in cli,
  core, mcp_server, platform_api, and cookiecutter; root ruff.toml
  target-version = "py311"
- UP042: OutputMode, ChartLifecycle, MCPType, and HTTPMethod become
  StrEnum; every consumer uses .value or == comparisons, so only str()
  and format() output change
- UP017: datetime.timezone.utc -> datetime.UTC (ruff autofix) in the cli
  dispatchers, the cli test generator, and a core test
2026-10-24 01:12:31 -07:00

149 lines
2.7 KiB
TOML
Vendored

[project]
name = "openbb-mcp-server"
version = "2.0.1"
description = "OpenBB Platform MCP Server: Model-Context-Protocol bridge for the Open Data Platform by OpenBB."
authors = [{ name = "OpenBB Team", email = "hello@openbb.co" }]
license = { text = "Apache-2.0" }
readme = "README.md"
requires-python = ">=3.11,<4"
dependencies = [
"openbb-core>=2.0.1",
"fastapi>=0.138.2",
"fastmcp>=4.0.9",
]
[project.optional-dependencies]
cli = ["openbb-cli>=2.0.1"]
[project.scripts]
openbb-mcp = "openbb_mcp_server.main:main"
[project.urls]
Homepage = "https://openbb.co"
Repository = "https://github.com/OpenBB-finance/OpenBB"
Documentation = "https://docs.openbb.co/odp/python/extensions/interface/openbb-mcp"
[dependency-groups]
dev = [
"openbb-devtools>=2.0.1",
"openbb-cli>=2.0.1",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["openbb_mcp_server"]
[tool.hatch.build.targets.sdist]
include = [
"openbb_mcp_server",
"README.md",
"pyproject.toml",
]
[tool.ruff]
line-length = 88
target-version = "py311"
fix = true
[tool.ruff.lint]
select = [
"D",
"E",
"W",
"F",
"S",
"UP",
"I",
"PLC",
"PLE",
"PLR",
"PLW",
"SIM",
"T20",
]
ignore = [
"PLR2004",
"PLR0913",
"PLR0915",
"PLC0415",
"E402",
"E501",
"D202",
"D203",
"D205",
"D206",
"D210",
"D212",
"D213",
"D214",
"D215",
"D300",
"D400",
"D404",
"D405",
"D406",
"D407",
"D408",
"D409",
"D410",
"D411",
"D413",
"D415",
"D416",
"D417",
]
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["S101", "S108", "D", "SIM105", "SIM117"]
"integration/**" = ["S101", "S108", "D", "SIM105", "SIM117"]
"**/__init__.py" = ["F401"]
[tool.ruff.lint.isort]
combine-as-imports = true
force-wrap-aliases = true
[tool.ruff.lint.pylint]
max-args = 8
max-branches = 26
max-returns = 9
max-statements = 30
[tool.ruff.lint.pydocstyle]
convention = "numpy"
[tool.ty]
[tool.ty.environment]
python-version = "3.11"
[tool.ty.src]
include = ["openbb_mcp_server"]
exclude = ["openbb_mcp_server/skills", "tests", "integration"]
[tool.ty.rules]
unresolved-import = "ignore"
[tool.coverage.run]
branch = true
source = ["openbb_mcp_server"]
omit = ["*/openbb_mcp_server/skills/*"]
[tool.coverage.report]
show_missing = true
exclude_lines = [
"pragma: no cover",
"if TYPE_CHECKING:",
"if __name__ == .__main__.:",
"raise NotImplementedError",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-q --strict-markers"
filterwarnings = [
"error",
"ignore::DeprecationWarning:openbb_core.provider.utils.client",
]