U ��.e��@s�ddlmZddlmZddlmZmZddlmZdZ z ddl Z Wne k rXYn Xe d7Z e �Zdd d �Zd d �Zd d�ZdS)�)�absolute_import)� b64encode�)�b� integer_types)�UnrewindableBodyErrorz gzip,deflateNz,brcCs�i}|r6t|t�rnt|t�r*d�|�}nt}||d<|rB||d<|rNd|d<|rldtt|���d�|d<|r�dtt|���d�|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'} �,zaccept-encodingz user-agentz keep-aliveZ connectionzBasic zutf-8Z authorizationzproxy-authorizationzno-cachez cache-control)� isinstance�str�list�join�ACCEPT_ENCODINGrr�decode)Z keep_aliveZaccept_encodingZ user_agentZ basic_authZproxy_basic_authZ disable_cacheZheaders�r�D/usr/lib/python3.8/site-packages/pip/_vendor/urllib3/util/request.py� make_headerss.*   �� rc CsR|dk rt||�n:t|dd�dk rNz |��}Wnttfk rLt}YnX|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�posrrr�set_file_positionZs   rc Cstt|dd�}|dk rNt|t�rNz ||�Wqpttfk rJtd��YqpXn"|tkr`td��ntdt|���dS)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.) rr rrrrr� ValueError�type)rZbody_posZ body_seekrrrrls  � � �r)NNNNNN)Z __future__r�base64rZ packages.sixrr� exceptionsrr ZbrotliZ_unused_module_brotli� ImportError�objectrrrrrrrr�s&    � H