%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/salt/utils/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/salt/utils/dictupdate.pyo

�
���^c@@s�dZddlmZmZmZyddlmZWn!ek
rYddlmZnXddl	Z	ddl
Z
ddljj
Z
e
je�Zeed�Zd�Zed�Zd�Zed	�Zd
ded�ZdS(
u]
Alex Martelli's soulution for recursive dict update from
http://stackoverflow.com/a/3233356
i(tabsolute_importtprint_functiontunicode_literals(tMappingNc	C@s�t|t�s t|t�r/td��nt|j��}tt|j���t|�@slt}n|r�x|D]}||}y|j|d�}Wnt	k
r�d}nXt|t�r�t|t�r�t
||d|�}|||<qyt|t�rvt|t�rv|retj|�}	|	j
g|D]}
|
|	kr9|
^q9�|	||<q�||||<qy||||<qyW|Sy#x|D]}||||<q�WWn0t	k
r�x |D]}||||<q�WnX|SdS(u�
    Recursive version of the default dict.update

    Merges upd recursively into dest

    If recursive_update=False, will use the classic dict.update, or fall back
    on a manual merge (helpful for non-dict types like FunctionWrapper)

    If merge_lists=True, will aggregate list object types instead of replace.
    The list in ``upd`` is added to the list in ``dest``, so the resulting list
    is ``dest[key] + upd[key]``. This behavior is only activated when
    recursive_update=True. By default merge_lists=False.

    .. versionchanged: 2016.11.6
        When merging lists, duplicate values are removed. Values already
        present in the ``dest`` list are not added from the ``upd`` list.
    u9Cannot update using non-dict types in dictupdate.update()tmerge_listsN(t
isinstanceRt	TypeErrortlisttkeystsettFalsetgettNonetAttributeErrortupdatetcopytdeepcopytextend(tdesttupdtrecursive_updateRtupdkeystkeytvaltdest_subkeytrettmergedtxtk((s9/usr/lib/python2.7/site-packages/salt/utils/dictupdate.pyRsB"	




,



cC@sWi}xJtj|�D]9\}}||krE|||g||<q|||<qW|S(N(tsixt	iteritems(tobj_atobj_bRRR((s9/usr/lib/python2.7/site-packages/salt/utils/dictupdate.pyt
merge_listPscC@s"tj|�}t||d|�S(NR(RRR(RR Rtcopied((s9/usr/lib/python2.7/site-packages/salt/utils/dictupdate.pyt
merge_recurseZscC@s#ddlm}|||dd�S(Ni(tmerge_recursivetleveli(tsalt.serializers.yamlexR$(RR t_yamlex_merge_recursive((s9/usr/lib/python2.7/site-packages/salt/utils/dictupdate.pytmerge_aggregate_scC@sAx+|D]#}||kr||||<qqWt||d|�S(NR(R#(RR Rtobj((s9/usr/lib/python2.7/site-packages/salt/utils/dictupdate.pytmerge_overwriteds
usmartuyamlcC@s|dkrF|jd�ddks4|jd�r=d}qFd}n|dkrdt||�}n�|dkr�t|||�}n||dkr�t||�}n^|d	kr�t|||�}n=|d
kr�t||�}ntjd|�t||�}|S(Nusmartu|i����uyamlexuyamlex_u	aggregateurecurseulistu	overwriteunoneu2Unknown merging strategy '%s', fallback to recurse(tsplitt
startswithR!R#R(R*tlogtwarning(RR tstrategytrendererRR((s9/usr/lib/python2.7/site-packages/salt/utils/dictupdate.pytmergeks&(		(t__doc__t
__future__RRRtcollections.abcRtImportErrortcollectionsRtloggingtsalt.ext.sixtextRt	getLoggert__name__R-tTrueR
RR!R#R(R*R1(((s9/usr/lib/python2.7/site-packages/salt/utils/dictupdate.pyt<module>s
9	
	

Zerion Mini Shell 1.0