def macro_area_from_lgcode(m, tree): lgd = languoids.macro_area_from_hid(tree=tree) def inject_macro_area((typ, fields)): mas = set(lgd[x] for x in lgcode((typ, fields)) if x in lgd and lgd[x]) if mas: fields['macro_area'] = ', '.join(sorted(mas)) return typ, fields return {k: inject_macro_area(tf) for k, tf in m.items()}
def macro_area_from_lgcode(m, tree): lgd = languoids.macro_area_from_hid(tree=tree) def inject_macro_area(arg): typ, fields = arg mas = set(lgd[x] for x in lgcode((typ, fields)) if x in lgd and lgd[x]) if mas: fields['macro_area'] = ', '.join(sorted(mas)) return typ, fields return {k: inject_macro_area(tf) for k, tf in m.items()}
def test_macro_area_from_hid(self): from pyglottolog.languoids import macro_area_from_hid res = macro_area_from_hid(tree=self.tree) self.assertEqual(res['abc'], 'a')