Browse Source

Print progress less frequently

master
JustAnotherArchivist 1 year ago
parent
commit
0933c2adc0
1 changed files with 8 additions and 3 deletions
  1. +8
    -3
      ia-upload-stream

+ 8
- 3
ia-upload-stream View File

@@ -112,15 +112,20 @@ def file_progress_bar(f, mode, description, size = None):
wrappedFile = tqdm.utils.CallbackIOWrapper(t.update, f, mode)
yield wrappedFile
else:
# Simple progress bar that just prints a new line with elapsed time and size in MiB on every read or write
# Simple progress bar that just prints a new line with elapsed time and size in MiB on every read or write if it hasn't printed for at least a second
processedSize = 0
startTime = time.time()
lastPrintTime = 0
def _progress(inc):
nonlocal processedSize
nonlocal processedSize, lastPrintTime
processedSize += inc
now = time.time()
if now - lastPrintTime < 1:
return
proc = f'{processedSize / size * 100 :.0f}%, ' if size else ''
of = f' of {size / 1048576 :.2f}' if size else ''
print(f'\r{description}: {proc}{processedSize / 1048576 :.2f}{of} MiB, {time.time() - startTime :.1f} s', end = '', file = sys.stderr)
print(f'\r{description}: {proc}{processedSize / 1048576 :.2f}{of} MiB, {now - startTime :.1f} s', end = '', file = sys.stderr)
lastPrintTime = now
class Wrapper:
def __init__(self, wrapped):
object.__setattr__(self, '_wrapped', wrapped)


Loading…
Cancel
Save