Ë
    äØjjnp  ã                   ó^  — d dl Z 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 d dlmZ d dlmZ d dlmZmZm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! d dl"m#Z# d dl$m%Z% d dl&m'Z'm(Z( d dl)m*Z* d dl+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZA  e3eB«      ZC G d„ de«      ZD	 	 	 	 	 d-deEdeeF   deeF   deEdeeF   d e
eF   fd!„ZGdeeF   deEd eEfd"„ZH	 	 	 	 d.d#eeE   d$eeF   d%eeF   d&eeF   d'eEd eEfd(„ZId)eJd*eEd+eEd eFfd,„ZKy)/é    N)ÚSUPPRESS_HELPÚValues)ÚListÚOptional)Ú
print_json)Ú
WheelCache)Ú
cmdoptions)Úmake_target_python)ÚRequirementCommandÚwarn_if_run_as_rootÚwith_cleanup)ÚERRORÚSUCCESS)ÚCommandErrorÚInstallationError)Ú
get_scheme)Úget_environment)ÚInstallationReport)Úget_build_tracker)ÚConflictDetailsÚcheck_install_conflicts)Úinstall_given_reqs)ÚInstallRequirementÚcheck_legacy_setup_py_options)ÚWINDOWS©Útest_writable_dir)Ú	getLogger)Úcheck_externally_managedÚ
ensure_dirÚget_pip_versionÚ(protect_pip_from_modification_on_windowsÚwrite_output)ÚTempDirectory)Úrunning_under_virtualenvÚvirtualenv_no_global)ÚbuildÚ should_build_for_install_commandc                   óˆ   — e Zd ZdZdZdd„Zededee	   de
fd„«       Zd	e	d
ededdfd„Zdee   dee   fd„Zdede	ddfd„Zy)ÚInstallCommandaI  
    Install packages from:

    - PyPI (and other indexes) using requirement specifiers.
    - VCS project urls.
    - Local project directories.
    - Local or remote source archives.

    pip also supports installing from "requirements files", which provide
    an easy way to specify a whole environment to be installed.
    a%  
      %prog [options] <requirement specifier> [package-index-options] ...
      %prog [options] -r <requirements file> [package-index-options] ...
      %prog [options] [-e] <vcs project url> ...
      %prog [options] [-e] <local project path> ...
      %prog [options] <archive url/path> ...ÚreturnNc                 óð  — | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j
                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  ddddd¬«       | j                   j                  ddd	d
d d¬«       t        j                  | j                   «       | j                   j                  dddd¬«       | j                   j                  dddt        ¬«       | j                   j                  ddd
d d¬«       | j                   j                  ddd
d d¬«       | j                   j                  t        j                  «       «       | j                   j                  ddddd¬«       | j                   j                  ddddd gd!¬"«       | j                   j                  d#d$dd%¬«       | j                   j                  d&d'd(dd)¬«       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                   «       «       | j                   j                  t        j"                  «       «       | j                   j                  t        j$                  «       «       | j                   j                  d*dd+d,d-¬«       | j                   j                  d.dd+d/¬0«       | j                   j                  d1dd2d,d3¬«       | j                   j                  d4dd5d,d6¬«       | j                   j                  t        j&                  «       «       | j                   j                  t        j(                  «       «       | j                   j                  t        j*                  «       «       | j                   j                  t        j,                  «       «       | j                   j                  t        j.                  «       «       | j                   j                  t        j0                  «       «       t        j2                  t        j4                  | j6                  «      }| j6                  j9                  d7|«       | j6                  j9                  d7| j                   «       | j                   j                  d8d9d:d d;¬«       y )<Nz	--dry-runÚ
store_trueÚdry_runFzŒDon't actually install anything, just print what would be. Can be used in combination with --ignore-installed to 'resolve' the requirements.)ÚactionÚdestÚdefaultÚhelpz-tz--targetÚ
target_dirÚdirz¥Install packages into <dir>. By default this will not replace existing files/folders in <dir>. Use --upgrade to replace existing packages in <dir> with new versions.)r0   Úmetavarr1   r2   z--userÚuse_user_sitez¸Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows. (See the Python documentation for site.USER_BASE for full details.))r0   r/   r2   z	--no-userÚstore_falsez--rootÚ	root_pathz=Install everything relative to this alternate root directory.z--prefixÚprefix_patha[  Installation prefix where lib, bin and other top-level folders are placed. Note that the resulting installation may contain scripts and other resources which reference the Python interpreter of pip, and not that of ``--prefix``. See also the ``--python`` option if the intention is to install packages into another (possibly pip-free) environment.z-Uz	--upgradeÚupgradez‚Upgrade all specified packages to the newest available version. The handling of dependencies depends on the upgrade-strategy used.z--upgrade-strategyÚupgrade_strategyzonly-if-neededÚeageraG  Determines how dependency upgrading should be handled [default: %default]. "eager" - dependencies are upgraded regardless of whether the currently installed version satisfies the requirements of the upgraded package(s). "only-if-needed" -  are upgraded only when they do not satisfy the requirements of the upgraded package(s).)r0   r1   Úchoicesr2   z--force-reinstallÚforce_reinstallz;Reinstall all packages even if they are already up-to-date.z-Iz--ignore-installedÚignore_installedz°Ignore the installed packages, overwriting them. This can break your system if the existing package is of a different version or was installed with a different package manager!z	--compileÚcompileTz'Compile Python source files to bytecodez--no-compilez.Do not compile Python source files to bytecode)r/   r0   r2   z--no-warn-script-locationÚwarn_script_locationz0Do not warn when installing scripts outside PATHz--no-warn-conflictsÚwarn_about_conflictsz%Do not warn about broken dependenciesr   z--reportÚjson_report_fileÚfileaW  Generate a JSON file describing what pip did to install the provided requirements. Can be used in combination with --dry-run and --ignore-installed to 'resolve' the requirements. When - is used as file name it writes to stdout. When writing to stdout, please combine with the --quiet option to avoid mixing pip logging output with JSON output.)Úcmd_optsÚ
add_optionr	   ÚrequirementsÚconstraintsÚno_depsÚpreÚeditableÚadd_target_python_optionsr   ÚsrcÚignore_requires_pythonÚno_build_isolationÚ
use_pep517Úno_use_pep517Úcheck_build_depsÚoverride_externally_managedÚconfig_settingsÚglobal_optionsÚ	no_binaryÚonly_binaryÚprefer_binaryÚrequire_hashesÚprogress_barÚroot_user_actionÚmake_option_groupÚindex_groupÚparserÚinsert_option_group)ÚselfÚ
index_optss     ú`/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_internal/commands/install.pyÚadd_optionszInstallCommand.add_optionsH   sÞ  € Ø�‰× Ñ ¤×!8Ñ!8Ó!:Ô;Ø�‰× Ñ ¤×!7Ñ!7Ó!9Ô:Ø�‰× Ñ ¤×!3Ñ!3Ó!5Ô6Ø�‰× Ñ ¤§¡Ó!1Ô2à�‰× Ñ ¤×!4Ñ!4Ó!6Ô7Ø�‰× Ñ ØØØØð1ð 	!ô 
	
ð 	�‰× Ñ ØØØØØð%ð 	!ô 	
ô 	×,Ñ,¨T¯]©]Ô;à�‰× Ñ ØØ Øð%ð 	!ô 
	
ð 	�‰× Ñ ØØ Ø Üð	 	!ô 	
ð 	�‰× Ñ ØØØØØPð 	!ô 	
ð 	�‰× Ñ ØØØØðð 	!ô 	
ð  	�‰× Ñ ¤§¡Ó!1Ô2à�‰× Ñ ØØØØð)ð 	!ô 
	
ð 	�‰× Ñ Ø Ø#Ø$Ø% wÐ/ðGð 	!ô 	
ð  	�‰× Ñ ØØ"ØØNð	 	!ô 	
ð 	�‰× Ñ ØØ Ø#Øð4ð 	!ô 	
ð 	�‰× Ñ ¤×!BÑ!BÓ!DÔEØ�‰× Ñ ¤×!>Ñ!>Ó!@ÔAØ�‰× Ñ ¤×!6Ñ!6Ó!8Ô9Ø�‰× Ñ ¤×!9Ñ!9Ó!;Ô<Ø�‰× Ñ ¤×!<Ñ!<Ó!>Ô?Ø�‰× Ñ ¤×!GÑ!GÓ!IÔJà�‰× Ñ ¤×!;Ñ!;Ó!=Ô>Ø�‰× Ñ ¤×!:Ñ!:Ó!<Ô=à�‰× Ñ ØØØØØ:ð 	!ô 	
ð 	�‰× Ñ ØØ ØØAð	 	!ô 	
ð 	�‰× Ñ Ø'Ø Ø'ØØCð 	!ô 	
ð 	�‰× Ñ Ø!Ø Ø'ØØ8ð 	!ô 	
ð 	�‰× Ñ ¤×!5Ñ!5Ó!7Ô8Ø�‰× Ñ ¤×!7Ñ!7Ó!9Ô:Ø�‰× Ñ ¤×!9Ñ!9Ó!;Ô<Ø�‰× Ñ ¤×!:Ñ!:Ó!<Ô=Ø�‰× Ñ ¤×!8Ñ!8Ó!:Ô;Ø�‰× Ñ ¤×!<Ñ!<Ó!>Ô?ä×1Ñ1Ü×"Ñ"Ø�K‰Kó
ˆ
ð
 	�‰×'Ñ'¨¨:Ô6Ø�‰×'Ñ'¨¨4¯=©=Ô9à�‰× Ñ ØØ#ØØðGð 	!õ 	
ó    ÚoptionsÚargsc                 óÆ  — |j                   r|j                  �t        d«      ‚|j                  xr |j                   xr. |j
                  d u xr |j                  d u xr |j                  d u }|r|j                  s
t        «        d}|j                  r|j                  }t        j                  |d¬«       t        j                  dt        «       «       t!        |j                   |j                  |j                  |j
                  |j"                  ¬«      |_         d }d }|j                  r»d|_        t&        j(                  j+                  |j                  «      |_        t&        j(                  j-                  |j                  «      r4t&        j(                  j/                  |j                  «      st        d«      ‚t1        d¬	«      }|j(                  }| j3                  |«       |j4                  xs g }| j7                  |«      }t9        |«      }	| j;                  |||	|j<                  ¬
«      }
| j3                  t?        «       «      }t1        |j@                   dd¬«      }	 | jC                  |||
|«      }tE        ||«       tG        |jH                  «      }|D ]	  }d|_%        Œ | jM                  |||||
|j                   | jN                  ¬«      }| jQ                  ||
|||j                   |j$                  |j<                  |jR                  ||jT                  ¬«
      }| jW                  |
«       |jY                  ||j                   ¬«      }|j                  r‡t[        |j\                  «      }|j                  dk(  rt_        |ja                  «       ¬«       nHtc        |j                  dd¬«      5 }te        jf                  |ja                  «       |dd¬«       d d d «       |j                  rV|ji                  «        tk        d„ |j\                  D «       «      }|r"tm        ddjo                  d„ |D «       «      «       tp        S 	 |js                  d«      }|jt                  d u }ty        |¬«       |jz                  j}                  «       D �cg c]  }t        |«      r|‘Œ }}t�        ||dg |¬«      \  }}|r0tƒ        dj…                  d jo                  d!„ |D «       «      «      «      ‚|j‡                  |«      }d }|jˆ                   xr |jŠ                  }|r| j�                  |«      }|jŽ                  }|j                  s|j                  rd}t‘        |||j
                  ||j                  ||j                   |j’                  ¬"«      } t•        |j                   ||j
                  |j                  |j"                  ¬#«      }!t—        |!«      }"| j™                  t›        jœ                  d$«      ¬%«       g }#| D ]D  }$|$jž                  }%	 |"j¡                  |%«      }&|&�|%› d|&j¢                  › �}%|#j§                  |%«       ŒF |�"| j©                  || j«                  |«      ¬&«       djo                  |#«      }'|'rtm        d'|'«       |j                  r+|sJ ‚| jµ                  |j                  ||j                  «       |j¶                  d*k(  r
t¹        «        tp        S # 1 sw Y   �ŒýxY w# tv        $ r d}Y �ŒŒw xY wc c}w # t¤        $ r Y ŒÛw xY w# t¬        $ rM}(| jN                  d(k\  })t¯        |(|)|j                   «      }*t        j±                  |*|)¬)«       t²        cY d }(~(S d }(~(ww xY w)+Nz'Can not combine '--user' and '--target'zto-satisfy-onlyT)Úcheck_targetzUsing %s)r9   r3   r8   Úisolated_modez=Target path exists but is not a directory, will not continue.Útarget)Úkind)re   ÚsessionÚtarget_pythonrN   Úinstall)Údeleterk   Úglobally_managed)Útemp_build_dirre   Úbuild_trackerrl   Úfinderr6   Ú	verbosity)
Úpreparerrs   re   Úwheel_cacher6   r?   rN   r>   r;   rP   )Úcheck_supported_wheelsú-)ÚdataÚwzutf-8)Úencodingé   F)ÚindentÚensure_asciic              3   óX   K  — | ]"  }|j                   d    |j                   d   f–— Œ$ y­w)ÚnameÚversionN)Úmetadata©Ú.0Úrs     rb   ú	<genexpr>z%InstallCommand.run.<locals>.<genexpr>‰  s/   è ø€ ò -àð —Z‘Z Ñ'¨¯©°IÑ)>Ô?ñ-ùs   ‚(*zWould install %sú c              3   ó>   K  — | ]  }d j                  |«      –— Œ y­w)rx   N)Újoin)r„   Úitems     rb   r†   z%InstallCommand.run.<locals>.<genexpr>�  s   è ø€ Ò P°D §¡¨$§Ñ Pùs   ‚Úpip)Úmodifying_pip)rv   ÚverifyÚbuild_optionsrU   zYCould not build wheels for {}, which is required to install pyproject.toml-based projectsz, c              3   ó4   K  — | ]  }|j                   –— Œ y ­w©N)r€   rƒ   s     rb   r†   z%InstallCommand.run.<locals>.<genexpr>°  s   è ø€ Ò!A¨Q !§&¥&Ñ!Aùs   ‚)ÚrootÚhomeÚprefixrA   r6   Ú	pycompile)Úuserr’   r‘   r“   Úisolatedr€   )Úkey)Úresolver_variantzSuccessfully installed %sé   )Úexc_infoÚwarn)]r6   r3   r   r.   rC   r8   r9   rS   r   r:   r;   r	   Úcheck_dist_restrictionÚloggerÚverboser!   Údecide_user_installri   r?   ÚosÚpathÚabspathÚexistsÚisdirr$   Úenter_contextrU   Úget_default_sessionr
   Ú_build_package_finderrN   r   Úno_cleanÚget_requirementsr   r   Ú	cache_dirÚpermit_editable_wheelsÚmake_requirement_preparerrt   Úmake_resolverr>   rP   Útrace_basic_infoÚresolver   Úrequirements_to_installr   Úto_dictÚopenÚjsonÚdumpÚ#warn_legacy_versions_and_specifiersÚsortedr#   r‰   r   Úget_requirementÚsatisfied_byÚKeyErrorr"   rG   Úvaluesr(   r'   r   ÚformatÚget_installation_orderÚignore_dependenciesrB   Ú_determine_conflictsrA   r   r@   Úget_lib_location_guessesr   ÚsortÚoperatorÚ
attrgetterr€   Úget_distributionr�   Ú	ExceptionÚappendÚ_warn_about_conflictsÚdetermine_resolver_variantÚOSErrorÚcreate_os_error_messageÚerrorr   Ú_handle_target_dirr[   r   )+r`   re   rf   Ú#installing_into_current_environmentr;   Útarget_temp_dirÚtarget_temp_dir_pathrU   rl   rm   rs   rr   Ú	directoryÚreqsrv   Úreqru   ÚresolverÚrequirement_setÚreportÚfÚwould_install_itemsÚpip_reqrŒ   r…   Úreqs_to_buildÚ_Úbuild_failuresÚ
to_installÚ	conflictsÚshould_warn_about_conflictsrA   Ú	installedÚlib_locationsÚenvÚitemsÚresultrŠ   Úinstalled_distÚinstalled_descrÊ   Úshow_tracebackÚmessages+                                              rb   ÚrunzInstallCommand.run	  s7  € à× Ò  W×%7Ñ%7Ð%CÜÐHÓIÐIð —‘Ò= W×%=Ñ%=Ð>ò ,Ø×!Ñ! TÐ)ò,à×"Ñ" dÐ*ò,ð ×#Ñ# tÐ+ð	 	,ñ 0Ø×7Ò7ä$Ô&à,ÐØ�?Š?Ø&×7Ñ7Ðä×)Ñ)¨'ÀÕEä�‰�z¤?Ó#4Ô5Ü 3Ø×!Ñ!Ø×+Ñ+Ø×)Ñ)Ø×'Ñ'Ø!×/Ñ/ô!
ˆÔð 48ˆØ.2ÐØ×ÒØ'+ˆGÔ$Ü!#§¡§¡°×1CÑ1CÓ!DˆGÔô —‘—‘˜w×1Ñ1Ô2Ü—G‘G—M‘M '×"4Ñ"4Ô5ô #ØSóð ô
 ,°Ô:ˆOØ#2×#7Ñ#7Ð Ø×Ñ˜Ô/à ×/Ñ/Ò5°2ˆà×*Ñ*¨7Ó3ˆä*¨7Ó3ˆØ×+Ñ+ØØØ'Ø#*×#AÑ#Að	 ,ó 
