docs: def update_progress(cls, progress, starttime):
          """ Display an ascii progress bar while processing operation. """
          width, _height = click.get_terminal_size()
          if not width:
              return
  
          duration = datetime.utcnow() - starttime
          hours, remainder = divmod(duration.seconds, 3600)
          minutes, seconds = divmod(remainder, 60)
  
          size = int(width * .6)
          status = ""
          if isinstance(progress, int):
              progress = float(progress)
          if not isinstance(progress, float):
              progress = 0
              status = 'error: progress var must be float\n'
              cls.echo(type(progress))
          if progress < 0:
              progress = 0
              status = 'Halt...\n'
          if progress >= 1:
              progress = 1
              # status = 'Done...\n'
          block = int(round(size * progress))
          text = ('\rProgress: [{0}] {1:.2%} {2} {3:0>2}:{4:0>2}:{5:0>2}  '
                  ''.format('#' * block + '-' * (size - block), progress,
                            status, hours, minutes, seconds))
          sys.stdout.write(text)
          sys.stdout.flush()