
    -hhL                        S SK JrJr  S SKJr  S SKJr  S SKrS SKrS SK	r	Sr
SrS r\" S/ S	Q5      rS
\l        S\R                  l        S\R                   l        S\R"                  l        S\R$                  l         " S S\5      r " S S\S9r " S S\5      r " S S\5      r " S S\5      r\" \S5      (       a   " S S\5      r\" \S5      (       a%  \R4                  ) r\R8                  ) r " S S\5      r\" \S 5      (       a   " S! S"\5      r\" \S#5      (       a   " S$ S%\5      r S& r!\!" S#5      (       a  \ r"g\!" S5      (       a  \r"g\!" S 5      (       a  \r"g\!" S5      (       a  \r"g\r"g)'    )ABCMetaabstractmethod)
namedtuple)MappingN      c                    [        U [        5      (       a  U nO [        U R                  5       5      nUS:  a  [        SR                  U5      5      eU$ ! [        [        [
        4 a    [        SR                  U 5      5      S ef = f)NzInvalid file object: {!r}r   zInvalid file descriptor: {})
isinstanceintfilenoAttributeError	TypeError
ValueErrorformat)fileobjfds     2/opt/python-3.13.8/usr/lib/python3.13/selectors.py_fileobj_to_fdr      s     '3	?W^^%&B 
Av6==bABBI 	:6 	? $$*F7O5:>?	?s   A 1BSelectorKey)r   r   eventsdatazSelectorKey(fileobj, fd, events, data)

    Object used to associate a file object to its backing
    file descriptor, selected event mask, and attached data.
zFile object registered.zUnderlying file descriptor.z3Events that must be waited for on this file object.zvOptional opaque data associated to this file object.
For example, this could be used to store a per-client session ID.c                   6    \ rS rSrS rS rS	S jrS rS rSr	g)
_SelectorMapping<   c                     Xl         g N	_selector)selfselectors     r   __init___SelectorMapping.__init__?   s    !    c                 @    [        U R                  R                  5      $ r   )lenr   
_fd_to_keyr   s    r   __len___SelectorMapping.__len__B   s    4>>,,--r#   Nc                     U R                   R                  U5      nU R                   R                  R                  X25      $ r   )r   _fileobj_lookupr&   get)r   r   defaultr   s       r   r,   _SelectorMapping.getE   s1    ^^++G4~~((,,R99r#   c                     U R                   R                  U5      nU R                   R                  R                  U5      nUc  [	        SR                  U5      5      eU$ N{!r} is not registered)r   r+   r&   r,   KeyErrorr   )r   r   r   keys       r   __getitem___SelectorMapping.__getitem__I   sQ    ^^++G4nn''++B/;3::7CDD
r#   c                 @    [        U R                  R                  5      $ r   )iterr   r&   r'   s    r   __iter___SelectorMapping.__iter__P   s    DNN--..r#   r   r   )
__name__
__module____qualname____firstlineno__r!   r(   r,   r4   r8   __static_attributes__ r#   r   r   r   <   s    ".:/r#   r   c                   ~    \ rS rSr\SS j5       r\S 5       rSS jr\SS j5       rS r	S r
\S	 5       rS
 rS rSrg)BaseSelectorT   Nc                     [         er   NotImplementedErrorr   r   r   r   s       r   registerBaseSelector.registerc   s
    * "!r#   c                     [         er   rD   )r   r   s     r   
unregisterBaseSelector.unregisterz   
    " "!r#   c                 H    U R                  U5        U R                  XU5      $ r   )rJ   rG   rF   s       r   modifyBaseSelector.modify   s!     	 }}Wd33r#   c                     [         er   rD   )r   timeouts     r   selectBaseSelector.select   rL   r#   c                     g r   r?   r'   s    r   closeBaseSelector.close   s    
 	r#   c                     U R                  5       nUc  [        S5      e X!   $ ! [         a    [        SR                  U5      5      S ef = f)NzSelector is closedr1   )get_mapRuntimeErrorr2   r   )r   r   mappings      r   get_keyBaseSelector.get_key   sY     ,,.?344	O## 	O3::7CD$N	Os	   $ &A
c                     [         er   rD   r'   s    r   rX   BaseSelector.get_map   s
     "!r#   c                     U $ r   r?   r'   s    r   	__enter__BaseSelector.__enter__   s    r#   c                 $    U R                  5         g r   )rU   )r   argss     r   __exit__BaseSelector.__exit__   s    

r#   r?   r   )r:   r;   r<   r=   r   rG   rJ   rN   rR   rU   r[   rX   r`   rd   r>   r?   r#   r   rA   rA   T   sl     " ", " "$4" " "$O " "r#   rA   )	metaclassc                   F    \ rS rSrS rS rSS jrS rSS jrS r	S	 r
S
rg)_BaseSelectorImpl   c                 2    0 U l         [        U 5      U l        g r   )r&   r   _mapr'   s    r   r!   _BaseSelectorImpl.__init__   s    $T*	r#   c                      [        U5      $ ! [         aB    U R                  R                  5        H"  nUR                  UL d  M  UR
                  s  s $    e f = fr   )r   r   r&   valuesr   r   r   r   r3   s      r   r+   !_BaseSelectorImpl._fileobj_lookup   sR    	!'** 	--/;;')66M 0 	s   
 4AAANc                 V   U(       a  U[         [        -  ) -  (       a  [        SR                  U5      5      e[	        XR                  U5      X#5      nUR                  U R                  ;   a$  [        SR                  XR                  5      5      eX@R                  UR                  '   U$ )NzInvalid events: {!r}z"{!r} (FD {}) is already registered)	
EVENT_READEVENT_WRITEr   r   r   r+   r   r&   r2   r   r   r   r   r3   s        r   rG   _BaseSelectorImpl.register   s    FzK'?%@@3::6BCC'#7#7#@&O66T__$?"F7FF35 5 #&
r#   c                      U R                   R                  U R                  U5      5      nU$ ! [         a    [        SR	                  U5      5      S ef = fr0   )r&   popr+   r2   r   ro   s      r   rJ   _BaseSelectorImpl.unregister   sZ    	O//%%d&:&:7&CDC 
  	O3::7CD$N	Os	   *. &Ac                 j    U R                   U R                  U5         nX$R                  :w  a%  U R                  U5        U R                  XU5      nU$ X4R                  :w  a'  UR                  US9nX@R                   UR                  '   U$ ! [         a    [        SR                  U5      5      S ef = f)Nr1   )r   )
r&   r+   r2   r   r   rJ   rG   r   _replacer   rt   s        r   rN   _BaseSelectorImpl.modify  s    	O//$"6"6w"?@C ZZOOG$--6C
 
	 XX,,D,)C&)OOCFF#
  	O3::7CD$N	Os   B &B2c                 F    U R                   R                  5         S U l        g r   )r&   clearrk   r'   s    r   rU   _BaseSelectorImpl.close  s    	r#   c                     U R                   $ r   )rk   r'   s    r   rX   _BaseSelectorImpl.get_map  s    yyr#   )r&   rk   r   )r:   r;   r<   r=   r!   r+   rG   rJ   rN   rU   rX   r>   r?   r#   r   rh   rh      s%    +&r#   rh   c                      ^  \ rS rSrU 4S jrS	U 4S jjrU 4S jr\R                  S:X  a  S	S jr	O\
R                  r	S	S jr
SrU =r$ )
SelectSelectori  c                 ^   > [         TU ]  5         [        5       U l        [        5       U l        g r   )superr!   set_readers_writersr   	__class__s    r   r!   SelectSelector.__init__  s     r#   c                    > [         TU ]  XU5      nU[        -  (       a%  U R                  R	                  UR
                  5        U[        -  (       a%  U R                  R	                  UR
                  5        U$ r   )r   rG   rr   r   addr   rs   r   )r   r   r   r   r3   r   s        r   rG   SelectSelector.register!  sU    gw5JMMcff%KMMcff%
r#   c                    > [         TU ]  U5      nU R                  R                  UR                  5        U R
                  R                  UR                  5        U$ r   )r   rJ   r   discardr   r   r   r   r3   r   s      r   rJ   SelectSelector.unregister)  sC    g )cff%cff%
