import abc
from ..private.request import ClientsKwargsMixin
from ..private.tasks import _BaseLambdaTask
from .clients import Clients
from .clients.events import Events
from .clients.faces import Faces
from .clients.lis import LIS
from .clients.lpm import LPM
from .clients.lrs import LRS
from .clients.sender import Sender
[docs]
class BaseLambdaTask(_BaseLambdaTask, ClientsKwargsMixin):
"""Lambda task"""
[docs]
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@property
def clients(self):
return Clients(
faces=Faces(**self._getFacesClientKwargs()),
events=Events(**self._getEventsClientKwargs()),
matcher=LPM(**self._getLPMClientKwargs()),
faceSamplesStore=LIS(**self._getFacesSamplesClientKwargs()),
bodySamplesStore=LIS(**self._getBodySamplesClientKwargs()),
imageOriginStore=LIS(**self._getImageOriginClientKwargs()),
sdk=LRS(**self._getLRSClientKwargs()),
sender=Sender(**self._getSenderClientKwargs()),
)
@abc.abstractmethod
async def splitTasksContent(self, content: dict) -> list[dict]:
"""Split task content to sub task contents"""
...
@abc.abstractmethod
async def executeSubtask(self, subTaskContent: dict) -> dict | list:
"""Execute current sub task processing"""
...