Альтернативные способы получения contet-length через GithubApi
Я использую tdqm+urlibчтобы создавать локальную копию гитхаб репозитория, скачивая его как zip. Для правильного отображения процентов загрузки необходим размер файла (header content-length), который не содержится при скачивании архива с GitHub. Решение кажется очевидным, просто каким-то образом получать размер ветки через Github Api, но я не могу найти подходящего метода для этой задачи. код: https://github.com/SPRAVEDLIVO/RatInstaller
import urllib.request
from tqdm import tqdm
# https://stackoverflow.com/questions/15644964/python-progress-bar-and-downloads
def downloadFileWithBar(url, output_path):
with DownloadProgressBar(unit='B', unit_scale=True,
miniters=1, desc=url.split('/')[-1], ascii=True) as t:
urllib.request.urlretrieve(url, filename=output_path, reporthook=t.update_to)
class DownloadProgressBar(tqdm):
def update_to(self, b=1, bsize=1, tsize=None):
if tsize is not None:
self.total = tsize
self.update(b * bsize - self.n)
downloadFileWithBar("https://github.com/git/git/archive/master.zip", "master.zip")
Ответы (1 шт):
Автор решения: SPRAVEDLIVO
→ Ссылка
https://developer.github.com/v3/git/trees/ Проблема решается суммированием параметра size всех файлов, получаемых от запроса к API.