ó
    Ö›‘hÔ  ã                  ó˜  • % S r SSKJr  SSKrSSKrSSKJrJr  SSKJ	r	  SSK
JrJrJr  SSKJr  SSKJr  SS	KJrJrJr  SS
KJr  SSKJr  SS jr\S:X  a  \rO\R                  r SSKJr  \r\" S5      r"        SS jr#        SS jr$\" \5       " S S\RJ                  \5      5       r&S r'S/r(g! \ a
    \ rS\!S'    NYf = f)z
Select reactor
é    )ÚannotationsN)ÚEBADFÚEINTR)Úsleep)ÚCallableÚTypeÚTypeVar)Úimplementer)Ú	posixbase)ÚIReactorFDSetÚIReadDescriptorÚIWriteDescriptor)Úlog)ÚplatformTypec                óº   • U (       d)  U(       d"  Uc  SnO[        US5      n[        U5        / / / 4$ Ub  US:”  a  Sn[        R                  " XX5      u  pnXU-   / 4$ )zWin32 select wrapper.g{®Gáz„?gü©ñÒMbP?g      à?)Úminr   Úselect)ÚrÚwÚeÚtimeouts       ÚbC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/internet/selectreactor.pyÚwin32selectr      sd   € æ–à‰?Ø‰Gä˜' 5Ó)ˆGÜˆgŒØ�2�rˆzÐð �˜' C›-ØˆÜ�mŠm˜A !Ó-�G€Aˆ!Ø�!‰e�Rˆ<Ðó    Úwin32)Ú_ThreadedWin32EventsMixinzType[object]Ú
_extraBaseÚ_Tc                ó  • UR                  5         U  H1  n [        R                  " U/U/U/S5        UR                  U5        M3     g ! [         a-  n[        R
                  " SU-  5        U" X4S5         S nAMh  S nAff = f)Nr   zbad descriptor %sF)Úclearr   ÚaddÚ	Exceptionr   Úmsg)ÚtoPreenÚ	preenIntoÚ
