11from __future__ import annotations
22
3- import datetime as dt
4- import re
5-
6- import humanize
7-
83
94def humanize_runtime (time_in_ns : int ) -> str :
105 runtime_human : str = str (time_in_ns )
@@ -14,22 +9,32 @@ def humanize_runtime(time_in_ns: int) -> str:
149
1510 if time_in_ns / 1000 >= 1 :
1611 time_micro = float (time_in_ns ) / 1000
17- runtime_human = humanize .precisedelta (dt .timedelta (microseconds = time_micro ), minimum_unit = "microseconds" )
1812
19- units = re .split (r",|\s" , runtime_human )[1 ]
20-
21- if units in {"microseconds" , "microsecond" }:
13+ # Direct unit determination and formatting without external library
14+ if time_micro < 1000 :
2215 runtime_human = f"{ time_micro :.3g} "
23- elif units in {"milliseconds" , "millisecond" }:
24- runtime_human = "%.3g" % (time_micro / 1000 )
25- elif units in {"seconds" , "second" }:
26- runtime_human = "%.3g" % (time_micro / (1000 ** 2 ))
27- elif units in {"minutes" , "minute" }:
28- runtime_human = "%.3g" % (time_micro / (60 * 1000 ** 2 ))
29- elif units in {"hour" , "hours" }: # hours
30- runtime_human = "%.3g" % (time_micro / (3600 * 1000 ** 2 ))
16+ units = "microseconds" if time_micro >= 2 else "microsecond"
17+ elif time_micro < 1000000 :
18+ time_milli = time_micro / 1000
19+ runtime_human = f"{ time_milli :.3g} "
20+ units = "milliseconds" if time_milli >= 2 else "millisecond"
21+ elif time_micro < 60000000 :
22+ time_sec = time_micro / 1000000
23+ runtime_human = f"{ time_sec :.3g} "
24+ units = "seconds" if time_sec >= 2 else "second"
25+ elif time_micro < 3600000000 :
26+ time_min = time_micro / 60000000
27+ runtime_human = f"{ time_min :.3g} "
28+ units = "minutes" if time_min >= 2 else "minute"
29+ elif time_micro < 86400000000 :
30+ time_hour = time_micro / 3600000000
31+ runtime_human = f"{ time_hour :.3g} "
32+ units = "hours" if time_hour >= 2 else "hour"
3133 else : # days
32- runtime_human = "%.3g" % (time_micro / (24 * 3600 * 1000 ** 2 ))
34+ time_day = time_micro / 86400000000
35+ runtime_human = f"{ time_day :.3g} "
36+ units = "days" if time_day >= 2 else "day"
37+
3338 runtime_human_parts = str (runtime_human ).split ("." )
3439 if len (runtime_human_parts [0 ]) == 1 :
3540 if runtime_human_parts [0 ] == "1" and len (runtime_human_parts ) > 1 :
0 commit comments