JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-39.pyc

a

[��fl8�	@s�UddlZddlZddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZmZddl
mZmZddlmZddlmZddlmZddlmZmZdd	lmZmZmZmZmZmZgd
�Z e�!e"�Z#ej$�%d�r�ej&Z'nej(Z'e)edd
�Z*e+e,d<ej-dkZ.e/d�dd�Z0ee+e+fe/d�dd�Z1ej2dd�e/d�dd��Z3ej2dd�e/d�dd��Z4ej2dd�e/d�dd��Z5ej2dd�e/d�dd��Z6ee+e	e+d�d d!�Z7ej2dd�ej8ej8e+dd"�d#d$��Z9ej8ej8e+e/d"�d%d&�Z:ej2dd�d'dddd(�e/ee+ee+ee+dd)�d*d+��Z;d@e+e/ee+ee+e/ee+ed,�d-d.�Z<e+d�d/d0�Z=e+d�d1d2�Z>e+e/d3�d4d5�Z?e+d�d6d7�Z@e+d�d8d9�ZAe+e+e
e+d:�d;d<�ZBe+e
e+d=�d>d?�ZCdS)A�N)�Any�Dict�Iterator�List�Optional�Tuple)�SCHEME_KEYS�Scheme)�WINDOWS)�
deprecated)�running_under_virtualenv�)�
_distutils�
_sysconfig)�USER_CACHE_DIR�get_major_minor_version�get_src_prefix�is_osx_framework�
site_packages�	user_site)r�get_bin_prefix�get_bin_userr�get_platlib�get_prefixed_libs�get_purelib�
get_schemerrrZ"_PIP_LOCATIONS_NO_WARN_ON_MISMATCH�
platlibdir�lib�_PLATLIBDIR)��
)�returncCs:ddlm}z|dd}Wnty0YdS0|dkS)zsThe resolution to bpo-44860 will change this incorrect platlib.

    See <https://bugs.python.org/issue44860>.
    r��INSTALL_SCHEMESZ	unix_user�platlibFz	$usersite)�distutils.command.installr#�KeyError)r#Zunix_user_platlib�r'�D/usr/lib/python3.9/site-packages/pip/_internal/locations/__init__.py�_looks_like_bpo_448603sr))�schemer!cCs\|d}d|vr0ttd�r0|�ddtj�d��}d|vr<dS|�dd�}|�dd	�|d
kS)Nr$z
/$platlibdir/r�/z/lib64/Fz/lib/z
$platbase/z$base/�purelib)�hasattr�sys�replacer)r*r$Z	unpatchedr'r'r(�+_looks_like_red_hat_patched_platlib_purelibAsr0)�maxsizecs"ddlm�t�fdd�dD��S)z�Red Hat patches platlib in unix_prefix and unix_home, but not purelib.

    This is the only way I can see to tell a Red Hat-patched Python.
    rr"c3s"|]}|�vot�|�VqdS�N)r0��.0�kr"r'r(�	<genexpr>Ss�z*_looks_like_red_hat_lib.<locals>.<genexpr>)Zunix_prefixZ	unix_home)r%r#�allr'r'r"r(�_looks_like_red_hat_libKs�r8cCsddlm}d|vod|vS)z#Debian adds two additional schemes.rr"Z
deb_systemZ
unix_local)r%r#r"r'r'r(�_looks_like_debian_schemeZsr9cCs^ddlm}ddlm}||��}|��|jtj�t	j��d�ko\|j
tj�t	j
��d�kS)a\Red Hat patches ``sys.prefix`` and ``sys.exec_prefix``.

    Red Hat's ``00251-change-user-install-location.patch`` changes the install
    command's ``prefix`` and ``exec_prefix`` to append ``"/local"``. This is
    (fortunately?) done quite unconditionally, so we create a default command
    object without any configuration to detect this.
    r)�install)�Distributionz/local)r%r:Zdistutils.distr;Zfinalize_options�exec_prefix�os�path�normpathr.�prefix)r:r;�cmdr'r'r(�_looks_like_red_hat_schemebs	
�rBcs.tjddd��tdd��fdd�dD�D��S)a�MSYS2 patches distutils and sysconfig to use a UNIX-like scheme.

    However, MSYS2 incorrectly patches sysconfig ``nt`` scheme. The fix is
    likely going to be included in their 3.10 release, so we ignore the warning.
    See msys2/MINGW-packages#9319.

    MSYS2 MINGW's patch uses lowercase ``"lib"`` instead of the usual uppercase,
    and is missing the final ``"site-packages"``.
    �ntF)�expandcss*|]"}d|vo d|vo |�d�VqdS)ZLibrz
