B |=_ @sddlZddlZddlZddlZddlZedZeee ej ddZ ddZ ddZ dd d Zd d Zd dZdS)NbackoffcOst|r|||S|S)N)callable)fargskwargsrg/private/var/folders/15/dcwkybx97hl11pqmmxvmf6cw4nnlkb/T/pip-unpacked-wheel-1sitx69i/backoff/_common.py _maybe_callsr cCsdd|D}|f|S)NcSsi|]\}}t||qSr)r ).0kvrrr sz"_init_wait_gen..)items)Zwait_genZwait_gen_kwargsrrrr_init_wait_gensrcCslt|}y|dk r||}n|}Wn.tk rPtjdtdd||}YnX|dk 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)next TypeErrorwarningswarnDeprecationWarningmin)waitjitterelapsedZmax_timevaluesecondsrrr _next_waits rcCsVg}|dk r$tj||d}|||dkr0|St|drH|t|7}n |||S)N)logger__iter__) functoolspartialappendhasattrlist)Z user_handlersZdefault_handlerrhandlersZ log_handlerrrr_config_handlers5s   r&cCspd}|dj|dg}t\}}}|dk rNt||d}||dn||d|j|f|dS)Nz"Backing off %s(...) for %.1fs (%s)targetr r)__name__sysexc_info tracebackformat_exception_onlyr"rstripinfo)detailsrmsglog_argsexc_typexc_exc_fmtrrr _log_backoffLsr8cCspd}|dj|dg}t\}}}|dk rNt||d}||dn||d|j|f|dS)Nz%Giving up %s(...) after %d tries (%s)r'triesr(r)r)r*r+r,r-r.r"r/error)r1rr2r3r4r5r6r7rrr _log_giveupZsr;)NN)r loggingr+r-r getLoggerZ_logger addHandler NullHandlersetLevelINFOr rrr&r8r;rrrrs