
    ?wg                     V    	 d dl mZ d dlmZ  G d de      Zy# e$ r	 d dlmZ Y w xY w)    )MutableMapping)chainc                   R    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 ZeZd ZeZy)ChainedDictNc                 >    || _         t               | _        || _        y N)_ChainedDict__parentset_ChainedDict__deleted_keys_ChainedDict__data)selfparentkwargss      O/var/www/horilla/myenv/lib/python3.12/site-packages/utils/dicts/chained_dict.py__init__zChainedDict.__init__
   s    !e    c                     | j                   .|| j                  v xs || j                   v xr || j                  vS || j                  v S r   )r	   r   r   r   keys     r   __contains__zChainedDict.__contains__   sO    ==$#;sdmm'; 3t222 dkk!!r   c                     	 | j                   |   S # t        $ r- | j                  || j                  vr| j                  |   cY S  w xY wr   )r   KeyErrorr	   r   r   s     r   __getitem__zChainedDict.__getitem__   sN    	;;s## 	}}(S8K8K-K}}S))		s    2AAc                 X    || j                   |<   | j                  j                  |       y r   )r   r   discard)r   r   vals      r   __setitem__zChainedDict.__setitem__    s$    C##C(r   c                     || v r*| j                   j                  |       	 | j                  |= y t        |      # t        $ r Y y w xY wr   )r   addr   r   r   s     r   __delitem__zChainedDict.__delitem__$   sN    $;##C(KK$ 3-  s   : 	AAc                 |    dj                  | j                  j                  t        | j	                                     S )Nz{}({}))format	__class____name__dictitemsr   s    r   __repr__zChainedDict.__repr__.   s(    t~~66TZZ\8JKKr   c                 "    | j                         S r   )keysr'   s    r   __iter__zChainedDict.__iter__1   s    yy{r   c                 F    t        t        | j                                     S r   )lenlistr*   r'   s    r   __len__zChainedDict.__len__4   s    4		$%%r   c              #   >  K   t        | j                        }| j                  | j                  j	                         }n<t        | j                  j	                         | j                  j	                               }|D ]  }||v r| |j                  |        y wr   )r
   r   r	   r   r*   r   r   )r   yieldediterabler   s       r   iterkeyszChainedDict.iterkeys7   s     d))*== {{'')HT]]//14;;3C3C3EFH 	Cg~IKK		s   BBc              #   H   K   | j                         D ]  }|| |   f  y wr   )r3   r   s     r   	iteritemszChainedDict.iteritemsF   s)     ==? 	!CtCy. 	!s    "r   )r$   
__module____qualname__r   r   r   r   r    r(   r+   r/   r3   r*   r5   r&    r   r   r   r      sC    
") L& D! Er   r   N)collections.abcr   ImportErrorcollections	itertoolsr   r   r8   r   r   <module>r=      s4   +. B. B  +*+s    ((