"""Example ComputeFramework implementation."""

from typing import Optional, Set
from uuid import UUID, uuid4

from mloda.core.abstract_plugins.components.parallelization_modes import ParallelizationMode
from mloda.core.abstract_plugins.function_extender import Extender
from mloda.provider import ComputeFramework


class MyComputeFramework(ComputeFramework):
    """Example ComputeFramework - rename and customize for your use case."""

    def __init__(
        self,
        mode: ParallelizationMode = ParallelizationMode.SYNC,
        children_if_root: frozenset[UUID] = frozenset(),
        uuid: UUID = uuid4(),
        function_extender: Optional[Set[Extender]] = None,
    ) -> None:
        """Initialize with default values for minimal instantiation."""
        super().__init__(mode, children_if_root, uuid, function_extender)
