From 1e02f12794c06bfad25b75e044e1516617a6df50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Tue, 6 Aug 2024 09:34:43 +0200 Subject: [PATCH] adds autostart flag to task --- src/pydase/task/decorator.py | 2 +- src/pydase/task/task.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/pydase/task/decorator.py b/src/pydase/task/decorator.py index 224e119..58c7d9f 100644 --- a/src/pydase/task/decorator.py +++ b/src/pydase/task/decorator.py @@ -26,6 +26,6 @@ def task( logger.info("Task '%s' was cancelled", func.__name__) return None - return Task(wrapper) + return Task(wrapper, autostart=autostart) return decorator diff --git a/src/pydase/task/task.py b/src/pydase/task/task.py index 9242145..9c07b10 100644 --- a/src/pydase/task/task.py +++ b/src/pydase/task/task.py @@ -41,6 +41,8 @@ class Task(pydase.DataService, Generic[P, R]): self, func: Callable[Concatenate[Any, P], Coroutine[None, None, R | None]] | Callable[P, Coroutine[None, None, R | None]], + *, + autostart: bool = False, ) -> None: super().__init__() self._func_name = func.__name__ @@ -53,6 +55,8 @@ class Task(pydase.DataService, Generic[P, R]): self._task: asyncio.Task[R] | None = None self._status = TaskStatus.NOT_RUNNING self._result: R | None = None + if autostart: + self.start() @property def status(self) -> TaskStatus: