
    g                         d Z ddlmZmZmZ ddlmZmZmZm	Z	m
Z
 ddlmZ 	 	 	 ddedeeeef      dee   d	eeeef      fd
ZdefdZy)zS
Get num retries for an exception. 

- Account for retry policy by exception type.
    )DictOptionalUnion)AuthenticationErrorBadRequestErrorContentPolicyViolationErrorRateLimitErrorTimeoutRetryPolicyN	exceptionretry_policymodel_groupmodel_group_retry_policyc                    ||||v r|j                  |d      }|yt        |t              rt        di |}t        | t              r|j
                  |j
                  S t        | t              r|j                  |j                  S t        | t              r|j                  |j                  S t        | t              r|j                  |j                  S t        | t              r|j                  |j                  S yy)a  
    BadRequestErrorRetries: Optional[int] = None
    AuthenticationErrorRetries: Optional[int] = None
    TimeoutErrorRetries: Optional[int] = None
    RateLimitErrorRetries: Optional[int] = None
    ContentPolicyViolationErrorRetries: Optional[int] = None
    N )get
isinstancedictr   r   BadRequestErrorRetriesr   AuthenticationErrorRetriesr
   TimeoutErrorRetriesr	   RateLimitErrorRetriesr   "ContentPolicyViolationErrorRetries)r   r   r   r   s       _/var/www/openai/venv/lib/python3.12/site-packages/litellm/router_utils/get_retry_from_policy.py!get_num_retries_from_retry_policyr      s     	!,#33/33KF,%"2\2 	9o.//;22291233?666)W%,*J*J*V///9n-..:11199:;;G>>> H 	;    returnc                      t               S )Nr   r   r   r   reset_retry_policyr    F   s
    =r   )NNN)__doc__typingr   r   r   litellm.exceptionsr   r   r   r	   r
   litellm.types.routerr   	Exceptionr   strr   r    r   r   r   <module>r'      s    ) (  -
 8<!%AE	0?0?5d!2340? #0? 'tC,<'=>	0?fK r   