Индикатор прогресса загрузки в tqdm
Хотелось бы объединить эти 2 подхода: https://github.com/tqdm/tqdm/blob/master/examples/tqdm_wget.py https://stackoverflow.com/questions/37748105/how-to-use-progressbar-module-with-urlretrieve получился такой код по 1 ссылке:
from tqdm import tqdm
from urllib.request import urlretrieve
LINK = 'https://caspersci.uk.to/matryoshka.zip'
class TqdmUpTo(tqdm):
def update_to(self, b=1, bsize=1, tsize=None):
if tsize in not None:
self.total = tsize
return self.update(b * bsize - self.n)
with TqdmUpTo(unit='B', unit_scale=True, unit_divisor=1024, miniters=1,
desc=LINK.split('/')[-1]) as t:
urlretrieve(LINK, '/home/user/example', reporthook=t.update_to, data=None)
t.total = t.n
но т.к. в моём проекте есть класс, хотелось бы без использования класса TqdmUpTo как метод это добавить в уже существующий класс, вот так в проекте выглядит метод загрузки:
class Example(object):
def download_object(self, object_name):
with TqdmUpTo(unit='B', unit_scale=True, unit_divisor=1024, miniters=1,
desc=LINK.split('/')[-1]) as t:
urlretrieve(LINK, '/home/user/example', reporthook=t.update_to, data=None)
class TqdmUpTo(tqdm):
def update_to(self, b=1, bsize=1, tsize=None):
if tsize in not None:
self.total = tsize
return self.update(b * bsize - self.n)
а хотелось бы так:
class Example(object):
def download_object(self, object_name):
urlretrieve(LINK, '/home/user/example', reporthook=show_progress_bar, data=None)
def show_progress_bar(self):
tqdm(unit='B', unit_scale=True, unit_divisor=1024, miniters=1,
desc=LINK.split('/')[-1])
...
но как сделать не могу понять, подскажите пожалуйста