§
    øåMfJ%  ã                  ó  — d dl mZ 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 d dlmZmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZ ej        rddlmZmZ  ej        e¦  «        Ze	 G d„ d¦  «        ¦   «         Z G d„ de¦  «        Z dS )é    )ÚannotationsN)Úcontextmanager)Ú	dataclass)ÚHTTPException)ÚBytesIOÚIOBaseé   )ÚInvalidHeaderÚTimeoutError)ÚBaseHTTPResponse)ÚRetryé   )ÚEmscriptenRequest)ÚBaseHTTPConnectionÚBaseHTTPSConnectionc                  ó8   — e Zd ZU ded<   ded<   ded<   ded<   d	S )
ÚEmscriptenResponseÚintÚstatus_codezdict[str, str]ÚheaderszIOBase | bytesÚbodyr   ÚrequestN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úbC:\Users\psant\Downloads\sloar back\myenv\Lib\site-packages\urllib3/contrib/emscripten/response.pyr   r      sB   € € € € € € àÐÐÑØÐÐÑØÐÐÑØÐÐÑÐÐr   r   c                  ó4  ‡ — e Zd Z	 	 d)d*ˆ fd„Zed+d
„¦   «         Zej        d,d„¦   «         Zed-d„¦   «         Zed.d„¦   «         Zej        d/d„¦   «         Z	 d0d1d„Z	d2d„Z
	 	 	 d3d4d„Z	 	 d)d1d „Zd5d!„Zd5d"„Zed6d#„¦   «         Zd7d%„Zd5d&„Zed8d(„¦   «         Zˆ xZS )9ÚEmscriptenHttpResponseWrapperNÚinternal_responser   Úurlú
str | NoneÚ
connectionú/BaseHTTPConnection | BaseHTTPSConnection | Nonec                ó  •— d | _         d | _        || _        || _        || _        d| _        t          ¦   «                              |j        |j	        |ddd¬¦  «         |  
                    | j        j        j        ¦  «        | _        d| _        d S )NFr   Ú T)r   ÚstatusÚrequest_urlÚversionÚreasonÚdecode_content)Ú_poolÚ_bodyÚ	_responseÚ_urlÚ_connectionÚ_closedÚsuperÚ__init__r   r   Ú_init_lengthr   ÚmethodÚlength_remainingÚlength_is_certain)Úselfr"   r#   r%   Ú	__class__s       €r   r5   z&EmscriptenHttpResponseWrapper.__init__   s—   ø€ ð ˆŒ
ØˆŒ
Ø*ˆŒØˆŒ	Ø%ˆÔØˆŒÝ‰Œ×ÒØ%Ô-Ø$Ô0ØØØØð 	ñ 	
ô 	
ð 	
ð !%× 1Ò 1°$´.Ô2HÔ2OÑ PÔ PˆÔØ!&ˆÔÐÐr   Úreturnc                ó   — | j         S ©N©r1   ©r:   s    r   r#   z!EmscriptenHttpResponseWrapper.url6   s
   € àŒyÐr   ÚNonec                ó   — || _         d S r>   r?   )r:   r#   s     r   r#   z!EmscriptenHttpResponseWrapper.url:   s   € àˆŒ	ˆ	ˆ	r   c                ó   — | j         S r>   )r2   r@   s    r   r%   z(EmscriptenHttpResponseWrapper.connection>   s   € àÔÐr   úRetry | Nonec                ó   — | j         S r>   ©Ú_retriesr@   s    r   Úretriesz%EmscriptenHttpResponseWrapper.retriesB   s
   € àŒ}Ðr   rH   c                ó   — || _         d S r>   rF   )r:   rH   s     r   rH   z%EmscriptenHttpResponseWrapper.retriesF   s   € ð  ˆŒˆˆr   é   Úamtú
int | Noner-   úbool | Noneú#typing.Generator[bytes, None, None]c              #  óJ   K  — 	 |                       ||¬¦  «        }|r|V — ndS Œ!)a_  
        A generator wrapper for the read() method. A call will block until
        ``amt`` bytes have been read from the connection or until the
        connection is closed.

        :param amt:
            How much of the content to read. The generator will return up to
            much data per iteration, but may return less. This is particularly
            likely when using compressed data. However, the empty string will
            never be returned.

        :param decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.
        T)rK   r-   N©Úread)r:   rK   r-   Údatas       r   Ústreamz$EmscriptenHttpResponseWrapper.streamK   s=   è è € ð$	Ø—9’9 °^�9ÑDÔDˆDàð Ø�
�
�
�
à�ð	r   Úrequest_methodc                ót  — | j                              d¦  «        }|�t	 d„ |                     d¦  «        D ¦   «         }t          |¦  «        dk    rt	          d|z  ¦  «        ‚|                     ¦   «         }|dk     rd }n# t          $ r d }Y nw xY wd }| j        dv sd| j        cxk    rd	k     sn |d
k    rd}|S )Nzcontent-lengthc                ó,   — h | ]}t          |¦  «        ’ŒS r   )r   )Ú.0Úvals     r   ú	<setcomp>z=EmscriptenHttpResponseWrapper._init_length.<locals>.<setcomp>p   s   € ÐIÐIÐI¨�3˜s™8œ8ÐIÐIÐIr   ú,r   z8Content-Length contained multiple unmatching values (%s)r   )éÌ   i0  éd   éÈ   ÚHEAD)r   ÚgetÚsplitÚlenr
   ÚpopÚ
ValueErrorr)   )r:   rT   Úcontent_lengthÚlengthsÚlengths        r   r6   z*EmscriptenHttpResponseWrapper._init_lengthe   s
  € à%)¤\×%5Ò%5Ð6FÑ%GÔ%GˆàÐ%ð"ð JÐI¨~×/CÒ/CÀCÑ/HÔ/HÐIÑIÔI�Ý�w‘<”< !Ò#Ð#Ý'ð1Ø3AñBñô ð ð !Ÿš™œ�ð ˜A’:�:Ø!�Føøõ	 ð ð ð Ø���ðøøøð ˆFð ŒK˜:Ð%Ð%Ø�d”kÐ'Ð'Ò'Ð' CÒ'Ð'Ð'Ð'Ø Ò'Ð'àˆFàˆs   žAA? Á?BÂBFÚcache_contentÚboolÚbytesc                ó�  — | j         s7| j        �0t          | j        j        t          ¦  «        r| j        j        j        rdS |                      ¦   «         5  t          | j        j        t          ¦  «        sHt          | j        j        ¦  «        | _        d| _	        t          | j        j        ¦  «        | j        _        |�»d}| j        j                             |¦  «        }| j        �*t          | j        t          |¦  «        z
  d¦  «        | _        | j	        r| j        dk    st          |¦  «        |k     r| j        j                             ¦   «          t          j        t           |¦  «        cd d d ¦  «         S | j        j                             ¦   «         }|r|| _        | j        �*t          | j        t          |¦  «        z
  d¦  «        | _        t          |¦  «        dk    s| j	        r)| j        dk    r| j        j                             ¦   «          t          j        t           |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nr   TFr   )r3   r0   Ú
isinstancer   r   ÚclosedÚ_error_catcherra   r8   r9   r   rQ   ÚmaxÚcloseÚtypingÚcastri   r/   )r:   rK   r-   rg   rR   s        r   rQ   z"EmscriptenHttpResponseWrapper.readŠ   s{  € ð ŒLð	àŒ~Ð%Ý˜4œ>Ô.µÑ7Ô7ð &Ø<@¼NÔ<OÔ<Vð &ð �3à× Ò Ñ"Ô"ð 	0ð 	0å˜dœnÔ1µ6Ñ:Ô:ð CÝ(+¨D¬NÔ,?Ñ(@Ô(@�Ô%Ø)-�Ô&å&-¨d¬nÔ.AÑ&BÔ&B�”Ô#Øˆà %�Ø”~Ô*×/Ò/°Ñ4Ô4�ØÔ(Ð4Ý,/°Ô0EÍÈDÉ	Ì	Ñ0QÐSTÑ,UÔ,U�DÔ)ØÔ*ð 0¨tÔ/DÈÒ/IÐ/IÍcØñOô OàòOð Oð ”NÔ'×-Ò-Ñ/Ô/Ð/Ý”{¥5¨$Ñ/Ô/ð%	0ð 	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð( ”~Ô*×/Ò/Ñ1Ô1�Ø ð &Ø!%�D”JØÔ(Ð4Ý,/°Ô0EÍÈDÉ	Ì	Ñ0QÐSTÑ,UÔ,U�DÔ)Ý�t‘9”9 ’>�>ØÔ*ð "Ø/3Ô/DÈÒ/IÐ/Ið ”NÔ'×-Ò-Ñ/Ô/Ð/Ý”{¥5¨$Ñ/Ô/ð=	0ð 	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s   ÁDH;Å:B4H;È;H?ÉH?c              #  óF   K  — 	 |                       ||¦  «        }|sd S |V — Œr>   rP   )r:   rK   r-   ri   s       r   Úread_chunkedz*EmscriptenHttpResponseWrapper.read_chunked·   s9   è è € ð	Ø—I’I˜c >Ñ2Ô2ˆEØð Ø�ØˆKˆKˆKð		r   c                ór   — | j         r| j        sd S | j                              | j        ¦  «         d | _        d S r>   )r.   r2   Ú	_put_connr@   s    r   Úrelease_connz*EmscriptenHttpResponseWrapper.release_connÃ   sB   € ØŒzð 	 Ô!1ð 	Ø�4àŒ
×Ò˜TÔ-Ñ.Ô.Ð.ØˆÔÐÐr   c                ó.   — |                       ¦   «          d S r>   )ro   r@   s    r   Ú
drain_connz(EmscriptenHttpResponseWrapper.drain_connÊ   s   € Ø�
Š
‰Œˆˆˆr   c                óJ   — | j         r| j         S |                      d¬¦  «        S )NT)rg   )r/   rQ   r@   s    r   rR   z"EmscriptenHttpResponseWrapper.dataÍ   s(   € àŒ:ð 	1Ø”:Ðà—9’9¨4�9Ñ0Ô0Ð0r   ú
typing.Anyc                ó^   — | j                              d¦  «        }t          j        |¦  «        S )a  
        Parses the body of the HTTP response as JSON.

        To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to the decoder.

        This method can raise either `UnicodeDecodeError` or `json.JSONDecodeError`.

        Read more :ref:`here <json>`.
        zutf-8)rR   ÚdecodeÚ_jsonÚloads)r:   rR   s     r   Újsonz"EmscriptenHttpResponseWrapper.jsonÔ   s)   € ð Œy×Ò Ñ(Ô(ˆÝŒ{˜4Ñ Ô Ð r   c                óî   — | j         smt          | j        j        t          ¦  «        r| j        j                             ¦   «          | j        r | j                             ¦   «          d | _        d| _         d S d S )NT)r3   rk   r0   r   r   ro   r2   r@   s    r   ro   z#EmscriptenHttpResponseWrapper.closeá   sw   € ØŒ|ð 	 Ý˜$œ.Ô-­vÑ6Ô6ð ,Ø”Ô#×)Ò)Ñ+Ô+Ð+ØÔð (ØÔ ×&Ò&Ñ(Ô(Ð(Ø#'�Ô ØˆDŒLˆLˆLð	 ð 	 r   ú"typing.Generator[None, None, None]c              #  ó†  K  — ddl m}m} d}	 dV — d}nM# |$ r!}t          t	          |¦  «        ¦  «        ‚d}~w|$ r!}t          t	          |¦  «        ¦  «        ‚d}~ww xY w	 |sdt          | j        j        t          ¦  «        r/| j        j        j
        s| j        j                             ¦   «          |                      ¦   «          dS t          | j        j        t          ¦  «        r'| j        j        j
        r|                      ¦   «          dS dS dS # |sct          | j        j        t          ¦  «        r/| j        j        j
        s| j        j                             ¦   «          |                      ¦   «          w t          | j        j        t          ¦  «        r&| j        j        j
        r|                      ¦   «          w w w xY w)zý
        Catch Emscripten specific exceptions thrown by fetch.py,
        instead re-raising urllib3 variants, so that low-level exceptions
        are not leaked in the high-level api.

        On exit, release the connection back to the pool.
        r   )Ú_RequestErrorÚ_TimeoutErrorFNT)Úfetchrƒ   r„   r   Ústrr   rk   r0   r   r   rl   ro   rv   )r:   rƒ   r„   Ú
clean_exitÚes        r   rm   z,EmscriptenHttpResponseWrapper._error_catcherê   s  è è € ð 	8Ð7Ð7Ð7Ð7Ð7Ð7Ð7àˆ
ð	(ØˆEˆEˆEð ˆJˆJøØð 	'ð 	'ð 	'Ý�s 1™vœvÑ&Ô&Ð&øøøøØð 	(ð 	(ð 	(Ý¥ A¡¤Ñ'Ô'Ð'øøøøð	(øøøð ð ð (õ ˜tœ~Ô2µFÑ;Ô;ð0à œNÔ/Ô6ð0ð ”NÔ'×-Ò-Ñ/Ô/Ð/à×!Ò!Ñ#Ô#Ð#Ð#Ð#õ
 ˜tœ~Ô2µFÑ;Ô;ð(àœÔ+Ô2ð(ð ×%Ò%Ñ'Ô'Ð'Ð'Ð'ð	(ð (ð (ð (øð ð (õ ˜tœ~Ô2µFÑ;Ô;ð0à œNÔ/Ô6ð0ð ”NÔ'×-Ò-Ñ/Ô/Ð/à×!Ò!Ñ#Ô#Ð#Ð#õ
 ˜tœ~Ô2µFÑ;Ô;ð(àœÔ+Ô2ð(ð ×%Ò%Ñ'Ô'Ð'Ð'ð	(ð (øøøs/   Ž ”D •Aš6¶A¾AÁAÁD ÄB-G )NN)r"   r   r#   r$   r%   r&   )r<   r$   )r#   r$   r<   rA   )r<   r&   )r<   rD   )rH   rD   r<   rA   )rJ   N)rK   rL   r-   rM   r<   rN   )rT   r$   r<   rL   )NNF)rK   rL   r-   rM   rg   rh   r<   ri   )r<   rA   )r<   ri   )r<   rz   )r<   r�   )r   r   r   r5   Úpropertyr#   Úsetterr%   rH   rS   r6   rQ   rs   rv   rx   rR   r   ro   r   rm   Ú__classcell__)r;   s   @r   r!   r!      sù  ø€ € € € € ð ØFJð	'ð 'ð 'ð 'ð 'ð 'ð 'ð. ðð ð ñ „Xðð 	„Zðð ð ñ „Zðð ð ð  ð  ñ „Xð ð ðð ð ñ „Xðð „^ð ð  ð  ñ „^ð ð
 FJðð ð ð ð ð4#ð #ð #ð #ðN Ø&*Ø#ð	+0ð +0ð +0ð +0ð +0ð^ Ø&*ð
ð 
ð 
ð 
ð 
ð ð  ð  ð  ðð ð ð ð ð1ð 1ð 1ñ „Xð1ð!ð !ð !ð !ð ð  ð  ð  ð ð)(ð )(ð )(ñ „^ð)(ð )(ð )(ð )(ð )(r   r!   )!Ú
__future__r   r   r}   Úloggingrp   Ú
contextlibr   Údataclassesr   Úhttp.clientr   Úior   r   Ú
exceptionsr
   r   Úresponser   Ú
util.retryr   r   r   ÚTYPE_CHECKINGÚ_base_connectionr   r   Ú	getLoggerr   Úlogr   r!   r   r   r   ú<module>r™      sz  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø !Ð !Ð !Ð !Ð !Ð !Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &à	Ôð LØKÐKÐKÐKÐKÐKÐKÐKà€gÔ˜Ñ!Ô!€ð ðð ð ð ð ñ ô ñ „ððv(ð v(ð v(ð v(ð v(Ð$4ñ v(ô v(ð v(ð v(ð v(r   