B C_@sddlZddlZddlZddlmZeejGdddeZ Gddde Z e Z Gddde Z e Z Gd d d e ZGd d d eZGd ddeZGddde ZGddde ZGdddeZGdddeZGddde ZGddde ZdS)N)compatc@s.eZdZdZejddZddZddZdS) retry_basez)Abstract base class for retry strategies.cCsdS)N)self retry_staterrh/private/var/folders/fw/jsxvvqfs4sz4tdnfdvg5typ5vk77qg/T/pip-install-pio4sg6z/tenacity/tenacity/retry.py__call__szretry_base.__call__cCs t||S)N) retry_all)rotherrrr__and__!szretry_base.__and__cCs t||S)N) retry_any)rr rrr__or__$szretry_base.__or__N) __name__ __module__ __qualname____doc__abcabstractmethodrr r rrrrrsrc@seZdZdZddZdS) _retry_neverz-Retry strategy that never rejects any result.cCsdS)NFr)rrrrrr+sz_retry_never.__call__N)rrrrrrrrrr(src@seZdZdZddZdS) _retry_alwaysz.Retry strategy that always rejects any result.cCsdS)NTr)rrrrrr5sz_retry_always.__call__N)rrrrrrrrrr2src@s&eZdZdZddZejddZdS)retry_if_exceptionzARetry strategy that retries if an exception verifies a predicate.cCs ||_dS)N) predicate)rrrrr__init__?szretry_if_exception.__init__cCs |jjr||jSdSdS)NF)outcomefailedr exception)rrrrrrBszretry_if_exception.__call__N)rrrrr_compat#retry_dunder_call_accept_old_paramsrrrrrr<srcs$eZdZdZeffdd ZZS)retry_if_exception_typez=Retries if an exception has been raised of one or more types.cs"|_tt|fdddS)Ncs t|S)N) isinstance)e)exception_typesrrPz2retry_if_exception_type.__init__..)r!superrr)rr!) __class__)r!rrMs z retry_if_exception_type.__init__)rrrr Exceptionr __classcell__rr)r%rrJsrcs2eZdZdZeffdd ZejddZZ S)retry_unless_exception_typez:Retries until an exception is raised of one or more types.cs"|_tt|fdddS)Ncs t| S)N)r)r )r!rrr"Yr#z6retry_unless_exception_type.__init__..)r!r$r(r)rr!)r%)r!rrVs z$retry_unless_exception_type.__init__cCs|jjs dS||jS)NT)rrrr)rrrrrr[sz$retry_unless_exception_type.__call__) rrrrr&rrrrr'rr)r%rr(Ssr(c@s&eZdZdZddZejddZdS)retry_if_resultz+Retries if the result verifies a predicate.cCs ||_dS)N)r)rrrrrrfszretry_if_result.__init__cCs |jjs||jSdSdS)NF)rrrresult)rrrrrriszretry_if_result.__call__N)rrrrrrrrrrrrr)csr)c@s&eZdZdZddZejddZdS)retry_if_not_resultz*Retries if the result refutes a predicate.cCs ||_dS)N)r)rrrrrrtszretry_if_not_result.__init__cCs"|jjs||j SdSdS)NF)rrrr*)rrrrrrwszretry_if_not_result.__call__N)rrrrrrrrrrrrr+qsr+cs"eZdZdZdfdd ZZS)retry_if_exception_messagez2Retries if an exception message equals or matches.Ncsvr|rtd|jjr0fdd}|}n2|rPt|fdd}|}ntd|jjtt||dS)Nz0{}() takes either 'message' or 'match', not bothcs t|kS)N)str)r)messagerr message_fncsz8retry_if_exception_message.__init__..message_fnccst|S)N)matchr-)r)progrr match_fncsz6retry_if_exception_message.__init__..match_fncz5{}() missing 1 required argument 'message' or 'match') TypeErrorformatr%rrecompiler$r,r)rr.r0r/rr2)r%)r.r1rrs     z#retry_if_exception_message.__init__)NN)rrrrrr'rr)r%rr,sr,cs.eZdZdZfddZejddZZS)retry_if_not_exception_messagez5Retries until an exception message equals or matches.cs*tt|j|||jfdd|_dS)Ncs || S)Nr)Zargs_Zkwargs_) if_predicaterrr"sz9retry_if_not_exception_message.__init__..)r$r7rr)rargskwargs)r%)r8rrsz'retry_if_not_exception_message.__init__cCs|jjs dS||jS)NT)rrrr)rrrrrrsz'retry_if_not_exception_message.__call__) rrrrrrrrr'rr)r%rr7s r7c@s&eZdZdZddZejddZdS)r z1Retries if any of the retries condition is valid.cGstdd|D|_dS)Ncss|]}t|VqdS)N)rretry_func_accept_retry_state).0rrrr sz%retry_any.__init__..)tupleretries)rr@rrrrszretry_any.__init__cstfdd|jDS)Nc3s|]}|VqdS)Nr)r<r=)rrrr>sz%retry_any.__call__..)anyr@)rrr)rrrszretry_any.__call__N)rrrrrrrrrrrrr sr c@s&eZdZdZddZejddZdS)r z/Retries if all the retries condition are valid.cGstdd|D|_dS)Ncss|]}t|VqdS)N)rr;)r<r=rrrr>sz%retry_all.__init__..)r?r@)rr@rrrrszretry_all.__init__cstfdd|jDS)Nc3s|]}|VqdS)Nr)r<r=)rrrr>sz%retry_all.__call__..)allr@)rrr)rrrszretry_all.__call__N)rrrrrrrrrrrrr sr )rr5sixZtenacityrr add_metaclassABCMetaobjectrrZ retry_neverrZ retry_alwaysrrr(r)r+r,r7r r rrrrs$