From 25b3f99e361714e1c992423663f9351a11cc73dc Mon Sep 17 00:00:00 2001 From: agustin18 Date: Sun, 18 Oct 2026 20:45:30 +0000 Subject: [PATCH] fix(timeout): add explicit typing for local_timeout_duration to pass type_check_gate Signed-off-by: agustin18 --- litellm/timeout.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/litellm/timeout.py b/litellm/timeout.py index 8a27f7c3fe5..2b9e04a07c7 100644 --- a/litellm/timeout.py +++ b/litellm/timeout.py @@ -16,7 +16,7 @@ from concurrent import futures from functools import wraps from inspect import iscoroutinefunction from threading import Thread -from typing import Final +from typing import Final, cast from litellm.exceptions import Timeout @@ -65,13 +65,11 @@ def timeout(timeout_duration: float = 0.0, exception_to_raise=Timeout): @wraps(func) async def async_wrapper(*args, **kwargs): - local_timeout_duration: Final = ( - kwargs["force_timeout"] - if kwargs.get("force_timeout") is not None - else kwargs["request_timeout"] - if kwargs.get("request_timeout") is not None - else timeout_duration - ) + local_timeout_duration: float | None = timeout_duration + if "force_timeout" in kwargs and kwargs["force_timeout"] is not None: + local_timeout_duration = cast(float | None, kwargs["force_timeout"]) + elif "request_timeout" in kwargs and kwargs["request_timeout"] is not None: + local_timeout_duration = cast(float | None, kwargs["request_timeout"]) try: value: Final = await asyncio.wait_for(func(*args, **kwargs), timeout=local_timeout_duration) return value