Source code for stupidb.functions.navigation.core

from __future__ import annotations

import abc
from typing import Generic, Sequence

from ...aggregator import Aggregate, Aggregator
from ...typehints import Input1, Input2, Input3, Output, Result, T








[docs]class UnaryNavigationAggregate(Generic[Input1, Output], NavigationAggregate[Output]): """Navigation function taking one argument.""" __slots__ = ("inputs1",) def __init__(self, inputs1: Sequence[Input1 | None]) -> None: self.inputs1 = inputs1
[docs]class BinaryNavigationAggregate( Generic[Input1, Input2, Output], NavigationAggregate[Output] ): """Navigation function taking two arguments.""" __slots__ = "inputs1", "inputs2" def __init__( self, inputs1: Sequence[Input1 | None], inputs2: Sequence[Input2 | None], ) -> None: self.inputs1 = inputs1 self.inputs2 = inputs2
[docs]class TernaryNavigationAggregate( Generic[Input1, Input2, Input3, Output], NavigationAggregate[Output] ): """Navigation function taking three arguments.""" __slots__ = "inputs1", "inputs2", "inputs3" def __init__( self, inputs1: Sequence[Input1 | None], inputs2: Sequence[Input2 | None], inputs3: Sequence[Input3 | None], ) -> None: self.inputs1 = inputs1 self.inputs2 = inputs2 self.inputs3 = inputs3