
    ge                     b    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e	      Zy	)
    )HTTPException)verbose_logger)verbose_proxy_logger)	DualCache)CustomLogger)UserAPIKeyAuthc                   *    e Zd Zd ZdedededefdZy)_PROXY_MaxBudgetLimiterc                      y )N )selfs    [/var/www/openai/venv/lib/python3.12/site-packages/litellm/proxy/hooks/max_budget_limiter.py__init__z _PROXY_MaxBudgetLimiter.__init__   s        user_api_key_dictcachedata	call_typec                   K   	 t        j                  d       |j                   d}|j                  ||j                         d {   }|y |d   }|d   }|y |y ||k\  rt        dd      y 7 *# t
        $ r}	|	d }	~	wt        $ r7}	t        j                  d	j                  t        |	                   Y d }	~	y d }	~	ww xY ww)
Nz'Inside Max Budget Limiter Pre-Call Hook_user_api_key_user_id)parent_otel_span
max_budgetspendi  zMax budget limit reached.)status_codedetailzXlitellm.proxy.hooks.max_budget_limiter.py::async_pre_call_hook(): Exception occured - {})r   debuguser_idasync_get_cacher   r   	Exceptionr   	exceptionformatstr)
r   r   r   r   r   	cache_keyuser_rowr   
curr_spendes
             r   async_pre_call_hookz+_PROXY_MaxBudgetLimiter.async_pre_call_hook   s     	 &&'PQ,4455JKI"22,=,N,N 3  H !,/J!'*J!! Z'#<WXX ("  	G 	$$jqqF 	sq   CAA5 A3	A5 CA5 CA5 C A5 2C3A5 5	C>B  C-B>9C>CCN)	__name__
__module____qualname__r   r   r   dictr"   r'   r   r   r   r
   r
   
   s2    ")" " 	"
 "r   r
   N)fastapir   litellmr   litellm._loggingr   litellm.caching.cachingr   "litellm.integrations.custom_loggerr   litellm.proxy._typesr   r
   r   r   r   <module>r2      s#    ! " 1 - ; /'l 'r   