o
    i                     @   s   d dl Z d dlZd dlZd dlZd dlZedZee  e	ej
 dd Zdd Zdd Zd	d
 ZddddddZdd Zdd ZdS )    Nbackoffc                 O   s4   t | rz| |i |W S  ty   |  Y S w | S N)callable	TypeError)fargskwargs r	   F/home/app/Keep/.python/lib/python3.10/site-packages/backoff/_common.py_maybe_call   s   r   c                 C   s.   dd |  D }| di |}|d  |S )Nc                 S   s   i | ]	\}}|t |qS r	   )r   ).0kvr	   r	   r
   
<dictcomp>   s    z"_init_wait_gen.<locals>.<dictcomp>r	   )itemssend)Zwait_genZwait_gen_kwargsr   Zinitializedr	   r	   r
   _init_wait_gen   s   
r   c                 C   sl   |  |}z|d ur||}n|}W n ty(   tjdtdd ||  }Y nw |d ur4t||| }|S )NzNullary jitter function signature is deprecated. Use unary signature accepting a wait value in seconds and returning a jittered version of it.   )
stacklevel)r   r   warningswarnDeprecationWarningmin)waitZ
send_valueZjitterelapsedZmax_timevaluesecondsr	   r	   r
   
_next_wait"   s"   

r   c                 C   s   t | tr
t| } | S r   )
isinstancestrlogging	getLogger)loggerr	   r	   r
   _prepare_logger;   s   

r#   )default_handlerr"   	log_levelc                C   sj   g }|d ur|d usJ dt j|||d}|| | d u r!|S t| dr.|t| 7 }|S ||  |S )NzLog level is not specified)r"   r%   __iter__)	functoolspartialappendhasattrlist)Zuser_handlersr$   r"   r%   handlersZlog_handlerr	   r	   r
   _config_handlersC   s   


r-   c           	      C   t   d}| d j | d g}t \}}}|d ur't||d }||d n|| d  |j||g|R   d S )Nz"Backing off %s(...) for %.1fs (%s)targetr   
r   __name__sysexc_info	tracebackformat_exception_onlyr)   rstriplog	detailsr"   r%   msgZlog_argsZexc_typexc_Zexc_fmtr	   r	   r
   _log_backoff_   s   r?   c           	      C   r.   )Nz%Giving up %s(...) after %d tries (%s)r/   triesr0   r1   r   r2   r:   r	   r	   r
   _log_giveupm   s   rA   )r'   r    r4   r6   r   r!   Z_logger
addHandlerNullHandlersetLevelINFOr   r   r   r#   r-   r?   rA   r	   r	   r	   r
   <module>   s    

	