/ mlflow / utils / time.py
time.py
 1  import datetime
 2  import time
 3  
 4  
 5  def get_current_time_millis():
 6      """
 7      Returns the time in milliseconds since the epoch as an integer number.
 8      """
 9      return int(time.time() * 1000)
10  
11  
12  def conv_longdate_to_str(longdate, local_tz=True):
13      date_time = datetime.datetime.fromtimestamp(longdate / 1000.0)
14      str_long_date = date_time.strftime("%Y-%m-%d %H:%M:%S")
15      if local_tz:
16          if tzinfo := datetime.datetime.now().astimezone().tzinfo:
17              str_long_date += " " + tzinfo.tzname(date_time)
18  
19      return str_long_date
20  
21  
22  class Timer:
23      """
24      Measures elapsed time.
25  
26      .. code-block:: python
27  
28          from mlflow.utils.time import Timer
29  
30          with Timer() as t:
31              ...
32  
33          print(f"Elapsed time: {t:.2f} seconds")
34      """
35  
36      def __init__(self):
37          self.elapsed = 0.0
38  
39      def __enter__(self):
40          self.elapsed = time.perf_counter()
41          return self
42  
43      def __exit__(self, exc_type, exc_value, traceback):
44          self.elapsed = time.perf_counter() - self.elapsed
45  
46      def __format__(self, format_spec: str) -> str:
47          return self.elapsed.__format__(format_spec)
48  
49      def __repr__(self) -> str:
50          return self.elapsed.__repr__()
51  
52      def __str__(self) -> str:
53          return self.elapsed.__str__()