o
    
j6h©  ã                   @   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deded  ddfdd	„Zdefd
d„Z	dede
fdd„Zdede
fdd„Zdede
fdd„Zdede
fdd„Zdede
fdd„Zdedeeege
f de
fdd„ZdS )ÚKeyBasedCompareMixinz7Provides comparison capabilities that is based on a keyÚ_compare_keyÚ_defining_classÚkeyÚdefining_classÚreturnNc                 C   s   || _ || _d S ©N)r   r   )Úselfr   r	   © r   úi/var/www/html/chefvision.cloud.itp360.com/venv/lib/python3.10/site-packages/pip/_internal/utils/models.pyÚ__init__   s   
zKeyBasedCompareMixin.__init__c                 C   s
   t | jƒS r   )Úhashr   )r   r   r   r   Ú__hash__   s   
zKeyBasedCompareMixin.__hash__Úotherc                 C   ó   |   |tj¡S r   )Ú_compareÚoperatorÚ__lt__©r   r   r   r   r   r      ó   zKeyBasedCompareMixin.__lt__c                 C   r   r   )r   r   Ú__le__r   r   r   r   r      r   zKeyBasedCompareMixin.__le__c                 C   r   r   )r   r   Ú__gt__r   r   r   r   r      r   zKeyBasedCompareMixin.__gt__c                 C   r   r   )r   r   Ú__ge__r   r   r   r   r      r   zKeyBasedCompareMixin.__ge__c                 C   r   r   )r   r   Ú__eq__r   r   r   r   r       r   zKeyBasedCompareMixin.__eq__Úmethodc                 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    