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/operations/__pycache__/check.cpython-310.pyc
o

��i�@s�dZddlZddlmZmZmZmZmZmZm	Z	ddl
mZddlm
Z
mZddlmZddlmZddlmZdd	lmZe�e�ZGd
d�de�Zee
efZe	e
efZe	e
eefZee
eefZee
eefZe	eefZ e	ee fZ!de	ee"ffd
d�Z#	ddedeee$ge"fde fdd�Z%deede!fdd�Z&deededee
fdd�Z'dee
dedee
fdd�Z(dS)z'Validation of dependencies of packages
�N)�Callable�Dict�List�
NamedTuple�Optional�Set�Tuple)�Requirement)�NormalizedName�canonicalize_name)�)make_distribution_for_install_requirement)�get_default_environment)�DistributionVersion)�InstallRequirementc@s"eZdZUeed<eeed<dS)�PackageDetails�version�dependenciesN)�__name__�
__module__�__qualname__r�__annotations__rr	�rr�I/usr/local/lib/python3.10/site-packages/pip/_internal/operations/check.pyrs
r�returncCs�i}d}t�}|jddd�D]2}|j}zt|���}t|j|�||<Wqttfy@}zt	�
d||�d}WYd}~qd}~ww||fS)z3Converts a list of distributions into a PackageSet.Fr)�
local_only�skipz%Error parsing requirements for %s: %sTN)r
�iter_installed_distributions�canonical_name�list�iter_dependenciesrr�OSError�
ValueError�logger�warning)�package_set�problems�env�dist�namer�errr�!create_package_set_from_installed"s��r*r$�
should_ignorecCs�i}i}|��D]b\}}t�}t�}|r||�rq|jD]9}t|j�}	|	|vr@d}
|jdur6|j�ddi�}
|
r?|�|	|f�q||	j}|j	j
|dd�sU|�|	||f�q|r`t|td�||<|rjt|td�||<q||fS)z�Check if a package set is consistent

    If should_ignore is passed, it should be a callable that takes a
    package name and returns a boolean.
    TN�extra�)�prereleases)�key)
�items�setrrr(�marker�evaluate�addr�	specifier�contains�sorted�str)r$r+�missing�conflicting�package_name�package_detail�missing_deps�conflicting_deps�reqr(�missedrrrr�check_package_set3s4	



��rA�
to_installcs6t�\}}t||�}t||��|t|�fdd�d�fS)zeFor checking if the dependency graph would be consistent after     installing given requirements
    cs|�vS�Nr)r(��	whitelistrr�<lambda>osz)check_install_conflicts.<locals>.<lambda>)r+)r*�_simulate_installation_of�_create_whitelistrA)rBr$�_�would_be_installedrrDr�check_install_conflicts`s


��rKcCsLt�}|D]}t|�}|��}|j}t|jt|����||<|�|�q|S)z=Computes the version of packages after installing to_install.)	r1r�get_metadata_distributionrrrrrr4)rBr$�	installed�inst_req�
abstract_distr'r(rrrrGtsrGrJcCsLt|�}|D]}||vr
q||jD]}t|j�|vr"|�|�nqq|SrC)r1rrr(r4)rJr$�packages_affectedr;r?rrrrH�s
��rHrC))�__doc__�logging�typingrrrrrrr�"pip._vendor.packaging.requirementsr	Zpip._vendor.packaging.utilsr
r�pip._internal.distributionsr�pip._internal.metadatar
Zpip._internal.metadata.baserZpip._internal.req.req_installr�	getLoggerrr"r�
PackageSet�Missing�Conflicting�MissingDict�ConflictingDict�CheckResult�ConflictDetails�boolr*r8rArKrGrHrrrr�<module>sT$
���
�-��
����