ˆð ×*Ñ*Ô+<Ó+>Ó?ˆä!Ø×'Ñ'Ð'ØØ!ô
ˆ	ðe	Ø×(Ñ(¨¨w¸ÀÓHˆDÜ)¨'°4Ô8ä$ W×%6Ñ%6Ó7ˆKð
 ò 2�Ø-1�Õ*ð2ð ×5Ñ5Ø(ØØ+ØØØ%×3Ñ3ØŸ.™.ð 6ó ˆHð ×)Ñ)Ø!ØØØ'Ø%×3Ñ3Ø!(×!9Ñ!9Ø'.×'EÑ'EØ '× 7Ñ 7Ø!1Ø"×-Ñ-ð *ó ˆHð ×!Ñ! &Ô)à&×.Ñ.Ø°×1CÑ1CÐ-Cð /ó ˆOð ×'Ò'Ü+¨O×,SÑ,SÓT�Ø×+Ñ+¨sÒ2Ü F§N¡NÓ$4Ö5ä˜g×6Ñ6¸ÀgÔNð UÐRSÜŸ	™	 &§.¡.Ó"2°A¸aÈeÕT÷Uð �Šð  ×CÑCÔEÜ&,ñ -à,×DÑDô-ó 'Ð#ñ 'Ü Ø*ØŸ™Ñ PÐ<OÔ PÓPôô �ð=Ø)×9Ñ9¸%Ó@�ð !(× 4Ñ 4¸Ð <�Ü4À=ÕQð )×5Ñ5×<Ñ<Ó>öàÜ3°AÔ6ò ðˆMð ô !&ØØ'ØØ Ø-ô!ÑˆAˆ~ñ Ü'ð<ß<B¹FØŸ	™	Ñ!A°.Ô!AÓAó=óð ð "×8Ñ8¸ÓIˆJð 48ˆIà×/Ñ/Ð/ÒP°G×4PÑ4Pð (ñ +Ø ×5Ñ5°jÓA�	ð $+×#?Ñ#?Ð Ø×!Ò! W×%8Ò%8Ø',Ð$ä*ØØØ×&Ñ&Ø)Ø×*Ñ*Ø%9Ø%×3Ñ3Ø!Ÿ/™/ô	ˆIô 5Ø×*Ñ*Ø)Ø×&Ñ&Ø×*Ñ*Ø ×.Ñ.ôˆMô " -Ó0ˆCà�N‰Nœx×2Ñ2°6Ó:ˆNÔ;ØˆEØ#ò #�Ø—{‘{�ðØ%(×%9Ñ%9¸$Ó%?�NØ%Ð1Ø"&  q¨×)?Ñ)?Ð(@ÐA˜ð —‘˜TÕ"ð#ð Ð$Ø×*Ñ*ØØ%)×%DÑ%DÀWÓ%Mð +ô ð
 !ŸX™X e›_ˆNÙÜØ/Ø"ôð  ×ÒÙ"Ð"�?Ø×#Ñ#Ø×"Ñ" O°W·_±_ôð ×#Ñ# vÒ-ÜÔ!Üˆ÷CUñ Uûô( ò &Ø %“ð&üòøôD !ò Ùðûô  ò 
	Ø!Ÿ^™^¨qÑ0ˆNä-ØØØ×%Ñ%óˆGô
 �L‰L˜¨>ˆLÔ:ä�Lûð
	ús�   É&E\
 Î4([ÏA)\
 Ñ[$ Ñ6\
 Ò[6Ò"E$\
 Ø$[;Ø+A\
 Û[!Û\
 Û$[3Û/\
 Û2[3Û3\
 Û;	\Ü\
 Ü\Ü\
 Ü
	] ÜA]Ý] Ý] r3   rÍ   r:   c                 óœ  ‡— t        |«       g }t        d|j                  ¬«      }|j                  }|j                  }|j
                  }t        j                  j                  |«      r|j                  |«       t        j                  j                  |«      r||k7  r|j                  |«       t        j                  j                  |«      r|j                  |«       |D �]h  }	t        j                  |	«      D �]L  }
