
    09oe2                     H    d dl Z d dlZ G d dee j        j                  ZdS )    Nc                   8    e Zd ZdZd Zd Zej        Zd Z	d Z
dS )	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                               |           }t          t          t          j                            d |D                                           S )Nc              3   >   K   | ]}|                                 V  d S N)keys).0cs     [D:\Python Project\StaffProfile\venv\Lib\site-packages\setuptools/_distutils/_collections.py	<genexpr>z%DictStack.__iter__.<locals>.<genexpr>*   s*      5N5N1affhh5N5N5N5N5N5N    )list__iter__iterset	itertoolschainfrom_iterable)selfdictss     r   r   zDictStack.__iter__(   sH    d##C	555N5N5N5N5NNNOOPPPr   c                     t          t          t                              |                               D ]}||v r
||         c S t	          |          r   )reversedtupler   r   KeyError)r   keyscopes      r   __getitem__zDictStack.__getitem__,   sW    eDMM$$7$78899 	" 	"Ee||Sz!!! smmr   c                 L    t           j        j                            | |          S r   )collectionsabcMapping__contains__)r   others     r   r"   zDictStack.__contains__4   s    &33D%@@@r   c                 T    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      sj         BQ Q Q   ;DA A A% % % % %r   r   )r   r   r   r    r!   r   r-   r   r   <module>r.      sX           2% 2% 2% 2% 2%ko- 2% 2% 2% 2% 2%r   