§
    ïŽ’j%
  ã                  óÆ   — 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dS )é    )ÚannotationsN)ÚAsyncGeneratorÚAsyncIterableÚAsyncIteratorÚ	GeneratorÚIterableÚIterator)ÚasynccontextmanagerÚcontextmanager)Ú
isasyncgenÚTÚsockúsocket.socket | NoneÚreturnÚboolc                ó’  — | €dn|                       ¦   «         }|�|dk     rdS t          j        dk    st          t          dd¦  «        €+t	          j        |gg g d¦  «        \  }}}t          |¦  «        S t	          j        ¦   «         }|                     |t          j        ¦  «         t          |                     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Úselectr   r   ÚregisterÚPOLLIN)r   Úsock_fdÚrreadyÚ_Úps        ú>C:\Projects\DSCons\.venv\Lib\site-packages\httpcore2\_utils.pyÚis_socket_readabler!      s«   € ð �lˆdˆd¨¯ª©¬€GØ€˜' Aš+˜+Øˆtõ „|�wÒÐ¥'­&°&¸$Ñ"?Ô"?Ð"GÝ”} g Y°°B¸Ñ:Ô:‰ˆ��1Ý�F‰|Œ|ÐÝŒ‰Œ€AØ‡J‚Jˆw�œÑ&Ô&Ð&Ý�—’�q‘	”	‰?Œ?Ðó    Úiterable_or_iteratorú#AsyncIterable[T] | AsyncIterator[T]ú AsyncGenerator[AsyncIterator[T]]c              ó   K  — t          | t          ¦  «        r| n|                      ¦   «         }	 |W V — t          |¦  «        r|                     ¦   «         ƒ d {V —† d S d S # t          |¦  «        r|                     ¦   «         ƒ d {V —† w w xY w©N)Ú
isinstancer   Ú	__aiter__r   Úaclose©r#   Úiterators     r    Úsafe_async_iterater-   3   sÂ   è è € õ
 !+Ð+?ÅÑ OÔ OÐuÐÐÐUi×UsÒUsÑUuÔUuð ð$Øˆˆˆˆå�hÑÔð 	$Ø—/’/Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ð	$ð 	$ø�:�hÑÔð 	$Ø—/’/Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ð	$øøøs   ¯A! Á!,BúIterable[T] | Iterator[T]ú"Generator[Iterator[T], None, None]c             #  óh   K  — t          | t          ¦  «        r| n|                      ¦   «         }|V — d S r'   )r(   r	   Ú__iter__r+   s     r    Úsafe_iterater2   A   s=   è è € õ (2Ð2FÍÑ'QÔ'QÐvÐ#Ð#ÐWk×WtÒWtÑWvÔWv€HØ
€N€N€N€N€Nr"   )r   r   r   r   )r#   r$   r   r%   )r#   r.   r   r/   )Ú
__future__r   r   Úsocketr   ÚtypingÚcollections.abcr   r   r   r   r   r	   Ú
contextlibr
   r   Úinspectr   ÚTypeVarr   r!   r-   r2   © r"   r    ú<module>r;      s'  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 
€
€
€
Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ;Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø Ð Ð Ð Ð Ð à€F„N�3ÑÔ€ðð ð ð ð< ð
$ð 
$ð 
$ñ Ôð
$ð ðð ð ñ „ðð ð r"   