Source code for alts.core.data.data_sampler

#Version 1.1.1 conform as of 29.11.2024
"""
*alts.core.data.data_sampler*
"""
from __future__ import annotations
from typing import TYPE_CHECKING

from dataclasses import dataclass, field


from alts.core.subscriber import ResultDataSubscriber, StreamDataSubscriber, ProcessDataSubscriber
from alts.core.query.queryable import Queryable
from alts.core.experiment_module import ExperimentModule


if TYPE_CHECKING:
    from typing import Tuple
    from typing_extensions import Self 
    from nptyping import NDArray, Number, Shape

[docs] @dataclass class DataSampler(Queryable, ExperimentModule): """ DataSampler() | **Description** | Samples data from a :doc:`QueriedDataPools </core/data/queried_data_pool>`, meaning for each query the `DataSampler` returns a number of query-result pairs in the same area. """
[docs] def query(self, queries: NDArray[Shape["query_nr, ... query_dim"], Number], size = None) -> 'Tuple[NDArray[Shape["query_nr, sample_size, ... query_dim"], Number], NDArray[Shape["query_nr, sample_size,... result_dim"], Number]]': """ query(self, queries, size) -> data_points | **Description** | Returns a tuple of ``size`` queries and ``size`` results in the area of the requested queries. :param queries: A list of queries :type queries: `NDArray <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_ :param size: The preferred sample size :type size: Number :return: A tuple of queries and their associated results :rtype: Tuple[`NDArray <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_,`NDArray <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_] """ raise NotImplementedError()
[docs] @dataclass class ResultDataSampler(ResultDataSubscriber, DataSampler): """ ResultDataSampler() | **Description** | Samples data from a :doc:`ResultDataPools </core/data/data_pools>`. """ pass
[docs] @dataclass class StreamDataSampler(StreamDataSubscriber, DataSampler): """ StreamDataSampler() | **Description** | Samples data from a :doc:`StreamDataPools </core/data/data_pools>`. """ pass
[docs] @dataclass class ProcessDataSampler(ProcessDataSubscriber, DataSampler): """ ProcessDataSampler() | **Description** | Samples data from a :doc:`ProcessDataPools </core/data/data_pools>`. """ pass