From 2c8bfbd6a1fbf8090fa11e357c5c1683d2dd8d1c Mon Sep 17 00:00:00 2001 From: Jan Gieseler Date: Fri, 26 Jun 2026 15:07:12 +0300 Subject: [PATCH] Enhance data download process with progress bar --- JupyterHub_Help.ipynb | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/JupyterHub_Help.ipynb b/JupyterHub_Help.ipynb index 1e06db1..779f413 100644 --- a/JupyterHub_Help.ipynb +++ b/JupyterHub_Help.ipynb @@ -413,13 +413,26 @@ "import zipfile\n", "import io\n", "import shutil\n", + "from tqdm.notebook import tqdm\n", "\n", "url = \"https://github.com/jgieseler/workshop3_data/archive/refs/heads/main.zip\"\n", "data_folder = \"/home/jovyan/data\"\n", "\n", "with urllib.request.urlopen(url) as response:\n", - " with zipfile.ZipFile(io.BytesIO(response.read())) as z:\n", - " z.extractall(data_folder)\n", + " total = int(response.headers.get(\"Content-Length\", 0))\n", + " chunk_size = 1024 * 1024 # 1 MB chunks\n", + " data = io.BytesIO()\n", + " with tqdm(total=total, unit=\"B\", unit_scale=True, desc=\"Downloading\") as pbar:\n", + " while True:\n", + " chunk = response.read(chunk_size)\n", + " if not chunk:\n", + " break\n", + " data.write(chunk)\n", + " pbar.update(len(chunk))\n", + " data.seek(0)\n", + "\n", + "with zipfile.ZipFile(data) as z:\n", + " z.extractall(data_folder)\n", "\n", "# GitHub adds a \"workshop3_data-main/\" subfolder, move contents up\n", "shutil.copytree(f\"{data_folder}/workshop3_data-main/\", data_folder, dirs_exist_ok=True)\n",