3 \¼me³ ã@s*dZddedfZdd„ZGdd„dƒZdS) ÚreplaceÚappendÚprependÚ no_replacecGsx|D]}||krdSqWdS)NTF©)ZwhatÚkeysÚkrrú/usr/lib/python3.6/m_list.pyÚ_has_any s r c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚMergercCsT||_t|_xtD]}||kr||_PqWt|dƒ|_t|dƒ|_t|ddƒ|_dS)NZ recurse_strZ recurse_dictZ recurse_arrayZ recurse_list)Ú_mergerÚDEF_MERGE_TYPEÚ_methodÚ MERGE_TYPESr Ú _recurse_strÚ _recurse_dictÚ_recurse_array)ÚselfZmergerZoptsÚmrrrÚ__init__s   zMerger.__init__cCsd|j|j|j|jfS)NzGListMerger: (method=%s,recurse_str=%s,recurse_dict=%s,recurse_array=%s))r rrr)rrrrÚ__str__ s zMerger.__str__cCst|jt|ƒ|ƒƒS)N)ÚtupleÚ_on_listÚlist)rÚvalueÚ merge_withrrrÚ _on_tuple,szMerger._on_tuplecs¼ˆjdkrt|ttfƒ r|Sg}ˆjdkrD|j|ƒ|j|ƒ|Sˆjdkrf|j|ƒ|j|ƒ|S‡fdd„}|j|ƒtt|ƒt|ƒƒ}x(td|ƒD]}|||||ƒ||<qšW|S)Nrrrcspˆjdkr|St|ttfƒr0ˆjr0ˆjj||ƒSt|tƒrNˆjrNˆjj||ƒSt|t ƒrlˆj rlˆjj||ƒS|S)Nr) r Ú isinstancerrrr ÚmergeÚstrrÚdictr)Zold_vZnew_v)rrrÚmerge_same_index@s z)Merger._on_list..merge_same_indexé)r rrrÚextendÚminÚlenÚrange)rrrZ merged_listr Z common_lenÚir)rrr/s$        zMerger._on_listN)Ú__name__Ú __module__Ú __qualname__rrrrrrrrr s  r N)r rr r rrrrÚs