From c67d10749c8f19cb93f23518ac0d8343e2df8e83 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 5 Aug 2024 19:31:54 -0300 Subject: [PATCH] fix: Remove unused spinner method from InputOutput class --- aider/io.py | 5 ----- aider/repomap.py | 2 +- aider/utils.py | 29 +++++++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/aider/io.py b/aider/io.py index 2b9e57d0d..7a836c10c 100644 --- a/aider/io.py +++ b/aider/io.py @@ -414,8 +414,3 @@ class InputOutput: if self.chat_history_file is not None: with self.chat_history_file.open("a", encoding=self.encoding) as f: f.write(text) - - def spinner(self, text): - from aider.utils import Spinner - - return Spinner(text) diff --git a/aider/repomap.py b/aider/repomap.py index 0f2e3f9f6..01574fe17 100644 --- a/aider/repomap.py +++ b/aider/repomap.py @@ -402,7 +402,7 @@ class RepoMap: if not mentioned_idents: mentioned_idents = set() - spin = self.io.spinner("Preparing repo map") + spin = Spinner("Preparing repo map") ranked_tags = self.get_ranked_tags( chat_fnames, diff --git a/aider/utils.py b/aider/utils.py index 3ac7d1dc5..283c87f1f 100644 --- a/aider/utils.py +++ b/aider/utils.py @@ -239,6 +239,35 @@ def run_install(cmd): return False, output +class Spinner: + spinner_chars = itertools.cycle(["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]) + + def __init__(self, text): + self.text = text + self.start_time = time.time() + self.last_update = 0 + self.visible = False + + def step(self): + current_time = time.time() + if not self.visible and current_time - self.start_time >= 0.5: + self.visible = True + self._step() + elif self.visible and current_time - self.last_update >= 0.1: + self._step() + self.last_update = current_time + + def _step(self): + if not self.visible: + return + + print(f"\r{self.text} {next(self.spinner_chars)}\r{self.text} ", end="", flush=True) + + def end(self): + if self.visible: + print("\r" + " " * (len(self.text) + 3)) + + def check_pip_install_extra(io, module, prompt, pip_install_cmd): try: __import__(module)