Ë
    ��h,  ã                   óò  — d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	m
Z
 d dlmZ ddlmZmZmZ  e j"                  e«      Z e ej*                  «       «      Z eedd«      Zdefd	„Zdefd
„Zdefd„Zdefd„Zg d¢Z ej@                  d«      �ejC                  d«       	 	 	 	 	 ddededejD                  e   dejD                  e   dedejD                  e   de
fd„Z#defd„Z$defd„Z%defd„Z&y)é    N)ÚInvalidSchemeCombinationÚUserInstallationInvalid)ÚSCHEME_KEYSÚScheme)Úrunning_under_virtualenvé   )Úchange_rootÚget_major_minor_versionÚis_osx_frameworkÚget_preferred_schemeÚreturnc                  óD   — dt         v xr t        «        xr
 t        «       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_SCHEMESr   r   © ó    ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_internal/locations/_sysconfig.pyÚ _should_use_osx_framework_prefixr      s+   € ð( 	 Ô#5Ð5ò 	Ü(Ó*Ð*ò	äÓðr   c                  ó¤  — t         rt        d«      S t        «       ryt        j                  j                  › dt
        j                  › �} | t        v r| S t        j                  j                  t        v rt        j                  j                  S t
        j                  › d�}|t        v r|S t
        j                  t        v rt
        j                  S y)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!   7   sª   € õ Ü$ XÓ.Ð.Ü'Ô)Ø&Ü!$×!3Ñ!3×!8Ñ!8Ð 9¸¼2¿7¹7¸)ÐDÐØÔ"4Ñ4Ø&Ð&Ü
×Ñ×ÑÔ"4Ñ4Ü×!Ñ!×&Ñ&Ð&Ü—'‘'�˜'Ð"€HØÔ%Ñ%ØˆÜ	‡w�wÔ$Ñ$Ü�w‰wˆØr   c                  ó²   — t         rt        d«      S t        «       rt        «       sd} nt        j                  › d�} | t
        v r| S dt
        vr
t        «       ‚y)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(   V   sT   € åÜ$ VÓ,Ð,ÜÔÔ":Ô"<Ø'‰ä—g‘g�Y˜eÐ$ˆØÔ%Ñ%ØˆØÔ-Ñ-Ü%Ó'Ð'Ør   c                  ó`   — t         rt        d«      S t        j                  › d�} | t        v r| S y)z,Try to find a home for the current platform.ÚhomeÚ_homeÚ
posix_home)r   r   r   r   r'   s    r   Ú_infer_homer-   e   s1   € åÜ$ VÓ,Ð,Ü—'‘'�˜%Ð €HØÔ%Ñ%ØˆØr   )Úinstalled_baseÚbaseÚinstalled_platbaseÚplatbaser   Úexec_prefixÚuserbaseÚ	dist_namer#   r*   ÚrootÚisolatedr   c                 ó*  — |r|rt        dd«      ‚|r|rt        dd«      ‚|�t        «       }n|rt        «       }n
t        «       }|�|dk(  rd}|�t        D �ci c]  }||“Œ }}n|�t        D �ci c]  }||“Œ }}ni }t        j                  ||¬«      }	t        «       rv|r!|j                  dt        j                  «      }
n |j                  dt        j                  «      }
d	t        «       › �}t        j                  j                  |
d
d|«      |	d
<   n| sd} t        |	d   |	d   t        j                  j                  |	d
   | «      |	d   |	d   ¬«      }|�1i }t         D ]  }t#        |t%        ||«      «      ||<   Œ t        di |¤Ž}|S c c}w c c}w )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--homer   r   )ÚschemeÚvarsr3   r/   ÚpythonÚincludeÚsiteÚUNKNOWNÚplatlibÚpurelibÚscriptsÚdata)r>   r?   Úheadersr@   rA   r   )r   r-   r(   r!   Ú
_HOME_KEYSÚ	sysconfigÚ	get_pathsr   Úgetr   r   r
   r   ÚpathÚjoinr   r   r	   Úgetattr)r4   r#   r*   r5   r6   r   Úscheme_nameÚkÚ	variablesÚpathsr/   Ú	python_xyr8   Úconverted_keysÚkeys                  r   Ú
get_schemerQ   |   s¦  € ñ* ‘Ü& x°Ó<Ð<Ù‘Ü& x°Ó<Ð<àÐÜ!“m‰Ù	Ü!“m‰ä#“oˆð
 Ð˜kÐ-DÒDØ$ˆàÐÜ&0Ö1 �Q˜‘WÐ1ˆ	Ñ1Ø	Ð	Ü(2Ö3 1�Q˜‘YÐ3ˆ	Ñ3àˆ	ä×Ñ {¸ÔC€Eô  Ô!ÙØ—=‘= ¬S¯Z©ZÓ8‰Dà—=‘= ¬¯©Ó4ˆDØÔ4Ó6Ð7Ð8ˆ	ÜŸ7™7Ÿ<™<¨¨i¸ÀÓKˆˆiÒÙØˆ	äØ�iÑ Ø�iÑ Ü—‘—‘˜U 9Ñ-¨yÓ9Ø�iÑ Ø�6‰]ô€Fð ÐØˆÜò 	JˆCÜ"-¨d´G¸FÀCÓ4HÓ"IˆN˜3Òð	JäÑ)˜.Ñ)ˆØ€MùòG 2ùâ3s   Á
FÁ/
Fc                  óŠ   — t         j                  d d dk(  rt         j                  d d dk(  ryt        j                  «       d   S )Né   Údarwiné   z/System/Library/z/usr/local/binr@   )r   Úplatformr   rD   rE   r   r   r   Úget_bin_prefixrW   Ê   s>   € ä
‡|�|�B�QÐ˜8Ò#¬¯
©
°3°B¨Ð;MÒ(MØÜ×ÑÓ  Ñ+Ð+r   c                  ó0   — t        j                  «       d   S )Nr?   ©rD   rE   r   r   r   Úget_purelibrZ   Ñ   ó   € Ü×ÑÓ  Ñ+Ð+r   c                  ó0   — t        j                  «       d   S )Nr>   rY   r   r   r   Úget_platlibr]   Õ   r[   r   )FNNFN)'Úloggingr   r   rD   ÚtypingÚpip._internal.exceptionsr   r   Úpip._internal.models.schemer   r   Úpip._internal.utils.virtualenvr   r/   r	   r
   r   Ú	getLoggerÚ__name__ÚloggerÚsetÚget_scheme_namesr   rI   r   Úboolr   Ústrr!   r(   r-   rC   Úget_config_varÚappendÚOptionalrQ   rW   rZ   r]   r   r   r   ú<module>rm      sX  ðÛ Û 	Û 
Û Û ç Vß ;Ý Cç HÑ Hà	ˆ×	Ñ	˜8Ó	$€ñ Ð3˜×3Ñ3Ó5Ó6Ð á 	Ð+AÀ4ÓHÐ ð¨$ó ð4�só ð>�Só ð�Só ò€
ð €9×Ñ˜JÓ'Ð3Ø×Ñ�jÔ!ð
 Ø!%Ø!%ØØ#'ñKØðKà
ðKð �/‰/˜#Ñ
ðKð �/‰/˜#Ñ
ð	Kð
 ðKð �O‰O˜CÑ ðKð óKð\,˜ó ,ð,�Só ,ð,�Sô ,r   