HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/pip/_internal/operations/__pycache__/check.cpython-311.pyc
�

�mi����dZddlmZddlZddlmZmZddlmZddl	m
Z
ddlmZddl
mZmZdd	lmZdd
lmZmZddlmZmZddlmZdd
lmZddlmZddlmZddl m!Z!ej"e#��Z$Gd�de��Z%e&ee%fZ'e(eefZ)e(eeefZ*e&ee+e)fZ,e&ee+e*fZ-e(e,e-fZ.e(e'e.fZ/d*d�Z0	d+d,d�Z1d-d�Z2d.d%�Z3d/d'�Z4d0d)�Z5dS)1z&Validation of dependencies of packages�)�annotationsN)�	Generator�Iterable)�suppress)�Parser)�reduce)�Callable�
NamedTuple)�Requirement)�Tag�	parse_tag)�NormalizedName�canonicalize_name)�Version)�)make_distribution_for_install_requirement)�get_default_environment)�BaseDistribution)�InstallRequirementc�$�eZdZUded<ded<dS)�PackageDetailsr�versionzlist[Requirement]�dependenciesN)�__name__�
__module__�__qualname__�__annotations__���@D:\Python311\Lib\site-packages\pip/_internal/operations/check.pyrrs*�����������#�#�#�#�#�#rr�return�tuple[PackageSet, bool]c�\�i}d}t��}|�dd���D]}|j}	t|�����}t|j|��||<�D#ttf$r(}t�
d||��d}Yd}~�xd}~wwxYw||fS)z3Converts a list of distributions into a PackageSet.Fr)�
local_only�skipz$Error parsing dependencies of %s: %sTN)r�iter_installed_distributions�canonical_name�list�iter_dependenciesrr�OSError�
ValueError�logger�warning)�package_set�problems�env�dist�namer�es       r�!create_package_set_from_installedr3,s����K��H�
!�
#�
#�C��0�0�E��0�K�K�����"��	��� 6� 6� 8� 8�9�9�L� .�t�|�\� J� J�K�������$�	�	�	��N�N�A�4��K�K�K��H�H�H�H�H�H�����	������ � s�9A.�.B'�?B"�"B'r-�
PackageSet�
should_ignore�Callable[[str], bool] | None�CheckResultc�N�i}i}|���D�]\}}t��}t��}|r||��r�0|jD]�}t|j��}	|	|vr?d}
|j�|j�ddi��}
|
r|�|	|f���Y||	j}|j	�
|d���s|�|	||f����|rt|t���||<|rt|t���||<��
||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�setrrr1�marker�evaluate�addr�	specifier�contains�sorted�str)r-r5�missing�conflicting�package_name�package_detail�missing_deps�conflicting_deps�reqr1�missedrs            r�check_package_setrN=sp���G��K�(3�(9�(9�(;�(;�J�J�$��n�%(�U�U��-0�U�U���	�]�]�<�8�8�	��!�.�	;�	;�C�$�S�X�.�.�D��;�&�
����:�@� �Z�0�0�'�2��?�?�F��2� �$�$�d�C�[�1�1�1��"�$�'�/�G��=�)�)�'�t�)�D�D�
;� �$�$�d�G�S�%9�:�:�:���	B�$*�<�S�$A�$A�$A�G�L�!��	J�(.�/?�S�(I�(I�(I�K��%���K��r�
to_install�list[InstallRequirement]�ConflictDetailsc���t��\}}t||��}t||���|t|�fd����fS)zeFor checking if the dependency graph would be consistent after     installing given requirements
    c���|�vS�Nr)r1�	whitelists �r�<lambda>z)check_install_conflicts.<locals>.<lambda>ys���D�	�4I�r)r5)r3�_simulate_installation_of�_create_whitelistrN)rOr-�_�would_be_installedrUs    @r�check_install_conflictsr[jsf���
7�8�8�N�K��2�:�{�K�K��"�"4�k�B�B�I�	���'I�'I�'I�'I�	
�	
�	
��r�packages�Iterable[BaseDistribution]�supported_tags�
Iterable[Tag]�'Generator[BaseDistribution, None, None]c#�K�|D]�}tt��5|�d��}ttjt
tt���	|���
dg����t	����}|�|��r|V�ddd��n#1swxYwY��dS)N�WHEELr)r�FileNotFoundError�	read_textr�	frozenset�union�mapr
r�parsestr�get_all�
isdisjoint)r\r^�p�
wheel_file�
wheel_tagss     r�check_unsupportedrn~s�����	�	��
�'�
(�
(�	�	����W�-�-�J�)/����I�v�x�x�0�0��<�<�D�D�U�B�O�O�P�P����*�*�J�
�$�$�^�4�4�
�����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��	�	s�BC�C	�
C	�set[NormalizedName]c��t��}|D]x}t|��}|���}|j}t	|jt
|�������||<|�|���y|S)z=Computes the version of packages after installing to_install.)	r>r�get_metadata_distributionr&rrr'r(rA)rOr-�	installed�inst_req�
abstract_distr0r1s       rrWrW�s���
���I�����A�(�K�K�
��6�6�8�8���"��*�4�<��d�>T�>T�>V�>V�9W�9W�X�X��D���
�
�d������rrZc��t|��}|D]D}||vr�||jD]/}t|j��|vr|�|��n�0�E|SrT)r>rrr1rA)rZr-�packages_affectedrHrLs     rrXrX�s����.�/�/��#�����,�,�	���|�,�9�	�	�C� ���*�*�.?�?�
�!�%�%�l�3�3�3���
���r)r r!rT)r-r4r5r6r r7)rOrPr rQ)r\r]r^r_r r`)rOrPr-r4r ro)rZror-r4r ro)6�__doc__�
__future__r�logging�collections.abcrr�
contextlibr�email.parserr�	functoolsr�typingr	r
�"pip._vendor.packaging.requirementsr�pip._vendor.packaging.tagsrr
�pip._vendor.packaging.utilsrr�pip._vendor.packaging.versionr�pip._internal.distributionsr�pip._internal.metadatar�pip._internal.metadata.baser�pip._internal.req.req_installr�	getLoggerrr+r�dictr4�tuple�Missing�Conflictingr'�MissingDict�ConflictingDictr7rQr3rNr[rnrWrXrrr�<module>r�s{��,�,�"�"�"�"�"�"�����/�/�/�/�/�/�/�/���������������������������
;�:�:�:�:�:�5�5�5�5�5�5�5�5�I�I�I�I�I�I�I�I�1�1�1�1�1�1�Q�Q�Q�Q�Q�Q�:�:�:�:�:�:�8�8�8�8�8�8�<�<�<�<�<�<�	��	�8�	$�	$��$�$�$�$�$�Z�$�$�$��.�.�0�
1�
�
���+�
,���N�G�[�8�9���>�4��=�0�1���~�t�K�'8�8�9���K��0�1���
�K�/�0��!�!�!�!�$LP�* �* �* �* �* �Z����(
�
�
�
� ����&�����r