コード例 #1
0
    def _query(self, selectors, first, last, npoints):
        '''Common core of query implementation shared between ``query``
        and ``query_continuous``.

        Returns: list of timestamps, list of resampled series (each a list of
            resampled points), list of Selector objects,
            timedelta between timestamps
        '''

        # Parse selectors
        selector_objs = []
        for selector in selectors:
            name, reduce_strategy, interp_strategy = parse_selector(selector)
            config = self.get_config(name)
            if config is None:
                raise BadSelectorError('Unknown series name "%s"' % name)

            selector_obj = create_selector(series_config=config,
                reduction=reduce_strategy, interpolation=interp_strategy)
            selector_objs.append(selector_obj)

        # Compute bin boundaries
        bin_half_delta = (last - first) / ((npoints - 1) * 2)
        bin_boundaries = [first + bin_half_delta * (2 * i - 1)
            for i in range(npoints + 1)]
        bin_centers = [first + bin_half_delta * (2 * i)
            for i in range(npoints)]

        # Collect and resample points for each series
        resampled_series = self._get_resampled_series(selector_objs,
            bin_boundaries[:-1], bin_boundaries[1:], bin_centers)

        return bin_centers, resampled_series, selector_objs, 2 * bin_half_delta
コード例 #2
0
ファイル: test_backend_selector.py プロジェクト: seibert/ln
def test_create_selector_override_both():
    config = dict(name='foo', type='int32', reduction='sum',
        interpolation='none')
    s = create_selector(config, reduction='closest', interpolation='previous')
    assert s.series_name == 'foo'
    assert s.datatype.is_int_scalar()
    assert s.datatype.base == 'int32'
    assert s.reduction == 'closest'
    assert s.interpolation == 'previous'
    assert s.reduction_func == reduce_closest
    assert s.interpolation_func == interp_previous
コード例 #3
0
ファイル: test_backend_selector.py プロジェクト: seibert/ln
def test_create_selector_defaults():
    config = dict(name='foo', type='int32', reduction='sum',
        interpolation='none')
    s = create_selector(config)
    assert s.series_name == 'foo'
    assert s.datatype.is_int_scalar()
    assert s.datatype.base == 'int32'
    assert s.reduction == 'sum'
    assert s.interpolation == 'none'
    assert s.reduction_func == reduce_sum
    assert s.interpolation_func == interp_none
コード例 #4
0
def test_create_selector_override_both():
    config = dict(name='foo',
                  type='int32',
                  reduction='sum',
                  interpolation='none')
    s = create_selector(config, reduction='closest', interpolation='previous')
    assert s.series_name == 'foo'
    assert s.datatype.is_int_scalar()
    assert s.datatype.base == 'int32'
    assert s.reduction == 'closest'
    assert s.interpolation == 'previous'
    assert s.reduction_func == reduce_closest
    assert s.interpolation_func == interp_previous
コード例 #5
0
def test_create_selector_defaults():
    config = dict(name='foo',
                  type='int32',
                  reduction='sum',
                  interpolation='none')
    s = create_selector(config)
    assert s.series_name == 'foo'
    assert s.datatype.is_int_scalar()
    assert s.datatype.base == 'int32'
    assert s.reduction == 'sum'
    assert s.interpolation == 'none'
    assert s.reduction_func == reduce_sum
    assert s.interpolation_func == interp_none
コード例 #6
0
ファイル: test_backend_selector.py プロジェクト: seibert/ln
def test_apply_strategies():
    config = dict(name='foo', type='int32', reduction='sum',
        interpolation='zero')
    s = create_selector(config)

    # Dummy time
    t = datetime(2013, 8, 26, 11, 0, 0)

    center_times = [datetime(2013, 8, 26, i + 1, 0, 0) for i in range(5)]
    groups = [[(t, 1), (t, 5), (t, 10)],
        [(t, 2), (t, 2)], [], [(t, 1)], [(t, 4), (t, 5), (t, 6)]]
    resampled_values = s.apply_strategies(center_times, groups)
    assert np.array_equal(resampled_values, [16, 4, 0, 1, 15])
コード例 #7
0
def test_apply_strategies():
    config = dict(name='foo',
                  type='int32',
                  reduction='sum',
                  interpolation='zero')
    s = create_selector(config)

    # Dummy time
    t = datetime(2013, 8, 26, 11, 0, 0)

    center_times = [datetime(2013, 8, 26, i + 1, 0, 0) for i in range(5)]
    groups = [[(t, 1), (t, 5), (t, 10)], [(t, 2), (t, 2)], [], [(t, 1)],
              [(t, 4), (t, 5), (t, 6)]]
    resampled_values = s.apply_strategies(center_times, groups)
    assert np.array_equal(resampled_values, [16, 4, 0, 1, 15])