|	|k(  r8t        j                  j                  ||
«      Št        ˆfd„|d d D «       «      rŒAt        j                  j                  ||
«      }t        j                  j                  |«      r™|st        j                  d|«       Œ™t        j                  j                  |«      rt        j                  d|«       ŒÏt        j                  j                  |«      rt!        j"                  |«       nt        j$                  |«       t!        j&                  t        j                  j                  |	|
«      |«       �ŒO �Œk y )NÚ )r’   c              3   ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr�   )Ú
startswith)r„   ÚsÚddirs     €rb   r†   z4InstallCommand._handle_target_dir.<locals>.<genexpr>   s   øè ø€ ÒI°!˜1Ÿ<™<¨×-ÑIùs   ƒéÿÿÿÿzKTarget directory %s already exists. Specify --upgrade to force replacement.z„Target directory %s already exists and is a link. pip will not automatically replace links, please remove if replacement is desired.)r    r   r¡   ÚpurelibÚplatlibry   r    r£   rÅ   Úlistdirr‰   Úanyr�   ÚwarningÚislinkr¤   ÚshutilÚrmtreeÚremoveÚmove)r`   r3   rÍ   r:   Úlib_dir_listÚschemeÚpurelib_dirÚplatlib_dirÚdata_dirÚlib_dirrŠ   Útarget_item_dirrí   s               @rb   rË   z!InstallCommand._handle_target_dir  s³  ø€ ô 	�:Ôð ˆô ˜B _×%9Ñ%9Ô:ˆØ—n‘nˆØ—n‘nˆØ—;‘;ˆä�7‰7�>‰>˜+Ô&Ø×Ñ Ô,Ü�7‰7�>‰>˜+Ô&¨;¸+Ò+EØ×Ñ Ô,Ü�7‰7�>‰>˜(Ô#Ø×Ñ Ô)à#ó 	JˆGÜŸ
™
 7Ó+ó J�Ø˜hÒ&ÜŸ7™7Ÿ<™<¨°$Ó7�DÜÓI°|ÀCÀRÐ7HÔIÔIØ Ü"$§'¡'§,¡,¨z¸4Ó"@�Ü—7‘7—>‘> /Ô2Ù"ÜŸ™ð>à+ôð
 !Ü—w‘w—~‘~ oÔ6ÜŸ™ð'ð ,ôð !Ü—w‘w—}‘} _Ô5ÜŸ™ oÕ6äŸ	™	 /Ô2ä—‘œBŸG™GŸL™L¨°$Ó7¸ÖIò9Jñ	Jrd   rÛ   c                 ób   — 	 t        |«      S # t        $ r t        j                  d«       Y y w xY w)NzwError while checking for conflicts. Please file an issue on pip's issue tracker: https://github.com/pypa/pip/issues/new)r   rÄ   r�   Ú	exception)r`   rÛ   s     rb   r¾   z#InstallCommand._determine_conflicts;  s:   € ð	Ü*¨:Ó6Ð6øÜò 	Ü×ÑðNôñ ð	ús   ‚
 �.­.Úconflict_detailsr˜   c                 óÐ  — |\  }\  }}|s|sy g }|dk(  r|j                  d«       n|dk(  sJ ‚|j                  d«       |D ]3  }||   d   }||   D ]!  }	|› d|› d|	d   › d	�}
