Skip to content

Commit 8690e74

Browse files
committed
Python lint: Ruff rules for pylint and code complexity
1 parent babb477 commit 8690e74

File tree

21 files changed

+34
-25
lines changed

21 files changed

+34
-25
lines changed

examples/servers/simple-prompt/mcp_simple_prompt/server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import anyio
22
import click
3-
import mcp.types as types
3+
from mcp import types
44
from mcp.server.lowlevel import Server
55

66

examples/servers/simple-resource/mcp_simple_resource/server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import anyio
22
import click
3-
import mcp.types as types
3+
from mcp import types
44
from mcp.server.lowlevel import Server
55
from pydantic import FileUrl
66

examples/servers/simple-tool/mcp_simple_tool/server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import anyio
22
import click
33
import httpx
4-
import mcp.types as types
4+
from mcp import types
55
from mcp.server.lowlevel import Server
66

77

pyproject.toml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,18 +88,26 @@ venvPath = "."
8888
venv = ".venv"
8989
strict = ["src/mcp/**/*.py"]
9090

91-
[tool.ruff.lint]
92-
select = ["C4", "E", "F", "I", "PERF", "UP"]
93-
ignore = ["PERF203"]
94-
9591
[tool.ruff]
9692
line-length = 88
9793
target-version = "py310"
9894

95+
[tool.ruff.lint]
96+
select = ["C4", "C90", "E", "F", "I", "PERF", "PL", "UP"]
97+
ignore = ["PERF203"]
98+
mccabe.max-complexity = 13 # Default is 10
99+
99100
[tool.ruff.lint.per-file-ignores]
100101
"__init__.py" = ["F401"]
101102
"tests/server/fastmcp/test_func_metadata.py" = ["E501"]
102103

104+
[tool.ruff.lint.pylint]
105+
allow-magic-value-types = ["bytes", "float", "int", "str"]
106+
max-args = 20 # Default is 5
107+
max-branches = 14 # Default is 12
108+
max-returns = 7 # Default is 6
109+
max-statements = 69 # Default is 50
110+
103111
[tool.uv.workspace]
104112
members = ["examples/servers/*"]
105113

src/mcp/client/__main__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import anyio
88
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
99

10-
import mcp.types as types
10+
from mcp import types
1111
from mcp.client.session import ClientSession
1212
from mcp.client.sse import sse_client
1313
from mcp.client.stdio import StdioServerParameters, stdio_client

src/mcp/client/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
66
from pydantic import AnyUrl, TypeAdapter
77

8-
import mcp.types as types
8+
from mcp import types
99
from mcp.shared.context import RequestContext
1010
from mcp.shared.session import BaseSession, RequestResponder
1111
from mcp.shared.version import SUPPORTED_PROTOCOL_VERSIONS

src/mcp/client/sse.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
1010
from httpx_sse import aconnect_sse
1111

12-
import mcp.types as types
12+
from mcp import types
1313

1414
logger = logging.getLogger(__name__)
1515

src/mcp/client/stdio/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from anyio.streams.text import TextReceiveStream
1111
from pydantic import BaseModel, Field
1212

13-
import mcp.types as types
13+
from mcp import types
1414

1515
from .win32 import (
1616
create_windows_process,

src/mcp/client/websocket.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from websockets.asyncio.client import connect as ws_connect
1010
from websockets.typing import Subprotocol
1111

12-
import mcp.types as types
12+
from mcp import types
1313

1414
logger = logging.getLogger(__name__)
1515

src/mcp/server/lowlevel/server.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,10 @@ async def main():
7777
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
7878
from pydantic import AnyUrl
7979

80-
import mcp.types as types
80+
from mcp import types
8181
from mcp.server.lowlevel.helper_types import ReadResourceContents
8282
from mcp.server.models import InitializationOptions
8383
from mcp.server.session import ServerSession
84-
from mcp.server.stdio import stdio_server as stdio_server
8584
from mcp.shared.context import RequestContext
8685
from mcp.shared.exceptions import McpError
8786
from mcp.shared.session import RequestResponder

src/mcp/server/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ async def handle_list_prompts(ctx: RequestContext) -> list[types.Prompt]:
4545
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
4646
from pydantic import AnyUrl
4747

48-
import mcp.types as types
48+
from mcp import types
4949
from mcp.server.models import InitializationOptions
5050
from mcp.shared.session import (
5151
BaseSession,

src/mcp/server/sse.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ async def handle_sse(request):
4545
from starlette.responses import Response
4646
from starlette.types import Receive, Scope, Send
4747

48-
import mcp.types as types
48+
from mcp import types
4949

5050
logger = logging.getLogger(__name__)
5151

src/mcp/server/stdio.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ async def run_server():
2626
import anyio.lowlevel
2727
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
2828

29-
import mcp.types as types
29+
from mcp import types
3030

3131

3232
@asynccontextmanager

src/mcp/server/websocket.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from starlette.types import Receive, Scope, Send
88
from starlette.websockets import WebSocket
99

10-
import mcp.types as types
10+
from mcp import types
1111

1212
logger = logging.getLogger(__name__)
1313

src/mcp/shared/memory.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import anyio
1111
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
1212

13-
import mcp.types as types
13+
from mcp import types
1414
from mcp.client.session import (
1515
ClientSession,
1616
ListRootsFnT,

tests/client/test_config.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ def test_command_execution(mock_config_path: Path):
4444

4545
test_args = [command] + args + ["--help"]
4646

47-
result = subprocess.run(test_args, capture_output=True, text=True, timeout=5)
47+
result = subprocess.run(
48+
test_args, capture_output=True, text=True, timeout=5, check=False
49+
)
4850

4951
assert result.returncode == 0
5052
assert "usage" in result.stdout.lower()

tests/client/test_logging_callback.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import pytest
44

5-
import mcp.types as types
5+
from mcp import types
66
from mcp.shared.memory import (
77
create_connected_server_and_client_session as create_session,
88
)

tests/client/test_session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import anyio
22
import pytest
33

4-
import mcp.types as types
4+
from mcp import types
55
from mcp.client.session import DEFAULT_CLIENT_INFO, ClientSession
66
from mcp.shared.session import RequestResponder
77
from mcp.types import (

tests/server/test_read_resource.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import pytest
66
from pydantic import AnyUrl, FileUrl
77

8-
import mcp.types as types
8+
from mcp import types
99
from mcp.server.lowlevel.server import ReadResourceContents, Server
1010

1111

tests/server/test_session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import anyio
22
import pytest
33

4-
import mcp.types as types
4+
from mcp import types
55
from mcp.client.session import ClientSession
66
from mcp.server import Server
77
from mcp.server.lowlevel import NotificationOptions

tests/shared/test_session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import anyio
44
import pytest
55

6-
import mcp.types as types
6+
from mcp import types
77
from mcp.client.session import ClientSession
88
from mcp.server.lowlevel.server import Server
99
from mcp.shared.exceptions import McpError

0 commit comments

Comments
 (0)