Ë
    š”eˆ  ã                   ó¢  — d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	l	m
Z
 dd
l	mZ efdfd„Zg d¢Z G d„ de
«      Z G d„ de
«      Z G d„ de
«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de
«      Z G d„ deee«      Z G d„ dee«      Z G d „ d!e«      Z G d"„ d#e«      Z G d$„ d%e«      Z G d&„ d'e«      Z G d(„ d)e«      Z G d*„ d+e«      Z G d,„ d-e«      Z G d.„ d/ee«      Z G d0„ d1ee«      Z G d2„ d3ee«      Z  G d4„ d5e
«      Z! G d6„ d7e!«      Z" G d8„ d9e
«      Z# G d:„ d;e#«      Z$ G d<„ d=e$«      Z%y)>aó  
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
é    N)ÚABCMeta)Úabc)ÚOrderedDict)ÚUserList)ÚUserDict)Ú
UserString)ÚABCInterface)Úoptional© c                 ó~   — |rt        t        | «      S t        | |dd| z  i«      }|D ]  }|j                  |«       Œ |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   3   s^   € ñ Ü”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                   ó4   — e Zd Zej                  Zed„ «       Zy)r   c                  ó   — y)z¢
        Optional method. If not provided, the interpreter will use
        ``__iter__`` or the old ``__getitem__`` protocol
        to implement ``in``.
        Nr   ©Úothers    r   Ú__contains__zIContainer.__contains__c   ó   � r   N)Ú__name__Ú
