Source code for ewokscore.taskwithprogress
from typing import Optional
from .task import Task
from .progress import BaseProgress
[docs]
class TaskWithProgress(Task, register=False):
"""
Task within a progress to display task advancement
"""
def __init__(self, *args, **kw):
self._task_progress: Optional[BaseProgress] = kw.pop("progress", None)
super().__init__(*args, **kw)
@property
def progress(self) -> Optional[int]:
"""Task advancement. If a task progress is not provided then return
None"""
if self._task_progress is not None:
return self._task_progress.progress
else:
return None
@progress.setter
def progress(self, progress: int):
if self._task_progress:
current = self._task_progress.progress
self._task_progress.progress = progress
new = self._task_progress.progress
if current != new:
self._send_event(event="progress", progress=new)