disconnectÚ
selectabler   s        r   Ú	_onePreenr(   :   st   € ð
 ‡O�OÔÛˆ
ð	&Ü�MŠM˜:˜,¨¨°z°lÀAÔFð
 �M‰M˜*Ö%ò øô ó 	-Ü�GŠGÐ'¨*Ñ4Ô5Ù�z e×,Ò,ûð	-ús   —A	Á	
B Á"A;Á;B c                óŒ   • [         R                  " S5        [        U 5      n[        U5      n[        X0U5        [        XAU5        g )Nz1Malformed file descriptor found.  Preening lists.)r   r#   Úlistr(   )ÚreadsÚwritesr&   ÚreadersÚwriterss        r   Ú_preenDescriptorsr/   J   s7   € ô
 ‡G‚GÐ?Ô@Ü%)¨%£[€GÜ&*¨6£l€GÜˆg˜jÔ)Üˆg˜zÕ*r   c                  óf   • \ rS rSrSrSS jrSS jrS r\rS r	S r
S rS	 rS
 rS rS rS rSrg)ÚSelectReactoréV   a  
A select() based reactor - runs on all POSIX platforms and on Win32.

@ivar _reads: A set containing L{FileDescriptor} instances which will be
    checked for read events.

@ivar _writes: A set containing L{FileDescriptor} instances which will be
    checked for writability.
c                ó~   • [        5       U l        [        5       U l        [        R                  R                  U 5        g)zF
Initialize file descriptor tracking dictionaries and the base class.
N)ÚsetÚ_readsÚ_writesr   ÚPosixReactorBaseÚ__init__©Úselfs    r   r8   ÚSelectReactor.__init__b   s*   € ô -0«EˆŒÜ.1«eˆŒÜ×"Ñ"×+Ñ+¨DÕ1r   c                óZ   • [        U R                  U R                  U R                  5        g ©N)r/   r5   r6   Ú_disconnectSelectabler9   s    r   r/   ÚSelectReactor._preenDescriptorsj   s   € Ü˜$Ÿ+™+ t§|¡|°T×5OÑ5OÕPr   c                óÌ  •  [        U R                  U R                  / U5      u  p#nU R                  n[        R                  nUSU R                  4USU R                  44 H  u  p‰n
U H  nXº;  a  M
  U" X¶X¹5        M     M!     g! [         a    U R	                  5          g[
         a(    [        R                  " 5         U R	                  5          g[         a‰  nUR                  S   S;   a(  U R                  (       d  U R                  (       d   SnAge UR                  S   [        :X  a   SnAgUR                  S   [        :X  a  U R	                  5          SnAge SnAff = f)z
Run one iteration of the I/O monitor loop.

This will run all selectables who had input or output readiness
waiting for them.
Nr   )r   é   ÚdoReadÚdoWrite)Ú_selectr5   r6   Ú
ValueErrorr/   Ú	TypeErrorr   ÚerrÚOSErrorÚargsr   r   Ú_doReadOrWriteÚcallWithLogger)r:   r   r   r   ÚignoredÚseÚ_drdwÚ_logrunÚselectablesÚmethodÚfdsetr'   s               r   ÚdoSelectÚSelectReactor.doSelectm   s0  € ð	Ü# D§K¡K°·±¸rÀ7ÓK‰MˆA�'ð< ×#Ñ#ˆÜ×$Ñ$ˆà�˜$Ÿ+™+Ð&Ø�	˜4Ÿ<™<Ð(ó+
Ñ&ˆK ó *�
ð Ó*Ùá˜
¨:Ö>ó *ò	+
øô? ó 	à×"Ñ"Ô$ÙÜó 	ô �GŠGŒIØ×"Ñ"Ô$ÙÜó 	ð �w‰w�q‰z˜VÓ#àŸŸ¨d¯l¯lÜàØ—‘˜‘œuÓ$ÜØ—‘˜‘œuÓ$Ø×&Ñ&Ô(Üð ûð#	ús5   ‚%B ÂE#Â!.E#Ã	E#Ã5EÄEÄ1'EÅEÅE#c                óÚ   •  [        X5      " 5       nU(       a  U R                  XUS:H  5        g g ! [         a0    [        R                  " 5       S   n[        R
                  " 5          NWf = f)Né   rB   )ÚgetattrÚBaseExceptionÚsysÚexc_infor   rG   r>   )r:   r'   rQ   Úwhys       r   rJ   ÚSelectReactor._doReadOrWrite£   s]   € ð	Ü˜*Ô-Ó/ˆCö Ø×&Ñ& z¸À(Ñ8JÕKð øô ó 	Ü—,’,“. Ñ#ˆCÜ�GŠGŽIð	ús   ‚0 °7A*Á)A*c                ó:   • U R                   R                  U5        g)zB
Add a FileDescriptor for notification of data available to read.
N)r5   r!   ©r:   Úreaders     r   Ú	addReaderÚSelectReactor.addReader¬   s   € ð 	�‰�‰˜Õr   c                ó:   • U R                   R                  U5        g)zC
Add a FileDescriptor for notification of data available to write.
N)r6   r!   ©r:   Úwriters     r   Ú	addWriterÚSelectReactor.addWriter²   s   € ð 	�‰×Ñ˜Õ r   c                ó:   • U R                   R                  U5        g)zA
Remove a Selectable for notification of data available to read.
N)r5   Údiscardr^   s     r   ÚremoveReaderÚSelectReactor.removeReader¸   s   € ð 	�‰×Ñ˜FÕ#r   c                ó:   • U R                   R                  U5        g)zB
Remove a Selectable for notification of data available to write.
N)r6   rh   rc   s     r   ÚremoveWriterÚSelectReactor.removeWriter¾   s   € ð 	�‰×Ñ˜VÕ$r   c                óN   • U R                  U R                  U R                  5      $ r=   )Ú
_removeAllr5   r6   r9   s    r   Ú	removeAllÚSelectReactor.removeAllÄ   s   € Ø�‰˜tŸ{™{¨D¯L©LÓ9Ð9r   c                ó,   • [        U R                  5      $ r=   )r*   r5   r9   s    r   Ú
getReadersÚSelectReactor.getReadersÇ   s   € Ü�D—K‘KÓ Ð r   c                ó,   • [        U R                  5      $ r=   )r*   r6   r9   s    r   Ú
getWritersÚSelectReactor.getWritersÊ   s   € Ü�D—L‘LÓ!Ð!r   )r5   r6   N)ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r8   r/   rS   ÚdoIterationrJ   r`   re   ri   rl   rp   rs   rv   Ú__static_attributes__© r   r   r1   r1   V   sH   † ñô2ôQò2?ðh €KòLò ò!ò$ò%ò:ò!õ"r   r1   c                 ó4   • [        5       n SSKJn  U" U 5        g)zDConfigure the twisted mainloop to be run using the select() reactor.r   )ÚinstallReactorN)r1   Útwisted.internet.mainrƒ   )Úreactorrƒ   s     r   Úinstallr†   Î   s   € ä‹o€GÝ4á�7Õr   r†   r=   )r$   zlist[_T]r%   zset[_T]r&   z%Callable[[_T, Exception, bool], None]rx   ry   )r+   zset[IReadDescriptor]r,   zset[IWriteDescriptor]r&   zECallable[[IReadDescriptor | IWriteDescriptor, Exception, bool], None]rx   ry   ))r~   Ú
__future__r   r   rY   Úerrnor   r   Útimer   Útypingr   r   r	   Úzope.interfacer
   Útwisted.internetr   Útwisted.internet.interfacesr   r   r   Útwisted.pythonr   Útwisted.python.runtimer   r   rD   Ú"twisted.internet.win32eventreactorr   r   ÚImportErrorÚobjectÚ__annotations__r   r(   r/   r7   r1   r†   Ú__all__r�   r   r   Ú<module>r•      s  ðò
õ #ã Û 
ß Ý ß *Ñ *å &å &ß XÑ XÝ Ý /ôð$ �7ÓØ�Gà�m‰m€Gð+ÝLð +€JáˆTƒ]€ð&Øð&àð&ð 6ð&ð 
ô	&ð 	+Øð	+à!ð	+ð Vð	+ð 
ô		+ñ ˆ]Óôt"�I×.Ñ.°
ó t"ó ðt"ònð ˆ+�øðI ó &Ø%€J�Õ%ð&ús   Á'B9 Â9C	ÃC	