blob: 0072608a3055220d7133346395816c1d167b3faa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
"""Utilities that might be useful elsewhere."""
from collections import namedtuple
ProgressIndicator = namedtuple(
"ProgressIndicator", ("filesize", "processedsize", "currentline", "percent"))
def make_progress_calculator(filesize: int):
"""
Returns a function that takes two arguments, `linenumber` and `linetext` and
return a `ProgressIndicator` object with the computed progress.
"""
processedsize = 0
def __calculator__(linenumber: int, linetext: str) -> ProgressIndicator:
nonlocal processedsize
processedsize = processedsize + len(linetext)
return ProgressIndicator(
filesize, processedsize, linenumber,
((processedsize/filesize) * 100))
return __calculator__
|