
    ^h                         S r SSKJrJrJr  SSKJrJrJrJ	r	J
r
  SSKJr     SS\S\\\\4      S\\   S	\\\\4      4S
 jjrS\4S jrg)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                 T   Ub  Ub  X#;   a  UR                  US5      nUc  g[        U[        5      (       a  [        S0 UD6n[        U [        5      (       a  UR
                  b  UR
                  $ [        U [        5      (       a  UR                  b  UR                  $ [        U [        5      (       a  UR                  b  UR                  $ [        U [        5      (       a  UR                  b  UR                  $ [        U [        5      (       a  UR                  b  UR                  $ gg)z
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       d/home/james-whalen/.local/lib/python3.13/site-packages/litellm/router_utils/get_retry_from_policy.py!get_num_retries_from_retry_policyr      s     	!,#3/33KF,%%"2\2 	9o..//;222912233?666)W%%,*J*J*V///9n--..:11199::;;G>>> H 	;    returnc                      [        5       $ )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   