From a0edc48c25e71e0d2f329c60576176f5b733b7f1 Mon Sep 17 00:00:00 2001 From: mateo Date: Wed, 29 Jul 2026 21:31:06 +0000 Subject: [PATCH] refactor(management): flatten query-param aliases iteratively to satisfy recursion gate Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../management_endpoints/management_v1/common.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/litellm/proxy/management_endpoints/management_v1/common.py b/litellm/proxy/management_endpoints/management_v1/common.py index caa34d75f3d..29d525ecc30 100644 --- a/litellm/proxy/management_endpoints/management_v1/common.py +++ b/litellm/proxy/management_endpoints/management_v1/common.py @@ -35,11 +35,13 @@ def problem_response(problem: ProblemDetail) -> JSONResponse: ) -def _flat_query_params(dependant: Dependant) -> tuple[str, ...]: - return ( - *(field.alias for field in dependant.query_params), - *(alias for dependency in dependant.dependencies for alias in _flat_query_params(dependency)), - ) +def _flat_query_param_aliases(dependant: Dependant) -> frozenset[str]: + frontier: tuple[Dependant, ...] = (dependant,) + aliases: frozenset[str] = frozenset() + while frontier: + aliases |= frozenset(field.alias for level in frontier for field in level.query_params) + frontier = tuple(sub for level in frontier for sub in level.dependencies) + return aliases def _declared_query_params(request: Request) -> frozenset[str]: @@ -47,7 +49,7 @@ def _declared_query_params(request: Request) -> frozenset[str]: dependant = getattr(route, "dependant", None) if not isinstance(dependant, Dependant): return frozenset() - return frozenset(_flat_query_params(dependant)) + return _flat_query_param_aliases(dependant) async def reject_unknown_query_params(request: Request) -> None: