diff --git a/dvc/progress.py b/dvc/progress.py index 04d8d953d..c4ce7c6a2 100644 --- a/dvc/progress.py +++ b/dvc/progress.py @@ -40,6 +40,10 @@ class Tqdm(tqdm): bytes=False, # pylint: disable=W0622 desc_truncate=None, leave=None, + bar_format=( + "{percentage:3.0f}%|{bar:10}|{desc} {bar:-10b}{n}/{total}" + " [{elapsed}<{remaining}, {rate_fmt:>11}{postfix}]" + ), **kwargs ): """ @@ -49,6 +53,7 @@ class Tqdm(tqdm): kwargs : anything accepted by `tqdm.tqdm()` """ kwargs = deepcopy(kwargs) + kwargs.setdefault("unit_scale", True) if bytes: for k, v in dict( unit="B", unit_scale=True, unit_divisor=1024, miniters=1 @@ -62,14 +67,18 @@ class Tqdm(tqdm): >= logging.CRITICAL ) super(Tqdm, self).__init__( - iterable=iterable, disable=disable, leave=leave, **kwargs + iterable=iterable, + disable=disable, + leave=leave, + bar_format=bar_format, + **kwargs ) def update_desc(self, desc, n=1, truncate=True): """ - Calls `set_description(truncate(desc))` and `update(n)` + Calls `set_description_str(truncate(desc))` and `update(n)` """ - self.set_description( + self.set_description_str( self.truncate(desc) if truncate else desc, refresh=False ) self.update(n) diff --git a/dvc/remote/base.py b/dvc/remote/base.py index 67b174c44..544dea2ed 100644 --- a/dvc/remote/base.py +++ b/dvc/remote/base.py @@ -638,7 +638,9 @@ class RemoteBASE(object): if not self.no_traverse: return list(set(checksums) & set(self.all())) - with Tqdm(total=len(checksums), unit="md5") as pbar: + with Tqdm( + desc="Querying remote cache", total=len(checksums), unit="md5" + ) as pbar: def exists_with_progress(path_info): ret = self.exists(path_info) diff --git a/dvc/remote/local/__init__.py b/dvc/remote/local/__init__.py index 8381e3511..fdbdc865b 100644 --- a/dvc/remote/local/__init__.py +++ b/dvc/remote/local/__init__.py @@ -254,7 +254,9 @@ class RemoteLOCAL(RemoteBASE): def cache_exists(self, checksums, jobs=None): return [ checksum - for checksum in Tqdm(checksums, unit="md5") + for checksum in Tqdm( + checksums, unit="md5", desc="Querying local cache" + ) if not self.changed_cache_file(checksum) ] @@ -319,7 +321,6 @@ class RemoteLOCAL(RemoteBASE): ret = self._group(checksum_infos, show_checksums=show_checksums) or {} md5s = list(ret) - logger.info("Collecting information from local cache...") local_exists = self.cache_exists(md5s, jobs=jobs) # This is a performance optimization. We can safely assume that, @@ -329,7 +330,6 @@ class RemoteLOCAL(RemoteBASE): if download and sorted(local_exists) == sorted(md5s): remote_exists = local_exists else: - logger.info("Collecting information from remote cache...") remote_exists = list(remote.cache_exists(md5s, jobs=jobs)) self._fill_statuses(ret, local_exists, remote_exists) diff --git a/dvc/remote/ssh/__init__.py b/dvc/remote/ssh/__init__.py index d5df6a75e..4c48c6b02 100644 --- a/dvc/remote/ssh/__init__.py +++ b/dvc/remote/ssh/__init__.py @@ -267,7 +267,9 @@ class RemoteSSH(RemoteBASE): if not self.no_traverse: return list(set(checksums) & set(self.all())) - with Tqdm(total=len(checksums), unit="md5") as pbar: + with Tqdm( + desc="Querying remote cache", total=len(checksums), unit="md5" + ) as pbar: def exists_with_progress(chunks): return self.batch_exists(chunks, callback=pbar.update_desc) @@ -278,5 +280,5 @@ class RemoteSSH(RemoteBASE): results = executor.map(exists_with_progress, chunks) in_remote = itertools.chain.from_iterable(results) ret = list(itertools.compress(checksums, in_remote)) - pbar.update_desc("", 0) # clear path name description + pbar.set_description_str("Querying remote cache") return ret diff --git a/dvc/repo/checkout.py b/dvc/repo/checkout.py index e335763a2..077c18f5c 100644 --- a/dvc/repo/checkout.py +++ b/dvc/repo/checkout.py @@ -51,4 +51,4 @@ def checkout(self, target=None, with_deps=False, force=False, recursive=False): ) stage.checkout(force=force, progress_callback=pbar.update_desc) - pbar.update_desc("Checkout", 0) # clear path name description + pbar.set_description_str("Checkout") diff --git a/setup.py b/setup.py index 94c3b5153..b69333af5 100644 --- a/setup.py +++ b/setup.py @@ -61,7 +61,7 @@ install_requires = [ "funcy>=1.12", "pathspec>=0.5.9", "shortuuid>=0.5.0", - "tqdm>=4.34.0", + "tqdm>=4.35.0", "win-unicode-console>=0.5; sys_platform == 'win32'", ]