Current File : //usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyc
�
oB�]c@s�ddlZddlZddlmZddlmZddlmZejd�Zej	e
�ZdZdZ
dZd	efd
��YZdefd��YZd
�Zd�Zd�Zd�ZdS(i����N(timporter(tlog(t
type_utilss#(^[a-zA-Z_][A-Za-z0-9_]*)\((.*?)\)$slist()+dict()+str()tm_tMergert
UnknownMergercBseZd�Zd�ZRS(cCs|S(N((tselft_meth_wantedtvaluet_merge_with((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyt_handle_unknownscCs�tj|�}|j�}d|}d}||g}t||�rXt||�}n|sz|j}|jd|�n||�S(Ns_on_%si(Rtobj_nametlowertNonethasattrtgetattrR
tinsert(Rtsourcet
merge_witht	type_nametmethod_nametmethtargs((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pytmerge%s
	(t__name__t
__module__R
R(((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyRs	
tLookupMergercBs&eZdd�Zd�Zd�ZRS(cCs2tj|�|dkr%g|_n	||_dS(N(Rt__init__R
t_lookups(Rtlookups((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyR4s
cCsdt|j�S(NsLookupMerger: (%s)(tlenR(R((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyt__str__;scCsed}x3|jD](}t||�rt||�}PqqW|sXtj||||�S|||�S(N(R
RRRRR
(Rtmeth_wantedRRRtmerger((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyR
Cs
N(RRR
RRR
(((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyR3s	cCsg}|jdd�}|dkr9|jdd�}n|dkrI|St|tj�ret|�Sx�|D]�}t|t�r�|d}|jdd�j�}|d}n/|d}t	|�dkr�|d	}ng}|rl|j
||f�qlqlW|S(
Nt	merge_howt
merge_typetnamet-t_tsettingsiii(tpopR
t
isinstancetsixtstring_typeststring_extract_mergerstdicttreplacetstripRtappend(tconfigtparsed_mergerstraw_mergerstmR$topts((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pytdict_extract_mergersQs(





cCs�g}x�|jd�D]�}|j�j�}|jdd�}|sLqntj|�}|szd|}t|��n|j�\}}|j�jd�}g|D]$}|j�r�|j�j�^q�}|j||f�qW|S(Nt+R%R&s1Matcher identifer '%s' is not in the right formatt,(	tsplitRR/R.t	NAME_MTCHtmatcht
ValueErrortgroupsR0(R"R2tm_nameR;tmsgtm_opsR4((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyR,js 1cCsttt��S(N(ttupleR,tDEF_MERGE_TYPE(((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pytdefault_mergerssc
Csg}x�|D]�\}}|jt�s;tt|�}ntj|tgtg�\}}|s�d|t|f}t|��q
tj|d�}t	|t�}|j
||f�q
Wg}	t|	�}
x*|D]"\}}|	j
||
|��q�W|
S(NsICould not find merger module named '%s' with attribute '%s' (searched %s)i(t
startswitht
MERGER_PREFIXtstrRtfind_moduleRtMERGER_ATTRtImportErrort
import_moduleRR0R(
R2t
mergers_to_beR>R@tmerger_locstlooked_locsR?tmodtmod_attrtmergerstroottattrR5((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyt	construct�s*	
(treR*t	cloudinitRRtloggingRtcompileR:t	getLoggerRtLOGRBRERHtobjectRRR6R,RCRS(((s>/usr/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyt<module>s