�
JDvc� � � � d Z ddlmZ ddlZddlmZ ddlmZ n# e$ r ddlZY nw xY wddlmZ ddlm Z ddlm
Z
dd lmZ n# e$ r ddl m Z dd
l
mZ
dd lmZ Y nw xY wddl
mZ ddl
mZ dd
lmZ ddlmZ ej dd� dk Zej dd� dk Zefdfd�Zg d�Z G d� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� d e� � Z G d!� d"e� � Z G d#� d$e ee� � Z! G d%� d&ee!� � Z" G d'� d(e"� � Z# G d)� d*e"� � Z$ G d+� d,e!� � Z% G d-� d.e%� � Z& G d/� d0e!� � Z' G d1� d2e'� � Z( G d3� d4e � � Z) G d5� d6e)e%� � Z* G d7� d8e)e%� � Z+ G d9� d:e)e!� � Z, G d;� d<e� � Z- G d=� d>e-� � Z. G d?� d@e� � Z/ G dA� dBe/� � Z0 G dC� dDe0� � Z1dS )Ea�
Interface definitions paralleling the abstract base classes defined in
:mod:`collections.abc`.
After this module is imported, the standard library types will declare
that they implement the appropriate interface. While most standard
library types will properly implement that interface (that
is, ``verifyObject(ISequence, list()))`` will pass, for example), a few might not:
- `memoryview` doesn't feature all the defined methods of
``ISequence`` such as ``count``; it is still declared to provide
``ISequence`` though.
- `collections.deque.pop` doesn't accept the ``index`` argument of
`collections.abc.MutableSequence.pop`
- `range.index` does not accept the ``start`` and ``stop`` arguments.
.. versionadded:: 5.0.0
� )�absolute_importN)�ABCMeta)�abc)�OrderedDict)�UserList)�UserDict)�
UserString)�IterableUserDict)�PYTHON2)�PYTHON3)�ABCInterface)�optional� )� � )r � � c � � |rt t | � � S t | |dd| z i� � }|D ]}|� |� � �|S )N�__doc__z4The ABC %s is not defined in this version of Python.)�getattrr r �register)�name�ver�bases_if_missing�register_if_missing�missing�cs �C/usr/lib/python3/dist-packages/zope/interface/common/collections.py�_new_in_verr J sr � � � "��s�D�!�!�!� �d�,��I��
�/� � �G� !� � �����������N� )�IAsyncGenerator�IAsyncIterable�IAsyncIterator�
IAwaitable�ICollection�
IContainer�
ICoroutine�
IGenerator� IHashable�
IItemsView� IIterable� IIterator� IKeysView�IMapping�IMappingView�IMutableMapping�IMutableSequence�IMutableSet�IReversible� ISequence�ISet�ISized�IValuesViewc �2 � e Zd Zej Zed� � � ZdS )r& |