grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|jPLã@sš ddlmZmZddlmZddlmZddlZddlZddl Z dZ dZ dd„Z ed gd ¢ƒZ d e _e jd krHd e j_de j_de j_de j_Gdd„deƒZGdd„ded�ZGdd„deƒZGdd„deƒZGdd„deƒZeedƒr~Gdd„deƒZeedƒr‹Gd d!„d!eƒZeed"ƒr˜Gd#d$„d$eƒZeed%ƒr¥Gd&d'„d'eƒZd(d)„Zed%ƒr±eZdSedƒr¹eZdSed"ƒrÁeZdSedƒrÉeZdSeZdS)*é)ÚABCMetaÚabstractmethod)Ú namedtuple)ÚMappingNééc Csb t|tƒr |}nzt| ¡ƒ}Wntttfy#td |¡ƒd‚w|dkr/td |¡ƒ‚|S)NzInvalid file object: {!r}rzInvalid file descriptor: {})Ú isinstanceÚintÚfilenoÚAttributeErrorÚ TypeErrorÚ ValueErrorÚformat)ÚfileobjÚfd©rú0/opt/alt/python310/lib64/python3.10/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.eZdZ dd„Zdd„Zdd„Zdd„Zd S) Ú_SelectorMappingcCs ||_dS©N)Ú _selector)ÚselfÚselectorrrrÚ__init__@ó z_SelectorMapping.__init__cCó t|jjƒSr)ÚlenrÚ _fd_to_key©rrrrÚ__len__Có z_SelectorMapping.__len__cCs:z |j |¡}|jj|WStytd |¡ƒd‚w©Nú{!r} is not registered)rÚ_fileobj_lookupr"ÚKeyErrorr)rrrrrrÚ __getitem__Fs   ÿz_SelectorMapping.__getitem__cCr r)Úiterrr"r#rrrÚ__iter__Mr%z_SelectorMapping.__iter__N)Ú__name__Ú __module__Ú __qualname__rr$r*r,rrrrr=s  rc@sleZdZ eddd„ƒZedd„ƒZddd„Zeddd „ƒZd d „Zd d „Z edd„ƒZ dd„Z dd„Z dS)Ú BaseSelectorNcCó t‚r©ÚNotImplementedError©rrrrrrrÚregister`szBaseSelector.registercCr1rr2)rrrrrÚ unregisterwózBaseSelector.unregistercCs | |¡| |||¡Sr)r6r5r4rrrÚmodifyŠs zBaseSelector.modifycCr1rr2)rÚtimeoutrrrÚselect›r7zBaseSelector.selectcCs dSrrr#rrrÚclose®szBaseSelector.closecCsD | ¡}|dur tdƒ‚z||WSty!td |¡ƒd‚w)NzSelector is closedr')Úget_mapÚ RuntimeErrorr)r)rrÚmappingrrrÚget_keyµs  ÿzBaseSelector.get_keycCr1rr2r#rrrr<ÃszBaseSelector.get_mapcCs|Srrr#rrrÚ __enter__ÈszBaseSelector.__enter__cGs | ¡dSr)r;)rÚargsrrrÚ__exit__Ër%zBaseSelector.__exit__r) r-r.r/rr5r6r8r:r;r?r<r@rBrrrrr0Qs      r0)Ú metaclassc@sReZdZ dd„Zdd„Zddd„Zdd „Zdd d „Zd d „Zdd„Z dd„Z dS)Ú_BaseSelectorImplcCsi|_t|ƒ|_dSr)r"rÚ_mapr#rrrrÒsz_BaseSelectorImpl.__init__cCsF zt|ƒWSty"|j ¡D]}|j|ur |jYSq‚wr)rr r"Úvaluesrr©rrÚkeyrrrr(Øs   ÿúz!_BaseSelectorImpl._fileobj_lookupNcCsb|r |ttB@rtd |¡ƒ‚t|| |¡||ƒ}|j|jvr)td ||j¡ƒ‚||j|j<|S)NzInvalid events: {!r}z"{!r} (FD {}) is already registered) Ú EVENT_READÚ EVENT_WRITEr rrr(rr"r)©rrrrrHrrrr5ës  ÿ z_BaseSelectorImpl.registercCs8z |j | |¡¡}W|Stytd |¡ƒd‚wr&)r"Úpopr(r)rrGrrrr6øs  þÿz_BaseSelectorImpl.unregistercCs€z |j| |¡}Wntytd |¡ƒd‚w||jkr-| |¡| |||¡}|S||jkr>|j|d�}||j|j <|S)Nr')r) r"r(r)rrr6r5rÚ_replacerrKrrrr8ÿs ÿ   ü  z_BaseSelectorImpl.modifycCs|j ¡d|_dSr)r"ÚclearrEr#rrrr; s  z_BaseSelectorImpl.closecCs|jSr)rEr#rrrr<sz_BaseSelectorImpl.get_mapcCs$ z|j|WStyYdSwr)r"r))rrrrrÚ _key_from_fds   ÿz_BaseSelectorImpl._key_from_fdr) r-r.r/rr(r5r6r8r;r<rOrrrrrDÏs   rDcs^eZdZ ‡fdd„Zd ‡fdd„ Z‡fdd„Zejdkr#d d d „Zne j Zd d 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)rQr5rIrSÚaddrrJrTrKrUrrr5+s zSelectSelector.registercs,tƒ |¡}|j |j¡|j |j¡|Sr)rQr6rSÚdiscardrrTrGrUrrr63s zSelectSelector.unregisterZwin32cCs$t ||||¡\}}}|||gfSr)r:)rÚrÚwÚ_r9ÚxrrrÚ_select:szSelectSelector._selectc Cs¸|durdnt|dƒ}g}z| |j|jg|¡\}}}Wn ty'|YSwt|ƒ}t|ƒ}||BD]%}d}||vr@|tO}||vrH|tO}| |¡}|rY|  |||j @f¡q4|S©Nr) Úmaxr]rSrTÚInterruptedErrorrRrIrJrOÚappendr) rr9ÚreadyrYrZr[rrrHrrrr:@s( ÿ  €zSelectSelector.selectr) r-r.r/rr5r6ÚsysÚplatformr]r:Ú __classcell__rrrUrrP#s    rPcs\eZdZ dZdZdZ‡fdd„Zd ‡fdd„ Z‡fdd„Zd ‡fdd „ Z d d d „Z ‡Z S) Ú_PollLikeSelectorNcstƒ ¡| ¡|_dSr)rQrÚ _selector_clsrr#rUrrr\ó z_PollLikeSelector.__init__csdtƒ |||¡}d}|t@r||jO}|t@r||jO}z |j |j|¡W|Stƒ |¡‚r^) rQr5rIÚ _EVENT_READrJÚ _EVENT_WRITErrr6)rrrrrHZ poller_eventsrUrrr5`s  ý z_PollLikeSelector.registercs6tƒ |¡}z |j |j¡W|StyY|Swr)rQr6rrÚOSErrorrGrUrrr6ns  üüz_PollLikeSelector.unregistercsÈz |j| |¡}Wntyt|›d�ƒd‚wd}||jkrLd}|t@r,||jO}|t@r5||jO}z |j  |j |¡Wn t ƒ  |¡‚d}||j krSd}|rb|j||d�}||j|j <|S)Nz is not registeredFrT)rr)r"r(r)rrIrirJrjrr8rrQr6rrM)rrrrrHZchangedZselector_eventsrUrrr8xs0 ÿ      z_PollLikeSelector.modifycCs¶|durd}n|dkrd}nt |d¡}g}z|j |¡}Wn ty*|YSw|D]+\}}d}||j@r=|tO}||j@rG|tO}|  |¡}|rX|  |||j @f¡q-|S)Nrç@�@) ÚmathÚceilrÚpollr`rirJrjrIrOrar)rr9rbÚ fd_event_listrÚeventrrHrrrr:“s, ÿ    €z_PollLikeSelector.selectr) r-r.r/rgrirjrr5r6r8r:rerrrUrrfVs   rfroc@s eZdZ ejZejZejZ dS)Ú PollSelectorN) r-r.r/r:rorgÚPOLLINriÚPOLLOUTrjrrrrrr²s  rrÚepollcsBeZdZ ejZejZejZ dd„Z ddd„Z‡fdd„Z ‡Z S) Ú EpollSelectorcCó |j ¡Sr©rr r#rrrr ÁrzEpollSelector.filenoNc CsÌ|durd}n|dkrd}n t |d¡d}tt|jƒdƒ}g}z |j ||¡}Wn ty5|YSw|D]+\}}d}|tj @rH|t O}|tj @rR|t O}|  |¡}|rc| |||j@f¡q8|S)Néÿÿÿÿrrlgü©ñÒMbP?r)rmrnr_r!r"rror`r:ÚEPOLLINrJÚEPOLLOUTrIrOrar) rr9Úmax_evrbrprrqrrHrrrr:Äs. ÿ    €zEpollSelector.selectcó|j ¡tƒ ¡dSr©rr;rQr#rUrrr;ärhzEpollSelector.closer) r-r.r/r:rurgrzrir{rjr r;rerrrUrrv»s  rvÚdevpollcs8eZdZ ejZejZejZ dd„Z ‡fdd„Z ‡Z S)ÚDevpollSelectorcCrwrrxr#rrrr ñrzDevpollSelector.filenocr}rr~r#rUrrr;ôrhzDevpollSelector.close) r-r.r/r:rrgrsrirtrjr r;rerrrUrr€ësr€ÚkqueuecsVeZdZ ‡fdd„Zdd„Zd‡fdd„ Z‡fdd „Zdd d „Z‡fd d „Z‡Z S)ÚKqueueSelectorcstƒ ¡t ¡|_dSr)rQrr:r�rr#rUrrrþrhzKqueueSelector.__init__cCrwrrxr#rrrr rzKqueueSelector.filenoNcsŽtƒ |||¡}z4|t@r t |jtjtj¡}|j  |gdd¡|t @r:t |jtj tj¡}|j  |gdd¡W|SW|Stƒ  |¡‚r^) rQr5rIr:ÚkeventrÚKQ_FILTER_READZ KQ_EV_ADDrÚcontrolrJÚKQ_FILTER_WRITEr6)rrrrrHÚkevrUrrr5s$ ÿ ÿùý zKqueueSelector.registercs¤tƒ |¡}|jt@r*t |jtjtj¡}z |j   |gdd¡Wn t y)Ynw|jt @rPt |jtj tj¡}z |j   |gdd¡W|St yOY|Sw|Sr^)rQr6rrIr:rƒrr„Z KQ_EV_DELETErr…rkrJr†)rrrHr‡rUrrr6s,   ÿ ý  ÿ ýýzKqueueSelector.unregisterc Csº|durdnt|dƒ}tt|jƒdƒ}g}z |j d||¡}Wn ty*|YSw|D]-}|j}|j}d}|tj kr@|t O}|tj krI|t O}|  |¡} | rZ| | || j@f¡q-|S)Nrr)r_r!r"rr…r`ZidentÚfilterr:r„rIr†rJrOrar) rr9r|rbZkev_listr‡rÚflagrrHrrrr:*s* ÿ   €zKqueueSelector.selectcr}rr~r#rUrrr;CrhzKqueueSelector.closer) r-r.r/rr r5r6r:r;rerrrUrr‚ûs   r‚cCs\ tt|dƒ}|dur dSz|ƒ}|dkr| d¡WdS| ¡WdSty-YdSw)NFrorT)Úgetattrr:ror;rk)ÚmethodrZ selector_objrrrÚ_can_useHs  ÿ ÿrŒ) ÚabcrrÚ collectionsrZcollections.abcrrmr:rcrIrJrrÚ__doc__Ú version_inforrrrrr0rDrPrfÚhasattrrrrvr€r‚rŒZDefaultSelectorrrrrÚsP   ~T3 Z  . M