diff --git a/lisa/analysis/base.py b/lisa/analysis/base.py index c2bfc1777962876b558c418723b9e885abce76b2..802ab228b3a73e2f5cba5c7b4c7f99f34109f0a5 100644 --- a/lisa/analysis/base.py +++ b/lisa/analysis/base.py @@ -1196,7 +1196,7 @@ class TraceAnalysisBase(AnalysisHelpers): fmt=df_fmt, index=( ('Time' if 'Time' in df.columns else None) - if index is None else + if index is None and isinstance(df, (pl.LazyFrame, pl.DataFrame)) else index ), ) diff --git a/lisa/analysis/rta.py b/lisa/analysis/rta.py index fc70e31a1fd45d3edb534350ee6b1f2270c13436..428e63a05ab4669a7578c39d3e8145d1efd671ab 100644 --- a/lisa/analysis/rta.py +++ b/lisa/analysis/rta.py @@ -322,6 +322,7 @@ class RTAEventsAnalysis(TraceAnalysisBase): .reset_index() .set_index([col for col in kept_cols if col != 'properties']) ) + df.index.name = 'phases' return df diff --git a/lisa/analysis/tasks.py b/lisa/analysis/tasks.py index ca4468063ac49f58ec391ad3f5e6ba6628e24b29..44399533ee603652af284768bd0b4fc4c91a3f9a 100644 --- a/lisa/analysis/tasks.py +++ b/lisa/analysis/tasks.py @@ -427,7 +427,7 @@ class TasksAnalysis(TraceAnalysisBase): def comm_to_pid(comm): try: pid_list = self._task_name_map[comm] - except IndexError: + except KeyError: # pylint: disable=raise-missing-from raise ValueError(f'trace does not have any task named "{comm}"') @@ -436,7 +436,7 @@ class TasksAnalysis(TraceAnalysisBase): def pid_to_comm(pid): try: comm_list = self._task_pid_map[pid] - except IndexError: + except KeyError: # pylint: disable=raise-missing-from raise ValueError(f'trace does not have any task PID {pid}') diff --git a/lisa/tests/base.py b/lisa/tests/base.py index fb34b7a58ac581037039b1bf697daa080bfecfd4..e3b97f9e9fbe2ffcacc40605d1d1932adc69d422 100644 --- a/lisa/tests/base.py +++ b/lisa/tests/base.py @@ -1793,7 +1793,10 @@ class RTATestBundle(FtraceTestBundle, DmesgTestBundle): # Find out which task(s) this threshold is about if isinstance(key, str): comms = df.loc[df['comm'].str.match(key), 'comm'] - task_ids = comms.apply(self.trace.ana.tasks.get_task_id) + task_ids = [ + self.trace.ana.tasks.get_task_id(comm) + for comm in comms + ] else: # Use update=False to let None fields propagate, as they are # used to indicate a "dont care" value diff --git a/lisa/trace.py b/lisa/trace.py index 91956daf6d1f263f7706d73a3e2703d373a46ea0..82ddcc239cac9cf6a24abbd04763ff17b192a238 100644 --- a/lisa/trace.py +++ b/lisa/trace.py @@ -3205,7 +3205,21 @@ class _WindowTraceView(_TraceViewBase): compress_signals_init=None, ): super().__init__(trace) - self._window = window + + def fixup_window(window): + if window: + start, end = window + if start is not None: + start = Timestamp(start, rounding='down') + + if end is not None: + end = Timestamp(end, rounding='up') + + return (start, end) + else: + return None + + self._window = fixup_window(window) self._signals = set(signals or []) self._compress_signals_init = compress_signals_init