Skip to content

Commit 10d5a1a

Browse files
committed
feat: added loading effect when script runs
1 parent e349940 commit 10d5a1a

File tree

4 files changed

+40
-4
lines changed

4 files changed

+40
-4
lines changed

langdiversity/extras/__init__.py

Whitespace-only changes.

langdiversity/extras/spinner.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import itertools
2+
import sys
3+
import threading
4+
import time
5+
from contextlib import contextmanager
6+
7+
@contextmanager
8+
def loading_spinner(label, current_step=None, total_steps=None):
9+
spinner_done = False
10+
11+
def spinner_function():
12+
spinner = itertools.cycle(["-", "/", "|", "\\"])
13+
while not spinner_done:
14+
prefix = f"[{current_step}/{total_steps}] " if current_step is not None and total_steps is not None else ""
15+
sys.stdout.write(f'\r{prefix}{label} {next(spinner)}')
16+
sys.stdout.flush()
17+
time.sleep(0.1)
18+
print("\r", end="")
19+
print(f"{prefix}{label} ✓")
20+
21+
spinner_thread = threading.Thread(target=spinner_function)
22+
spinner_thread.start()
23+
24+
try:
25+
yield
26+
finally:
27+
spinner_done = True
28+
spinner_thread.join()
29+
30+

langdiversity/utils/prompt_selection.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from typing import List
22

3+
from langdiversity.extras.spinner import loading_spinner
4+
35
from langdiversity.measures import AbstractMeasure
46
from langdiversity.models import AbstractBaseModel
57

@@ -29,9 +31,13 @@ def generate(self, prompts: List[str]):
2931
selected_diversity = float("inf") if self.selection == "min" else float("-inf")
3032

3133
info = []
32-
for prompt in prompts:
33-
responses = self.model.generate(prompt, self.num_responses)
34-
diversity = self.diversity_measure.generate(responses)
34+
35+
total_prompts = len(prompts)
36+
for i, prompt in enumerate(prompts):
37+
with loading_spinner(f"Collecting {self.num_responses} responses...", current_step=i+1, total_steps=total_prompts):
38+
responses = self.model.generate(prompt, self.num_responses)
39+
with loading_spinner("Performing diversity measure calculations...", current_step=i+1, total_steps=total_prompts):
40+
diversity = self.diversity_measure.generate(responses)
3541

3642
if self.selection == "max" and diversity > selected_diversity:
3743
selected_diversity = diversity

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
setup(
99
name='langdiversity',
1010
packages=find_packages(exclude=['tests']),
11-
version='1.0.0',
11+
version='1.0.1',
1212
description='A tool to elevate your language models with insightful diversity metrics.',
1313
long_description=long_description,
1414
long_description_content_type="text/markdown",

0 commit comments

Comments
 (0)