r#   win32c                 D    [         R                   " XX$5      u  pnXU-   / 4$ r   )rR   )r   rw_rQ   xs         r   _selectSelectSelector._select0  s$    mmA!5GA!!eR<r#   c                    Uc  S O[        US5      n/ n U R                  U R                  U R                  / U5      u  p4n[        U5      n[        U5      nX4-  nU R                  R                  nU HV  nU" U5      n	U	(       d  M  X;   =(       a    [        X;   =(       a    [        -  n
UR                  XU	R                  -  45        MX     U$ ! [         a    Us $ f = fNr   )maxr   r   r   InterruptedError	frozensetr&   r,   rr   rs   appendr   )r   rQ   readyr   r   r   rwfd_to_key_getr   r3   r   s              r   rR   SelectSelector.select6  s    !/$s7A	ll4==$--WMGA! aLaLU++B#Cs71zW46cCJJ#678     	L	s   +C CC)r   r   r   )r:   r;   r<   r=   r!   rG   rJ   sysplatformr   rR   r>   __classcell__r   s   @r   r   r     s:    
 ||w	  -- r#   r   c                   j   ^  \ rS rSrSrSrSrU 4S jrS	U 4S jjrU 4S jr	S	U 4S jjr
S	S jrSrU =r$ )
_PollLikeSelectoriJ  Nc                 L   > [         TU ]  5         U R                  5       U l        g r   )r   r!   _selector_clsr   r   s    r   r!   _PollLikeSelector.__init__P  s    ++-r#   c                   > [         TU ]  XU5      nU[        -  =(       a    U R                  U[        -  =(       a    U R
                  -  n U R                  R                  UR                  U5        U$ !   [         TU ]!  U5        e = fr   )	r   rG   rr   _EVENT_READrs   _EVENT_WRITEr   r   rJ   )r   r   r   r   r3   poller_eventsr   s         r   rG   _PollLikeSelector.registerT  s}    gw5 :-B$2B2B"[0FT5F5FH	NN##CFFM: 
	Gw's   &A4 4Bc                    > [         TU ]  U5      n U R                  R                  UR                  5        U$ ! [         a     U$ f = fr   )r   rJ   r   r   OSErrorr   s      r   rJ   _PollLikeSelector.unregister_  sO    g )	NN%%cff-
 
	  	 
		s   %9 
