
    DhV$                         d dl Z d dlZd dlZd dlZd dlmZm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mZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ d dl%m&Z& d dl'Z(d dl)m*Z*m+Z+  G d d	      Z,y)
    N)DictOptional)ClientConnectionErrorClientConnectorErrorClientHttpProxyErrorClientProxyConnectionErrorClientSSLErrorServerDisconnectedErrorServerTimeoutError)URL)MAX_POOL_CONNECTIONSConnectionClosedErrorConnectTimeoutErrorEndpointConnectionErrorHTTPClientErrorInvalidProxiesConfigErrorLocationParseErrorProxyConfigurationProxyConnectionErrorReadTimeoutErrorSSLError_is_ipaddresscreate_urllib3_contextensure_booleanget_cert_pathloggermask_proxy_url	parse_urlurlparse)CIMultiDict)_IOBaseWrapper_textc            	       d    e Zd Zdddeddddfdedeeef   dedefdZ	d Z
d	 Zd
 Zd Zd Zd Zy)AIOHTTPSessionTNverifyproxiestimeoutmax_pool_connectionsc	                     d  _          _        t        ||       _        t	        |t
        t        f      r|\  }	}
n|x}	}
t        j                  |	|
      }d  _	        d  _
        t	        |t              r| _	        nt	        |t              r|\   _	         _
        | _        | _         j                  t        d       _         _        | _        |g  _        d t#              rZ|r( j                  j$                  } j'                  |      n0 j)                         t+              }|rj-                  |d d         fd _        d  _        y )N)r&   proxies_settings)sock_connect	sock_read   )keepalive_timeoutc                  \    t        j                  d t              dj                  S )N)limit
verify_sslssl )aiohttpTCPConnectorbool_connector_args)r(   selfssl_contextr%   s   y/var/www/fastuser/data/www/generator.snapmosaic.io/flask_app/venv/lib/python3.12/site-packages/aiobotocore/httpsession.py<lambda>z)AIOHTTPSession.__init__.<locals>.<lambda>o   s4    )=)= *
&F|*
 ""	*
     )_session_verifyr   _proxy_config
isinstancelisttupler4   ClientTimeout
_cert_file	_key_filestr_timeoutr7   dict_max_pool_connections_socket_optionsr6   settings_setup_proxy_ssl_context_get_ssl_contextr   load_verify_locations_create_connector
_connector)r8   r%   r&   r'   r(   socket_optionsclient_certproxies_configconnector_argsconn_timeoutread_timeoutr*   ca_certsr9   s   ``  `        @r:   __init__zAIOHTTPSession.__init__.   sW    :>/n
 ge}-)0&L,*11L<''%
 k3')DOU+.9+DOT^-' $("#=D %9"-!#%D  <#'#5#5#>#> ";;<LM #335 )055hdK"
 r<   c                    K   | j                   s| j                  rJ | j                         | _        t        j                  | j                  | j
                  dhd      | _         | S w)NzCONTENT-TYPEF)	connectorr'   skip_auto_headersauto_decompress)r=   rP   rO   r4   ClientSessionrG   r8   s    r:   
__aenter__zAIOHTTPSession.__aenter__w   sY     ==88002--ooMM-.!	
 s   A%A'c                    K   | j                   r4| j                   j                  |||       d {    d | _         d | _        y y 7 wN)r=   	__aexit__rP   )r8   exc_typeexc_valexc_tbs       r:   rb   zAIOHTTPSession.__aexit__   s?     ==--))(GVDDD DM"DO Ds   -AAAc                 ~    t               }| j                  r&|j                  | j                  | j                         |S ra   )r   rD   load_cert_chainrE   )r8   r9   s     r:   rM   zAIOHTTPSession._get_ssl_context   s/    ,.??''Hr<   c                    | j                   j                  }|j                  d      }|j                  d      }||y | j                         }	 t	        |      }t        |j                        sd|_        ||j                  |       t        |t              r|j                  |d   |d          |S t        |t              r|j                  |       |S # t        t        f$ r}t        |      d }~ww xY w)	Nproxy_ca_bundleproxy_client_certT)cafiler      )keyfileerror)r?   rK   getrM   r   r   hostcheck_hostnamerN   r@   rB   rg   rF   OSErrorr   r   )r8   	proxy_urlr*   ri   
proxy_certcontexturles           r:   rL   z'AIOHTTPSession._setup_proxy_ssl_context   s    --66*../@A%))*=>
"z'9'')	5I&C !*)-&*--_-E*e,''
1z!}'M N J,''
3N+, 	5+!44	5s   A%C 5"C C8'C33C8c                 F   K   | j                  d d d        d {    y 7 wra   )rb   r^   s    r:   closezAIOHTTPSession.close   s     nnT4...s   !!c           	        K   	 | j                   j                  |j                        }| j                   j                  |j                        }|j                  }|j                  }|j
                  }t        t        j                  j                  dd            r$t        |j                        j                  }||d<   t        d |j                         D              }d|d<   d }	|j                  dd      j                         dk(  r|j                  dd       d	}	t!        |t"        j$                        rt'        |      }t)        |d	
      }| j*                  j-                  |j.                  ||	||||       d {   }
t0        j2                  j5                  t7        |
j                        |
j8                  |
j                  |
      }|j:                  s|j<                   d {    |S 7 o7 # t>        $ r}tA        |j                  |      d }~wtB        tD        f$ r}tG        tI              |      d }~wtJ        tL        jN                  tL        jP                  jR                  f$ r}tU        |||j                        d }~wtV        $ r[}t7        |      j                         jY                  d      rt[        |j                  |      t]        |j                  |      d }~wt^        t`        tb        jd                  f$ r}tg        |j                  |      d }~wth        jj                  $ r}t]        |j                  |      d }~wtl        $ r*}d}to        jp                  |d	       ts        |      d }~ww xY ww)N(BOTO_EXPERIMENTAL__ADD_PROXY_HOST_HEADER rq   c              3   F   K   | ]  }|d    t        |d   d      f  yw)r   rl   zutf-8)encodingN)r"   ).0zs     r:   	<genexpr>z&AIOHTTPSession.send.<locals>.<genexpr>   s)      #:;1uQqTG45#s   !identityzAccept-EncodingzTransfer-EncodingchunkedT)encoded)rw   r   headersdataproxyproxy_headers)endpoint_urlro   )rt   ro   )ro   requestr   connectz4Exception received when sending urllib3 HTTP request)exc_inforn   ):r?   proxy_url_forrw   proxy_headers_forr   bodyr   osenvironrp   r   hostnamer    itemslowerpopr@   ioIOBaser!   r   r=   r   methodaiobotocore
awsrequestAioAWSResponserF   statusstream_outputcontentr	   r   r   r   r   r   r
   r4   ClientPayloadErrorhttp_exceptionsBadStatusLiner   r   
startswithr   r   r   r   socketgaierrorr   asyncioTimeoutError	Exceptionr   debugr   )r8   r   rt   r   rw   r   r   rq   headers_r   responsehttp_responserx   messages                 r:   sendzAIOHTTPSession.send   s    U	+**88EI ..@@MM++CooG<<D

I2N  ,55(,f%" #?F}}# H
 +5H&'G||/4::<	I0"5$		*%d+c4(C!]]22 + 3  H (22AAHLL!8??H4D4DhM (( $++++  )$ ,  	>1==*,@A 	&(31  $&&##11
 	
 (w{{  " 	J1v||~((3)w{{!LL&GKKqII !OO
 	M
 *w{{!LL## 	F"1EE 	+LGLL40!**	+s   NE:G2 >G.?A(G2 'G0(G2 -N.G2 0G2 2	N;HN$H::5N/JNAK))!N
L!!N7MN%M??NN)__name__
__module____qualname__r   r6   r   rF   floatintrX   r_   rb   rM   rL   rz   r   r3   r<   r:   r$   r$   -   st     "&$8GG c3hG 	G
 "GR#54/V+r<   r$   )-r   r   r   r   typingr   r   r4   r   r   r   r   r	   r
   r   aiohttp.clientr   botocore.httpsessionr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	multidictr    aiobotocore.awsrequestr   aiobotocore._endpoint_helpersr!   r"   r$   r3   r<   r:   <module>r      s`     	 	  !         * "  ?V+ V+r<   