From ee95f0e89e2bd540c34b8f46e205b385c3d50c8b Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby Date: Wed, 8 Jul 2026 17:55:31 +0200 Subject: [PATCH] Debug: Add csv export method. --- src/View/Debug/Table.py | 10 +++++++++- src/View/Debug/Window.py | 19 +++++++++++++++---- src/View/ui/DebugTimer.ui | 1 - 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/View/Debug/Table.py b/src/View/Debug/Table.py index ce4c8f2b..cd9e9d5e 100644 --- a/src/View/Debug/Table.py +++ b/src/View/Debug/Table.py @@ -19,7 +19,7 @@ import logging from functools import reduce -from tools import trace, timer, _timers, _calls +from tools import trace, timer, _timers, _calls, reset_timers from PyQt5.QtCore import ( Qt, QVariant, QAbstractTableModel, @@ -59,6 +59,10 @@ class TableModel(PamhyrTableModel): self._setup_lst() self.layoutChanged.emit() + def reset_timers(self): + reset_timers() + self.update_lst() + def data(self, index, role): row = index.row() column = index.column() @@ -72,3 +76,7 @@ class TableModel(PamhyrTableModel): return self._lst[row][2] return QVariant() + + def to_csv(self): + data = "\n".join(map(lambda x: f"{x[0]},{x[1]},{x[2]}", self._lst)) + return f"""name,time,calls\n{data}\n""" diff --git a/src/View/Debug/Window.py b/src/View/Debug/Window.py index e93ec9bf..5ffc1c31 100644 --- a/src/View/Debug/Window.py +++ b/src/View/Debug/Window.py @@ -140,7 +140,7 @@ class TimerWindow(PamhyrWindow): self._alarm.start(2000) def setup_connections(self): - self.find(QAction, "action_reset").triggered.connect(self.reset) + # self.find(QAction, "action_reset").triggered.connect(self.reset) self.find(QAction, "action_export").triggered.connect(self.export) self._alarm.timeout.connect(self.update) @@ -148,8 +148,19 @@ class TimerWindow(PamhyrWindow): def update(self): self._table.update_lst() - def reset(self): - return + # def reset(self): + # self._table.reset_timers() def export(self): - return + self.file_dialog( + select_file="AnyFile", + callback=lambda f: self.export_to(f[0]), + default_suffix=".csv", + file_filter=["CSV file (*.csv)"], + ) + + def export_to(self, filename): + csv = self._table.to_csv() + + with open(filename, 'w', newline='') as csvfile: + csvfile.write(csv) diff --git a/src/View/ui/DebugTimer.ui b/src/View/ui/DebugTimer.ui index 0a4a99f4..cc8a2132 100644 --- a/src/View/ui/DebugTimer.ui +++ b/src/View/ui/DebugTimer.ui @@ -41,7 +41,6 @@ false -