Mini Kabibi Habibi

Current Path : C:/Users/ITO/AppData/Local/Programs/GIMP 2/lib/python2.7/site-packages/pip/_internal/utils/
Upload File :
Current File : C:/Users/ITO/AppData/Local/Programs/GIMP 2/lib/python2.7/site-packages/pip/_internal/utils/misc.pyc

�
�+^c@@s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZddlmZddlmZmZddlmZddlmZdd	lmZdd
lmZddl m!Z!ddl"m#Z#m$Z$m%Z%dd
l&m'Z'm(Z(m)Z)m*Z*ddl+m,Z,m-Z-ddl.m/Z/m0Z0er�ddlm1Z2nddlm2Z2e,r)ddl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<ddl=m>Z>e;e?e?e?fZ@nddddddddddddd d!gZAejBeC�ZDd"�ZEd#�ZFd$�ZGd%�ZHed&d'd(d)�eId*��ZJd+�ZKd,�ZLd-�ZMd.d/�ZNd0�ZOd1�ZPd2�ZQd3�ZRd4�ZSd5�ZTd6�ZUejVd7�ZWeXd8�ZYd9�ZZd:�Z[d;�Z\d<�Z]d=�Z^d>�Z_d?�Z`eXe)eXeIeIdd@�ZbdA�ZcdB�ZddC�ZedDeffdE��YZgdFe2fdG��YZhejidH��ZjdI�ZkdJ�ZldKeffdL��YZmddM�ZndN�ZodO�ZpdP�ZqdQdR�ZrdS�ZsdT�ZtdU�ZudV�ZvdW�ZwdX�ZxdY�ZydZ�Zzd[�Z{d\effd]��YZ|d^�Z}d_�Z~d`�Zda�Z�dfdd�Z�de�Z�dS(gi(tabsolute_importN(tdeque(t
pkg_resources(tretry(tPY2t	text_type(tinput(tparse(tunquote(t__version__(tCommandError(tget_major_minor_versiont
site_packagest	user_site(tWINDOWSt
expandusertstdlib_pkgststr_to_display(tMYPY_CHECK_RUNNINGtcast(trunning_under_virtualenvtvirtualenv_no_global(tBytesIO(tStringIO(	tAnytAnyStrt	ContainertIterabletListtOptionaltTexttTupletUnion(tDistributiontrmtreetdisplay_patht
backup_dirtasktsplitexttformat_sizetis_installable_dirtnormalize_pathtrenamestget_progtcaptured_stdoutt
ensure_dirtget_installed_versiontremove_auth_from_urlcC@sLtjjtjjt�dd�}tjj|�}djt|t��S(Ns..spip {} from {} (python {})(	tostpathtjointdirnamet__file__tabspathtformatR	R(tpip_pkg_dir((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytget_pip_versionKs$cC@sYt|�dkr-|dt|�d7}nt|�dkrL|d }ntd|�S(sx
    Convert a tuple of ints representing a Python version to one of length
    three.

    :param py_version_info: a tuple of ints representing a Python version,
        or None to specify no version. The tuple can have any length.

    :return: a tuple of length three if `py_version_info` is non-None.
        Otherwise, return `py_version_info` unchanged (i.e. None).
    iitVersionInfo(i(tlenR(tpy_version_info((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytnormalize_version_infoWs

cC@sUytj|�Wn=tk
rP}|jtjkrQ|jtjkrQ�qQnXdS(s os.path.makedirs without EEXIST.N(R0tmakedirstOSErrorterrnotEEXISTt	ENOTEMPTY(R1te((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR-ks
$cC@sYy8tjjtjd�}|dkr3dtjS|SWntttfk
rTnXdS(Nis__main__.pys-cs	%s -m piptpip(s__main__.pys-c(	R0R1tbasenametsystargvt
executabletAttributeErrort	TypeErrort
IndexError(tprog((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR+vststop_max_delayi�t
wait_fixedi�cC@stj|d|dt�dS(Nt
ignore_errorstonerror(tshutilR"trmtree_errorhandler(tdirRN((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR"�scC@sgytj|�jtj@}Wnttfk
r8dSX|r`tj|tj�||�dS�dS(s�On Windows, the files in .svn are read-only, so when rmtree() tries to
    remove them, an exception is thrown.  We catch that here, remove the
    read-only attribute, and hopefully continue without problems.N(R0tstattst_modetS_IWRITEtIOErrorR>tchmod(tfuncR1texc_infothas_attr_readonly((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyRQ�s
cC@s�|dkrdSt|t�r#|Sy|jtj�d�}Wn;tk
r|trmtdj	|��}q}t
|�}nX|S(s�
    Convert a bytes (or text) path to text (unicode in Python 2) for display
    and logging purposes.

    This function should never error out. Also, this function is mainly needed
    for Python 2 since in Python 3 str paths are already text.
    tstrictsb{!r}N(tNonet
isinstanceRtdecodeREtgetfilesystemencodingtUnicodeDecodeErrorRRR6tascii(R1R#((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytpath_to_display�s	
cC@s�tjjtjj|��}tjddkrd|jtj�d�}|jtj	�d�}n|j
tj�tjj�r�d|t
tj��}n|S(sTGives the display value for a given path, making it relative to cwd
    if possible.iitreplacet.(R0R1tnormcaseR5REtversion_infoR^R_tencodetgetdefaultencodingt
startswithtgetcwdtsepR:(R1((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR#�ss.bakcC@sKd}|}x4tjj||�rB|d7}|t|�}qW||S(s\Figure out the name of a directory to back up the given dir to
    (adding .bak, .bak2, etc)i(R0R1texistststr(RRtexttnt	extension((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR$�s
cC@sCx3tjjdd�j�D]}||kr|SqWt||�S(NtPIP_EXISTS_ACTIONt(R0tenvirontgettsplitR%(tmessagetoptionstaction((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytask_path_exists�s"cC@s)tjjd�r%td|��ndS(s&Raise an error if no input is allowed.tPIP_NO_INPUTs7No input was expected ($PIP_NO_INPUT set); question: %sN(R0RsRtt	Exception(Rv((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt_check_no_input�scC@s^xWt|�t|�}|j�j�}||krRd|dj|�fGHq|SqWdS(s@Ask the message interactively, with the given possible responsess<Your response (%r) was not one of the expected responses: %ss, N(R|RtstriptlowerR2(RvRwtresponse((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR%�s
cC@st|�t|�S(sAsk for input interactively.(R|R(Rv((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt	ask_input�s
cC@st|�tj|�S(s!Ask for a password interactively.(R|tgetpass(Rv((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytask_passwords
cC@sX|dkrd|ddS|d	kr4d|dS|dkrLd|dSd|SdS(
Ni�s%.1f MBg@�@i
s%i kBs%.1f kBs%i bytesi@Bi'((tbytes((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR'
scC@sptjj|�stStjj|d�}tjj|�rAtStjj|d�}tjj|�rltStS(sBIs path is a directory containing setup.py or pyproject.toml?
    ssetup.pyspyproject.toml(R0R1tisdirtFalseR2tisfiletTrue(R1tsetup_pytpyproject_toml((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR(scc@s/x(tr*|j|�}|s"Pn|VqWdS(s7Yield pieces of data from a file-like object until EOF.N(R�tread(tfiletsizetchunk((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytread_chunks%s
	cC@sIt|�}|r'tjj|�}ntjj|�}tjj|�S(sN
    Convert a path to its canonical, case-normalized, absolute version.

    (RR0R1trealpathR5Re(R1tresolve_symlinks((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR).s
cC@sOtj|�\}}|j�jd�rE|d|}|d }n||fS(s,Like os.path.splitext, but take off .tar toos.tari����(t	posixpathR&R~tendswith(R1tbaseRn((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR&<s

cC@s�tjj|�\}}|rG|rGtjj|�rGtj|�ntj||�tjj|�\}}|r�|r�ytj|�Wq�tk
r�q�XndS(s7Like os.renames(), but handles renaming across devices.N(	R0R1RuRlR=RPtmovet
removedirsR>(toldtnewtheadttail((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR*Fs
cC@s#t�s
tS|jttj��S(s�
    Return True if path is within sys.prefix, if we're running in a virtualenv.

    If we're not in a virtualenv, all paths are considered "local."

    Caution: this function assumes the head of path has been normalized
    with normalize_path.
    (RR�RiR)REtprefix(R1((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytis_localXs
	cC@stt|��S(s�
    Return True if given Distribution object is installed locally
    (i.e. within current virtualenv).

    Always True if we're not in a virtualenv.

    (R�t
dist_location(tdist((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt
dist_is_localgs	cC@st|�jtt��S(sF
    Return True if given Distribution is installed in user site.
    (R�RiR)R
(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytdist_in_usersitesscC@st|�jtt��S(s[
    Return True if given Distribution is installed in
    sysconfig.get_python_lib().
    (R�RiR)R(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytdist_in_site_packages{scC@sJxCtjD]8}tjj||jd�}tjj|�r
tSq
WtS(sC
    Return True if given Distribution is an editable install.
    s	.egg-link(RER1R0R2tproject_nameR�R�R�(R�t	path_itemtegg_link((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytdist_is_editable�s
cC@s�|rtj|�}n	tj}|r0t}n	d�}|rKd�}n	d�}|rfd�}	n	d�}	|r~t}
n	d�}
g|D]K}||�r�|j|kr�||�r�|	|�r�|
|�r�|^q�S(s^
    Return a list of installed Distribution objects.

    If ``local_only`` is True (default), only return installations
    local to the current virtualenv, if in a virtualenv.

    ``skip`` argument is an iterable of lower-case project names to
    ignore; defaults to stdlib_pkgs

    If ``include_editables`` is False, don't report editables.

    If ``editables_only`` is True , only report editables.

    If ``user_only`` is True , only report installations in the user
    site directory.

    If ``paths`` is set, only report the distributions present at the
    specified list of locations.
    cS@stS(N(R�(td((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt
local_test�scS@stS(N(R�(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt
editable_test�scS@st|�S(N(R�(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR��scS@s
t|�S(N(R�(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyteditables_only_test�scS@stS(N(R�(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR��scS@stS(N(R�(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt	user_test�s(Rt
WorkingSettworking_setR�R�tkey(t
local_onlytskiptinclude_editablesteditables_onlyt	user_onlytpathsR�R�R�R�R�R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytget_installed_distributions�s*							
cC@s�g}t�r?|jt�t�rbtrb|jt�qbn#trU|jt�n|jt�x@|D]8}tjj||j�d}tjj	|�ri|SqiWdS(s
    Return the path for the .egg-link file if it exists, otherwise, None.

    There's 3 scenarios:
    1) not in a virtualenv
       try to find in site.USER_SITE, then site_packages
    2) in a no-global virtualenv
       try to find in site_packages
    3) in a yes-global virtualenv
       try to find in site_packages, then site.USER_SITE
       (don't look in global location)

    For #1 and #3, there could be odd cases, where there's an egg-link in 2
    locations.

    This method will just return the first one found.
    s	.egg-linkN(RtappendRRR
R0R1R2R�R�R\(R�tsitestsitetegglink((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt
egg_link_path�s	


cC@s)t|�}|rt|�St|j�S(sO
    Get the site-packages location of this distribution. Generally
    this is dist.location, except in the case of develop-installed
    packages, where dist.location is the source code location, and we
    want to know where the egg-link file is.

    The returned location is normalized (in particular, with symlinks removed).
    (R�R)tlocation(R�R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR��s

cG@stj||�dS(N(tloggertinfo(tmsgtargs((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytwrite_outputstFakeFilecB@s)eZdZd�Zd�Zd�ZRS(sQWrap a list of lines in an object with readline() to make
    ConfigParser happy.cC@sd�|D�|_dS(Ncs@s|]}|VqdS(N((t.0tl((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pys	<genexpr>s(t_gen(tselftlines((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt__init__scC@sLy3yt|j�SWntk
r1|jj�SXWntk
rGdSXdS(NRr(tnextR�t	NameErrort
StopIteration(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytreadlines

cC@s|jS(N(R�(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt__iter__s(t__name__t
__module__t__doc__R�R�R�(((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR�
s			t
StreamWrappercB@s&eZed��Zed��ZRS(cC@s||_|�S(N(torig_stream(tclsR�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytfrom_stream"s	cC@s
|jjS(N(R�tencoding(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR�(s(R�R�tclassmethodR�tpropertyR�(((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR� scc@sRtt|�}tt|tj|��ztt|�VWdtt||�XdS(s�Return a context manager used by captured_stdout/stdin/stderr
    that temporarily replaces the sys stream *stream_name* with a StringIO.

    Taken from Lib/support/__init__.py in the CPython repo.
    N(tgetattrREtsetattrR�R�(tstream_nametorig_stdout((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytcaptured_output-s
cC@s
td�S(s�Capture the output of sys.stdout:

       with captured_stdout() as stdout:
           print('hello')
       self.assertEqual(stdout.getvalue(), 'hello
')

    Taken from Lib/support/__init__.py in the CPython repo.
    tstdout(R�(((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR,<s	cC@s
td�S(s 
    See captured_stdout().
    tstderr(R�(((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytcaptured_stderrHstcached_propertycB@s eZdZd�Zd�ZRS(s�A property that is only computed once per instance and then replaces
       itself with an ordinary attribute. Deleting the attribute resets the
       property.

       Source: https://github.com/bottlepy/bottle/blob/0.11.5/bottle.py#L175
    cC@st|d�|_||_dS(NR�(R�R�RX(R�RX((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR�WscC@s4|dkr|S|j|�}|j|jj<|S(N(R\RXt__dict__R�(R�tobjR�tvalue((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt__get__[s (R�R�R�R�R�(((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR�Os	cC@sMtjj|�}|dkr-tj�}n|j|�}|rI|jSdS(sCGet the installed version of dist_name avoiding pkg_resources cacheN(RtRequirementRR\R�tfindtversion(t	dist_nameR�treqR�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR.cs
cC@st|dd�dS(sConsume an iterable at C speed.tmaxleniN(R(titerator((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytconsumeuscO@sTtt|tt|���|�}d�|j�D�}||d<tdd|�S(NcS@si|]\}}||�qS(((R�R�R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pys
<dictcomp>}s	treverse_mappingtEnum((tdicttziptrangeR:titemsttype(t
sequentialtnamedtenumstreverse((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytenum{s$
cC@s>|dkr|Sd|kr.dj|�}ndj||�S(s.
    Build a netloc from a host-port pair
    t:s[{}]s{}:{}N(R\R6(thosttport((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytbuild_netloc�s
thttpscC@sO|jd�dkr?d|kr?d|kr?dj|�}ndj||�S(s)
    Build a full URL from a netloc.
    R�it@t[s[{}]s{}://{}(tcountR6(tnetloctscheme((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytbuild_url_from_netloc�s-cC@s+t|�}tj|�}|j|jfS(s2
    Return the host-port pair from a netloc.
    (Rturllib_parseturlparsethostnameR�(R�turltparsed((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytparse_netloc�scC@s{d|kr|dfS|jdd�\}}d|krO|jdd�}n|df}td�|D��}||fS(sp
    Parse out and remove the auth information from a netloc.

    Returns: (netloc, (username, password)).
    R�iR�cs@s-|]#}|dkrdn	t|�VqdS(N(R\turllib_unquote(R�tx((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pys	<genexpr>�sN(NN(R\trsplitRuttuple(R�tautht	user_pass((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytsplit_auth_from_netloc�s
cC@stt|�\}\}}|dkr(|S|dkrCd}d}ntj|�}d}djd|d|d|�S(	s�
    Replace the sensitive data in a netloc with "****", if it exists.

    For example:
        - "user:pass@example.com" returns "user:****@example.com"
        - "accesstoken@example.com" returns "****@example.com"
    s****Rrs:****s{user}{password}@{netloc}tusertpasswordR�N(R
R\RtquoteR6(R�RR((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt
redact_netloc�s		cC@s\tj|�}||j�}|j|d|j|j|jf}tj|�}||fS(sRTransform and replace netloc in a url.

    transform_netloc is a function taking the netloc and returning a
    tuple. The first element of this tuple is the new netloc. The
    entire tuple is returned.

    Returns a tuple containing the transformed url as item 0 and the
    original tuple returned by transform_netloc as item 1.
    i(RturlsplitR�R�R1tquerytfragmentt
urlunsplit(Rttransform_netloctpurltnetloc_tuplet
url_piecestsurl((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt_transform_url�s

%cC@s
t|�S(N(R
(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt_get_netloc�scC@s
t|�fS(N(R(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt_redact_netloc�scC@s(t|t�\}\}}|||fS(s�
    Parse a url into separate netloc, auth, and url with no auth.

    Returns: (url_without_auth, netloc, (username, password))
    (RR(Rturl_without_authR�R((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytsplit_auth_netloc_from_url�scC@st|t�dS(s7Return a copy of url with 'username:password@' removed.i(RR(R((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR/�scC@st|t�dS(s.Replace the password in a given url with ****.i(RR(R((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytredact_auth_from_urlst
HiddenTextcB@s5eZd�Zd�Zd�Zd�Zd�ZRS(cC@s||_||_dS(N(tsecrettredacted(R�R"R#((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR�
s	cC@sdjt|��S(Ns<HiddenText {!r}>(R6Rm(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt__repr__scC@s|jS(N(R#(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt__str__scC@s,t|�t|�krtS|j|jkS(N(R�R�R"(R�tother((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt__eq__scC@s||kS(N((R�R&((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt__ne__*s(R�R�R�R$R%R'R((((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyR!s
					cC@st|dd�S(NR#s****(R!(R�((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt
hide_value/scC@st|�}t|d|�S(NR#(R R!(RR#((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pythide_url4scC@s�ddjtjd�djtjd �g}|oWtoWtjjtjd�|k}|r�tjddgtjd}t	d	jd
j
|����ndS(s�Protection of pip.exe from modification on Windows

    On Windows, any operation modifying pip should be run as:
        python -m pip ...
    spip.exes	pip{}.exeispip{}.{}.exeis-mRCis3To modify pip, please run the following command:
{}t N(R6RERfRR0R1RDRFRGR
R2(t
modifying_pipt	pip_namestshould_show_use_python_msgtnew_command((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt(protect_pip_from_modification_on_windows:scC@stjdk	otjj�S(s!Is this console interactive?
    N(REtstdinR\tisatty(((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytis_console_interactiveXsiicC@sntj�}d}t|d��A}x7t|d|�D]#}|t|�7}|j|�q7WWdQX||fS(s:Return (hash, length) for path using hashlib.sha256()
    itrbR�N(thashlibtsha256topenR�R:tupdate(R1t	blocksizethtlengthtftblock((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt	hash_file_scC@s)yddl}Wntk
r$tSXtS(s8
    Return whether the wheel package is installed.
    iN(twheeltImportErrorR�R�(R?((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pytis_wheel_installedms

i(�t
__future__Rt
contextlibR?R�R5tiotloggingR0R�RPRSREtcollectionsRtpip._vendorRtpip._vendor.retryingRtpip._vendor.sixRRtpip._vendor.six.movesRtpip._vendor.six.moves.urllibRRt"pip._vendor.six.moves.urllib.parseRRRCR	tpip._internal.exceptionsR
tpip._internal.locationsRRR
tpip._internal.utils.compatRRRRtpip._internal.utils.typingRRtpip._internal.utils.virtualenvRRRRttypingRRRRRRRRR tpip._vendor.pkg_resourcesR!tintR9t__all__t	getLoggerR�R�R8R<R-R+R�R"RQRbR#R$RyR|R%R�R�R'R(tDEFAULT_BUFFER_SIZER�R�R)R&R*R�R�R�R�R�R\R�R�R�R�tobjectR�R�tcontextmanagerR�R,R�R�R.R�R�R�RRR
RRRRRR/R R!R)R*R0R3R>RA(((s@/mingw64/lib/python2.7/site-packages/pip/_internal/utils/misc.pyt<module>s�"@							"	
		
							
							
>	$		
					
	
								#