<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    š•Re7p  ã               @   s  d dl mZ 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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 d dlmZ d d	lmZ d d
l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( d dl)m*Z* d dl+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z; e6rÂd dl
m<Z< d dl=m>Z>m?Z?m@Z@ d dlAmBZB d dl!mCZC d dlDmEZE d dl9mFZF e GeH¡ZIdd „ ZJG d!d"„ d"eƒZKd.d$d%„ZLd&d'„ ZMd/d(d)„ZNd*d+„ ZOd,d-„ ZPdS )0é    )Úabsolute_importN)Úpath)ÚSUPPRESS_HELP)Úpkg_resources)Úcanonicalize_name)Ú
WheelCache)Ú
cmdoptions)Úmake_target_python)ÚRequirementCommandÚwith_cleanup)ÚERRORÚSUCCESS)ÚCommandErrorÚInstallationError)Údistutils_scheme)Úcheck_install_conflicts)Úinstall_given_reqs)Úget_requirement_tracker)Útoday_is_later_than)Úparse_distutils_args)Útest_writable_dir)Ú
ensure_dirÚget_installed_versionÚget_pip_versionÚ(protect_pip_from_modification_on_windowsÚwrite_output)ÚTempDirectory)ÚMYPY_CHECK_RUNNING)Úvirtualenv_no_global)ÚbuildÚ should_build_for_install_command)ÚValues)ÚIterableÚListÚOptional)ÚFormatControl)ÚConflictDetails)ÚInstallRequirement)ÚBinaryAllowedPredicatec                s   ‡ fdd„}|S )Nc                s&   | j r
dS t| jƒ}ˆ  |¡}d|kS )NTÚbinary)Ú
use_pep517r   ÚnameÚget_allowed_formats)ÚreqÚcanonical_nameÚallowed_formats)Úformat_control© ú/builddir/build/BUILDROOT/alt-python37-pip-20.2.4-6.el8.x86_64/opt/alt/python37/lib/python3.7/site-packages/pip/_internal/commands/install.pyÚcheck_binary_allowed8   s
    

z6get_check_binary_allowed.<locals>.check_binary_allowedr1   )r0   r3   r1   )r0   r2   Úget_check_binary_allowed6   s    r4   c               @   s@   e Zd ZdZdZdd„ Zedd„ ƒZdd„ Zd	d
„ Z	dd„ Z
dS )Ú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> ...c             C   sz  | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j jddddd dd t | j ¡ | j jddd	d
d | j jdddt	d | j jdddd dd | j jdddd dd | j  t 
¡ ¡ | j  t ¡ ¡ | j jdddd	dd | j jdddddgdd | j jddd	d d | j jd!d"d#d	d$d | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j jd%d	d&d'd(d) | j jd*dd&d+d, | j jd-dd.d'd/d) | j jd0dd1d'd2d) | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ t tj| j¡}| j d3|¡ | j d3| j ¡ d S )4Nz-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.)ÚdestÚmetavarÚdefaultÚhelpz--userÚuse_user_siteÚ
store_truez¸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.))r8   Úactionr;   z	--no-userÚstore_falsez--rootÚ	root_pathz=Install everything relative to this alternate root directory.z--prefixÚprefix_pathzIInstallation prefix where lib, bin and other top-level folders are placedz-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).)r8   r:   Úchoicesr;   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 bytecode)r>   r8   r:   r;   z--no-compilez.Do not compile Python source files to bytecode)r>   r8   r;   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   )Úcmd_optsÚ
add_optionr   ÚrequirementsÚconstraintsÚno_depsÚpreÚeditableÚadd_target_python_optionsr   Ú	build_dirÚsrcÚignore_requires_pythonÚno_build_isolationr*   Úno_use_pep517Úinstall_optionsÚglobal_optionsÚ	no_binaryÚonly_binaryÚprefer_binaryÚrequire_hashesÚprogress_barÚmake_option_groupÚindex_groupÚparserÚinsert_option_group)ÚselfÚ
index_optsr1   r1   r2   Úadd_optionsW   sÀ    	zInstallCommand.add_optionsc       +         s~  |j r|jd k	rtdƒ‚t |¡ dd„ }t ¡ dkrx|ƒ sx|jsxt 	t
jd ¡}|dkrjt 	t
j¡d }t d| ¡ d}|jrˆ|j}tj|d	d
 |jpžg }t dtƒ ¡ t|j |j|j|j|jd|_ d }d }|jr4d	|_tj |j¡|_tj |j¡rtj |j¡stdƒ‚tdd}|j}|  |¡ |jp>g }	|  |¡}
