HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/httpx/__pycache__/_content.cpython-310.pyc
o

���g��@sTddlmZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
ddlmZddlmZmZddlmZdd	lmZmZmZmZmZmZdd
lmZmZdgZGdd�dee�Z Gd
d�de�Z!Gdd�de�Z"Gdd�dee�Z#d:dd�Z$d;dd�Z%d<d#d$�Z&d=d'd(�Z'd>d*d+�Z(d?d.d/�Z)					d@dAd4d5�Z*				dBdCd8d9�Z+dS)D�)�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@s*eZdZddd�Zddd	�Zddd�Zd
S)r�stream�bytes�return�NonecCs
||_dS�N��_stream��selfr�r!�9/usr/local/lib/python3.10/dist-packages/httpx/_content.py�__init__ s
zByteStream.__init__�Iterator[bytes]ccs�|jVdSrr�r r!r!r"�__iter__#��zByteStream.__iter__�AsyncIterator[bytes]cCs�|jVdSrrr%r!r!r"�	__aiter__&r'zByteStream.__aiter__N)rrrr�rr$�rr()�__name__�
__module__�__qualname__r#r&r)r!r!r!r"rs

c@�$eZdZdZddd�Zd
d	d
�ZdS)�IteratorByteStream�r�Iterable[bytes]rrcC�||_d|_t�|�|_dS�NF)r�_is_stream_consumed�inspect�isgenerator�
_is_generatorrr!r!r"r#-�zIteratorByteStream.__init__r$ccsn�|jr
|jr
t��d|_t|jd�r,|j�|j�}|r*|V|j�|j�}|sdSdS|jD]}|Vq/dS)NT�read)r5r8r
�hasattrrr:�
CHUNK_SIZE�r �chunk�partr!r!r"r&2s��
�zIteratorByteStream.__iter__N)rr2rrr*)r,r-r.r<r#r&r!r!r!r"r0*�
r0c@r/)�AsyncIteratorByteStreamr1r�AsyncIterable[bytes]rrcCr3r4)rr5r6�
isasyncgenr8rr!r!r"r#Fr9z AsyncIteratorByteStream.__init__r(cCs��|jr
|jr
t��d|_t|jd�r2|j�|j�IdH}|r0|V|j�|j�IdH}|sdSdS|j2z	3dHW}|Vq56dS)NT�aread)r5r8r
r;rrDr<r=r!r!r"r)Ks���z!AsyncIteratorByteStream.__aiter__N)rrBrrr+)r,r-r.r<r#r)r!r!r!r"rACr@rAc@s$eZdZdZd
dd�Zddd�Zd	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`.
    rr$cCst��r�rr%r!r!r"r&cszUnattachedStream.__iter__r(cCs�t��rrFr%r!r!r"r)fs�zUnattachedStream.__aiter__Nr*r+)r,r-r.�__doc__r&r)r!r!r!r"rE\s
rE�content�4str | bytes | Iterable[bytes] | AsyncIterable[bytes]r�7tuple[dict[str, str], SyncByteStream | AsyncByteStream]cCs�t|ttf�r't|t�r|�d�n|}t|�}|rdt|�ini}|t|�fSt|t�rJt|t�sJt|�}|dur>ddi}ndt|�i}|t	|�fSt|t
�rYddi}|t|�fStdt
|�����)N�utf-8�Content-LengthzTransfer-Encoding�chunkedzUnexpected type for 'content', )�
isinstancer�str�encode�lenrr�dictrr0rrA�	TypeError�type)rH�body�content_length�headers�content_length_or_noner!r!r"�encode_contentks

rY�datar�!tuple[dict[str, str], ByteStream]cs�g}|��D]!\�}t|ttf�r|��fdd�|D��q|��t|�f�qt|dd��d�}t	t
|��}d}||d�}|t|�fS)Ncsg|]}�t|�f�qSr!)r)�.0�item��keyr!r"�
<listcomp>�sz*encode_urlencoded_data.<locals>.<listcomp>T)�doseqrKz!application/x-www-form-urlencoded�rLzContent-Type)�itemsrN�list�tuple�extend�appendrr
rPrOrQr)rZ�
plain_data�valuerUrV�content_typerWr!r^r"�encode_urlencoded_data�s
rk�filesr�boundary�bytes | None�&tuple[dict[str, str], MultipartStream]cCst|||d�}|��}||fS)N)rZrlrm)r�get_headers)rZrlrm�	multipartrWr!r!r"�encode_multipart_data�srr�textrOcC�0|�d�}tt|��}d}||d�}|t|�fS)NrKztext/plain; charset=utf-8rb�rPrOrQr)rsrUrVrjrWr!r!r"�encode_text��


rv�htmlcCrt)NrKztext/html; charset=utf-8rbru)rxrUrVrjrWr!r!r"�encode_html�rwry�jsonrcCs<t|dddd��d�}tt|��}d}||d�}|t|�fS)NF)�,�:)�ensure_ascii�
separators�	allow_nanrKzapplication/jsonrb)�
json_dumpsrPrOrQr)rzrUrVrjrWr!r!r"�encode_json�s��
r��RequestContent | None�RequestData | None�RequestFiles | None�
Any | NonecCsz|durt|t�sd}tj|tdd�t|�S|durt|�S|r)t|p%i||�S|r/t|�S|dur7t|�Sit	d�fS)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.�)�
stacklevel�)
rNr	�warnings�warn�DeprecationWarningrYrrrkr�r)rHrZrlrzrm�messager!r!r"�encode_request�sr��ResponseContent | None�
str | NonecCsL|durt|�S|durt|�S|durt|�S|dur t|�Sitd�fS)zc
    Handles encoding the given `content`, returning a two-tuple of
    (<headers>, <stream>).
    Nr�)rYrvryr�r)rHrsrxrzr!r!r"�encode_response�s
r�)rHrIrrJ)rZrrr[)rZrrlrrmrnrro)rsrOrr[)rxrOrr[)rzrrr[)NNNNN)rHr�rZr�rlr�rzr�rmrnrrJ)NNNN)
rHr�rsr�rxr�rzr�rrJ),�
__future__rr6r�rzrr��typingrrrrrr	�urllib.parser
�_exceptionsrr
�
_multipartr�_typesrrrrrr�_utilsrr�__all__rr0rArErYrkrrrvryr�r�r�r!r!r!r"�<module>s@  





�$