

def _apply(self, data):
    data = sorted(data, key=self.get_group_col)
    json_data = dict()
    json_data['cols'] = [{
        'id': self.column_name,
        'label': self.column_name,
        'type': 'string',
    }, {
        'id': ((self.aggregate_func.__name__ + '_') + self.column_name),
        'label': ((self.aggregate_func.__name__ + '_') + self.column_name),
        'type': 'number',
    }]
    json_data['rows'] = []
    for (grouped, items) in groupby(data, self.get_group_col):
        aggregate_value = self.aggregate_func(items, self.aggregate_col)
        json_data['rows'].append({
            'c': [{
                'v': self.get_format_group_col(grouped),
            }, {
                'v': aggregate_value,
            }],
        })
    return json_data

dataset/ETHPy150Open dpgaspar/Flask-AppBuilder/flask_appbuilder/models/group.py GroupByCol._apply/original