o
    h                     @   s   d dl Z d dlZd dlZddl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 ddlmZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ejdgejd f ZeeZ G dd deZ!dS )    N   )AsyncioBackend)ConcurrencyBackend)DEFAULT_TIMEOUT_CONFIG	CertTypesHTTPVersionConfigHTTPVersionTypes	SSLConfigTimeoutConfigTimeoutTypesVerifyTypes)AsyncRequestAsyncResponseOrigin)
get_logger   )AsyncDispatcher)HTTP2Connection)HTTP11ConnectionHTTPConnectionc                   @   s  e Zd Zdddedddfdejeef dede	de
deded	ed
eje fddZ			d dedede	dedef
ddZ			d dede	deddfddZdedejej fddZd!ddZede
fddZede
fddZde
fddZdefddZdS )"r   TNoriginverifycert	trust_envtimeouthttp_versionsbackendrelease_funcc	           	      C   sf   t |tr	t|n|| _t|||d| _t|| _t|| _	|d u r%t
 n|| _|| _d | _d | _d S )N)r   r   r   )
isinstancestrr   r   r	   sslr
   r   r   r   r   r   r   h11_connectionh2_connection)	selfr   r   r   r   r   r   r   r    r$   a/var/www/html/magazine_api/magazine_env/lib/python3.10/site-packages/httpx/dispatch/connection.py__init__   s   


zHTTPConnection.__init__requestreturnc                    sx   | j d u r| jd u r| j|||dI d H  | jd ur(| jj||dI d H }|S | j d us/J | j j||dI d H }|S )N)r   r   r   )r   )r!   r"   connectsend)r#   r'   r   r   r   responser$   r$   r%   r*   3   s   
zHTTPConnection.sendc                    s   | j j||d}|d u r| jnt|}| jj}| jj}| |I d H }| jd u r,d }nt	
| j| }td|d|d| | j||||I d H }	|	 }
td|
 |
dkrht|	| j|d| _d S |
dksnJ t|	| j|d| _d S )	N)r   r   zstart_connect host=z port=z	 timeout=zconnected http_version=zHTTP/2)
on_releasezHTTP/1.1)r    Zwith_overridesr   r
   r   hostportget_ssl_contextr   	functoolspartialloggerdebugr   Zopen_tcp_streamZget_http_versionr   r"   r   r!   )r#   r   r   r   r    r-   r.   ssl_contextr,   streamhttp_versionr$   r$   r%   r)   E   s*   
zHTTPConnection.connectr    c                    s&   | j jsd S | j|j| jI d H S N)r   Zis_sslr   Zrun_in_threadpoolZload_ssl_contextr   )r#   r    r$   r$   r%   r/   f   s   
zHTTPConnection.get_ssl_contextc                    sL   t d | jd ur| j I d H  d S | jd ur$| j I d H  d S d S )NZclose_connection)r2   r3   r"   closer!   r#   r$   r$   r%   r8   o   s   


zHTTPConnection.closec                 C   s
   | j d uS r7   )r"   r9   r$   r$   r%   is_http2v   s   
zHTTPConnection.is_http2c                 C   s(   | j d ur	| j jS | jd usJ | jjS r7   )r"   	is_closedr!   r9   r$   r$   r%   r;   z   s   
zHTTPConnection.is_closedc                 C   s,   | j d ur
| j  S | jd usJ | j S r7   )r"   is_connection_droppedr!   r9   r$   r$   r%   r<      s   


z$HTTPConnection.is_connection_droppedc                 C   s   | j j}| d| jdS )Nz(origin=))	__class____name__r   )r#   
class_namer$   r$   r%   __repr__   s   zHTTPConnection.__repr__)NNN)r(   N)r?   
__module____qualname__r   typingUnionr   r   r   r   boolr   r   r   OptionalReleaseCallbackr&   r   r   r*   r)   r	   r    
SSLContextr/   r8   propertyr:   r;   r<   rA   r$   r$   r$   r%   r      sv    	


!
	)"r0   r    rD   Zconcurrency.asyncior   Zconcurrency.baser   configr   r   r   r   r	   r
   r   r   modelsr   r   r   utilsr   baser   Zhttp2r   Zhttp11r   Callable	AwaitablerH   r?   r2   r   r$   r$   r$   r%   <module>   s    (
