Skip to content

Commit 30ac8ae

Browse files
authored
Use tqdm instead of rich progress bars (#104)
1 parent 0db7044 commit 30ac8ae

File tree

3 files changed

+35
-15
lines changed

3 files changed

+35
-15
lines changed

noteable/ntbl.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22
from dataclasses import dataclass
33
from pathlib import Path
4-
from typing import Any, Dict, Iterable, List
4+
from typing import Any, Iterable, List
55

66
import click
77
import structlog
@@ -10,7 +10,7 @@
1010
from IPython.core.magic_arguments import argument, magic_arguments
1111
from IPython.utils.process import arg_split
1212
from rich import print as rprint
13-
from rich.progress import Progress, TaskID
13+
from tqdm.auto import tqdm
1414
from traitlets import Float, Unicode
1515
from traitlets.config import Configurable
1616

@@ -142,29 +142,27 @@ def process_file_update_stream(path: str, stream: DatasetOperationStream):
142142
error_message = None
143143
complete_message = None
144144

145-
with Progress() as progress:
146-
tasks_by_file_path: Dict[str, TaskID] = {}
145+
progress_bars = {}
147146

147+
try:
148148
for msg in stream:
149149
if isinstance(msg, StreamErrorMessage):
150150
error_message = msg.content.detail
151151
break
152152
elif isinstance(msg, FileProgressUpdateMessage):
153153
got_file_update_msg = True
154154

155-
if msg.content.file_name not in tasks_by_file_path:
156-
tasks_by_file_path[msg.content.file_name] = progress.add_task(
157-
msg.content.file_name, total=100.0
158-
)
155+
if msg.content.file_name not in progress_bars:
156+
progress_bars[msg.content.file_name] = tqdm(total=100.0, desc=msg.content.file_name)
159157

160-
progress.update(
161-
tasks_by_file_path[msg.content.file_name],
162-
completed=msg.content.percent_complete * 100.0,
163-
)
158+
progress_bars[msg.content.file_name].update(msg.content.percent_complete * 100.0)
164159
elif isinstance(msg, FileProgressStartMessage):
165-
progress.console.print(msg.content.message)
160+
print(msg.content.message)
166161
elif isinstance(msg, FileProgressEndMessage) and got_file_update_msg:
167162
complete_message = msg.content.message
163+
finally:
164+
for bar in progress_bars.values():
165+
bar.close()
168166

169167
if error_message:
170168
rprint(f"[red]{error_message}[/red]")

poetry.lock

Lines changed: 23 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ pymysql = {version = "1.0.2"}
4848
mysqlclient = {version = "2.1.1"}
4949
# And singlesource will be using this explicit dialect.
5050
sqlalchemy-singlestoredb = {version = "0.2.0"}
51+
tqdm = "^4.65.0"
5152

5253
[tool.poetry.group.dev.dependencies]
5354
black = "^22.1.0"

0 commit comments

Comments
 (0)