
    4Քh$                       S SK Jr  S SKrS SKrS SKrS SKrS SKJrJr  S SK	J
r
Jr  S SKJr  SSKJrJrJr  \R$                  " \5      r\" \R,                  " 5       5      r\" \SS5      rSS	 jrSS
 jrSS jrSS jr/ SQr\R>                  " S5      b  \RA                  S5             S             SS jjr!SS jr"SS jr#SS jr$g)    )annotationsN)InvalidSchemeCombinationUserInstallationInvalid)SCHEME_KEYSScheme)running_under_virtualenv   )change_rootget_major_minor_versionis_osx_frameworkget_preferred_schemec                 b    S[         ;   =(       a     [        5       (       + =(       a
    [        5       $ )ax  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_SCHEMESr   r        Z/var/www/auris/envauris/lib/python3.13/site-packages/pip/_internal/locations/_sysconfig.py _should_use_osx_framework_prefixr      s+    ( 	 #55 	(**	r   c                    [         (       a  [        S5      $ [        5       (       a  g[        R                  R                   S[
        R                   3n U [        ;   a  U $ [        R                  R                  [        ;   a  [        R                  R                  $ [
        R                   S3nU[        ;   a  U$ [
        R                  [        ;   a  [
        R                  $ g)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   )implementation_suffixedsuffixeds     r   _infer_prefixr!   8   s     $X..'))&!$!3!3!8!8 9277)D"44&&
"44!!&&&'''"H%%	ww$$wwr   c                     [         (       a  [        S5      $ [        5       (       a  [        5       (       d  Sn O[        R                   S3n U [
        ;   a  U $ S[
        ;  a
  [        5       eg)z3Try to find a user scheme for the current platform.userosx_framework_user_user
posix_user)r   r   r   r   r   r   r   r    s    r   _infer_userr(   W   s]    $V,,":"<"<'ggYe$%%--%''r   c                 n    [         (       a  [        S5      $ [        R                   S3n U [        ;   a  U $ g)z,Try to find a home for the current platform.home_home
posix_home)r   r   r   r   r'   s    r   _infer_homer-   f   s4    $V,,''% H%%r   )installed_basebaseinstalled_platbaseplatbaser   exec_prefixuserbasec                   U(       a  U(       a  [        SS5      eU(       a  U(       a  [        SS5      eUb  [        5       nOU(       a  [        5       nO
[        5       nUb  US:X  a  SnUb  [         Vs0 s H  owU_M     nnOUb  [         Vs0 s H  owU_M     nnO0 n[
        R                  " XhS9n	[        5       (       a{  U(       a!  UR                  S[        R                  5      n
O UR                  S[        R                  5      n
S	[        5        3n[        R                  R                  U
S
SU5      U	S
'   O	U (       d  Sn [        U	S   U	S   [        R                  R                  U	S
   U 5      U	S   U	S   S9nUb1  0 n[          H  n[#        U[%        X5      5      X'   M     [        S0 UD6nU$ s  snf s  snf )a0  
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--homer   r   )schemevarsr3   r/   pythonincludesiteUNKNOWNplatlibpurelibscriptsdata)r;   r<   headersr=   r>   r   )r   r-   r(   r!   
_HOME_KEYS	sysconfig	get_pathsr   getr   r   r   r   pathjoinr   r   r
   getattr)	dist_namer#   r*   rootisolatedr   scheme_namek	variablespathsr/   	python_xyr5   converted_keyskeys                  r   
get_schemerQ   }   s   * &x<<&x<<!m	!m#o
 k-DD$&01jWj	1			(23
1Y
	3		{CE  !!==SZZ8D==4D4678	77<<iKi	i i U9-y9i 6]F C"-dGF4H"IN ).)MG 23s   5F7F<c                     [         R                  S S S:X  a  [         R                  S S S:X  a  g[        R                  " 5       S   $ )N   darwin   z/System/Library/z/usr/local/binr=   )r   platformr   rA   rB   r   r   r   get_bin_prefixrW      s>    
||BQ8#

3B;M(M ++r   c                 2    [         R                  " 5       S   $ )Nr<   rA   rB   r   r   r   get_purelibrZ           ++r   c                 2    [         R                  " 5       S   $ )Nr;   rY   r   r   r   get_platlibr]      r[   r   )returnbool)r^   str)FNNFN)rG   r`   r#   r_   r*   
str | NonerH   ra   rI   r_   r   ra   r^   r   )%
__future__r   loggingr   r   rA   pip._internal.exceptionsr   r   pip._internal.models.schemer   r   pip._internal.utils.virtualenvr   r/   r
   r   r   	getLogger__name__loggersetget_scheme_namesr   rF   r   r   r!   r(   r-   r@   get_config_varappendrQ   rW   rZ   r]   r   r   r   <module>rn      s   "  	 
  V ; C H H			8	$ 3356 	+A4H 4>
 J'3j!
 KK
K K 	K
 K K K\,,,r   