Пример #1
0
    def get_total(self, types, begin, end, groupby=None, filters=None):
        total = copy.deepcopy(self.total_sample)
        series = []

        filter_func = functools.partial(self.__filter_func, types, filters,
                                        begin, end)
        points = filter(filter_func, self._points)

        for point in points:
            target_serie = self.__get_target_serie(point, series, groupby)
            target_serie['values'][0][1] += point['fields']['qty']
            target_serie['values'][0][2] += point['fields']['price']
        total['series'] = series

        return resultset.ResultSet(total)
Пример #2
0
    def retrieve(self,
                 types,
                 filters,
                 begin,
                 end,
                 offset=0,
                 limit=1000,
                 paginate=True):
        output = copy.deepcopy(self.total_sample)

        filter_func = functools.partial(self.__filter_func, types, filters,
                                        begin, end)
        points = list(filter(filter_func, self._points))

        columns = set()
        for point in points:
            columns.update(point['tags'].keys())
            columns.update(point['fields'].keys())
        columns.add('time')

        series = {
            'name': 'dataframes',
            'columns': list(columns),
        }
        values = []

        def __get_tag_or_field(point, key):
            if key == 'time':
                return point['time'].isoformat()
            return point['tags'].get(key) or point['fields'].get(key)

        for point in points:
            values.append(
                [__get_tag_or_field(point, key) for key in series['columns']])

        series['values'] = values
        output['series'] = [series]

        return len(list(points)), resultset.ResultSet(output)