Skip to content

Commit ed78d50

Browse files
committed
Python lint: Ruff rules for pylint and code complexity
1 parent 5441767 commit ed78d50

File tree

4 files changed

+36
-20
lines changed

4 files changed

+36
-20
lines changed

pyproject.toml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,18 +91,35 @@ venvPath = "."
9191
venv = ".venv"
9292
strict = ["src/mcp/**/*.py"]
9393

94-
[tool.ruff.lint]
95-
select = ["C4", "E", "F", "I", "PERF", "UP"]
96-
ignore = ["PERF203"]
97-
9894
[tool.ruff]
9995
line-length = 88
10096
target-version = "py310"
10197

98+
[tool.ruff.lint]
99+
select = [
100+
"C4", # flake8-comprehensions
101+
"C90", # mccabe
102+
"E", # pycodestyle
103+
"F", # pyflakes
104+
"I", # isort
105+
"PERF", # Perflint
106+
"PL", # Pylint
107+
"UP", # pyupgrade
108+
]
109+
ignore = ["PERF203", "PLR0402"]
110+
mccabe.max-complexity = 24 # Default is 10
111+
102112
[tool.ruff.lint.per-file-ignores]
103113
"__init__.py" = ["F401"]
104114
"tests/server/fastmcp/test_func_metadata.py" = ["E501"]
105115

116+
[tool.ruff.lint.pylint]
117+
allow-magic-value-types = ["bytes", "float", "int", "str"]
118+
max-args = 20 # Default is 5
119+
max-branches = 23 # Default is 12
120+
max-returns = 13 # Default is 6
121+
max-statements = 99 # Default is 50
122+
106123
[tool.uv.workspace]
107124
members = ["examples/servers/*"]
108125

src/mcp/server/lowlevel/server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ async def main():
8383
from mcp.server.lowlevel.helper_types import ReadResourceContents
8484
from mcp.server.models import InitializationOptions
8585
from mcp.server.session import ServerSession
86-
from mcp.server.stdio import stdio_server as stdio_server
86+
from mcp.server.stdio import stdio_server as stdio_server # noqa: PLC0414
8787
from mcp.shared.context import RequestContext
8888
from mcp.shared.exceptions import McpError
8989
from mcp.shared.message import ServerMessageMetadata, SessionMessage

src/mcp/server/streamable_http.py

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -859,20 +859,19 @@ async def message_router():
859859
if response_id in self._request_streams:
860860
target_request_id = response_id
861861

862-
else:
863-
# Extract related_request_id from meta if it exists
864-
if (
865-
session_message.metadata is not None
866-
and isinstance(
867-
session_message.metadata,
868-
ServerMessageMetadata,
869-
)
870-
and session_message.metadata.related_request_id
871-
is not None
872-
):
873-
target_request_id = str(
874-
session_message.metadata.related_request_id
875-
)
862+
# Extract related_request_id from meta if it exists
863+
elif (
864+
session_message.metadata is not None
865+
and isinstance(
866+
session_message.metadata,
867+
ServerMessageMetadata,
868+
)
869+
and session_message.metadata.related_request_id
870+
is not None
871+
):
872+
target_request_id = str(
873+
session_message.metadata.related_request_id
874+
)
876875

877876
request_stream_id = (
878877
target_request_id

tests/shared/test_progress_notifications.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ async def run_server():
4141
capabilities=server.get_capabilities(NotificationOptions(), {}),
4242
),
4343
) as server_session:
44-
global serv_sesh
44+
global serv_sesh # noqa: PLW0603
4545

4646
serv_sesh = server_session
4747
async for message in server_session.incoming_messages:

0 commit comments

Comments
 (0)