@@ -114,6 +114,8 @@ def __init__(
114114 self ._mo_replace : Callable [[object ], None ] | None = None
115115 self ._task_state : list [dict [str , Any ]] = []
116116 self ._start_times : list [float ] = []
117+ self ._last_render_time : float = 0.0
118+ self ._min_render_interval : float = 0.1
117119
118120 @property
119121 def is_enabled (self ) -> bool :
@@ -187,7 +189,10 @@ def update(
187189 if is_last :
188190 self ._task_state [task_id ]["completed" ] = self ._task_state [task_id ]["total" ]
189191
190- self ._render ()
192+ now = perf_counter ()
193+ if is_last or (now - self ._last_render_time ) >= self ._min_render_interval :
194+ self ._last_render_time = now
195+ self ._render ()
191196
192197 def _render (self ) -> None :
193198 """Render HTML progress display to marimo output."""
@@ -299,6 +304,8 @@ def __init__(self, theme: str | None = None):
299304 self ._mo_replace : Callable [[object ], None ] | None = None
300305 self ._start_time : float = 0.0
301306 self ._task_id = 0
307+ self ._last_render_time : float = 0.0
308+ self ._min_render_interval : float = 0.1
302309
303310 def __enter__ (self ) -> Self :
304311 """Enter the context manager."""
@@ -313,7 +320,7 @@ def __enter__(self) -> Self:
313320
314321 def __exit__ (self , exc_type , exc_val , exc_tb ) -> None :
315322 """Exit the context manager with final render."""
316- self ._render ()
323+ self ._render (force = True )
317324
318325 def add_task (
319326 self , description : str , completed : int = 0 , total : int | None = None , ** kwargs
@@ -368,13 +375,18 @@ def update(
368375 if refresh :
369376 self ._render ()
370377
371- def _render (self ) -> None :
378+ def _render (self , force : bool = False ) -> None :
372379 """Render HTML progress to marimo output."""
373380 if self ._mo_replace is None :
374381 return
375382
383+ now = perf_counter ()
384+ if not force and (now - self ._last_render_time ) < self ._min_render_interval :
385+ return
386+
376387 import marimo as mo
377388
389+ self ._last_render_time = now
378390 html = self ._render_html ()
379391 self ._mo_replace (mo .Html (html ))
380392
0 commit comments