grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?hPLã@sžddlmZmZddlmZddlmZddlZddlZddl Z dZ dZ dd„Z ed gd ¢ƒZ d e _e jd krŽd e j_de j_de j_de j_Gdd„deƒZGdd„ded�ZGdd„deƒZGdd„deƒZGdd„deƒZeedƒrúGdd„deƒZeedƒ�rGd d!„d!eƒZeed"ƒ�r2Gd#d$„d$eƒZeed%ƒ�rNGd&d'„d'eƒZd(d)„Zed%ƒ�rfeZn4edƒ�rveZn$ed"ƒ�r†eZnedƒ�r–eZneZdS)*é)ÚABCMetaÚabstractmethod)Ú namedtuple)ÚMappingNééc Csdt|tƒr|}n:zt| ¡ƒ}Wn(tttfyHtd |¡ƒd‚Yn0|dkr`td |¡ƒ‚|S)NzInvalid file object: {!r}rzInvalid file descriptor: {})Ú isinstanceÚintÚfilenoÚAttributeErrorÚ TypeErrorÚ ValueErrorÚformat)ÚfileobjÚfd©rú./opt/alt/python39/lib64/python3.9/selectors.pyÚ_fileobj_to_fds ÿÿrÚ SelectorKey)rrÚeventsÚdatazŸSelectorKey(fileobj, fd, events, data) Object used to associate a file object to its backing file descriptor, selected event mask, and attached data. )éézFile object registered.zUnderlying file descriptor.z3Events that must be waited for on this file object.zzOptional opaque data associated to this file object. For example, this could be used to store a per-client session ID.c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú_SelectorMappingcCs ||_dS©N)Ú _selector)ÚselfÚselectorrrrÚ__init__@sz_SelectorMapping.__init__cCs t|jjƒSr)ÚlenrÚ _fd_to_key©rrrrÚ__len__Csz_SelectorMapping.__len__cCsBz|j |¡}|jj|WSty<td |¡ƒd‚Yn0dS©Nú{!r} is not registered)rÚ_fileobj_lookupr ÚKeyErrorr)rrrrrrÚ __getitem__Fs   z_SelectorMapping.__getitem__cCs t|jjƒSr)Úiterrr r!rrrÚ__iter__Msz_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Ú unregisterwszBaseSelector.unregistercCs| |¡| |||¡Sr)r2r1r0rrrÚmodifyŠs zBaseSelector.modifycCst‚dSrr.)rÚtimeoutrrrÚselect›szBaseSelector.selectcCsdSrrr!rrrÚclose®szBaseSelector.closecCsJ| ¡}|durtdƒ‚z ||WStyDtd |¡ƒd‚Yn0dS)NzSelector is closedr$)Úget_mapÚ RuntimeErrorr&r)rrÚmappingrrrÚget_keyµs  zBaseSelector.get_keycCst‚dSrr.r!rrrr7ÃszBaseSelector.get_mapcCs|Srrr!rrrÚ __enter__ÈszBaseSelector.__enter__cGs | ¡dSr)r6)rÚargsrrrÚ__exit__ËszBaseSelector.__exit__)N)N)N) r*r+r,rr1r2r3r5r6r:r7r;r=rrrrr-Qs     r-)Ú metaclassc@sPeZdZdd„Zdd„Zddd„Zdd „Zdd d „Zd d „Zdd„Z dd„Z dS)Ú_BaseSelectorImplcCsi|_t|ƒ|_dSr)r rÚ_mapr!rrrrÒsz_BaseSelectorImpl.__init__cCsLz t|ƒWStyF|j ¡D]}|j|ur"|jYSq"‚Yn0dSr)rr r Úvaluesrr©rrÚkeyrrrr%Øs    z!_BaseSelectorImpl._fileobj_lookupNcCsb|r|ttB@r td |¡ƒ‚t|| |¡||ƒ}|j|jvrRtd ||j¡ƒ‚||j|j<|S)NzInvalid events: {!r}z"{!r} (FD {}) is already registered) Ú EVENT_READÚ EVENT_WRITEr rrr%rr r&©rrrrrCrrrr1ës ÿ z_BaseSelectorImpl.registercCs>z|j | |¡¡}Wn"ty8td |¡ƒd‚Yn0|Sr#)r Úpopr%r&rrBrrrr2øs  z_BaseSelectorImpl.unregistercCs‚z|j| |¡}Wn"ty6td |¡ƒd‚Yn0||jkr\| |¡| |||¡}n"||jkr~|j|d�}||j|j <|S)Nr$)r) r r%r&rrr2r1rÚ_replacerrFrrrr3ÿs      z_BaseSelectorImpl.modifycCs|j ¡d|_dSr)r Úclearr@r!rrrr6 s z_BaseSelectorImpl.closecCs|jSr)r@r!rrrr7sz_BaseSelectorImpl.get_mapcCs&z |j|WSty YdS0dSr)r r&)rrrrrÚ _key_from_fds   z_BaseSelectorImpl._key_from_fd)N)N) r*r+r,rr%r1r2r3r6r7rJrrrrr?Ï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)rLr1rDrNÚaddrrErOrFrPrrr1+s zSelectSelector.registercs,tƒ |¡}|j |j¡|j |j¡|Sr)rLr2rNÚdiscardrrOrBrPrrr23s zSelectSelector.unregisterZwin32cCs$t ||||¡\}}}|||gfSr)r5)rÚrÚwÚ_r4ÚxrrrÚ_select:szSelectSelector._selectc Cs¸|dur dnt|dƒ}g}z| |j|jg|¡\}}}WntyN|YS0t|ƒ}t|ƒ}||BD]J}d}||vr€|tO}||vr�|tO}| |¡}|rh|  |||j @f¡qh|S©Nr) ÚmaxrXrNrOÚInterruptedErrorrMrDrErJÚappendr) rr4ÚreadyrTrUrVrrrCrrrr5@s$    zSelectSelector.select)N)N)N) r*r+r,rr1r2ÚsysÚplatformrXr5Ú __classcell__rrrPrrK#s    rKcsZeZdZdZdZdZ‡fdd„Zd ‡fdd„ Z‡fdd„Zd ‡fdd „ Z dd d „Z ‡Z S)Ú_PollLikeSelectorNcstƒ ¡| ¡|_dSr)rLrÚ _selector_clsrr!rPrrr\s z_PollLikeSelector.__init__csltƒ |||¡}d}|t@r&||jO}|t@r8||jO}z|j |j|¡Wntƒ |¡‚Yn0|SrY) rLr1rDÚ _EVENT_READrEÚ _EVENT_WRITErrr2)rrrrrCZ poller_eventsrPrrr1`s   z_PollLikeSelector.registercs6tƒ |¡}z|j |j¡Wnty0Yn0|Sr)rLr2rrÚOSErrorrBrPrrr2ns   z_PollLikeSelector.unregistercsÒz|j| |¡}Wn"ty6t|›d�ƒd‚Yn0d}||jkr¢d}|t@r\||jO}|t@rn||jO}z|j  |j |¡Wnt ƒ  |¡‚Yn0d}||j kr°d}|rÎ|j||d�}||j|j <|S)Nz is not registeredFrT)rr)r r%r&rrDrcrErdrr3rrLr2rrH)rrrrrCZchangedZselector_eventsrPrrr3xs.       z_PollLikeSelector.modifycCs¶|durd}n|dkrd}nt |d¡}g}z|j |¡}WntyT|YS0|D]V\}}d}||j@rz|tO}||j@rŽ|tO}|  |¡}|rZ|  |||j @f¡qZ|S)Nrç@�@) ÚmathÚceilrÚpollr[rcrErdrDrJr\r)rr4r]Ú fd_event_listrÚeventrrCrrrr5“s(      z_PollLikeSelector.select)N)N)N) r*r+r,rbrcrdrr1r2r3r5r`rrrPrraVs  raric@seZdZejZejZejZ dS)Ú PollSelectorN) r*r+r,r5rirbÚPOLLINrcÚPOLLOUTrdrrrrrl²srlÚepollcs@eZdZejZejZejZ dd„Z ddd„Z‡fdd„Z ‡Z S) Ú EpollSelectorcCs |j ¡Sr©rr r!rrrr ÁszEpollSelector.filenoNc CsÌ|durd}n |dkrd}nt |d¡d}tt|jƒdƒ}g}z|j ||¡}Wntyj|YS0|D]V\}}d}|tj @r�|t O}|tj @r¤|t O}|  |¡}|rp| |||j@f¡qp|S)Néÿÿÿÿrrfgü©ñÒMbP?r)rgrhrZrr rrir[r5ÚEPOLLINrEÚEPOLLOUTrDrJr\r) rr4Úmax_evr]rjrrkrrCrrrr5Äs*      zEpollSelector.selectcs|j ¡tƒ ¡dSr©rr6rLr!rPrrr6äs zEpollSelector.close)N) r*r+r,r5rorbrsrcrtrdr r6r`rrrPrrp»s  rpÚdevpollcs6eZdZejZejZejZ dd„Z ‡fdd„Z ‡Z S)ÚDevpollSelectorcCs |j ¡Srrqr!rrrr ñszDevpollSelector.filenocs|j ¡tƒ ¡dSrrvr!rPrrr6ôs zDevpollSelector.close) r*r+r,r5rwrbrmrcrnrdr r6r`rrrPrrxës rxÚkqueuecsTeZdZ‡fdd„Zdd„Zd‡fdd„ Z‡fdd „Zdd d „Z‡fd d „Z‡Z S)ÚKqueueSelectorcstƒ ¡t ¡|_dSr)rLrr5ryrr!rPrrrþs zKqueueSelector.__init__cCs |j ¡Srrqr!rrrr szKqueueSelector.filenoNcs�tƒ |||¡}z`|t@r@t |jtjtj¡}|j  |gdd¡|t @rnt |jtj tj¡}|j  |gdd¡Wntƒ  |¡‚Yn0|SrY) rLr1rDr5ÚkeventrÚKQ_FILTER_READZ KQ_EV_ADDrÚcontrolrEÚKQ_FILTER_WRITEr2)rrrrrCÚkevrPrrr1s  ÿ ÿ zKqueueSelector.registercs tƒ |¡}|jt@rTt |jtjtj¡}z|j   |gdd¡Wnt yRYn0|jt @rœt |jtj tj¡}z|j   |gdd¡Wnt yšYn0|SrY)rLr2rrDr5r{rr|Z KQ_EV_DELETErr}rerEr~)rrrCrrPrrr2s$   ÿ   ÿ zKqueueSelector.unregisterc Csº|dur dnt|dƒ}tt|jƒdƒ}g}z|j d||¡}WntyT|YS0|D]Z}|j}|j}d}|tj kr€|t O}|tj kr’|t O}|  |¡} | rZ| | || j@f¡qZ|S)Nrr)rZrr rr}r[ZidentÚfilterr5r|rDr~rErJr\r) rr4rur]Zkev_listrrÚflagrrCrrrr5*s&     zKqueueSelector.selectcs|j ¡tƒ ¡dSrrvr!rPrrr6Cs zKqueueSelector.close)N)N) r*r+r,rr r1r2r5r6r`rrrPrrzûs    rzcCsZtt|dƒ}|durdSz(|ƒ}|dkr4| d¡n| ¡WdStyTYdS0dS)NFrirT)Úgetattrr5rir6re)ÚmethodrZ selector_objrrrÚ_can_useHs   r„) ÚabcrrÚ collectionsrÚcollections.abcrrgr5r^rDrErrÚ__doc__Ú version_inforrrrrr-r?rKraÚhasattrrlrprxrzr„ZDefaultSelectorrrrrÚsL   ~T3Z  .  M