HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/install.cpython-310.pyc
o

��i�~�@s�ddlZddlZddlZddlZddlZddlZddlmZmZddl	m
Z
mZmZddl
mZddlmZddlmZddlmZddlmZdd	lmZmZmZdd
lmZmZddlmZm Z ddl!m"Z"dd
l#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*ddl+m,Z,m-Z-ddl.m/Z/ddl0m1Z1m2Z2m3Z3ddl4m5Z5ddl6m7Z7m8Z8ddl9m:Z:ddl;m<Z<ddl=m>Z>ddl?m@Z@mAZAmBZBmCZCmDZDddlEmFZFddlGmHZHmIZIddlJmKZKmLZLmMZMe>eN�ZOde&deKfdd �ZPGd!d"�d"e�ZQ	#			#	d=d$eRd%eeSd&eeSd'eRd(eeSdeeSfd)d*�ZTd&eeSd'eRdeRfd+d,�ZU				#d>d-eeRd.eeSd/eeSd0eeSd1eRdeRfd2d3�ZVd4ee1d5eeeSddfd6d7�ZWd8eXd9eRd:eRdeSfd;d<�ZYdS)?�N)�
SUPPRESS_HELP�Values)�Iterable�List�Optional)�canonicalize_name)�
print_json)�
WheelCache)�
cmdoptions)�make_target_python)�RequirementCommand�warn_if_run_as_root�with_cleanup)�ERROR�SUCCESS)�CommandError�InstallationError)�
get_scheme)�get_environment)�
FormatControl)�InstallationReport)�get_build_tracker)�ConflictDetails�check_install_conflicts)�install_given_reqs)�InstallRequirement�LegacySetupPyOptionsCheckMode�check_legacy_setup_py_options)�WINDOWS)�#LegacyInstallReasonFailedBdistWheel�
deprecated)�parse_distutils_args��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)�BdistWheelAllowedPredicate�build� should_build_for_install_command�format_control�returncsdtdtf�fdd�}|S)N�reqr1cs t|jpd�}��|�}d|vS)N��binary)r�name�get_allowed_formats)r2�canonical_name�allowed_formats�r0��I/usr/local/lib/python3.10/site-packages/pip/_internal/commands/install.py�check_binary_allowedCs
z;get_check_bdist_wheel_allowed.<locals>.check_binary_allowed)r�bool)r0r<r:r9r;�get_check_bdist_wheel_allowed@sr>c@s�eZdZdZdZddd�Zededee	de
fd	d
��Zde	ded
e
ddfdd�Zdeedeefdd�Zdede	ddfdd�ZdS)�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> ...r1NcCs�|j�t���|j�t���|j�t���|j�t���|j�t���|jjdddddd�|jjddd	d
ddd�t�|j�|jjd
dddd�|jjdddt	d�|jjddd
ddd�|jjddd
ddd�|j�t�
��|jjdddddd�|jjddddd gd!d"�|jjd#d$dd%d�|jjd&d'd(dd)d�|j�t���|j�t���|j�t�
��|j�t���|j�t���|j�t���|j�t���|j�t���|j�t���|jjd*dd+d,d-d�|jjd.dd+d/d0�|jjd1dd2d,d3d�|jjd4dd5d,d6d�|j�t���|j�t���|j�t���|j�t���|j�t���|j�t���t�tj|j�}|j�d7|�|j�d7|j�|jjd8d9d:dd;d�dS)<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.)rC�metavarrDrEz--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.))rCrBrEz	--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_strategyzonly-if-needed�eageraGDetermines 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).)rCrD�choicesrEz--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)rBrCrEz--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 dependenciesrz--report�json_report_file�fileaWGenerate 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�install_options�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_optsr:r:r;�add_options_s��
��������
�����
�zInstallCommand.add_options�options�argsc-sd|jr|jdurtd��|jo|jo!|jduo!|jduo!|jdu}|r*|js*t�d}|j	r2|j
}tj|dd�|j
p=g}t�dt��t|j|j|j|j|jd�|_d}d}|jr�d|_tj�|j�|_tj�|j�rxtj�|j�sxtd��tdd	�}|j}|�|�|jp�g}|�|�}	t|�}
|j||	|
|jd
�}|�t ��}t|j!ddd�}
�z�|�"||||	�}t#||t$j%�d
|j&vr�t'|j(�}n|j)j*r�t+ddd
ddd�t'|j(|j)�}|D]}d|_,q�t-||j
�|j.|
|||	||j|j/d�}|j0|||||j|j|j|j1||j2d�
}|�3|�|j4||jd�}|j�rUt5|j6�}|jdk�r1t7|�8�d�n$t9|jddd��}t:j;|�8�|ddd�Wd�n	1�sPwY|j�rvt<dd�|j6D��}|�rst=d d!�>d"d�|D���t?WSz|�@d#�}WntA�y�d}Ynw|jBdu}tC|d$�tD|j)���fd%d&�|jE�F�D�}tG||dg|d'�\}}d(d&�|D�}|�r�tHd)�Id*�>|����|D]
}|j2�s�tJ|_K�q�|�L|�}d}|jM�o�|jN} | �r�|�O|�}|jP}!|j�s�|j�r�d}!tQ||||j||j|!|j|jRd+�	}"tS|j||j|j|jd,�}#tT|#�}$|"jUtV�Wd-�d.�g}%|"D]*}&|&jX}'z|$�Y|'�}(|(du�r<|'�d|(jZ��}'Wn
t[�yGYnw|%�\|'��q$|du�r^|j]||�^|�d/�d!�>|%�})|)�rkt=d0|)�Wn(t_�y�}*z|j/d1k}+t`|*|+|j�},tja|,|+d2�tbWYd}*~*Sd}*~*ww|j�r�|�s�J�|�c|j||j	�|jdd3k�r�te�t?S)4Nz'Can not combine '--user' and '--target'zto-satisfy-onlyT)�check_targetzUsing %s)rLrFrK�
isolated_modez=Target path exists but is not a directory, will not continue.�target)�kind)rw�session�
target_pythonra�install)�deleter|�globally_managedzno-binary-enable-wheel-cachez�--no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache.z to use the --no-cache-dir optioni�,z23.1)�reason�replacement�feature_flag�issue�gone_in)�temp_build_dirrw�
build_trackerr}�finderrI�	verbosity)
�preparerr�rw�wheel_cacherIrRrarQrNrc)�check_supported_wheels�-)�data�wzutf-8)�encoding�F)�indent�ensure_asciicss$�|]
}|jd|jdfVqdS)r5�versionN)�metadata��.0�rr:r:r;�	<genexpr>�s
��
�z%InstallCommand.run.<locals>.<genexpr>zWould install %s� css�|]}d�|�VqdS)r�N)�join)r��itemr:r:r;r�����pip)�
modifying_pipcsg|]	}t|��r|�qSr:)r/r���check_bdist_wheel_allowedr:r;�
<listcomp>�s��z&InstallCommand.run.<locals>.<listcomp>)r��verify�
build_optionsricSsg|]}|jr|j�qSr:)rcr5r�r:r:r;r��s
��zYCould not build wheels for {}, which is required to install pyproject.toml-based projectsz, )�root�home�prefixrTrI�	pycompile)�userr�r�r��isolatedr5)�key)�resolver_variantzSuccessfully installed %s�)�exc_info�warn)frIrFrrArVrKrLrfr%rMrNr
�check_dist_restrictionrh�logger�verboser'�decide_user_installrzrR�os�path�abspath�exists�isdirr*�
enter_contextri�get_default_sessionr�_build_package_finderrar�no_clean�get_requirementsrr�INSTALL�features_enabledr	�	cache_dirr0rjr �permit_editable_wheels�'reject_location_related_install_options�make_requirement_preparerr��
make_resolverrQrc�trace_basic_info�resolver�requirements_to_installr�to_dict�open�json�dump�sortedr)r�r�get_requirement�KeyError�satisfied_byr(r>rZ�valuesr.r�formatr�legacy_install_reason�get_installation_order�ignore_dependenciesrU�_determine_conflictsrTrrS�get_lib_location_guessesr�sort�operator�
attrgetterr5�get_distributionr��	Exception�append�_warn_about_conflicts�determine_resolver_variant�OSError�create_os_error_message�errorr�_handle_target_dirror
)-rtrwrx�#installing_into_current_environmentrNrh�target_temp_dir�target_temp_dir_pathrir}r~r�r��	directory�reqsr�r2r��resolver�requirement_set�report�f�would_install_items�pip_reqr��
reqs_to_build�_�build_failures�pep517_build_failure_namesr��
to_install�	conflicts�should_warn_about_conflictsrT�	installed�
lib_locations�env�items�resultr��installed_dist�installed_descr��show_traceback�messager:r�r;�runs������
����



���
��	�

�
����

�
�
�
���
�
�
��

��
�
��
���

�zInstallCommand.runrFr�rMcsHt|�g}td|jd�}|j}|j}|j}tj�|�r!|�|�tj�|�r0||kr0|�|�tj�|�r;|�|�|D]d}	t�	|	�D]\}
|	|kratj�
||
��t�fdd�|dd�D��raqDtj�
||
�}tj�|�r�|swt�
d|�qDtj�|�r�t�
d|�qDtj�|�r�t�|�nt�|�t�tj�
|	|
�|�qDq=dS)Nr3)r�c3s�|]}|���VqdS�N)�
startswith)r��s��ddirr:r;r�Xr�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&rr��purelib�platlibr�r�r�r��listdirr��anyr��warning�islinkr��shutil�rmtree�remove�move)rtrFr�rM�lib_dir_list�scheme�purelib_dir�platlib_dir�data_dir�lib_dirr��target_item_dirr:rr;r�=sL


��
��z!InstallCommand._handle_target_dirr�cCs*zt|�WStyt�d�YdSw)NzwError while checking for conflicts. Please file an issue on pip's issue tracker: https://github.com/pypa/pip/issues/new)rr�r��	exception)rtr�r:r:r;r�ss
��z#InstallCommand._determine_conflicts�conflict_detailsr�c
Cs�|\}\}}|s|sdSg}|dkr|�d�n|dksJ�|�d�|D]}||d}||D]}	dj|||	dd�}
|�|
�q1q%|D](}||d}||D]\}}}
d	j|||
|||dkrdd
ndd�}
|�|
�qRqFt�d
�|��dS)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.z
2020-resolverz�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.rz@{name} {version} requires {requirement}, which is not installed.r�)r5r��requirementzg{name} {version} requires {requirement}, but {you} have {dep_name} {dep_version} which is incompatible.�youzyou'll)r5r�r�dep_name�dep_versionr�
)r�r�r��criticalr�)rtrr��package_set�missing�conflicting�parts�project_namer��
dependencyr�rrr2r:r:r;r�sL������z$InstallCommand._warn_about_conflicts)r1N)�__name__�
__module__�__qualname__�__doc__�usagervrrr�str�intr�r*r=r�rrrr�r�r:r:r:r;r?Ks<
>"���
�6�
����r?Fr�r�r�r�r�cCs td|||||d�}|j|jgS)Nr3)r�r�r�r�r�)rrr)r�r�r�r�r�rr:r:r;r��s�r�cCstdd�tt||d��D��S)Ncss�|]}t|�VqdSrr")r��dr:r:r;r��s
��
�z)site_packages_writable.<locals>.<genexpr>�r�r�)�all�setr�r.r:r:r;�site_packages_writable�s�r1rIrLrFrKrzcCs�|dur
|s
t�d�dS|r#|rtd��t�rtd��t�d�dS|dus)J�|s-|r4t�d�dStjs>t�d	�dSt||d
�rKt�d�dSt�d�dS)
aZDetermine 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 disabledr.z0Non-user install because site-packages writeablezMDefaulting to user installation because normal site-packages is not writeable)	r��debugrr,r�site�ENABLE_USER_SITEr1�info)rIrLrFrKrzr:r:r;r��s8
��



