Your IP : 18.117.254.177


Current Path : /opt/imunify360/venv/lib64/python3.11/site-packages/attr/__pycache__/
Upload File :
Current File : //opt/imunify360/venv/lib64/python3.11/site-packages/attr/__pycache__/_cmp.cpython-311.pyc

�

Q�Dg��`�ddlZddlZddlmZdddddd	�Z							dd�Zd
�Zd�Zd�Zd�Z	dS)�N�)�_make_nez==�<z<=�>z>=)�eq�lt�le�gt�geT�
Comparablec�N�
�dgt��gtd��
d}d}|�&d}td|���
d<t���
d	<|�|d
z
}td|���
d<|�|d
z
}td
|���
d<|�|d
z
}td|���
d<|�|d
z
}td|���
d<t	j|tfi�
fd���}	|r|	j�t��d|cxkrdkr(nn%|std���tj|	��}	|	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__c�.��|����S�N)�update)�ns�bodys ��i/builddir/build/BUILD/imunify360-venv-2.4.0/opt/imunify360/venv/lib/python3.11/site-packages/attr/_cmp.py�<lambda>zcmp_using.<locals>.<lambda>Ss���b�i�i��o�o���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)rrr	r
r�require_same_type�
class_name�num_order_functions�has_eq_function�type_rs          @r�	cmp_usingr1
s����L�Y��L�L��.�	��D����O�	�~���'��b�1�1��X��!����X��	�~��q� ��'��b�1�1��X��	�~��q� ��'��b�1�1��X��	�~��q� ��'��b�1�1��X��	�~��q� ��'��b�1�1��X���O��V�I�r�#=�#=�#=�#=�
�
�E�
�5�
��"�"�#3�4�4�4�	��"�"�"�"��"�"�"�"�"��	��"���
��(��/�/���Lr c��d�}|S)z!
    Create __init__ method.
    c��||_dS)z1
        Initialize object with *value*.
        N)r)�selfrs  rrz_make_init.<locals>.__init__ms����
�
�
r �)rs rr"r"hs��
����Or c�T���fd�}d|�d�|_dt|�d�|_|S)z!
    Create operator method.
    c���|�|��stS�|j|j��}|turtS|Sr)r�NotImplementedr)r4�other�result�funcs   �r�methodz_make_operator.<locals>.method{sJ����%�%�e�,�,�	"�!�!���d�j�%�+�.�.���^�#�#�!�!��
r �__z	Return a z b.  Computed by attrs.)�__name__�_operation_names�__doc__)�namer;r<s ` rr#r#vsO���
�����$�4�m�m�m�F�O�C�$�T�*�C�C�C��N��Mr c�8�|jD]}|||��sdS�dS)z8
    Check whether `other` is comparable to `self`.
    FT)r)r4r9r;s   rrr�s;���"�����t�D�%� � �	��5�5�	��4r c�2�|jj|jjuS)zR
    Return True if *self* and *other* are of the same type, False otherwise.
    )r�	__class__)r4r9s  rr(r(�s���;� �D�J�$8�8�8r )NNNNNTr)
r*r$�_makerr?r1r"r#rr(r5r r�<module>rFs������������������c��S��M�M���������X�X�X�X�v������.���9�9�9�9�9r 

?>