§
    ëXÊj*!  ã                  ó‚  — d dl mZ d dlZd dlZd dlmZmZmZ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mZmZ ddlmZm Z  dgZ! G d„ dee¦  «        Z" G d„ de¦  «        Z# G d„ de¦  «        Z$ G d„ dee¦  «        Z%d3d„Z&d4d„Z'd5d"„Z(d6d%„Z)d7d'„Z*d8d*„Z+	 	 	 	 	 d9d:d/„Z,	 	 	 	 d;d<d2„Z-dS )=é    )ÚannotationsN)ÚAsyncGeneratorÚAsyncIterableÚAsyncIteratorÚIterableÚIteratorÚMapping)Údumps)ÚAny)Ú	urlencodeé   )ÚStreamClosedÚStreamConsumed)ÚMultipartStream)ÚAsyncByteStreamÚRequestContentÚRequestDataÚRequestFilesÚResponseContentÚSyncByteStream)Úpeek_filelike_remaining_lengthÚprimitive_value_to_strÚ
ByteStreamc                  ó&   — e Zd Zdd„Zdd„Zdd	„Zd
S )r   ÚstreamÚbytesÚreturnÚNonec                ó   — || _         d S ©N©Ú_stream©Úselfr   s     ú@C:\Projects\Historical\venv\Lib\site-packages\httpx2/_content.pyÚ__init__zByteStream.__init__   s   € ØˆŒˆˆó    úIterator[bytes]c              #  ó   K  — | j         V — d S r    r!   ©r$   s    r%   Ú__iter__zByteStream.__iter__   s   è è € ØŒlÐÐÐÐÐr'   úAsyncIterator[bytes]c               ó   K  — | j         W V — d S r    r!   r*   s    r%   Ú	__aiter__zByteStream.__aiter__"   s   è è € ØŒlÐÐÐÐÐÐr'   N)r   r   r   r   ©r   r(   ©r   r,   )Ú__name__Ú
__module__Ú__qualname__r&   r+   r.   © r'   r%   r   r      sP   € € € € € ðð ð ð ðð ð ð ðð ð ð ð ð r'   c                  ó"   — e Zd ZdZd
d„Zdd„Zd	S )ÚIteratorByteStreamé   r   úIterable[bytes]r   r   c                óT   — || _         d| _        t          j        |¦  «        | _        d S ©NF)r"   Ú_is_stream_consumedÚinspectÚisgeneratorÚ_is_generatorr#   s     r%   r&   zIteratorByteStream.__init__)   s*   € ØˆŒØ#(ˆÔ Ý$Ô0°Ñ8Ô8ˆÔÐÐr'   r(   c              #  ó(  K  — | j         r| j        rt          ¦   «         ‚d| _         t          | j        d¦  «        rJ| j                             | j        ¦  «        }|r'|V — | j                             | j        ¦  «        }|°%d S d S | j        E d {V —† d S )NTÚread)r;   r>   r   Úhasattrr"   r@   Ú
CHUNK_SIZE)r$   Úchunks     r%   r+   zIteratorByteStream.__iter__.   sÂ   è è € ØÔ#ð 	#¨Ô(:ð 	#Ý Ñ"Ô"Ð"à#'ˆÔ Ý�4”< Ñ(Ô(ð 	$à”L×%Ò% d¤oÑ6Ô6ˆEØð ;Ø���Øœ×)Ò)¨$¬/Ñ:Ô:�ð ð ;ð ;ð ;ð ;ð ;ð
 ”|Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#r'   N)r   r8   r   r   r/   )r1   r2   r3   rB   r&   r+   r4   r'   r%   r6   r6   &   sA   € € € € € Ø€Jð9ð 9ð 9ð 9ð
$ð $ð $ð $ð $ð $r'   r6   c                  ó"   — e Zd ZdZd
d„Zdd„Zd	S )ÚAsyncIteratorByteStreamr7   r   úAsyncIterable[bytes]r   r   c                óT   — || _         d| _        t          j        |¦  «        | _        d S r:   )r"   r;   r<   Ú
isasyncgenr>   r#   s     r%   r&   z AsyncIteratorByteStream.__init__A   s*   € ØˆŒØ#(ˆÔ Ý$Ô/°Ñ7Ô7ˆÔÐÐr'   r,   c               óJ  K  — | j         r| j        rt          ¦   «         ‚d| _         t          | j        d¦  «        rW| j                             | j        ¦  «        ƒ d {V —†}|r.|W V — | j                             | j        ¦  «        ƒ d {V —†}|°,d S d S | j                             ¦   «         }	 |2 3 d {V —†}|W V — Œ6 	 t          |t          ¦  «        r| 
                    ¦   «         ƒ d {V —† d S d S # t          |t          ¦  «        r| 
                    ¦   «         ƒ d {V —† w w xY w)NTÚaread)r;   r>   r   rA   r"   rJ   rB   r.   Ú
isinstancer   Úaclose)r$   rC   r   Úparts       r%   r.   z!AsyncIteratorByteStream.__aiter__F   s£  è è € ØÔ#ð 	#¨Ô(:ð 	#Ý Ñ"Ô"Ð"à#'ˆÔ Ý�4”< Ñ)Ô)ð 	*àœ,×,Ò,¨T¬_Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=ˆEØð BØ����Ø"œl×0Ò0°´ÑAÔAÐAÐAÐAÐAÐAÐA�ð ð Bð Bð Bð Bð Bð ”\×+Ò+Ñ-Ô-ˆFð*Ø"(ð ð ð ð ð ð ð ˜$Ø�J�J�J�J�Jð #) &õ ˜f¥nÑ5Ô5ð *Ø Ÿ-š-™/œ/Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ð*ð *ø•:˜f¥nÑ5Ô5ð *Ø Ÿ-š-™/œ/Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ð*øøøs   Â,C0 Â.B;Â4C0 Ã02D"N)r   rF   r   r   r0   )r1   r2   r3   rB   r&   r.   r4   r'   r%   rE   rE   >   sA   € € € € € Ø€Jð8ð 8ð 8ð 8ð
*ð *ð *ð *ð *ð *r'   rE   c                  ó"   — e Zd ZdZdd„Zd	d„ZdS )
ÚUnattachedStreamzÀ
    If a request or response is serialized using pickle, then it is no longer
    attached to a stream for I/O purposes. Any stream operations should result
    in `httpx2.StreamClosed`.
    r   r(   c                ó   — t          ¦   «         ‚r    ©r   r*   s    r%   r+   zUnattachedStream.__iter__d   s   € Ý‰nŒnÐr'   r,   c               ó"   K  — t          ¦   «         ‚r    rQ   r*   s    r%   r.   zUnattachedStream.__aiter__g   s   è è € Ý‰nŒnÐr'   Nr/   r0   )r1   r2   r3   Ú__doc__r+   r.   r4   r'   r%   rO   rO   ]   sF   € € € € € ðð ðð ð ð ðð ð ð ð ð r'   rO   Úcontentú4str | bytes | Iterable[bytes] | AsyncIterable[bytes]r   ú7tuple[dict[str, str], SyncByteStream | AsyncByteStream]c                óR  — t          | t          t          f¦  «        rat          | t          ¦  «        r|                      d¦  «        n| }t	          |¦  «        }|rdt          |¦  «        ini }|t          |¦  «        fS t          | t          ¦  «        rMt          | t          ¦  «        s8t          | ¦  «        }|€ddi}ndt          |¦  «        i}|t          | ¦  «        fS t          | t          ¦  «        rddi}|t          | ¦  «        fS t          dt          | ¦  «        ›�¦  «        ‚)Núutf-8úContent-LengthzTransfer-EncodingÚchunkedzUnexpected type for 'content', )rK   r   ÚstrÚencodeÚlenr   r   Údictr   r6   r   rE   Ú	TypeErrorÚtype)rT   ÚbodyÚcontent_lengthÚheadersÚcontent_length_or_nones        r%   Úencode_contentre   l   s4  € õ �'�E¥3˜<Ñ(Ô(ð 9Ý*4°W½cÑ*BÔ*BÐOˆw�~Š~˜gÑ&Ô&Ð&ÈˆÝ˜T™œˆØ=AÐIÐ#¥S¨Ñ%8Ô%8Ð9Ð9ÀrˆØ�
 4Ñ(Ô(Ð(Ð(å	�G�XÑ	&Ô	&ð 9­z¸'Å4Ñ/HÔ/Hð 9õ
 "@ÀÑ!HÔ!HÐà!Ð)Ø*¨IÐ6ˆGˆGà'­Ð-CÑ)DÔ)DÐEˆGØÕ*¨7Ñ3Ô3Ð3Ð3å	�G�]Ñ	+Ô	+ð 9Ø&¨	Ð2ˆØÕ/°Ñ8Ô8Ð8Ð8å
ÐGµd¸7±m´mÐGÐGÑ
HÔ
HÐHr'   Údatar   ú!tuple[dict[str, str], ByteStream]c                ó°  ‡— g }|                       ¦   «         D ]g\  Š}t          |t          t          f¦  «        r"|                     ˆfd„|D ¦   «         ¦  «         ŒC|                     ‰t          |¦  «        f¦  «         Œht          |d¬¦  «                             d¦  «        }t          t          |¦  «        ¦  «        }d}||dœ}|t          |¦  «        fS )Nc                ó2   •— g | ]}‰t          |¦  «        f‘ŒS r4   )r   )Ú.0ÚitemÚkeys     €r%   ú
<listcomp>z*encode_urlencoded_data.<locals>.<listcomp>�   s'   ø€ ÐUÐUÐUÀt Õ%;¸DÑ%AÔ%AÐBÐUÐUÐUr'   T)ÚdoseqrX   z!application/x-www-form-urlencoded©rY   zContent-Type)ÚitemsrK   ÚlistÚtupleÚextendÚappendr   r   r\   r[   r]   r   )rf   Ú
plain_dataÚvaluera   rb   Úcontent_typerc   rl   s          @r%   Úencode_urlencoded_datarx   ‰   sã   ø€ Ø(*€JØ—j’j‘l”lð Dð D‰
ˆˆUÝ�e�d¥E˜]Ñ+Ô+ð 	DØ×ÒÐUÐUÐUÐUÈuÐUÑUÔUÑVÔVÐVÐVà×Ò˜sÕ$:¸5Ñ$AÔ$AÐBÑCÔCÐCÐCÝ�Z tÐ,Ñ,Ô,×3Ò3°GÑ<Ô<€DÝ�˜T™œ‘^”^€NØ6€LØ!/ÀÐNÐN€GØ•J˜tÑ$Ô$Ð$Ð$r'   Úfilesr   Úboundaryúbytes | Noneú&tuple[dict[str, str], MultipartStream]c                óV   — t          | ||¬¦  «        }|                     ¦   «         }||fS )N)rf   ry   rz   )r   Úget_headers)rf   ry   rz   Ú	multipartrc   s        r%   Úencode_multipart_datar€   —   s4   € õ   T°ÀÐJÑJÔJ€IØ×#Ò#Ñ%Ô%€GØ�IÐÐr'   Útextr[   c                ó”   — |                       d¦  «        }t          t          |¦  «        ¦  «        }d}||dœ}|t          |¦  «        fS )NrX   ztext/plain; charset=utf-8ro   ©r\   r[   r]   r   )r�   ra   rb   rw   rc   s        r%   Úencode_textr„   Ÿ   sI   € Ø�;Š;�wÑÔ€DÝ�˜T™œ‘^”^€NØ.€LØ!/ÀÐNÐN€GØ•J˜tÑ$Ô$Ð$Ð$r'   Úhtmlc                ó”   — |                       d¦  «        }t          t          |¦  «        ¦  «        }d}||dœ}|t          |¦  «        fS )NrX   ztext/html; charset=utf-8ro   rƒ   )r…   ra   rb   rw   rc   s        r%   Úencode_htmlr‡   §   sI   € Ø�;Š;�wÑÔ€DÝ�˜T™œ‘^”^€NØ-€LØ!/ÀÐNÐN€GØ•J˜tÑ$Ô$Ð$Ð$r'   Újsonr   c                ó¶   — t          | ddd¬¦  «                             d¦  «        }t          t          |¦  «        ¦  «        }d}||dœ}|t	          |¦  «        fS )NF)ú,ú:)Úensure_asciiÚ
separatorsÚ	allow_nanrX   zapplication/jsonro   )Ú
json_dumpsr\   r[   r]   r   )rˆ   ra   rb   rw   rc   s        r%   Úencode_jsonr�   ¯   s^   € Ý�d¨¸:ÐQVÐWÑWÔW×^Ò^Ð_fÑgÔg€DÝ�˜T™œ‘^”^€NØ%€LØ!/ÀÐNÐN€GØ•J˜tÑ$Ô$Ð$Ð$r'   úRequestContent | NoneúRequestData | NoneúRequestFiles | Noneú
Any | Nonec                ó<  — |�Bt          |t          ¦  «        s-d}t          j        |t          d¬¦  «         t          |¦  «        S | �t          | ¦  «        S |rt          |pi ||¦  «        S |rt          |¦  «        S |�t          |¦  «        S i t          d¦  «        fS )z€
    Handles encoding the given `content`, `data`, `files`, and `json`,
    returning a two-tuple of (<headers>, <stream>).
    Nz5Use 'content=<...>' to upload raw bytes/text content.é   )Ú
stacklevelr'   )
rK   r	   ÚwarningsÚwarnÚDeprecationWarningre   r€   rx   r�   r   )rT   rf   ry   rˆ   rz   Úmessages         r%   Úencode_requestrœ   ·   s´   € ð Ð¥
¨4µÑ 9Ô 9Ðð JˆÝŒ�gÕ1¸aÐ@Ñ@Ô@Ð@Ý˜dÑ#Ô#Ð#àÐÝ˜gÑ&Ô&Ð&Ø	ð !Ý$ T Z¨R°¸ÑAÔAÐAØ	ð !Ý% dÑ+Ô+Ð+Ø	Ð	Ý˜4Ñ Ô Ð à�z˜#‰ŒÐÐr'   úResponseContent | Noneú
str | Nonec                ó¬   — | �t          | ¦  «        S |�t          |¦  «        S |�t          |¦  «        S |�t          |¦  «        S i t	          d¦  «        fS )zc
    Handles encoding the given `content`, returning a two-tuple of
    (<headers>, <stream>).
    Nr'   )re   r„   r‡   r�   r   )rT   r�   r…   rˆ   s       r%   Úencode_responser    Ú   se   € ð ÐÝ˜gÑ&Ô&Ð&Ø	Ð	Ý˜4Ñ Ô Ð Ø	Ð	Ý˜4Ñ Ô Ð Ø	Ð	Ý˜4Ñ Ô Ð à�z˜#‰ŒÐÐr'   )rT   rU   r   rV   )rf   r   r   rg   )rf   r   ry   r   rz   r{   r   r|   )r�   r[   r   rg   )r…   r[   r   rg   )rˆ   r   r   rg   )NNNNN)rT   r‘   rf   r’   ry   r“   rˆ   r”   rz   r{   r   rV   )NNNN)
rT   r�   r�   rž   r…   rž   rˆ   r”   r   rV   ).Ú
__future__r   r<   r˜   Úcollections.abcr   r   r   r   r   r	   rˆ   r
   r�   Útypingr   Úurllib.parser   Ú_exceptionsr   r   Ú
_multipartr   Ú_typesr   r   r   r   r   r   Ú_utilsr   r   Ú__all__r   r6   rE   rO   re   rx   r€   r„   r‡   r�   rœ   r    r4   r'   r%   ú<module>rª      s½  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eØ $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð #Ð "Ð "Ð "Ð "Ð "à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð KÐ JÐ JÐ JÐ JÐ JÐ JÐ Jàˆ.€ðð ð ð ð � .ñ ô ð ð$ð $ð $ð $ð $˜ñ $ô $ð $ð0*ð *ð *ð *ð *˜oñ *ô *ð *ð>ð ð ð ð �¨ñ ô ð ðIð Ið Ið Ið:%ð %ð %ð %ðð ð ð ð%ð %ð %ð %ð%ð %ð %ð %ð%ð %ð %ð %ð &*Ø#Ø!%ØØ!ð ð  ð  ð  ð  ðH '+ØØØð	ð ð ð ð ð ð r'   