Source code for alts.core.query.query_sampler

#Version 1.1.1 conform as of 18.12.2024
"""
| *alts.core.query.query_sampler*
| :doc:`Built-In Implementations </modules/query/query_sampler>`
"""
from __future__ import annotations
from abc import abstractmethod
from typing import TYPE_CHECKING

from dataclasses import dataclass, field

from alts.core.experiment_module import ExperimentModule
from alts.core.configuration import init


if TYPE_CHECKING:
    from typing_extensions import Self #type: ignore
    from typing import Optional
    from nptyping import NDArray, Number, Shape


[docs] @dataclass class QuerySampler(ExperimentModule): """ QuerySampler(num_queries) | **Description** | A QuerySampler samples a number of queries given its internal logic. | It is mostly used to get the first datapoints for the experiment. :param num_queries: The amount of queries to sample by default (default= 1) :type num_queries: int """ num_queries: int = init(default=1)
[docs] @abstractmethod def sample(self, num_queries: Optional[int] = None) -> NDArray[Shape["query_nr, ... query_dims"], Number]: # type: ignore """ sample(self, num_queries) -> queries | **Description** | Samples and returns a collection of ``num_queries``-many queries :param num_queries: The amount of queries to sample by default (default= ) :type num_queries: int :return: Sampled queries :rtype: `NDArray <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_ :raises NotImplementedError: QuerySampler is abstract """ raise NotImplementedError("Please use a non abstract ...QuerySampler.")