a
    Ô×0hø  ã                   @   s8   d dl Z d dlZG dd„ de jƒZG dd„ dejƒZdS )é    Nc                       s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚFreezableDefaultDicta!  
    Often it is desirable to prevent the mutation of
    a default dict after its initial construction, such
    as to prevent mutation during iteration.

    >>> dd = FreezableDefaultDict(list)
    >>> dd[0].append('1')
    >>> dd.freeze()
    >>> dd[1]
    []
    >>> len(dd)
    1
    c                    s   t | dtƒ jƒ|ƒS )NÚ_frozen)ÚgetattrÚsuperÚ__missing__)ÚselfÚkey©Ú	__class__© úM/var/www/auris/lib/python3.9/site-packages/importlib_metadata/_collections.pyr      s    z FreezableDefaultDict.__missing__c                    s   ‡ fdd„ˆ _ d S )Nc                    s   ˆ   ¡ S )N)Údefault_factory)r   ©r   r   r   Ú<lambda>   ó    z-FreezableDefaultDict.freeze.<locals>.<lambda>)r   r   r   r   r   Úfreeze   s    zFreezableDefaultDict.freeze)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__classcell__r   r   r	   r   r      s   r   c                   @   s*   e Zd ZU eed< eed< edd„ ƒZdS )ÚPairÚnameÚvaluec                 C   s   | t tj| dd¡ƒŽ S )Nú=é   )ÚmapÚstrÚstripÚsplit)ÚclsÚtextr   r   r   Úparse    s    z
Pair.parseN)r   r   r   r   Ú__annotations__Úclassmethodr"   r   r   r   r   r      s   
r   )ÚcollectionsÚtypingÚdefaultdictr   Ú
NamedTupler   r   r   r   r   Ú<module>   s   