__module__Ú__qualname__r   Ú	Containerr
   r4   r   r   r   r   r   `   s   „ Ø
�-‰-€Càñó ñr   r   c                   ó$   — e Zd Zej                  Zy)r!   N)r6   r7   r8   r   ÚHashabler   r   r   r!   r!   k   ó   „ Ø
�,‰,�Cr   r!   c                   ó4   — e Zd Zej                  Zed„ «       Zy)r#   c                   ó   — y©z‰
        Optional method. If not provided, the interpreter will
        implement `iter` using the old ``__getitem__`` protocol.
        Nr   r   r   r   Ú__iter__zIIterable.__iter__q   r5   r   N)r6   r7   r8   r   ÚIterabler
   r@   r   r   r   r#   r#   n   s   „ Ø
�,‰,€Càñó ñr   r#   c                   ó$   — e Zd Zej                  Zy)r$   N)r6   r7   r8   r   ÚIteratorr   r   r   r$   r$   x   r<   r   r$   c                   óN   — e Zd Z eddej                  «       f«      Zed„ «       Zy)r+   Ú
ReversibleTc                   ó   — y©z§
        Optional method. If this isn't present, the interpreter
        will use ``__len__`` and ``__getitem__`` to implement the
        `reversed` builtin.
        Nr   r   r   r   Ú__reversed__zIReversible.__reversed__~   r5   r   N)	r6   r7   r8   r   r#   ÚgetABCr   r
   rH   r   r   r   r+   r+   {   s.   „ Ù
�l D¨9×+;Ñ+;Ó+=Ð*?Ó
@€Càñó ñr   r+   c                   ó>   — e Zd Z eddej                  «       f«      Zy)r    Ú	GeneratorTN)r6   r7   r8   r   r$   rI   r   r   r   r   r    r    †   s   „ á
�k 4¨)×*:Ñ*:Ó*<Ð)>Ó
?�Cr   r    c                   ó$   — e Zd Zej                  Zy)r.   N)r6   r7   r8   r   ÚSizedr   r   r   r.   r.   ‹   s   „ Ø
�)‰)�Cr   r.   c                   óz   — e Zd Z eddej                  «       ej                  «       ej                  «       f«      Zy)r   Ú
CollectionTN)	r6   r7   r8   r   r.   rI   r#   r   r   r   r   r   r   r   ‘   s5   „ ñ �l DØ—}‘}“¨	×(8Ñ(8Ó(:¸J×<MÑ<MÓ<OÐPóR�Cr   r   c                   ó\   — e Zd Zej                  ZefZeeu re	fndZ
ed„ «       Zed„ «       Zy)r,   r   c                   ó   — yrG   r   r   r   r   rH   zISequence.__reversed__¡   r5   r   c                   ó   — yr?   r   r   r   r   r@   zISequence.__iter__©   r5   r   N)r6   r7   r8   r   ÚSequencer   Úextra_classesÚstrÚbytesÚ
basestringÚignored_classesr
   rH   r@   r   r   r   r,   r,   ˜   sI   „ à
�,‰,€CØ�M€Mð (+¨e¡|�z‘m¸€Oàñó ðð ñó ñr   r,   c                   ó*   — e Zd Zej                  ZefZy)r)   N)r6   r7   r8   r   ÚMutableSequencer   rT   r   r   r   r)   r)   °   s   „ Ø
×
Ñ
€CØ�K�Mr   r)   c                   óH   — e Zd ZdZ eddej                  «       feef«      Z	y)ÚIByteStringz/
    This unifies `bytes` and `bytearray`.
    Ú
ByteStringTN)
r6   r7   r8   r   r   r,   rI   rV   Ú	bytearrayr   r   r   r   r\   r\   µ   s.   „ ññ �l DØ ×'Ñ'Ó)Ð+Ø˜iÐ(ó*�Cr   r\   c                   ó$   — e Zd Zej                  Zy)r-   N)r6   r7   r8   r   ÚSetr   r   r   r-   r-   ¾   s   „ Ø
�'‰'�Cr   r-   c                   ó$   — e Zd Zej                  Zy)r*   N)r6   r7   r8   r   Ú
MutableSetr   r   r   r*   r*   Â   s   „ Ø
�.‰.�Cr   r*   c                   ó0   — e Zd Zej                  ZefZefZy)r&   N)	r6   r7   r8   r   ÚMappingÚdictrT   r   rX   r   r   r   r&   r&   Æ   s   „ Ø
�+‰+€CØ�G€Mð
 #�n�Or   r&   c                   ó2   — e Zd Zej                  ZeefZefZ	y)r(   N)
r6   r7   r8   r   ÚMutableMappingre   r   rT   r   rX   r   r   r   r(   r(   Ð   s   „ Ø
×
Ñ
€CØ˜8Ð%€MØ"�n�Or   r(   c                   ó$   — e Zd Zej                  Zy)r'   N)r6   r7   r8   r   ÚMappingViewr   r   r   r'   r'   Õ   s   „ Ø
�/‰/�Cr   r'   c                   ó$   — e Zd Zej                  Zy)r"   N)r6   r7   r8   r   Ú	ItemsViewr   r   r   r"   r"   Ù   s   „ Ø
�-‰-�Cr   r"   c                   ó$   — e Zd Zej                  Zy)r%   N)r6   r7   r8   r   ÚKeysViewr   r   r   r%   r%   Ý   r<   r   r%   c                   ó4   — e Zd Zej                  Zed„ «       Zy)r/   c                  ó   — y)z²
        Optional method. If not provided, the interpreter will use
        ``__iter__`` or the old ``__len__`` and ``__getitem__`` protocol
        to implement ``in``.
        Nr   r2   s    r   r4   zIValuesView.__contains__ä   r5   r   N)r6   r7   r8   r   Ú
ValuesViewr
   r4   r   r   r   r/   r/   á   s   „ Ø
�.‰.€Càñó ñr   r/   c                   ó   — e Zd Z edd«      Zy)r   Ú	AwaitableTN©r6   r7   r8   r   r   r   r   r   r   r   ì   ó   „ Ù
�k 4Ó
(�Cr   r   c                   ó   — e Zd Z edd«      Zy)r   Ú	CoroutineTNrs   r   r   r   r   r   ð   rt   r   r   c                   ó   — e Zd Z edd«      Zy)r   ÚAsyncIterableTNrs   r   r   r   r   r   ô   ó   „ Ù
�o tÓ
,�Cr   r   c                   ó   — e Zd Z edd«      Zy)r   ÚAsyncIteratorTNrs   r   r   r   r   r   ø   ry   r   r   c                   ó   — e Zd Z edd«      Zy)r   ÚAsyncGeneratorTNrs   r   r   r   r   r   ü   s   „ Ù
Ð&¨Ó
-�Cr   r   )&r   Úsysr   r   Úcollectionsr   r   r   r   Úzope.interface.commonr	   r
   r   Ú__all__r   r!   r#   r$   r+   r    r.   r   r,   r)   r\   r-   r*   r&   r(   r'   r"   r%   r/   r   r   r   r   r   r   r   r   ú<module>r‚      sp  ðñó* å Ý Ý #Ý  Ý  Ý "å .Ý *ð #* Ø$&óò&€ô4	�ô 	ô�ô ô�ô ô�	ô ô	�)ô 	ô@�ô @ô
ˆ\ô ôR�&ØØôRô�Øôô0 �yô  ô
*�)ô *ôˆ;ô ô�$ô ô%ˆ{ô %ô%�hô %ô
�6ô ô�˜tô ô�˜dô ô	�, ô 	ô)�ô )ô)�ô )ô-�\ô -ô-�^ô -ô.�nõ .r   