|j                  |
«       Œ# Œ5 |D ]G  }||   d   }||   D ]5  \  }}}d
j                  ||||||dk(  rdnd¬«      }
|j                  |
«       Œ7 ŒI t        j                  dj	                  |«      «       y )NÚlegacyz¤pip's legacy dependency resolver does not consider dependency conflicts when selecting packages. This behaviour is the source of the following dependency conflicts.Ú
resolvelibz§pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.r   r‡   z
 requires r™   z, which is not installed.zg{name} {version} requires {requirement}, but {you} have {dep_name} {dep_version} which is incompatible.Úyouzyou'll)r€   r�   ÚrequirementÚdep_nameÚdep_versionr  ú
)rÅ   r»   r�   Úcriticalr‰   )r`   r  r˜   Úpackage_setÚmissingÚconflictingÚpartsÚproject_namer�   Ú
dependencyræ   r  r	  rÑ   s                 rb   rÆ   z$InstallCommand._warn_about_conflictsG  sX  € ð /?Ñ+ˆÑ+�g˜{Ù™{ØàˆØ˜xÒ'Ø�L‰Lð@õð $ |Ò3Ð3Ð3Ø�L‰Lð@ôð $ò 	&ˆLØ! ,Ñ/°Ñ2ˆGØ% lÑ3ò &�
à#�n A g Y¨j¸ÀA¹¸ð H.ð .ð ð —‘˜WÕ%ñ&ð	&ð (ò 	&ˆLØ! ,Ñ/°Ñ2ˆGØ.9¸,Ñ.Gò &Ñ*�˜+ sðFç‘&Ø%Ø#Ø #Ø%Ø +Ø"2°lÒ"B™Èð ó ð ð —‘˜WÕ%ñ&ð	&ô  	�‰˜Ÿ	™	 %Ó(Õ)rd   )r+   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úusagerc   r   r   r   ÚstrÚintrç   r$   ÚboolrË   r   r   r   r¾   rÆ   © rd   rb   r*   r*   4   s°   „ ñ
ð0€Eó
ðB ðy˜6ð y¨¨c©ð y°sò yó ðyðv4JØð4JØ0=ð4JØHLð4Jà	ó4Jðl
ØÐ1Ñ2ð
à	�/Ñ	"ó
ð0*Ø /ð0*ØCFð0*à	ô0*rd   r*   r•   r’   r‘   r–   r“   r+   c                 óT   — t        d| ||||¬«      }|j                  |j                  gS )Nré   )r•   r’   r‘   r–   r“   )r   rï   rð   )r•   r’   r‘   r–   r“   rú   s         rb   r¿   r¿   z  s5   € ô Ø
ØØØØØô€Fð �N‰N˜FŸN™NÐ+Ð+rd   c           	      óN   — t        d„ t        t        | |¬«      «      D «       «      S )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr�   r   )r„   Úds     rb   r†   z)site_packages_writable.<locals>.<genexpr>�  s   è ø€ ò àô 	˜!×ñùs   ‚©r‘   r–   )ÚallÚsetr¿   r  s     rb   Úsite_packages_writabler"  Œ  s)   € Üñ äÔ-°4À(ÔKÓLôó ð rd   r6   r9   r3   r8   ri   c                 ó¤  — | �| st         j                  d«       y| r8|rt        d«      ‚t        «       rt	        d«      ‚t         j                  d«       y| �J ‚|s|rt         j                  d«       yt
        j                  st         j                  d«       yt        ||¬	«      rt         j                  d
«       yt         j                  d«       y)aZ  Determine whether to do a user install based on the input options.

    If use_user_site is False, no additional checks are done.
    If use_user_site is True, it is checked for compatibility with other
    options.
    If use_user_site is None, the default behaviour depends on the environment,
    which is provided by the other arguments.
    z$Non-user install by explicit requestFzVCan not combine '--user' and '--prefix' as they imply different installation locationszZCan not perform a '--user' install. User site-packages are not visible in this virtualenv.z User install by explicit requestTz3Non-user install due to --prefix or --target optionz4Non-user install because user site-packages disabledr  z0Non-user install because site-packages writeablezMDefaulting to user installation because normal site-packages is not writeable)	r�   Údebugr   r&   r   ÚsiteÚENABLE_USER_SITEr"  Úinfo)r6   r9   r3   r8   ri   s        rb   rŸ   rŸ   “  sÒ   € ð" 	Ð!©MÜ�‰Ð;Ô<ØáÙÜð3óð ô  Ô!Ü#ð6óð ô 	�‰Ð7Ô8Øð Ð Ð Ð ñ ‘jÜ�‰ÐJÔKØô × Ò Ü�‰ÐKÔLØô  9°}ÕEÜ�‰ÐGÔHØä
‡K�Kð	ôð rd   rÊ   rå   Úusing_user_sitec                 ó˜  — g }|j                  d«       |s,|j                  d«       |j                  t        | «      «       n|j                  d«       |dxx   dz  cc<   | j                  t        j                  k(  rUd}d}t	        «       s%|s#|j                  |d|j                  «       g«       n|j                  |«       |j                  d	«       t        rR| j                  t        j                  k(  r5| j                  r)t        | j                  «      d
kD  r|j                  d«       dj                  |«      j                  «       dz   S )zrFormat an error message for an OSError

    It may occur anytime during the execution of the install command.
    z,Could not install packages due to an OSErrorz: ú.rî   r
  z"Consider using the `--user` optionzCheck the permissionsz or z.
i  zÉHINT: This error might have occurred since this system does not have Windows Long Path support enabled. You can find information on how to enable this at https://pip.pypa.io/warnings/enable-long-paths
ré   )rÅ   r  ÚerrnoÚEACCESr%   ÚextendÚlowerr   ÚENOENTÚfilenameÚlenr‰   Ústrip)rÊ   rå   r(  r  Úuser_option_partÚpermissions_parts         rb   rÉ   rÉ   Ð  s  € ð €Eð 
‡L�LÐ?Ô@ÙØ�‰�TÔØ�‰”S˜“ZÕ à�‰�SÔð 
ˆ"ƒI�ÑƒIð ‡{�{”e—l‘lÒ"Ø?ÐØ2Ðä'Ô)±/Ø�L‰Là$ØØ$×*Ñ*Ó,ðõð �L‰LÐ)Ô*Ø�‰�UÔõ
 	Ø�K‰Kœ5Ÿ<™<Ò'Ø�NŠNÜ�—‘Ó #Ò%à�‰ð?ô	
ð �7‰7�5‹>×ÑÓ! DÑ(Ð(rd   )FNNFN)NNNF)Lr+  r³   rÁ   r    rõ   r%  Úoptparser   r   Útypingr   r   Úpip._vendor.richr   Úpip._internal.cacher   Úpip._internal.clir	   Úpip._internal.cli.cmdoptionsr
   Úpip._internal.cli.req_commandr   r   r   Úpip._internal.cli.status_codesr   r   Úpip._internal.exceptionsr   r   Úpip._internal.locationsr   Úpip._internal.metadatar   Ú(pip._internal.models.installation_reportr   Ú,pip._internal.operations.build.build_trackerr   Úpip._internal.operations.checkr   r   Úpip._internal.reqr   Úpip._internal.req.req_installr   r   Úpip._internal.utils.compatr   Úpip._internal.utils.filesystemr   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r    r!   r"   r#   Úpip._internal.utils.temp_dirr$   Úpip._internal.utils.virtualenvr%   r&   Úpip._internal.wheel_builderr'   r(   r  r�   r*   r  r  r¿   r"  rŸ   rÈ   rÉ   r  rd   rb   ú<module>rL     sŽ  ðÛ Û Û Û 	Û Û ß *ß !å 'å *Ý (Ý ;÷ñ ÷
 :ß DÝ .Ý 2Ý GÝ Jß SÝ 0÷õ /Ý <Ý 1÷õ õ 7÷÷ Pá	�8Ó	€ôC	*Ð'ô C	*ðN ØØØØ ñ,Ø
ð,à
�3‰-ð,ð �3‰-ð,ð ð	,ð
 �S‰Mð,ð 
ˆ#�Yó,ð$ ¨#¡ð ¸$ð À4ó ð "&Ø $Ø#Øñ:Ø˜D‘>ð:à˜#‘ð:ð ˜‘ð:ð ˜‰}ð	:ð
 ð:ð 
ó:ðz6)Øð6)Ø$(ð6)Ø;?ð6)àô6)rd   