o d@sddlmZddlmZddlmZddlmZmZdZ e gdZ dZ zzdd l ZWn ey8dd lZYnwWn eyCYnwe d 7Z eZ dd d Zd dZddZd S))absolute_import) b64encode)UnrewindableBodyError)b integer_typesz@@@SKIP_HEADER@@@)accept-encodinghost user-agentz gzip,deflateNz,brcCsi}|rt|tr n t|trd|}nt}||d<|r!||d<|r'd|d<|r6dtt|d|d<|rEdtt|d|d <|rKd |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'} ,rr z keep-alive connectionzBasic zutf-8 authorizationzproxy-authorizationzno-cachez cache-control) isinstancestrlistjoinACCEPT_ENCODINGrrdecode) keep_aliveaccept_encoding user_agent basic_authproxy_basic_auth disable_cacheheadersro/private/var/folders/v1/_jykv66s6qd26_69j1njbrl80000gr/T/pip-target-p1gutpg6/lib/python/urllib3/util/request.py make_headerss.*   rc CsV|dur t|||St|dddur)z|}W|Sttfy(t}Y|Sw|S)z If a position is provided, move file to that point. Otherwise, we'll attempt to record a position for future use. Ntell) rewind_bodygetattrrIOErrorOSError _FAILEDTELL)bodyposrrrset_file_positiones   r&c Csht|dd}|dur$t|tr$z||WdSttfy#tdw|tur,tdtdt|)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 rrr!r"rr# ValueErrortype)r$body_pos body_seekrrrrws  r)NNNNNN) __future__rbase64r exceptionsrZ packages.sixrr SKIP_HEADER frozensetSKIPPABLE_HEADERSrZ brotlicffiZ_unused_module_brotli ImportErrorbrotliobjectr#rr&rrrrrs8        H