
    gn                     \    d Z ddlmZmZ ddlmZmZmZ er	ddlm	Z
 e
Z	neZ	 G d de      Zy)z
Base Cache implementation. All cache implementations should inherit from this class.

Has 4 methods:
    - set_cache
    - get_cache
    - async_set_cache
    - async_get_cache
    )ABCabstractmethod)TYPE_CHECKINGAnyOptional)Spanc                   `    e Zd ZddefdZdee   fdZd Zd Ze	d        Z
d Zd	 Zd
 Zd Zy)	BaseCachedefault_ttlc                     || _         y N)r   )selfr   s     O/var/www/openai/venv/lib/python3.12/site-packages/litellm/caching/base_cache.py__init__zBaseCache.__init__   s
    &    returnc                     |j                  d      }|	 t        |      S | j                  S # t        $ r | j                  cY S w xY w)Nttl)getint
ValueErrorr   )r   kwargs
kwargs_ttls      r   get_ttlzBaseCache.get_ttl   sP    $*JJu$5
!(:&   ('''(s   
, AAc                     t         r   NotImplementedErrorr   keyvaluer   s       r   	set_cachezBaseCache.set_cache#       !!r   c                    K   t         wr   r   r   s       r   async_set_cachezBaseCache.async_set_cache&        !!   	c                    K   y wr    )r   
cache_listr   s      r   async_set_cache_pipelinez"BaseCache.async_set_cache_pipeline)   s	     s   c                     t         r   r   r   r   r   s      r   	get_cachezBaseCache.get_cache-   r"   r   c                    K   t         wr   r   r,   s      r   async_get_cachezBaseCache.async_get_cache0   r%   r&   c                    K   t         wr   r   r   s       r   batch_cache_writezBaseCache.batch_cache_write3   r%   r&   c                    K   t         wr   r   )r   s    r   
disconnectzBaseCache.disconnect6   r%   r&   N)<   )__name__
__module____qualname__r   r   r   r   r!   r$   r   r*   r-   r/   r1   r3   r(   r   r   r
   r
      sP    'C ' 8C=  ""  """"r   r
   N)__doc__abcr   r   typingr   r   r   opentelemetry.tracer   _Spanr
   r(   r   r   <module>r=      s1    $ / /1DD!" !"r   