3
ôÁg©  ã               @   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   úX/var/www/tester-filtro-web/env/lib/python3.6/site-packages/pip/_internal/utils/models.pyÚ__init__   s    zKeyBasedCompareMixin.__init__)r
   c             C   s
   t | jƒS )N)Úhashr   )r   r   r   r   Ú__hash__   s    zKeyBasedCompareMixin.__hash__)Úotherr
   c             C   s   | j |tjƒS )N)Ú_compareÚoperatorÚ__lt__)r   r   r   r   r   r      s    zKeyBasedCompareMixin.__lt__c             C   s   | j |tjƒS )N)r   r   Ú__le__)r   r   r   r   r   r      s    zKeyBasedCompareMixin.__le__c             C   s   | j |tjƒS )N)r   r   Ú__gt__)r   r   r   r   r   r      s    zKeyBasedCompareMixin.__gt__c             C   s   | j |tjƒS )N)r   r   Ú__ge__)r   r   r   r   r   r      s    zKeyBasedCompareMixin.__ge__c             C   s   | j |tjƒS )N)r   r   Ú__eq__)r   r   r   r   r   r       s    zKeyBasedCompareMixin.__eq__)r   Úmethodr
   c             C   s   t || jƒstS || j|jƒS )N)Ú
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   