HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/attr/__pycache__/_cmp.cpython-310.pyc
o

;j��@shddlZddlZddlmZdddddd	�Z						
	ddd
�Zdd�Zdd�Zdd�Zdd�Z	dS)�N�)�_make_nez==�<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<|durL|d
7}td|��d<|dur[|d
7}td|��d<t�|tfi�fdd��}	|rp|	j�t	�d|krzdkr�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.

    :param Optional[callable] eq: `callable` used to evaluate equality of two
        objects.
    :param Optional[callable] lt: `callable` used to evaluate whether one
        object is less than another object.
    :param Optional[callable] le: `callable` used to evaluate whether one
        object is less than or equal to another object.
    :param Optional[callable] gt: `callable` used to evaluate whether one
        object is greater than another object.
    :param Optional[callable] ge: `callable` used to evaluate whether one
        object is greater than or equal to another object.

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

    :param Optional[str] class_name: Name of class. Defaults to 'Comparable'.

    See `comparison` for more details.

    .. versionadded:: 21.1.0
    �value)�	__slots__�__init__�
_requirements�_is_comparable_torFNTr�__eq__�__ne__rr�__lt__r�__le__r	�__gt__r
�__ge__cs
|���S�N)�update)�ns��body��=/opt/saltstack/salt/lib/python3.10/site-packages/attr/_cmp.py�<lambda>Ss
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
sF&�
��
r-cCsdd�}|S)z!
    Create __init__ method.
    cSs
||_dS)z1
        Initialize object with *value*.
        N)r)�selfrrrrrks
z_make_init.<locals>.__init__r)rrrrr fsr cs0�fdd�}d|�d�|_dt|�d�|_|S)z!
    Create operator method.
    cs,|�|�stS�|j|j�}|turtS|Sr)r�NotImplementedr)r.�other�result��funcrr�methodys
z_make_operator.<locals>.method�__z	Return a z b.  Computed by attrs.)�__name__�_operation_names�__doc__)�namer3r4rr2rr!ts

�r!cst��fdd��jD��S)z8
    Check whether `other` is comparable to `self`.
    c3s�|]}|���VqdSrr)�.0r3�r0r.rr�	<genexpr>�s�z$_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 
�Y