a
    _\                     @   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                   @   s   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   $   s   r   c                   @   s2   e Zd ZejZedd Zer.edd ZeZ	dS )IComplexc                   C   s   dS z<
        Rarely implemented, even in builtin types.
        Nr   r   r   r   r   __complex__+   s    zIComplex.__complex__c                 C   s   dS zS
            The interpreter may supply one through complicated rules.
            Nr   otherr   r   r   __eq__2   s    zIComplex.__eq__N)
r   r   r	   r
   Z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	r6edd Z
e
ZdS )IRealc                   C   s   dS r   r   r   r   r   r   r   =   s    zIReal.__complex__c                 C   s   dS r   r   r   r   r   r   __le__F   s    zIReal.__le__N)r   r   r	   r
   ZRealr   r   	__floor____ceil__r   r   __lt__r   r   r   r   r   :   s   

r   c                   @   s   e Zd ZejZdS )	IRationalN)r   r   r	   r
   ZRationalr   r   r   r   r   O   s   r   c                   @   s   e Zd ZejZdS )	IIntegralN)r   r   r	   r
   ZIntegralr   r   r   r   r   S   s   r   )__doc__Z
__future__r   Znumbersr
   Zzope.interface.commonr   r   Zzope.interface._compatr   r   r   r   r   r   r   r   r   r   r   <module>   s   	