Ë
    š”eE  ã            	       óF  — d Z ddlmZ ddlmZ  G d„ de«      Z G d„ dej                  e«      Z G d„ d	e«      Z G d
„ dej                  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j                   eeee«      Zy)ah  
Mapping Interfaces.

Importing this module does *not* mark any standard classes as
implementing any of these interfaces.

While this module is not deprecated, new code should generally use
:mod:`zope.interface.common.collections`, specifically
:class:`~zope.interface.common.collections.IMapping` and
:class:`~zope.interface.common.collections.IMutableMapping`. This
module is occasionally useful for its extremely fine grained breakdown
of interfaces.

The standard library :class:`dict` and :class:`collections.UserDict`
implement ``IMutableMapping``, but *do not* implement any of the
interfaces in this module.
é    )Ú	Interface)Úcollectionsc                   ó   — e Zd ZdZd„ Zy)ÚIItemMappingz%Simplest readable mapping object
    c                  ó   — y)z`Get a value for a key

        A `KeyError` is raised if there is no value for the key.
        N© ©Úkeys    ú?/usr/lib/python3/dist-packages/zope/interface/common/mapping.pyÚ__getitem__zIItemMapping.__getitem__&   ó   � ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   "   s   „ ñór   r   c                   ó   — e Zd ZdZdd„Zd„ Zy)ÚIReadMappingz^
    Basic mapping interface.

    .. versionchanged:: 5.0.0
       Extend ``IContainer``
    Nc                  ó   — y)zaGet a value for a key

        The default is returned if there is no value for the key.
        Nr   ©r
   Údefaults     r   ÚgetzIReadMapping.get5   r   r   c                  ó   — y)z$Tell if a key exists in the mapping.Nr   r	   s    r   Ú__contains__zIReadMapping.__contains__;   r   r   ©N)r   r   r   r   r   r   r   r   r   r   r   -   s   „ ñóó3r   r   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚIWriteMappingz!Mapping methods for changing datac                  ó   — y)z.Delete a value from the mapping using the key.Nr   r	   s    r   Ú__delitem__zIWriteMapping.__delitem__C   r   r   c                  ó   — y)zSet a new item in the mapping.Nr   )r
   Úvalues     r   Ú__setitem__zIWriteMapping.__setitem__F   r   r   N)r   r   r   r   r   r"   r   r   r   r   r   @   s   „ Ù+ò=ó-r   r   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚIEnumerableMappingzp
    Mapping objects whose items can be enumerated.

    .. versionchanged:: 5.0.0
       Extend ``ISized``
    c                   ó   — y)z/Return the keys of the mapping object.
        Nr   r   r   r   ÚkeyszIEnumerableMapping.keysR   r   r   c                   ó   — y)z?Return an iterator for the keys of the mapping object.
        Nr   r   r   r   Ú__iter__zIEnumerableMapping.__iter__V   r   r   c                   ó   — y)z1Return the values of the mapping object.
        Nr   r   r   r   ÚvalueszIEnumerableMapping.valuesZ   r   r   c                   ó   — y)z0Return the items of the mapping object.
        Nr   r   r   r   ÚitemszIEnumerableMapping.items^   r   r   N)r   r   r   r   r&   r(   r*   r,   r   r   r   r$   r$   J   s   „ ñòòòór   r$   c                   ó   — e Zd ZdZy)ÚIMappingz Simple mapping interface N©r   r   r   r   r   r   r   r.   r.   b   s   „ Ú$r   r.   c                   ó   — e Zd ZdZy)ÚIIterableMappingzLA mapping that has distinct methods for iterating
    without copying.

    Nr/   r   r   r   r1   r1   e   s   „ òr   r1   c                   ó   — e Zd ZdZd„ Zy)ÚIClonableMappingzSSomething that can produce a copy of itself.

    This is available in `dict`.
    c                   ó   — y)zreturn copy of dictNr   r   r   r   ÚcopyzIClonableMapping.copyr   r   r   N)r   r   r   r   r5   r   r   r   r3   r3   l   s   „ ñó
r   r3   c                   ó   — e Zd ZdZy)ÚIExtendedReadMappingzª
    Something with a particular method equivalent to ``__contains__``.

    On Python 2, `dict` provided the ``has_key`` method, but it was removed
    in Python 3.
    Nr/   r   r   r   r7   r7   u   s   „ òr   r7   c                   ó2   — e Zd ZdZd„ Zd„ Zdd„Zdd„Zd„ Zy)	ÚIExtendedWriteMappingzHAdditional mutation methods.

    These are all provided by `dict`.
    c                   ó   — y)zdelete all itemsNr   r   r   r   ÚclearzIExtendedWriteMapping.clear„   r   r   c                  ó   — y)z0 Update D from E: for k in E.keys(): D[k] = E[k]Nr   )Úds    r   ÚupdatezIExtendedWriteMapping.update‡   r   r   Nc                  ó   — y)z@D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in DNr   r   s     r   Ú
setdefaultz IExtendedWriteMapping.setdefaultŠ   r   r   c                  ó   — y)a  
        pop(k[,default]) -> value

        Remove specified key and return the corresponding value.

        If key is not found, *default* is returned if given, otherwise
        `KeyError` is raised. Note that *default* must not be passed by
        name.
        Nr   )Úkr   s     r   ÚpopzIExtendedWriteMapping.pop�   r   r   c                   ó   — y)zeremove and return some (key, value) pair as a
        2-tuple; but raise KeyError if mapping is emptyNr   r   r   r   ÚpopitemzIExtendedWriteMapping.popitem˜   r   r   r   )	r   r   r   r   r;   r>   r@   rC   rE   r   r   r   r9   r9   ~   s!   „ ñò
ò;óKó	ó;r   r9   c                   ó   — e Zd ZdZy)ÚIFullMappinga$  
    Full mapping interface.

    Most uses of this interface should instead use
    :class:`~zope.interface.commons.collections.IMutableMapping` (one of the
    bases of this interface). The required methods are the same.

    .. versionchanged:: 5.0.0
       Extend ``IMutableMapping``
    Nr/   r   r   r   rG   rG   œ   s   „ ò	r   rG   N)r   Úzope.interfacer   Úzope.interface.commonr   r   Ú
IContainerr   r   ÚISizedr$   r.   r1   r3   r7   r9   ÚIMutableMappingrG   r   r   r   ú<module>rM      s±   ðñõ" %Ý -ô�9ô ô3�;×)Ñ)¨<ô 3ô&-�Iô -ô˜×+Ñ+¨\ô ô0%ˆ}Ð0ô %ôÐ)ô ô�yô ôÐ+ô ô;˜Mô ;ô<Ø×#Ñ#ØÐ3Ð5EÀxõr   