
    h                     j    d Z ddlmZmZ ddlmZmZmZmZ erddl	m
Z eeef   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Union)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     V/var/www/Befach/backend/env/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.   r0   r2   r4   r)   r   r   r   r      sP    'C ' 8C=  ""  """"r   r   N)__doc__abcr   r   typingr   r   r   r   opentelemetry.tracer	   _Spanr   r)   r   r   <module>r>      s:    $ 6 61DD!" !"r   