import sys
from . import _progresspriv
class Meter:
"""
Meter class that hides the internals of the backend implementation
from virtinst and friends
"""
format_number = _progresspriv.format_number
format_time = _progresspriv.format_time
def __init__(self, quiet=False):
self._text = None
self._size = None
self._total_read = 0
if quiet:
self._meter = _progresspriv.BaseMeter()
else:
self._meter = _progresspriv.TextMeter(output=sys.stdout)
def start(self, text, size):
self._text = text
self._size = size
self._total_read = 0
self._meter.start(text, size)
def update(self, new_total):
self._total_read = new_total
self._meter.update(new_total)
def end(self):
self._meter.end()
def make_meter(quiet):
return Meter(quiet=quiet)
def ensure_meter(meter):
if meter:
return meter
return make_meter(quiet=True)