def merge_ams(amsmath, amshelp, lshort):
for amsk, amsv in chain(amsmath.items(), amshelp.items()):
if amsk not in lshort:
lshort.update({amsk: amsv})
continue
lvdict = lshort[amsk]
for k, v in amsv.items():
# Can't just check ``__contains__`` here bec. some vals are None.
if k not in lvdict or (v in lvdict[k] if is_seq(lvdict[k]) else
v == lvdict[k]):
continue
if k not in ('name', 'meta'):
lvdict.update({k: enlist(v, lvdict[k])})
elif k == 'meta' and v is not None:
if lvdict['meta'] is None:
lvdict['meta'] = {}
for mk, mv in v.items():
if mk not in lvdict['meta']:
lvdict['meta'].update({mk: mv})
else:
# This doesn't run, but add concat logic if that
# ever changes.
pass
else:
assert v is None
评论列表
文章目录