Path 1: 6 calls (0.6)

0 (6)

None (6)

None (6)

None (6)

'tick 0' (1) 'tick 1' (1) 'tick 2' (1) 'tick 3' (1) 'tick 4' (1) 'tick 5' (1)

None (6)

False (6)

{} (6)

1def update(
2        self,
3        task_id: TaskID,
4        *,
5        total: Optional[float] = None,
6        completed: Optional[float] = None,
7        advance: Optional[float] = None,
8        description: Optional[str] = None,
9        visible: Optional[bool] = None,
10        refresh: bool = False,
11        **fields: Any,
12    ) -> None:
13        """Update information associated with a task.
14
15        Args:
16            task_id (TaskID): Task id (returned by add_task).
17            total (float, optional): Updates task.total if not None.
18            completed (float, optional): Updates task.completed if not None.
19            advance (float, optional): Add a value to task.completed if not None.
20            description (str, optional): Change task description if not None.
21            visible (bool, optional): Set visible flag if not None.
22            refresh (bool): Force a refresh of progress information. Default is False.
23            **fields (Any): Additional data fields required for rendering.
24        """
25        with self._lock:
26            task = self._tasks[task_id]
27            completed_start = task.completed
28
29            if total is not None and total != task.total:
30                task.total = total
31                task._reset()
32            if advance is not None:
33                task.completed += advance
34            if completed is not None:
35                task.completed = completed
36            if description is not None:
37                task.description = description
38            if visible is not None:
39                task.visible = visible
40            task.fields.update(fields)
41            update_completed = task.completed - completed_start
42
43            current_time = self.get_time()
44            old_sample_time = current_time - self.speed_estimate_period
45            _progress = task._progress
46
47            popleft = _progress.popleft
48            while _progress and _progress[0].timestamp < old_sample_time:
49                popleft()
50            if update_completed > 0:
51                _progress.append(ProgressSample(current_time, update_completed))
52            if (
53                task.total is not None
54                and task.completed >= task.total
55                and task.finished_time is None
56            ):
57                task.finished_time = task.elapsed
58
59        if refresh:
60            self.refresh()
            

Path 2: 3 calls (0.3)

4 (3)

200 (3)

200 (3)

50 (3)

None (3)

True (3)

True (3)

{} (3)

1def update(
2        self,
3        task_id: TaskID,
4        *,
5        total: Optional[float] = None,
6        completed: Optional[float] = None,
7        advance: Optional[float] = None,
8        description: Optional[str] = None,
9        visible: Optional[bool] = None,
10        refresh: bool = False,
11        **fields: Any,
12    ) -> None:
13        """Update information associated with a task.
14
15        Args:
16            task_id (TaskID): Task id (returned by add_task).
17            total (float, optional): Updates task.total if not None.
18            completed (float, optional): Updates task.completed if not None.
19            advance (float, optional): Add a value to task.completed if not None.
20            description (str, optional): Change task description if not None.
21            visible (bool, optional): Set visible flag if not None.
22            refresh (bool): Force a refresh of progress information. Default is False.
23            **fields (Any): Additional data fields required for rendering.
24        """
25        with self._lock:
26            task = self._tasks[task_id]
27            completed_start = task.completed
28
29            if total is not None and total != task.total:
30                task.total = total
31                task._reset()
32            if advance is not None:
33                task.completed += advance
34            if completed is not None:
35                task.completed = completed
36            if description is not None:
37                task.description = description
38            if visible is not None:
39                task.visible = visible
40            task.fields.update(fields)
41            update_completed = task.completed - completed_start
42
43            current_time = self.get_time()
44            old_sample_time = current_time - self.speed_estimate_period
45            _progress = task._progress
46
47            popleft = _progress.popleft
48            while _progress and _progress[0].timestamp < old_sample_time:
49                popleft()
50            if update_completed > 0:
51                _progress.append(ProgressSample(current_time, update_completed))
52            if (
53                task.total is not None
54                and task.completed >= task.total
55                and task.finished_time is None
56            ):
57                task.finished_time = task.elapsed
58
59        if refresh:
60            self.refresh()
            

Path 3: 1 calls (0.1)

0 (1)

13 (1)

None (1)

None (1)

None (1)

None (1)

False (1)

{} (1)

1def update(
2        self,
3        task_id: TaskID,
4        *,
5        total: Optional[float] = None,
6        completed: Optional[float] = None,
7        advance: Optional[float] = None,
8        description: Optional[str] = None,
9        visible: Optional[bool] = None,
10        refresh: bool = False,
11        **fields: Any,
12    ) -> None:
13        """Update information associated with a task.
14
15        Args:
16            task_id (TaskID): Task id (returned by add_task).
17            total (float, optional): Updates task.total if not None.
18            completed (float, optional): Updates task.completed if not None.
19            advance (float, optional): Add a value to task.completed if not None.
20            description (str, optional): Change task description if not None.
21            visible (bool, optional): Set visible flag if not None.
22            refresh (bool): Force a refresh of progress information. Default is False.
23            **fields (Any): Additional data fields required for rendering.
24        """
25        with self._lock:
26            task = self._tasks[task_id]
27            completed_start = task.completed
28
29            if total is not None and total != task.total:
30                task.total = total
31                task._reset()
32            if advance is not None:
33                task.completed += advance
34            if completed is not None:
35                task.completed = completed
36            if description is not None:
37                task.description = description
38            if visible is not None:
39                task.visible = visible
40            task.fields.update(fields)
41            update_completed = task.completed - completed_start
42
43            current_time = self.get_time()
44            old_sample_time = current_time - self.speed_estimate_period
45            _progress = task._progress
46
47            popleft = _progress.popleft
48            while _progress and _progress[0].timestamp < old_sample_time:
49                popleft()
50            if update_completed > 0:
51                _progress.append(ProgressSample(current_time, update_completed))
52            if (
53                task.total is not None
54                and task.completed >= task.total
55                and task.finished_time is None
56            ):
57                task.finished_time = task.elapsed
58
59        if refresh:
60            self.refresh()