aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/litellm/caching/base_cache.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/litellm/caching/base_cache.py')
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/caching/base_cache.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/litellm/caching/base_cache.py b/.venv/lib/python3.12/site-packages/litellm/caching/base_cache.py
new file mode 100644
index 00000000..7109951d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/caching/base_cache.py
@@ -0,0 +1,55 @@
+"""
+Base Cache implementation. All cache implementations should inherit from this class.
+
+Has 4 methods:
+ - set_cache
+ - get_cache
+ - async_set_cache
+ - async_get_cache
+"""
+
+from abc import ABC, abstractmethod
+from typing import TYPE_CHECKING, Any, Optional
+
+if TYPE_CHECKING:
+ from opentelemetry.trace import Span as _Span
+
+ Span = _Span
+else:
+ Span = Any
+
+
+class BaseCache(ABC):
+ def __init__(self, default_ttl: int = 60):
+ self.default_ttl = default_ttl
+
+ def get_ttl(self, **kwargs) -> Optional[int]:
+ kwargs_ttl: Optional[int] = kwargs.get("ttl")
+ if kwargs_ttl is not None:
+ try:
+ return int(kwargs_ttl)
+ except ValueError:
+ return self.default_ttl
+ return self.default_ttl
+
+ def set_cache(self, key, value, **kwargs):
+ raise NotImplementedError
+
+ async def async_set_cache(self, key, value, **kwargs):
+ raise NotImplementedError
+
+ @abstractmethod
+ async def async_set_cache_pipeline(self, cache_list, **kwargs):
+ pass
+
+ def get_cache(self, key, **kwargs):
+ raise NotImplementedError
+
+ async def async_get_cache(self, key, **kwargs):
+ raise NotImplementedError
+
+ async def batch_cache_write(self, key, value, **kwargs):
+ raise NotImplementedError
+
+ async def disconnect(self):
+ raise NotImplementedError