o �J�h��@sTddlmZddlZddlZddlmZddlmZm Z m Z m Z m Z m Z ddlmZddlmZmZddlmZdd lmZmZmZmZmZmZdd lmZmZd gZGd d �d ee�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 �Zdd d �Zd S)r�stream�bytes�return�NonecCs ||_dS�N��_stream��selfr�r!�LC:\pinokio\api\whisper-webui.git\app\env\lib\site-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 �Zd S)�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�Zd dd�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�headersZcontent_length_or_noner!r!r"�encode_contentks      rX�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)rYZ plain_data�valuerUrV� content_typerWr!r]r"�encode_urlencoded_data�s   ri�filesr�boundary� bytes | None�&tuple[dict[str, str], MultipartStream]cCst|||d�}|��}||fS)N)rYrjrk)rZ get_headers)rYrjrk� multipartrWr!r!r"�encode_multipart_data�sro�textrOcC�0|�d�}tt|��}d}||d�}|t|�fS)NrKztext/plain; charset=utf-8ra�rPrOrQr)rprUrVrhrWr!r!r"� encode_text��    rs�htmlcCrq)NrKztext/html; charset=utf-8rarr)rurUrVrhrWr!r!r"� encode_html�rtrv�jsonrcCs<t|dddd��d�}tt|��}d}||d�}|t|�fS)NF)�,�:)� ensure_ascii� separators� allow_nanrKzapplication/jsonra)� json_dumpsrPrOrQr)rwrUrVrhrWr!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�DeprecationWarningrXrorir~r)rHrYrjrwrk�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�)rXrsrvr~r)rHrprurwr!r!r"�encode_response�s  r�)rHrIrrJ)rYrrrZ)rYrrjrrkrlrrm)rprOrrZ)rurOrrZ)rwrrrZ)NNNNN) rHrrYr�rjr�rwr�rkrlrrJ)NNNN) rHr�rpr�rur�rwr�rrJ),� __future__rr6r�rwrr}�typingrrrrrr � urllib.parser � _exceptionsr r � _multipartr�_typesrrrrrr�_utilsrr�__all__rr0rArErXrirorsrvr~r�r�r!r!r!r"�<module>s@               �$�
Memory