U
    ]                     @   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ejeef ee	e
eeeeje dddZdeee	eedddZdee	edd	d
dZeejej dddZddddZee
dddZee
dddZe
dddZed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 krJt
 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$   y/var/www/html/staging.mfahmagazine.net/magazine_api/magazine_env/lib/python3.8/site-packages/httpx/dispatch/connection.py__init__   s    

zHTTPConnection.__init__)requestr   r   r   returnc                    st   | j d kr*| jd kr*| j|||dI d H  | jd k	rL| jj||dI d H }n$| j d k	sZt| j j||dI d H }|S )N)r   r   r   )r   )r!   r"   connectsendAssertionError)r#   r'   r   r   r   responser$   r$   r%   r*   3   s    
zHTTPConnection.send)r   r   r   r(   c                    s   | j j||d}|d kr| jnt|}| jj}| jj}| |I d H }| jd krVd }nt	
| j| }td|d|d| | j||||I d H }	|	 }
td|
 |
dkrt|	| j|d| _n|
dkst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.   r/   Zssl_contextr-   streamZhttp_versionr$   r$   r%   r)   E   s0    
  
  zHTTPConnection.connect)r    r(   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%   r0   f   s     zHTTPConnection.get_ssl_context)r(   c                    sD   t d | jd k	r&| j I d H  n| jd k	r@| j I d H  d S )NZclose_connection)r3   r4   r"   closer!   r#   r$   r$   r%   r7   o   s
    


zHTTPConnection.closec                 C   s
   | j d k	S r6   )r"   r8   r$   r$   r%   is_http2v   s    zHTTPConnection.is_http2c                 C   s,   | j d k	r| j jS | jd k	s t| jjS d S r6   )r"   	is_closedr!   r+   r8   r$   r$   r%   r:   z   s    
zHTTPConnection.is_closedc                 C   s0   | j d k	r| j  S | jd k	s"t| j S d S r6   )r"   is_connection_droppedr!   r+   r8   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)NNN)r>   
__module____qualname__r   typingUnionr   r   r   r   boolr   r   r   OptionalReleaseCallbackr&   r   r   r*   r)   r	   r    Z
SSLContextr0   r7   propertyr9   r:   r;   r@   r$   r$   r$   r%   r      sX         !	)"r1   r    rC   Zconcurrency.asyncior   Zconcurrency.baser   configr   r   r   r   r	   r
   r   r   Zmodelsr   r   r   utilsr   baser   Zhttp2r   Zhttp11r   Callable	AwaitablerG   r>   r3   r   r$   r$   r$   r%   <module>   s   (
