diff --git a/pyproject.toml b/pyproject.toml index 5db112c0e..e375f9e1a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -90,18 +90,26 @@ venvPath = "." venv = ".venv" strict = ["src/mcp/**/*.py"] -[tool.ruff.lint] -select = ["C4", "E", "F", "I", "PERF", "UP"] -ignore = ["PERF203"] - [tool.ruff] line-length = 88 target-version = "py310" +[tool.ruff.lint] +select = ["C4", "C90", "E", "F", "I", "PERF", "PL", "UP"] +ignore = ["PERF203", "PLR0402"] +mccabe.max-complexity = 24 # Default is 10 + [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] "tests/server/fastmcp/test_func_metadata.py" = ["E501"] +[tool.ruff.lint.pylint] +allow-magic-value-types = ["bytes", "float", "int", "str"] +max-args = 20 # Default is 5 +max-branches = 23 # Default is 12 +max-returns = 13 # Default is 6 +max-statements = 99 # Default is 50 + [tool.uv.workspace] members = ["examples/servers/*"] diff --git a/src/mcp/server/lowlevel/server.py b/src/mcp/server/lowlevel/server.py index 876aef817..6f6efe5e0 100644 --- a/src/mcp/server/lowlevel/server.py +++ b/src/mcp/server/lowlevel/server.py @@ -82,7 +82,7 @@ async def main(): from mcp.server.lowlevel.helper_types import ReadResourceContents from mcp.server.models import InitializationOptions from mcp.server.session import ServerSession -from mcp.server.stdio import stdio_server as stdio_server +from mcp.server.stdio import stdio_server as stdio_server # noqa: PLC0414 from mcp.shared.context import RequestContext from mcp.shared.exceptions import McpError from mcp.shared.message import SessionMessage diff --git a/src/mcp/server/streamable_http.py b/src/mcp/server/streamable_http.py index 8f4a1f512..231f1cccf 100644 --- a/src/mcp/server/streamable_http.py +++ b/src/mcp/server/streamable_http.py @@ -856,20 +856,19 @@ async def message_router(): if response_id in self._request_streams: target_request_id = response_id - else: - # Extract related_request_id from meta if it exists - if ( - session_message.metadata is not None - and isinstance( - session_message.metadata, - ServerMessageMetadata, - ) - and session_message.metadata.related_request_id - is not None - ): - target_request_id = str( - session_message.metadata.related_request_id - ) + # Extract related_request_id from meta if it exists + elif ( + session_message.metadata is not None + and isinstance( + session_message.metadata, + ServerMessageMetadata, + ) + and session_message.metadata.related_request_id + is not None + ): + target_request_id = str( + session_message.metadata.related_request_id + ) request_stream_id = ( target_request_id diff --git a/tests/shared/test_progress_notifications.py b/tests/shared/test_progress_notifications.py index 1e0409e14..9f17caf20 100644 --- a/tests/shared/test_progress_notifications.py +++ b/tests/shared/test_progress_notifications.py @@ -41,7 +41,7 @@ async def run_server(): capabilities=server.get_capabilities(NotificationOptions(), {}), ), ) as server_session: - global serv_sesh + global serv_sesh # noqa: PLW0603 serv_sesh = server_session async for message in server_session.incoming_messages: