Ë
    Eü´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%	 	 	 	 dd„Z&dd„Z'	 	 	 	 	 	 	 	 dd„Z(dd„Z)d d„Z*d!d„Z+	 	 	 	 	 d"	 	 	 	 	 	 	 	 	 	 	 d#d„Z,	 	 	 	 d$	 	 	 	 	 	 	 	 	 d%d„Z-y)&é    )Ú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y)r   c                ó   — || _         y ©N©Ú_stream©ÚselfÚstreams     úM/root/workspace/ytshorts/venv/lib/python3.12/site-packages/httpx2/_content.pyÚ__init__zByteStream.__init__   s	   € Øˆ�ó    c              #  ó(   K  — | j                   –— y ­wr   r   ©r    s    r"   Ú__iter__zByteStream.__iter__   s   è ø€ Ø�l‰lÓùs   ‚c               ó*   K  — | j                   ­–— y ­wr   r   r&   s    r"   Ú	__aiter__zByteStream.__aiter__"   s   è ø€ Ø�l‰lÔùs   ‚N)r!   ÚbytesÚreturnÚNone©r+   zIterator[bytes]©r+   zAsyncIterator[bytes])Ú__name__Ú
__module__Ú__qualname__r#   r'   r)   © r$   r"   r   r      s   „ óóôr$   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚIteratorByteStreamé   c                óT   — || _         d| _        t        j                  |«      | _        y ©NF)r   Ú_is_stream_consumedÚinspectÚisgeneratorÚ_is_generatorr   s     r"   r#   zIteratorByteStream.__init__)   s$   € ØˆŒØ#(ˆÔ Ü$×0Ñ0°Ó8ˆÕr$   c              #  ó`  K  — | j                   r| j                  r
t        «       ‚d| _         t        | j                  d«      rU| j                  j                  | j                  «      }|r-|–— | j                  j                  | j                  «      }|rŒ,y y | j                  E d {  –—†  y 7 Œ­w)NTÚread)r8   r;   r   Úhasattrr   r=   Ú
CHUNK_SIZE)r    Úchunks     r"   r'   zIteratorByteStream.__iter__.   s‚   è ø€ Ø×#Ò#¨×(:Ò(:Ü Ó"Ð"à#'ˆÔ Ü�4—<‘< Ô(à—L‘L×%Ñ% d§o¡oÓ6ˆEÙØ’ØŸ™×)Ñ)¨$¯/©/Ó:�ô ð
 —|‘|×#Ò#ús   ‚BB.ÂB.Â&B,Â'B.N)r!   zIterable[bytes]r+   r,   r-   )r/   r0   r1   r?   r#   r'   r2   r$   r"   r4   r4   &   s   „ Ø€Jó9ô
$r$   r4   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚAsyncIteratorByteStreamr5   c                óT   — || _         d| _        t        j                  |«      | _        y r7   )r   r8   r9   Ú
isasyncgenr;   r   s     r"   r#   z AsyncIteratorByteStream.__init__A   s$   € ØˆŒØ#(ˆÔ Ü$×/Ñ/°Ó7ˆÕr$   c               óp  K  — | j                   r| j                  r
t        «       ‚d| _         t        | j                  d«      rf| j                  j                  | j                  «      ƒ d {  –—† }|r6|­–— | j                  j                  | j                  «      ƒ d {  –—† }|rŒ5y y | j                  j                  «       }	 |2 3 d {  –—† }|­–— Œ7 Œi7 Œ77 Œ6 	 t        |t        «      r|j                  «       ƒ d {  –—†7   y y # t        |t        «      r|j                  «       ƒ d {  –—†7   w w xY w­w)NTÚaread)r8   r;   r   r>   r   rF   r?   r)   Ú
isinstancer   Úaclose)r    r@   r!   Úparts       r"   r)   z!AsyncIteratorByteStream.__aiter__F   sù   è ø€ Ø×#Ò#¨×(:Ò(:Ü Ó"Ð"à#'ˆÔ Ü�4—<‘< Ô)àŸ,™,×,Ñ,¨T¯_©_Ó=×=ˆEÙØ“Ø"Ÿl™l×0Ñ0°·±ÓA×A�ô ð —\‘\×+Ñ+Ó-ˆFð*Ø"(÷ ð ˜$Ø”Jð >øð Bøðø¡&ô ˜f¤nÔ5Ø Ÿ-™-›/×)Ò)ð 6ø”:˜f¤nÔ5Ø Ÿ-™-›/×)Ò)ð 6üs„   ‚A(D6Á*CÁ+3D6ÂCÂD6Â&D6ÃD ÃCÃ	CÃ
CÃD ÃD6ÃD6ÃCÃD Ã#D6Ã?DÄ D6Ä$D3Ä+D.Ä,D3Ä3D6N)r!   zAsyncIterable[bytes]r+   r,   r.   )r/   r0   r1   r?   r#   r)   r2   r$   r"   rB   rB   >   s   „ Ø€Jó8ô
*r$   rB   c                  ó    — e Zd ZdZdd„Zdd„Zy)Ú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`.
    c                ó   — t        «       ‚r   ©r   r&   s    r"   r'   zUnattachedStream.__iter__d   s
   € Ü‹nÐr$   c               ó   K  — t        «       ‚­wr   rM   r&   s    r"   r)   zUnattachedStream.__aiter__g   s   è ø€ Ü‹nÐùs   ‚Nr-   r.   )r/   r0   r1   Ú__doc__r'   r)   r2   r$   r"   rK   rK   ]   s   „ ñóôr$   rK   c                óÎ  — t        | t        t        f«      rLt        | t        «      r| j                  d«      n| }t	        |«      }|rdt        |«      ini }|t        |«      fS t        | t        «      r<t        | t        «      s,t        | «      }|€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', )rG   r*   ÚstrÚencodeÚlenr   r   Údictr   r4   r   rB   Ú	TypeErrorÚtype)ÚcontentÚbodyÚcontent_lengthÚheadersÚcontent_length_or_nones        r"   Úencode_contentr_   l   sç   € ô �'œE¤3˜<Ô(Ü*4°W¼cÔ*Bˆw�~‰~˜gÔ&ÈˆÜ˜T›ˆÙ=AÐ#¤S¨Ó%8Ñ9ÀrˆØœ
 4Ó(Ð(Ð(ä	�GœXÔ	&¬z¸'Ä4Ô/Hô
 "@ÀÓ!HÐà!Ð)Ø*¨IÐ6‰Gà'¬Ð-CÓ)DÐEˆGØÔ*¨7Ó3Ð3Ð3ä	�Gœ]Ô	+Ø&¨	Ð2ˆØÔ/°Ó8Ð8Ð8ä
Ð5´d¸7³mÐ5FÐGÓ
HÐHr$   c           
     ó‚  — g }| j                  «       D ]b  \  }}t        |t        t        f«      r+|j	                  |D �cg c]  }|t        |«      f‘Œ c}«       ŒG|j                  |t        |«      f«       Œd t        |d¬«      j                  d«      }t        t        |«      «      }d}||dœ}|t        |«      fS c c}w )NT)ÚdoseqrQ   z!application/x-www-form-urlencoded©rR   zContent-Type)ÚitemsrG   ÚlistÚtupleÚextendr   Úappendr   rU   rT   rV   r   )	ÚdataÚ
plain_dataÚkeyÚvalueÚitemr[   r\   Úcontent_typer]   s	            r"   Úencode_urlencoded_datarn   ‰   s¸   € Ø(*€JØ—j‘j“lò D‰
ˆˆUÜ�eœd¤E˜]Ô+Ø×ÑÈuÖUÀt Ô%;¸DÓ%AÒBÒUÕVà×Ñ˜sÔ$:¸5Ó$AÐBÕCð	Dô
 �Z tÔ,×3Ñ3°GÓ<€DÜœ˜T›“^€NØ6€LØ!/ÀÑN€GØ”J˜tÓ$Ð$Ð$ùò Vs   ¾B<
c                óF   — t        | ||¬«      }|j                  «       }||fS )N)rh   ÚfilesÚboundary)r   Úget_headers)rh   rp   rq   Ú	multipartr]   s        r"   Úencode_multipart_datart   —   s+   € ô   T°ÀÔJ€IØ×#Ñ#Ó%€GØ�IÐÐr$   c                ót   — | j                  d«      }t        t        |«      «      }d}||dœ}|t        |«      fS )NrQ   ztext/plain; charset=utf-8rb   ©rU   rT   rV   r   )Útextr[   r\   rm   r]   s        r"   Úencode_textrx   Ÿ   s<   € Ø�;‰;�wÓ€DÜœ˜T›“^€NØ.€LØ!/ÀÑN€GØ”J˜tÓ$Ð$Ð$r$   c                ót   — | j                  d«      }t        t        |«      «      }d}||dœ}|t        |«      fS )NrQ   ztext/html; charset=utf-8rb   rv   )Úhtmlr[   r\   rm   r]   s        r"   Úencode_htmlr{   §   s<   € Ø�;‰;�wÓ€DÜœ˜T›“^€NØ-€LØ!/ÀÑN€GØ”J˜tÓ$Ð$Ð$r$   c                óŽ   — t        | ddd¬«      j                  d«      }t        t        |«      «      }d}||dœ}|t	        |«      fS )NF)ú,ú:)Úensure_asciiÚ
separatorsÚ	allow_nanrQ   zapplication/jsonrb   )Ú
json_dumpsrU   rT   rV   r   )Újsonr[   r\   rm   r]   s        r"   Úencode_jsonr„   ¯   sK   € Ü�d¨¸:ÐQVÔW×^Ñ^Ð_fÓg€DÜœ˜T›“^€NØ%€LØ!/ÀÑN€GØ”J˜tÓ$Ð$Ð$r$   c                ó  — |�9t        |t        «      s)d}t        j                  |t        d¬«       t        |«      S | �t        | «      S |rt        |xs 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>).
    z5Use 'content=<...>' to upload raw bytes/text content.é   )Ú
stacklevelr$   )
rG   r	   ÚwarningsÚwarnÚDeprecationWarningr_   rt   rn   r„   r   )rZ   rh   rp   rƒ   rq   Úmessages         r"   Úencode_requestrŒ   ·   sŒ   € ð Ð¤
¨4´Ô 9ð JˆÜ�‰�gÔ1¸aÕ@Ü˜dÓ#Ð#àÐÜ˜gÓ&Ð&Ù	Ü$ T¢Z¨R°¸ÓAÐAÙ	Ü% dÓ+Ð+Ø	Ð	Ü˜4Ó Ð àŒz˜#‹ÐÐr$   c                ó„   — | �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>).
    r$   )r_   rx   r{   r„   r   )rZ   rw   rz   rƒ   s       r"   Úencode_responserŽ   Ú   sW   € ð ÐÜ˜gÓ&Ð&Ø	Ð	Ü˜4Ó Ð Ø	Ð	Ü˜4Ó Ð Ø	Ð	Ü˜4Ó Ð àŒz˜#‹ÐÐr$   )rZ   z4str | bytes | Iterable[bytes] | AsyncIterable[bytes]r+   ú7tuple[dict[str, str], SyncByteStream | AsyncByteStream])rh   r   r+   ú!tuple[dict[str, str], ByteStream])rh   r   rp   r   rq   úbytes | Noner+   z&tuple[dict[str, str], MultipartStream])rw   rT   r+   r�   )rz   rT   r+   r�   )rƒ   r   r+   r�   )NNNNN)rZ   zRequestContent | Nonerh   zRequestData | Nonerp   zRequestFiles | Nonerƒ   ú
Any | Nonerq   r‘   r+   r�   )NNNN)
rZ   zResponseContent | Nonerw   ú
str | Nonerz   r“   rƒ   r’   r+   r�   ).Ú
__future__r   r9   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   r4   rB   rK   r_   rn   rt   rx   r{   r„   rŒ   rŽ   r2   r$   r"   ú<module>r�      sS  ðÝ "ã Û ß e× eÝ $õõ #ç 5Ý '÷÷ ÷ Kàˆ.€ô� .ô ô$˜ô $ô0*˜oô *ô>�¨ô ðIØAðIà<óIó:%ðØ
ðØ*ðØ6Bðà+óó%ó%ó%ð &*Ø#Ø!%ØØ!ð Ø"ð à
ð ð ð ð ð	 ð
 ð ð =ó ðH '+ØØØð	Ø#ðà
ðð ðð ð	ð
 =ôr$   