File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change 1
1
import logging
2
2
import sys
3
+ import time
3
4
from contextlib import contextmanager
4
5
5
6
from rich .console import RenderableType
18
19
from cubed .runtime .pipeline import visit_nodes
19
20
from cubed .runtime .types import Callback
20
21
22
+ REFRESH_PER_SECOND = 10
23
+
21
24
22
25
class RichProgressBar (Callback ):
23
26
"""Rich progress bar for a computation."""
@@ -50,6 +53,7 @@ def on_compute_start(self, event):
50
53
self .logger_aware_progress = logger_aware_progress
51
54
self .progress = progress
52
55
self .progress_tasks = progress_tasks
56
+ self .last_updated = time .time ()
53
57
54
58
def on_compute_end (self , event ):
55
59
self .logger_aware_progress .__exit__ (None , None , None )
@@ -58,8 +62,11 @@ def on_operation_start(self, event):
58
62
self .progress .start_task (self .progress_tasks [event .name ])
59
63
60
64
def on_task_end (self , event ):
65
+ now = time .time ()
66
+ refresh = now - self .last_updated > (1.0 / REFRESH_PER_SECOND )
67
+ self .last_updated = now
61
68
self .progress .update (
62
- self .progress_tasks [event .name ], advance = event .num_tasks , refresh = True
69
+ self .progress_tasks [event .name ], advance = event .num_tasks , refresh = refresh
63
70
)
64
71
65
72
You can’t perform that action at this time.
0 commit comments