From 5cac0b764f128d3f1090486dbd74a4c765cddbb4 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 5 Aug 2024 17:25:20 -0300 Subject: [PATCH] feat: move Spinner to top level, don't show elapsed --- aider/io.py | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/aider/io.py b/aider/io.py index edf339c20..21b36d8f9 100644 --- a/aider/io.py +++ b/aider/io.py @@ -6,6 +6,18 @@ from collections import defaultdict from datetime import datetime from pathlib import Path +class Spinner: + def __init__(self, io, text): + self.io = io + self.text = text + print(f"{self.text} {next(self.io.spinner_chars)}", end="\r", flush=True) + + def step(self): + print(f"{self.text} {next(self.io.spinner_chars)}", end="\r", flush=True) + + def end(self): + print(f"{self.text} Done!") + from prompt_toolkit.completion import Completer, Completion from prompt_toolkit.enums import EditingMode from prompt_toolkit.history import FileHistory @@ -419,27 +431,4 @@ class InputOutput: f.write(text) def spinner(self, text): - class Spinner: - def __init__(self, io, text): - self.io = io - self.text = text - self.start_time = time.time() - self.last_update = self.start_time - print(f"{self.text} {next(self.io.spinner_chars)}", end="\r", flush=True) - - def step(self): - current_time = time.time() - if current_time - self.last_update >= 0.1: # Only update every 1/10 second - elapsed = current_time - self.start_time - print( - f"{self.text} {next(self.io.spinner_chars)} ({elapsed:.1f}s)", - end="\r", - flush=True, - ) - self.last_update = current_time - - def end(self): - elapsed = time.time() - self.start_time - print(f"{self.text} Done! ({elapsed:.1f}s)") - return Spinner(self, text)