From 26d756e628a6b90faca224f8af2e00af451c18f0 Mon Sep 17 00:00:00 2001 From: Hykilpikonna Date: Sat, 29 Oct 2022 19:06:56 -0400 Subject: [PATCH] [F] Fix error during download if content-length is not present --- hypy_utils/downloader.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hypy_utils/downloader.py b/hypy_utils/downloader.py index 76f875d..5407c48 100644 --- a/hypy_utils/downloader.py +++ b/hypy_utils/downloader.py @@ -23,13 +23,18 @@ def download_file(url: str, file: str | Path): term_len = os.get_terminal_size().columns bar_len = int(term_len * 0.4) except Exception: + term_len = 60 bar_len = 20 + tqdm_args = dict() r = requests.get(url, stream=True) + if 'content-length' in r.headers: + tqdm_args['total'] = int(r.headers['content-length']) / 1024 / 1024 + with open(file, 'wb') as f: - pbar = tqdm.tqdm(unit=" MB", total=int(r.headers['Content-Length']) / 1024 / 1024, + pbar = tqdm.tqdm(unit=" MB", ncols=term_len, bar_format='{desc} {rate_fmt} {remaining} [{bar}] {percentage:.0f}%', ascii=' #', - desc=file.name[:bar_len].ljust(bar_len)) + desc=file.name[:bar_len].ljust(bar_len), **tqdm_args) for chunk in r.iter_content(chunk_size=chunk_size): if chunk: pbar.update(len(chunk) / 1024 / 1024)