HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //var/opt/nydus/ops/attr/__pycache__/_cmp.cpython-39.pyc
a

�,�h�@sZddlZddlZddlmZdddddd	�Zddd
�Zdd�Zdd�Zdd�Zdd�Z	dS)�N�)�__ne__z==�<z<=�>z>=)�eq�lt�le�gt�geT�
Comparablecsdgt�gtd��d}d}|dur<d}td|��d<t�d	<|durZ|d
7}td|��d<|durx|d
7}td
|��d<|dur�|d
7}td|��d<|dur�|d
7}td|��d<t�|tfi�fdd��}	|r�|	j�t	�d|kr�dk�rnn|�s
d}
t
|
��t�|	�}	|	S)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
    �value)�	__slots__�__init__�
_requirements�_is_comparable_torFNTr�__eq__rrr�__lt__r�__le__r	�__gt__r
�__ge__cs
|���S�N)�update)�ns��body��:/opt/nydus/tmp/pip-target-wkfpz8uv/lib/python/attr/_cmp.py�<lambda>]�zcmp_using.<locals>.<lambda>�zDeq must be define is order to complete ordering from lt, le, gt, ge.)
�
_make_initr�_make_operatorr�types�	new_class�objectr�append�_check_same_type�
ValueError�	functools�total_ordering)rrrr	r
Zrequire_same_type�
class_nameZnum_order_functionsZhas_eq_function�type_�msgrrr�	cmp_using
sD0��
r-cCsdd�}|S)z!
    Create __init__ method.
    cSs
||_dS)z1
        Initialize object with *value*.
        N)r)�selfrrrrrusz_make_init.<locals>.__init__r)rrrrr psr cs0�fdd�}d|�d�|_dt|�d�|_|S)z!
    Create operator method.
    cs,|�|�stS�|j|j�}|tur(tS|Sr)r�NotImplementedr)r.�other�result��funcrr�method�s
z_make_operator.<locals>.method�__z	Return a z b.  Computed by attrs.)�__name__�_operation_names�__doc__)�namer3r4rr2rr!~s

�r!cst��fdd��jD��S)z8
    Check whether `other` is comparable to `self`.
    c3s|]}|���VqdSrr)�.0r3�r0r.rr�	<genexpr>�rz$_is_comparable_to.<locals>.<genexpr>)�allr�r.r0rr;rr�srcCs|jj|jjuS)zR
    Return True if *self* and *other* are of the same type, False otherwise.
    )r�	__class__r>rrrr&�sr&)NNNNNTr)
r(r"�_makerr7r-r r!rr&rrrr�<module>s�
c