def regroup(target, expression):
    if not target: return ''
    return [
        {'grouper': key, 'list': list(val)}
        for key, val in
        groupby(obj_list, lambda v, f=expression.resolve: f(v, True))
    ]