Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
from ....support.act_as_list import ActAsListInterface

# extends: self-bridge
from ..bridges.pipeline_interface import PipelineInterface
from .._bridges.pipeline_interface import PipelineInterface

# uses: bridge interface
from ..bridges.stage_callable import (
from .._bridges.stage_callable import (
StageInstance,
StageInstanceCollection,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from ....support.act_as_list import ActAsList

# uses: bridge interfaces
from ..bridges.stage_callable import StageInstance, StageInstanceCollection
from .._bridges.stage_callable import StageInstance, StageInstanceCollection

# implements: self-interface
from .pipeline_interface_mixin import PipelineInterfaceMixin as ImplementsInterface
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
from typing import Any, Protocol

# extends: self-bridge
from ..bridges.stage_interface import StageInterface
from .._bridges.stage_interface import StageInterface

# uses: bridge
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out


class StageInterfaceMixin(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from typing import Any

# uses: bridge
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out

# implements: self-interface
from .stage_interface_mixin import StageInterfaceMixin as ImplementsInterface
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from typing import Any, Optional, Protocol, Self

# extends: self-bridge
from ..bridges.pipeline_interface import PipelineInterface
from .._bridges.pipeline_interface import PipelineInterface

# uses: bridge interface
from ..bridges.stage_callable import StageCollection
from .._bridges.stage_callable import StageCollection


class PipelineInterfaceMixin(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from typing import Any, Optional, Self

# uses: bridge interface
from ..bridges.stage_callable import StageCollection
from .._bridges.stage_callable import StageCollection

# implements: self-interface
from .pipeline_interface_mixin import PipelineInterfaceMixin as ImplementsInterface
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
# extends: 3rd-party concrete
from ....support.act_as_factory import ActAsFactory
from ....support.act_as_list import ActAsList
from ..bridges.pipeline_interface import TPipeline
from .._bridges.pipeline_interface import TPipeline

# uses: bridge interfaces
from ..bridges.stage_callable import StageClassOrInstance, StageCollection
from .._bridges.stage_callable import StageClassOrInstance, StageCollection

# implements: self-interface
from .pipeline_factory_interface import PipelineFactoryInterface as ImplementsInterface
Expand Down Expand Up @@ -54,7 +54,7 @@ def _add_item(self, item: StageClassOrInstance) -> Self:
return self._set_items(self.stages + (item,))

# ActAsFactory
def _get_model_class(self) -> type[TPipeline]:
def _get_target_class(self) -> type[TPipeline]:
if self.pipeline_class is None:
raise ValueError("Pipeline class not set in factory.")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
from ....support.act_as_list import ActAsListInterface

# uses: bridge interface
from ..bridges.pipeline_interface import TPipeline
from ..bridges.stage_callable import StageClassOrInstance, StageCollection
from .._bridges.pipeline_interface import TPipeline
from .._bridges.stage_callable import StageClassOrInstance, StageCollection


class PipelineFactoryInterface(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
from ..._05_with_pipeline_factory import (
PipelineFactoryInterface as PipelineFactoryBaseInterface,
)
from ..bridges.pipeline_interface import PipelineInterface
from .._bridges.pipeline_interface import PipelineInterface

# uses: bridge interface
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out


class PipelineFactoryInterface(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
from ....support.has_call_async import HasCallAsync

# uses: bridge interface
from ..bridges.stage_callable import StageInstance, StageInstanceCollection
from ..bridges.types import T_in, T_out
from .._bridges.stage_callable import StageInstance, StageInstanceCollection
from .._bridges.types import T_in, T_out

# implements: self-interface
from .processor_interface import ProcessorInterface as ImplementsInterface
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
from ....support.has_call_async import HasCallAsyncInterface

# uses: bridge interface
from ..bridges.stage_callable import StageInstance, StageInstanceCollection
from ..bridges.types import T_in, T_out
from .._bridges.stage_callable import StageInstance, StageInstanceCollection
from .._bridges.types import T_in, T_out


class ProcessorInterface(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from typing import Any, Optional, Protocol, Self

# uses: local base
from ..bases.processor_interface import ProcessorInterface

# extends: self-bridge
from ..bridges.pipeline_factory_interface import PipelineFactoryInterface
from .._bridges.pipeline_factory_interface import PipelineFactoryInterface

# uses: bridge interface
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out

# uses: local base
from ..bases.processor_interface import ProcessorInterface


class PipelineFactoryInterfaceMixin(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from typing import Any, Generic, Optional, Self

# uses: bridge interface
from .._bridges.types import T_in, T_out

# uses: local base
from ..bases.processor_interface import ProcessorInterface

# uses: bridge interface
from ..bridges.types import T_in, T_out

# implements: self-interface
from .pipeline_factory_interface_mixin import (
PipelineFactoryInterfaceMixin as ImplementsInterface,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from typing import Any, Optional, Protocol, Self

# uses: local base
from ..bases.processor_interface import ProcessorInterface

# extends: self-bridge
from ..bridges.pipeline_interface import PipelineInterface
from .._bridges.pipeline_interface import PipelineInterface

# uses: bridge interface
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out

# uses: local base
from ..bases.processor_interface import ProcessorInterface


class PipelineInterfaceMixin(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from typing import Any, Generic, Optional, Self

# uses: bridge interface
from .._bridges.types import T_in, T_out

# uses: local base
from ..bases.processor_interface import ProcessorInterface

# uses: bridge interface
from ..bridges.types import T_in, T_out

# implements: self-interface
from .pipeline_interface_mixin import PipelineInterfaceMixin as ImplementsInterface

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from typing import Protocol

# extends: self-bridge
from ..bridges.pipeline_interface import PipelineInterface
from .._bridges.pipeline_interface import PipelineInterface

# extends: bridge interface
from ..bridges.stage_interface import StageInterface
from .._bridges.stage_interface import StageInterface

# uses: bridge interface
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out


class PipelineInterfaceMixin(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from typing import Any

# uses: bridge interface
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out

# implements: self-interface
from .pipeline_interface_mixin import PipelineInterfaceMixin as ImplementsInterface
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from typing import Any, cast

# extends: "3rd-party" concrete
from ...bridges.processor import Processor
from ..._bridges.processor import Processor

# uses: bridge interface
from ...bridges.stage_callable import StageInstanceCollection
from ...bridges.types import T_in, T_out
from ..._bridges.stage_callable import StageInstanceCollection
from ..._bridges.types import T_in, T_out

# implements: self-interface
from .chained_processor_interface import (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from typing import Any, Protocol

# extends: "3rd-party" interface
from ...bridges.processor_interface import ProcessorInterface
from ..._bridges.processor_interface import ProcessorInterface

# uses: bridge interface
from ...bridges.stage_callable import StageInstanceCollection
from ...bridges.types import T_in, T_out
from ..._bridges.stage_callable import StageInstanceCollection
from ..._bridges.types import T_in, T_out


class ChainedProcessorInterface(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from typing import Protocol

# extends: self-bridge
from ..bridges.pipeline_factory_interface import PipelineFactoryInterface
from .._bridges.pipeline_factory_interface import PipelineFactoryInterface

# uses: bridge interface
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out


class PipelineFactoryInterfaceMixin(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Generic

# uses: bridge interface
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out

# implements: self-interface
from .pipeline_factory_interface_mixin import (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from typing import Protocol

# extends: self-bridge
from ..bridges.pipeline_interface import PipelineInterface
from .._bridges.pipeline_interface import PipelineInterface

# uses: bridge interface
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out


class PipelineInterfaceMixin(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from abc import ABC

# uses: base concrete
from ..bases.processors.chained_processor import ChainedProcessor

# extends: self-bridge concrete
from ..bridges.pipeline import Pipeline
from .._bridges.pipeline import Pipeline

# uses: bridge interface
from ..bridges.types import T_in, T_out
from .._bridges.types import T_in, T_out

# uses: base concrete
from ..bases.processors.chained_processor import ChainedProcessor

# implements: self-interface
from .pipeline_interface_mixin import PipelineInterfaceMixin as ImplementsInterface
Expand Down
4 changes: 2 additions & 2 deletions src/_api/core/support/act_as_factory/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from .act_as_factory import ActAsFactory
from .act_as_factory_interface import ActAsFactoryInterface, TModel
from .act_as_factory_interface import ActAsFactoryInterface, T_target

__all__ = (
"ActAsFactory",
"ActAsFactoryInterface",
"TModel",
"T_target",
)
20 changes: 10 additions & 10 deletions src/_api/core/support/act_as_factory/act_as_factory.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
from abc import abstractmethod
from typing import Any, Optional

from .act_as_factory_interface import ActAsFactoryInterface, TModel
from .act_as_factory_interface import ActAsFactoryInterface, T_target


class ActAsFactory(ActAsFactoryInterface[TModel]):
# set the class here or in `_get_model_class`
_model_class: Optional[type[TModel]] = None
class ActAsFactory(ActAsFactoryInterface[T_target]):
# set the class here or in `_get_target_class`
_target_class: Optional[type[T_target]] = None

@abstractmethod
def _definition(self) -> dict[str, Any]:
pass

def _get_model_class(self) -> type[TModel]:
if self._model_class is None:
raise ValueError("Factory _model_class not set")
def _get_target_class(self) -> type[T_target]:
if self._target_class is None:
raise ValueError("Factory _target_class not set")

return self._model_class
return self._target_class

def make(self) -> TModel:
instance_class = self._get_model_class()
def make(self) -> T_target:
instance_class = self._get_target_class()

return instance_class(**self._definition())
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from abc import abstractmethod
from typing import Any, Protocol, TypeVar

TModel = TypeVar("TModel", infer_variance=True)
T_target = TypeVar("T_target", infer_variance=True)


class ActAsFactoryInterface(Protocol[TModel]):
class ActAsFactoryInterface(Protocol[T_target]):
@abstractmethod
def _definition(self) -> dict[str, Any]: ...

def _get_model_class(self) -> type[TModel]: ...
def _get_target_class(self) -> type[T_target]: ...

def make(self) -> Any: ...