t |ƒ}| j!||
||j"d}|j#pr|j$ }t%|j&|j'ƒ}|  t(ƒ ¡}t|j$|dd	d}yf|  )||||
¡}t*||jƒ | j+||||
||j d}| j,|||||j |j|j"|j-||j.d
}|  /|¡ |j0||j d}y| 1d¡}W n t2k
rF   d}Y nX |j3d k}t4|d t5|j'ƒ‰ ‡ fdd„|j6 7¡ D ƒ}t8||g g d\}}dd„ |D ƒ}|rºt9d :d ;|¡¡ƒ‚x|D ]}|j.sÀd|_<qÀW | =|¡}d }|j> oô|j?}|r|  @|¡}|jA}|jrd}tB|||	|j||j||j |jCd 	} tD|j ||j|j|jd!}!tE F|!¡}"| jGtH Id"¡d# g }#xZ| D ]R}$|$jJ}%y$tK|$jJ|"d$}&|&r¦|%d%|& 7 }%W n tLk
r¾   Y nX |# M|%¡ qzW |d k	rî| jN|d&|jOkd' d( ;|#¡}'|'rtPd)|'ƒ W nJ tQk
rT }( z*| jRd*k})tS|(|)|j ƒ}*tjT|*|)d+ tUS d }(~(X Y nX |jrz|shtV‚|  W|j||j¡ tXS ),Nz'Can not combine '--user' and '--target'c               S   s    t tdƒpt tdƒotjtjkS )NÚreal_prefixÚbase_prefix)ÚhasattrÚsysrg   Úprefixr1   r1   r1   r2   Úis_venvï   s    

z#InstallCommand.run.<locals>.is_venvr   z__main__.pyz -m pipzgRunning pip install with root privileges is generally not a good idea. Try `%s install --user` instead.zto-satisfy-onlyT)Úcheck_targetzUsing %s)rA   r6   r@   Úisolated_modez=Target path exists but is not a directory, will not continue.Útarget)Úkind)ÚoptionsÚsessionÚtarget_pythonrU   Úinstall)Údeletero   Úglobally_managed)Útemp_build_dirrp   Úreq_trackerrq   Úfinderr<   )
Úpreparerrx   rp   Úwheel_cacher<   rG   rU   rF   rC   r*   )Úcheck_supported_wheelsÚpipF)Úmodifying_pipc                s   g | ]}t |ˆ ƒr|‘qS r1   )r    )Ú.0Úr)r3   r1   r2   ú
<listcomp>k  s    z&InstallCommand.run.<locals>.<listcomp>)rz   Úbuild_optionsrY   c             S   s   g | ]}|j r|j‘qS r1   )r*   r+   )r~   r   r1   r1   r2   r€   {  s   zPCould not build wheels for {} which use PEP 517 and cannot be installed directlyz, i°   )ÚrootÚhomerj   rI   r<   Ú	pycompile)Úuserrƒ   r‚   rj   Úisolatedr+   )Úkey)Úworking_setú-z2020-resolver)Únew_resolverú zSuccessfully installed %sé   )Úexc_info)Yr<   r6   r   r   Úcheck_install_build_globalÚosÚgetuidr@   r   Úbasenameri   ÚargvÚ
executableÚloggerÚwarningrB   rC   Úcheck_dist_restrictionrX   Údebugr   Údecide_user_installrA   rm   rG   ÚabspathÚexistsÚisdirr   Úenter_contextrY   Úget_default_sessionr	   Ú_build_package_finderrU   Úno_cleanrS   r   Ú	cache_dirr0   r   Úget_requirementsÚ'reject_location_related_install_optionsÚmake_requirement_preparerÚmake_resolverrF   r*   Útrace_basic_infoÚresolveÚget_requirementÚKeyErrorÚsatisfied_byr   r4   rM   Úvaluesr   r   ÚformatÚjoinÚlegacy_install_reasonÚget_installation_orderÚignore_dependenciesrJ   Ú_determine_conflictsrI   r   rH   Úget_lib_location_guessesr   Ú
WorkingSetÚsortÚoperatorÚ
attrgetterr+   r   Ú	ExceptionÚappendÚ_warn_about_conflictsÚfeatures_enabledr   ÚEnvironmentErrorÚ	verbosityÚcreate_env_error_messageÚerrorr   ÚAssertionErrorÚ_handle_target_dirr   )+rc   rp   Úargsrk   ÚcommandrC   rX   Útarget_temp_dirÚtarget_temp_dir_pathrY   rq   rr   rx   Úbuild_deleterz   rw   Ú	directoryÚreqsry   ÚresolverÚrequirement_setÚpip_reqr}   Úreqs_to_buildÚ_Úbuild_failuresÚpep517_build_failure_namesr   Ú
to_installÚ	conflictsÚshould_warn_about_conflictsrI   Ú	installedÚlib_locationsrˆ   ÚitemsÚresultÚitemÚinstalled_versionÚinstalled_descr½   Úshow_tracebackÚmessager1   )r3   r2   Úrunç   s<   






