AAc                   >  U R                   U R                  U5         nSnX$R                  :w  ab  U[        -  =(       a    U R
                  U[        -  =(       a    U R                  -  n U R                  R                  UR                  U5        SnX4R                  :w  a  SnU(       a'  UR                  X#S9nX@R                   UR                  '   U$ ! [         a    [        U< S35      S ef = f!   [        TU ]1  U5        e = f)Nz is not registeredFT)r   r   )r&   r+   r2   r   rr   r   rs   r   r   rN   r   r   rJ   r   rz   )r   r   r   r   r3   changedselector_eventsr   s          r   rN   _PollLikeSelector.modifyi  s    	G//$"6"6w"?@C ZZ & 3 H8H8H"(;"6"L4;L;L NO%%cffo> G88G,,f,8C&)OOCFF#
'  	Gg[(:;<$F	G"7+s   C ,&C3 C03Dc                    Uc  S nO"US::  a  SnO[         R                  " US-  5      n/ n U R                  R                  U5      nU R
                  R                  nU Hn  u  pVU" U5      nU(       d  M  X`R                  ) -  =(       a    [        X`R                  ) -  =(       a    [        -  nUR                  XxUR                  -  45        Mp     U$ ! [         a    Us $ f = f)Nr        @@)mathceilr   pollr   r&   r,   r   rs   r   rr   r   r   )	r   rQ   r   fd_event_listr   r   eventr3   r   s	            r   rR   _PollLikeSelector.select  s     ?G\G ii#.G	 NN//8M ++&IB#Cs $4$4#44D#'8'8&88GZIcCJJ#678 '    	L	s   C C"!C"r   r   )r:   r;   r<   r=   r   r   r   r!   rG   rJ   rN   rR   r>   r   r   s   @r   r   r   J  s0    MKL.	0 r#   r   r   c                   \    \ rS rSr\R
                  r\R                  r\R                  r
Srg)PollSelectori  r?   N)r:   r;   r<   r=   rR   r   r   POLLINr   POLLOUTr   r>   r?   r#   r   r   r     s    mm~~r#   r   epollc                      ^  \ rS rSr\R
                  r\R                  r\R                  r
S rSS jrU 4S jrSrU =r$ )EpollSelectori  c                 6    U R                   R                  5       $ r   r   r   r'   s    r   r   EpollSelector.fileno      >>((**r#   c                    Uc  SnO%US::  a  SnO[         R                  " US-  5      S-  n[        U R                  5      =(       d    Sn/ n U R                  R                  X5      nU R                  nU Hk  u  pgUR                  U5      nU(       d  M  U[        -  =(       a    [        U[        -  =(       a    [        -  n	UR                  XUR                  -  45        Mm     U$ ! [         a    Us $ f = f)Nr   r   gMbP?r   )r   r   r%   r&   r   r   r   r,   _NOT_EPOLLINrs   _NOT_EPOLLOUTrr   r   r   )
r   rQ   max_evr   r   	fd_to_keyr   r   r3   r   s
             r   rR   EpollSelector.select  s    A ))GcM2T9
 ).QFE $ 3 3G D I*	mmB'3$|3C!&!6!E:GFLL#

':!;< + L $ s   C' 'C65C6c                 V   > U R                   R                  5         [        TU ]  5         g r   r   rU   r   r   s    r   rU   EpollSelector.close      NN  "GMOr#   r?   r   )r:   r;   r<   r=   rR   r   r   EPOLLINr   EPOLLOUTr   r   rU   r>   r   r   s   @r   r   r     s2    nn	+	<	 	r#   r   devpollc                   v   ^  \ rS rSr\R
                  r\R                  r\R                  r
