§
    "xÅj\	  ã                   ó  — d dl Z d dlmZmZmZmZmZmZ 	 	 	 ddededee         deeedf         fd	„Z	ddee
         dee
ddf         fd
„Z	 ddee
ee         f         deeddf         fd„Zdeegef         deeddf         fd„ZdS )é    N)ÚAnyÚCallableÚ	GeneratorÚIterableÚOptionalÚUnioné   é   ÚbaseÚfactorÚ	max_valueÚreturnc              #   óR   K  — dV — d}	 || |z  z  }|�||k     r
|V — |dz  }n|V — Œ)ak  Generator for exponential decay.

    Args:
        base: The mathematical base of the exponentiation operation
        factor: Factor to multiply the exponentiation by.
        max_value: The maximum value to yield. Once the value in the
             true exponential sequence exceeds this, the value
             of max_value will forever after be yielded.
    Nr   Tr
   © )r   r   r   ÚnÚas        úBC:\Projects\Historical\venv\Lib\site-packages\backoff/_wait_gen.pyÚexpor      sY   è è € ð  
€E€E€EØ	€AðØ�T˜Q‘YÑˆØÐ  I¢ ØˆGˆGˆGØ�‰FˆAˆAàˆOˆOˆOðó    c              #   óJ   K  — dV — d}d}	 | �|| k     r|V — |||z   }}n| V — Œ)zëGenerator for fibonaccial decay.

    Args:
        max_value: The maximum value to yield. Once the value in the
             true fibonacci sequence exceeds this, the value
             of max_value will forever after be yielded.
    Nr
   r   )r   r   Úbs      r   Úfibor   "   sT   è è € ð 
€E€E€Eà	€AØ	€AðØÐ  I¢ ØˆGˆGˆGØ�a˜!‘eˆqˆAˆAàˆOˆOˆOðr   Úintervalc              #   óŽ   K  — dV — 	 t          | ¦  «        }n$# t          $ r t          j        | ¦  «        }Y nw xY w|D ]}|V — ŒdS )z|Generator for constant intervals.

    Args:
        interval: A constant value to yield or an iterable of such values.
    N)ÚiterÚ	TypeErrorÚ	itertoolsÚrepeat)r   ÚitrÚvals      r   Úconstantr!   7   sx   è è € ð 
€E€E€Eð)Ý�8‰nŒnˆˆøÝð )ð )ð )ÝÔ˜xÑ(Ô(ˆˆˆð)øøøð ð ð ˆØˆ	ˆ	ˆ	ˆ	ðð s   ˆ ˜9¸9Úvaluec              #   ó,   K  — dV —}	  | |¦  «        V —}Œ)a  Generator that is based on parsing the return value or thrown
        exception of the decorated method

    Args:
        value: a callable which takes as input the decorated
            function's return value or thrown exception and
            determines how long to wait
    Nr   )r"   Ú
ret_or_excs     r   Úruntimer%   K   s0   è è € ð ��€Jð-Ø ˜5 Ñ,Ô,Ð,Ð,ˆ
ð-r   )r	   r
   N)N)r
   )r   Útypingr   r   r   r   r   r   Úfloatr   Úintr   r!   r%   r   r   r   ú<module>r)      s`  ðð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fð ØØ!%ðð Ø
ðàðð ˜Œðð ˆu�c˜4ÐÔ ð	ð ð ð ð6ð �H˜S”Mð ¨Y°s¸DÀ$°Ô-Gð ð ð ð ð, -.ðð Ø�C˜ %œÐ(Ô)ðàˆu�d˜DÐ Ô!ðð ð ð ð(-à�S�E˜5�LÔ!ð-ð ˆu�d˜DÐ Ô!ð-ð -ð -ð -ð -ð -r   