Browse Source

util.py: reimplement format_elapsed_hr()

The MMGen Project 2 years ago
parent
commit
3647db1bbb
2 changed files with 9 additions and 12 deletions
  1. 1 1
      mmgen/data/version
  2. 8 11
      mmgen/util.py

+ 1 - 1
mmgen/data/version

@@ -1 +1 @@
-13.3.dev4
+13.3.dev5

+ 8 - 11
mmgen/util.py

@@ -378,19 +378,16 @@ def secs_to_ms(secs):
 	return '{:02d}:{:02d}'.format(secs//60, secs % 60)
 
 def format_elapsed_hr(t,now=None,cached={}):
-	now = now or time.time()
-	e = int(now - t)
+	e = int((now or time.time()) - t)
 	if not e in cached:
 		abs_e = abs(e)
-		d = abs_e // 86400 # 60 * 60 * 24
-		h = abs_e // 3600 % 24
-		m = abs_e // 60 % 60
-		cached[e] = '{d}{h}{m} minute{M} {w}'.format(
-			d = '{} day{}, '.format(d,suf(d)) if d else '',
-			h = '{} hour{}, '.format(h,suf(h)) if h else '',
-			m = m,
-			M = suf(m),
-			w = 'ago' if e > 0 else 'in the future' ) if (h or m) else 'just now'
+		cached[e] = ', '.join(
+			'{} {}{}'.format(n,desc,suf(n)) for desc,n in (
+				('day',    abs_e // 86400),
+				('hour',   abs_e // 3600 % 24),
+				('minute', abs_e // 60 % 60),
+			) if n
+		) + (' ago' if e > 0 else ' in the future') if abs_e // 60 else 'just now'
 	return cached[e]
 
 def is_int(s):