Interfaces#
Base interface for classes that acts like factories.
- class core_mixins.interfaces.factory.IFactory[source]#
Bases:
ABCBase interface for classes that acts like factories. The IFactory pattern allows you to:
Automatically register concrete implementations.
Discover available implementations at runtime.
Create instances by string reference.
Maintain separate registries for different factory types.
IFactoryis a pure protocol, it provides the registration mechanism but does not store any references itself. Registries live exclusively on concrete sub-hierarchies (abstract subclasses ofIFactory). Every abstract subclass automatically gets its own isolated_implsdict when it is defined.Usage pattern:
class IAnimalFactory(IFactory, ABC): pass # gets its own registry class Dog(IAnimalFactory): @classmethod def registration_key(cls) -> str: return "dog" IAnimalFactory.get_registered_classes() # {"dog"} IFactory.get_registered_classes() # always empty
- abstractmethod classmethod registration_key() str[source]#
It returns the name (reference) for the key used to register, like: return self.__name__
This module provides a base implementation for ETL tasks under the project ecosystem.
- class core_mixins.interfaces.task.TaskStatus(*values)[source]#
-
Possible status a task can have during its life
- CREATED = 'CREATED'#
- EXECUTING = 'EXECUTING'#
- SUCCESS = 'SUCCESS'#
- ERROR = 'ERROR'#
- class core_mixins.interfaces.task.ITask(name: str | None = None, description: str | None = None, logger: Logger | None = None)[source]#
-
Base implementations for different tasks/processes
- __init__(name: str | None = None, description: str | None = None, logger: Logger | None = None) None[source]#
- property name#
It returns the task identification
- property status: TaskStatus#
It returns the current status of the task
- class core_mixins.interfaces.task.TaskResult(status: TaskStatus, result: Any | None = None, error: Exception | None = None, execution_time: float = 0.0)[source]#
Bases:
objectRepresents the result of a task execution that exposes status, result, or the error.