/usr/lib/python2.7/site-packages/requests
NameSizeModeActions
adapters.py213440644editdlrm
adapters.pyc190880644editdlrm
adapters.pyo190880644editdlrm
api.py62530644editdlrm
api.pyc69680644editdlrm
api.pyo69680644editdlrm
auth.py102060644editdlrm
auth.pyc102240644editdlrm
auth.pyo102240644editdlrm
certs.py7090644editdlrm
certs.pyc9790644editdlrm
certs.pyo9790644editdlrm
compat.py16780644editdlrm
compat.pyc19870644editdlrm
compat.pyo19870644editdlrm
cookies.py184300644editdlrm
cookies.pyc220490644editdlrm
cookies.pyo220490644editdlrm
exceptions.py31850644editdlrm
exceptions.pyc68580644editdlrm
exceptions.pyo68580644editdlrm
help.py35150644editdlrm
help.pyc32660644editdlrm
help.pyo32660644editdlrm
hooks.py7570644editdlrm
hooks.pyc11620644editdlrm
hooks.pyo11620644editdlrm
models.py342090644editdlrm
models.pyc287100644editdlrm
models.pyo287100644editdlrm
packages.py5420644editdlrm
packages.pyc4590644editdlrm
packages.pyo4590644editdlrm
sessions.py295250644editdlrm
sessions.pyc224790644editdlrm
sessions.pyo224790644editdlrm
status_codes.py41290644editdlrm
status_codes.pyc59820644editdlrm
status_codes.pyo59820644editdlrm
structures.py29810644editdlrm
structures.pyc51600644editdlrm
structures.pyo51600644editdlrm
utils.py300380644editdlrm
utils.pyc268580644editdlrm
utils.pyo268580644editdlrm
_internal_utils.py10960644editdlrm
_internal_utils.pyc14990644editdlrm
_internal_utils.pyo14470644editdlrm
__init__.py36080644editdlrm
__init__.pyc37990644editdlrm
__init__.pyo36300644editdlrm
__version__.py4360644editdlrm
__version__.pyc5750644editdlrm
__version__.pyo5750644editdlrm
Edit: /usr/lib/python2.7/site-packages/requests/utils.pyc (26858B)
 /ec@sqdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddl mZddlmZddlmZddlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"dd l#m$Z$dd l%m&Z&dd l'm(Z(m)Z)m*Z*m+Z+dBZ,ej-Z.idd6dd6Z/ej0dkrdZ1dZndZ2dZ3e4dZ5dZ6dZ7dZ8dZ9dZ:dZ;e4dZ<dZ=d Z>d!Z?d"Z@d#ZAd$ZBd%ZCd&ZDeEd'd(ZFd)ZGd*ZHd+ZId,ZJd-ZKd.ZLejMd/ZNd0ZOdd1ZQd2ZRd3d4ZSd5ZTd6ZUd7jVd8ZWeWd9ZXeWd:ZYd;ZZd<Z[d=Z\ej]d>Z^ej]d>Z_d?Z`d@ZadAZbdS(Cs requests.utils ~~~~~~~~~~~~~~ This module provides utility functions that are used within Requests that are also useful for external consumption. iNi(t __version__(tcerts(tto_native_string(tparse_http_list(tquoteturlparsetbyteststrt OrderedDicttunquotet getproxiest proxy_bypasst urlunparset basestringt integer_typestis_py3tproxy_bypass_environmenttgetproxies_environmenttMapping(tcookiejar_from_dict(tCaseInsensitiveDict(t InvalidURLt InvalidHeadertFileModeWarningtUnrewindableBodyErrors.netrct_netrciPthttpithttpstwin32cCsAy%trddl}n ddl}Wntk r9tSXyK|j|jd}t|j|dd}|j|dd}Wnt k rtSX| s| rtS|j d}x|D]w}|dkrd|krt Sn|j dd }|j d d }|j d d}t j||t jrt SqWtS( Nis;Software\Microsoft\Windows\CurrentVersion\Internet Settingst ProxyEnableit ProxyOverridet;st.s\.t*s.*t?(Rtwinregt_winregt ImportErrortFalsetOpenKeytHKEY_CURRENT_USERtintt QueryValueExtOSErrortsplittTruetreplacetretmatchtI(thostR#tinternetSettingst proxyEnablet proxyOverridettest((s2/usr/lib/python2.7/site-packages/requests/utils.pytproxy_bypass_registry/s8         cCs!trt|St|SdS(sReturn True, if the host should be bypassed. Checks proxy settings gathered from the environment, if specified, or the registry. N(RRR7(R2((s2/usr/lib/python2.7/site-packages/requests/utils.pyR Vs  cCs"t|dr|j}n|S(s/Returns an internal sequence dictionary update.titems(thasattrR8(td((s2/usr/lib/python2.7/site-packages/requests/utils.pytdict_to_sequencebscCsd}d}t|dr*t|}nt|drE|j}nmt|dry|j}Wntjk rzqXtj|j}d|j krt j dt qnt|drty|j }Wn,ttfk r|dk rq|}qqqtXt|drt|dkrty3|jdd |j }|j|pIdWqqttfk rmd}qqXqtn|dkrd}ntd||S( Nit__len__tlentfilenotbs%Requests has determined the content-length for this request using the binary size of the file: however, the file has been opened in text mode (i.e. without the 'b' flag in the mode). This may lead to an incorrect content-length. In Requests 3.0, support will be removed for files in text mode.ttelltseeki(tNoneR9R=R>tiotUnsupportedOperationtostfstattst_sizetmodetwarningstwarnRR@R+tIOErrorRAtmax(tot total_lengthtcurrent_positionR>((s2/usr/lib/python2.7/site-packages/requests/utils.pyt super_lenks@       c CseyGddlm}m}d}x^tD]V}ytjjdj|}Wntk r_dSXtjj |r&|}Pq&q&W|dkrdSt |}d}t |t r|j d}n|jj|d} yG||j| } | r| drdnd} | | | d fSWn#|tfk rE|rFqFnXWnttfk r`nXdS( s;Returns the Requests tuple auth for a given url from netrc.i(tnetrctNetrcParseErrors~/{}Nt:tasciiiii(RQRRRBt NETRC_FILESREtpatht expandusertformattKeyErrortexistsRt isinstanceRtdecodetnetlocR,tauthenticatorsRKR%tAttributeError( turlt raise_errorsRQRRt netrc_pathtftloctritsplitstrR2Rtlogin_i((s2/usr/lib/python2.7/site-packages/requests/utils.pytget_netrc_auths8    cCs[t|dd}|rWt|trW|ddkrW|ddkrWtjj|SdS(s0Tries to guess the filename of the given object.tnameitN(tgetattrRBR[R RERVtbasename(tobjRi((s2/usr/lib/python2.7/site-packages/requests/utils.pytguess_filenames%cCs tjj|r|Stjj|\}}xJ|rztjj| rztjj|\}}dj||g}q1Wtj|s|Stj|}||jkr|St j }tjj||jd}tjj|s|j |d|}n|S(sReplace nonexistent paths that look like they refer to a member of a zip archive with the location of an extracted copy of the target, or else just return the provided path unchanged. t/RV( RERVRZR,tjointzipfilet is_zipfiletZipFiletnamelistttempfilet gettempdirtextract(RVtarchivetmembertprefixtzip_filettmptextracted_path((s2/usr/lib/python2.7/site-packages/requests/utils.pytextract_zipped_pathss  cCsD|dkrdSt|ttttfr:tdnt|S(sTake an object and test to see if it can be represented as a dictionary. Unless it can not be represented as such, return an OrderedDict, e.g., :: >>> from_key_val_list([('key', 'val')]) OrderedDict([('key', 'val')]) >>> from_key_val_list('string') ValueError: need more than 1 value to unpack >>> from_key_val_list({'key': 'val'}) OrderedDict([('key', 'val')]) :rtype: OrderedDict s+cannot encode objects that are not 2-tuplesN(RBR[RRtboolR)t ValueErrorR(tvalue((s2/usr/lib/python2.7/site-packages/requests/utils.pytfrom_key_val_lists  cCsb|dkrdSt|ttttfr:tdnt|trX|j}nt |S(sTake an object and test to see if it can be represented as a dictionary. If it can be, return a list of tuples, e.g., :: >>> to_key_val_list([('key', 'val')]) [('key', 'val')] >>> to_key_val_list({'key': 'val'}) [('key', 'val')] >>> to_key_val_list('string') ValueError: cannot encode objects that are not 2-tuples. :rtype: list s+cannot encode objects that are not 2-tuplesN( RBR[RRRR)RRR8tlist(R((s2/usr/lib/python2.7/site-packages/requests/utils.pytto_key_val_lists cCshg}x[t|D]M}|d |dko8dknrSt|dd!}n|j|qW|S(sParse lists as described by RFC 2068 Section 2. In particular, parse comma-separated lists where the elements of the list may include quoted-strings. A quoted-string could contain a comma. A non-quoted string could have quotes in the middle. Quotes are removed automatically after parsing. It basically works like :func:`parse_set_header` just that items may appear multiple times and case sensitivity is preserved. The return value is a standard :class:`list`: >>> parse_list_header('token, "quoted value"') ['token', 'quoted value'] To create a header from the :class:`list` again, use the :func:`dump_header` function. :param value: a string with a list header. :return: :class:`list` :rtype: list iit"(t_parse_list_headertunquote_header_valuetappend(Rtresulttitem((s2/usr/lib/python2.7/site-packages/requests/utils.pytparse_list_header8s $cCsi}xt|D]~}d|kr5d||>> d = parse_dict_header('foo="is a fish", bar="as well"') >>> type(d) is dict True >>> sorted(d.items()) [('bar', 'as well'), ('foo', 'is a fish')] If there is no value for a key it will be `None`: >>> parse_dict_header('key_without_value') {'key_without_value': None} To create a header from the :class:`dict` again, use the :func:`dump_header` function. :param value: a string with a dict header. :return: :class:`dict` :rtype: dict t=iiRN(RRBR,R(RRRRi((s2/usr/lib/python2.7/site-packages/requests/utils.pytparse_dict_headerXs  $cCsq|rm|d|dko%dknrm|dd!}| sN|d dkrm|jddjddSn|S( sUnquotes a header value. (Reversal of :func:`quote_header_value`). This does not use the real unquoting but what browsers are actually using for quoting. :param value: the header value to unquote. :rtype: str iiRiis\\s\s\"(R.(Rt is_filename((s2/usr/lib/python2.7/site-packages/requests/utils.pyR{s * cCs+i}x|D]}|j||j]tflagss+]s$^<\?xml.*?encoding=["\']*(.+?)["\'>](RIRJtDeprecationWarningR/tcompileR1tfindall(tcontentt charset_ret pragma_retxml_re((s2/usr/lib/python2.7/site-packages/requests/utils.pytget_encodings_from_contentsc Cs|jd}|dj|d}}i}d}x|D]}|j}|r=|t}}|jd} | dkr|| j|}|| dj|}n|||jdA}tjtjd|S(sConverts mask from /xx format to xxx.xxx.xxx.xxx Example: if mask is 24 function returns 255.255.255.0 :rtype: str Iii s>I(Rt inet_ntoaRtpack(tmaskR((s2/usr/lib/python2.7/site-packages/requests/utils.pyRrscCs-ytj|Wntjk r(tSXtS(s :rtype: bool (RRterrorR&R-(t string_ip((s2/usr/lib/python2.7/site-packages/requests/utils.pytis_ipv4_address}s cCs|jddkryt|jdd}Wntk rFtSX|dks_|dkrctSytj|jddWqtjk rtSXntStS(sV Very simple check of the cidr format in no_proxy variable. :rtype: bool Rpii i( tcountR)R,RR&RRRR-(tstring_networkR((s2/usr/lib/python2.7/site-packages/requests/utils.pyt is_valid_cidrs ccst|dk }|r4tjj|}|tj|}t|rt|j|rtSq|j|krtSqWq3|j}|j r|dj |j 7}nx6|D]+}|jj |s(|j |rtSqWnt d|;yt |j}Wn ttjfk rxt}nXWdQX|rtStS( sL Returns whether we should bypass proxies or not. :rtype: bool cSs(tjj|p'tjj|jS(N(RERRtupper(tk((s2/usr/lib/python2.7/site-packages/requests/utils.pytRtno_proxycss|]}|r|VqdS(N((t.0R2((s2/usr/lib/python2.7/site-packages/requests/utils.pys st Rt,s:{}N(RBRthostnameR-R.R,RRRtportRXtendswithRR RRtgaierrorR&( R`Rt get_proxyt no_proxy_argtparsedtproxy_ipthost_with_portR2tbypass((s2/usr/lib/python2.7/site-packages/requests/utils.pytshould_bypass_proxiess<   %      ! cCs!t|d|riStSdS(sA Return a dict of environment proxies. :rtype: dict RN(RR (R`R((s2/usr/lib/python2.7/site-packages/requests/utils.pytget_environ_proxiesscCs|p i}t|}|jdkrC|j|j|jdS|jd|j|jd|jdg}d}x(|D] }||krz||}PqzqzW|S(sSelect a proxy for the url, if applicable. :param url: The url being for the request :param proxies: A dictionary of schemes or schemes and hosts to proxy URLs talls://sall://N(RRRBRtscheme(R`tproxiesturlpartst proxy_keystproxyt proxy_key((s2/usr/lib/python2.7/site-packages/requests/utils.pyt select_proxys       spython-requestscCsd|tfS(sO Return a string representing the default user agent. :rtype: str s%s/%s(R(Ri((s2/usr/lib/python2.7/site-packages/requests/utils.pytdefault_user_agentscCs2titd6djd d6dd6dd 6S( s9 :rtype: requests.structures.CaseInsensitiveDict s User-Agents, tgziptdeflatesAccept-Encodings*/*tAccepts keep-alivet Connection(R R (RR Rq(((s2/usr/lib/python2.7/site-packages/requests/utils.pytdefault_headers"s  c Cs g}d}|j|}|s%|Sxtjd|D]}y|jdd\}}Wntk rz|d}}nXi|jdd6}xa|jdD]P}y|jd\}}Wntk rPnX|j|||j|; rel=front; type="image/jpeg",; rel=back;type="image/jpeg" :rtype: list s '"s, * '"R`R(RR/R,RR( Rtlinkst replace_charstvalR`RtlinkRR((s2/usr/lib/python2.7/site-packages/requests/utils.pytparse_header_links.s&   sRTiicCs|d }|tjtjfkr&dS|d tjkr=dS|d tjtjfkr]dS|jt}|dkr|dS|dkr|d d dtkrd S|d d dtkrd Sn|dkr|d t krd S|d t krdSnd S(s :rtype: str isutf-32is utf-8-sigisutf-16isutf-8Ns utf-16-beis utf-16-les utf-32-bes utf-32-le( Rt BOM_UTF32_LEt BOM_UTF32_BEtBOM_UTF8t BOM_UTF16_LEt BOM_UTF16_BERt_nullt_null2t_null3RB(tdatatsamplet nullcount((s2/usr/lib/python2.7/site-packages/requests/utils.pytguess_json_utfYs*    cCsSt||\}}}}}}|s7||}}nt||||||fS(sGiven a URL that may or may not have a scheme, prepend the given scheme. Does not replace a present scheme with the one provided as an argument. :rtype: str (RR (R`t new_schemeRR]RVRtquerytfragment((s2/usr/lib/python2.7/site-packages/requests/utils.pytprepend_scheme_if_neededys!cCsRt|}y"t|jt|jf}Wnttfk rMd}nX|S(s{Given a url with authentication components, extract them into a tuple of username,password. :rtype: (str,str) R(RR(RR tusernametpasswordR_R(R`Rtauth((s2/usr/lib/python2.7/site-packages/requests/utils.pytget_auth_from_urls  " s^\S[^\r\n]*$|^$cCs|\}}t|tr$t}nt}y&|j|sOtd|nWn0tk rtd||t|fnXdS(sVerifies that header value is a string which doesn't contain leading whitespace or return characters. This prevents unintended header injection. :param header: tuple, in the format (name, value). s7Invalid return character or leading space in header: %ss>Value for header {%s: %s} must be of type str or bytes, not %sN(R[Rt_CLEAN_HEADER_REGEX_BYTEt_CLEAN_HEADER_REGEX_STRR0RRttype(RRiRtpat((s2/usr/lib/python2.7/site-packages/requests/utils.pytcheck_header_validitys   cCsft|\}}}}}}|s4||}}n|jddd}t|||||dfS(sW Given a url remove the fragment and the authentication part. :rtype: str t@iiR(RtrsplitR (R`RR]RVRR"R#((s2/usr/lib/python2.7/site-packages/requests/utils.pyt urldefragauths cCs}t|jdd}|dk rmt|jtrmy||jWqyttfk ritdqyXn tddS(sfMove file pointer back to its recorded starting position so it can be read again on redirect. RAs;An error occurred when rewinding request body for redirect.s+Unable to rewind request body for redirect.N( RltbodyRBR[t_body_positionRRKR+R(tprepared_requestt body_seek((s2/usr/lib/python2.7/site-packages/requests/utils.pyt rewind_bodys(s.netrcR(ct__doc__Rt contextlibRCRER/RRtsysRvRIRrRRRt_internal_utilsRtcompatRRRRRRRR R R R R RRRRRtcookiesRt structuresRt exceptionsRRRRRUtwheretDEFAULT_CA_BUNDLE_PATHt DEFAULT_PORTStplatformR7R;RPR&RhRoRRRRRRRRRRRRRRt frozensetRRRRRRRtcontextmanagerRRRBRR R RRtencodeRRRR R$R(RR)R*R-R0R5(((s2/usr/lib/python2.7/site-packages/requests/utils.pyt s           d"  ' = 3    #       %      =  &