o
    ưi                     @   sb   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 deZdS )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                   @   sx   e Zd ZddefddZdee fddZdd	 Zd
d Ze	dd Z
dd Zdd Zdd Zdd ZdefddZdS )	BaseCache<   default_ttlc                 C   s
   || _ d S N)r   )selfr    r   Q/home/app/Keep/.python/lib/python3.10/site-packages/litellm/caching/base_cache.py__init__   s   
zBaseCache.__init__returnc                 K   s<   | d}|d urzt|W S  ty   | j Y S w | jS )Nttl)getint
ValueErrorr   )r   kwargsZ
kwargs_ttlr   r   r   get_ttl   s   


zBaseCache.get_ttlc                 K      t r   NotImplementedErrorr   keyvaluer   r   r   r   	set_cache#      zBaseCache.set_cachec                       t r   r   r   r   r   r   async_set_cache&      zBaseCache.async_set_cachec                    s   d S r   r   )r   Z
cache_listr   r   r   r   async_set_cache_pipeline)   s   z"BaseCache.async_set_cache_pipelinec                 K   r   r   r   r   r   r   r   r   r   	get_cache-   r   zBaseCache.get_cachec                    r    r   r   r$   r   r   r   async_get_cache0   r"   zBaseCache.async_get_cachec                    r    r   r   r   r   r   r   batch_cache_write3   r"   zBaseCache.batch_cache_writec                    r    r   r   r   r   r   r   
disconnect6   r"   zBaseCache.disconnectc                    r    )z
        Test the cache connection.
        
        Returns:
            dict: {"status": "success" | "failed", "message": str, "error": Optional[str]}
        r   r(   r   r   r   test_connection9   s   zBaseCache.test_connectionN)r
   )__name__
__module____qualname__r   r   r   r   r   r!   r   r#   r%   r&   r'   r)   dictr*   r   r   r   r   r	      s    	
r	   N)__doc__abcr   r   typingr   r   r   r   Zopentelemetry.tracer   _Spanr	   r   r   r   r   <module>   s    
