ง
    วtบfO  ใ            	       ๓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dS )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dS )ฺIItemMappingz%Simplest readable mapping object
    c                 ๓    dS )z`Get a value for a key

        A `KeyError` is raised if there is no value for the key.
        Nฉ ฉฺkeys    ๚\/var/www/surfInsights/venv3-11/lib/python3.11/site-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dS )ฺIReadMappingz^
    Basic mapping interface.

    .. versionchanged:: 5.0.0
       Extend ``IContainer``
    Nc                 ๓    dS )zaGet a value for a key

        The default is returned if there is no value for the key.
        Nr   ฉr
   ฺdefaults     r   ฺgetzIReadMapping.get6   r   r   c                 ๓    dS )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   .   sA        ๐๐ ๐๐ ๐ ๐ ๐3๐ 3๐ 3๐ 3๐ 3r   r   c                   ๓    e Zd ZdZd Zd ZdS )ฺIWriteMappingz!Mapping methods for changing datac                 ๓    dS )z.Delete a value from the mapping using the key.Nr   r	   s    r   ฺ__delitem__zIWriteMapping.__delitem__D   r   r   c                 ๓    dS )zSet a new item in the mapping.Nr   )r
   ฺvalues     r   ฺ__setitem__zIWriteMapping.__setitem__G   r   r   N)r   r   r   r   r   r"   r   r   r   r   r   A   s8        ุ+ะ+๐=๐ =๐ =๐-๐ -๐ -๐ -๐ -r   r   c                   ๓*    e Zd ZdZd Zd Zd Zd ZdS )ฺIEnumerableMappingzp
    Mapping objects whose items can be enumerated.

    .. versionchanged:: 5.0.0
       Extend ``ISized``
    c                  ๓    dS )z/Return the keys of the mapping object.
        Nr   r   r   r   ฺkeyszIEnumerableMapping.keysS   r   r   c                  ๓    dS )z?Return an iterator for the keys of the mapping object.
        Nr   r   r   r   ฺ__iter__zIEnumerableMapping.__iter__W   r   r   c                  ๓    dS )z1Return the values of the mapping object.
        Nr   r   r   r   ฺvalueszIEnumerableMapping.values[   r   r   c                  ๓    dS )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$   K   sZ        ๐๐ ๐๐ ๐ ๐๐ ๐ ๐๐ ๐ ๐๐ ๐ ๐ ๐ r   r$   c                   ๓    e Zd ZdZdS )ฺIMappingz Simple mapping interface Nฉr   r   r   r   r   r   r   r.   r.   d   s        ุ$ะ$ะ$ะ$r   r.   c                   ๓    e Zd ZdZdS )ฺIIterableMappingzLA mapping that has distinct methods for iterating
    without copying.

    Nr/   r   r   r   r1   r1   h   s        ๐๐ ๐ ๐ r   r1   c                   ๓    e Zd ZdZd ZdS )ฺIClonableMappingzSSomething that can produce a copy of itself.

    This is available in `dict`.
    c                  ๓    dS )zreturn copy of dictNr   r   r   r   ฺcopyzIClonableMapping.copyu   r   r   N)r   r   r   r   r5   r   r   r   r3   r3   o   s-        ๐๐ ๐
๐ ๐ ๐ ๐ r   r3   c                   ๓    e Zd ZdZdS )ฺ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   y   s        ๐๐ ๐ ๐ r   r7   c                   ๓4    e Zd ZdZd Zd ZddZddZd ZdS )	ฺIExtendedWriteMappingzHAdditional mutation methods.

    These are all provided by `dict`.
    c                  ๓    dS )zdelete all itemsNr   r   r   r   ฺclearzIExtendedWriteMapping.clear   r   r   c                 ๓    dS )z0 Update D from E: for k in E.keys(): D[k] = E[k]Nr   )ฺds    r   ฺupdatezIExtendedWriteMapping.update   r   r   Nc                 ๓    dS )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                 ๓    dS )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                  ๓    dS )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      sw        ๐๐ ๐
๐ ๐ ๐;๐ ;๐ ;๐K๐ K๐ K๐ K๐	๐ 	๐ 	๐ 	๐;๐ ;๐ ;๐ ;๐ ;r   r9   c                   ๓    e Zd ZdZdS )ฺ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๐ 3๐ 3๐ 3;ิ)จ<๑ 3๔ 3๐ 3๐&-๐ -๐ -๐ -๐ -I๑ -๔ -๐ -๐๐ ๐ ๐ ๐ ิ+จ\๑ ๔ ๐ ๐2%๐ %๐ %๐ %๐ %}ะ0๑ %๔ %๐ %๐๐ ๐ ๐ ๐ ะ)๑ ๔ ๐ ๐๐ ๐ ๐ ๐ y๑ ๔ ๐ ๐๐ ๐ ๐ ๐ ะ+๑ ๔ ๐ ๐;๐ ;๐ ;๐ ;๐ ;M๑ ;๔ ;๐ ;๐>๐ ๐ ๐ ๐ ุิุุุุ๑๔ ๐ ๐ ๐ r   