HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: sport3497 (1034)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib64/python3.10/site-packages/attr/__pycache__/_cmp.cpython-310.pyc
o

�h�@shddlZddlZddlmZdddddd	�Z						
	ddd
�Zdd�Zdd�Zdd�Zdd�Z	dS)�N�)�__ne__z==�<z<=�>z>=)�eq�lt�le�gt�geT�
Comparablecsdgt�gtd��d}d}|durd}td|��d<t�d	<|dur-|d
7}td|��d<|dur<|d
7}td
|��d<|durK|d
7}td|��d<|durZ|d
7}td|��d<t�|tfi�fdd��}	|ro|	j�t	�d|krydkr�n|	S|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��</usr/local/CyberCP/lib/python3.10/site-packages/attr/_cmp.py�<lambda>]s
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
�require_same_type�
class_name�num_order_functions�has_eq_function�type_�msgrrr�	cmp_using
sF0���
r/cCsdd�}|S)z!
    Create __init__ method.
    cSs
||_dS)z1
        Initialize object with *value*.
        N)r)�selfrrrrrus
z_make_init.<locals>.__init__r)rrrrrpsrcs0�fdd�}d|�d�|_dt|�d�|_|S)z!
    Create operator method.
    cs,|�|�stS�|j|j�}|turtS|Sr)r�NotImplementedr)r0�other�result��funcrr�method�s
z_make_operator.<locals>.method�__z	Return a z b.  Computed by attrs.)�__name__�_operation_names�__doc__)�namer5r6rr4rr ~s

�r cst��fdd��jD��S)z8
    Check whether `other` is comparable to `self`.
    c3s�|]}|���VqdSrr)�.0r5�r2r0rr�	<genexpr>�s�z$_is_comparable_to.<locals>.<genexpr>)�allr�r0r2rr=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!�_makerr9r/rr rr%rrrr�<module>s 
�c