Source code for pointtree.evaluation._time_tracker
""" A tracker that stores the execution times of different code sections. """
__all__ = ["TimeTracker"]
import pandas as pd
[docs]
class TimeTracker:
"""A tracker that stores the execution times of different code sections."""
def __init__(self):
self._time_tracking_results = {}
[docs]
def reset(self):
"""
Deletes all tracked execution times.
"""
self._time_tracking_results = {}
[docs]
def save(self, desc: str, value: float):
"""
Save the execution time of a certain code section.
Args:
desc: Description of the tracked code. If a value has already been saved for the description, the values are
summed.
value: Execution time of the tracked code.
"""
if desc in self._time_tracking_results:
self._time_tracking_results[desc] += value
else:
self._time_tracking_results[desc] = value
[docs]
def to_pandas(self) -> pd.DataFrame:
"""
Returns:
Tracked execution times as
`pandas.DataFrame <https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html>`__ with the columns
:code:`"Description"` and :code:`"Runtime"`.
"""
time_tracking_list = [[key, value] for key, value in self._time_tracking_results.items()]
return pd.DataFrame(time_tracking_list, columns=["Description", "Runtime"])