pyproject.toml•1.82 kB
[project]
name = "brlaw_mcp_server"
description = "A MCP server for agent-based research on Brazilian law"
authors = [{ name = "Pedro Roque de Mattia", email = "pedromattia@gmail.com" }]
readme = "README.md"
version = "0.4.2"
requires-python = ">=3.12"
dependencies = [
"click>=8.1.8",
"mcp[cli]>=1.6.0",
"patchright>=1.52.4",
"pydantic>=2.11.3",
"python-json-logger>=3.3.0",
"selenium>=4.31.0",
]
[project.scripts]
serve = "brlaw_mcp_server.presentation.mcp:serve"
[dependency-groups]
dev = [
"basedpyright>=1.28.5",
"pytest>=8.3.4",
"pytest-asyncio>=0.25.3",
"ruff>=0.9.10",
]
[tool.basedpyright]
include = ["src/**/*.py", "tests/**/*.py"]
reportUnusedCallResult = false
verboseOutput = true
[tool.pytest.ini_options]
addopts = ["--strict-markers", "--import-mode=importlib"]
asyncio_default_fixture_loop_scope = "session"
asyncio_mode = "auto"
log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
required_plugins = ["pytest-asyncio"]
xfail_strict = true
[tool.ruff.lint]
extend-select = [
# > By default, Ruff enables Flake8's F rules, along with a subset of the E rules, omitting any
# > stylistic rules that overlap with the use of a formatter, like ruff format or Black.
# https://docs.astral.sh/ruff/rules/
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"FURB", # refurb
"G", # flake8-logging-format
"I", # isort
"LOG", # flake8-logging
"PL", # pylint
"PT", # flake8-pytest-style
"RUF", # Ruff-specific rules
"S", # flake8-bandit
"SIM", # flake8-simplify
"TC", # flake8-type-checking
"UP", # pyupgrade
]
isort.combine-as-imports = true
isort.split-on-trailing-comma = true
per-file-ignores = { "tests/**" = ["S101", "PLR2004"] }
[tool.uv]
package = true