Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/check.cpython-312.pyc

�

4Μg�	�8�dZddlZddlmZddlmZddlmZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZmZddlmZddlmZmZdd	lmZmZdd
lmZddlmZddlm Z dd
l!m"Z"ddl#m$Z$ejJe&�Z'Gd�de�Z(e
ee(fZ)eeefZ*eeeefZ+e
eee*fZ,e
eee+fZ-ee,e-fZ.ee)e.fZ/dee)e0ffd�Z1	dde)dee	e2ge0fde.fd�Z3dee$de/fd�Z4de
e"de
edee"ddffd�Z5dee$de)deefd�Z6deede)deefd�Z7y)z'Validation of dependencies of packages
�N)�suppress)�Parser)�reduce)
�Callable�Dict�	FrozenSet�	Generator�Iterable�List�
NamedTuple�Optional�Set�Tuple)�Requirement)�Tag�	parse_tag)�NormalizedName�canonicalize_name)�Version)�)make_distribution_for_install_requirement)�get_default_environment)�BaseDistribution)�InstallRequirementc�(�eZdZUeed<eeed<y)�PackageDetails�version�dependenciesN)�__name__�
__module__�__qualname__r�__annotations__rr���I/usr/local/lib/python3.12/site-packages/pip/_internal/operations/check.pyrr"s��
���{�#�#r#r�returnc�>�i}d}t�}|jdd��D]A}|j}	t|j	��}t|j|�||<�C||fS#ttf$r#}tjd||�d}Yd}~�ud}~wwxYw)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_installedr72s����K��H�
!�
#�C��0�0�E��0�K���"�"��	��� 6� 6� 8�9�L� .�t�|�|�\� J�K���	L��� � ��	��$�	��N�N�A�4��K��H��	�s�2A*�*B�9B�Br1�
should_ignorec�2�i}i}|j�D]�\}}t�}t�}|r	||�r�%|jD]�}t|j�}	|	|vrAd}
|j
�|j
j
ddi�}
|
r|j|	|f��]||	j}|jj|d��r��|j|	||f���|rt|t��||<|s��t|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.
    T�extra�)�prereleases)�key)
�items�setrrr5�marker�evaluate�addr�	specifier�contains�sorted�str)r1r8�missing�conflicting�package_name�package_detail�missing_deps�conflicting_deps�reqr5�missedrs            r$�check_package_setrOCs���G��K�(3�(9�(9�(;�$��n�%(�U��-0�U���]�<�8��!�.�.�C�$�S�X�X�.�D��;�&����:�:�)� �Z�Z�0�0�'�2��?�F�� �$�$�d�C�[�1��"�$�'�/�/�G��=�=�)�)�'�t�)�D� �$�$�d�G�S�%9�:�/�"�$*�<�S�$A�G�L�!��(.�/?�S�(I�K��%�9)<�<�K��r#�
to_installc�r��t�\}}t||�}t||��|t|�fd���fS)zeFor checking if the dependency graph would be consistent after     installing given requirements
    c���|�vS�Nr")r5�	whitelists �r$�<lambda>z)check_install_conflicts.<locals>.<lambda>s
���D�	�4Ir#)r8)r7�_simulate_installation_of�_create_whitelistrO)rPr1�_�would_be_installedrTs    @r$�check_install_conflictsrZpsJ���
7�8�N�K��2�:�{�K��"�"4�k�B�I�	���'I�	
��r#�packages�supported_tagsc#�^K�|D]�}tt�5|jd�}ttj
t
tt�j|�jdg��t	��}|j|�r|��ddd���y#1swY��xYw�w)N�WHEELr)r�FileNotFoundError�	read_textr�	frozenset�union�maprr�parsestr�get_all�
isdisjoint)r[r\�p�
wheel_file�
wheel_tagss     r$�check_unsupportedrj�s�������
�'�
(����W�-�J�)/�����I�v�x�0�0��<�D�D�U�B�O�P���*�J�
�$�$�^�4���)�
(��
(�
(�s�B-�A?B!�B-�!B*	�&B-c��t�}|D]j}t|�}|j�}|j}t	|j
t
|j���||<|j|��l|S)z=Computes the version of packages after installing to_install.)	r?r�get_metadata_distributionr*rrr+r,rB)rPr1�	installed�inst_req�
abstract_distr4r5s       r$rVrV�sq��
��I���A�(�K�
��6�6�8���"�"��*�4�<�<��d�>T�>T�>V�9W�X��D���
�
�d��
��r#rYc��t|�}|D]E}||vr�||jD],}t|j�|vs�|j	|��E�G|SrS)r?rrr5rB)rYr1�packages_affectedrIrMs     r$rWrW�sf���.�/��#���,�,���|�,�9�9�C� ����*�.?�?�!�%�%�l�3��:�	$��r#rS)8�__doc__�logging�
contextlibr�email.parserr�	functoolsr�typingrrrr	r
rrr
rr�"pip._vendor.packaging.requirementsr�pip._vendor.packaging.tagsrr�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�
PackageSet�Missing�Conflicting�MissingDict�ConflictingDict�CheckResult�ConflictDetails�boolr7rFrOrZrjrVrWr"r#r$�<module>r�s�����������;�5�I�1�Q�:�8�<�	��	�	�8�	$��$�Z�$��.�.�0�
1�
�
���+�
,���N�G�[�8�9���>�4��=�0�1���~�t�K�'8�8�9���K��0�1���
�K�/�0��!�5��T�1A�+B�!�$OS�* ��* �,4�X�s�e�T�k�5J�,K�* ��* �Z��-?�(@��_��(
��'�(�
��S�M�
����t�+�,�
� ��'�(��7A������&��N�+��:D�����r#

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists