From 8f1da69ddd099303e2d9f9fc68f0b899a0a9fb81 Mon Sep 17 00:00:00 2001 From: Kyle Shores Date: Fri, 30 Aug 2024 09:13:36 -0500 Subject: [PATCH] only call the callback when we would output data --- src/acom_music_box/music_box.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/acom_music_box/music_box.py b/src/acom_music_box/music_box.py index 95e21e7..50f4d4d 100644 --- a/src/acom_music_box/music_box.py +++ b/src/acom_music_box/music_box.py @@ -539,6 +539,11 @@ def solve(self, output_path=None, callback=None): output_array.append(row) next_output_time += self.box_model_options.output_step_time + # calls callback function if present + if callback is not None: + df = pd.DataFrame(output_array[:-1], columns=output_array[0]) + callback(df, curr_time, curr_conditions, self.box_model_options.simulation_length) + # ensure the time step is not greater than the next update to the # evolving conditions or the next output time time_step = self.box_model_options.chem_step_time @@ -561,12 +566,6 @@ def solve(self, output_path=None, callback=None): # increments time curr_time += time_step - - # calls callback function if present - if callback is not None: - df = pd.DataFrame(output_array[:-1], columns=output_array[0]) - callback(df, curr_time, curr_conditions, self.box_model_options.simulation_length) - df = pd.DataFrame(output_array[1:], columns=output_array[0]) # outputs to file if output is present if output_path is not None: