+
     Xh  c            
       s\    ^ RI t ^ RIt^RIHt RRRRRRR	R
RR/tRR ltR tR tR tR t	R# )i    N)__ne__eqz==ltZ<lez<=gtZ>gez>=c                sh  a RR.R\        4       R. R\        /o^ pRpV e   Rp\        RV 4      SR	&   \        SR
&   Ve   V^,          p\        RV4      SR&   Ve   V^,          p\        RV4      SR&   Ve   V^,          p\        RV4      SR&   Ve   V^,          p\        RV4      SR&   \        P
                  ! V\        3/ V3R l4      p	V'       d    V	P                  P                  \        4       ^ Tu;8  d   ^8  d0   M V	# V'       g   Rp
\        V
4      h\        P                  ! V	4      p	V	# )a  
Create a class that can be passed into `attrs.field`'s ``eq``, ``order``,
and ``cmp`` arguments to customize field comparison.

The resulting class will have a full set of ordering methods if at least
one of ``{lt, le, gt, ge}`` and ``eq``  are provided.

Args:
    eq (typing.Callable | None):
        Callable used to evaluate equality of two objects.

    lt (typing.Callable | None):
        Callable used to evaluate whether one object is less than another
        object.

    le (typing.Callable | None):
        Callable used to evaluate whether one object is less than or equal
        to another object.

    gt (typing.Callable | None):
        Callable used to evaluate whether one object is greater than
        another object.

    ge (typing.Callable | None):
        Callable used to evaluate whether one object is greater than or
        equal to another object.

    require_same_type (bool):
        When `True`, equality and ordering methods will return
        `NotImplemented` if objects are not of the same type.

    class_name (str | None): Name of class. Defaults to "Comparable".

See `comparison` for more details.

.. versionadded:: 21.1.0
Z	__slots__value__init___requirements_is_comparable_toFTr   Z__eq__r    r   Z__lt__r   Z__le__r   Z__gt__r   Z__ge__c                 s&   < V P                  S4      # N)Zupdate)Znsbodys   &./usr/lib/python3.14/site-packages/attr/_cmp.pyZ<lambda>Zcmp_using.<locals>.<lambda>]   s    biio    zDeq must be define is order to complete ordering from lt, le, gt, ge.)
_make_initr	   _make_operatorr    typesZ	new_classZobjectr   Zappend_check_same_typeZ
ValueError	functoolsZtotal_ordering)r   r   r   r   r   Zrequire_same_typeZ
class_nameZnum_order_functionsZhas_eq_functionZtype_Zmsgr   s   &&&&&&&    @r   	cmp_usingr      sM   ` 	gYJL.	D O	~'b1XX	~q 'b1X	~q 'b1X	~q 'b1X	~q 'b1XOOVIr#=E
 ""#34 	"" L  YCS/!((/Lr   c                 s    R p V # )z
Create __init__ method.
c                s    Wn         R# )z!
Initialize object with *value*.
N)r   )selfr      &&r   r   Z_make_init.<locals>.__init__u   s	     
r    )r   s    r   r   r   p   s    
 Or   c                sV   a V3R lpRV  R2Vn         R\        V ,           R2Vn        V# )z
Create operator method.
c                 s   < V P                  V4      '       g   \        # S! V P                  VP                  4      pV\        J d   \        # V# r
   )r	   ZNotImplementedr   )r   otherZresultfuncs   && r   methodZ_make_operator.<locals>.method   sA    %%e,,!!djj%++.^#!!r   Z__z	Return a z b.  Computed by attrs.)Z__name___operation_namesZ__doc__)Znamer   r   s   &f r   r   r   ~   s;    
 4&mFO
$T*++BC N Mr   c                s   a a \         ;QJ d*    VV 3R lS P                   4       F  '       d   K   R# 	  R# ! VV 3R lS P                   4       4      # )z0
Check whether `other` is comparable to `self`.
c              3   s4   <"   T F  q! SS4      x  K  	  R # 5ir
   r   )Z.0r   r   r   s   & r   Z	<genexpr>Z$_is_comparable_to.<locals>.<genexpr>   s     @-?TtD%  -?s   FT)Zallr   r   r   s   ffr   r	   r	      s:     3@T-?-?@33@3@3@T-?-?@@@r   c                sZ    VP                   P                  V P                   P                  J # )zJ
Return True if *self* and *other* are of the same type, False otherwise.
)r   Z	__class__r   r   r   r   r      s#     ;;  DJJ$8$888r   )NNNNNTZ
Comparable)
r   r   Z_maker    r   r   r   r   r	   r   r   r   r   <module>r      sI       $c4tS$M `F.A9r   