zInstallCommand.runc                s\  t |ƒ g }td|jd}|d }|d }|d }tj |¡rH| |¡ tj |¡rf||krf| |¡ tj |¡r|| |¡ xÚ|D ]Ò}	xÌt |	¡D ]¾}
|	|krÌtj ||
¡‰ t‡ fdd„|d d… D ƒƒrÌq’tj ||
¡}tj |¡r:|sút	 
d	|¡ q’tj |¡rt	 
d
|¡ q’tj |¡r0t |¡ n
t |¡ t tj |	|
¡|¡ q’W q‚W d S )NÚ )rƒ   ÚpurelibÚplatlibÚdatac             3   s   | ]}|  ˆ ¡V  qd S )N)Ú
startswith)r~   Ús)Úddirr1   r2   ú	<genexpr>ú  s    z4InstallCommand._handle_target_dir.<locals>.<genexpr>éÿÿÿÿ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   r   rš   r·   Úlistdirr¬   Úanyr”   r•   Úislinkr›   ÚshutilÚrmtreeÚremoveÚmove)rc   r6   rÂ   rB   Úlib_dir_listÚschemeÚpurelib_dirÚplatlib_dirÚdata_dirÚlib_dirrÕ   Útarget_item_dirr1   )rá   r2   r¿   à  sH    




z!InstallCommand._handle_target_dirc             C   s,   yt |ƒS  tk
r&   t d¡ d S X d S )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)rc   rÎ   r1   r1   r2   r°     s    z#InstallCommand._determine_conflictsc          	   C   s  |\}\}}|s|sd S g }|s6|  d¡ |  d¡ n,tddddsb|  d¡ d}|  d	 |¡¡ xH|D ]@}|| d
 }	x.|| D ]"}
dj||	|
d d}|  |¡ q‚W qhW xN|D ]F}|| d
 }	x4|| D ](\}}}dj||	|||d}|  |¡ qÌW q²W t d |¡¡ d S )Nz¢After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.
z|We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.
iä  é   é   )ÚyearÚmonthÚdayz¸Pip will install or upgrade your package(s) and its dependencies without taking into account other packages you already have installed. This may cause an uncaught dependency conflict.
z#https://forms.gle/cWKMoDs8sUVE29hz9zXIf you would like pip to take your other packages into account, please tell us here: {}
r   z@{name} {version} requires {requirement}, which is not installed.rŒ   )r+   ÚversionÚrequirementzh{name} {version} requires {requirement}, but you'll have {dep_name} {dep_version} which is incompatible.)r+   rø   rù   Údep_nameÚdep_versionÚ
)r·   r   r«   r”   Úcriticalr¬   )rc   Úconflict_detailsrŠ   Úpackage_setÚmissingÚconflictingÚpartsÚ	form_linkÚproject_namerø   Ú
dependencyrÙ   rú   rû   r-   r1   r1   r2   r¸   #  sF    

z$InstallCommand._warn_about_conflictsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úusagere   r   rÚ   r¿   r°   r¸   r1   r1   r1   r2   r5   C   s     z8r5   Fc             C   s$   t d| ||||d}|d |d gS )NrÛ   )r…   rƒ   r‚   r†   rj   rÜ   rÝ   )r   )r…   rƒ   r‚   r†   rj   rì   r1   r1   r2   r±   c  s    

