
    Lg                         d dl mZ d dlmZ ddlmZ ddlmZmZ dZ	 e
g d          ZdZ e            Z	 	 	 	 	 	 dd
Zd Zd Zd	S )    )absolute_import)	b64encode   )UnrewindableBodyError)binteger_typesz@@@SKIP_HEADER@@@)accept-encodinghost
user-agentzgzip,deflateNc                    i }|rMt          |t                    rn2t          |t                    rd                    |          }nt          }||d<   |r||d<   | rd|d<   |r5dt          t          |                                        d          z   |d<   |r5dt          t          |                                        d          z   |d	<   |rd
|d<   |S )a  
    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'.
        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::

        >>> make_headers(keep_alive=True, user_agent="Batman/1.0")
        {'connection': 'keep-alive', 'user-agent': 'Batman/1.0'}
        >>> make_headers(accept_encoding=True)
        {'accept-encoding': 'gzip,deflate'}
    ,r	   r   z
keep-alive
connectionzBasic zutf-8authorizationzproxy-authorizationzno-cachezcache-control)
isinstancestrlistjoinACCEPT_ENCODINGr   r   decode)
keep_aliveaccept_encoding
user_agent
basic_authproxy_basic_authdisable_cacheheaderss          \/var/www/html/4nations/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/request.pymake_headersr      s   T G 5os++ 	... 	.!hh77OO-O%4!" + * - , W#+i*.F.F.M.Mg.V.V#V  )1I5
 5

&//*%&  .#- N    c                     |t          | |           nEt          | dd          4	 |                                 }n# t          t          f$ 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!   IOErrorOSError_FAILEDTELL)bodyposs     r   set_file_positionr)   \   st    
 D#	vt	$	$	0	))++CC! 	 	 	 CCC	
 Js   ; AAc                 $   t          | dd          }|Gt          |t                    r2	  ||           dS # t          t          f$ r t          d          w xY w|t          u rt          d          t          dt          |          z            )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.z4body_pos must be of type integer, instead it was %s.)	r#   r   r   r$   r%   r   r&   
ValueErrortype)r'   body_pos	body_seeks      r   r"   r"   n   s     fd++IHm!D!D	Ih! 	 	 	'S  	 
[	 	 #4
 
 	

 BT(^^S
 
 	
s	   7 !A)NNNNNN)
__future__r   base64r   
exceptionsr   packages.sixr   r   SKIP_HEADER	frozensetSKIPPABLE_HEADERSr   objectr&   r   r)   r"    r   r   <module>r9      s    & & & & & &       . . . . . . + + + + + + + + "IGGGHH  fhh E E E EP  $
 
 
 
 
r   