�
JDvc� � � � d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ g d�Z G d� d ej
� � Z G d
� dej � � Z
G d� d
ej � � Z G d� dej � � Z G d� deeu rene� � Z eee� � G d� dej � � Z G d� dej � � Z G d� dej � � ZdS )z�
Interface definitions for builtin types.
After this module is imported, the standard library types will declare
that they implement the appropriate interface.
.. versionadded:: 5.0.0
� )�absolute_import)�classImplements)�collections)�numbers)�io)�IList�ITuple�ITextString�IByteString�
INativeString�IBool�IDict�IFilec � � e Zd ZdZefZdd�ZdS )r z%
Interface for :class:`list`
NFc � � dS )zs
Sort the list in place and return None.
*key* and *reverse* must be passed by name only.
N� )�key�reverses �@/usr/lib/python3/dist-packages/zope/interface/common/builtins.py�sortz
IList.sort. s � � � � )NF)�__name__�
__module__�__qualname__�__doc__�list�
extra_classesr r r r r r ( s; � � � � � �� � �G�M�� � � � � r r c � � e Zd ZdZefZdS )r z&
Interface for :class:`tuple`
N)r r r r �tupler r r r r r 6 s! � � � � � �� � �H�M�M�Mr r c �* � e Zd ZdZ ed� � fZdS )r
z�
Interface for text (unicode) strings.
On Python 2, this is :class:`unicode`. On Python 3,
this is :class:`str`
�unicodeN)r r r r �typer r r r r
r
= s, � � � � � �� � �T�*�%�%�'�M�M�Mr r
c � � e Zd ZdZefZdS )r z�
Interface for immutable byte strings.
On all Python versions this is :class:`bytes`.
Unlike :class:`zope.interface.common.collections.IByteString`
(the parent of this interface) this does *not* include
:class:`bytearray`.
N)r r r r �bytesr r r r r r G s! � � � � � �� � �H�M�M�Mr r c � � e Zd ZdZdS )r z�
Interface for native strings.
On all Python versions, this is :class:`str`. On Python 2,
this extends :class:`IByteString`, while on Python 3 it extends
:class:`ITextString`.
N)r r r r r r r r r T s � � � � � �� � � r r c � � e Zd ZdZefZdS )r
z%
Interface for :class:`bool`
N)r r r r �boolr r r r r
r
` �! � � � � � �� � �G�M�M�Mr r
c � � e Zd ZdZefZdS )r z%
Interface for :class:`dict`
N)r r r r �dictr r r r r r g r( r r c �6 � e Zd ZdZ efZdS # e$ r dZY dS w xY w)r a�
Interface for :class:`file`.
It is recommended to use the interfaces from :mod:`zope.interface.common.io`
instead of this interface.
On Python 3, there is no single implementation of this interface;
depending on the arguments, the :func:`open` builtin can return
many different classes that implement different interfaces from
:mod:`zope.interface.common.io`.
r N)r r r r �filer � NameErrorr r r r r n sJ � � � � � �
�
����
�
�
��� � � ��
�
�
�
����s �
��r N)r �
__future__r �zope.interfacer �zope.interface.commonr r r �__all__�IMutableSequencer � ISequencer r
r �strr$ r � IIntegralr
�IMutableMappingr �IIOBaser r r r �<module>r8 s
��� � '� &� &� &� &� &� *� *� *� *� *� *� -� -� -� -� -� -� )� )� )� )� )� )� $� $� $� $� $� $� � � ��� � � � �K�(� � � �� � � � �[�
"� � � �(� (� (� (� (�+�'� (� (� (�
�
�
�
�
�+�)�
�
�
�� � � � �3�%�<�<�K�K�[� � � � ���]� #� #� #�� � � � �G�� � � �� � � � �K�'� � � �� � � � �B�J� � � � � r |