a
    |f                     @   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   s:   t | r2z| |i |W S  ty.   |  Y S 0 n| S d S N)callable	TypeError)fargskwargs r	   ID:\Projects\storyit_web\backend\venv\Lib\site-packages\backoff/_common.py_maybe_call   s    r   c                 C   s.   dd |  D }| f i |}|d  |S )Nc                 S   s   i | ]\}}|t |qS r	   )r   ).0kvr	   r	   r
   
<dictcomp>       z"_init_wait_gen.<locals>.<dictcomp>)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yP   tjdtdd ||  }Y n0 |d urht||| }|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   sh   g }|d ur6|d usJ dt j|||d}|| | d u rB|S t| drZ|t| 7 }n
||  |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   st   d}| d j | d g}t \}}}|d urNt||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   st   d}| d j | d g}t \}}}|d urNt||d }||d n|| d  |j||g|R   d S )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   

	