§
    ß·id  ã                  óÀ   — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	  G d„ d	ej
        ee	f         ¦  «        Z G d
„ deee	f         ej        ee	f         ¦  «        ZdS )z>Provide the :class:`BidirectionalMapping` abstract base class.é    )ÚannotationsN)Úabstractmethodé   )ÚKT)ÚVTc                  óF   — e Zd ZdZdZeed	d„¦   «         ¦   «         Zd
d„ZdS )ÚBidirectionalMappingaE  Abstract base class for bidirectional mapping types.

    Extends :class:`collections.abc.Mapping` primarily by adding the
    (abstract) :attr:`inverse` property,
    which implementers of :class:`BidirectionalMapping`
    should override to return a reference to the inverse
    :class:`BidirectionalMapping` instance.
    © ÚreturnúBidirectionalMapping[VT, KT]c                ó   — t           ‚)zÝThe inverse of this bidirectional mapping instance.

        *See also* :attr:`bidict.BidictBase.inverse`, :attr:`bidict.BidictBase.inv`

        :raises NotImplementedError: Meant to be overridden in subclasses.
        )ÚNotImplementedError©Úselfs    úP/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/bidict/_abc.pyÚinversezBidirectionalMapping.inverse&   s
   € õ "Ð!ó    út.Iterator[tuple[VT, KT]]c                óN   — t          | j                             ¦   «         ¦  «        S )a  Get an iterator over the items in :attr:`inverse`.

        This is functionally equivalent to iterating over the items in the
        forward mapping and inverting each one on the fly, but this provides a
        more efficient implementation: Assuming the already-inverted items
        are stored in :attr:`inverse`, just return an iterator over them directly.

        Providing this default implementation enables external functions,
        particularly :func:`~bidict.inverted`, to use this optimized
        implementation when available, instead of having to invert on the fly.

        *See also* :func:`bidict.inverted`
        )Úiterr   Úitemsr   s    r   Ú__inverted__z!BidirectionalMapping.__inverted__5   s    € õ �D”L×&Ò&Ñ(Ô(Ñ)Ô)Ð)r   N)r   r   )r   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Úpropertyr   r   r   r
   r   r   r	   r	      sa   € € € € € ðð ð €IàØð"ð "ð "ñ „^ñ „Xð"ð*ð *ð *ð *ð *ð *r   r	   c                  ó   — e Zd ZdZdZdS )ÚMutableBidirectionalMappingz<Abstract base class for mutable bidirectional mapping types.r
   N)r   r   r   r   r   r
   r   r   r    r    F   s   € € € € € ØFÐFà€I€I€Ir   r    )r   Ú
__future__r   ÚtypingÚtÚabcr   Ú_typingr   r   ÚMappingr	   ÚMutableMappingr    r
   r   r   ú<module>r(      sç   ðð EÐ Dà "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð)*ð )*ð )*ð )*ð )*˜1œ9 R¨ VÔ,ñ )*ô )*ð )*ðXð ð ð ð Ð"6°r¸2°vÔ">ÀÔ@PÐQSÐUWÐQWÔ@Xñ ô ð ð ð r   