Skip to content

Commit 94c3660

Browse files
Added Progress bar
1 parent a479053 commit 94c3660

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

src/thread/cli/base.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import os
22
import time
33
import json
4-
import typer
54
import inspect
65
import importlib
76

7+
import typer
88
import logging
9+
from rich.progress import Progress, TextColumn, BarColumn, TimeRemainingColumn, TimeElapsedColumn
910
from typing import Union, Pattern, Required, Optional, Callable
1011

1112
from . import __version__
@@ -109,8 +110,8 @@ def process(
109110
ds: Union[list, tuple, set, None] = None
110111
try:
111112
logger.info('Attempting to interpret dataset')
112-
ds = json.loads(dataset)
113-
logger.debug(f'Evaluated dataset: %s' % ds)
113+
ds = eval(dataset)
114+
logger.debug(f'Evaluated dataset: %s' % (str(ds)[:125] + '...' if len(str(ds)) > 125 else ds))
114115

115116
if not isinstance(ds, (list, tuple, set)):
116117
logger.info('Invalid dataset literal')
@@ -158,7 +159,23 @@ def process(
158159
logger.info('Started parallel process')
159160
logger.info('Waiting for parallel process to complete, this may take a while...')
160161

162+
with Progress(
163+
TextColumn('[bold blue]{task.description}', justify='right'),
164+
BarColumn(bar_width=None),
165+
'[progress.percentage]{task.percentage:>3.1f}%',
166+
'•',
167+
TimeRemainingColumn(),
168+
TimeElapsedColumn(),
169+
) as progress:
170+
percentage = 0
171+
job = progress.add_task('Working...', total = 100, fields = 'a')
172+
173+
while percentage < 100:
174+
percentage = round(sum(i.progress for i in newProcess._threads) / (len(newProcess._threads) or 8), 2) * 100
175+
progress.update(job, completed = percentage)
176+
time.sleep(0.1)
177+
161178
result = newProcess.get_return_values()
162179

163180
logger.info(f'Completed in {(time.perf_counter() - start_t):.5f}s')
164-
typer.echo(result)
181+
# typer.echo(result)

0 commit comments

Comments
 (0)