JFIF$        dd7 

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

a

[��f��	@s\ddlZddlZddlZddlZddlZddlZddlmZm	Z	ddl
mZmZddl
mZddlmZmZe�e�Zee���Zeedd�Zed�d	d
�Zed�dd�Zed�d
d�Zed�dd�Zgd�Z e�!d�dur�e �"d�d eeej#eej#eeej#eed�dd�Z$ed�dd�Z%ed�dd�Z&ed�dd�Z'eej(eefd�dd�Z)dS)!�N)�InvalidSchemeCombination�UserInstallationInvalid)�SCHEME_KEYS�Scheme)�running_under_virtualenv�)�get_major_minor_version�is_osx_frameworkZget_preferred_scheme)�returncCsdtvot�ot�S)a�Check for Apple's ``osx_framework_library`` scheme.

    Python distributed by Apple's Command Line Tools has this special scheme
    that's used when:

    * This is a framework build.
    * We are installing into the system prefix.

    This does not account for ``pip install --prefix`` (also means we're not
    installing to the system prefix), which should use ``posix_prefix``, but
    logic here means ``_infer_prefix()`` outputs ``osx_framework_library``. But
    since ``prefix`` is not available for ``sysconfig.get_default_scheme()``,
    which is the stdlib replacement for ``_infer_prefix()``, presumably Apple
    wouldn't be able to magically switch between ``osx_framework_library`` and
    ``posix_prefix``. ``_infer_prefix()`` returning ``osx_framework_library``
    means its behavior is consistent whether we use the stdlib implementation
    or our own, and we deal with this special case in ``get_scheme()`` instead.
    �osx_framework_library)�_AVAILABLE_SCHEMESrr	�r
r
�F/usr/lib/python3.9/site-packages/pip/_internal/locations/_sysconfig.py� _should_use_osx_framework_prefixs
��rcCsvtrtd�St�rdStjj�dtj��}|tvr6|StjjtvrJtjjStj�d�}|tvrb|StjtvrrtjSdS)a!Try to find a prefix scheme for the current platform.

    This tries:

    * A special ``osx_framework_library`` for Python distributed by Apple's
      Command Line Tools, when not running in a virtual environment.
    * Implementation + OS, used by PyPy on Windows (``pypy_nt``).
    * Implementation without OS, used by PyPy on POSIX (``pypy``).
    * OS + "prefix", used by CPython on POSIX (``posix_prefix``).
    * Just the OS name, used by CPython on Windows (``nt``).

    If none of the above works, fall back to ``posix_prefix``.
    �prefixr�_�_prefix�posix_prefix)�_PREFERRED_SCHEME_APIr�sys�implementation�name�osr)Zimplementation_suffixed�suffixedr
r
r�
_infer_prefix8s
rcCsHtrtd�St�rt�sd}ntj�d�}|tvr6|SdtvrDt��dS)z3Try to find a user scheme for the current platform.�userZosx_framework_user�_userZ
posix_user)rr	rrrrr�rr
r
r�_infer_userWsrcCs(trtd�Stj�d�}|tvr$|SdS)z,Try to find a home for the current platform.�home�_homeZ
posix_home)rrrrrr
r
r�_infer_homefsr!)Zinstalled_base�baseZinstalled_platbase�platbaser�exec_prefix�userbaseF)�	dist_namerr�root�isolatedrr
csb|r�rtdd���r$�r$tdd���dur4t�}n|r@t�}nt�}�durZ|dkrZd}�durv�fdd�tD�}n �dur��fd	d�tD�}ni}tj||d
�}t�r�|r�|�dt	j
�}	n|�dt	j
�}	d
t���}
tj
�|	dd|
�|d<n|s�d}t|d|dtj
�|d|�|d|dd�}|du�r^tD]&}tj�|t||��}
t|||
��q6|S)a\
    Get the "scheme" corresponding to the input parameters.

    :param dist_name: the name of the package to retrieve the scheme for, used
        in the headers scheme path
    :param user: indicates to use the "user" scheme
    :param home: indicates to use the "home" scheme
    :param root: root under which other directories are re-based
    :param isolated: ignored, but kept for distutils compatibility (where
        this controls whether the user-site pydistutils.cfg is honored)
    :param prefix: indicates to use the "prefix" scheme and provides the
        base directory for the same
    z--userz--prefixz--homeNrrcsi|]
}|��qSr
r
��.0�k)rr
r�
<dictcomp>��zget_scheme.<locals>.<dictcomp>csi|]
}|��qSr
r
r))rr
rr,�r-)�scheme�varsr%r"ZpythonZincludeZsiteZUNKNOWN�platlib�purelib�scripts�data)r0r1Zheadersr2r3)rr!rr�
_HOME_KEYS�	sysconfig�	get_pathsr�getrrrr�path�joinrr�	distutils�utilZchange_root�getattr�setattr)r&rrr'r(rZscheme_nameZ	variables�pathsr"Z	python_xyr.�key�valuer
)rrr�
get_scheme}sJ

�
rAcCs4tjdd�dkr(tjdd�dkr(dSt��dS)N��darwin�z/System/Library/z/usr/local/binr2)r�platformrr5r6r
r
r
r�get_bin_prefix�s$rFcCst��dS)Nr1�r5r6r
r
r
r�get_purelib�srHcCst��dS)Nr0rGr
r
r
r�get_platlib�srI)rr
cCs"tj||d�d�}|d|dfS)N)r"r#)r/r1r0rG)rr>r
r
r�get_prefixed_libs�srJ)FNNFN)*Zdistutils.utilr:Zloggingrrr5�typingZpip._internal.exceptionsrrZpip._internal.models.schemerrZpip._internal.utils.virtualenvrr"rr	Z	getLogger�__name__�logger�setZget_scheme_namesrr<r�boolr�strrrr!r4Zget_config_var�append�OptionalrArFrHrI�TuplerJr
r
r
r�<module>sJ

��M
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