CasperSecurity

Current Path : /lib/python3/dist-packages/attr/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/attr/__pycache__/_cmp.cpython-310.pyc

o

��`%�@s�ddlmZmZmZddlZddlmZddlmZdddd	d
d�Z								
ddd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�)�absolute_import�division�print_functionN�)�	new_class)�_make_nez==�<z<=�>z>=)�eq�lt�le�gt�geT�
Comparablec
sdgt�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��}	|ro|	j�t�d|krydkr�n|	S|s�t	d��t
�|	�}	|	S)a�
    Create a class that can be passed into `attr.ib`'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��+/usr/lib/python3/dist-packages/attr/_cmp.py�<lambda>Qs
zcmp_using.<locals>.<lambda>�zDeq must be define is order to complete ordering from lt, le, gt, ge.)�
_make_initr�_make_operatorrr�objectr�append�_check_same_type�
ValueError�	functools�total_ordering)
r
rrr
r�require_same_type�
class_name�num_order_functions�has_eq_function�type_r rr!�	cmp_usingsD&�

��
r1cCsdd�}|S)z!
    Create __init__ method.
    cSs
||_dS)z1
        Initialize object with *value*.
        N)r)�selfrr r r!rjs
z_make_init.<locals>.__init__r )rr r r!r$esr$cs,�fdd�}d|f|_dt|f|_|S)z!
    Create operator method.
    cs,|�|�stS�|j|j�}|turtS|Sr)r�NotImplementedr)r2�other�result��funcr r!�methodxs
z_make_operator.<locals>.methodz__%s__z"Return a %s b.  Computed by attrs.)�__name__�_operation_names�__doc__)�namer7r8r r6r!r%ss
�r%cCs |jD]
}|||�s
dSqdS)z8
    Check whether `other` is comparable to `self`.
    FT)r)r2r4r7r r r!r�s


�rcCs|jj|jjuS)zR
    Return True if *self* and *other* are of the same type, False otherwise.
    )r�	__class__)r2r4r r r!r(�sr()NNNNNTr)�
__future__rrrr*�_compatr�_makerr:r1r$r%rr(r r r r!�<module>s"
�Y
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY