Ë
    Ü_Ëiç  ã                  óz   — d Z ddlmZ ddlZddlZddlmZmZmZ  e	ed«      Z
 eede«      Zd
d„Z G d„ d	«      Zy)zSelect / poll helperé    )ÚannotationsN)ÚAnyÚOptionalÚcastÚpollÚerrorc                ó¢   — t        | d«      rt        t        | j                  «      S | j                  rt        t        | j                  d   «      S y )NÚerrnor   )Úhasattrr   Úintr
   Úargs)Úexcs    úY/var/www/pod-logistic/pod-api/venv/lib/python3.12/site-packages/pymongo/socket_checker.pyÚ_errno_from_exceptionr      s<   € Üˆs�GÔÜ”C˜Ÿ™Ó#Ð#Ø
‡x‚xÜ”C˜Ÿ™ !™Ó%Ð%Øó    c                  ó:   — e Zd Zdd„Z	 d	 	 	 	 	 	 	 	 	 dd„Zdd„Zy)	ÚSocketCheckerc                óV   — |  t         rt        j                  «       | _        y d | _        y )N)Ú
_HAVE_POLLÚselectr   Ú_poller)Úselfs    r   Ú__init__zSocketChecker.__init__#   s   € ÙÝÜ!Ÿ;™;›=ˆD�LàˆD�Lr   c                óÚ  — 	 	 | j                   rÃt        j                  t        j                  z  }|r$|t        j                  z  t        j
                  z  }|r|t        j                  z  }| j                   j                  ||«       	 |€dn|dz  }| j                   j                  |«      }t        |«      | j                   j                  |«       S |r|gng }|r|gng }	t        j                  ||	|g|«      }t        |«      S # | j                   j                  |«       w xY w# t        t        f$ r7}
t        |
«      t        j                   t        j"                  fv rY d}
~
�Œc‚ d}
~
ww xY w)z”Select 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   zSocketChecker.select*   s,  € ð ðØ—<’<Ü!Ÿ>™>¬F¯N©NÑ:�DÙØ#¤f§m¡mÑ3´f·n±nÑD˜ÙØ#¤f§n¡nÑ4˜Ø—L‘L×)Ñ)¨$°Ô5ð6ð ,3¨?¡4ÀÈ$Á˜Ø"Ÿl™l×/Ñ/°Ó9˜ô
  $ C›yàŸ™×/Ñ/°Õ5á&*˜T™F°�EÙ&+˜T™F°�EÜ Ÿ-™-¨¨u°t°f¸gÓF�Cô ˜s›8�Oøð Ÿ™×/Ñ/°Õ5ûô !¤'Ð*ò Ü(¨Ó-´%·+±+¼u¿|¹|Ð1LÑLÝØûðús<   ƒBD$ Â.D Â6D$ Ã1D$ ÄD!Ä!D$ Ä$E*Ä3+E%Å$E%Å%E*c                óz   — 	 | j                  |d¬«      S # t        t        f$ r ‚ t        $ r Y yt        $ r Y yw xY w)z?Return True if we know socket has been closed, False otherwise.T)r)   )r   ÚRuntimeErrorÚKeyErrorÚ
ValueErrorÚ	Exception)r   r(   s     r   Úsocket_closedzSocketChecker.socket_closedT   sM   € ð	Ø—;‘;˜t¨$�;Ó/Ð/øÜœhÐ'ò 	ð
 Üò 	ñ Üò 	ñ ð	ús   ‚ •:¯:¹:N)ÚreturnÚNone)FFr   )
r(   r   r)   r!   r*   r!   r+   zOptional[float]r7   r!   )r(   r   r7   r!   )Ú__name__Ú
__module__Ú__qualname__r   r   r6   © r   r   r   r   "   sA   „ ó ð ^_ð(Øð(Ø#ð(Ø48ð(ØKZð(à	ó(ôTr   r   )r   ÚBaseExceptionr7   zOptional[int])Ú__doc__Ú
__future__r   r
   r   Útypingr   r   r   r   r   Úgetattrr%   r$   r   r   r<   r   r   ú<module>rB      sD   ðñ Ý "ã Û ß &Ñ &á�V˜VÓ$€
Ù�v˜w¨Ó0€ó÷Dò Dr   