Ë
    äØjjy  ã                   óÄ  — d Z 	  ed«      j                  «        ddlZddlZddlZddlm	Z
 ddlmZ ddlmZ ddlmZ ddlmZmZmZmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZ  ej>                  e «      Z!	 	 	 	 	 dddœde"de#dee"   dee"   de#dee"   de#dee"e"f   fd„Z$	 	 	 	 	 dde"de#dee"   dee"   de#dee"   defd„Z%de"fd„Z&de"fd„Z'de"fd„Z(y# eef$ r Y ŒÄw xY w)z7Locations where we look for configs, install stuff, etcÚ_distutils_hacké    N)ÚCommand)ÚSCHEME_KEYS)Úinstall©Úget_python_lib)ÚDictÚListÚOptionalÚUnionÚcast)ÚScheme)ÚWINDOWS)Úrunning_under_virtualenvé   )Úget_major_minor_versionF)Úignore_config_filesÚ	dist_nameÚuserÚhomeÚrootÚisolatedÚprefixr   Úreturnc                óª  — ddl m} d| i}|rdg|d<    ||«      }	|s	 |	j                  «        d	}|	j                  d
d¬«      }|€J ‚t        t        |«      }|r|rJ d|› d|› �«       ‚|r|rJ d|› d|› �«       ‚|xs |j                  |_        |s|rd|_        |xs |j                  |_        |xs |j                  |_        |xs |j                  |_        |j                  «        i }t         D ]  }t#        |d|z   «      ||<   Œ d|	j%                  d
«      v r(|j'                  |j(                  |j(                  dœ«       t+        «       r»|r|}n|r|j,                  }n|j                  }t.        j0                  j                  |dddt3        «       › �| «      |d<   |�ht.        j0                  j5                  t.        j0                  j7                  |d   «      «      d   }t.        j0                  j                  ||dd	 «      |d<   |S # t        $ r@ |	j	                  «       }
t
        j                  ddj                  d„ |
D «       «      «       Y �Œ#w xY w)z+
    Return a distutils install scheme
    r   )ÚDistributionÚnamez--no-user-cfgÚscript_argsz6Ignore distutils configs in %s due to encoding errors.z, c              3   óZ   K  — | ]#  }t         j                  j                  |«      –— Œ% y ­w)N)ÚosÚpathÚbasename)Ú.0Úps     úd/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_internal/locations/_distutils.pyú	<genexpr>z#distutils_scheme.<locals>.<genexpr>>   s   è ø€ Ò=°!œ"Ÿ'™'×*Ñ*¨1×-Ñ=ùs   ‚)+Nr   T)Úcreatezuser=z prefix=zhome=Ú Úinstall_Úinstall_lib)ÚpurelibÚplatlibÚincludeÚsiteÚpythonÚheadersr   )Údistutils.distr   Úparse_config_filesÚUnicodeDecodeErrorÚfind_config_filesÚloggerÚwarningÚjoinÚget_command_objr   Údistutils_install_commandr   r   r   r   Úfinalize_optionsr   ÚgetattrÚget_option_dictÚupdater*   r   Úinstall_userbaser    r!   r   Ú
splitdriveÚabspath)r   r   r   r   r   r   r   r   Ú	dist_argsÚdÚpathsÚobjÚiÚschemeÚkeyÚpath_no_drives                   r%   Údistutils_schemerI   #   sK  € õ ,à39¸9Ð2E€IÙØ$3Ð#4ˆ	�-Ñ á�YÓ€AÙð	Ø× Ñ Ô"ð '+€CØ
×
Ñ
˜I¨dÐ
Ó
3€CØˆ?Ðˆ?ÜÔ&¨Ó,€Añ ™Ð@ E¨$¨¨x¸°xÐ"@Ó@Ð Ù™Ð@ E¨$¨¨x¸°xÐ"@Ó@Ð ØŠ^�Q—V‘V€A„FÙ‰tØˆŒØÒ!˜Ÿ™€A„HØŠ^�Q—V‘V€A„FØŠ^�Q—V‘V€A„FØ×ÑÔà€FÜò 3ˆÜ˜a ¨cÑ!1Ó2ˆˆsŠð3ð ˜×)Ñ)¨)Ó4Ñ4Ø�‰ !§-¡-¸A¿M¹MÑJÔKäÔ!ÙØ‰FÙØ×'Ñ'‰Fà—X‘XˆFÜŸG™GŸL™LØØØØÔ,Ó.Ð/Ð0Øó
ˆˆyÑð ÐÜŸG™G×.Ñ.¬r¯w©w¯©¸vÀiÑ?PÓ/QÓRÐSTÑUˆMÜ "§¡§¡¨T°=ÀÀÐ3DÓ EˆF�9Ñà€Møôm "ò 	Ø×'Ñ'Ó)ˆEÜ�N‰NØHØ—	‘	Ñ=°uÔ=Ó=÷ð	ús   žH	 È	AIÉIc                 ó`   — t        | |||||«      }t        |d   |d   |d   |d   |d   ¬«      S )a;  
    Get the "scheme" corresponding to the input parameters. The distutils
    documentation provides the context for the available schemes:
    https://docs.python.org/3/install/index.html#alternate-installation

    :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 and provides the base
        directory for the same
    :param root: root under which other directories are re-based
    :param isolated: equivalent to --no-user-cfg, i.e. do not consider
        ~/.pydistutils.cfg (posix) or ~/pydistutils.cfg (non-posix) for
        scheme paths
    :param prefix: indicates to use the "prefix" scheme and provides the
        base directory for the same
    r,   r+   r0   ÚscriptsÚdata)r,   r+   r0   rK   rL   )rI   r   )r   r   r   r   r   r   rF   s          r%   Ú
get_schemerM   s   sL   € ô2 ˜i¨¨t°T¸8ÀVÓL€FÜØ�yÑ!Ø�yÑ!Ø�yÑ!Ø�yÑ!Ø�F‰^ôð ó    c                  ó¨  — t         j                  j                  t        j                  «      } t
        rat         j                  j                  | d«      }t         j                  j                  |«      s t         j                  j                  | d«      }|S t        j                  d d dk(  r	| d d dk(  ryt         j                  j                  | d«      S )NÚScriptsÚbiné   Údarwiné   z/System/Library/z/usr/local/bin)	r    r!   ÚnormpathÚsysr   r   r7   ÚexistsÚplatform)r   Úbin_pys     r%   Úget_bin_prefixrZ   –   s—   € ô �W‰W×ÑœcŸj™jÓ)€FÝÜ—‘—‘˜f iÓ0ˆä�w‰w�~‰~˜fÔ%Ü—W‘W—\‘\ &¨%Ó0ˆFØˆô ‡|�|�B�QÐ˜8Ò#¨¨s°¨Ð7IÒ(IØÜ�7‰7�<‰<˜ Ó&Ð&rN   c                  ó   — t        d¬«      S )NF©Úplat_specificr   © rN   r%   Úget_purelibr_   §   s   € Ü¨Ô.Ð.rN   c                  ó   — t        d¬«      S )NTr\   r   r^   rN   r%   Úget_platlibra   «   s   € Ü¨Ô-Ð-rN   )FNNFN))Ú__doc__Ú
__import__Úremove_shimÚImportErrorÚAttributeErrorÚloggingr    rV   Údistutils.cmdr   ÚDistutilsCommandÚdistutils.command.installr   r   r9   Údistutils.sysconfigr   Útypingr	   r
   r   r   r   Úpip._internal.models.schemer   Úpip._internal.utils.compatr   Úpip._internal.utils.virtualenvr   Úbaser   Ú	getLoggerÚ__name__r5   ÚstrÚboolrI   rM   rZ   r_   ra   r^   rN   r%   ú<module>ru      sˆ  ðÙ =ð	ÙÐ Ó!×-Ñ-Ô/ó Û 	Û 
Ý 5Ý 1Ý JÝ .ß 4Õ 4å .Ý .Ý Cå )à	ˆ×	Ñ	˜8Ó	$€ð
 ØØØØ ðMð !&òMØðMà
ðMð �3‰-ðMð �3‰-ð	Mð
 ðMð �S‰MðMð ðMð 
ˆ#ˆsˆ(�^óMðd ØØØØ ñ Øð à
ð ð �3‰-ð ð �3‰-ð	 ð
 ð ð �S‰Mð ð ó ðF'˜ó 'ð"/�Só /ð.�Sô .øð{ 	�^Ð$ò 	Ùð	ús   „C ÃCÃC