Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.6/site-packages/attr/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.6/site-packages/attr/__pycache__/_cmp.cpython-36.pyc

3

"��c��@sZddlZddlZddlmZdddddd	�Zddd
�Zdd�Zdd�Zdd�Zdd�Z	dS)�N�)�_make_nez==�<z<=�>z>=)�eq�lt�le�gt�geT�
Comparablec
sdgt�gtd��d}d}|dk	r>d}td|��d<t��d	<|dk	r\|d
7}td|��d<|dk	rz|d
7}td
|��d<|dk	r�|d
7}td|��d<|dk	r�|d
7}td|��d<tj|tfi�fdd��}	|r�|	jjt	�d|ko�dkn�r|�st
d��tj|	�}	|	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
|j��S)N)�update)�ns)�body��*/tmp/pip-build-_uu8ur7s/attrs/attr/_cmp.py�<lambda>Sszcmp_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_r)rr�	cmp_using
s@&

r*cCsdd�}|S)z!
    Create __init__ method.
    cSs
||_dS)z1
        Initialize object with *value*.
        N)r)�selfrrrrrmsz_make_init.<locals>.__init__r)rrrrrhsrcs0�fdd�}d|�d�|_dt|�d�|_|S)z!
    Create operator method.
    cs,|j|�stS�|j|j�}|tkr(tS|S)N)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__)�namer/r0r)r/rrvs
rcCs"x|jD]}|||�sdSqWdS)z8
    Check whether `other` is comparable to `self`.
    FT)r)r+r-r/rrrr�s
rcCs|jj|jjkS)zR
    Return True if *self* and *other* are of the same type, False otherwise.
    )r�	__class__)r+r-rrrr$�sr$)NNNNNTr)
r&r �_makerr3r*rrrr$rrrr�<module>s
T

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists