
    e                     @    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      Q/var/www/html/api/venv/lib/python3.11/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    |                      |t          j                  S r   )_compareoperator__lt__r   r   s     r   r   zKeyBasedCompareMixin.__lt__       }}UHO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3I.C .6L1M .RV . . . .'# ' ' ' '5C 5D 5 5 5 55C 5D 5 5 5 55C 5D 5 5 5 55C 5D 5 5 5 55C 5D 5 5 5 5=c =8S#J4D+E =$ = = = = = =r   r   )r,   r   typingr   r   r   r   r0   r   r   <module>r2      sj      & & & & & & & & & &= = = = = = = = = =r   