
    AHjy                     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                   l    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defdZy)	BaseCachedefault_ttlc                     || _         y N)r   )selfr   s     R/root/tools/cai/cai_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'   c                    K   t         w)z
        Test the cache connection.

        Returns:
            dict: {"status": "success" | "failed", "message": str, "error": Optional[str]}
        r   r4   s    r   test_connectionzBaseCache.test_connection9   s      "!r'   N)<   )__name__
__module____qualname__r   r   r   r   r"   r%   r   r+   r.   r0   r2   r5   dictr7   r)   r   r   r   r      s\    'C ' 8C=  ""  """""t "r   r   N)__doc__abcr   r   typingr   r   r   r   opentelemetry.tracer	   _Spanr   r)   r   r   <module>rB      s:    $ 6 61DD*" *"r   