a
    ǏPf                     @   s2   d Z ddlZddlmZmZmZ G dd dZdS )zUtilities for defining models
    N)AnyCallableTypec                   @   s   e Zd ZdZddgZeed  ddddZedd	d
Z	ee
dddZee
dddZee
dddZee
dddZee
dddZeeeege
f e
dddZdS )KeyBasedCompareMixinz7Provides comparison capabilities that is based on a key_compare_key_defining_classN)keydefining_classreturnc                 C   s   || _ || _d S N)r   r   )selfr   r	    r   [/var/www/html/python-backend/venv/lib/python3.9/site-packages/pip/_internal/utils/models.py__init__   s    zKeyBasedCompareMixin.__init__)r
   c                 C   s
   t | jS r   )hashr   )r   r   r   r   __hash__   s    zKeyBasedCompareMixin.__hash__)otherr
   c                 C   s   |  |tjS r   )_compareoperator__lt__r   r   r   r   r   r      s    zKeyBasedCompareMixin.__lt__c                 C   s   |  |tjS r   )r   r   __le__r   r   r   r   r      s    zKeyBasedCompareMixin.__le__c                 C   s   |  |tjS r   )r   r   __gt__r   r   r   r   r      s    zKeyBasedCompareMixin.__gt__c                 C   s   |  |tjS r   )r   r   __ge__r   r   r   r   r      s    zKeyBasedCompareMixin.__ge__c                 C   s   |  |tjS r   )r   r   __eq__r   r   r   r   r       s    zKeyBasedCompareMixin.__eq__)r   methodr
   c                 C   s   t || jstS || j|jS r   )
isinstancer   NotImplementedr   )r   r   r   r   r   r   r   #   s    zKeyBasedCompareMixin._compare)__name__
__module____qualname____doc__	__slots__r   r   r   intr   boolr   r   r   r   r   r   r   r   r   r   r   r      s   r   )r!   r   typingr   r   r   r   r   r   r   r   <module>   s   