
    Sh/                         d dl Z d dlZd dlZd dlZd dlZd dlmZ dZd Zd Z	da
daddZ G d d	e          Z G d
 de          Z G d de          ZdS )    Nwrapsi?c                       fd}|S )Nc                 $    t          |           S N)
isinstance)	exceptionretryable_typess    N/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/retrying.py_retry_if_exception_these_typeszD_retry_if_exception_of_type.<locals>._retry_if_exception_these_types   s    )_555     )r
   r   s   ` r   _retry_if_exception_of_typer      s$    6 6 6 6 6 +*r   c                       t                     dk    r)t           d                   rd } | d                   S  fd}|S )z
    Decorator function that instantiates the Retrying object
    @param *dargs: positional arguments passed to Retrying object
    @param **dkw: keyword arguments passed to the Retrying object
       r   c                 <     t                      fd            }|S )Nc                  >     t                      j        g| R i |S r   Retryingcall)argskwfs     r   	wrapped_fz-retry.<locals>.wrap_simple.<locals>.wrapped_f*   s)    &xzzq646662666r   r   )r   r   s   ` r   wrap_simplezretry.<locals>.wrap_simple)   s4    1XX7 7 7 7 X7 r   c                 B     t                      fd            }|S )Nc                  :     t          i j        g| R i |S r   r   )r   r   dargsdkwr   s     r   r   z&retry.<locals>.wrap.<locals>.wrapped_f5   s3    3x.#..3ACCCCCCCr   r   )r   r   r   r   s   ` r   wrapzretry.<locals>.wrap4   sF    1XXD D D D D D XD r   )lencallable)r   r   r   r    s   ``  r   retryr#       so     5zzQ8E!H--	 	 	 {58$$$	 	 	 	 	 	 r   Fc                     | dv rit           t          j        t                    a | @t          s9dat                               t          j                               dt           _        t           S | S )N)TNTF)_default_loggerlogging	getLogger__name___configured_null_logger
addHandlerNullHandler	propagate)loggers    r   _pick_loggerr.   @   se    
 "%/99O>"9>&*#&&w':'<'<===(-O%r   c                       e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZd Zd Zed             Zd Zd Z	d	 Z
d
 Zed             Zed             Zd Zd ZdS )r   NFc                 (   |dn|| _         |dn|| _        |dn|| _        |dn|| _        |dn|| _        |dn|| _        |	dn|	| _        |dn|| _        |t          n|| _	        |
t          n|
| _
        |dn|| _        || _        || _        t          |          | _        g |                    | j                   |                    | j                   ||| _        n"|fd| _        nt)          | |          | _        d g|                    | j                   ||                    | j                   ||	                    | j                   ||                    | j                   ||| _        n"|fd| _        nt)          | |          | _        || j        | _        n2t9          |t:          t<          f          rt?          |          }|| _        || j         | _!        n|| _!        || _"        d S )	N   d     r   r   c                 @     t           fdD                       S )Nc              3   0   K   | ]} |          V  d S r   r   .0r   attemptsdelays     r   	<genexpr>z6Retrying.__init__.<locals>.<lambda>.<locals>.<genexpr>   @       4 4'((E""4 4 4 4 4 4r   )any)r8   r9   
stop_funcss   ``r   <lambda>z#Retrying.__init__.<locals>.<lambda>   >     4 4 4 4 4,64 4 4 1 1 r   c                      dS )Nr   r   )r   kwargss     r   r>   z#Retrying.__init__.<locals>.<lambda>   s    a r   c                 @     t           fdD                       S )Nc              3   0   K   | ]} |          V  d S r   r   r6   s     r   r:   z6Retrying.__init__.<locals>.<lambda>.<locals>.<genexpr>   r;   r   )max)r8   r9   
wait_funcss   ``r   r>   z#Retrying.__init__.<locals>.<lambda>   r?   r   )#_stop_max_attempt_number_stop_max_delay_wait_fixed_wait_random_min_wait_random_max_wait_incrementing_start_wait_incrementing_increment_wait_exponential_multiplierMAX_WAIT_wait_exponential_max_wait_incrementing_max_wait_jitter_max_before_attempts_after_attemptsr.   _loggerappendstop_after_attemptstop_after_delaystopgetattrfixed_sleeprandom_sleepincrementing_sleepexponential_sleepwaitalways_reject_retry_on_exceptionr   tuple	Exceptionr   never_reject_retry_on_result_wrap_exception)selfrX   r^   stop_max_attempt_numberstop_max_delay
wait_fixedwait_random_minwait_random_maxwait_incrementing_startwait_incrementing_incrementwait_incrementing_maxwait_exponential_multiplierwait_exponential_maxretry_on_exceptionretry_on_resultwrap_exception	stop_func	wait_funcwait_jitter_maxbefore_attemptsafter_attemptsr-   r=   rE   s                         @@r   __init__zRetrying.__init__S   s   4 )0AA6M 	% '5&<ss.#-#544:%4%</(7(?_(0AA6M 	% /6CC<W 	) -4AA:U 	) -4HH:N 	" .5HH;P 	# &5%</ /-#F++ 
".d5666%d3444 !DII\   DII
  d++DI 0/0
!d.///&/*Ed/000 $/*6d5666&26J6Vd4555 !DII\   DII
  d++DI %'+'9D$$
 ,ui.@AA U%@AS%T%T"'9D$ "$($5D!!$3D!-r   c                     || j         k    S )z;Stop after the previous attempt >= stop_max_attempt_number.)rF   rf   previous_attempt_numberdelay_since_first_attempt_mss      r   rV   zRetrying.stop_after_attempt   s    &$*GGGr   c                     || j         k    S )z=Stop after the time from the first attempt >= stop_max_delay.)rG   r{   s      r   rW   zRetrying.stop_after_delay   s    +t/CCCr   c                     dS )z#Don't sleep at all before retrying.r   r   )r|   r}   s     r   no_sleepzRetrying.no_sleep   s	     qr   c                     | j         S )z0Sleep a fixed amount of time between each retry.)rH   r{   s      r   rZ   zRetrying.fixed_sleep   s    r   c                 @    t          j        | j        | j                  S )zISleep a random amount of time between wait_random_min and wait_random_max)randomrandintrI   rJ   r{   s      r   r[   zRetrying.random_sleep   s    ~d3T5JKKKr   c                 d    | j         | j        |dz
  z  z   }|| j        k    r| j        }|dk     rd}|S )z
        Sleep an incremental amount of time after each attempt, starting at
        wait_incrementing_start and incrementing by wait_incrementing_increment
        r   r   )rK   rL   rP   )rf   r|   r}   results       r   r\   zRetrying.incrementing_sleep   sM    
 .-1H11LM
 D///0FA::Fr   c                 X    d|z  }| j         |z  }|| j        k    r| j        }|dk     rd}|S )N   r   )rM   rO   )rf   r|   r}   expr   s        r   r]   zRetrying.exponential_sleep   sC    ((2S8D.../FA::Fr   c                     dS )NFr   r   s    r   rc   zRetrying.never_reject   s    ur   c                     dS )NTr   r   s    r   r_   zRetrying.always_reject   s    tr   c                     d}|j         r$||                     |j        d                   z  }n||                     |j                  z  }|S )NFr   )has_exceptionr`   valuerd   )rf   attemptrejects      r   should_rejectzRetrying.should_reject   sR      	;d..w}Q/?@@@FFd++GM:::Fr   c                    t          t          t          j                    dz                      }d}	 | j        r|                     |           	 t	           ||i ||d          }n4# t
          $ r' t          j                    }t	          ||d          }Y nw xY w|                     |          s|	                    | j
                  S | j                            |           | j        r|                     |           t          t          t          j                    dz                      |z
  }|                     ||          r1| j
        s|j        r|	                                t!          |          |                     ||          }	| j        r.t'          j                    | j        z  }
|	t)          d|
          z   }	| j                            d|	dz  dd	           t          j        |	dz             |dz  })
Nr3   r   TFr   zRetrying in g     @@z.2fz	 seconds.)introundtimerR   Attemptrb   sysexc_infor   getre   rT   warningrS   rX   r   
RetryErrorr^   rQ   r   rD   infosleep)rf   fnr   rA   
start_timeattempt_numberr   tbr}   r   jitters              r   r   zRetrying.call	  s   ty{{T12233
 	 $ 6%%n555<!""d"5f"5"5~uMM < < <\^^!"nd;;< %%g.. 9{{4#7888L  )))# 5$$^444+.uTY[[45G/H/H+I+IJ+V(yy)EFF ++ .0E .!++--'$W---		.2NOO( 3#]__t/DDF!C6NN2E!!"N"N"N"N"NOOO
56>***aNA 	 s   A) ).BB)NNNNNNNNNNNNNNFNNNNNN)r(   
__module____qualname__ry   rV   rW   staticmethodr   rZ   r[   r\   r]   rc   r_   r   r   r   r   r   r   r   R   s@         $ $$("$(!-w. w. w. w.rH H HD D D   \     L L L       \   \  #  #  #  #  # r   r   c                   &    e Zd ZdZd ZddZd ZdS )r   z
    An Attempt encapsulates a call to a target function that may end as a
    normal return value from the function or an Exception depending on what
    occurred during the execution.
    c                 0    || _         || _        || _        d S r   )r   r   r   )rf   r   r   r   s       r   ry   zAttempt.__init__6  s    
,*r   Fc                     | j         r1|rt          |           | j        \  }}}|                    |          | j        S )z
        Return the return value of this Attempt instance or raise an Exception.
        If wrap_exception is true, this Attempt is wrapped inside of a
        RetryError before being raised.
        )r   r   r   with_traceback)rf   rs   exc_typeexcr   s        r   r   zAttempt.get;  sO      	 - &&&$(J!#r((,,,:r   c           	          | j         r=d| j         dd                    t          j        | j        d                              S d| j         d| j         S )Nz
Attempts: z	, Error:
 r   z	, Value: )r   r   join	traceback	format_tbr   rf   s    r   __repr__zAttempt.__repr__J  sc     	Kl 3llrwwyGZ[_[efg[hGiGi?j?jlllJ 3JJdjJJJr   N)F)r(   r   r   __doc__ry   r   r   r   r   r   r   r   /  sU         + + +
   K K K K Kr   r   c                       e Zd ZdZd Zd ZdS )r   zU
    A RetryError encapsulates the last Attempt instance right before giving up.
    c                     || _         d S r   last_attempt)rf   r   s     r   ry   zRetryError.__init__V  s    (r   c                     d| j          dS )NzRetryError[]r   r   s    r   __str__zRetryError.__str__Y  s    1T.1111r   N)r(   r   r   r   ry   r   r   r   r   r   r   Q  s<         ) ) )2 2 2 2 2r   r   r   )r&   r   r   r   r   	functoolsr   rN   r   r#   r%   r)   r.   objectr   r   rb   r   r   r   r   <module>r      s)     



            + + +  :     $Z  Z  Z  Z  Z v Z  Z  Z zK K K K Kf K K KD	2 	2 	2 	2 	2 	2 	2 	2 	2 	2r   