a
    »ÏOc  ã                   @   s    d dl Z d dlmZ dd„ ZdS )é    N)Údeepcopyc                 K   sÖ   |  dd¡}|  dd¡}t| ¡ ƒD ]¬\}}t|tjjƒrjt|   |d¡tjjƒr¶t| | |fi |¤Ž q$nL|r¶t|ƒtu r¶t|   |d¡ƒtu r¶|r¦| |  	t
|ƒ¡ q$| |  	|¡ q$|rÈt
|ƒ| |< q$|| |< q$| S )a   
    recursive dict a.update(b), merges dicts and lists
    Note: will clobber non dict keys if b has a dict with same key
    options:
        copy: deepcopy instead of reference (default False)
        merge_lists: merge lists as well (default True)
    ÚcopyFÚmerge_listsTN)ÚgetÚlistÚitemsÚ
isinstanceÚcollectionsÚabcÚMappingÚrecursive_updateÚtypeÚextendr   )ÚaÚbÚkwargsr   r   ÚkÚv© r   úA/var/www/html/gsl.tools/lib/python3.9/site-packages/munge/util.pyr      s"    
r   )r	   r   r   r   r   r   r   r   Ú<module>   s   