""" Progress bar """ import logging import progressbar log = logging.getLogger(__name__) class Pbar: # pylint: disable=useless-object-inheritance """ Progress bar This class abstract a progress bar that could be enable/disable by configuration/script parameters. """ __pbar = None __count = None def __init__(self, name, maxval, enabled=True): if enabled and maxval: self.__count = 0 self.__pbar = progressbar.ProgressBar( widgets=[ name + ": ", progressbar.Percentage(), " ", progressbar.Bar(), " ", progressbar.SimpleProgress(), progressbar.ETA(), ], maxval=maxval, ).start() else: log.info(name) def increment(self, step=None): """ Increment the progress bar :param step: The step (optional, default: 1) """ if self.__pbar: self.__count += step if step else 1 self.__pbar.update(self.__count) def finish(self): """Finish the progress bar""" if self.__pbar: self.__pbar.finish()