§
    õ/òc©  ã                   ó@   — d Z ddlZddlmZmZmZ  G d„ d¦  «        ZdS )zUtilities for defining models
é    N)ÚAnyÚCallableÚTypec                   ó¾   — e Zd ZdZddgZdeded          ddfd„Zdefd	„Z	d
ede
fd„Zd
ede
fd„Zd
ede
fd„Zd
ede
fd„Zd
ede
fd„Zd
edeeege
f         de
fd„ZdS )Ú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      ú</usr/lib/python3/dist-packages/pip/_internal/utils/models.pyÚ__init__zKeyBasedCompareMixin.__init__   s   € ØˆÔØ-ˆÔÐÐó    c                 ó*   — t          | j        ¦  «        S r   )Úhashr   )r   s    r   Ú__hash__zKeyBasedCompareMixin.__hash__   s   € ÝDÔ%Ñ&Ô&Ð&r   Úotherc                 óB   — |                       |t          j        ¦  «        S r   )Ú_compareÚoperatorÚ__lt__©r   r   s     r   r   zKeyBasedCompareMixin.__lt__   ó   € Ø}Š}˜U¥H¤OÑ4Ô4Ð4r   c                 óB   — |                       |t          j        ¦  «        S r   )r   r   Ú__le__r   s     r   r   zKeyBasedCompareMixin.__le__   r   r   c                 óB   — |                       |t          j        ¦  «        S r   )r   r   Ú__gt__r   s     r   r    zKeyBasedCompareMixin.__gt__   r   r   c                 óB   — |                       |t          j        ¦  «        S r   )r   r   Ú__ge__r   s     r   r"   zKeyBasedCompareMixin.__ge__   r   r   c                 óB   — |                       |t          j        ¦  «        S r   )r   r   Ú__eq__r   s     r   r$   zKeyBasedCompareMixin.__eq__    r   r   Úmethodc                 óf   — t          || j        ¦  «        st          S  || j        |j        ¦  «        S r   )Ú
isinstancer	   ÚNotImplementedr   )r   r   r%   s      r   r   zKeyBasedCompareMixin._compare#   s5   € Ý˜% Ô!5Ñ6Ô6ð 	"Ý!Ð!àˆvdÔ'¨Ô);Ñ<Ô<Ð<r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   r   Úintr   Úboolr   r   r    r"   r$   r   r   © r   r   r   r      sQ  € € € € € ØAÐAàÐ!2Ð3€Ið.˜Cð .°Ð6LÔ1Mð .ÐRVð .ð .ð .ð .ð'˜#ð 'ð 'ð 'ð 'ð5˜Cð 5 Dð 5ð 5ð 5ð 5ð5˜Cð 5 Dð 5ð 5ð 5ð 5ð5˜Cð 5 Dð 5ð 5ð 5ð 5ð5˜Cð 5 Dð 5ð 5ð 5ð 5ð5˜Cð 5 Dð 5ð 5ð 5ð 5ð=˜cð =¨8°S¸#°JÀÐ4DÔ+Eð =È$ð =ð =ð =ð =ð =ð =r   r   )r,   r   Útypingr   r   r   r   r0   r   r   ú<module>r2      sj   ððð ð €€€Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &ð=ð =ð =ð =ð =ñ =ô =ð =ð =ð =r   