+
    -½iO  ã            	       óH  € R t ^ RIHt ^ RIHt  ! R R]4      t ! R R]P                  ]4      t ! R R]4      t ! R	 R
]P                  ]4      t
 ! R R]]
4      t ! R R]
4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]P                   ]]]]4      tR# )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                   ó*   a € ] tR t^#t o RtR tRtV tR# )ÚIItemMappingz%Simplest readable mapping object
    c                ó   € R# )zPGet 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__ÚIItemMapping.__getitem__'   ó   ‚ ó    r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r
   r   r   #   s   ø‡ € ñ÷ð r   r   c                   ó4   a € ] tR t^.t o RtRR ltR tRtV tR# )ÚIReadMappingzN
Basic mapping interface.

.. versionchanged:: 5.0.0
   Extend ``IContainer``
Nc                ó   € R# )zQGet a value for a key

The default is returned if there is no value for the key.
Nr   ©r	   Údefaults   &&r
   ÚgetÚIReadMapping.get6   r   r   c                ó   € R# )z$Tell if a key exists in the mapping.Nr   r   s   &r
   Ú__contains__ÚIReadMapping.__contains__<   r   r   r   ©N)	r   r   r   r   r   r   r    r   r   r   s   @r
   r   r   .   s   ø‡ € ñô÷3ð 3r   r   c                   ó0   a € ] tR t^At o RtR tR tRtV tR# )ÚIWriteMappingz!Mapping methods for changing datac                ó   € R# )z.Delete a value from the mapping using the key.Nr   r   s   &r
   Ú__delitem__ÚIWriteMapping.__delitem__D   r   r   c                ó   € R# )zSet a new item in the mapping.Nr   )r	   Úvalues   &&r
   Ú__setitem__ÚIWriteMapping.__setitem__G   r   r   r   N)	r   r   r   r   r   r&   r*   r   r   r   s   @r
   r$   r$   A   s   ø‡ € Ù+ò=÷-ð -r   r$   c                   ó<   a € ] tR t^Kt o RtR tR tR tR tRt	V t
R# )ÚIEnumerableMappingz`
Mapping objects whose items can be enumerated.

.. versionchanged:: 5.0.0
   Extend ``ISized``
c                 ó   € R# )z/Return the keys of the mapping object.
        Nr   r   r   r
   ÚkeysÚIEnumerableMapping.keysS   r   r   c                 ó   € R# )z?Return an iterator for the keys of the mapping object.
        Nr   r   r   r
   Ú__iter__ÚIEnumerableMapping.__iter__W   r   r   c                 ó   € R# )z1Return the values of the mapping object.
        Nr   r   r   r
   ÚvaluesÚIEnumerableMapping.values[   r   r   c                 ó   € R# )z0Return the items of the mapping object.
        Nr   r   r   r
   ÚitemsÚIEnumerableMapping.items_   r   r   r   N)r   r   r   r   r   r/   r2   r5   r8   r   r   r   s   @r
   r-   r-   K   s#   ø‡ € ñòòò÷ð r   r-   c                   ó   € ] tR t^dtRtRtR# )ÚIMappingzSimple mapping interface r   N©r   r   r   r   r   r   r   r   r
   r;   r;   d   s   † Ý$r   r;   c                   ó   € ] tR t^htRtRtR# )ÚIIterableMappingzDA mapping that has distinct methods for iterating
without copying.

r   Nr<   r   r   r
   r>   r>   h   s   † õr   r>   c                   ó*   a € ] tR t^ot o RtR tRtV tR# )ÚIClonableMappingzKSomething that can produce a copy of itself.

This is available in `dict`.
c                 ó   € R# )zreturn copy of dictNr   r   r   r
   ÚcopyÚIClonableMapping.copyu   r   r   r   N)r   r   r   r   r   rB   r   r   r   s   @r
   r@   r@   o   s   ø‡ € ñ÷
ð r   r@   c                   ó   € ] tR t^ytRtRtR# )Ú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.
r   Nr<   r   r   r
   rE   rE   y   s   † õr   rE   c                   óJ   a € ] tR t^‚t o RtR tR tR	R ltR	R ltR t	Rt
V tR# )
ÚIExtendedWriteMappingz@Additional mutation methods.

These are all provided by `dict`.
c                 ó   € R# )zdelete all itemsNr   r   r   r
   ÚclearÚIExtendedWriteMapping.clearˆ   r   r   c                ó   € R# )z/Update D from E: for k in E.keys(): D[k] = E[k]Nr   )Úds   &r
   ÚupdateÚIExtendedWriteMapping.update‹   r   r   Nc                ó   € R# )z@D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in DNr   r   s   &&r
   Ú
setdefaultÚ IExtendedWriteMapping.setdefaultŽ   r   r   c                ó   € R# )zÛ
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
   ÚpopÚIExtendedWriteMapping.pop‘   r   r   c                 ó   € R# )z]remove and return some (key, value) pair as a
2-tuple; but raise KeyError if mapping is emptyNr   r   r   r
   ÚpopitemÚIExtendedWriteMapping.popitemœ   r   r   r   r"   )r   r   r   r   r   rI   rM   rP   rT   rW   r   r   r   s   @r
   rG   rG   ‚   s)   ø‡ € ñò
ò;ôKô	÷;ð ;r   rG   c                   ó   € ] tR t^¡tRtRtR# )Ú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``
r   Nr<   r   r   r
   rZ   rZ   ¡   s   † õ	r   rZ   N)r   Úzope.interfacer   Úzope.interface.commonr   r   Ú
IContainerr   r$   ÚISizedr-   r;   r>   r@   rE   rG   ÚIMutableMappingrZ   r   r   r
   Ú<module>r`      s²   ðñõ" %Ý -ô�9ô ô3�;×)Ñ)¨<ô 3ô&-�Iô -ô˜×+Ñ+¨\ô ô2%ˆ}Ð0ô %ôÐ)ô ô�yô ôÐ+ô ô;˜Mô ;ô>Ø×ÑØØØØör   