
    h              	       z    d dl mZmZmZ d dlmZ d dlmZ dededefdZ		 dded	e
d
ee
   defdZdede
defdZy)    )AnyOptionalUnion)	BaseModel)HiddenParamsresponseheadersreturnc                     | t        | t              s| S t        | di       }|i }n#t        |t              r|j	                         }n|}|j                  di        |d   j                  |       t        | d|       | S )zF
    Helper function to add headers to a response's hidden params
    _hidden_paramsadditional_headers)
isinstancer   getattrr   
model_dump
setdefaultupdatesetattr)r   r	   hidden_paramshidden_params_dicts       k/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/router_utils/add_retry_fallback_headers.py_add_headers_to_responser      s     z(I>9@"B:M 	M<	0*557*!!"6;+,33G<H&(:;O    Nattempted_retriesmax_retriesc                 0    d|i}|||d<   t        | |      S )z*
    Add retry headers to the request
    zx-litellm-attempted-retrieszx-litellm-max-retriesr   )r   r   r   retry_headerss       r   add_retry_headers_to_responser   !   s1     	&'8M 1<-.#Hm<<r   attempted_fallbacksc                 "    d|i}t        | |      S )ax  
    Add fallback headers to the response

    Args:
        response: The response to add the headers to
        attempted_fallbacks: The number of fallbacks attempted

    Returns:
        The response with the headers added

    Note: It's intentional that we don't add max_fallbacks in response headers
    Want to avoid bloat in the response headers for performance.
    zx-litellm-attempted-fallbacksr   )r   r   fallback_headerss      r    add_fallback_headers_to_responser"   2   s"    $ 	()< $H.>??r   )N)typingr   r   r   pydanticr   litellm.types.utilsr   dictr   intr   r"    r   r   <module>r)      s    ' '  ,s T c 8 "&=== #= 		="@@@ 	@r   