o
    ưiE                     @   s\   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ G dd de	Zd	S )
    )HTTPException)verbose_logger)verbose_proxy_logger)	DualCache)CustomLogger)UserAPIKeyAuthc                   @   s.   e Zd Zdd ZdedededefddZd	S )
_PROXY_CacheControlCheckc                 C   s   d S )N )selfr	   r	   ^/home/app/Keep/.python/lib/python3.10/site-packages/litellm/proxy/hooks/cache_control_check.py__init__   s   z!_PROXY_CacheControlCheck.__init__user_api_key_dictcachedata	call_typec           
   
      s   zJt d |j}|dd d u rW d S |dd }t|trI| D ]!\}}|d urEt|trEt|dkrE||vrEt	dd| ddq$W d S W d S  t	yY }	 z|	d }	~	w t
yu }	 ztdt|	 W Y d }	~	d S d }	~	ww )	Nz(Inside Cache Control Check Pre-Call Hookr   r   i  zNot allowed to set z9 as a cache control. Contact admin to change permissions.)status_codedetailzYlitellm.proxy.hooks.cache_control_check.py::async_pre_call_hook(): Exception occured - {})r   debugallowed_cache_controlsget
isinstancedictitemslistlenr   	Exceptionr   	exceptionformatstr)
r
   r   r   r   r   r   Z
cache_argskver	   r	   r   async_pre_call_hook   s@   


z,_PROXY_CacheControlCheck.async_pre_call_hookN)	__name__
__module____qualname__r   r   r   r   r   r"   r	   r	   r	   r   r      s    r   N)Zfastapir   Zlitellmr   Zlitellm._loggingr   Zlitellm.caching.cachingr   Z"litellm.integrations.custom_loggerr   Zlitellm.proxy._typesr   r   r	   r	   r	   r   <module>   s   