[PkgCI] Add tqdm bar while downloading artifacts (#15112)
diff --git a/experimental/regression_suite/ireers/artifacts.py b/experimental/regression_suite/ireers/artifacts.py index 92bbb52..12ad380 100644 --- a/experimental/regression_suite/ireers/artifacts.py +++ b/experimental/regression_suite/ireers/artifacts.py
@@ -7,10 +7,23 @@ from typing import Any, Callable, Collection, Dict, Union import functools from pathlib import Path +from tqdm import tqdm import urllib.parse import urllib.request +def show_progress(t): + last_b = [0] + + def update_to(b=1, bsize=1, tsize=None): + if tsize is not None: + t.total = tsize + t.update((b - last_b[0]) * bsize) + last_b[0] = b + + return update_to + + @functools.cache def get_artifact_root_dir() -> Path: # TODO: Make configurable. @@ -117,7 +130,14 @@ @staticmethod def _callback(self: "FetchedArtifact"): print(f"Downloading {self.url} -> {self.path}", flush=True, end="") - urllib.request.urlretrieve(self.url, self.path) + with tqdm( + unit="B", + unit_scale=True, + unit_divisor=1024, + miniters=1, + desc=str(self.path), + ) as t: + urllib.request.urlretrieve(self.url, self.path, reporthook=show_progress(t)) print(f": Retrieved {self.path.stat().st_size} bytes")
diff --git a/experimental/regression_suite/setup.py b/experimental/regression_suite/setup.py index 2424840..6d3e8b9 100644 --- a/experimental/regression_suite/setup.py +++ b/experimental/regression_suite/setup.py
@@ -19,6 +19,7 @@ "pytest", "pytest-xdist", "PyYAML", + "tqdm", ], extras_require={}, )