o
    $x`\                     @   s   d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z
 G dd deZG d	d
 d
eZG dd deZG dd deZG dd deZdS )z
Interface definitions paralleling the abstract base classes defined in
:mod:`numbers`.

After this module is imported, the standard library types will declare
that they implement the appropriate interface.

.. versionadded:: 5.0.0
    )absolute_importN)ABCInterface)optional)PYTHON2c                   @      e Zd ZejZdS )INumberN)__name__
__module____qualname__abcNumber r   r   ?/usr/lib/python3/dist-packages/zope/interface/common/numbers.pyr   $       
r   c                   @   s6   e Zd ZejZedd Zeredd ZeZ	dS dS )IComplexc                   C      dS z<
        Rarely implemented, even in builtin types.
        Nr   r   r   r   r   __complex__+       zIComplex.__complex__c                 C   r   zS
            The interpreter may supply one through complicated rules.
            Nr   otherr   r   r   __eq__2   r   zIComplex.__eq__N)
r   r	   r
   r   Complexr   r   PY2r   __ne__r   r   r   r   r   (   s    

r   c                   @   s>   e Zd ZejZedd Ze ZZe	redd Z
e
ZdS dS )IRealc                   C   r   r   r   r   r   r   r   r   =   r   zIReal.__complex__c                 C   r   r   r   r   r   r   r   __le__F   r   zIReal.__le__N)r   r	   r
   r   Realr   r   	__floor____ceil__r   r   __lt__r   r   r   r   r   :   s    

r   c                   @   r   )	IRationalN)r   r	   r
   r   Rationalr   r   r   r   r"   O   r   r"   c                   @   r   )	IIntegralN)r   r	   r
   r   Integralr   r   r   r   r$   S   r   r$   )__doc__
__future__r   numbersr   zope.interface.commonr   r   zope.interface._compatr   r   r   r   r   r"   r$   r   r   r   r   <module>   s   	