Индикатор прогресса загрузки в 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])
        ...

но как сделать не могу понять, подскажите пожалуйста


Ответы (0 шт):