Source code for hal.times.profile
# -*- coding: utf-8 -*-
"""Tired of formatting ETA times? This is just for you """
from time import time
[docs]def get_time_eta(total_done, total, start_time):
"""Gets ETA
:param total_done: items processed
:param total: total # of items to process
:param start_time: Time of start processing items
:return: Time to go
"""
time_done = int(time()) - start_time
speed = total_done / time_done
if time_done > 0 and speed > 0:
total_to_go = total - total_done
time_to_go = total_to_go / speed
minutes, seconds = divmod(time_to_go, 60)
hours, minutes = divmod(minutes, 60)
percentage = total_done * 100.0 / total
else:
percentage = 0
hours = 0
minutes = 0
seconds = 0
return {
"done": int(total_done),
"tot": int(total),
"%": float("{0:.2f}".format(percentage)),
"h": int(hours),
"m": int(minutes),
"s": int(seconds)
}