import logging from openflexure_microscope.common.tasks import tasks, states, taskify, cleanup_tasks, remove_task class TaskOrchestrator: """ DEPRECATED: Class responsible for spawning threaded tasks, and storing their returns. A microscope should contain exactly one instance of `TaskOrchestrator`. Attributes: tasks (list): List of `Task` objects """ @property def tasks(self): logging.warning("TaskOrchestrator class is deprecated. Please use common.tasks.tasks().values() instead.") return tasks().values() @property def state(self): """ Returns a list of dictionary representations of all tasks in the session. """ logging.warning("TaskOrchestrator class is deprecated. Please use common.tasks.tasks() instead.") return states() def task_from_id(self, task_id: str): """ Returns a particular task object with the specified `task_id`. """ return tasks()[task_id] def start(self, function, *args, **kwargs): """ Attach and start a new long-running task, if allowed by `start_condition()`. Returns an instance of :py:class:`openflexure_microscope.task.Task`, which can be used to check the state or eventual return of the task. Args: function (function): The target function to run in the background args, kwargs: Arguments that will be passed to `function` at runtime. """ logging.warning("TaskOrchestrator class is deprecated. Please use common.tasks.taskify() instead.") return taskify(function)(*args, **kwargs) def clean(self): """ Remove all inactive tasks from the task array. This will remove tasks that either finished or never started. """ logging.warning("TaskOrchestrator class is deprecated. Please use common.tasks.cleanup_tasks() instead.") cleanup_tasks() def delete(self, task_id: str): """ Delete a given task by ID, only if task is not currently running. """ logging.warning("TaskOrchestrator class is deprecated. Please use common.tasks.remove_task() instead.") remove_task(task_id)