site-packagesN)�endswith)r4�pr'r'r(r6�s�z1_looks_like_msys2_mingw_scheme.<locals>.<genexpr>c3s|]}�|VqdSr2r')r4�key��pathsr'r(r6���r$r,)�	sysconfigZ	get_pathsr7r'r'rHr(�_looks_like_msys2_mingw_schemevs�rM)�partsr!ccsht�d�}ttdd�}|r(|r(|�|�s6|EdHdS|D](}|�|�r\|ddt|��}|Vq:dS)NZ	LDVERSION�abiflagsr)rLZget_config_var�getattrr.rE�len)rNZ	ldversionrO�partr'r'r(�
_fix_abiflags�s


rS)�old�newrGr!cCs d}d}t�t|||||�dS)Nz(https://github.com/pypa/pip/issues/10151zSValue for %s does not match. Please report this to <%s>
distutils: %s
sysconfig: %s)�logger�log�_MISMATCH_LEVEL)rTrUrGZ	issue_url�messager'r'r(�_warn_mismatched�s�rZcCs||krdSt|||d�dS)NF�rGT)rZ)rTrUrGr'r'r(�_warn_if_mismatch�sr\F��user�home�rootr@)r^r_r`r@r!cCs&gd�}t�td�|�||||�dS)N)zAdditional context:z	user = %rz	home = %rz	root = %rzprefix = %r�
)rVrWrX�join)r^r_r`r@rNr'r'r(�_log_context�src)�	dist_namer^r_r`�isolatedr@r!c	s�tj||||||d�}tr|Stj||||||d��g}tD�]}t�t�|��}	t�t||��}
|	|
krlq<tj	j
dko�|duo�|dvo�|	j|
jko�|	j
�d�o�|
j
�d�}|r�q<|o�t
�o�|dko�|	jj|
jko�|	jj
�d�}|r�q<|dkr�t�r�q<|�o(|dk�o(t�o(tjdk�o(tdk�o(t�}
|
�r2q<|�pH|�pH|�pHt��o�|	jd	d
�dk�o�t|
j�d	k�o�|
jd	dk�o�t|
j�d
k�s�|
jd
dk�o�t��p�t�}|�r�q<tjdk�o�t�o�|dv�o�tt|	j��|
jk}|�r�q<t�o|dv�ot�}|�rq<tjdd��o,t�o,|dv}|�r6q<|�|	|
d|��f�q<|�sX�Stj||||||dd��t��fdd�tD���r�t dddd��S|D]\}	}
}t!|	|
|d��q�t"||||d��S)N)r^r_r`rer@ZpypyrKZpython�headersr$)r�	rr
r)�usr�localrh�ri)r�)rfr$r,T)Z
check_home)rfZincludeZplatincludezscheme.)Zignore_config_filesc3s |]}�|t�|�kVqdSr2)rPr3�Zdefault_oldrTr'r(r6OrJzget_scheme.<locals>.<genexpr>z�Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621)�reasonZreplacementZgone_inr[r])#rr�_USE_SYSCONFIGrr�pathlib�PathrPr.�implementation�name�parent�
startswithrr8r
�version_inforr)rrNrQrBr9�tuplerSrMrLZis_python_build�appendZdistutils_scheme�anyrrZrc)rdr^r_r`rer@rUZwarning_contextsr5Zold_vZnew_vZskip_pypy_special_caseZ$skip_osx_framework_user_special_caseZskip_bpo_44860Zskip_linux_system_special_caseZskip_sysconfig_abiflag_bugZskip_msys2_mingw_bugZskip_cpython_buildrGr'rlr(r�s���	
��
�
�
����������������������	�
rcCs<t��}tr|St��}tt�|�t�|�dd�r8t�|S)NZ
bin_prefixr[)rrrnrr\rorprc�rUrTr'r'r(rdsrcCstjddd�jS)N�T)r^)rrZscriptsr'r'r'r(rosr)�valuer!cCst�s
dS|dkrdSdS)a�Check if the value is Debian's APT-controlled dist-packages.

    Debian's ``distutils.sysconfig.get_python_lib()`` implementation returns the
    default package path controlled by APT, but does not patch ``sysconfig`` to
    do the same. This is similar to the bug worked around in ``get_scheme()``,
    but here the default is ``deb_system`` instead of ``unix_local``. Ultimately
    we can't do anything about this Debian bug, and this detection allows us to
    skip the warning when needed.
    Fz/usr/lib/python3/dist-packagesT)r9)r{r'r'r(�$_looks_like_deb_system_dist_packagesss

r|cCsHt��}tr|St��}t|�r$|Stt�|�t�|�dd�rDt�|S)z,Return the default pure-Python lib location.r,r[)	rrrnrr|r\rorprcryr'r'r(r�srcCsHt��}tr|St��}t|�r$|Stt�|�t�|�dd�rDt�|S)z0Return the default platform-shared lib location.r$r[)	rrrnrr|r\rorprcryr'r'r(r�sr)�v1�v2r!cCs||kr|gS||gS)zDeduplicate values from a list.r')r}r~r'r'r(�
_deduplicated�sr)r@r!cCszt�|�\}}trt||�St�|�\}}tt�|�t�|�dd�tt�|�t�|�dd�g}t|�rpt	|d�t||�S)z*Return the lib locations under ``prefix``.zprefixed-purelibr[zprefixed-platlib)r@)
rrrnrrr\rorprxrc)r@Znew_pureZnew_platZold_pureZold_platZwarnedr'r'r(r�s$
���
r)FNNFN)D�	functoolsZloggingr=ror.rL�typingrrrrrrZpip._internal.models.schemerr	Zpip._internal.utils.compatr
Zpip._internal.utils.deprecationrZpip._internal.utils.virtualenvrrzrr�baserrrrrr�__all__Z	getLogger�__name__rV�environ�get�DEBUGrXZWARNINGrPr�str�__annotations__rurn�boolr)r0�	lru_cacher8r9rBrMrSrprZr\rcrrrr|rrrrr'r'r'r(�<module>s�
  	









����(
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg