܍~cddlZddlmZmZejdZdZdZdZGddZ Gd d e Z d Z d Z d Z dZdS)N)importer type_utilsz#(^[a-zA-Z_][A-Za-z0-9_]*)\((.*?)\)$zlist()+dict()+str()m_MergerceZdZdZdZdS) UnknownMergerc|SN)self _meth_wantedvalue _merge_withs sm  Fv{++ v{33     00k5* tE:&&&rr )r r!r"r&r+rr rrr$r$.sF$$$$;;; ' ' ' ' 'rr$cg}|dd}||dd}||St|trt|S|D]}t|tr9|d}|dd}|d}n(|d}t|dkr |d d}ng}|r|||f|S) N merge_how merge_typename-_settingsr) pop isinstancestrstring_extract_mergersdictreplacestripr*append)configparsed_mergers raw_mergersmr2optss rdict_extract_mergersrEMsN**[$//Kjjt44 +s##3%k222  0 0 a$ V9D<<S))//11DZ=DDQ4D1vv{{u  0  ! !4, / / / rcg}|dD]}|}|dd}|sAt|}|sd|z}t ||\}}|d}d|D}|||f|S)N+r3r4z1Matcher identifer '%s' is not in the right format,cg|]<}||=Sr )r>r).0rCs r z*string_extract_mergers..ws7???qQWWYY?""???r) splitrr>r= NAME_MTCHmatch ValueErrorgroupsr?)r0rAm_namerNmsgm_opss rr;r;fsN//#&&//%%''S))  '' "ECS// !,,.. ##C((??E???vuo.... rcDtttSr )tupler;DEF_MERGE_TYPEr rrdefault_mergersrW|s '77 8 88rcg}|D]\}}|tstt|z}tj|t gt g\}}|s d|dt d|d}t|tj|d}t|t }| ||fg} t| } |D]$\} } | | | | %| S)Nz$Could not find merger module named 'z' with attribute 'z ' (searched )r) startswith MERGER_PREFIXr:r find_moduler MERGER_ATTR ImportError import_modulerr?r$) rA mergers_to_berQrS merger_locs looked_locsrRmodmod_attrmergersrootattrrDs r constructrhs*M)44  // 1"S[[0F#+#7 XJ $ $  [ 4 466;;; 5  c"" "(Q88CsK00H  (E!2 3 3 3 3G  D%)) tttD$''(((( Kr)re cloudinitrrcompilerMrVr[r]rr$rEr;rWrhr rrrls ******** BJ= > > &  8'''''='''>2,999r