Title: FEAT: Overall progress bar for multi-file downloads · Issue #71 · dbpedia/databus-python-client · GitHub
Open Graph Title: FEAT: Overall progress bar for multi-file downloads · Issue #71 · dbpedia/databus-python-client
X Title: FEAT: Overall progress bar for multi-file downloads · Issue #71 · dbpedia/databus-python-client
Description: Feature Request **Describe the feature you'd like** When downloading a group, artifact, or collection — which can contain dozens or hundreds of files — the CLI currently shows an individual `tqdm` progress bar for each file but gives no ...
Open Graph Description: Feature Request **Describe the feature you'd like** When downloading a group, artifact, or collection — which can contain dozens or hundreds of files — the CLI currently shows an individual `tqdm` ...
X Description: Feature Request **Describe the feature you'd like** When downloading a group, artifact, or collection — which can contain dozens or hundreds of files — the CLI currently shows an individual `tq...
Opengraph URL: https://github.com/dbpedia/databus-python-client/issues/71
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"FEAT: Overall progress bar for multi-file downloads ","articleBody":" # Feature Request \n \n **Describe the feature you'd like** \n When downloading a group, artifact, or collection — which can contain dozens or \n hundreds of files — the CLI currently shows an individual `tqdm` progress bar for \n each file but gives no indication of overall progress. \n \n Add a second, outer progress bar that tracks overall batch progress: \n \n \n Downloading group: dbpedia/mappings \n Overall [=====\u003e ] 12/47 files | 340 MiB / 1.2 GiB \n Current [=========\u003e ] file.ttl.bz2 87 MiB [12.3 MiB/s] \n \n \n **Why is this feature important?** \n - When downloading a large collection (e.g. `dbpedia-snapshot-2022-12` with 100+ \n files and several GiB of data), the user has no way to know how much is left or \n how long it will take. \n - The current experience shows one bar per file that disappears after each download, \n making it feel like an endless sequence with no end in sight. \n - An overall counter (e.g. `12/47 files`) gives users enough context to leave the \n process running with confidence. \n \n **Describe the proposed implementation** \n The `_download_files()` function in `download.py` iterates over a list of URLs. \n Wrapping that loop with a `tqdm` outer bar requires minimal change: \n \n ```python \n from tqdm import tqdm \n \n def _download_files(urls, localDir, ...): \n with tqdm(total=len(urls), desc=\"Overall\", unit=\"file\", position=0) as overall: \n for url in urls: \n _download_file(url, localDir, ...) \n overall.update(1) \n \n The per-file tqdm bar inside _download_file would use position=1 to render \n below the overall bar without overwriting it. \n \n Optionally, if file sizes are known upfront (e.g. from JSON-LD byteSize fields), \n the overall bar can also show bytes: \n \n Overall [=====\u003e ] 12/47 files | 340 MiB / 1.2 GiB \n \n Describe alternatives you've considered \n \n • Printing \"Downloading file N of M: ...\" as plain text before each file — simple \n to implement but less visually clear than a progress bar. \n • Suppressing per-file bars and only showing the overall bar — loses per-file speed \n and ETA information which is useful for large individual files. \n \n Additional context \n \n • tqdm is already a dependency ( tqdm = \"^4.42.1\" in pyproject.toml ) so no \n new dependencies are needed. \n • Affected functions: _download_files() , _download_collection() , \n _download_artifact() , _download_group() — all in download.py . \n • The tqdm position parameter supports nested bars natively. \n ","author":{"url":"https://github.com/Prakhar54-byte","@type":"Person","name":"Prakhar54-byte"},"datePublished":"2026-07-05T20:09:50.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/71/databus-python-client/issues/71"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:330441fc-b5a7-820f-1ab6-9823e167a7d4 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C922:3CECE3:359DAF:47E184:6A4C2AF8 |
| html-safe-nonce | 80bba8ad9b258e51b4c87e5cd3bd412088c6886097c3b96f724e4308a655d1ff |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDOTIyOjNDRUNFMzozNTlEQUY6NDdFMTg0OjZBNEMyQUY4IiwidmlzaXRvcl9pZCI6IjY1MzU4NDA5OTgxMzU0NDIxNjgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | fcf1ba1ffcf29ece31b1bcd961e942a206c3660db43164ab02794dad0082d993 |
| hovercard-subject-tag | issue:4814272686 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/dbpedia/databus-python-client/71/issue_layout |
| twitter:image | https://opengraph.githubassets.com/38cf7fb7b683d253c898e2118eabcaf7a80fa44769088e765039fd27819f69a4/dbpedia/databus-python-client/issues/71 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/38cf7fb7b683d253c898e2118eabcaf7a80fa44769088e765039fd27819f69a4/dbpedia/databus-python-client/issues/71 |
| og:image:alt | Feature Request **Describe the feature you'd like** When downloading a group, artifact, or collection — which can contain dozens or hundreds of files — the CLI currently shows an individual `tqdm` ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | Prakhar54-byte |
| hostname | github.com |
| expected-hostname | github.com |
| None | 1b6b16d04026f131a36d57e3b01d0f4d26a51800edf48bf5ed0256e0ac905511 |
| turbo-cache-control | no-preview |
| go-import | github.com/dbpedia/databus-python-client git https://github.com/dbpedia/databus-python-client.git |
| octolytics-dimension-user_id | 2864602 |
| octolytics-dimension-user_login | dbpedia |
| octolytics-dimension-repository_id | 605605041 |
| octolytics-dimension-repository_nwo | dbpedia/databus-python-client |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 605605041 |
| octolytics-dimension-repository_network_root_nwo | dbpedia/databus-python-client |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 9ee13484b32cf23e15fde191da4c9aa47d41201c |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width