
    df2                     T    d dl Z d dlZ G d dee j                  j                        Zy)    Nc                   @    e Zd ZdZd Zd Zej                  Zd Z	d Z
y)	DictStacka  
    A stack of dictionaries that behaves as a view on those dictionaries,
    giving preference to the last.

    >>> stack = DictStack([dict(a=1, c=2), dict(b=2, a=2)])
    >>> stack['a']
    2
    >>> stack['b']
    2
    >>> stack['c']
    2
    >>> len(stack)
    3
    >>> stack.push(dict(a=3))
    >>> stack['a']
    3
    >>> set(stack.keys()) == set(['a', 'b', 'c'])
    True
    >>> set(stack.items()) == set([('a', 3), ('b', 2), ('c', 2)])
    True
    >>> dict(**stack) == dict(stack) == dict(a=3, c=2, b=2)
    True
    >>> d = stack.pop()
    >>> stack['a']
    2
    >>> d = stack.pop()
    >>> stack['a']
    1
    >>> stack.get('b', None)
    >>> 'c' in stack
    True
    c                     t         j                  |       }t        t        t        j
                  j                  d |D                          S )Nc              3   <   K   | ]  }|j                           y wN)keys).0cs     [/home/api-vastappli/venv/lib/python3.12/site-packages/setuptools/_distutils/_collections.py	<genexpr>z%DictStack.__iter__.<locals>.<genexpr>*   s     5N1affh5Ns   )list__iter__iterset	itertoolschainfrom_iterable)selfdictss     r   r   zDictStack.__iter__(   s5    d#C	555N5NNOPP    c                     t        t        t        j                  |                   D ]  }||v s||   c S  t	        |      r   )reversedtupler   r   KeyError)r   keyscopes      r   __getitem__zDictStack.__getitem__,   sA    eDMM$$789 	"Ee|Sz!	" smr   c                 V    t         j                  j                  j                  | |      S r   )collectionsabcMapping__contains__)r   others     r   r"   zDictStack.__contains__4   s    &&33D%@@r   c                 <    t        t        t        |                   S r   )lenr   r   )r   s    r   __len__zDictStack.__len__7   s    4T
#$$r   N)__name__
__module____qualname____doc__r   r   r   appendpushr"   r&    r   r   r   r      s)    BQ ;;DA%r   r   )r   r   r   r    r!   r   r-   r   r   <module>r.      s#     2%koo-- 2%r   