def METHOD_NAME(self, array, axis=0, dtype=None, out=None, keepdims=False):
    if self._aggregator is None:
        raise NotImplementedError
    data = array if self._pre_agg is None else self._pre_agg(array)
    result = self._aggregator(data, axis=axis, dtype=dtype, keepdims=keepdims)
    result = result if self._post_agg is None else self._post_agg(result)
    if out is not None:
        out[0]._data = result._data
    else:
        return result