mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-24 18:24:20 +00:00
Fix asyncio get_event_loop deprecation warning
## Fix asyncio get_event_loop() deprecation warning ### Problem The caching handler uses `asyncio.get_event_loop()` which raises a deprecation warning in Python 3.10+ and will be removed in future versions. Error: "DeprecationWarning: There is no current event loop" ### Solution Updated the code to use `asyncio.get_running_loop()` with a fallback to `asyncio.new_event_loop()` when no loop is running, which follows the recommended pattern for modern Python versions. This approach: - Avoids the deprecation warning - Creates isolated event loops when needed - Maintains the same functionality without modifying thread state - Is compatible with Python 3.10 through 3.13 ### Testing Tested on Python 3.13.x with no deprecation warnings. ### Related Issues This addresses the same issue discussed in python/cpython#93453
This commit is contained in:
parent
122ee634f4
commit
747689f6af
1 changed files with 6 additions and 2 deletions
|
@ -15,10 +15,14 @@ class LLMClientCache(InMemoryCache):
|
|||
If none, use the key as is.
|
||||
"""
|
||||
try:
|
||||
event_loop = asyncio.get_event_loop()
|
||||
try:
|
||||
event_loop = asyncio.get_running_loop()
|
||||
except RuntimeError:
|
||||
event_loop = asyncio.new_event_loop()
|
||||
|
||||
stringified_event_loop = str(id(event_loop))
|
||||
return f"{key}-{stringified_event_loop}"
|
||||
except Exception: # handle no current event loop
|
||||
except Exception: # handle other potential errors
|
||||
return key
|
||||
|
||||
def set_cache(self, key, value, **kwargs):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue