
    Lg                         d dl Z d dlZd dlZd dlmZ 	 d dlmZ n# e$ r	 d dlmZ Y nw xY w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dS )    N)partial)	monotonic)time)NoWayToWaitForSocketErrorwait_for_readwait_for_writec                       e Zd ZdS )r   N)__name__
__module____qualname__     Y/var/www/html/4nations/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/wait.pyr   r      s        Dr   r   )      c                      | |          S Nr   )fntimeouts     r   _retry_on_intrr   *   s    r'{{r   c                 <   |t          d          }nt                      |z   }	 	  | |          S # t          t          j        f$ rT}|j        d         t          j        k    r |t                      z
  }|dk     rd}|t          d          k    rd }Y d }~rd }~ww xY w)NinfTr   )floatr   OSErrorselecterrorargserrnoEINTR)r   r   deadlinees       r   r   r   /   s    ?U||HH {{W,H	r'{{"V\* 
 
 
6!9++&4G{{"#%,,.."&HHHH
s   
1 BA
BBFc                    |s|st          d          g }g }|r|                    |            |r|                    |            t          t          j        |||          }t	          ||          \  }}}	t          |p|p|	          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   s     Q QOPPPFF d d 
	7	7B+B88FFF*&*F+++r   c                    |s|st          d          d}|r|t          j        z  }|r|t          j        z  }t          j                                        | |           fd}t          t          ||                    S )Nr#   r   c                 <    | | dz  }                      |           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   s     Q QOPPPD  {}}HdD!!!         
 w00111r   c                       t          d          )Nzno select-equivalent available)r   r   kwargss     r   null_wait_for_socketr>   m   s    
#$D
E
EEr   c                      	 t          j                    } t          | j        d           dS # t          t          f$ r Y dS w xY w)Nr   TF)r   r2   r   AttributeErrorr   )r4   s    r   _have_working_pollrA   q   sT    ;==x}a((( t G$   uus   (, A Ac                      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   ~   sJ      /.		"	" /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      st     



      ' ' ' '&&&&&&&&' K
J
J	 	 	 	 		 	 	 	4 v   
  ., , , ,&2 2 2 2(F F F
 
 
, , ,= = = => > > > > >s    ))