U
    -d                     @   s   d dl mZmZmZmZ d dlmZ edZedZeeegef eee	ef ddf dddZ
eed	d
dZeed	ddZedkreedddedddksteedddedddkstdS )    )CallableTypeVarTuple	Generator)ImmutableDictTKN)dcallbackreturnc                 c   s:   |   D ],\}}t|tr*|||fV  q||fV  qd S N)items
isinstancedict)r	   r
   kv r   ./util/immutables.py	_gen_deep   s    
r   )r	   r   c                 C   s   t t| tS r   )r   r   imutable_deep_copyr	   r   r   r   r      s    r   c                 C   s   t t| tS r   )r   r   mutable_deep_copyr   r   r   r   r      s    r   __main__      )ab)typingr   r   r   r   Zwerkzeug.datastructuresr   r   r   strr   r   r   r   __name__AssertionErrorr   r   r   r   <module>   s   . 