S rU 4S jrSrU =r$ )DevpollSelectori  c                 6    U R                   R                  5       $ r   r   r'   s    r   r   DevpollSelector.fileno  r   r#   c                 V   > U R                   R                  5         [        TU ]  5         g r   r   r   s    r   rU   DevpollSelector.close  r   r#   r?   )r:   r;   r<   r=   rR   r   r   r   r   r   r   r   rU   r>   r   r   s   @r   r   r     s-    mm~~	+	 	r#   r   kqueuec                   `   ^  \ rS rSrU 4S jrS rS	U 4S jjrU 4S jrS	S jrU 4S jr	Sr
U =r$ )
KqueueSelectori  c                 d   > [         TU ]  5         [        R                  " 5       U l        SU l        g r   )r   r!   rR   r   r   _max_eventsr   s    r   r!   KqueueSelector.__init__  s#    G#]]_DN Dr#   c                 6    U R                   R                  5       $ r   r   r'   s    r   r   KqueueSelector.fileno  r   r#   c                 P  > [         TU ]  XU5      n U[        -  (       aq  [        R                  " UR
                  [        R                  [        R                  5      nU R                  R                  U/SS5        U =R                  S-  sl
        U[        -  (       aq  [        R                  " UR
                  [        R                  [        R                  5      nU R                  R                  U/SS5        U =R                  S-  sl
        U$ !   [         TU ]5  U5        e = fNr   r   )r   rG   rr   rR   keventr   KQ_FILTER_READ	KQ_EV_ADDr   controlr   rs   KQ_FILTER_WRITErJ   )r   r   r   r   r3   kevr   s         r   rG   KqueueSelector.register  s    '"7D9CJ& --0E0E(.(8(8:CNN**C5!Q7$$)$K' --0F0F(.(8(8:CNN**C5!Q7$$)$ J"7+s   C>D D%c                   > [         TU ]  U5      nUR                  [        -  (       ar  [        R
                  " UR                  [        R                  [        R                  5      nU =R                  S-  sl	         U R                  R                  U/SS5        UR                  [        -  (       at  [        R
                  " UR                  [        R                  [        R                  5      nU =R                  S-  sl	         U R                  R                  U/SS5        U$ U$ ! [         a     Nf = f! [         a     U$ f = f)Nr   r   )r   rJ   r   rr   rR   r   r   r   KQ_EV_DELETEr   r   r   r   rs   r   )r   r   r3   r   r   s       r   rJ   KqueueSelector.unregister  s   '$W-CzzJ&mmCFFF,A,A$*$7$79  A% NN**C5!Q7
 zzK'mmCFFF,B,B$*$7$79  A% NN**C5!Q7 J3J     Js$   =D) D9 )
D65D69
EEc                    Uc  S O[        US5      nU R                  =(       d    Sn/ n U R                  R                  S X!5      nU R
                  R                  nU H  nUR                  nUR                  nU" U5      n	U	(       d  M,  U[        R                  :H  =(       a    [        U[        R                  :H  =(       a    [        -  n
UR                  XU	R                  -  45        M     U$ ! [         a    Us $ f = fr   )r   r   r   r   r   r&   r,   identfilterrR   r   rr   r   rs   r   r   )r   rQ   r   r   kev_listr   r   r   flagr3   r   s              r   rR   KqueueSelector.select  s    %od3w?G %%*FE>>11$H !OO//MYYzz#B'3#v'<'<<K!%)?)?!?!OKQFLL#

':!;<   L $ s   C0 0C?>C?c                 V   > U R                   R                  5         [        TU ]  5         g r   r   r   s    r   rU   KqueueSelector.close3  r   r#   )r   r   r   )r:   r;   r<   r=   r!   r   rG   rJ   rR   rU   r>   r   r   s   @r   r   r     s&    	!
	+	$	.	.	 	r#   r   c                     [        [        U S 5      nUc  g U" 5       nU S:X  a  UR                  S5        gUR                  5         g! [         a     gf = f)NFr   r   T)getattrrR   r   rU   r   )methodr    selector_objs      r   _can_user   8  se     vvt,H
zVa     s   A A 
AA)#abcr   r   collectionsr   collections.abcr   r   rR   r   rr   rs   r   r   __doc__r   r   r   r   r   rA   rh   r   r   hasattrr   r   r   r   r   r   r   r   r   DefaultSelectorr?   r#   r   <module>r     s   ( " #   
 
2 (KL 
 8   6 R   E   /w /0{W {|C CN.& .bO) Od 66&( & 67NN?L__$M)) )X 69+  68M* M`4 H$Og#Oi%Of"O$Or#   