� ��^i���@�dZddlZddlmZmZmZGd�d��ZdS)zUtilities for defining models �N)�Any�Callable�Typec��eZdZdZddgZdededddfd�Zdefd �Z d ede fd �Z d ede fd �Z d ede fd �Z d ede fd�Zd ede fd�Zd edeeege fde fd�ZdS)�KeyBasedCompareMixinz7Provides comparison capabilities that is based on a key� _compare_key�_defining_class�key�defining_class�returnNc�"�||_||_dS�N)rr )�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��Sr)�hashr)rs r�__hash__zKeyBasedCompareMixin.__hash__s���D�%�&�&�&r�otherc�B�|�|tj��Sr)�_compare�operator�__lt__�rrs rrzKeyBasedCompareMixin.__lt__����}�}�U�H�O�4�4�4rc�B�|�|tj��Sr)rr�__le__rs rrzKeyBasedCompareMixin.__le__rrc�B�|�|tj��Sr)rr�__gt__rs rr zKeyBasedCompareMixin.__gt__rrc�B�|�|tj��Sr)rr�__ge__rs rr"zKeyBasedCompareMixin.__ge__rrc�B�|�|tj��Sr)rr�__eq__rs rr$zKeyBasedCompareMixin.__eq__ rr�methodc�f�t||j��stS||j|j��Sr)� isinstancer �NotImplementedr)rrr%s rrzKeyBasedCompareMixin._compare#s5���%��!5�6�6� "�!� !��v�d�'��);�<�<�r2sj��������&�&�&�&�&�&�&�&�&�&�=�=�=�=�=�=�=�=�=�=r