
    	h                        U d dl mZ d dlZd dlZd dlmZ d dlmZ ddlm	Z	 ddl
mZ ej        rd d	lmZ d
Z eg d          ZdZ	 	 d dlZn# e$ r d dlZY nw xY wedz  Zn# e$ r Y nw xY w	 d dlmZ edz  Zn!# e$ r 	 d dlZedz  Zn# e$ r Y nw xY wY nw xY w G d de          Zej        Zded<   ej        eef         Z h dZ!	 	 	 	 	 	 d3d4d Z"d5d%Z#d6d*Z$ G d+ d,ej%                  Z&d7d2Z'dS )8    )annotationsN)	b64encode)Enum   )UnrewindableBodyError   )to_bytes)Finalz@@@SKIP_HEADER@@@)accept-encodinghost
user-agentzgzip,deflatez,br)zstdz,zstdc                      e Zd ZdZdS )_TYPE_FAILEDTELLr   N)__name__
__module____qualname__token     a/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/urllib3/util/request.pyr   r   /   s        EEEr   r   zFinal[_TYPE_FAILEDTELL]_FAILEDTELL>   GETHEADTRACEDELETECONNECTOPTIONS
keep_alivebool | Noneaccept_encodingbool | list[str] | str | None
user_agent
str | None
basic_authproxy_basic_authdisable_cachereturndict[str, str]c                   i }|rMt          |t                    rn2t          |t                    rd                    |          }nt          }||d<   |r||d<   | rd|d<   |r:dt          |                    d                                                     |d<   |r:dt          |                    d                                                     |d	<   |rd
|d<   |S )ad  
    Shortcuts for generating request headers.

    :param keep_alive:
        If ``True``, adds 'connection: keep-alive' header.

    :param accept_encoding:
        Can be a boolean, list, or string.
        ``True`` translates to 'gzip,deflate'.  If the dependencies for
        Brotli (either the ``brotli`` or ``brotlicffi`` package) and/or Zstandard
        (the ``zstandard`` package) algorithms are installed, then their encodings are
        included in the string ('br' and 'zstd', respectively).
        List will get joined by comma.
        String will be used as provided.

    :param user_agent:
        String representing the user-agent you want, such as
        "python-urllib3/0.6"

    :param basic_auth:
        Colon-separated username:password string for 'authorization: basic ...'
        auth header.

    :param proxy_basic_auth:
        Colon-separated username:password string for 'proxy-authorization: basic ...'
        auth header.

    :param disable_cache:
        If ``True``, adds 'cache-control: no-cache' header.

    Example:

    .. code-block:: python

        import urllib3

        print(urllib3.util.make_headers(keep_alive=True, user_agent="Batman/1.0"))
        # {'connection': 'keep-alive', 'user-agent': 'Batman/1.0'}
        print(urllib3.util.make_headers(accept_encoding=True))
        # {'accept-encoding': 'gzip,deflate'}
    ,r   r   z
keep-alive
connectionzBasic zlatin-1authorizationzproxy-authorizationzno-cachezcache-control)
isinstancestrlistjoinACCEPT_ENCODINGr   encodedecode)r   r!   r#   r%   r&   r'   headerss          r   make_headersr6   ?   s   b !G 5os++ 	... 	.!hh77OO-O%4!" + * - , 
GYz00;;<<CCEEGG 	   
MY/66yAABBIIKKMM 	%&  .#- Nr   body
typing.Anypos_TYPE_BODY_POSITION | Nonec                    |t          | |           n>t          | dd          -	 |                                 }n# t          $ r
 t          }Y nw xY w|S )z
    If a position is provided, move file to that point.
    Otherwise, we'll attempt to record a position for future use.
    Ntell)rewind_bodygetattrr<   OSErrorr   )r7   r9   s     r   set_file_positionr@      so     D#	vt	$	$	0	))++CC 	 	 	 CCC	
 Js   ; AAtyping.IO[typing.AnyStr]body_pos_TYPE_BODY_POSITIONNonec                "   t          | dd          }|Et          |t                    r0	  ||           dS # t          $ r}t	          d          |d}~ww xY w|t
          u rt	          d          t          dt          |           d          )z
    Attempt to rewind body to a certain position.
    Primarily used for request redirects and retries.

    :param body:
        File-like object that supports seek.

    :param int pos:
        Position to seek to in file.
    seekNzAAn error occurred when rewinding request body for redirect/retry.zRUnable to record file position for rewinding request body during a redirect/retry.z1body_pos must be of type integer, instead it was .)r>   r.   intr?   r   r   
ValueErrortype)r7   rB   	body_seekes       r   r=   r=      s     fd++IHc!:!:	Ih 	 	 	'S 	 
[	 	 #4
 
 	

 QXQQQ
 
 	
s   7 
AAAc                  $    e Zd ZU ded<   ded<   dS )ChunksAndContentLengthztyping.Iterable[bytes] | Nonechunksz
int | Nonecontent_lengthN)r   r   r   __annotations__r   r   r   rN   rN      s*         ))))r   rN   typing.Any | Nonemethodr/   	blocksizerH   c                     #d}|                                 t          vrd}nd}nt           t          t          f          r&t                     f}t          |d                   }nt           d          rd	 fd} |            }d}n_	 t                     } f}|j	        }nD# t          $ r7 	 t                     }d}n!# t          $ r t          d           dw xY wY nw xY wt          ||          S )
aR  Takes the HTTP request method, body, and blocksize and
    transforms them into an iterable of chunks to pass to
    socket.sendall() and an optional 'Content-Length' header.

    A 'Content-Length' of 'None' indicates the length of the body
    can't be determined so should use 'Transfer-Encoding: chunked'
    for framing instead.
    Nr   readr(   typing.Iterable[bytes]c               3     K   t          t          j                  } 	                               }|sd S | r|                    d          }|V  5)NTzutf-8)r.   io
TextIOBaserV   r3   )r3   	datablockrT   r7   s     r   chunk_readablez&body_to_chunks.<locals>.chunk_readable   sd      bm44F  IIi00	  E : ) 0 0 9 9I r   zO'body' must be a bytes-like object, file-like object, or iterable. Instead was )rO   rP   )r(   rW   )upper_METHODS_NOT_EXPECTING_BODYr.   r/   bytesr	   lenhasattr
memoryviewnbytes	TypeErroriterrN   )r7   rS   rT   rO   rP   r\   mvs   ` `    r   body_to_chunksrg      sq   $ |<<>>!<<<NN!NN 
D3,	'	' ''4.."VAY 
v		 "'		  		  		  		  		  		  		   !!	'D!!B WFYNN  		 		 		d!%   A8<A A   			 "OOOOs*   B) )
C*4CC*C$$C*)C*)NNNNNN)r   r    r!   r"   r#   r$   r%   r$   r&   r$   r'   r    r(   r)   )r7   r8   r9   r:   r(   r:   )r7   rA   rB   rC   r(   rD   )r7   rR   rS   r/   rT   rH   r(   rN   )(
__future__r   rY   typingbase64r   enumr   
exceptionsr   utilr	   TYPE_CHECKINGr
   SKIP_HEADER	frozensetSKIPPABLE_HEADERSr2   
brotlicffi_unused_module_brotliImportErrorbrotlicompressionr   _unused_module_zstd	zstandardr   r   r   rQ   UnionrH   rC   r^   r6   r@   r=   
NamedTuplerN   rg   r   r   r   <module>r{      s   " " " " " " " 				              . . . . . .      	  "IGGGHH  /22222 / / /....../
 uOO  	 	 	D	
      wOO   ////7"       t    (8'= = = = =l3(8#89  WVV  #59!!#'!%N N N N Nb   (
 
 
 
<    V.   
CP CP CP CP CP CPsf   A A" 	AA" AA" "A*)A*.A: :B 	B
	B
BBBBB