o
    Rh                     @   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	   Q/home/air/sanwanet/backup_V2/venv/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)wait_genwait_gen_kwargsr   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)wait
send_valuejitterelapsed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)user_handlersr*   r(   r+   handlerslog_handlerr	   r	   r
   _config_handlersC   s   


r5   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+   msglog_argsexc_typexc_exc_fmtr	   r	   r
   _log_backoff_   s   rJ   c           	      C   r6   )Nz%Giving up %s(...) after %d tries (%s)r7   triesr8   r9   r!   r:   rB   r	   r	   r
   _log_giveupm   s   rL   )r-   r&   r<   r>   r   r'   _logger
addHandlerNullHandlersetLevelINFOr   r   r#   r)   r5   rJ   rL   r	   r	   r	   r
   <module>   s    

	