
    h                    v   d dl mZ d dlZd dl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 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#d2dZ$d3dZ%d4d!Z&d5d$Z'd6d&Z(d7d)Z)	 	 	 	 	 d8d9d.Z*	 	 	 	 d:d;d1Z+dS )<    )annotationsN)dumps)AnyAsyncIterableAsyncIteratorIterableIteratorMapping)	urlencode   )StreamClosedStreamConsumed)MultipartStream)AsyncByteStreamRequestContentRequestDataRequestFilesResponseContentSyncByteStream)peek_filelike_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     P/var/www/html/prod/cognitive/venv/lib/python3.11/site-packages/httpx/_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        D ]}|V  d S )NTread)r:   r=   r   hasattrr!   r?   
CHUNK_SIZEr#   chunkparts      r$   r*   zIteratorByteStream.__iter__2   s      # 	#(: 	# """#' 4<(( 		L%%do66E ;))$/::  ; ; ; ; ;
   



 r&   N)r   r7   r   r   r.   )r0   r1   r2   rA   r%   r*   r3   r&   r$   r5   r5   *   sA        J9 9 9 9
     r&   r5   c                  "    e Zd ZdZd
dZddZd	S )AsyncIteratorByteStreamr6   r   AsyncIterable[bytes]r   r   c                T    || _         d| _        t          j        |          | _        d S r9   )r!   r:   r;   
isasyncgenr=   r"   s     r$   r%   z AsyncIteratorByteStream.__init__F   s*    #( $/77r&   r+   c               R  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 d S )NTaread)r:   r=   r   r@   r!   rK   rA   rB   s      r$   r-   z!AsyncIteratorByteStream.__aiter__K   s     # 	#(: 	# """#' 4<)) 		,,,T_========E B"l00AAAAAAAA  B B B B B
 #l       d




 +lls   B&N)r   rG   r   r   r/   )r0   r1   r2   rA   r%   r-   r3   r&   r$   rF   rF   C   sA        J8 8 8 8
     r&   rF   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 `httpx.StreamClosed`.
    r   r'   c                    t                      r   r   r)   s    r$   r*   zUnattachedStream.__iter__c   s    nnr&   r+   c               "   K   t                      r   rO   r)   s    r$   r-   zUnattachedStream.__aiter__f   s      nnr&   Nr.   r/   )r0   r1   r2   __doc__r*   r-   r3   r&   r$   rM   rM   \   sF                 r&   rM   content4str | 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', )
isinstancer   strencodelenr   r   dictr   r5   r   rF   	TypeErrortype)rR   bodycontent_lengthheaderscontent_length_or_nones        r$   encode_contentrd   k   s3    'E3<(( 9*4Wc*B*BOw~~g&&&T=AI#S%8%899r
4((((	GX	&	& 9z'4/H/H 9
 "6g!>!>!)*I6GG'-C)D)DEG*73333	G]	+	+ 9&	2/8888
Gd7mm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 r3   )r   ).0itemkeys     r$   
<listcomp>z*encode_urlencoded_data.<locals>.<listcomp>   s'    UUUt%;D%A%ABUUUr&   T)doseqrV   z!application/x-www-form-urlencodedrW   zContent-Type)itemsrY   listtupleextendappendr   r   r[   rZ   r\   r   )re   
plain_datavaluer`   ra   content_typerb   rk   s          @r$   encode_urlencoded_datarw      s     Jjjll D D
UedE]++ 	DUUUUuUUUVVVVs$:5$A$ABCCCCZt,,,33G<<DT^^N6L!/NNGJt$$$$r&   filesr   boundarybytes | None&tuple[dict[str, str], MultipartStream]c                V    t          | ||          }|                                }||fS )N)re   rx   ry   )r   get_headers)re   rx   ry   	multipartrb   s        r$   encode_multipart_datar      s4      TJJJI##%%GIr&   textrZ   c                    |                      d          }t          t          |                    }d}||d}|t          |          fS )NrV   ztext/plain; charset=utf-8rn   r[   rZ   r\   r   )r   r`   ra   rv   rb   s        r$   encode_textr      sI    ;;wDT^^N.L!/NNGJt$$$$r&   htmlc                    |                      d          }t          t          |                    }d}||d}|t          |          fS )NrV   ztext/html; charset=utf-8rn   r   )r   r`   ra   rv   rb   s        r$   encode_htmlr      sI    ;;wDT^^N-L!/NNGJt$$$$r&   jsonr   c                    t          | ddd                              d          }t          t          |                    }d}||d}|t	          |          fS )NF),:)ensure_ascii
separators	allow_nanrV   zapplication/jsonrn   )
json_dumpsr[   rZ   r\   r   )r   r`   ra   rv   rb   s        r$   encode_jsonr      se    5Z5  fWoo 	 T^^N%L!/NNGJt$$$$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&   )
rY   r
   warningswarnDeprecationWarningrd   r   rw   r   r   )rR   re   rx   r   ry   messages         r$   encode_requestr      s     
4 9 9 Jg1a@@@@d###g&&&	 !$TZR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&   )rd   r   r   r   r   )rR   r   r   r   s       r$   encode_responser      se     g&&&		4   		4   		4   z#r&   )rR   rS   r   rT   )re   r   r   rf   )re   r   rx   r   ry   rz   r   r{   )r   rZ   r   rf   )r   rZ   r   rf   )r   r   r   rf   )NNNNN)rR   r   re   r   rx   r   r   r   ry   rz   r   rT   )NNNN)
rR   r   r   r   r   r   r   r   r   rT   ),
__future__r   r;   r   r   r   r   typingr   r   r   r   r	   r
   urllib.parser   _exceptionsr   r   
_multipartr   _typesr   r   r   r   r   r   _utilsr   r   __all__r   r5   rF   rM   rd   rw   r   r   r   r   r   r   r3   r&   r$   <module>r      s   " " " " " "   $ $ $ $ $ $                # " " " " " 5 5 5 5 5 5 5 5 ' ' ' ' ' '                A @ @ @ @ @ @ @.    .          2    o   2       I I I I:% % % %    % % % %% % % %% % % % &*#!%!         H '+	      r&   