
     @g                        d dl m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mZ ddlmZ ddlmZmZmZ  G d d	e          Z G d
 de          ZdS )    )annotationsN   )ConnectErrorConnectTimeout	ReadErrorReadTimeout
WriteErrorWriteTimeoutmap_exceptions)is_socket_readable   )SOCKET_OPTIONAsyncNetworkBackendAsyncNetworkStreamc                  H    e Zd ZddZdddZdddZddZ	 	 dd dZd!dZdS )"AnyIOStreamstreamanyio.abc.ByteStreamreturnNonec                    || _         d S N)_stream)selfr   s     L/var/www/piapp/venv/lib/python3.11/site-packages/httpcore/_backends/anyio.py__init__zAnyIOStream.__init__   s        N	max_bytesinttimeoutfloat | Nonebytesc                  K   t           t          t          j        t          t          j        t          t          j        t          i}t          |          5  t          j        |          5  	 | j	        
                    |           d {V 	 cd d d            cd d d            S # t          j        $ r Y d d d            d d d            dS w xY w# 1 swxY w Y   	 d d d            d S # 1 swxY w Y   d S )N)r   r   )TimeoutErrorr   anyioBrokenResourceErrorr   ClosedResourceErrorEndOfStreamr   
fail_afterr   receive)r   r   r    exc_maps       r   readzAnyIOStream.read   s     +%y%yy	
 G$$ 	 	!'**  !%!5!5	!5!J!JJJJJJJJ      	 	 	 	 	 	 	 	 (   	     	 	 	 	 	 	 	 	        	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sZ   C)(C* B$C)$C3C4C)CCC	C)C	C))C-0C-bufferc                \  K   |sd S t           t          t          j        t          t          j        t          i}t          |          5  t          j        |          5  | j        	                    |           d {V  d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)item)
r$   r
   r%   r&   r	   r'   r   r)   r   send)r   r-   r    r+   s       r   writezAnyIOStream.write'   s6      	F ,%z%z

 G$$ 	5 	5!'** 5 5l''V'4444444445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s6   B!"B	=B!	B	B!B	B!!B%(B%c                H   K   | j                                          d {V  d S r   )r   aclose)r   s    r   r3   zAnyIOStream.aclose4   s2      l!!###########r   ssl_contextssl.SSLContextserver_hostname
str | Noner   c           	       K   t           t          t          j        t          t          j        t          t          j        t          i}t          |          5  	 t          j	        |          5  t          j
        j        j                            | j        ||dd           d {V }d d d            n# 1 swxY w Y   n.# t          $ r!}|                                  d {V  |d }~ww xY wd d d            n# 1 swxY w Y   t#          |          S )NF)r4   hostnamestandard_compatibleserver_side)r$   r   r%   r&   r   r(   sslSSLErrorr   r)   streamstls	TLSStreamwrapr   	Exceptionr3   r   )r   r4   r6   r    r+   
ssl_streamexcs          r   	start_tlszAnyIOStream.start_tls7   s      .%||L,	
 G$$ 	 	%g..  ',}'8'B'G'G$/!0,1$) (H ( ( " " " " " "J                  kkmm#######		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 :&&&sZ   C5B;):B/#B;/B3	3B;6B3	7B;:C5;
C&C!!C&&C55C9<C9infostr
typing.Anyc                @   |dk    r4| j                             t          j        j        j        j        d           S |dk    r/| j                             t          j        j        j	        d           S |dk    r/| j                             t          j        j        j
        d           S |dk    r/| j                             t          j        j        j        d           S |dk    r>| j                             t          j        j        j        d           }t          |          S d S )N
ssl_objectclient_addrserver_addrsocketis_readable)r   extrar%   r>   r?   TLSAttributerJ   abcSocketAttributelocal_addressremote_address
raw_socketr   )r   rF   socks      r   get_extra_infozAnyIOStream.get_extra_infoR   s    <<%%em&7&D&OQUVVV=  <%%ei&?&MtTTT=  <%%ei&?&NPTUUU8<%%ei&?&JDQQQ=  <%%ei&?&JDQQD%d+++tr   )r   r   r   r   r   )r   r   r    r!   r   r"   )r-   r"   r    r!   r   r   )r   r   NN)r4   r5   r6   r7   r    r!   r   r   )rF   rG   r   rH   )	__name__
__module____qualname__r   r,   r1   r3   rE   rW    r   r   r   r      s               5 5 5 5 5$ $ $ $ '+ $	' ' ' ' '6     r   r   c                  4    e Zd Z	 	 	 dddZ	 	 dddZddZdS )AnyIOBackendNhostrG   portr   r    r!   rS   r7   socket_options%typing.Iterable[SOCKET_OPTION] | Noner   r   c                  K   |g }t           t          t          t          t          j        t          i}t          |          5  t	          j        |          5  t	          j        |||           d {V }|D ]} |j	        j
        |  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |          S )N)remote_hostremote_port
local_host)r$   r   OSErrorr   r%   r&   r   r)   connect_tcp_raw_socket
setsockoptr   )	r   r_   r`   r    rS   ra   r+   r   options	            r   rh   zAnyIOBackend.connect_tcpb   sq      !N.\%|

 G$$ 		; 		;!'** ; ;5:5F $ $,6 6 6 0 0 0 0 0 0 - ; ;F1F&16:::;; ; ; ; ; ; ; ; ; ; ; ; ; ; ;		; 		; 		; 		; 		; 		; 		; 		; 		; 		; 		; 		; 		; 		; 		; 6"""s6   B,2B	B,B	B,B	B,,B03B0pathc                  K   |g }t           t          t          t          t          j        t          i}t          |          5  t	          j        |          5  t	          j        |           d {V }|D ]} |j	        j
        |  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |          S r   )r$   r   rg   r   r%   r&   r   r)   connect_unixri   rj   r   )r   rl   r    ra   r+   r   rk   s          r   connect_unix_socketz AnyIOBackend.connect_unix_socket}   sS      !N.\%|

 G$$ 	; 	;!'** ; ;5:5G5M5M/M/M/M/M/M/M, ; ;F1F&16:::;; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;
 6"""s6   B)/BB)B	B)B	B))B-0B-secondsfloatr   c                >   K   t          j        |           d {V  d S r   )r%   sleep)r   rp   s     r   rs   zAnyIOBackend.sleep   s.      k'"""""""""""r   )NNN)r_   rG   r`   r   r    r!   rS   r7   ra   rb   r   r   rX   )rl   rG   r    r!   ra   rb   r   r   )rp   rq   r   r   )rY   rZ   r[   rh   ro   rs   r\   r   r   r^   r^   a   sm        
 !%$(@D# # # # #< !%@D	# # # # #(# # # # # #r   r^   )
__future__r   r<   typingr%   _exceptionsr   r   r   r   r	   r
   r   _utilsr   baser   r   r   r   r^   r\   r   r   <module>ry      s'   " " " " " " 



                    ( ' ' ' ' ' H H H H H H H H H HI I I I I$ I I IX1# 1# 1# 1# 1#& 1# 1# 1# 1# 1#r   