11import time
22
3- from tqdm import tqdm
3+ from tqdm . auto import tqdm
44
55import RATapi .rat_core
66from RATapi .inputs import make_input
@@ -16,18 +16,23 @@ class ProgressBar:
1616 ----------
1717 display : bool, default: True
1818 Indicates if displaying is allowed
19-
2019 """
2120
2221 def __init__ (self , display = True ):
22+ self .pbar = None
2323 self .display = display
24+ self .tqdm_kwargs = {"total" : 100 , "desc" : "" , "bar_format" : "{l_bar}{bar}" , "disable" : not self .display }
25+ # Determine if the auto tqdm is standard or notebook
26+ from tqdm .asyncio import tqdm as asyncio_tqdm
27+
28+ if tqdm == asyncio_tqdm :
29+ self .tqdm_kwargs .update ({"ncols" : 90 })
2430
2531 def __enter__ (self ):
2632 if self .display :
2733 RATapi .events .register (RATapi .events .EventTypes .Progress , self .updateProgress )
28- self .pbar = tqdm (total = 100 , desc = "" , delay = 1 , bar_format = "{l_bar}{bar}" , ncols = 90 , disable = not self .display )
29- self .pbar .delay = 0
30- return self .pbar
34+
35+ return self
3136
3237 def updateProgress (self , event ):
3338 """Callback for the progress event.
@@ -37,13 +42,17 @@ def updateProgress(self, event):
3742 event: ProgressEventData
3843 The progress event data.
3944 """
40-
45+ if self .pbar is None :
46+ self .pbar = tqdm (** self .tqdm_kwargs )
4147 value = event .percent * 100
4248 self .pbar .desc = event .message
4349 self .pbar .update (value - self .pbar .n )
4450
4551 def __exit__ (self , _exc_type , _exc_val , _traceback ):
46- self .pbar .leave = False
52+ if self .pbar is not None :
53+ self .pbar .close ()
54+ print ("" ) # Print new line after bar
55+
4756 if self .display :
4857 RATapi .events .clear (RATapi .events .EventTypes .Progress , self .updateProgress )
4958
0 commit comments