Ë
    UV.j;/  ã                  ó0  — U d Z ddlmZ ddlZddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ dd	lmZmZ dd
lmZ ddlmZ ddlmZmZmZmZ ddlmZ ddlmZ dZ ee «      Z!da"de#d<   dZ$ G d„ de%«      Z&d„ Z'ed„ «       Z(dd„Z)dd„Z* G d„ d«      Z+y)zEvent loop implementation.é    )ÚannotationsN)Úcontextmanager)Úcopy)ÚEmpty)Úsleep)ÚGeneratorType)ÚThenableÚpromise)Ú
get_logger)Úfileno)ÚERRÚREADÚWRITEÚpoll)Úcached_propertyé   )ÚTimer)ÚHubÚget_event_loopÚset_event_loopú
Hub | NoneÚ_current_loopz<Received unknown event %r for fd %r, please contact support!c                  ó   — e Zd ZdZy)ÚStopzStops the event loop.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úXC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\kombu/asynchronous/hub.pyr   r       s   „ Úr    r   c                 ó   — t        «       ‚©N)r   r   r    r!   Ú_raise_stop_errorr$   $   s	   € Ü
‹&€Lr    c               /  ó   K  — d –— y ­wr#   r   )ÚargsÚkwargss     r!   Ú_dummy_contextr(   (   s	   è ø€ ä	ùs   ‚c                 ó   — t         S )zGet current event loop object.©r   r   r    r!   r   r   -   s   € äÐr    c                ó
   — | a | S )z"Set the current event loop object.r*   )Úloops    r!   r   r   2   s   € ð €MØ€Kr    c            
      ó<  — e Zd ZdZeZeZeZdZd#d„Ze	d„ «       Z
e
j                  d„ «       Z
d„ Zd„ Zd„ Zd	„ Zd
„ Z	 	 d$d„Zd„ Zd%d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#e$e%e&e'e(e)e*eeef
d„Z+d„ Z,d „ Z-e.d!„ «       Z/e	d"„ «       Z0y)&r   z~Event loop object.

    Arguments:
    ---------
        timer (kombu.asynchronous.Timer): Specify custom timer instance.
    Nc                óH  — |�|n	t        «       | _        i | _        i | _        t	        «       | _        t	        «       | _        t	        «       | _        t        j                  «       | _
        d| _        d | _        t	        «       | _        d | _        d| _        | j!                  «        y )NFr   )r   ÚtimerÚreadersÚwritersÚsetÚon_tickÚon_closeÚ_readyÚ	threadingÚLockÚ_ready_lockÚ_runningÚ_loopÚconsolidateÚconsolidate_callbackÚpropagate_errorsÚ_create_poller)Úselfr/   s     r!   Ú__init__zHub.__init__N   s€   € Ø#Ð/‘U´U³WˆŒ
àˆŒØˆŒÜ“uˆŒÜ›ˆŒÜ“eˆŒÜ$Ÿ>™>Ó+ˆÔàˆŒØˆŒ
ô ›5ˆÔØ$(ˆÔ!à "ˆÔà×ÑÕr    c                óR   — | j                   s| j                  «        | j                   S r#   )Ú_pollerr>   ©r?   s    r!   Úpollerz
Hub.polleri   s   € à�|Š|Ø×ÑÔ!Ø�|‰|Ðr    c                ó   — || _         y r#   )rB   )r?   Úvalues     r!   rD   z
Hub.pollero   s	   € àˆ�r    c                óD   — | j                  «        | j                  «        y r#   )Úcloser>   rC   s    r!   Úresetz	Hub.resets   s   € Ø�
‰
ŒØ×ÑÕr    c                óŽ   — t        «       | _        | j                  j                  | _        | j                  j                  | _        y r#   )r   rB   ÚregisterÚ_register_fdÚ
unregisterÚ_unregister_fdrC   s    r!   r>   zHub._create_pollerw   s/   € Ü“vˆŒØ ŸL™L×1Ñ1ˆÔØ"Ÿl™l×5Ñ5ˆÕr    c                ó|   — | j                   �0| j                   j                  «        d | _         d | _        d | _        y y r#   )rB   rH   rL   rN   rC   s    r!   Ú_close_pollerzHub._close_poller|   s8   € Ø�<‰<Ð#Ø�L‰L×ÑÔ ØˆDŒLØ $ˆDÔØ"&ˆDÕð	 $r    c                ó.   — | j                  t        «       y r#   )Ú	call_soonr$   rC   s    r!   ÚstopzHub.stopƒ   s   € Ø�‰Ô(Õ)r    c                ó†   — dj                  t        | «      t        | j                  «      t        | j                  «      «      S )Nz<Hub@{:#x}: R:{} W:{}>)ÚformatÚidÚlenr0   r1   rC   s    r!   Ú__repr__zHub.__repr__†   s2   € Ø'×.Ñ.Üˆt‹H”c˜$Ÿ,™,Ó'¬¨T¯\©\Ó):ó
ð 	
r    c                óÔ  — | j                   }d }|r@|j                  r4t        |«      D ]&  }t        | j                  «      \  }}|€ n
	  |«        Œ( t        |xs ||«      S # |$ r ‚ t
        t        f$ r ‚ t        $ r@}	|	j                  t        j                  k(  r‚ t        j                  d|	d¬«       Y d }	~	Œ‘d }	~	wt        $ r"}	t        j                  d|	d¬«       Y d }	~	Œºd }	~	ww xY w)NzError in timer: %rr   ©Úexc_info)r/   Ú_queueÚrangeÚnextÚ	schedulerÚMemoryErrorÚAssertionErrorÚOSErrorÚerrnoÚENOMEMÚloggerÚerrorÚ	ExceptionÚmin)
r?   Ú	min_delayÚ	max_delayÚ
max_timersÚ	propagater/   ÚdelayÚiÚentryÚexcs
             r!   Úfire_timerszHub.fire_timers‹   sÙ   € à—
‘
ˆØˆÙ�U—\’\Ü˜:Ö&�Ü# D§N¡NÓ3‘��uØ�=ÙðHÙ•Gð 'ô  �5Ò%˜I yÓ1Ð1øð !ò ØÜ#¤^Ð4ò ØÜò HØ—y‘y¤E§L¡LÒ0ØÜ—L‘LÐ!5°sÀQ�L×GÑGûÜ ò HÜ—L‘LÐ!5°sÀQ�L×GÑGûðHús$   ÁA!Á!C'Á>6B9Â9C'ÃC"Ã"C'c                óv   — 	 | j                  |«       | j                  |«       y # | j                  |«       w xY wr#   )Ú_unregisterÚ_discard©r?   Úfds     r!   Ú_remove_from_loopzHub._remove_from_loop¢   s.   € ð	Ø×Ñ˜RÔ à�M‰M˜"ÕøˆD�M‰M˜"Õús   ‚% ¥8c                ó(  — t        |«      }	 | j                  j                  ||«       |t        z  r| j                  n| j
                  }|r!| j                  j                  |«       d ||<   y ||f||<   y # t        $ r | j                  |«       ‚ w xY wr#   )
r   rD   rK   r   r0   r1   r;   ÚaddÚ
ValueErrorrw   )r?   rv   ÚcallbackÚflagsr&   r;   Údests          r!   ry   zHub.add¨   sŠ   € Ü�B‹Zˆð	*Ø�K‰K× Ñ   UÔ+ð
 $)¬4¢<�4—<’<°T·\±\ˆDÙØ× Ñ ×$Ñ$ RÔ(Ø��R’à# T˜>��R’øô ò 	Ø×"Ñ" 2Ô&Øð	ús   �A5 Á5Bc                ó<   — t        |«      }| j                  |«       y r#   )r   rw   ru   s     r!   Úremovez
Hub.remove·   s   € Ü�B‹ZˆØ×Ñ˜rÕ"r    c                ó€   — d| _         	 	 	 | j                  «        Œ# t        $ r Y nw xY w	 d| _         y # d| _         w xY w)NTF)r9   Úrun_oncer   rC   s    r!   Úrun_foreverzHub.run_forever»   sJ   € ØˆŒð	"ØðØ—M‘M”Oð øô ò ÙðúØà!ˆD�Mø˜EˆD�Mús    ‰4 ‹ ›4 œ	(¥4 §(¨4 ´	=c                ó\   — 	 t        | j                  «       y # t        $ r
 d | _        Y y w xY wr#   )r^   r,   ÚStopIterationr:   rC   s    r!   r�   zHub.run_onceÆ   s(   € ð	Ü�—‘�OøÜò 	ØˆDŽJð	ús   ‚ ˜+ª+c                ó¸   — t        |t        «      st        ||«      }| j                  5  | j                  j                  |«       d d d «       |S # 1 sw Y   |S xY wr#   )Ú
isinstancer	   r
   r8   r5   ry   )r?   r{   r&   s      r!   rR   zHub.call_soonÌ   sF   € Ü˜(¤HÔ-Ü˜x¨Ó.ˆHØ×ÓØ�K‰K�O‰O˜HÔ%÷ àˆ÷ àˆús   ©AÁAc                ó<   — | j                   j                  |||«      S r#   )r/   Ú
call_after©r?   rm   r{   r&   s       r!   Ú
call_laterzHub.call_laterÓ   s   € Ø�z‰z×$Ñ$ U¨H°dÓ;Ð;r    c                ó<   — | j                   j                  |||«      S r#   )r/   Úcall_at)r?   Úwhenr{   r&   s       r!   rŒ   zHub.call_atÖ   s   € Ø�z‰z×!Ñ! $¨°$Ó7Ð7r    c                ó<   — | j                   j                  |||«      S r#   )r/   Úcall_repeatedlyr‰   s       r!   r�   zHub.call_repeatedlyÙ   s   € Ø�z‰z×)Ñ)¨%°¸4Ó@Ð@r    c                ó@   — | j                  ||t        t        z  |«      S r#   )ry   r   r   ©r?   Úfdsr{   r&   s       r!   Ú
add_readerzHub.add_readerÜ   s   € Ø�x‰x˜˜X¤t¬c¡z°4Ó8Ð8r    c                ó2   — | j                  ||t        |«      S r#   )ry   r   r‘   s       r!   Ú
add_writerzHub.add_writerß   s   € Ø�x‰x˜˜X¤u¨dÓ3Ð3r    c                ó  — || j                   v }| j                   j                  |«      }	 | j                  |«       |r|\  }}| j                  ||t        |«       y y # |r|\  }}| j                  ||t        |«       w w xY wr#   )r1   Úgetrw   ry   r   )r?   rv   ÚwritableÚon_writeÚcbr&   s         r!   Úremove_readerzHub.remove_readerâ   s~   € Ø˜Ÿ™Ð%ˆØ—<‘<×#Ñ# BÓ'ˆð	.Ø×"Ñ" 2Ô&áØ#‘��DØ—‘˜˜R¤¨Õ-ð ø‰xØ#‘��DØ—‘˜˜R¤¨Õ-ð ús   «A Á"A?c                ó   — || j                   v }| j                   j                  |«      }	 | j                  |«       |r%|\  }}| j                  ||t        t
        z  |«       y y # |r%|\  }}| j                  ||t        t
        z  |«       w w xY wr#   )r0   r—   rw   ry   r   r   )r?   rv   ÚreadableÚon_readrš   r&   s         r!   Úremove_writerzHub.remove_writerì   s†   € Ø˜Ÿ™Ð%ˆØ—,‘,×"Ñ" 2Ó&ˆð	3Ø×"Ñ" 2Ô&áØ"‘��DØ—‘˜˜R¤¬¡¨TÕ2ð ø‰xØ"‘��DØ—‘˜˜R¤¬¡¨TÕ2ð ús   «A$ Á$)Bc                óp   — 	 | j                   j                  |«       y # t        t        t        f$ r Y y w xY wr#   )rD   rM   ÚAttributeErrorÚKeyErrorrb   ru   s     r!   rs   zHub._unregisterö   s2   € ð	Ø�K‰K×"Ñ" 2Õ&øÜ¤¬'Ð2ò 	Ùð	ús   ‚ ž5´5c                ó€   — | j                   5  | j                  }t        «       | _        |cd d d «       S # 1 sw Y   y xY wr#   )r8   r5   r2   )r?   Úreadys     r!   Ú
_pop_readyzHub._pop_readyü   s,   € Ø×ÓØ—K‘KˆEÜ›%ˆDŒKØ÷ ×Òús   �4´=c                ó  — | j                   D �cg c]  }| j                  |«      ‘Œ c} | j                   j                  «        | j                  D �cg c]  }| j                  |«      ‘Œ c} | j                  j                  «        | j                  j                  «        | j                  «        | j                  D ]
  } || «       Œ | j                  «       }|D ]	  } |«        Œ t        | u rt        d «       y y c c}w c c}w r#   )
r0   rs   Úclearr1   r;   rP   r4   r¥   r   r   )r?   r&   rv   r{   ÚtodosÚitems         r!   rH   z	Hub.close  sÓ   € Ø(,¯ªÓ5© "ˆ×	Ñ	˜"Õ	¨Ò5Ø�‰×ÑÔØ(,¯ªÓ5© "ˆ×	Ñ	˜"Õ	¨Ò5Ø�‰×ÑÔØ×Ñ×ÑÔ Ø×ÑÔØŸœˆHÙ�T�Nð &ð —‘Ó!ˆÛˆDÙ�Fð ô ˜DÑ Ü˜4Õ ð !ùò' 	6ùâ5s   �C=ÁDc                óÀ   — t        |«      }| j                  j                  |d «       | j                  j                  |d «       | j                  j                  |«       y r#   )r   r0   Úpopr1   r;   Údiscardru   s     r!   rt   zHub._discard  sG   € Ü�B‹ZˆØ�‰×Ñ˜˜TÔ"Ø�‰×Ñ˜˜TÔ"Ø×Ñ× Ñ  Õ$r    c                ó6   — t         j                  d||d¬«       y )Nz Callback %r raised exception: %rr   rZ   )re   rf   )r?   r{   rp   s      r!   Úon_callback_errorzHub.on_callback_error  s   € Ü�‰Ø.°¸#Èð 	õ 	
r    c              #  ó*  K  — | j                   | j                  }}| j                  j                  }| j                  }| j
                  }| j                  j                  }| j                  }| j                  }| j                  }	 | j                  «       }|D ]  }|sŒ |«        Œ |r	 ||¬«      nd}t        | j                  «      D ]	  } |«        Œ |s|rîg }	  ||«      }|xs dD ]Ï  \  }}d}||v r#|j                  |«      €|j!                  |«       Œ/d x}}||z  r
	 ||   \  }}n4||	z  r
	 ||   \  }}n%||
z  rd}nt&        j)                  t*        ||«       d}|r(	 |j                  |«      xs |j                  |«      \  }}|€| j                  |«       Œ´t/        ||«      r
	  ||«       ŒÊ	  ||Ž  ŒÑ |r ||«       n | ||d«      «       d –— �ŒV# t        $ r Y y w xY w# |$ r | j#                  |«       Y �Œw xY w# |$ r | j%                  |«       Y �Œ7w xY w# t,        $ r Y Œ¦w xY w# t0        $ r1}|j2                  t2        j4                  k7  r‚  ||«       Y d }~�Œd }~w|$ r Y �ŒŠt6        $ r
  ||«       ‚ w xY w# |$ r Y �Œ§w xY w­w)Nr   )rl   r   FTgš™™™™™¹?)r0   r1   rD   r   rq   r   r/   r\   r;   r<   r=   r¥   r   r3   rz   r—   Úappendr›   rŸ   re   ÚinfoÚW_UNKNOWN_EVENTÚ	TypeErrorr†   rb   rc   ÚEBADFrg   ) r?   Ú	generatorr   rh   r^   r   r„   r¢   r   r   r   r0   r1   r   rq   Ú
