
    <6h                         d dl Z d dlZd dlZd dlmZ 	 d dlmZ g dZ G d de	      Z
ej                  dk\  rd	 Znd
 ZddZddZd Zd Zd addZddZy# e$ r	 d dlmZ Y Lw xY w)    N)partial)	monotonic)time)NoWayToWaitForSocketErrorwait_for_readwait_for_writec                       e Zd Zy)r   N)__name__
__module____qualname__     b/var/www/panel.atabookie.online/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/wait.pyr   r      s    r   r   )      c                      | |      S Nr   )fntimeouts     r   _retry_on_intrr   *   s    '{r   c                 "   |t        d      }nt               |z   }	 	  | |      S # t        t        j                  f$ rO}|j
                  d   t        j                  k7  r |t               z
  }|dk  rd}|t        d      k(  rd }Y d }~md }~ww xY w)Ninfr   )floatr   OSErrorselecterrorargserrnoEINTR)r   r   deadlinees       r   r   r   /   s    ?U|H {W,H'{"V\\* 
66!9+&4G{"#%,."&
s   & BAB		Bc                     |s|st        d      g }g }|r|j                  |        |r|j                  |        t        t        j                  |||      }t	        ||      \  }}}	t        |xs |xs |	      S )N2must specify at least one of read=True, write=True)RuntimeErrorappendr   r   r   bool)
sockreadwriter   rcheckwcheckr   rreadywreadyxreadys
             r   select_wait_for_socketr/   F   sy    OPPFFdd 
	7B+B8FFF*&*F++r   c                     |s|st        d      d}|r|t        j                  z  }|r|t        j                  z  }t        j                         j                  | |       fd}t        t        ||            S )Nr#   r   c                 4    | | dz  } j                  |       S )Ni  )poll)tpoll_objs    r   do_pollz%poll_wait_for_socket.<locals>.do_polle   s     =IA}}Qr   )r$   r   POLLINPOLLOUTr2   registerr&   r   )r'   r(   r)   r   maskr5   r4   s         @r   poll_wait_for_socketr:   Y   so    OPPD{{}HdD! 
 w011r   c                      t        d      )Nzno select-equivalent available)r   r   kwargss     r   null_wait_for_socketr>   m   s    
#$D
EEr   c                      	 t        j                         } t        | j                  d       y# t        t        f$ r Y yw xY w)Nr   TF)r   r2   r   AttributeErrorr   )r4   s    r   _have_working_pollrA   q   s>    ;;=x}}a(  G$ s   *- ??c                  t    t               rt        ant        t        d      rt
        ant        at        | i |S )Nr   )rA   r:   wait_for_sockethasattrr   r/   r>   r<   s     r   rC   rC   ~   s3     .		"0.D+F++r   c                     t        | d|      S )zWaits for reading to be available on a given socket.
    Returns True if the socket is readable, or False if the timeout expired.
    T)r(   r   rC   r'   r   s     r   r   r      s     4dG<<r   c                     t        | d|      S )zWaits for writing to be available on a given socket.
    Returns True if the socket is readable, or False if the timeout expired.
    T)r)   r   rF   rG   s     r   r   r      s     4tW==r   )FFNr   )r   r   sys	functoolsr   r   r   ImportError__all__	Exceptionr   version_infor   r/   r:   r>   rA   rC   r   r   r   r   r   <module>rO      s      
 ' K		 	4 v
.,&2(F
,=>Y  '&'s   A A'&A'