
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
\me}
                 @   s&   d Z de fZdd ZG dd dZdS )
no_replacereplacec             G   s   x|D ]}|| krdS qW dS )NTF )Zwhatkeyskr   r   /usr/lib/python3.6/m_dict.py_has_any   s    
r   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Mergerc             C   sV   || _ t| _xtD ]}||kr|| _P qW d|k| _t|dd| _d|k| _d| _d S )NZrecurse_strZrecurse_arrayZrecurse_listZallow_deleteT)	_mergerDEF_MERGE_TYPE_methodMERGE_TYPES_recurse_strr   _recurse_array_allow_delete_recurse_dict)selfZmergerZoptsmr   r   r   __init__   s    


zMerger.__init__c             C   s$   d}|| j | j| j| j| jf }|S )NzWDictMerger: (method=%s,recurse_str=%s,recurse_dict=%s,recurse_array=%s,allow_delete=%s))r   r   r   r   r   )r   sr   r   r   __str__%   s    
zMerger.__str__c                sf    fdd}xR|j  D ]F\}}||krV|d krBjrB|j| q^||| |||< q|||< qW |S )Nc                sj    r|S t |ttfr*jr*jj| |S t |trHjrHjj| |S t |trfj	rfjj| |S | S )N)

isinstancelisttupler   r	   mergestrr   dictr   )Zold_vZnew_v)
do_replacer   r   r   merge_same_key4   s    z/Merger._do_dict_replace.<locals>.merge_same_key)itemsr   pop)r   value
merge_withr   r   r   vr   )r   r   r   _do_dict_replace3   s    zMerger._do_dict_replacec             C   s\   t |ts|S | jdkr,| jt||d}n,| jdkrJ| jt||d}ntd| j |S )Nr   Tr   FzUnknown merge type %s)r   r   r   r#   NotImplementedError)r   r    r!   Zmergedr   r   r   _on_dictJ   s    


zMerger._on_dictN)__name__
__module____qualname__r   r   r#   r%   r   r   r   r   r      s   r   N)r
   r   r   r   r   r   r   r   <module>   s   