
    ]fV                    T    d dl mZ d dlZd dlZ G d deej        j                  ZdS )    )annotationsNc                  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     _/var/www/html/software/conda/lib/python3.11/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__6   s    &33D%@@@r   c                T    t          t          t          |                               S r   )lenr   r   )r   s    r   __len__zDictStack.__len__9   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   )
__future__r   r    r   r   r!   r"   r   r.   r   r   <module>r0      sj    " " " " " "        2% 2% 2% 2% 2%ko- 2% 2% 2% 2% 2%r   