
    osj	                        d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZ d dlmZmZ d dlmZ  ej$                  d      Zd
dZe	 	 	 	 dd       Zedd	       Zy)    )annotationsN)AsyncGeneratorAsyncIterableAsyncIterator	GeneratorIterableIterator)asynccontextmanagercontextmanager)
isasyncgenTc                n   | dn| j                         }||dk  ryt        j                  dk(  st        t        dd      (t	        j                  |gg g d      \  }}}t        |      S t	        j                         }|j                  |t        j                         t        |j                  d            S )z
    Return whether a socket, as identified by its file descriptor, is readable.
    "A socket is readable" means that the read buffer isn't empty, i.e. that calling
    .recv() on it would immediately return some data.
    Nr   Twin32poll)	filenosysplatformgetattrselectboolr   registerPOLLIN)socksock_fdrready_ps        C/root/.hermes/venv/lib/python3.12/site-packages/httpcore2/_utils.pyis_socket_readabler      s     ldG'A+ ||w'&&$"?"G}}gYB:1F|AJJw&q	?    c                 K   t        | t              r| n| j                         }	 | t        |      r|j	                          d {    y y 7 # t        |      r|j	                          d {  7   w w xY wwN)
isinstancer   	__aiter__r   acloseiterable_or_iteratoriterators     r   safe_async_iterater)   3   sq     
 !++? OUiUsUsUu $h//###  # h//###  s3   #A<A A<	A
A<A91A42A99A<c             #  X   K   t        | t              r| n| j                         }| y wr"   )r#   r	   __iter__r&   s     r   safe_iterater,   A   s)      (22F'Q#WkWtWtWvH
Ns   (*)r   zsocket.socket | Nonereturnr   )r'   z#AsyncIterable[T] | AsyncIterator[T]r-   z AsyncGenerator[AsyncIterator[T]])r'   zIterable[T] | Iterator[T]r-   z"Generator[Iterator[T], None, None])
__future__r   r   socketr   typingcollections.abcr   r   r   r   r   r	   
contextlibr
   r   inspectr   TypeVarr   r   r)   r,    r    r   <module>r6      ss    "   
   ; FNN3< 
$=
$%
$ 
$  r    