�
JDvc\ � �� � d Z ddlmZ ddlZddlmZ ddlmZ ddlm Z
G d� de� � Z G d � d
e� � Z G d� de� � Z
G d
� de
� � Z G d� de� � ZdS )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 Zd Zej ZdS )�INumberN)�__name__�
__module__�__qualname__�abc�Number� � �?/usr/lib/python3/dist-packages/zope/interface/common/numbers.pyr r $ s � � � � � �
�*�C�C�Cr r c �T � e Zd Zej Zed� � � Zered� � � ZeZ dS dS )�IComplexc � � dS �z<
Rarely implemented, even in builtin types.
Nr r r r �__complex__zIComplex.__complex__+ � � � � r c � � dS �zS
The interpreter may supply one through complicated rules.
Nr ��others r �__eq__zIComplex.__eq__2 r r N)
r r
r r �Complexr r �PY2r �__ne__r r r r r ( sb � � � � � �
�+�C�
�� � �X��
� � � � �
�� �
����� r r c �\ � e Zd Zej Zed� � � ZexZZe red� � � Z
e
ZdS dS )�IRealc � � dS r r r r r r zIReal.__complex__= r r c � � dS r r r s r �__le__zIReal.__le__F r r N)r r
r r �Realr r � __floor__�__ceil__r r# �__lt__r r r r r : sl � � � � � �
�(�C�
�� � �X��
'�&�I��
� � � � �
�� �
����� r r c � � e Zd Zej ZdS )� IRationalN)r r
r r �Rationalr r r r) r) O � � � � � � �
�,�C�C�Cr r) c � � e Zd Zej ZdS )� IIntegralN)r r
r r �Integralr r r r- r- S r+ r r- )�__doc__�
__future__r �numbersr �zope.interface.commonr r �zope.interface._compatr r r r r r) r- r r r �<module>r4 sA ��� � '� &� &� &� &� &� � � � � .� .� .� .� .� .� *� *� *� *� *� *� 1� 1� 1� 1� 1� 1�� � � � �l� � � �� � � � �w� � � �$� � � � �H� � � �*� � � � �� � � �� � � � � � � � � � r |