
    ,h                       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#	 	 	 	 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)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y)r   c                    || _         y N_streamselfstreams     P/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/httpx/_content.py__init__zByteStream.__init__    s	        c              #  (   K   | j                    y wr   r   r   s    r!   __iter__zByteStream.__iter__#   s     lls   c               *   K   | j                    y wr   r   r%   s    r!   	__aiter__zByteStream.__aiter__&   s     ll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                  D ]  }|  y w)NTread)r7   r:   r   hasattrr   r<   
CHUNK_SIZEr   chunkparts      r!   r&   zIteratorByteStream.__iter__2   s     ##(:(: ""#' 4<<(LL%%doo6E))$//: 
  
s   BB-B-N)r    zIterable[bytes]r*   r+   r,   )r.   r/   r0   r>   r"   r&   r1   r#   r!   r3   r3   *   s    J9
r#   r3   c                       e Zd ZdZddZddZy)AsyncIteratorByteStreamr4   c                T    || _         d| _        t        j                  |      | _        y r6   )r   r7   r8   
isasyncgenr:   r   s     r!   r"   z AsyncIteratorByteStream.__init__F   s$    #( $//7r#   c                 K   | j                   r| j                  r
t               d| _         t        | j                  d      rf| j                  j                  | j                         d {   }|r6| | j                  j                  | j                         d {   }|r5y y | j                  2 3 d {   }| 7 X7 &7 6 y w)NTaread)r7   r:   r   r=   r   rG   r>   r?   s      r!   r(   z!AsyncIteratorByteStream.__aiter__K   s     ##(:(: ""#' 4<<),,,,T__==E"ll00AA 
 #ll  d
 > BlsN   A(C*C+3CCC&C4C	8C9C	<CCC		CN)r    zAsyncIterable[bytes]r*   r+   r-   )r.   r/   r0   r>   r"   r(   r1   r#   r!   rC   rC   C   s    J8
r#   rC   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 `httpx.StreamClosed`.
    c                    t               r   r   r%   s    r!   r&   zUnattachedStream.__iter__c   s
    nr#   c                  K   t               wr   rK   r%   s    r!   r(   zUnattachedStream.__aiter__f   s     ns   Nr,   r-   )r.   r/   r0   __doc__r&   r(   r1   r#   r!   rI   rI   \   s    r#   rI   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', )
isinstancer)   strencodelenr   r   dictr   r3   r   rC   	TypeErrortype)contentbodycontent_lengthheaderscontent_length_or_nones        r!   encode_contentr^   k   s     'E3<(*4Wc*Bw~~g&T=A#S%89r
4(((	GX	&z'4/H
 "6g!>!)*I6G'-C)DEG*7333	G]	+&	2/888
5d7m5F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)doseqrO   z!application/x-www-form-urlencodedrP   zContent-Type)itemsrR   listtupleextendr   appendr   rT   rS   rU   r   )	data
plain_datakeyvalueitemrZ   r[   content_typer\   s	            r!   encode_urlencoded_datarm      s     Jjjl D
UedE]+uUt%;D%ABUVs$:5$ABC	D
 Zt,33G<DT^N6L!/NGJt$$$ Vs   B<
c                F    t        | ||      }|j                         }||fS )N)rg   filesboundary)r   get_headers)rg   ro   rp   	multipartr\   s        r!   encode_multipart_datars      s+      TJI##%GIr#   c                t    | j                  d      }t        t        |            }d}||d}|t        |      fS )NrO   ztext/plain; charset=utf-8ra   rT   rS   rU   r   )textrZ   r[   rl   r\   s        r!   encode_textrw      s<    ;;wDT^N.L!/NGJt$$$r#   c                t    | j                  d      }t        t        |            }d}||d}|t        |      fS )NrO   ztext/html; charset=utf-8ra   ru   )htmlrZ   r[   rl   r\   s        r!   encode_htmlrz      s<    ;;wDT^N-L!/NGJt$$$r#   c                    t        | ddd      j                  d      }t        t        |            }d}||d}|t	        |      fS )NF),:)ensure_ascii
separators	allow_nanrO   zapplication/jsonra   )
json_dumpsrT   rS   rU   r   )jsonrZ   r[   rl   r\   s        r!   encode_jsonr      sO    5Z5fWo 	 T^N%L!/NGJt$$$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#   )
rR   r
   warningswarnDeprecationWarningr^   rs   rm   r   r   )rY   rg   ro   r   rp   messages         r!   encode_requestr      s     
4 9 Jg1a@d##g&&	$TZR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^   rw   rz   r   r   )rY   rv   ry   r   s       r!   encode_responser      sW     g&&		4  		4  		4  z#r#   )rY   z4str | bytes | Iterable[bytes] | AsyncIterable[bytes]r*   7tuple[dict[str, str], SyncByteStream | AsyncByteStream])rg   r   r*   !tuple[dict[str, str], ByteStream])rg   r   ro   r   rp   bytes | Noner*   z&tuple[dict[str, str], MultipartStream])rv   rS   r*   r   )ry   rS   r*   r   )r   r   r*   r   )NNNNN)rY   zRequestContent | Nonerg   zRequestData | Nonero   zRequestFiles | Noner   
Any | Nonerp   r   r*   r   )NNNN)
rY   zResponseContent | Nonerv   
str | Nonery   r   r   r   r*   r   ),
__future__r   r8   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   r3   rC   rI   r^   rm   rs   rw   rz   r   r   r   r1   r#   r!   <module>r      sb   "   $  # 5 '  A..  2o 2 IAI<I:%
%&% 
*6B+%%% &*#!%! " 
    	 
   = H '+	#
  	
 =r#   