Source code for alts.core.oracle.oracles
#Version 1.1.1 conform as of 29.11.2024
"""
*alts.core.oracle.oracles*
"""
from __future__ import annotations
from typing import TYPE_CHECKING, Any
from dataclasses import dataclass
from alts.core.oracle.query_queue import QueryQueue
from alts.core.configuration import Configurable, is_set, init, post_init, pre_init
from alts.core.data.constrains import QueryConstrained
if TYPE_CHECKING:
from typing_extensions import Self
from alts.core.configuration import Required
from alts.core.data.constrains import QueryConstrain
[docs]
class Oracles(Configurable, QueryConstrained):
"""
Oracles()
| **Description**
| The Oracle is the interaction point between the process and the data source
"""
[docs]
def trigger_subscriber(self):
"""
trigger_subscriber(self) -> None
| **Description**
| Updates its own state upon request.
| Does nothing here.
"""
pass
[docs]
def add(self, queries):
"""
add(self, queries) -> None
| **Description**
| Adds the query to it own structure.
| Does nothing here.
:param queries: Requested queries
:type queries: queries
"""
pass
[docs]
@dataclass
class POracles(Oracles):
"""
POracles(process)
| **Description**
| A Process Oracle manages the added queries into a :class:`QueryQueue`.
:param process: The managed query queue
:type process: QueryQueue
"""
process: QueryQueue = init()
[docs]
def trigger_subscriber(self):
"""
trigger_subscriber(self) -> None
| **Description**
| Updates its query queue upon request.
"""
super().trigger_subscriber()
self.process.update()
[docs]
def add(self, queries):
"""
add(self, queries) -> None
| **Description**
| Adds the query to its own query queue.
:param queries: Requested queries
:type queries: queries
"""
super().add(queries)
self.process.add(queries)
[docs]
def query_constrain(self) -> QueryConstrain:
"""
query_constrain(self) -> QueryConstrain
| **Description**
| Returns the query constrains of the queue.
:return: Its query queue's query constrains
:rtype: QueryConstrain
"""
return self.process.query_constrain()
def __call__(self, *args: Any, **kwds: Any) -> Self:
"""
__call__(self, any) -> self
| **Description**
| Returns itself.
:return: Self
:rtype: POracles
"""
return self