mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-19 00:01:29 +00:00
refactor(lint): drop dead mutable-ok comments merged from main
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
parent
a5dbcdce39
commit
145322ae92
1 changed files with 16 additions and 34 deletions
|
|
@ -252,7 +252,7 @@ class _RawTeamRow(_TeamIdRow, _ModelDumpRow, _ObjectPermissionRow, _TeamBudgetRo
|
|||
@property
|
||||
def members_with_roles(
|
||||
self,
|
||||
) -> Sequence[dict[str, object]] | None: ... # mutable-ok: prisma deserializes this JSON column into plain dicts
|
||||
) -> Sequence[dict[str, object]] | None: ...
|
||||
|
||||
@property
|
||||
def organization_id(self) -> str | None: ...
|
||||
|
|
@ -2196,7 +2196,7 @@ async def update_team(
|
|||
|
||||
if "metadata" in updated_kv:
|
||||
stored_metadata: Final[Mapping[str, JsonValue] | None] = (
|
||||
{ # mutable-ok: the validator payload's isinstance guard requires a plain dict
|
||||
{
|
||||
key: value
|
||||
for key, value in existing_team_row.metadata.items()
|
||||
if key not in TeamMemberBudgetHandler.SYSTEM_MANAGED_METADATA_KEYS
|
||||
|
|
@ -2880,11 +2880,7 @@ async def _resolve_existing_member_user_ids(
|
|||
return frozenset()
|
||||
|
||||
found: Final = await _user_id_rows_db(UserRepository(prisma_client)).find_many(
|
||||
where={ # mutable-ok: Prisma query filters are dict-shaped
|
||||
"user_id": { # mutable-ok: Prisma query filters are dict-shaped
|
||||
"in": sorted(requested_user_ids)
|
||||
}
|
||||
}
|
||||
where={"user_id": {"in": sorted(requested_user_ids)}}
|
||||
)
|
||||
return frozenset(user.user_id for user in found or () if user.user_id is not None)
|
||||
|
||||
|
|
@ -2938,7 +2934,7 @@ def _validate_member_user_id_provisioning(
|
|||
remaining: Final = len(unknown_user_ids) - _MAX_REPORTED_UNKNOWN_USER_IDS
|
||||
raise HTTPException(
|
||||
status_code=403,
|
||||
detail={ # mutable-ok: HTTPException detail must be a plain mapping to keep this route's {"error": ...} response shape
|
||||
detail={
|
||||
"error": (
|
||||
"Only proxy admins can add a user_id that does not exist yet: {}{}. "
|
||||
"Add the member by user_email to invite a new user, or ask a proxy admin "
|
||||
|
|
@ -2954,11 +2950,7 @@ def _members_audit_value(members: Sequence[Member]) -> str:
|
|||
The audit-log columns hold a JSON object, so the member list is nested
|
||||
under a key rather than serialized as a top-level array.
|
||||
"""
|
||||
return safe_dumps(
|
||||
{ # mutable-ok: the audit-log JSON column rejects a top-level array, so this value must be an object
|
||||
"members_with_roles": tuple(member.model_dump() for member in members)
|
||||
}
|
||||
)
|
||||
return safe_dumps({"members_with_roles": tuple(member.model_dump() for member in members)})
|
||||
|
||||
|
||||
async def _create_team_member_add_audit_logs(
|
||||
|
|
@ -3645,7 +3637,7 @@ def _check_not_resetting_own_spend(user_id: str, user_api_key_dict: UserAPIKeyAu
|
|||
|
||||
|
||||
def _raise_reset_spend_error(status_code: int, message: str) -> NoReturn:
|
||||
detail: Final = {"error": message} # mutable-ok: HTTPException.detail takes a dict
|
||||
detail: Final = {"error": message}
|
||||
raise HTTPException(status_code=status_code, detail=detail)
|
||||
|
||||
|
||||
|
|
@ -3679,7 +3671,7 @@ def _validate_team_member_reset_spend_value(
|
|||
|
||||
@router.post(
|
||||
"/team/{team_id}/member/{user_id}/reset_spend",
|
||||
tags=["team management"], # mutable-ok: FastAPI's `tags` param is typed as list[str], not Sequence
|
||||
tags=["team management"],
|
||||
dependencies=(Depends(user_api_key_auth),),
|
||||
)
|
||||
@management_endpoint_wrapper
|
||||
|
|
@ -3715,12 +3707,10 @@ async def reset_team_member_spend_fn(
|
|||
await _verify_team_access(team_obj=team_obj, user_api_key_dict=user_api_key_dict)
|
||||
_check_not_resetting_own_spend(user_id=user_id, user_api_key_dict=user_api_key_dict)
|
||||
|
||||
membership_where: Final = { # mutable-ok: prisma client requires a plain dict where= argument
|
||||
"user_id_team_id": {"user_id": user_id, "team_id": team_id} # mutable-ok: same prisma where= argument
|
||||
}
|
||||
membership_where: Final = {"user_id_team_id": {"user_id": user_id, "team_id": team_id}}
|
||||
_membership_row: Final = await _team_membership_db(prisma_client).find_unique(
|
||||
where=membership_where,
|
||||
include={"litellm_budget_table": True}, # mutable-ok: prisma client requires a plain dict include= argument
|
||||
include={"litellm_budget_table": True},
|
||||
)
|
||||
if _membership_row is None:
|
||||
_raise_reset_spend_error(status.HTTP_404_NOT_FOUND, f"User {user_id} is not a member of team {team_id}.")
|
||||
|
|
@ -3731,7 +3721,7 @@ async def reset_team_member_spend_fn(
|
|||
|
||||
await _team_membership_db(prisma_client).update(
|
||||
where=membership_where,
|
||||
data={"spend": reset_to}, # mutable-ok: prisma client requires a plain dict data= argument
|
||||
data={"spend": reset_to},
|
||||
)
|
||||
|
||||
await invalidate_team_member_spend_state(
|
||||
|
|
@ -3741,7 +3731,7 @@ async def reset_team_member_spend_fn(
|
|||
new_spend=reset_to,
|
||||
)
|
||||
|
||||
return { # mutable-ok: matches this router's established untyped-response-dict convention
|
||||
return {
|
||||
"team_id": team_id,
|
||||
"user_id": user_id,
|
||||
"spend": reset_to,
|
||||
|
|
@ -4345,15 +4335,7 @@ async def _hydrate_member_user_details(
|
|||
"""Attach ``user_alias`` and fill in a missing ``user_email`` from ``LiteLLM_UserTable`` in one query."""
|
||||
user_ids: Final = frozenset(m.user_id for m in members if m.user_id is not None)
|
||||
user_rows: Final[Sequence[prisma_models.LiteLLM_UserTable]] = (
|
||||
await _user_db(prisma_client).find_many(
|
||||
where={ # mutable-ok: Prisma query filters are dict-shaped
|
||||
"user_id": { # mutable-ok: Prisma query filters are dict-shaped
|
||||
"in": sorted(user_ids)
|
||||
}
|
||||
}
|
||||
)
|
||||
if user_ids
|
||||
else ()
|
||||
await _user_db(prisma_client).find_many(where={"user_id": {"in": sorted(user_ids)}}) if user_ids else ()
|
||||
)
|
||||
user_by_id: Final = MappingProxyType({u.user_id: u for u in user_rows})
|
||||
|
||||
|
|
@ -4789,7 +4771,7 @@ async def unblock_team(
|
|||
|
||||
@router.get(
|
||||
"/team/metadata_schema",
|
||||
tags=["team management"], # mutable-ok: fastapi's decorator signature types tags as a list
|
||||
tags=["team management"],
|
||||
dependencies=(Depends(user_api_key_auth),),
|
||||
response_model=TeamMetadataSchemaResponse,
|
||||
)
|
||||
|
|
@ -6071,13 +6053,13 @@ async def _append_permissions_to_all_teams(prisma_client: PrismaClient, permissi
|
|||
def _daily_activity_error(*, status_code: int, message: str) -> HTTPException:
|
||||
"""Single construction site for the `{"error": ...}` detail shape the
|
||||
/team/daily/activity endpoints have always returned."""
|
||||
return HTTPException(status_code=status_code, detail={"error": message}) # mutable-ok: FastAPI JSON detail
|
||||
return HTTPException(status_code=status_code, detail={"error": message})
|
||||
|
||||
|
||||
class _TeamDailyActivityScope(NamedTuple):
|
||||
team_ids: list[str] | None # mutable-ok: downstream daily-activity signatures take str | list unions
|
||||
exclude_team_ids: list[str] | None # mutable-ok: downstream daily-activity signatures take str | list unions
|
||||
team_alias_metadata: dict[str, dict[str, object]] # mutable-ok: entity_metadata_field shape
|
||||
team_alias_metadata: dict[str, dict[str, object]]
|
||||
api_key_filter: str | list[str] | None # mutable-ok: downstream daily-activity signatures take str | list unions
|
||||
|
||||
|
||||
|
|
@ -6380,7 +6362,7 @@ class _TeamUserSpendDbRow(TypedDict):
|
|||
@router.get(
|
||||
"/team/spend/by_user",
|
||||
response_model=TeamUserSpendResponse,
|
||||
tags=["team management"], # mutable-ok: fastapi route tags must be a list
|
||||
tags=["team management"],
|
||||
)
|
||||
async def get_team_spend_by_user(
|
||||
user_api_key_dict: Annotated[UserAPIKeyAuth, Depends(user_api_key_auth)],
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue