From b98f0decf1ef77a0090e0342ac059327bd4efc7b Mon Sep 17 00:00:00 2001 From: Artur Glavic Date: Mon, 24 Aug 2026 12:44:47 +0200 Subject: [PATCH] Fix device_logs being lost when appending to datasets --- eos/file_reader.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/eos/file_reader.py b/eos/file_reader.py index 1678d75..42ae43e 100644 --- a/eos/file_reader.py +++ b/eos/file_reader.py @@ -621,9 +621,20 @@ class AmorEventData(AmorHeader): new_beam_monitor = None else: new_beam_monitor = np.concatenate([self.data.beam_monitor, other.data.beam_monitor]).view(np.recarray) + if self.data.device_logs is None or other.data.device_logs is None: + new_device_logs = None + else: + new_device_logs = {} + for key, slog in self.data.device_logs.items(): + olog = other.data.device_logs[key] + new_device_logs[key] = np.recarray(slog.shape[0]+olog.shape[0], + dtype = slog.dtype) + new_device_logs[key].time = np.concatenate([slog.time, olog.time]) + new_device_logs[key].value = np.concatenate([slog.value, olog.value]) new_packets = np.concatenate([self.data.packets, other.data.packets]).view(np.recarray) new_packets.start_index[self.data.packets.shape[0]:] += self.data.events.shape[0] - self.data = AmorEventStream(new_events, new_packets, new_pulses, new_proton_current, new_beam_monitor) + self.data = AmorEventStream(new_events, new_packets, new_pulses, new_proton_current, new_beam_monitor, + new_device_logs) # Indicate that this is a modified dataset, basically counts number of appends as negative indices self.last_index = min(self.last_index-1, -1) self.file_list += other.file_list