r±   c             C   s   t dd„ tt| |dƒD ƒƒS )Nc             s   s   | ]}t |ƒV  qd S )N)r   )r~   Údr1   r1   r2   râ   s  s    z)site_packages_writable.<locals>.<genexpr>)r‚   r†   )ÚallÚsetr±   )r‚   r†   r1   r1   r2   Úsite_packages_writablep  s    r  c             C   s¤   | dk	r| st  d¡ dS | rF|r*tdƒ‚tƒ r8tdƒ‚t  d¡ dS | dksRt‚|sZ|rht  d¡ dS tjs|t  d	¡ dS t||d
r–t  d¡ dS t  	d¡ dS )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.
    Nz$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 disabled)r‚   r†   z0Non-user install because site-packages writeablezMDefaulting to user installation because normal site-packages is not writeable)
r”   r—   r   r   r   r¾   ÚsiteÚENABLE_USER_SITEr  Úinfo)r<   rA   r6   r@   rm   r1   r1   r2   r˜   x  s0    





r˜   c             C   sŽ   dd„ }g }x8| D ]0}|j }t|ƒ}|r| d || ¡ ƒ|¡¡ qW |rnt|ƒ}|rn| d || ¡ ƒ¡¡ |svdS td d |¡¡ƒ‚dS )z’If any location-changing --install-option arguments were passed for
    requirements or on the command-line, then show a deprecation warning.
    c             S   s   dd„ | D ƒS )Nc             S   s   g | ]}d   | dd¡¡‘qS )z--{}rË   r‰   )r«   Úreplace)r~   r+   r1   r1   r2   r€   »  s    zSreject_location_related_install_options.<locals>.format_options.<locals>.<listcomp>r1   )Úoption_namesr1   r1   r2   Úformat_options¹  s    z?reject_location_related_install_options.<locals>.format_optionsz{!r} from {}z{!r} from command lineNz˜Location-changing options found in --install-option: {}. This is unsupported, use pip-level options like --user, --prefix, --root, and --target instead.z; )rX   r   r·   r«   Úkeysr   r¬   )rM   rp   r  Ú	offendersrù   rX   Úlocation_optionsr1   r1   r2   r¢   ´  s(    
r¢   c             C   sš   g }|  d¡ |s,|  d¡ |  t| ƒ¡ n
|  d¡ |d  d7  < | jtjkrˆd}d}|st| |d| ¡ g¡ n
|  |¡ |  d	¡ d
 |¡ ¡ d S )z{Format an error message for an EnvironmentError

    It may occur anytime during the execution of the install command.
    z5Could not install packages due to an EnvironmentErrorz: Ú.rã   rü   z"Consider using the `--user` optionzCheck the permissionsz or z.
rÛ   )r·   ÚstrÚerrnoÚEACCESÚextendÚlowerr¬   Ústrip)r½   rØ   Úusing_user_siter  Úuser_option_partÚpermissions_partr1   r1   r2   r¼   Þ  s"    




r¼   )FNNFN)NNNF)QÚ
__future__r   r  Úloggingr´   r   rç   r  ri   r   Úoptparser   Úpip._vendorr   Zpip._vendor.packaging.utilsr   Úpip._internal.cacher   Zpip._internal.clir   Zpip._internal.cli.cmdoptionsr	   Úpip._internal.cli.req_commandr
   r   Úpip._internal.cli.status_codesr   r   Úpip._internal.exceptionsr   r   Úpip._internal.locationsr   Úpip._internal.operations.checkr   Zpip._internal.reqr   Úpip._internal.req.req_trackerr   Úpip._internal.utils.datetimer   Ú"pip._internal.utils.distutils_argsr   Úpip._internal.utils.filesystemr   Úpip._internal.utils.miscr   r   r   r   r   Úpip._internal.utils.temp_dirr   Úpip._internal.utils.typingr   Úpip._internal.utils.virtualenvr   Úpip._internal.wheel_builderr   r    r!   Útypingr"   r#   r$   Ú#pip._internal.models.format_controlr%   r&   Zpip._internal.req.req_installr'   r(   Ú	getLoggerr  r”   r4   r5   r±   r  r˜   r¢   r¼   r1   r1   r1   r2   Ú<module>   sn   
    %    

   
7*