�r�rZrwcCs�dttdttfdd�}g}|D]}|j}t|�}|r)|�d�||���|��q|r>t|�}|r>|�d�||�����|sBdStd�d	�	|����)
z�If any location-changing --install-option arguments were passed for
    requirements or on the command-line, then show a deprecation warning.
    �option_namesr1cSsdd�|D�S)NcSsg|]}d�|�dd���qS)z--{}r�r�)r��replace)r�r5r:r:r;r�szSreject_location_related_install_options.<locals>.format_options.<locals>.<listcomp>r:)r6r:r:r;�format_optionssz?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; )
rr+rrhr!r�r��keysrr�)rZrwr8�	offendersrrh�location_optionsr:r:r;r�s0�����r�r�r��using_user_sitecCs�g}|�d�|s|�d�|�t|��n|�d�|dd7<|jtjkrGd}d}t�s=|s=|�|d|��g�n|�|�|�d	�tr^|jtjkr^|j	r^t
|j	�d
kr^|�d�d�|���dS)
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: �.rrz"Consider using the `--user` optionzCheck the permissionsz or z.
iz�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
r3)
r�r+�errno�EACCESr+�extend�lowerr�ENOENT�filename�lenr��strip)r�r�r<r#�user_option_part�permissions_partr:r:r;r�3s:



��

���r�)FNNFN)NNNF)Zr>r�r�r�rr3�optparserr�typingrrrZpip._vendor.packaging.utilsr�pip._vendor.richr�pip._internal.cacher	Zpip._internal.clir
Zpip._internal.cli.cmdoptionsr�pip._internal.cli.req_commandrr
r�pip._internal.cli.status_codesrr�pip._internal.exceptionsrr�pip._internal.locationsr�pip._internal.metadatar�#pip._internal.models.format_controlr�(pip._internal.models.installation_reportr�,pip._internal.operations.build.build_trackerr�pip._internal.operations.checkrr�pip._internal.reqrZpip._internal.req.req_installrrr�pip._internal.utils.compatr�pip._internal.utils.deprecationrr �"pip._internal.utils.distutils_argsr!�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�r1r�r�r�r�r:r:r:r;�<module>s��
�p������
�	������
�=�
�
�'����