From 2df3f7e2c6c9905c122dbee71ac38abbb898bc61 Mon Sep 17 00:00:00 2001 From: Maximilian Rink Date: Sat, 10 Oct 2026 12:21:52 +0200 Subject: [PATCH] typing: document dynamic cache metadata boundaries --- litellm/caching/caching.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/litellm/caching/caching.py b/litellm/caching/caching.py index f740b5b32f4..5aae1215cbc 100644 --- a/litellm/caching/caching.py +++ b/litellm/caching/caching.py @@ -392,19 +392,19 @@ class Cache: def as_mapping(value: object) -> Mapping[str, object]: return value if isinstance(value, Mapping) else {} - litellm_params: Final = as_mapping(kwargs.get("litellm_params")) + litellm_params: Final = as_mapping(kwargs.get("litellm_params")) # pyright: ignore[reportArgumentType, reportUnknownArgumentType] # proxy kwargs are dynamically typed metadata_sources: Final[tuple[Mapping[str, object], ...]] = ( tuple( # comprehension-ok: flatten trusted metadata containers - as_mapping(source.get(key)) + as_mapping(source.get(key)) # pyright: ignore[reportArgumentType, reportUnknownArgumentType] # metadata containers are runtime mappings for source in (kwargs, litellm_params) for key in ("metadata", "litellm_metadata") ) ) - scope_values: Final[tuple[tuple[str, object | None], ...]] = tuple( + scope_values: Final[tuple[tuple[str, object | None], ...]] = tuple( # pyright: ignore[reportAssignmentType, reportUnknownVariableType] # explicit cache scope tuple ( field, - next((source[field] for source in metadata_sources if source.get(field) is not None), None), + next((source[field] for source in metadata_sources if source.get(field) is not None), None), # pyright: ignore[reportUnknownVariableType] # guarded mapping lookup ) for field in self._PROXY_CACHE_SCOPE_FIELDS )