fix: extract sentinel validation to reduce C901 complexity

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Krrish Dholakia 2026-07-01 03:30:39 +00:00
parent 70005a2a39
commit e33dfa4bf0
3 changed files with 83 additions and 265 deletions

View file

@ -1,194 +1 @@
{
"reportAny": {
"baseline": 24989,
"slack": 2500
},
"reportArgumentType": {
"baseline": 1814,
"slack": 180
},
"reportAssignmentType": {
"baseline": 220,
"slack": 22
},
"reportAttributeAccessIssue": {
"baseline": 346,
"slack": 35
},
"reportCallIssue": {
"baseline": 87,
"slack": 10
},
"reportConstantRedefinition": {
"baseline": 39,
"slack": 4
},
"reportDeprecated": {
"baseline": 217,
"slack": 22
},
"reportDuplicateImport": {
"baseline": 28,
"slack": 3
},
"reportExplicitAny": {
"baseline": 6931,
"slack": 700
},
"reportFunctionMemberAccess": {
"baseline": 7,
"slack": 3
},
"reportGeneralTypeIssues": {
"baseline": 151,
"slack": 15
},
"reportIncompatibleMethodOverride": {
"baseline": 52,
"slack": 5
},
"reportIncompatibleVariableOverride": {
"baseline": 8,
"slack": 3
},
"reportInconsistentOverload": {
"baseline": 12,
"slack": 3
},
"reportIndexIssue": {
"baseline": 26,
"slack": 3
},
"reportInvalidTypeForm": {
"baseline": 23,
"slack": 3
},
"reportInvalidTypeVarUse": {
"baseline": 2,
"slack": 3
},
"reportMatchNotExhaustive": {
"baseline": 1,
"slack": 0
},
"reportMissingParameterType": {
"baseline": 3933,
"slack": 390
},
"reportMissingTypeArgument": {
"baseline": 10612,
"slack": 1000
},
"reportMissingTypeStubs": {
"baseline": 27,
"slack": 10
},
"reportOperatorIssue": {
"baseline": 6,
"slack": 3
},
"reportOptionalCall": {
"baseline": 4,
"slack": 3
},
"reportOptionalIterable": {
"baseline": 3,
"slack": 3
},
"reportOptionalMemberAccess": {
"baseline": 724,
"slack": 72
},
"reportOptionalOperand": {
"baseline": 3,
"slack": 3
},
"reportOptionalSubscript": {
"baseline": 11,
"slack": 3
},
"reportPossiblyUnboundVariable": {
"baseline": 52,
"slack": 10
},
"reportPrivateUsage": {
"baseline": 1625,
"slack": 160
},
"reportRedeclaration": {
"baseline": 8,
"slack": 3
},
"reportReturnType": {
"baseline": 126,
"slack": 100
},
"reportTypedDictNotRequiredAccess": {
"baseline": 20,
"slack": 3
},
"reportUndefinedVariable": {
"baseline": 2,
"slack": 3
},
"reportUnknownArgumentType": {
"baseline": 30603,
"slack": 3000
},
"reportUnknownLambdaType": {
"baseline": 75,
"slack": 10
},
"reportUnknownMemberType": {
"baseline": 27037,
"slack": 2500
},
"reportUnknownParameterType": {
"baseline": 13612,
"slack": 1000
},
"reportUnknownVariableType": {
"baseline": 21445,
"slack": 2000
},
"reportUnnecessaryCast": {
"baseline": 118,
"slack": 10
},
"reportUnnecessaryComparison": {
"baseline": 683,
"slack": 100
},
"reportUnnecessaryContains": {
"baseline": 4,
"slack": 3
},
"reportUnnecessaryIsInstance": {
"baseline": 808,
"slack": 80
},
"reportUntypedBaseClass": {
"baseline": 110,
"slack": 11
},
"reportUntypedFunctionDecorator": {
"baseline": 22,
"slack": 3
},
"reportUnusedClass": {
"baseline": 22,
"slack": 3
},
"reportUnusedFunction": {
"baseline": 137,
"slack": 10
},
"reportUnusedImport": {
"baseline": 670,
"slack": 50
},
"reportUnusedVariable": {
"baseline": 865,
"slack": 50
}
}
{}

View file

@ -456,6 +456,43 @@ def _extract_requested_mcp_toolsets(
return set()
def _validate_all_mcp_servers_sentinel(
object_permission: Optional[ObjectPermissionDict],
team_obj: Optional["LiteLLM_TeamTableCachedObj"],
is_proxy_admin: bool,
) -> None:
if not _has_all_mcp_servers_sentinel(object_permission):
return
if team_obj is None and is_proxy_admin:
return
if team_obj is None:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail={
"error": (
"Key is not in a team. The 'all-mcp-servers' sentinel "
"cannot be assigned to personal keys by non-admin callers."
)
},
)
team_op = team_obj.object_permission
team_mcp_servers = (team_op.mcp_servers or []) if team_op else []
if SpecialMCPServerNames.all_mcp_servers.value not in team_mcp_servers:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail={
"error": (
f"Key requests 'all-mcp-servers' but team '{team_obj.team_id}' "
f"does not grant the all-mcp-servers sentinel. "
f"Team allows: {sorted(team_mcp_servers)}."
)
},
)
async def validate_key_mcp_servers_against_team(
object_permission: Optional[ObjectPermissionDict],
team_obj: Optional["LiteLLM_TeamTableCachedObj"],
@ -485,33 +522,7 @@ async def validate_key_mcp_servers_against_team(
requested_toolsets = _extract_requested_mcp_toolsets(object_permission)
if has_all_sentinel:
if teamless_admin_assignment:
pass
elif team_obj is None:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail={
"error": (
"Key is not in a team. The 'all-mcp-servers' sentinel "
"cannot be assigned to personal keys by non-admin callers."
)
},
)
else:
team_op = team_obj.object_permission
team_mcp_servers = (team_op.mcp_servers or []) if team_op else []
if SpecialMCPServerNames.all_mcp_servers.value not in team_mcp_servers:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail={
"error": (
f"Key requests 'all-mcp-servers' but team '{team_obj.team_id}' "
f"does not grant the all-mcp-servers sentinel. "
f"Team allows: {sorted(team_mcp_servers)}."
)
},
)
_validate_all_mcp_servers_sentinel(object_permission, team_obj, is_proxy_admin)
# Nothing to validate
if not requested_servers and not requested_access_groups and not requested_toolsets and not has_all_sentinel:

View file

@ -1,26 +1,26 @@
{
"ANN001": {
"baseline": 2865,
"baseline": 2873,
"slack": 287
},
"ANN002": {
"baseline": 64,
"baseline": 65,
"slack": 5
},
"ANN003": {
"baseline": 759,
"baseline": 778,
"slack": 76
},
"ANN201": {
"baseline": 1944,
"baseline": 1945,
"slack": 194
},
"ANN202": {
"baseline": 858,
"baseline": 865,
"slack": 86
},
"ANN204": {
"baseline": 658,
"baseline": 665,
"slack": 66
},
"ANN205": {
@ -28,11 +28,11 @@
"slack": 10
},
"ANN206": {
"baseline": 120,
"baseline": 119,
"slack": 10
},
"ANN401": {
"baseline": 1886,
"baseline": 1945,
"slack": 189
},
"ASYNC230": {
@ -48,7 +48,7 @@
"slack": 10
},
"B008": {
"baseline": 490,
"baseline": 496,
"slack": 15
},
"B009": {
@ -56,7 +56,7 @@
"slack": 5
},
"B010": {
"baseline": 187,
"baseline": 194,
"slack": 10
},
"B018": {
@ -80,7 +80,7 @@
"slack": 3
},
"BLE001": {
"baseline": 2854,
"baseline": 2906,
"slack": 50
},
"C401": {
@ -108,7 +108,7 @@
"slack": 3
},
"C901": {
"baseline": 301,
"baseline": 316,
"slack": 15
},
"D419": {
@ -120,11 +120,11 @@
"slack": 3
},
"DTZ003": {
"baseline": 30,
"baseline": 31,
"slack": 3
},
"DTZ005": {
"baseline": 229,
"baseline": 237,
"slack": 15
},
"DTZ006": {
@ -132,7 +132,7 @@
"slack": 3
},
"DTZ007": {
"baseline": 20,
"baseline": 18,
"slack": 3
},
"DTZ011": {
@ -160,11 +160,11 @@
"slack": 3
},
"FURB188": {
"baseline": 49,
"baseline": 51,
"slack": 3
},
"I001": {
"baseline": 258,
"baseline": 274,
"slack": 15
},
"LOG015": {
@ -180,7 +180,7 @@
"slack": 3
},
"PERF401": {
"baseline": 136,
"baseline": 137,
"slack": 10
},
"PERF402": {
@ -192,7 +192,7 @@
"slack": 5
},
"PIE790": {
"baseline": 263,
"baseline": 264,
"slack": 15
},
"PIE800": {
@ -216,7 +216,7 @@
"slack": 3
},
"PLC0414": {
"baseline": 35,
"baseline": 36,
"slack": 3
},
"PLR0124": {
@ -240,7 +240,7 @@
"slack": 3
},
"PLR1714": {
"baseline": 252,
"baseline": 255,
"slack": 15
},
"PLR1730": {
@ -252,7 +252,7 @@
"slack": 3
},
"PLW0127": {
"baseline": 41,
"baseline": 39,
"slack": 3
},
"PLW0133": {
@ -264,7 +264,7 @@
"slack": 15
},
"PLW0603": {
"baseline": 183,
"baseline": 192,
"slack": 10
},
"PLW1508": {
@ -292,19 +292,19 @@
"slack": 3
},
"RET501": {
"baseline": 35,
"baseline": 36,
"slack": 3
},
"RET504": {
"baseline": 702,
"baseline": 694,
"slack": 20
},
"RUF010": {
"baseline": 844,
"baseline": 848,
"slack": 30
},
"RUF012": {
"baseline": 158,
"baseline": 161,
"slack": 10
},
"RUF015": {
@ -316,7 +316,7 @@
"slack": 3
},
"RUF022": {
"baseline": 80,
"baseline": 83,
"slack": 5
},
"RUF023": {
@ -336,15 +336,15 @@
"slack": 5
},
"RUF100": {
"baseline": 465,
"baseline": 100,
"slack": 15
},
"S110": {
"baseline": 222,
"baseline": 223,
"slack": 15
},
"S112": {
"baseline": 21,
"baseline": 22,
"slack": 3
},
"SIM101": {
@ -364,7 +364,7 @@
"slack": 3
},
"SIM114": {
"baseline": 103,
"baseline": 105,
"slack": 10
},
"SIM115": {
@ -376,7 +376,7 @@
"slack": 3
},
"SIM118": {
"baseline": 104,
"baseline": 103,
"slack": 10
},
"SIM201": {
@ -396,7 +396,7 @@
"slack": 3
},
"SIM401": {
"baseline": 9,
"baseline": 10,
"slack": 3
},
"TC004": {
@ -408,7 +408,7 @@
"slack": 3
},
"TID251": {
"baseline": 2664,
"baseline": 2680,
"slack": 50
},
"TRY002": {
@ -416,11 +416,11 @@
"slack": 20
},
"TRY004": {
"baseline": 93,
"baseline": 94,
"slack": 5
},
"TRY201": {
"baseline": 409,
"baseline": 408,
"slack": 15
},
"TRY203": {
@ -428,15 +428,15 @@
"slack": 10
},
"TRY300": {
"baseline": 853,
"baseline": 854,
"slack": 30
},
"UP006": {
"baseline": 12941,
"baseline": 13024,
"slack": 100
},
"UP007": {
"baseline": 2520,
"baseline": 2567,
"slack": 50
},
"UP008": {
@ -464,7 +464,7 @@
"slack": 3
},
"UP032": {
"baseline": 609,
"baseline": 613,
"slack": 20
},
"UP034": {
@ -472,7 +472,7 @@
"slack": 3
},
"UP035": {
"baseline": 2250,
"baseline": 2268,
"slack": 50
},
"UP036": {
@ -480,11 +480,11 @@
"slack": 3
},
"UP037": {
"baseline": 100,
"baseline": 105,
"slack": 5
},
"UP045": {
"baseline": 18417,
"baseline": 18171,
"slack": 100
}
}