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 )Nú2must specify at least one of read=True, write=True)ÚRuntimeErrorÚappendr   Úselectr	   )
r   r   r
   r   ÚrcheckÚwcheckÚfnÚrreadyÚwreadyÚxready© r   úQ/var/www/html/premium_crap/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 )z†Waits 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+   )z†Waits 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(    üü
ü