Source code for analyzer.core.executors.executor

from __future__ import annotations

import abc
import functools as ft
from attrs import define
from typing import Any
from analyzer.core.event_collection import FileSet
from cattrs.strategies import include_subclasses, configure_tagged_union


@define
[docs] class ExecutionTask:
[docs] file_set: FileSet
[docs] metadata: dict
[docs] pipelines: list[str]
[docs] output_name: str
@define
[docs] class CompletedTask:
[docs] result: Any
[docs] metadata: dict
[docs] output_name: str
@define
[docs] class Executor(abc.ABC): @abc.abstractmethod
[docs] def run(self, analyzer, tasks: list[ExecutionTask], max_sample_events=None): ...
[docs] def setup(self, needed_resources): ...
[docs] def teardown(self): ...
[docs] def configureConverter(conv): union_strategy = ft.partial(configure_tagged_union, tag_name="executor_name") include_subclasses(Executor, conv, union_strategy=union_strategy)