o
    i                     @   s   d Z ddlZddlZddlZddlmZ ddlZG dd dZG dd dZG dd	 d	Z	G d
d de
ZG dd de
Zde	fddZde	fddZ				dddZ				dddZdS )zACode generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.    N)Listc                   @   sH   e Zd ZU eed< eed< eed< eed< dedededefddZdS )BackoffStrategyinitial_intervalmax_intervalexponentmax_elapsed_timec                 C   s   || _ || _|| _|| _d S N)r   r   r   r   )selfr   r   r   r    r
   ]/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/mistralai/utils/retries.py__init__   s   
zBackoffStrategy.__init__N)__name__
__module____qualname__int__annotations__floatr   r
   r
   r
   r   r      s   
 r   c                   @   s<   e Zd ZU eed< eed< eed< dededefddZdS )RetryConfigstrategybackoffretry_connection_errorsc                 C   s   || _ || _|| _d S r   )r   r   r   )r	   r   r   r   r
   r
   r   r   #   s   
zRetryConfig.__init__N)r   r   r   strr   r   boolr   r
   r
   r
   r   r      s   
 r   c                   @   s8   e Zd ZU eed< ee ed< dedee fddZdS )Retriesconfigstatus_codesc                 C   s   || _ || _d S r   )r   r   )r	   r   r   r
   r
   r   r   /   s   
zRetries.__init__N)r   r   r   r   r   r   r   r   r
   r
   r
   r   r   +   s   
 r   c                   @   s(   e Zd ZU ejed< dejfddZdS )TemporaryErrorresponsec                 C   
   || _ d S r   )r   )r	   r   r
   r
   r   r   7      
zTemporaryError.__init__N)r   r   r   httpxResponser   r   r
   r
   r
   r   r   4   s   
 
r   c                   @   s$   e Zd ZU eed< defddZdS )PermanentErrorinnerc                 C   r   r   )r#   )r	   r#   r
   r
   r   r   >   r   zPermanentError.__init__N)r   r   r   	Exceptionr   r   r
   r
   r
   r   r"   ;   s   
 r"   retriesc                    sP   j jdkr%dtjf fdd}t|j jjj jjj jjj jj	S   S )Nr   returnc               
      s  z<  } j D ]2}d| v r,t|d }| jd }||  kr)|d k r+t|  qqt|}| j|kr9t| qW | S  tjyS } z
jjrJ t	||d }~w tj
yi } z
jjr` t	||d }~w typ     ty } zt	||d }~ww NXr   d      r   upperr   status_coder   r    ConnectErrorr   r   r"   TimeoutExceptionr$   rescode
code_rangestatus_majorparsed_code	exceptionfuncr%   r
   r   
do_requestE   s>   





zretry.<locals>.do_request)
r   r   r    r!   retry_with_backoffr   r   r   r   r   r8   r%   r9   r
   r7   r   retryB   s   #r<   c                    s^   j jdkr)dtjf fdd}t|j jjj jjj jjj jj	I d H S   I d H S )Nr   r&   c               
      s
  z?  I d H } j D ]2}d| v r0t|d }| jd }||  kr-|d k r/t|  qqt|}| j|kr=t| qW | S  tjyW } z
jjrN t	||d }~w tj
ym } z
jjrd t	||d }~w tyt     ty } zt	||d }~ww r'   r+   r0   r7   r
   r   r9   v   s@   





zretry_async.<locals>.do_request)
r   r   r    r!   retry_with_backoff_asyncr   r   r   r   r   r;   r
   r7   r   retry_asyncs   s   #
r>     `        ?6 c           
   
   C   s   t t d }d}	 z|  W S  ty } z|jd }~w tyj } zAt t d }|| |krBt|trA|jW  Y d }~S  |d ||  t	dd }	t
|	|d }	t|	 |d7 }W Y d }~nd }~ww qNi  r   Tr*   )roundtimer"   r#   r$   
isinstancer   r   randomuniformminsleep
r8   r   r   r   r   startr%   r6   nowrJ   r
   r
   r   r:      s*   

r:   c           
   
      s   t t d }d}	 z|  I d H W S  ty" } z|jd }~w tyq } zDt t d }|| |krFt|trE|jW  Y d }~S  |d ||  t	dd }	t
|	|d }	t|	I d H  |d7 }W Y d }~nd }~ww qrC   )rD   rE   r"   r#   r$   rF   r   r   rG   rH   rI   asynciorJ   rK   r
   r
   r   r=      s,   
r=   )r?   r@   rA   rB   )__doc__rN   rG   rE   typingr   r    r   r   r   r$   r   r"   r<   r>   r:   r=   r
   r
   r
   r   <module>   s.    	13
