from .I18N import _ # Klasa pomocnicza do monitorowania postępu uploadu class ProgressFile: def __init__(self, f, callback, total_size, cancel_event=None): self.f = f self.callback = callback self.cancel_event = cancel_event self.total_size = total_size self.read_bytes = 0 def read(self, size=-1): # Check for cancellation before reading more data if self.cancel_event is not None and self.cancel_event.is_set(): raise Exception(_("Upload cancelled by user.")) data = self.f.read(size) self.read_bytes += len(data) self.callback(self.read_bytes, self.total_size) return data def __getattr__(self, attr): return getattr(self.f, attr)