o
    �õ±j³  ã                   @   sF   d dl mZmZmZmZ d dlmZmZ d dlm	Z	 G dd„ dƒZ
dS )é    )ÚListÚTupleÚAnyÚDict)ÚMockHTTPRequestÚHTTPResponse)ÚHTTPClientTransportc                   @   sZ   e Zd Zg dddfdededeeeef  dededefd	d
„Z	de
fdd„Zdd„ ZdS )ÚRequestManagerNFÚurlÚreq_typeÚheadersÚdataÚneed_lengthÚ	transportc           	      K   s4   || _ || _|| _|| _|| _|| _|| _d | _d S ©N)Úsessionr
   r   r   r   r   r   Ú_RequestManager__response)	Úselfr   r
   r   r   r   r   r   Úkwargs© r   ú£/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/asysocks/unicomm/protocol/client/http/requestmgr.pyÚ__init__   s   
zRequestManager.__init__Úreturnc              
   Ã   sÒ   �zY| j  | j¡\}}| jd u r| j  ¡ I d H | _| j jd ur1| j jjdkr1| j j | ¡I d H W S | j  || j	¡}| jj
|| j||| j| jd�I d H | _| j j | jt|ƒ¡ | jW S  tyh } z|‚d }~ww )NÚstart)r   r   r   )r   Úprocess_urlr
   r   Úget_transportÚauthmanagerÚstatusÚauthenticateÚapply_headersr   Úrequestr   r   r   r   Ú	cookiejarÚextract_cookiesr   Ú	Exception)r   ÚtargetÚfullurlr   Úer   r   r   Ú
__aenter__   s   €
&€ÿzRequestManager.__aenter__c                 Ã   s$   �| j d ur| j  ¡ I d H  d S d S r   )r   Úcleanup)r   Úexc_typeÚexcÚtbr   r   r   Ú	__aexit__#   s   €
ÿzRequestManager.__aexit__)Ú__name__Ú
__module__Ú__qualname__Ústrr   r   ÚbytesÚboolr   r   r   r'   r,   r   r   r   r   r	      s    8
r	   N)Útypingr   r   r   r   Ú6asysocks.unicomm.protocol.client.http.commons.messagesr   r   Ú/asysocks.unicomm.protocol.client.http.transportr   r	   r   r   r   r   Ú<module>   s   