# -*- coding: utf-8 -*- from benedict.utils import type_util def groupby(items, key): if not type_util.is_list(items): raise ValueError('items should be a list of dicts.') items_grouped = {} for item in items: if not type_util.is_dict(item): raise ValueError('item should be a dict.') group = item.get(key) if group not in items_grouped: items_grouped[group] = [] items_grouped[group].append(item.copy()) return items_grouped