grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026U iÛf�Hã@s¢ddlmZmZddlmZddlmZddlZddlZddl Z dZ dZ dd„Z ed d d d d gƒZ de _e jdkr’de j_de j_de j_de j_Gdd„deƒZGdd„ded�ZGdd„deƒZGdd„deƒZGdd„deƒZeedƒrþGd d!„d!eƒZeed"ƒ�rGd#d$„d$eƒZeed%ƒ�r6Gd&d'„d'eƒZeed(ƒ�rRGd)d*„d*eƒZd*eƒk�rdeZn:d$eƒk�rveZn(d'eƒk�rˆeZnd!eƒk�ršeZneZdS)+é)ÚABCMetaÚabstractmethod)Ú namedtuple)ÚMappingNééc Csft|tƒr|}ntd |¡ƒd‚YnXdS©Nú{!r} is not registered)rÚ_fileobj_lookuprÚKeyErrorr)rrrrrrÚ __getitem__Es  z_SelectorMapping.__getitem__cCs t|jjƒSr)Úiterrrr rrrÚ__iter__Lsz_SelectorMapping.__iter__N)Ú__name__Ú __module__Ú __qualname__rr!r&r(rrrrr<src@sjeZdZeddd„ƒZedd„ƒZddd„Zeddd „ƒZd d „Zd d „Z edd„ƒZ dd„Z dd„Z dS)Ú BaseSelectorNcCst‚dSr©ÚNotImplementedError©rrrrrrrÚregister_szBaseSelector.registercCst‚dSrr-)rrrrrÚ unregistervszBaseSelector.unregistercCs| |¡| |||¡Sr)r1r0r/rrrÚmodify‰s zBaseSelector.modifycCst‚dSrr-)rÚtimeoutrrrÚselectšszBaseSelector.selectcCsdSrrr rrrÚclose­szBaseSelector.closecCsL| ¡}|dkrtdƒ‚z ||WStk rFtd |¡ƒd‚YnXdS)NzSelector is closedr#)Úget_mapÚ RuntimeErrorr%r)rrÚmappingrrrÚget_key´s zBaseSelector.get_keycCst‚dSrr-r rrrr6ÂszBaseSelector.get_mapcCs|Srrr rrrÚ __enter__ÇszBaseSelector.__enter__cGs | ¡dSr)r5)rÚargsrrrÚ__exit__ÊszBaseSelector.__exit__)N)N)N) r)r*r+rr0r1r2r4r5r9r6r:r<rrrrr,Ps     r,)Ú metaclassc@sPeZdZdd„Zdd„Zddd„Zdd „Zdd d „Zd d „Zdd„Z dd„Z dS)Ú_BaseSelectorImplcCsi|_t|ƒ|_dSr)rrÚ_mapr rrrrÑsz_BaseSelectorImpl.__init__cCsNz t|ƒWStk rH|j ¡D]}|j|kr$|jYSq$‚YnXdSr)rr rÚvaluesrr©rrÚkeyrrrr$×s   z!_BaseSelectorImpl._fileobj_lookupNcCsb|r|ttB@r td |¡ƒ‚t|| |¡||ƒ}|j|jkrRtd ||j¡ƒ‚||j|j<|S)NzInvalid events: {!r}z"{!r} (FD {}) is already registered) Ú EVENT_READÚ EVENT_WRITEr rrr$rrr%©rrrrrBrrrr0ês ÿ z_BaseSelectorImpl.registercCs@z|j | |¡¡}Wn$tk r:td |¡ƒd‚YnX|Sr")rÚpopr$r%rrArrrr1÷s z_BaseSelectorImpl.unregistercCs„z|j| |¡}Wn$tk r8td |¡ƒd‚YnX||jkr^| |¡| |||¡}n"||jkr€|j|d�}||j|j <|S)Nr#)r) rr$r%rrr1r0rÚ_replacerrErrrr2þs     z_BaseSelectorImpl.modifycCs|j ¡d|_dSr)rÚclearr?r rrrr5 s z_BaseSelectorImpl.closecCs|jSr)r?r rrrr6sz_BaseSelectorImpl.get_mapcCs(z |j|WStk r"YdSXdSr)rr%)rrrrrÚ _key_from_fds  z_BaseSelectorImpl._key_from_fd)N)N) r)r*r+rr$r0r1r2r5r6rIrrrrr>Îs  r>cs\eZdZ‡fdd„Zd ‡fdd„ Z‡fdd„ZejdkrDdd d „Zne j Zdd d „Z ‡Z S)ÚSelectSelectorcstƒ ¡tƒ|_tƒ|_dSr)ÚsuperrÚsetÚ_readersÚ_writersr ©Ú __class__rrr%s zSelectSelector.__init__Ncs@tƒ |||¡}|t@r&|j |j¡|t@r<|j |j¡|Sr)rKr0rCrMÚaddrrDrNrErOrrr0*s zSelectSelector.registercs,tƒ |¡}|j |j¡|j |j¡|Sr)rKr1rMÚdiscardrrNrArOrrr12s zSelectSelector.unregisterZwin32cCs$t ||||¡\}}}|||gfSr)r4)rÚrÚwÚ_r3ÚxrrrÚ_select9szSelectSelector._selectc Csº|dkr dnt|dƒ}g}z| |j|jg|¡\}}}Wntk rP|YSXt|ƒ}t|ƒ}||BD]J}d}||kr‚|tO}||kr’|tO}| |¡}|rj|  |||j @f¡qj|S©Nr) ÚmaxrWrMrNÚInterruptedErrorrLrCrDrIÚappendr) rr3ÚreadyrSrTrUrrrBrrrr4?s$   zSelectSelector.select)N)N)N) r)r*r+rr0r1ÚsysÚplatformrWr4Ú __classcell__rrrOrrJ"s    rJcsZeZdZdZdZdZ‡fdd„Zd ‡fdd„ Z‡fdd„Zd ‡fdd „ Z dd d „Z ‡Z S)Ú_PollLikeSelectorNcstƒ ¡| ¡|_dSr)rKrÚ _selector_clsrr rOrrr[s z_PollLikeSelector.__init__csltƒ |||¡}d}|t@r&||jO}|t@r8||jO}z|j |j|¡Wntƒ |¡‚YnX|SrX) rKr0rCÚ _EVENT_READrDÚ _EVENT_WRITErrr1)rrrrrBZ poller_eventsrOrrr0_s   z_PollLikeSelector.registercs8tƒ |¡}z|j |j¡Wntk r2YnX|Sr)rKr1rrÚOSErrorrArOrrr1ms  z_PollLikeSelector.unregistercsÔz|j| |¡}Wn$tk r8t|›d�ƒd‚YnXd}||jkr¤d}|t@r^||jO}|t@rp||jO}z|j  |j |¡Wnt ƒ  |¡‚YnXd}||j kr²d}|rÐ|j||d�}||j|j <|S)Nz is not registeredFrT)rr)rr$r%rrCrbrDrcrr2rrKr1rrG)rrrrrBZchangedZselector_eventsrOrrr2ws.      z_PollLikeSelector.modifycCs¸|dkrd}n|dkrd}nt |d¡}g}z|j |¡}Wntk rV|YSX|D]V\}}d}||j@r||tO}||j@r�|tO}|  |¡}|r\|  |||j @f¡q\|S)Nrç@�@) ÚmathÚceilrÚpollrZrbrDrcrCrIr[r)rr3r\Ú fd_event_listrÚeventrrBrrrr4’s(     z_PollLikeSelector.select)N)N)N) r)r*r+rarbrcrr0r1r2r4r_rrrOrr`Us  r`rhc@seZdZejZejZejZ dS)Ú PollSelectorN) r)r*r+r4rhraÚPOLLINrbÚPOLLOUTrcrrrrrk±srkÚepollcs@eZdZejZejZejZ dd„Z ddd„Z‡fdd„Z ‡Z S) Ú EpollSelectorcCs |j ¡Sr©rr r rrrr ÀszEpollSelector.filenoNc CsÎ|dkrd}n |dkrd}nt |d¡d}tt|jƒdƒ}g}z|j ||¡}Wntk rl|YSX|D]V\}}d}|tj @r’|t O}|tj @r¦|t O}|  |¡}|rr| |||j@f¡qr|S)Néÿÿÿÿrregü©ñÒMbP?r)rfrgrYrrrrhrZr4ÚEPOLLINrDÚEPOLLOUTrCrIr[r) rr3Úmax_evr\rirrjrrBrrrr4Ãs*     zEpollSelector.selectcs|j ¡tƒ ¡dSr©rr5rKr rOrrr5ãs zEpollSelector.close)N) r)r*r+r4rnrarrrbrsrcr r5r_rrrOrroºs  roÚdevpollcs6eZdZejZejZejZ dd„Z ‡fdd„Z ‡Z S)ÚDevpollSelectorcCs |j ¡Srrpr rrrr ðszDevpollSelector.filenocs|j ¡tƒ ¡dSrrur rOrrr5ós zDevpollSelector.close) r)r*r+r4rvrarlrbrmrcr r5r_rrrOrrwês rwÚkqueuecsTeZdZ‡fdd„Zdd„Zd‡fdd„ Z‡fdd „Zdd d „Z‡fd d „Z‡Z S)ÚKqueueSelectorcstƒ ¡t ¡|_dSr)rKrr4rxrr rOrrrýs zKqueueSelector.__init__cCs |j ¡Srrpr rrrr szKqueueSelector.filenoNcs�tƒ |||¡}z`|t@r@t |jtjtj¡}|j  |gdd¡|t @rnt |jtj tj¡}|j  |gdd¡Wntƒ  |¡‚YnX|SrX) rKr0rCr4ÚkeventrÚKQ_FILTER_READZ KQ_EV_ADDrÚcontrolrDÚKQ_FILTER_WRITEr1)rrrrrBÚkevrOrrr0s  ÿ ÿ zKqueueSelector.registercs¤tƒ |¡}|jt@rVt |jtjtj¡}z|j   |gdd¡Wnt k rTYnX|jt @r t |jtj tj¡}z|j   |gdd¡Wnt k ržYnX|SrX)rKr1rrCr4rzrr{Z KQ_EV_DELETErr|rdrDr})rrrBr~rOrrr1s$   ÿ  ÿzKqueueSelector.unregisterc Cs¶|dkr dnt|dƒ}t|jƒ}g}z|j d||¡}Wntk rP|YSX|D]Z}|j}|j}d}|tj kr||t O}|tj krŽ|t O}|  |¡} | rV| | || j@f¡qV|SrX)rYrrrr|rZZidentÚfilterr4r{rCr}rDrIr[r) rr3rtr\Zkev_listr~rÚflagrrBrrrr4)s&     zKqueueSelector.selectcs|j ¡tƒ ¡dSrrur rOrrr5?s zKqueueSelector.close)N)N) r)r*r+rr r0r1r4r5r_rrrOrryús    ry) ÚabcrrÚ collectionsrZcollections.abcrrfr4r]rCrDrrÚ__doc__Ú version_inforrrrrr,r>rJr`ÚhasattrrkrorwryÚglobalsZDefaultSelectorrrrrÚsJ   ~T3Z  .  M