o
    ûÞhC"  ã                   @  s0  U d dl mZ d dlZd dlZd dlmZ d dlmZ ddl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mZ ddlmZ ddlmZmZmZmZ ddlmZ ddlmZm Z  ej!rpddlm"Z"m#Z# G dd„ dƒZ$G dd„ de$ƒZ%ej!r–e$dd ƒZ&de'd< e%dd ƒZ(de'd< dS dS )é    )ÚannotationsN)ÚHTTPException)ÚResponseNotReadyé   )Ú
_TYPE_BODY)ÚHTTPConnectionÚProxyConfigÚport_by_scheme)ÚTimeoutError)ÚBaseHTTPResponse)Ú_TYPE_SOCKET_OPTIONS)Ú_DEFAULT_TIMEOUTÚ_TYPE_TIMEOUT)ÚUrlé   )Ú_RequestErrorÚ_TimeoutErrorÚsend_requestÚsend_streaming_request)ÚEmscriptenRequest)ÚEmscriptenHttpResponseWrapperÚEmscriptenResponse)ÚBaseHTTPConnectionÚBaseHTTPSConnectionc                   @  s  e Zd ZU ed Zded< ded< ded< ded	< d
ed< d
ed< ded< ded< ded< ded< dZded< dZded< ded< 	dDeddddddœdEd#d$„Z				dFdGd)d*„Z
dHd+d,„Z		dIdd-d-d-d.œdJd7d8„ZdKd:d;„ZdHd<d=„ZedLd>d?„ƒZedLd@dA„ƒZedLdBdC„ƒZdS )MÚEmscriptenHTTPConnectionÚhttpztyping.ClassVar[int]Údefault_portz%typing.ClassVar[_TYPE_SOCKET_OPTIONS]Údefault_socket_optionszNone | floatÚtimeoutÚstrÚhostÚintÚportÚ	blocksizeútuple[str, int] | NoneÚsource_addressú_TYPE_SOCKET_OPTIONS | NoneÚsocket_optionsú
Url | NoneÚproxyúProxyConfig | NoneÚproxy_configFÚboolÚis_verifiedNzbool | NoneÚproxy_is_verifiedzEmscriptenResponse | NoneÚ	_responser   i    )r   r%   r#   r'   r)   r+   r   ÚreturnÚNonec          	      C  sZ   || _ || _t|tƒr|nd| _d| _d| _d | _d | _d | _	|| _
d | _d | _d| _d S )Ng        r   TF)r    r"   Ú
isinstanceÚfloatr   ÚschemeÚ_closedr/   r)   r+   r#   r%   r'   r-   )	Úselfr    r"   r   r%   r#   r'   r)   r+   © r7   úe/var/www/html/premium_crap/venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/connection.pyÚ__init__-   s   
z!EmscriptenHTTPConnection.__init__ú
int | NoneÚheadersútyping.Mapping[str, str] | Noner4   c                 C  ó   d S ©Nr7   )r6   r    r"   r;   r4   r7   r7   r8   Ú
set_tunnelH   s   z#EmscriptenHTTPConnection.set_tunnelc                 C  r=   r>   r7   ©r6   r7   r7   r8   ÚconnectQ   s   z EmscriptenHTTPConnection.connectT)ÚchunkedÚpreload_contentÚdecode_contentÚenforce_content_lengthÚmethodÚurlÚbodyú_TYPE_BODY | NonerB   rC   rD   rE   c             
   C  sò   d| _ | d¡r| j› d| j› d| j› �| }t||| jr | jnd|d�}	|	 |¡ |r;| ¡ D ]
\}
}|	 	|
|¡ q0d | _
z|sFt|	ƒ| _
| j
d u rSt|	ƒ| _
W d S W d S  tyg } zt|jƒ|‚d }~w tyx } zt|jƒ|‚d }~ww )NFú/z://ú:r   )rG   rF   r   rD   )r5   Ú
startswithr4   r    r"   r   r   Úset_bodyÚitemsÚ
set_headerr/   r   r   r   r
   Úmessager   r   )r6   rF   rG   rH   r;   rB   rC   rD   rE   ÚrequestÚkÚvÚer7   r7   r8   rQ   T   s6   
ü


ÿ€€ÿz EmscriptenHTTPConnection.requestr   c                 C  s&   | j d urt| j | j jj| d�S tƒ ‚)N)Úinternal_responserG   Ú
connection)r/   r   rQ   rG   r   r@   r7   r7   r8   Úgetresponse|   s   
ýz$EmscriptenHTTPConnection.getresponsec                 C  s   d| _ d | _d S )NT)r5   r/   r@   r7   r7   r8   Úclose†   s   
zEmscriptenHTTPConnection.closec                 C  s   | j S )zÏWhether the connection either is brand new or has been previously closed.
        If this property is True then both ``is_connected`` and ``has_connected_to_proxy``
        properties must be False.
        )r5   r@   r7   r7   r8   Ú	is_closedŠ   s   z"EmscriptenHTTPConnection.is_closedc                 C  ó   dS )zLWhether the connection is actively connected to any origin (proxy or target)Tr7   r@   r7   r7   r8   Úis_connected’   s   z%EmscriptenHTTPConnection.is_connectedc                 C  rZ   )zìWhether the connection has successfully connected to its proxy.
        This returns False if no proxy is in use. Used to determine whether
        errors are coming from the proxy layer or from tunnelling to the target origin.
        Fr7   r@   r7   r7   r8   Úhas_connected_to_proxy—   s   z/EmscriptenHTTPConnection.has_connected_to_proxy©r   )r    r   r"   r!   r   r   r%   r$   r#   r!   r'   r&   r)   r(   r+   r*   r0   r1   )r   Nr   )
r    r   r"   r:   r;   r<   r4   r   r0   r1   )r0   r1   )NN)rF   r   rG   r   rH   rI   r;   r<   rB   r,   rC   r,   rD   r,   rE   r,   r0   r1   )r0   r   )r0   r,   )Ú__name__Ú
__module__Ú__qualname__r	   r   Ú__annotations__r-   r.   r   r9   r?   rA   rQ   rW   rX   ÚpropertyrY   r[   r\   r7   r7   r7   r8   r      sX   
 ýöû
	û
ó
(

r   c                      s   e Zd ZU ed ZdZded< dZded< dZded< dZ	ded	< ded
< ded< ded< ded< dZ
ded< dZded< dZded< ded< dZded< 	d/eddejdddddddddddddddddœd0‡ fd+d,„Z									d1d2d-d.„Z‡  ZS )3ÚEmscriptenHTTPSConnectionÚhttpsNúint | str | NoneÚ	cert_reqsú
str | NoneÚca_certsÚca_cert_dirúNone | str | bytesÚca_cert_dataÚ	cert_fileÚkey_fileÚkey_passwordútyping.Any | NoneÚssl_contextÚssl_versionr:   Ússl_minimum_versionÚssl_maximum_versionú"None | str | typing.Literal[False]Úassert_hostnameÚassert_fingerprintr   i @  )r   r%   r#   r'   r)   r+   rf   ru   rv   Úserver_hostnamerp   rh   ri   rk   rr   rs   rq   rl   rm   rn   r    r   r"   r!   r   r   r%   r$   r#   r'   úNone | _TYPE_SOCKET_OPTIONSr)   r(   r+   r*   rw   r0   r1   c             
     s˜   t ƒ j||||||||d� d| _|| _|| _|| _|| _|| _|
| _|| _	|| _
|| _|| _|o6tj |¡| _|o?tj |¡| _|| _d | _d| _d S )N)r"   r   r%   r#   r'   r)   r+   rd   T)Úsuperr9   r4   rm   rl   rn   rp   rw   ru   rv   rq   rr   rs   ÚosÚpathÚ
expanduserrh   ri   rk   rf   r-   )r6   r    r"   r   r%   r#   r'   r)   r+   rf   ru   rv   rw   rp   rh   ri   rk   rr   rs   rq   rl   rm   rn   ©Ú	__class__r7   r8   r9   ±   s4   ø

z"EmscriptenHTTPSConnection.__init__c
           
      C  r=   r>   r7   )
r6   rm   rl   rf   rn   rh   ru   rv   ri   rk   r7   r7   r8   Úset_certí   s   z"EmscriptenHTTPSConnection.set_certr]   ).r    r   r"   r!   r   r   r%   r$   r#   r!   r'   rx   r)   r(   r+   r*   rf   re   ru   rt   rv   rg   rw   rg   rp   ro   rh   rg   ri   rg   rk   rj   rr   r:   rs   r:   rq   re   rl   rg   rm   rg   rn   rg   r0   r1   )	NNNNNNNNN)rm   rg   rl   rg   rf   re   rn   rg   rh   rg   ru   rt   rv   rg   ri   rg   rk   rj   r0   r1   )r^   r_   r`   r	   r   rf   ra   rh   ri   rk   rq   rr   rs   rv   r   r   r   r9   r   Ú__classcell__r7   r7   r}   r8   rc       s`   
 ýæ>örc   Ú r   Ú_supports_http_protocolr   Ú_supports_https_protocol))Ú
__future__r   rz   ÚtypingÚhttp.clientr   r   Ú_base_connectionr   rV   r   r   r	   Ú
exceptionsr
   Úresponser   Úutil.connectionr   Úutil.timeoutr   r   Úutil.urlr   Úfetchr   r   r   r   rQ   r   r   r   ÚTYPE_CHECKINGr   r   r   rc   r‚   ra   rƒ   r7   r7   r7   r8   Ú<module>   s0     ]þ