HEX
Server: Apache/2.4.65 (Debian)
System: Linux kubikelcreative 5.10.0-35-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64
User: www-data (33)
PHP: 8.4.13
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/zope/interface/common/__pycache__/collections.cpython-39.pyc
a

��_��@s�dZddlmZddlZddlmZzddlmZWneyNddlZYn0ddlmZz(ddlm	Z	ddlm
Z
dd	lmZWn6ey�ddl	m	Z	dd
l
mZ
dd	lmZYn0ddl
mZddl
mZdd
lmZddlmZejdd�dkZejdd�dkZefdfdd�Zgd�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGd d!�d!e�ZGd"d#�d#e�Z Gd$d%�d%e ee�Z!Gd&d'�d'ee!�Z"Gd(d)�d)e"�Z#Gd*d+�d+e"�Z$Gd,d-�d-e!�Z%Gd.d/�d/e%�Z&Gd0d1�d1e!�Z'Gd2d3�d3e'�Z(Gd4d5�d5e �Z)Gd6d7�d7e)e%�Z*Gd8d9�d9e)e%�Z+Gd:d;�d;e)e!�Z,Gd<d=�d=e�Z-Gd>d?�d?e-�Z.Gd@dA�dAe�Z/GdBdC�dCe/�Z0GdDdE�dEe0�Z1dS)Fa�
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��cCs:|rtt|�St||dd|i�}|D]}|�|�q&|S)N�__doc__z4The ABC %s is not defined in this version of Python.)�getattrrr�register)�nameZverZbases_if_missingZregister_if_missingZmissing�crr�C/usr/lib/python3/dist-packages/zope/interface/common/collections.py�_new_in_verJs
��r)�IAsyncGenerator�IAsyncIterable�IAsyncIterator�
IAwaitable�ICollection�
IContainer�
ICoroutine�
IGenerator�	IHashable�
IItemsView�	IIterable�	IIterator�	IKeysView�IMapping�IMappingView�IMutableMapping�IMutableSequence�IMutableSet�IReversible�	ISequence�ISet�ISized�IValuesViewc@seZdZejZedd��ZdS)rcCsdS)z�
        Optional method. If not provided, the interpreter will use
        ``__iter__`` or the old ``__getitem__`` protocol
        to implement ``in``.
        Nr��otherrrr�__contains__zszIContainer.__contains__N)�__name__�
__module__�__qualname__r�	Containerr
r3rrrrrwsrc@seZdZejZdS)r"N)r4r5r6r�Hashablerrrrr"�sr"c@seZdZejZedd��ZdS)r$cCsdS�z�
        Optional method. If not provided, the interpreter will
        implement `iter` using the old ``__getitem__`` protocol.
        Nrrrrr�__iter__�szIIterable.__iter__N)r4r5r6r�Iterabler
r:rrrrr$�sr$c@seZdZejZdS)r%N)r4r5r6r�Iteratorrrrrr%�sr%c@s*eZdZedee��f�Zedd��Z	dS)r,�
ReversiblecCsdS�z�
        Optional method. If this isn't present, the interpreter
        will use ``__len__`` and ``__getitem__`` to implement the
        `reversed` builtin.
        Nrrrrr�__reversed__�szIReversible.__reversed__N)
r4r5r6r�PY36r$�getABCrr
r?rrrrr,�sr,c@seZdZedee��f�ZdS)r!�	GeneratorN)r4r5r6r�PY35r%rArrrrrr!�sr!c@seZdZejZdS)r/N)r4r5r6r�Sizedrrrrr/�sr/c@s*eZdZedee��e��e��f�Z	dS)r�
CollectionN)
r4r5r6rr@r/rAr$rrrrrrr�s�rc@sBeZdZejZefZeeur"e	fndZ
edd��Zedd��Z
dS)r-rcCsdSr>rrrrrr?�szISequence.__reversed__cCsdSr9rrrrrr:�szISequence.__iter__N)r4r5r6r�Sequencer�
extra_classes�str�bytesZ
basestring�ignored_classesr
r?r:rrrrr-�s
r-c@seZdZejZefZdS)r*N)r4r5r6r�MutableSequencerrGrrrrr*�sr*c@s(eZdZdZedee��fee	f�Z
dS)�IByteStringz/
    This unifies `bytes` and `bytearray`.
    �
ByteStringN)r4r5r6rr�PY3r-rArI�	bytearrayrrrrrrL�s
�rLc@seZdZejZdS)r.N)r4r5r6r�Setrrrrr.�sr.c@seZdZejZdS)r+N)r4r5r6r�
MutableSetrrrrr+�sr+c@s2eZdZejZefZefZe	r.e
dd��ZeZdS)r'cCsdS)z:
            The interpreter will supply one.
            Nrr1rrr�__eq__�szIMapping.__eq__N)
r4r5r6r�Mapping�dictrGrrJ�PY2r
rR�__ne__rrrrr'�s
r'c@s eZdZejZeefZefZ	dS)r)N)
r4r5r6r�MutableMappingrTrrGrrJrrrrr)�sr)c@seZdZejZdS)r(N)r4r5r6r�MappingViewrrrrr(�sr(c@seZdZejZdS)r#N)r4r5r6r�	ItemsViewrrrrr#�sr#c@seZdZejZdS)r&N)r4r5r6r�KeysViewrrrrr&�sr&c@seZdZejZedd��ZdS)r0cCsdS)z�
        Optional method. If not provided, the interpreter will use
        ``__iter__`` or the old ``__len__`` and ``__getitem__`` protocol
        to implement ``in``.
        Nrr1rrrr3szIValuesView.__contains__N)r4r5r6r�
ValuesViewr
r3rrrrr0sr0c@seZdZede�ZdS)r�	AwaitableN�r4r5r6rrCrrrrrrsrc@seZdZede�ZdS)r �	CoroutineNr]rrrrr sr c@seZdZede�ZdS)r�
AsyncIterableNr]rrrrrsrc@seZdZede�ZdS)r�
AsyncIteratorNr]rrrrrsrc@seZdZede�ZdS)r�AsyncGeneratorN)r4r5r6rr@rrrrrrsr)2rZ
__future__r�sysrr�collections�ImportErrorrrrrr	Zzope.interface._compatr
rUrrNZzope.interface.commonrr
�version_inforCr@r�__all__rr"r$r%r,r!r/rr-r*rLr.r+r'r)r(r#r&r0rr rrrrrrr�<module>sn�

��