�
��^i� � �@ � d Z ddlZddlmZmZmZ G d� d� � ZdS )zUtilities for defining models
� N)�Any�Callable�Typec � � e Zd ZdZddgZdeded ddfd�Zdefd �Z d
ede
fd�Zd
ede
fd�Zd
ede
fd
�Z
d
ede
fd�Zd
ede
fd�Zd
edeeege
f de
fd�ZdS )�KeyBasedCompareMixinz7Provides comparison capabilities that is based on a key�_compare_key�_defining_class�key�defining_class�returnNc �" � || _ || _ d S �N)r r )�selfr
r s ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/utils/models.py�__init__zKeyBasedCompareMixin.__init__
s � ����-����� c �* � t | j � � S r )�hashr )r s r �__hash__zKeyBasedCompareMixin.__hash__ s � ��D�%�&�&�&r �otherc �B � | � |t j � � S r )�_compare�operator�__lt__�r r s r r zKeyBasedCompareMixin.__lt__ � � ��}�}�U�H�O�4�4�4r c �B � | � |t j � � S r )r r �__le__r s r r zKeyBasedCompareMixin.__le__ r r c �B � | � |t j � � S r )r r �__gt__r s r r zKeyBasedCompareMixin.__gt__ r r c �B � | � |t j � � S r )r r �__ge__r s r r" zKeyBasedCompareMixin.__ge__ r r c �B � | � |t j � � S r )r r �__eq__r s r r$ zKeyBasedCompareMixin.__eq__ r r �methodc �f � t || j � � st S || j |j � � S r )�
isinstancer �NotImplementedr )r r r% s r r zKeyBasedCompareMixin._compare# s5 � ��%��!5�6�6� "�!�!��v�d�'��);�<�<