adds autostart flag to task

This commit is contained in:
Mose Müller 2024-08-06 09:34:43 +02:00
parent e4a3cf341f
commit 1e02f12794
2 changed files with 5 additions and 1 deletions

View File

@ -26,6 +26,6 @@ def task(
logger.info("Task '%s' was cancelled", func.__name__) logger.info("Task '%s' was cancelled", func.__name__)
return None return None
return Task(wrapper) return Task(wrapper, autostart=autostart)
return decorator return decorator

View File

@ -41,6 +41,8 @@ class Task(pydase.DataService, Generic[P, R]):
self, self,
func: Callable[Concatenate[Any, P], Coroutine[None, None, R | None]] func: Callable[Concatenate[Any, P], Coroutine[None, None, R | None]]
| Callable[P, Coroutine[None, None, R | None]], | Callable[P, Coroutine[None, None, R | None]],
*,
autostart: bool = False,
) -> None: ) -> None:
super().__init__() super().__init__()
self._func_name = func.__name__ self._func_name = func.__name__
@ -53,6 +55,8 @@ class Task(pydase.DataService, Generic[P, R]):
self._task: asyncio.Task[R] | None = None self._task: asyncio.Task[R] | None = None
self._status = TaskStatus.NOT_RUNNING self._status = TaskStatus.NOT_RUNNING
self._result: R | None = None self._result: R | None = None
if autostart:
self.start()
@property @property
def status(self) -> TaskStatus: def status(self) -> TaskStatus: