Python lint: Ruff rules for pylint and code complexity (#525)
This commit is contained in:
parent
47d35f0b3c
commit
c47c767ff4
5 changed files with 37 additions and 22 deletions
|
|
@ -102,18 +102,36 @@ executionEnvironments = [
|
|||
{ root = "examples/servers", reportUnusedFunction = false },
|
||||
]
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = ["C4", "E", "F", "I", "PERF", "UP"]
|
||||
ignore = ["PERF203"]
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 120
|
||||
target-version = "py310"
|
||||
extend-exclude = ["README.md"]
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = [
|
||||
"C4", # flake8-comprehensions
|
||||
"C90", # mccabe
|
||||
"E", # pycodestyle
|
||||
"F", # pyflakes
|
||||
"I", # isort
|
||||
"PERF", # Perflint
|
||||
"PL", # Pylint
|
||||
"UP", # pyupgrade
|
||||
]
|
||||
ignore = ["PERF203", "PLC0415", "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"]
|
||||
"tests/shared/test_progress_notifications.py" = ["PLW0603"]
|
||||
|
||||
[tool.ruff.lint.pylint]
|
||||
allow-magic-value-types = ["bytes", "float", "int", "str"]
|
||||
max-args = 23 # Default is 5
|
||||
max-branches = 23 # Default is 12
|
||||
max-returns = 13 # Default is 6
|
||||
max-statements = 102 # Default is 50
|
||||
|
||||
[tool.uv.workspace]
|
||||
members = ["examples/servers/*", "examples/snippets"]
|
||||
|
|
|
|||
|
|
@ -182,9 +182,8 @@ class FastMCP(Generic[LifespanResultT]):
|
|||
raise ValueError("Cannot specify both auth_server_provider and token_verifier")
|
||||
if not auth_server_provider and not token_verifier:
|
||||
raise ValueError("Must specify either auth_server_provider or token_verifier when auth is enabled")
|
||||
else:
|
||||
if auth_server_provider or token_verifier:
|
||||
raise ValueError("Cannot specify auth_server_provider or token_verifier without auth settings")
|
||||
elif auth_server_provider or token_verifier:
|
||||
raise ValueError("Cannot specify auth_server_provider or token_verifier without auth settings")
|
||||
|
||||
self._auth_server_provider = auth_server_provider
|
||||
self._token_verifier = token_verifier
|
||||
|
|
|
|||
|
|
@ -139,14 +139,14 @@ class FuncMetadata(BaseModel):
|
|||
if field_info.alias:
|
||||
key_to_field_info[field_info.alias] = field_info
|
||||
|
||||
for data_key in data.keys():
|
||||
for data_key, data_value in data.items():
|
||||
if data_key not in key_to_field_info:
|
||||
continue
|
||||
|
||||
field_info = key_to_field_info[data_key]
|
||||
if isinstance(data[data_key], str) and field_info.annotation is not str:
|
||||
if isinstance(data_value, str) and field_info.annotation is not str:
|
||||
try:
|
||||
pre_parsed = json.loads(data[data_key])
|
||||
pre_parsed = json.loads(data_value)
|
||||
except json.JSONDecodeError:
|
||||
continue # Not JSON - skip
|
||||
if isinstance(pre_parsed, str | int | float):
|
||||
|
|
|
|||
|
|
@ -85,7 +85,6 @@ import mcp.types as types
|
|||
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.shared.context import RequestContext
|
||||
from mcp.shared.exceptions import McpError
|
||||
from mcp.shared.message import ServerMessageMetadata, SessionMessage
|
||||
|
|
|
|||
|
|
@ -838,17 +838,16 @@ class StreamableHTTPServerTransport:
|
|||
# If this response is for an existing request stream,
|
||||
# send it there
|
||||
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 if target_request_id is not None else GET_STREAM_KEY
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue