ok

Mini Shell

Direktori : /proc/self/root/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/
Upload File :
Current File : //proc/self/root/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyc

�
Bu�_c@@s\ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZddlmZddlmZddlmZddlmZmZdd	lmZmZmZmZmZdd
l m!Z"ddl#m$Z%ddl&m'Z'dd
l(m)Z)ddl*m+Z+m,Z,m-Z-m.Z.ddl/m0Z0m1Z1m2Z2m3Z3ddl4m5Z5m6Z6ddl7m8Z8m9Z9er�ddlm:Z;nddlm;Z;e5r�ddl<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHddlImJZJeFeKeKeKfZLeGd�ZMndddddddddd d!d"d#d$gZNejOeP�ZQd%�ZRd&�ZSd'�ZTd(�ZUed)d*d+d,�eVd-��ZWd.�ZXd/�ZYd0�ZZd1d2�Z[d3�Z\d4�Z]d5�Z^d6�Z_d7�Z`d8�Zad9�Zbd:�Zcejdd;�Zeefd<�Zgd=�Zhd>�Zid?�Zjd@�ZkdA�ZldB�ZmdC�ZndD�Zoefe2efeVeVddE�ZqdF�ZrdG�ZsdH�ZtdI�ZudJ�ZvdKewfdL��YZxdMe;fdN��YZyejzdO��Z{dP�Z|dQ�Z}ddR�Z~dS�ZdT�Z�dU�Z�dVdW�Z�dX�Z�dY�Z�dZ�Z�d[�Z�d\�Z�d]�Z�d^�Z�d_�Z�d`�Z�daewfdb��YZ�dc�Z�dd�Z�de�Z�df�Z�dmdi�Z�dj�Z�dk�Z�dl�Z�dS(ni(tabsolute_importN(tdeque(ttee(t
pkg_resources(tcanonicalize_name(tretry(tPY2t	text_type(tfiltertfilterfalsetinputtmaptzip_longest(tparse(tunquote(t__version__(tCommandError(tdistutils_schemetget_major_minor_versiont
site_packagest	user_site(tWINDOWSt
expandusertstdlib_pkgststr_to_display(tMYPY_CHECK_RUNNINGtcast(trunning_under_virtualenvtvirtualenv_no_global(tBytesIO(tStringIO(tAnytAnyStrtCallablet	ContainertIterabletIteratortListtOptionaltTexttTupletTypeVartUnion(tDistributiontTtrmtreet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__tabspathtformatRR(tpip_pkg_dir((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytget_pip_versionOs$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((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytnormalize_version_info[s

cC@sUytj|�Wn=tk
rP}|jtjkrQ|jtjkrQ�qQnXdS(s os.path.makedirs without EEXIST.N(R;tmakedirstOSErrorterrnotEEXISTt	ENOTEMPTY(R<te((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR8os
$cC@s^y=tjjtjd�}|dkr8djtj�S|SWnttt	fk
rYnXdS(Nis__main__.pys-cs	{} -m piptpip(s__main__.pys-c(
R;R<tbasenametsystargvRAt
executabletAttributeErrort	TypeErrort
IndexError(tprog((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR6zststop_max_delayi�t
wait_fixedi�cC@stj|d|dt�dS(Nt
ignore_errorstonerror(tshutilR-trmtree_errorhandler(tdirRY((sI/opt/alt/python36/lib/python3.6/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(R;tstattst_modetS_IWRITEtIOErrorRItchmod(tfuncR<texc_infothas_attr_readonly((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR\�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
isinstanceRtdecodeRPtgetfilesystemencodingtUnicodeDecodeErrorRRRAtascii(R<R.((sI/opt/alt/python36/lib/python3.6/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.(R;R<tnormcaseR@RPtversion_infoRiRjtencodetgetdefaultencodingt
startswithtgetcwdtsepRE(R<((sI/opt/alt/python36/lib/python3.6/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(R;R<texistststr(R]texttnt	extension((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR/�s
cC@sCx3tjjdd�j�D]}||kr|SqWt||�S(NtPIP_EXISTS_ACTIONt(R;tenvirontgettsplitR0(tmessagetoptionstaction((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytask_path_exists�s"cC@s.tjjd�r*tdj|���ndS(s&Raise an error if no input is allowed.tPIP_NO_INPUTs7No input was expected ($PIP_NO_INPUT set); question: {}N(R;R~Rt	ExceptionRA(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt_check_no_input�scC@s_xXt|�t|�}|j�j�}||krTdj|dj|��GHq|SqdS(s@Ask the message interactively, with the given possible responsess>Your response ({!r}) was not one of the expected responses: {}s, N(R�R
tstriptlowerRAR=(R�R�tresponse((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR0�s
cC@st|�t|�S(sAsk for input interactively.(R�R
(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt	ask_inputs
cC@st|�tj|�S(s!Ask for a password interactively.(R�tgetpass(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytask_passwords
cC@sx|dkr!dj|dd�S|d	krDdjt|d��S|dkradj|d�Sdjt|��SdS(
Ni�s	{:.1f} MBg@�@i
s{} kBs	{:.1f} kBs{} bytesi@Bi'(RAtint(tbytes((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR2scC@s�g|D]}ttt|��^q}gtdd|�D]}ttt|��^q;}g|D]*}djttj||��j�^qc}||fS(s�Return a list of formatted rows and a list of column sizes.

    For example::

    >>> tabulate([['foobar', 2000], [0xdeadbeef]])
    (['foobar     2000', '3735928559'], [10, 4])
    t	fillvalueR}t (	ttupleRRxRtmaxRER=tljusttrstrip(trowstrowtcoltsizesttable((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyttabulates	(47cC@sptjj|�stStjj|d�}tjj|�rAtStjj|d�}tjj|�rltStS(sBIs path is a directory containing setup.py or pyproject.toml?
    ssetup.pyspyproject.toml(R;R<tisdirtFalseR=tisfiletTrue(R<tsetup_pytpyproject_toml((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR3)scc@s/x(tr*|j|�}|s"Pn|VqWdS(s7Yield pieces of data from a file-like object until EOF.N(R�tread(tfiletsizetchunk((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytread_chunks8s
	cC@sIt|�}|r'tjj|�}ntjj|�}tjj|�S(sN
    Convert a path to its canonical, case-normalized, absolute version.

    (RR;R<trealpathR@Rp(R<tresolve_symlinks((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR4As
cC@sOtj|�\}}|j�jd�rE|d|}|d }n||fS(s,Like os.path.splitext, but take off .tar toos.tari����(t	posixpathR1R�tendswith(R<tbaseRy((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR1Os

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(	R;R<R�RwRHR[tmovet
removedirsRI(toldtnewtheadttail((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR5Ys
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�RtR4RPtprefix(R<((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytis_localks
	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((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt
dist_is_localzs	cC@st|�jtt��S(sF
    Return True if given Distribution is installed in user site.
    (R�RtR4R(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytdist_in_usersite�scC@st|�jtt��S(s[
    Return True if given Distribution is installed in
    sysconfig.get_python_lib().
    (R�RtR4R(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytdist_in_site_packages�scC@s<tt|��}|jttd�djd�d��S(sf
    Return True if given Distribution is installed in
    path matching distutils_scheme layout.
    R}tpurelibtpythoni(R4R�RtRR�(R�t	norm_path((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytdist_in_install_path�s	cC@sJxCtjD]8}tjj||jd�}tjj|�r
tSq
WtS(sC
    Return True if given Distribution is an editable install.
    s	.egg-link(RPR<R;R=tproject_nameR�R�R�(R�t	path_itemtegg_link((sI/opt/alt/python36/lib/python3.6/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((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt
local_test�scS@stS(N(R�(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt
editable_test�scS@st|�S(N(R�(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR��scS@s
t|�S(N(R�(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyteditables_only_test�scS@stS(N(R�(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR��scS@stS(N(R�(R�((sI/opt/alt/python36/lib/python3.6/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�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytget_installed_distributions�s*							
c
C@sVt|�}tdtdddtdtdtdd	�}d�|D�}|j|�S(
s�Find a distribution matching the ``req_name`` in the environment.

    This searches from *all* distributions available in the environment, to
    match the behavior of ``pkg_resources.get_distribution()``.
    R�R�R�R�R�R�cS@s"i|]}|t|j��qS((RR�(t.0tp((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pys
<dictcomp>s	(N(RR�R�R�RgR(treq_nametpackagestpkg_dict((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt_search_distribution�s
	cC@sKt|�}|sAytjj|�WqAtjk
r=dSXnt|�S(s�Given a requirement name, return the installed Distribution object.

    This searches from *all* distributions available in the environment, to
    match the behavior of ``pkg_resources.get_distribution()``.
    N(R�RR�trequiretDistributionNotFoundRg(R�R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytget_distributions	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(RtappendRRRR;R<R=R�R�Rg(R�tsitestsitetegglink((sI/opt/alt/python36/lib/python3.6/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�R4tlocation(R�R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR�Hs

cG@stj||�dS(N(tloggertinfo(tmsgtargs((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytwrite_outputXstFakeFilecB@s)eZdZd�Zd�Zd�ZRS(sQWrap a list of lines in an object with readline() to make
    ConfigParser happy.cC@st|�|_dS(N(titert_gen(tselftlines((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt__init__`scC@s*yt|j�SWntk
r%dSXdS(NR}(tnextR�t
StopIteration(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytreadlinecs
cC@s|jS(N(R�(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt__iter__is(t__name__t
__module__t__doc__R�R�R�(((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR�]s		t
StreamWrappercB@s&eZed��Zed��ZRS(cC@s||_|�S(N(torig_stream(tclsR�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytfrom_streamos	cC@s
|jjS(N(R�tencoding(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR�us(R�R�tclassmethodR�tpropertyR�(((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR�mscc@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(tgetattrRPtsetattrR�R�(tstream_nametorig_stdout((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytcaptured_outputzs
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�(((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR7�s	cC@s
td�S(s 
    See captured_stdout().
    tstderr(R�(((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytcaptured_stderr�scC@sMtjj|�}|dkr-tj�}n|j|�}|rI|jSdS(sCGet the installed version of dist_name avoiding pkg_resources cacheN(RtRequirementR
RgR�tfindtversion(t	dist_nameR�treqR�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR9�s
cC@st|dd�dS(sConsume an iterable at C speed.tmaxleniN(R(titerator((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytconsume�scO@sTtt|tt|���|�}d�|j�D�}||d<tdd|�S(NcS@si|]\}}||�qS(((R�R�tvalue((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pys
<dictcomp>�s	treverse_mappingtEnum((tdicttziptrangeREtitemsttype(t
sequentialtnamedtenumstreverse((sI/opt/alt/python36/lib/python3.6/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(RgRA(thosttport((sI/opt/alt/python36/lib/python3.6/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.
    Rit@t[s[{}]s{}://{}(tcountRA(tnetloctscheme((sI/opt/alt/python36/lib/python3.6/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(Rturltparsed((sI/opt/alt/python36/lib/python3.6/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)).
    RiRcs@s-|]#}|dkrdn	t|�VqdS(N(Rgturllib_unquote(R�tx((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pys	<genexpr>�sN(NN(RgtrsplitR�R�(Rtautht	user_pass((sI/opt/alt/python36/lib/python3.6/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****R}s:****s{user}{password}@{netloc}tusertpasswordRN(R+RgR tquoteRA(RR,R-((sI/opt/alt/python36/lib/python3.6/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(R turlsplitRRR<tquerytfragmentt
urlunsplit(R#ttransform_netloctpurltnetloc_tuplet
url_piecestsurl((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt_transform_urls

%cC@s
t|�S(N(R+(R((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt_get_netloc$scC@s
t|�fS(N(R/(R((sI/opt/alt/python36/lib/python3.6/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))
    (R9R:(R#turl_without_authRR)((sI/opt/alt/python36/lib/python3.6/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(R9R:(R#((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR:7scC@st|t�dS(s.Replace the password in a given url with ****.i(R9R;(R#((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytredact_auth_from_url?st
HiddenTextcB@s5eZd�Zd�Zd�Zd�Zd�ZRS(cC@s||_||_dS(N(tsecrettredacted(R�R@RA((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR�Fs	cC@sdjt|��S(Ns<HiddenText {!r}>(RARx(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt__repr__OscC@s|jS(N(RA(R�((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt__str__SscC@s,t|�t|�krtS|j|jkS(N(RR�R@(R�tother((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt__eq__XscC@s||kS(N((R�RD((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt__ne__cs(R�R�R�RBRCRERF(((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyR?Es
					cC@st|dd�S(NRAs****(R?(R((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt
hide_valuehscC@st|�}t|d|�S(NRA(R>R?(R#RA((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pythide_urlms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-mRNis3To modify pip, please run the following command:
{}R�N(RARPRqRR;R<RORQRRRR=(t
modifying_pipt	pip_namestshould_show_use_python_msgtnew_command((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt(protect_pip_from_modification_on_windowssscC@stjdk	otjj�S(s!Is this console interactive?
    N(RPtstdinRgtisatty(((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytis_console_interactive�siicC@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�REtupdate(R<t	blocksizethtlengthtftblock((sI/opt/alt/python36/lib/python3.6/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\((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytis_wheel_installed�s

cC@st|�}t||�S(sb
    Return paired elements.

    For example:
        s -> (s0, s1), (s2, s3), (s4, s5), ...
    (R�R(titerable((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pytpairwise�scC@s.t|�\}}t||�t||�fS(s�
    Use a predicate to partition entries into false entries and true entries,
    like

        partition(is_odd, range(10)) --> 0 2 4 6 8   and  1 3 5 7 9
    (RR	R(tpredR_tt1tt2((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt	partition�si(�t
__future__Rt
contextlibRJR�RRtiotloggingR;R�R[R^RPtcollectionsRt	itertoolsRtpip._vendorRtpip._vendor.packaging.utilsRtpip._vendor.retryingRtpip._vendor.sixRRtpip._vendor.six.movesRR	R
RRtpip._vendor.six.moves.urllibR
R t"pip._vendor.six.moves.urllib.parseRR&RNRtpip._internal.exceptionsRtpip._internal.locationsRRRRtpip._internal.utils.compatRRRRtpip._internal.utils.typingRRtpip._internal.utils.virtualenvRRRRttypingRR R!R"R#R$R%R&R'R(R)R*tpip._vendor.pkg_resourcesR+R�RDR,t__all__t	getLoggerR�R�RCRGR8R6R�R-R\RmR.R/R�R�R0R�R�R2R�R3tDEFAULT_BUFFER_SIZER�R�R4R1R5R�R�R�R�R�R�RgR�R�R�R�R�R�tobjectR�R�tcontextmanagerR�R7R�R9RRRRR%R+R/R9R:R;R=R:R>R?RGRHRMRPR[R^R`Rd(((sI/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/misc.pyt<module>s�(""R							"	
		
								
							
	
>			$		
					
	
								#						

Zerion Mini Shell 1.0