o
    'hG                     @  s   d dl mZ d dlZd dlZd dlmZ ddgZ			ddddZ			ddddZdddZ				dddda
ddddZddddZdS )    )annotationsN)partialwait_for_readwait_for_writeFsocksocket.socketreadboolwritetimeoutfloat | Nonereturnc           
      C  sb   |s|st dg }g }|r||  |r||  ttj|||}||\}}}	t|p/|p/|	S )N2must specify at least one of read=True, write=True)RuntimeErrorappendr   selectr	   )
r   r   r
   r   rcheckwcheckfnrreadywreadyxready r   M/var/www/html/olx_land/venv/lib/python3.10/site-packages/urllib3/util/wait.pyselect_wait_for_socket!   s   

r   c                   s^   |s|st dd}|r|tjO }|r|tjO }t   | | d	 fdd}t||S )
Nr   r   tr   r   list[tuple[int, int]]c                   s   | d ur| d9 }   | S )Ni  )poll)r   poll_objr   r   do_pollJ   s   
z%poll_wait_for_socket.<locals>.do_poll)r   r   r   r   )r   r   POLLINPOLLOUTr   registerr	   )r   r   r
   r   maskr    r   r   r   poll_wait_for_socket9   s   

r%   c               	   C  s2   zt  } | d W dS  ttfy   Y dS w )Nr   FT)r   r   AttributeErrorOSErrorr   r   r   r   _have_working_pollR   s   r(   c                 C  s(   t  rtanttdrtat| |||S )Nr   )r(   r%   wait_for_sockethasattrr   r   )r   r   r
   r   r   r   r   r)   _   s
   
r)   c                 C     t | d|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   r)   r   r   r   r   r   r   q      c                 C  r+   )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   r,   r-   r   r   r   r   x   r.   )FFN)
r   r   r   r	   r
   r	   r   r   r   r	   )r   r	   )N)r   r   r   r   r   r	   )
__future__r   r   socket	functoolsr   __all__r   r%   r(   r)   r   r   r   r   r   r   <module>   s(    
