"""Engines without parallelization."""
from typing import Any
from ..util import tqdm
from .base import Engine
from .task import Task
[docs]
class SingleCoreEngine(Engine):
"""
Dummy engine for sequential execution on one core.
.. note:: The objective itself may be multithreaded.
"""
[docs]
def __init__(self):
super().__init__()
[docs]
def execute(
self, tasks: list[Task], progress_bar: bool = None
) -> list[Any]:
"""Execute all tasks in a simple for loop sequentially.
Parameters
----------
tasks:
List of tasks to execute.
progress_bar:
Whether to display a progress bar.
Returns
-------
A list of results.
"""
results = []
for task in tqdm(
tasks,
enable=progress_bar,
):
results.append(task.execute())
return results