OwlCyberSecurity - MANAGER
Edit File: install.cpython-310.pyc
o ����ƚRe�l����������������������@���s~��d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlmZmZ�d�dlm Z m Z mZ�d�dlm Z �d�dlmZ�d�dlmZ�d�dlmZ�d�dlmZmZmZ�d�d lmZmZ�d�d lmZmZ�d�dlmZ�d�dl m!Z!�d�d l"m#Z#�d�dl$m%Z%m&Z&�d�dl'm(Z(�d�dl)m*Z*�d�dl+m,Z,�d�dl-m.Z.�d�dl/m0Z0�d�dl1m2Z2�d�dl3m4Z4�d�dl5m6Z6m7Z7m8Z8m9Z9�d�dl:m;Z;�d�dl<m=Z=m>Z>�d�dl?m@Z@mAZAmBZB�e4eC�ZDde#de@fdd�ZEG�dd��de�ZF d:d!eGd"eeH�d#eeH�d$eGd%eeH�de eH�fd&d'�ZId#eeH�d$eGdeGfd(d)�ZJ d;d*eeG�d+eeH�d,eeH�d-eeH�d.eGdeGfd/d0�ZKd1e e*�d2ee eH��ddfd3d4�ZLd5eMd6eGd7eGdeHfd8d9�ZNdS�)<�����N)� SUPPRESS_HELP�Values)�Iterable�List�Optional)�canonicalize_name)� WheelCache)� cmdoptions)�make_target_python)�RequirementCommand�warn_if_run_as_root�with_cleanup)�ERROR�SUCCESS)�CommandError�InstallationError)� get_scheme)�get_environment)� FormatControl)�ConflictDetails�check_install_conflicts)�install_given_reqs)�InstallRequirement)�get_requirement_tracker)�WINDOWS)�parse_distutils_args��test_writable_dir)� getLogger)� ensure_dir�get_pip_version�(protect_pip_from_modification_on_windows�write_output)� TempDirectory)�running_under_virtualenv�virtualenv_no_global)�BinaryAllowedPredicate�build� should_build_for_install_command�format_control�returnc��������������������s���dt�dtf��fdd�}|S�)N�reqr*���c��������������������s ���t�|�jpd�}���|�}d|v�S�)N���binary)r����name�get_allowed_formats)r+����canonical_name�allowed_formats�r)�������/builddir/build/BUILDROOT/alt-python310-pip-21.3.1-3.el8.x86_64/opt/alt/python310/lib/python3.10/site-packages/pip/_internal/commands/install.py�check_binary_allowed5���s��� z6get_check_binary_allowed.<locals>.check_binary_allowed)r����bool)r)���r5���r3���r2���r4����get_check_binary_allowed4���s���r7���c�������������������@���s����e�Zd�ZdZdZddd�Zededee �de fd d ��Zde ded e ddfdd�Zdee�dee�fdd�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> ...r*���Nc�����������������C���sj��|�j��t�����|�j��t�����|�j��t�����|�j��t�����|�j��t�����|�j�jddddd�dd��t�|�j���|�j�jddd d d��|�j�jddd t d��|�j�jdddd�dd��|�j�jdddd�dd��|�j��t� ����|�j�jdddd dd��|�j�jdddddgdd��|�j�jddd d d��|�j�jd!d"d#d d$d��|�j��t�����|�j��t�����|�j��t� ����|�j��t�����|�j��t�����|�j��t�����|�j�jd%d d&d'd(d)��|�j�jd*d d&d+d,��|�j�jd-d d.d'd/d)��|�j�jd0d d1d'd2d)��|�j��t�����|�j��t�����|�j��t�����|�j��t�����|�j��t�����t�tj|�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.))r;����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_strategyzonly-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).)r;���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)rA���r;���r=���r>���z--no-compilez.Do not compile Python source files to bytecode)rA���r;���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����src�ignore_requires_python�no_build_isolation� use_pep517� 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_optsr3���r3���r4����add_optionsQ���s����� �������� �����zInstallCommand.add_options�options�argsc�����������)���������s*��|j�r|jd�urtd��t�|��d}|jr|j}tj|dd��|jp$g�}t � dt����t|j�|j |j|j|jd�|_�d�}d�}|jrld|_tj�|j�|_tj�|j�r_tj�|j�s_td��tdd �}|j}|��|��|jppg�}|��|�}t|�} |�j||| |jd �} t|j|j�}|��t ���}t|j!�ddd�} �z:|��"||| |�}|D�]}d|_#q�t$||j��|�j%| |||| |j�d �}|�j&|| |||j�|j|j|j'||j(d� }|��)| ��|j*||j�d�}z|�+d�}W�n�t,y����d}Y�nw�|j-d�u�}t.|d��t/| j�����fdd�|j0�1��D��}t2||dg�g�d�\}}dd��|D��}|�r-t3d�4d�5|����|D�] }|j(�s8d|_6�q/|�7|�}d�}|j8��oH|j9}|�rQ|��:|�}|j;}|j�s\|j �r^d}t<||||j||j ||j�|j=d� }t>|j�||j|j |jd�}t?|�} |j@tA�Bd�d��g�}!|D�]*}"|"jC}#z| �D|#�}$|$d�u�r�|#��d|$jE���}#W�n �tF�y����Y�nw�|!�G|#���q�|d�u�r�|�jH||��I|�d��d �5|!�}%|%�r�tJd!|%��W�n(�tK�y��}&�z|�jLd"k}'tM|&|'|j��}(t jN|(|'d#��tOW��Y�d�}&~&S�d�}&~&ww�|j�r|�sJ��|��P|j||j��tQ���tRS�)$Nz'Can not combine '--user' and '--target'zto-satisfy-onlyT)�check_targetzUsing %s)rD���r9���rC���� isolated_modez=Target path exists but is not a directory, will not continue.�target)�kind)ri����session� target_pythonrW����install)�deletern����globally_managed)�temp_build_dirri����req_trackerro����finderr?���) �preparerrv���ri����wheel_cacher?���rJ���rW���rI���rF���rY���)�check_supported_wheels�pipF)� modifying_pipc��������������������s���g�|�] }t�|���r|�qS�r3���)r(�����.0�r�r5���r3���r4���� <listcomp>b��s������z&InstallCommand.run.<locals>.<listcomp>)rx����verify� build_optionsr\���c�����������������S���s���g�|�]}|j�r|j�qS�r3���)rY���r.���r|���r3���r3���r4���r����r��s ������zYCould not build wheels for {}, which is required to install pyproject.toml-based projectsz, i� ��)�root�home�prefixrL���r?���� pycompile)�userr����r����r�����isolatedr.���)�key�-)�resolver_variant� zSuccessfully installed %s����)�exc_info)Sr?���r9���r���r ����check_install_build_globalrE���rF����check_dist_restrictionr[����logger�verboser ����decide_user_installrD���rC���rl���rJ����os�path�abspath�exists�isdirr#���� enter_contextr\����get_default_sessionr ����_build_package_finderrW���r���� cache_dirr)���r����no_clean�get_requirements�permit_editable_wheels�'reject_location_related_install_options�make_requirement_preparer� make_resolverrI���rY����trace_basic_info�resolve�get_requirement�KeyError�satisfied_byr!���r7���rP����valuesr'���r����format�join�legacy_install_reason�get_installation_order�ignore_dependenciesrM����_determine_conflictsrL���r���rK����get_lib_location_guessesr����sort�operator� attrgetterr.����get_distribution�version� Exception�append�_warn_about_conflicts�determine_resolver_variantr"����OSError� verbosity�create_os_error_message�errorr����_handle_target_dirr���r���))rf���ri���rj���rF���r[����target_temp_dir�target_temp_dir_pathr\���ro���rp���rv���rx���ru���� directory�reqsr+���rw����resolver�requirement_set�pip_reqr{���� reqs_to_build�_�build_failures�pep517_build_failure_namesr~���� to_install� conflicts�should_warn_about_conflictsrL���� installed� lib_locations�env�items�result�item�installed_dist�installed_descr�����show_traceback�messager3���r���r4����run����sf�� ���� ���� �� � � ��� � � �� �� � �� ��� �zInstallCommand.runr9���r����rE���c��������������������sH��t�|��g�}td|jd�}|j}|j}|j}tj�|�r!|�|��tj�|�r0||kr0|�|��tj�|�r;|�|��|D�]d} t� | �D�]\} | |kratj� || ���t��fdd�|d�d��D���raqDtj� || �}tj�|�r�|swt� d|��qDtj�|�r�t� d|��qDtj�|�r�t�|��nt�|��t�tj� | | �|��qDq=d�S�)Nr,���)r����c�����������������3���s�����|�]}|�����V��qd�S��N)� startswith)r}����s��ddirr3���r4���� <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�����purelib�platlib�datar����r����r�����listdirr�����anyr�����warning�islinkr�����shutil�rmtree�remove�move)rf���r9���r����rE����lib_dir_list�scheme�purelib_dir�platlib_dir�data_dir�lib_dirr�����target_item_dirr3���r����r4���r�������sL��� �� ��z!InstallCommand._handle_target_dirr����c�����������������C���s*���zt�|�W�S��ty���t�d��Y�d�S�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)rf���r����r3���r3���r4���r������s��� ��z#InstallCommand._determine_conflicts�conflict_detailsr����c�������������� ���C���s����|\}\}}|s|sd�S�g�}|dkr|��d��n|dksJ��|��d��|D�]}||�d�}||�D�]} dj||| d�d�} |��| ��q1q%|D�](}||�d�}||�D�]\}}} d j||| |||dkrdd ndd�} |��| ��qRqFt�d �|���d�S�)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.r���z@{name} {version} requires {requirement}, which is not installed.r����)r.���r�����requirementzg{name} {version} requires {requirement}, but {you} have {dep_name} {dep_version} which is incompatible.�youzyou'll)r.���r����r�����dep_name�dep_versionr����� )r����r����r�����criticalr����)rf���r����r�����package_set�missing�conflicting�parts�project_namer����� dependencyr����r����r����r+���r3���r3���r4���r������sL���������z$InstallCommand._warn_about_conflicts)r*���N)�__name__� __module__�__qualname__�__doc__�usagerh���r ���r���r����str�intr����r#���r6���r����r���r���r���r����r����r3���r3���r3���r4���r8���=���s:���� � �f��� �6� ����r8���Fr����r����r����r����r����c�����������������C���s ���t�d|�||||d�}|j|jgS�)Nr,���)r����r����r����r����r����)r���r����r����)r����r����r����r����r����r����r3���r3���r4���r����O��s����r����c�����������������C���s���t�dd��tt|�|d��D���S�)Nc�����������������s���s�����|�]}t�|�V��qd�S�r����r���)r}����dr3���r3���r4���r����b��s ������ �z)site_packages_writable.<locals>.<genexpr>�r����r����)�all�setr����r��r3���r3���r4����site_packages_writablea��s����r ��r?���rD���r9���rC���rl���c�����������������C���s����|�dur |�s t��d��dS�|�r#|rtd��t��rtd��t��d��dS�|�du�s)J��|s-|r4t��d��dS�tjs>t��d ��dS�t||d �rKt��d��dS�t��d��dS�) 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 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)r?���rD���r9���rC���rl���r3���r3���r4���r����h��s8��� �� �r����rP���ri���c�����������������C���s����dt�t�dtt�fdd�}g�}|�D�]}|j}t|�}|r)|�d�||����|���q|r>t|�}|r>|�d�||�������|sBdS�td�d � |����) z�If any location-changing --install-option arguments were passed for requirements or on the command-line, then show a deprecation warning. �option_namesr*���c�����������������S���s���dd��|�D��S�)Nc�����������������S���s���g�|�]}d���|�dd���qS�)z--{}r����r����)r�����replace)r}���r.���r3���r3���r4���r�������s����zSreject_location_related_install_options.<locals>.format_options.<locals>.<listcomp>r3���)r��r3���r3���r4����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; ) r���r��r���r[���r���r����r�����keysr���r����)rP���ri���r��� offendersr����r[����location_optionsr3���r3���r4���r�������s0��������r����r����r�����using_user_sitec�����������������C���s����g�}|��d��|s|��d��|��t|����n|��d��|d��d7��<�|�jtjkrGd}d}t��s=|s=|�|d|���g��n|��|��|��d ��tr^|�jtjkr^|�j r^t |�j �d kr^|��d��d�|����d�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` optionzCheck 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_partr3���r3���r4���r�������s:��� �� ���r����)FNNFN)NNNF)Or��r����r����r����r���optparser���r����typingr���r���r����pip._vendor.packaging.utilsr����pip._internal.cacher���Zpip._internal.clir ���Zpip._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.format_controlr����pip._internal.operations.checkr���r����pip._internal.reqr���Zpip._internal.req.req_installr����pip._internal.req.req_trackerr����pip._internal.utils.compatr����"pip._internal.utils.distutils_argsr����pip._internal.utils.filesystemr����pip._internal.utils.loggingr����pip._internal.utils.miscr���r ���r!���r"����pip._internal.utils.temp_dirr#����pip._internal.utils.virtualenvr$���r%����pip._internal.wheel_builderr&���r'���r(���r����r����r7���r8���r6���r��r����r ��r����r����r����r����r3���r3���r3���r4����<module>���s����� ���������� � ������ �=� � �'����