fix: limit spinner update rate to at most 1/10 second

This commit is contained in:
Paul Gauthier (aider) 2024-08-05 17:24:54 -03:00
parent 11bf7defea
commit 8f8b0ed06e

View file

@ -424,15 +424,19 @@ class InputOutput:
self.io = io self.io = io
self.text = text self.text = text
self.start_time = time.time() self.start_time = time.time()
self.last_update = self.start_time
print(f"{self.text} {next(self.io.spinner_chars)}", end="\r", flush=True) print(f"{self.text} {next(self.io.spinner_chars)}", end="\r", flush=True)
def step(self): def step(self):
elapsed = time.time() - self.start_time current_time = time.time()
print( if current_time - self.last_update >= 0.1: # Only update every 1/10 second
f"{self.text} {next(self.io.spinner_chars)} ({elapsed:.1f}s)", elapsed = current_time - self.start_time
end="\r", print(
flush=True, f"{self.text} {next(self.io.spinner_chars)} ({elapsed:.1f}s)",
) end="\r",
flush=True,
)
self.last_update = current_time
def end(self): def end(self):
elapsed = time.time() - self.start_time elapsed = time.time() - self.start_time