grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/20263 Õì2aîKã@sŠddlmZmZddlmZmZddlZddlZddlZd(Z d)Z dd„Z eddd d d gƒZ d e _ ejd*krŠde j_ de j_ de j_ de j_ Gdd„deƒZGdd„ded�ZGdd„deƒZGdd„deƒZeedƒræGdd„deƒZeedƒ�rGd d!„d!eƒZeed"ƒ�rGd#d$„d$eƒZeed%ƒ�r:Gd&d'„d'eƒZd'eƒk�rLeZn:d!eƒk�r^eZn(d$eƒk�rpeZndeƒk�r‚eZneZdS)+é)ÚABCMetaÚabstractmethod)Ú namedtupleÚMappingNéc Csft|tƒr|}nsz_SelectorMapping.__init__cCs t|jjƒS)N)ÚlenrÚ _fd_to_key)rrrrÚ__len__Asz_SelectorMapping.__len__c CsBy|jj|ƒ}|jj|Stk r<tdj|ƒƒd‚YnXdS)Nz{!r} is not registered)rÚ_fileobj_lookuprÚKeyErrorr )rrrrrrÚ __getitem__Ds   z_SelectorMapping.__getitem__cCs t|jjƒS)N)Úiterrr)rrrrÚ__iter__Ksz_SelectorMapping.__iter__N)Ú__name__Ú __module__Ú __qualname__rrr!r#rrrrr;src@sjeZdZeddd„ƒZedd„ƒZddd„Zeddd „ƒZd d „Zd d „Z edd„ƒZ dd„Z dd„Z dS)Ú BaseSelectorNcCst‚dS)N)ÚNotImplementedError)rrrrrrrÚregister^szBaseSelector.registercCst‚dS)N)r()rrrrrÚ unregisteruszBaseSelector.unregistercCs|j|ƒ|j|||ƒS)N)r*r))rrrrrrrÚmodifyˆs zBaseSelector.modifycCst‚dS)N)r()rÚtimeoutrrrÚselect™szBaseSelector.selectcCsdS)Nr)rrrrÚclose¬szBaseSelector.closec CsJ|jƒ}|dkrtdƒ‚y||Stk rDtdj|ƒƒd‚YnXdS)NzSelector is closedz{!r} is not registered)Úget_mapÚ RuntimeErrorr r )rrÚmappingrrrÚget_key³szBaseSelector.get_keycCst‚dS)N)r()rrrrr/ÁszBaseSelector.get_mapcCs|S)Nr)rrrrÚ __enter__ÆszBaseSelector.__enter__cGs |jƒdS)N)r.)rÚargsrrrÚ__exit__ÉszBaseSelector.__exit__)N)N)N) r$r%r&rr)r*r+r-r.r2r/r3r5rrrrr'Os     r')Ú metaclassc@sPeZdZdd„Zdd„Zddd„Zdd „Zdd d „Zd d „Zdd„Z dd„Z dS)Ú_BaseSelectorImplcCsi|_t|ƒ|_dS)N)rrÚ_map)rrrrrÐsz_BaseSelectorImpl.__init__c CsHyt|ƒStk rBx"|jjƒD]}|j|kr$|jSq$W‚YnXdS)N)rr rÚvaluesrr)rrÚkeyrrrrÖs   z!_BaseSelectorImpl._fileobj_lookupNcCsd| s|ttB@r"tdj|ƒƒ‚t||j|ƒ||ƒ}|j|jkrTtdj||jƒƒ‚||j|j<|S)NzInvalid events: {!r}z"{!r} (FD {}) is already registered) Ú EVENT_READÚ EVENT_WRITEr r rrrrr )rrrrr:rrrr)és   z_BaseSelectorImpl.registerc Cs@y|jj|j|ƒƒ}Wn$tk r:tdj|ƒƒd‚YnX|S)Nz{!r} is not registered)rÚpoprr r )rrr:rrrr*ös z_BaseSelectorImpl.unregisterc Cs„y|j|j|ƒ}Wn$tk r8tdj|ƒƒd‚YnX||jkr^|j|ƒ|j|||ƒ}n"||jkr€|j|d�}||j|j <|S)Nz{!r} is not registered)r) rrr r rr*r)rÚ_replacer)rrrrr:rrrr+ýs     z_BaseSelectorImpl.modifycCs|jjƒd|_dS)N)rÚclearr8)rrrrr. s z_BaseSelectorImpl.closecCs|jS)N)r8)rrrrr/sz_BaseSelectorImpl.get_mapc Cs$y |j|Stk rdSXdS)N)rr )rrrrrÚ _key_from_fds  z_BaseSelectorImpl._key_from_fd)N)N) r$r%r&rrr)r*r+r.r/r@rrrrr7Ís  r7cs\eZdZ‡fdd„Zd ‡fdd„ Z‡fdd„ZejdkrDdd d „Zne j Zdd d „Z ‡Z S)ÚSelectSelectorcstƒjƒtƒ|_tƒ|_dS)N)ÚsuperrÚsetÚ_readersÚ_writers)r)Ú __class__rrr%s zSelectSelector.__init__Ncs@tƒj|||ƒ}|t@r&|jj|jƒ|t@r<|jj|jƒ|S)N)rBr)r;rDÚaddrr<rE)rrrrr:)rFrrr)*s zSelectSelector.registercs,tƒj|ƒ}|jj|jƒ|jj|jƒ|S)N)rBr*rDÚdiscardrrE)rrr:)rFrrr*2s zSelectSelector.unregisterÚwin32cCs$tj||||ƒ\}}}|||gfS)N)r-)rÚrÚwÚ_r,ÚxrrrÚ_select9szSelectSelector._selectc Csº|dkr dnt|dƒ}g}y|j|j|jg|ƒ\}}}Wntk rL|SXt|ƒ}t|ƒ}xV||BD]J}d}||kr€|tO}||kr�|tO}|j|ƒ}|rh|j |||j @fƒqhW|S)Nr) ÚmaxrNrDrEÚInterruptedErrorrCr;r<r@Úappendr) rr,ÚreadyrJrKrLrrr:rrrr-?s$ zSelectSelector.select)N)N)N) r$r%r&rr)r*ÚsysÚplatformrNr-Ú __classcell__rr)rFrrA"s    rAÚpollcs@eZdZ‡fdd„Zd ‡fdd„ Z‡fdd„Zd dd „Z‡ZS) Ú PollSelectorcstƒjƒtjƒ|_dS)N)rBrr-rVÚ_poll)r)rFrrrZs zPollSelector.__init__NcsLtƒj|||ƒ}d}|t@r&|tjO}|t@r8|tjO}|jj|j|ƒ|S)Nr) rBr)r;r-ÚPOLLINr<ÚPOLLOUTrXr)rrrrr:Ú poll_events)rFrrr)^s  zPollSelector.registercstƒj|ƒ}|jj|jƒ|S)N)rBr*rXr)rrr:)rFrrr*hs zPollSelector.unregisterc Cs¸|dkrd}n|dkrd}ntj|dƒ}g}y|jj|ƒ}Wntk rR|SXx^|D]V\}}d}|tj@rz|tO}|tj@rŽ|t O}|j |ƒ}|rZ|j |||j @fƒqZW|S)Nrg@�@) ÚmathÚceilrXrVrPr-rYr<rZr;r@rQr)rr,rRÚ fd_event_listrÚeventrr:rrrr-ms(   zPollSelector.select)N)N)r$r%r&rr)r*r-rUrr)rFrrWWs  rWÚepollcsTeZdZ‡fdd„Zdd„Zd‡fdd„ Z‡fdd „Zdd d „Z‡fd d „Z‡Z S)Ú EpollSelectorcstƒjƒtjƒ|_dS)N)rBrr-r`Ú_epoll)r)rFrrr�s zEpollSelector.__init__cCs |jjƒS)N)rbr )rrrrr ‘szEpollSelector.filenoNc sttƒj|||ƒ}d}|t@r&|tjO}|t@r8|tjO}y|jj|j|ƒWn"t k rntƒj |ƒ‚YnX|S)Nr) rBr)r;r-ÚEPOLLINr<ÚEPOLLOUTrbrÚ BaseExceptionr*)rrrrr:Z epoll_events)rFrrr)”s   zEpollSelector.registerc s8tƒj|ƒ}y|jj|jƒWntk r2YnX|S)N)rBr*rbrÚOSError)rrr:)rFrrr*¢s  zEpollSelector.unregisterc CsÎ|dkrd}n |dkrd}ntj|dƒd}tt|jƒdƒ}g}y|jj||ƒ}Wntk rh|SXx^|D]V\}}d}|tj @r�|t O}|tj @r¤|t O}|j |ƒ}|rp|j|||j@fƒqpW|S)Nrrg@�@gü©ñÒMbP?éÿÿÿÿ)r\r]rOrrrbrVrPr-rcr<rdr;r@rQr) rr,Úmax_evrRr^rr_rr:rrrr-¬s*   zEpollSelector.selectcs|jjƒtƒjƒdS)N)rbr.rB)r)rFrrr.Ìs zEpollSelector.close)N)N) r$r%r&rr r)r*r-r.rUrr)rFrraŠs   raÚdevpollcsTeZdZ‡fdd„Zdd„Zd‡fdd„ Z‡fdd „Zdd d „Z‡fd d „Z‡Z S)ÚDevpollSelectorcstƒjƒtjƒ|_dS)N)rBrr-riÚ_devpoll)r)rFrrrÖs zDevpollSelector.__init__cCs |jjƒS)N)rkr )rrrrr ÚszDevpollSelector.filenoNcsLtƒj|||ƒ}d}|t@r&|tjO}|t@r8|tjO}|jj|j|ƒ|S)Nr) rBr)r;r-rYr<rZrkr)rrrrr:r[)rFrrr)Ýs  zDevpollSelector.registercstƒj|ƒ}|jj|jƒ|S)N)rBr*rkr)rrr:)rFrrr*çs zDevpollSelector.unregisterc Cs¸|dkrd}n|dkrd}ntj|dƒ}g}y|jj|ƒ}Wntk rR|SXx^|D]V\}}d}|tj@rz|tO}|tj@rŽ|t O}|j |ƒ}|rZ|j |||j @fƒqZW|S)Nrg@�@) r\r]rkrVrPr-rYr<rZr;r@rQr)rr,rRr^rr_rr:rrrr-ìs(   zDevpollSelector.selectcs|jjƒtƒjƒdS)N)rkr.rB)r)rFrrr.s zDevpollSelector.close)N)N) r$r%r&rr r)r*r-r.rUrr)rFrrjÓs    rjÚkqueuecsTeZdZ‡fdd„Zdd„Zd‡fdd„ Z‡fdd „Zdd d „Z‡fd d „Z‡Z S)ÚKqueueSelectorcstƒjƒtjƒ|_dS)N)rBrr-rlÚ_kqueue)r)rFrrrs zKqueueSelector.__init__cCs |jjƒS)N)rnr )rrrrr szKqueueSelector.filenoNc s˜tƒj|||ƒ}y`|t@r@tj|jtjtjƒ}|jj |gddƒ|t @rntj|jtj tjƒ}|jj |gddƒWn"t k r’tƒj |ƒ‚YnX|S)Nr)rBr)r;r-ÚkeventrÚKQ_FILTER_READZ KQ_EV_ADDrnÚcontrolr<ÚKQ_FILTER_WRITErer*)rrrrr:Úkev)rFrrr)s   zKqueueSelector.registercs¤tƒj|ƒ}|jt@rVtj|jtjtjƒ}y|j j |gddƒWnt k rTYnX|jt @r tj|jtj tjƒ}y|j j |gddƒWnt k ržYnX|S)Nr)rBr*rr;r-rorrpZ KQ_EV_DELETErnrqrfr<rr)rrr:rs)rFrrr*'s      zKqueueSelector.unregisterc Cs¶|dkr dnt|dƒ}t|jƒ}g}y|jjd||ƒ}Wntk rL|SXxb|D]Z}|j}|j}d}|tj krz|t O}|tj krŒ|t O}|j |ƒ} | rT|j| || j@fƒqTW|S)Nr)rOrrrnrqrPZidentÚfilterr-rpr;rrr<r@rQr) rr,rhrRZkev_listrsrÚflagrr:rrrr-<s&     zKqueueSelector.selectcs|jjƒtƒjƒdS)N)rnr.rB)r)rFrrr.Rs zKqueueSelector.close)N)N) r$r%r&rr r)r*r-r.rUrr)rFrrm s    rmré)rr)ÚabcrrÚ collectionsrrr\r-rSr;r<rrÚ__doc__Ú version_inforrrrrr'r7rAÚhasattrrWrarjrmÚglobalsZDefaultSelectorrrrrÚsF ~U3 1 G 8 M