
    &g                        S r SSKJr  SSKrSSKrSSKrSSKJrJrJ	r	  \
" \S5      =(       a     \R                  R                  S5      (       + r\" \S\5      rSS jr " S	 S
5      rg)zSelect / poll helper    )annotationsN)AnyOptionalcastpolljavaerrorc                    [        U S5      (       a  [        [        U R                  5      $ U R                  (       a  [        [        U R                  S   5      $ g )Nerrnor   )hasattrr   intr   args)excs    [C:\Suresh\moveshuttle\MDcreated\moveengine\venv\Lib\site-packages\pymongo/socket_checker.py_errno_from_exceptionr      s?    sGC##
xxC!%%    c                  J    \ rS rSrSS jr S         S	S jjrS
S jrSrg)SocketChecker%   c                b    U   [         (       a  [        R                  " 5       U l        g S U l        g )N)
_HAVE_POLLselectr   _poller)selfs    r   __init__SocketChecker.__init__&   s    :!;;=DLDLr   c                     U R                   (       a  [        R                  [        R                  -  nU(       a$  U[        R                  -  [        R
                  -  nU(       a  U[        R                  -  nU R                   R                  X5         Uc  SOUS-  nU R                   R                  U5      n[        U5      U R                   R                  U5        $ U(       a  U/O/ nU(       a  U/O/ n	[        R                  " XU/U5      n[        U5      $ ! U R                   R                  U5        f = f! [        [        4 a:  n
[        U
5      [        R                   [        R"                  4;   a   Sn
A
GM  e Sn
A
ff = f)zSelect for reads or writes with a timeout in seconds (or None).

Returns True if the socket is readable/writable, False on timeout.
Ni  )r   r   POLLERRPOLLHUPPOLLINPOLLPRIPOLLOUTregisterr   bool
unregisterany_SelectErrorOSErrorr   r   EINTREAGAIN)r   sockreadwritetimeoutmasktimeout_resrlistwlistr   s              r   r   SocketChecker.select-   s(    <<!>>FNN:D#fmm3fnnD#fnn4LL))$56 ,3?4$"ll//9
  $Cy//5&*TFE&+TFE --tfgFC s8O //5 !'* (-%++u||1LLs<   BD= /D D= !;D= D::D= =F-FFFc                z     U R                  USS9$ ! [        [        4 a    e [         a     g[         a     gf = f)z?Return True if we know socket has been closed, False otherwise.T)r,   )r   RuntimeErrorKeyError
ValueError	Exception)r   r+   s     r   socket_closedSocketChecker.socket_closedW   sM    	;;t$;//h' 	
  	  	 	s    :	::)r   N)returnNone)FFr   )
r+   r   r,   r$   r-   r$   r.   zOptional[float]r<   r$   )r+   r   r<   r$   )__name__
__module____qualname____firstlineno__r   r   r:   __static_attributes__ r   r   r   r   %   sA      ^_((#(48(KZ(	(Tr   r   )r   BaseExceptionr<   zOptional[int])__doc__
__future__r   r   r   systypingr   r   r   r   platform
startswithr   getattrr(   r'   r   r   rC   r   r   <module>rL      s`     "   
 & & VV$LS\\-D-DV-L)L
vw0D Dr   