

def collect_child_groups(self):
    ' Yield the ordered and grouped children.\n\n        '
    (group_map, item_groups) = self.group_data()
    grouped = defaultdict(list)
    for child in self.children:
        target_group = child.item.group
        if (target_group not in group_map):
            msg = "item '%s' has invalid group '%s'"
            raise ValueError((msg % (child.path, target_group)))
        grouped[target_group].append(child)
    for group in item_groups:
        if (group.id in grouped):
            nodes = grouped.pop(group.id)
            (yield (group, solve_ordering(nodes)))

dataset/ETHPy150Open nucleic/enaml/enaml/workbench/ui/menu_helper.py MenuNode.collect_child_groups/original