From ad40057db5250953baf603164f74bbb53b221e40 Mon Sep 17 00:00:00 2001 From: Christophe Bedard Date: Mon, 1 Jul 2019 10:06:47 +0200 Subject: [PATCH] Make get_callback_durations() return a formatted sub-df --- .../tracetools_analysis/analysis/utils.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tracetools_analysis/tracetools_analysis/analysis/utils.py b/tracetools_analysis/tracetools_analysis/analysis/utils.py index adda780..2140730 100644 --- a/tracetools_analysis/tracetools_analysis/analysis/utils.py +++ b/tracetools_analysis/tracetools_analysis/analysis/utils.py @@ -14,6 +14,7 @@ """Module for data model utility class.""" +from datetime import datetime as dt from typing import Any from typing import Mapping from typing import Union @@ -59,12 +60,20 @@ class DataModelUtil(): Get durations of callback instances for a given callback object. :param callback_obj: the callback object value - :return: a dataframe containing the durations of all callback instances for that object + :return: a dataframe containing the start timestamp (datetime) + and duration (ms) of all callback instances for that object """ - return self._data.callback_instances.loc[ + data = self._data.callback_instances.loc[ self._data.callback_instances.loc[:, 'callback_object'] == callback_obj, - : + ['timestamp', 'duration'] ] + # Transform both columns to ms + data[['timestamp', 'duration']] = data[ + ['timestamp', 'duration'] + ].apply(lambda d: d / 1000000.0) + # Transform start timestamp column to datetime objects + data['timestamp'] = data['timestamp'].apply(lambda t: dt.fromtimestamp(t / 1000.0)) + return data def get_callback_owner_info( self, callback_obj: int