Ë
    ö­¦jw  ã                   ól   — d dl Z d dlZd dlmZ d dlmZ  ed¬«       G d„ d«      «       Z G d„ d	«      Zy)
é    N)Ú	dataclass)ÚnormalvariateT)Úfrozenc                   ó>   — e Zd ZU eed<   eed<   eed<   eed<   dd„Zy)ÚBackoffConfigÚ	min_delayÚ	max_delayÚfactorÚjitterNc                 óˆ   — | j                   | j                  k  rd}t        |«      ‚| j                  dk  rd}t        |«      ‚y )Nz.`max_delay` should be greater than `min_delay`é   z!`factor` should be greater than 1)r	   r   Ú
ValueErrorr
   )ÚselfÚmsgs     úH/var/www/html/venv/lib/python3.12/site-packages/aiogram/utils/backoff.pyÚ__post_init__zBackoffConfig.__post_init__   sA   € Ø�>‰>˜TŸ^™^Ò+ØBˆCÜ˜S“/Ð!Ø�;‰;˜!ÒØ5ˆCÜ˜S“/Ð!ð ó    ©ÚreturnN)Ú__name__Ú
__module__Ú__qualname__ÚfloatÚ__annotations__r   © r   r   r   r      s   … àÓØÓØƒMØƒMô"r   r   c                   óþ   — e Zd Zdeddfd„Zdd„Zedefd„«       Zedefd„«       Z	edefd„«       Z
edefd	„«       Zedefd
„«       Zedefd„«       Zedefd„«       Zdd„Zdd„Zdedefd„Zdefd„Zdd„Zdefd„Zy)ÚBackoffÚconfigr   Nc                 óP   — || _         |j                  | _        d| _        d| _        y ©Ng        r   )r   r   Ú_next_delayÚ_current_delayÚ_counter)r   r   s     r   Ú__init__zBackoff.__init__   s&   € ØˆŒØ!×+Ñ+ˆÔØ!ˆÔØˆ�r   c                 ó   — | S ©Nr   ©r   s    r   Ú__iter__zBackoff.__iter__   s   € Øˆr   c                 ó.   — | j                   j                  S r&   )r   r   r'   s    r   r   zBackoff.min_delay!   ó   € à�{‰{×$Ñ$Ð$r   c                 ó.   — | j                   j                  S r&   )r   r	   r'   s    r   r	   zBackoff.max_delay%   r*   r   c                 ó.   — | j                   j                  S r&   )r   r
   r'   s    r   r
   zBackoff.factor)   ó   € à�{‰{×!Ñ!Ð!r   c                 ó.   — | j                   j                  S r&   )r   r   r'   s    r   r   zBackoff.jitter-   r-   r   c                 ó   — | j                   S r&   )r!   r'   s    r   Ú
next_delayzBackoff.next_delay1   s   € à×ÑÐr   c                 ó   — | j                   S r&   )r"   r'   s    r   Úcurrent_delayzBackoff.current_delay5   s   € à×"Ñ"Ð"r   c                 ó   — | j                   S r&   )r#   r'   s    r   ÚcounterzBackoff.counter9   s   € à�}‰}Ðr   c                 ó@   — t        j                  t        | «      «       y r&   )ÚtimeÚsleepÚnextr'   s    r   r7   zBackoff.sleep=   s   € Ü�
‰
”4˜“:Õr   c              ƒ   ó\   K  — t        j                  t        | «      «      ƒ d {  –—†  y 7 Œ­wr&   )Úasyncior7   r8   r'   s    r   ÚasleepzBackoff.asleep@   s   è ø€ Ü�m‰mœD ›JÓ'×'Ò'ús   ‚",¤*¥,Úvaluec                 óp   — t        t        || j                  z  | j                  «      | j                  «      S r&   )r   Úminr
   r	   r   )r   r<   s     r   Ú_calculate_nextzBackoff._calculate_nextC   s'   € ÜœS ¨¯©Ñ!4°d·n±nÓEÀtÇ{Á{ÓSÐSr   c                 ó¦   — | j                   | _        | j                  | j                   «      | _         | xj                  dz  c_        | j                  S )Nr   )r!   r"   r?   r#   r'   s    r   Ú__next__zBackoff.__next__F   sC   € Ø"×.Ñ.ˆÔØ×/Ñ/°×0@Ñ0@ÓAˆÔØ�Š˜Ñ�Ø×"Ñ"Ð"r   c                 óB   — d| _         d| _        | j                  | _        y r    )r"   r#   r   r!   r'   s    r   ÚresetzBackoff.resetL   s   € Ø!ˆÔØˆŒØŸ>™>ˆÕr   c                 óV   — d| j                   › d| j                  › d| j                  › d�S )NzBackoff(tryings=z, current_delay=z, next_delay=ú))r#   r"   r!   r'   s    r   Ú__str__zBackoff.__str__Q   s9   € à˜tŸ}™}˜oÐ-=¸d×>QÑ>QÐ=Rð SØ×*Ñ*Ð+¨1ð.ð	
r   )r   r   r   )r   r   r   r   r$   r(   Úpropertyr   r   r	   r
   r   r0   r2   Úintr4   r7   r;   r?   rA   rC   ÚstrrF   r   r   r   r   r      s  „ ð˜}ð °ó óð ð%˜5ò %ó ð%ð ð%˜5ò %ó ð%ð ð"˜ò "ó ð"ð ð"˜ò "ó ð"ð ð ˜Eò  ó ð ð ð#˜uò #ó ð#ð ð˜ò ó ðóó(ðT Uð T¨uó Tð#˜%ó #ó*ð

˜ô 
r   r   )r:   r6   Údataclassesr   Úrandomr   r   r   r   r   r   ú<module>rL      s9   ðÛ Û Ý !Ý  ñ �$Ô÷"ð "ó ð"÷>
ò >
r   