ó
    Ï›‘h   ã            	       óF  • S r SSKJr  SSKJr   " S S\5      r " S S\R                  \5      r " S S	\5      r " S
 S\R                  \5      r
 " S S\\
5      r " S S\
5      r " S S\5      r " S S\5      r " S S\5      r " S S\R                   \\\\5      rg)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                   ó   • \ rS rSrSrS rSrg)ÚIItemMappingé#   z%Simplest readable mapping object
    c                 ó   • g)zPGet a value for a key

A `KeyError` is raised if there is no value for the key.
N© ©Úkeys    ÚaC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\zope/interface/common/mapping.pyÚ__getitem__ÚIItemMapping.__getitem__'   ó   � ó    r	   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__static_attributes__r	   r   r   r   r   #   s   † ñõr   r   c                   ó(   • \ rS rSrSrSS jrS rSrg)ÚIReadMappingé.   zN
Basic mapping interface.

.. versionchanged:: 5.0.0
   Extend ``IContainer``
Nc                 ó   • g)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                 ó   • g)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   r   r   r   .   s   † ñôõ3r   r   c                   ó$   • \ rS rSrSrS rS rSrg)ÚIWriteMappingéA   z!Mapping methods for changing datac                 ó   • g)z.Delete a value from the mapping using the key.Nr	   r
   s    r   Ú__delitem__ÚIWriteMapping.__delitem__D   r   r   c                 ó   • g)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   r   r$   r$   A   s   † Ù+ò=õ-r   r$   c                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	ÚIEnumerableMappingéK   z`
Mapping objects whose items can be enumerated.

.. versionchanged:: 5.0.0
   Extend ``ISized``
c                  ó   • g)z/Return the keys of the mapping object.
        Nr	   r	   r   r   ÚkeysÚIEnumerableMapping.keysS   r   r   c                  ó   • g)z?Return an iterator for the keys of the mapping object.
        Nr	   r	   r   r   Ú__iter__ÚIEnumerableMapping.__iter__W   r   r   c                  ó   • g)z1Return the values of the mapping object.
        Nr	   r	   r   r   ÚvaluesÚIEnumerableMapping.values[   r   r   c                  ó   • g)z0Return the items of the mapping object.
        Nr	   r	   r   r   ÚitemsÚIEnumerableMapping.items_   r   r   r	   N)
r   r   r   r   r   r1   r4   r7   r:   r   r	   r   r   r.   r.   K   s   † ñòòòõr   r.   c                   ó   • \ rS rSrSrSrg)ÚIMappingéd   zSimple mapping interface r	   N©r   r   r   r   r   r   r	   r   r   r=   r=   d   s   † Ü$r   r=   c                   ó   • \ rS rSrSrSrg)ÚIIterableMappingéh   zDA mapping that has distinct methods for iterating
without copying.

r	   Nr?   r	   r   r   rA   rA   h   s   † ôr   rA   c                   ó   • \ rS rSrSrS rSrg)ÚIClonableMappingéo   zKSomething that can produce a copy of itself.

This is available in `dict`.
c                  ó   • g)zreturn copy of dictNr	   r	   r   r   ÚcopyÚIClonableMapping.copyu   r   r   r	   N)r   r   r   r   r   rG   r   r	   r   r   rD   rD   o   s   † ñõ
r   rD   c                   ó   • \ rS rSrSrSrg)ÚIExtendedReadMappingéy   zš
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   rJ   rJ   y   s   † ôr   rJ   c                   ó>   • \ rS rSrSrS rS rS
S jrS
S jrS r	S	r
g)ÚIExtendedWriteMappingé‚   z@Additional mutation methods.

These are all provided by `dict`.
c                  ó   • g)zdelete all itemsNr	   r	   r   r   ÚclearÚIExtendedWriteMapping.clearˆ   r   r   c                 ó   • g)z/Update D from E: for k in E.keys(): D[k] = E[k]Nr	   )Úds    r   ÚupdateÚIExtendedWriteMapping.update‹   r   r   Nc                 ó   • g)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                 ó   • g)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                  ó   • g)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   rP   rT   rW   r[   r^   r   r	   r   r   rM   rM   ‚   s!   † ñò
ò;ôKô	õ;r   rM   c                   ó   • \ rS rSrSrSrg)ÚIFullMappingé¡   a  
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   ra   ra   ¡   s   † ô	r   ra   N)r   Úzope.interfacer   Úzope.interface.commonr   r   Ú
IContainerr   r$   ÚISizedr.   r=   rA   rD   rJ   rM   ÚIMutableMappingra   r	   r   r   Ú<module>rh      s²   ðñõ" %Ý -ô�9ô ô3�;×)Ñ)¨<ô 3ô&-�Iô -ô˜×+Ñ+¨\ô ô2%ˆ}Ð0ô %ôÐ)ô ô�yô ôÐ+ô ô;˜Mô ;ô>Ø×ÑØØØØõr   