hub_removeÚ	scheduledr;   r<   rl   Útodor©   Úpoll_timeoutÚtick_callbackÚto_consolidateÚeventsrv   ÚeventÚgeneral_errorrš   Úcbargsrp   s                                    r!   Úcreate_loopzHub.create_loop$  sÇ  è ø€ ð  Ÿ<™<¨¯©�ˆØ�{‰{×ÑˆØ×&Ñ&ˆØ—[‘[ˆ
Ø—J‘J×%Ñ%ˆ	Ø×&Ñ&ˆØ#×8Ñ8ÐØ×)Ñ)ˆ	àØ—?‘?Ó$ˆDã�ÚÙ•Fð ñ @I™;°Õ;ÈaˆLä!% d§l¡lÖ!3�Ù•ð "4ñ ™'Ø!#�ðÙ! ,Ó/�Fð
 "(¢¨2¢‘I�B˜Ø$)�MØ˜[Ñ(Ø#ŸK™K¨›OÐ3Ø&×-Ñ-¨bÔ1Ø Ø"&Ð&�B˜à˜t’|ð%Ø)0°©™J˜B¡ð  šð%Ø)0°©™J˜B¡ð  šØ(,™äŸ™¤O°U¸BÔ?Ø(,˜á$ð!Ø*1¯+©+°b«/ò +:Ø*1¯+©+°b«/ñ '˜B ð
 �zØŸ™ BœØ ä! " iÔ0ð
"Ù  �Hð!Ù šKðg ".ñl "Ù(¨Õ8ñ ‘c˜,¨Ó,Ô-Ûña øô$ "ò Ùðûð  (ò %Ø ×.Ñ.¨rÔ2Ú$ð%ûð  (ò %Ø ×.Ñ.¨rÔ2Ú$ð%ûô  )ò !Ù ð!ûô  'ò +Ø"Ÿy™y¬E¯K©KÒ7Ø %Ù& rŸNšNûØ,ò !Ú Ü(ò "Ù& rœNØ!ð"ûð  %ò !Ú ð!üsö   ‚BJÂ=JÃG Ã">JÄ!G)Ä)JÄ0HÄ8(JÅ!'H#Æ JÆ)H2Æ1JÆ3JÆ8"JÇ	G&Ç#JÇ%G&Ç&JÇ)HÇ?JÈHÈJÈH ÈJÈH È JÈ#	H/È,JÈ.H/È/JÈ2	JÈ;&I'É!JÉ'JÉ/JÉ2JÊJÊJÊJÊJÊJc                ó   — ddl m}  || «      S )Nr   )Úrepr_active)ÚdebugrÂ   )r?   rÂ   s     r!   rÂ   zHub.repr_activeƒ  s   € Ý&Ù˜4Ó Ð r    c                ó(   — ddl m}  || |xs g «      S )Nr   )Úrepr_events)rÃ   rÅ   )r?   r¼   rÅ   s      r!   rÅ   zHub.repr_events‡  s   € Ý&Ù˜4 ¢¨2Ó.Ð.r    c                ó,   — t        | j                  «      S r#   )Úiterr/   rC   s    r!   r_   zHub.scheduler‹  s   € ä�D—J‘JÓÐr    c                ó\   — | j                   €| j                  «       | _         | j                   S r#   )r:   rÀ   rC   s    r!   r,   zHub.loop�  s&   € à�:‰:ÐØ×)Ñ)Ó+ˆDŒJØ�z‰zÐr    r#   )r   é
   rÉ   r   )r   F)1r   r   r   r   r   r   r   r4   r@   ÚpropertyrD   ÚsetterrI   r>   rP   rS   rX   rq   rw   ry   r   r‚   r�   rR   rŠ   rŒ   r�   r“   r•   r›   rŸ   rs   r¥   rH   rt   r®   rµ   r   rh   r^   r   r„   r¢   rÀ   rÂ   rÅ   r   r_   r,   r   r    r!   r   r   9   s)  „ ñð €Dð €Eð €Cð €Hóð6 ñó ðð
 ‡]�]ñó ðòò6ò
'ò*ò
ð
 ACØ ó2ò.ó*ò#ò	"òòò<ò8òAò9ò4ò.ò3òòò!ò.%ò
ð (¨u¸#ÀDØ¨}Ø%¨D¸À3ó]ò~!ò/ð ñ ó ð ð ñó ñr    r   )Úreturnr   )r,   r   rÌ   r   ),r   Ú
__future__r   rc   r6   Ú
contextlibr   r   Úqueuer   Útimer   Útypesr   rµ   Úviner	   r
   Ú	kombu.logr   Úkombu.utils.compatr   Úkombu.utils.eventior   r   r   r   Úkombu.utils.objectsr   r/   r   Ú__all__r   re   r   Ú__annotations__r²   ÚBaseExceptionr   r$   r(   r   r   r   r   r    r!   Ú<module>rÚ      s�   ðÚ  å "ã Û Ý %Ý Ý Ý Ý ,ç "å  Ý %ß 6Ó 6Ý /å à
5€Ù	�HÓ	€à €ˆzÓ  ð€ô
 ˆ=ô  òð ñ
ó ð
óó
÷Zò Zr    