progress.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:loginsight-export 作者: vmware 项目源码 文件源码
def update(self, bins, increment=1):
        self.duration = datetime.timedelta(seconds=time.monotonic() - self.started_at)
        self.updates += increment
        start = min([x[0] for x in bins])
        endin = max([x[1] for x in bins])
        percent_start = ((start - self._start) / float(self.totalrange))
        percent_endin = ((endin - self._start) / float(self.totalrange))

        filledStart = int(round(self.columns * percent_start))
        filledEndin = int(round(self.columns * percent_endin))
        percent = sum([filledStart, filledEndin]) / 2

        if not self.logger.isEnabledFor(logging.WARNING):
            return
        if self.logger.isEnabledFor(logging.INFO):
            self.logger.info("{s.prelude} consider time range {start}-{endin} = {percent:.1f}% {s.updates} {s.suffix} ({s.duration} elapsed)".format(s=self, start=start, endin=endin, bin=bin, percent=percent))
            return

        if filledStart == filledEndin:
            filledEndin = max(self.columns, filledEndin + 1)  # clamp

        bar = '-' * filledStart + '=' * (filledEndin - filledStart) + '-' * (self.columns - filledEndin)
        out = "\r{s.prelude} [{bar}] {percent:.1f}% {s.updates} {s.suffix} ({duration} elapsed)".format(bar=bar, s=self, percent=percent, duration=humanize.naturaldelta(self.duration))

        self.longest_line = max(self.longest_line, len(out))
        sys.stdout.write(out)
        sys.stdout.write(" " * (len(out) - self.longest_line))  # white out over remaining characters from previous line
        sys.stdout.flush()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号