callback.py 786 B

12345678910111213141516171819202122232425262728293031323334
  1. from tqdm.auto import tqdm
  2. class ProgressCallback:
  3. def __init__(self, filename: str, file_size: int):
  4. self.filename = filename
  5. self.file_size = file_size
  6. def update(self, size: int):
  7. pass
  8. def end(self):
  9. pass
  10. class TqdmCallback(ProgressCallback):
  11. def __init__(self, filename: str, file_size: int):
  12. super().__init__(filename, file_size)
  13. self.progress = tqdm(
  14. unit='B',
  15. unit_scale=True,
  16. unit_divisor=1024,
  17. total=file_size if file_size > 0 else 1,
  18. initial=0,
  19. desc='Downloading [' + self.filename + ']',
  20. leave=True)
  21. def update(self, size: int):
  22. self.progress.update(size)
  23. def end(self):
  24. self.progress.close()