o �J�h�@shddlZddlZddlmZdddddd �Z      dd d �Zdd�Zdd�Zdd�Zdd�Z dS)�N�)�__ne__z==�<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<|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��GC:\pinokio\api\whisper-webui.git\app\env\lib\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 Zrequire_same_type� class_nameZnum_order_functionsZhas_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 )r-�other�result��funcrr�method�s z_make_operator.<locals>.method�__z Return a z b. Computed by attrs.)�__name__�_operation_names�__doc__)�namer2r3rr1rr ~s  �r cst��fdd��jD��S)z8 Check whether `other` is comparable to `self`. c3s�|]}|���VqdSrr)�.0r2�r/r-rr� <genexpr>�s�z$_is_comparable_to.<locals>.<genexpr>)�allr�r-r/rr: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!�_makerr6r,rr rr%rrrr�<module>s   �c 
Memory