
    eg                     8    d Z ddlZddlmZmZmZ  G d d      Zy)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y)KeyBasedCompareMixinz7Provides comparison capabilities that is based on a key_compare_key_defining_classkeydefining_classreturnNc                      || _         || _        y N)r   r	   )selfr
   r   s      w/var/www/html/FastMealFinder_FlaskServer-InitialRelease/venv/lib/python3.12/site-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    | j                  |t        j                        S r   )_compareoperator__lt__r   r   s     r   r   zKeyBasedCompareMixin.__lt__       }}UHOO44r   c                 B    | j                  |t        j                        S r   )r   r   __le__r   s     r   r   zKeyBasedCompareMixin.__le__   r   r   c                 B    | j                  |t        j                        S r   )r   r   __gt__r   s     r   r    zKeyBasedCompareMixin.__gt__   r   r   c                 B    | j                  |t        j                        S r   )r   r   __ge__r   s     r   r"   zKeyBasedCompareMixin.__ge__   r   r   c                 B    | j                  |t        j                        S r   )r   r   __eq__r   s     r   r$   zKeyBasedCompareMixin.__eq__    r   r   methodc                 t    t        || j                        st        S  || j                  |j                        S r   )
isinstancer	   NotImplementedr   )r   r   r%   s      r   r   zKeyBasedCompareMixin._compare#   s1    %!5!56!!d''););<<r   )__name__
__module____qualname____doc__	__slots__r   r   r   intr   boolr   r   r    r"   r$   r   r    r   r   r   r      s    A!23I.C .6L1M .RV .'# '5C 5D 55C 5D 55C 5D 55C 5D 55C 5D 5=c =8S#J4D+E =$ =r   r   )r,   r   typingr   r   r   r   r0   r   r   <module>r2      s     & &= =r   