f
CI for xtreme_bec / test (push) Failing after 26s

This commit is contained in:
2026-08-18 14:45:59 +02:00
parent b16cdcdf51
commit 3510cb8e2b
+67 -38
View File
@@ -187,47 +187,76 @@ class XtremeNeXusFormat(DefaultFormat):
self._populate_default_nxdata(data)
def _populate_default_nxdata(self, data_group) -> None:
has_otf_data = self.get_entry("otf", signal="edata") is not None
# We populate the NXdata group with the signals by linking to the datasets in collection.
# If the signals are on readout priority "async", we take the async signals, otherwise we take the normal signals.
if has_otf_data:
self.safe_dataset(group=data_group, name="edata", device="otf", signal="edata")
self.safe_dataset(group=data_group, name="data", device="otf", signal="data")
data_group.attrs["signal"] = "data"
self.safe_dataset(group=data_group, name="idata", device="otf", signal="idata")
self.safe_dataset(group=data_group, name="fdata", device="otf", signal="fdata")
signals_is_async = "signals" in self.info_storage["bec"]["metadata"].get(
"readout_priority", {}
).get("signals", [])
data_group.attrs["axes"] = ["edata"]
auxiliary_signals = [
signal_name
for signal_name in ("idata", "fdata")
if self.get_entry("otf", signal=signal_name) is not None
]
if auxiliary_signals:
data_group.attrs["auxiliary_signals"] = auxiliary_signals
if signals_is_async:
prefix = "data_"
else:
prefix = ""
axis_target = self._axis_target()
if axis_target and not has_otf_data:
self.safe_dataset(group=data_group, name="energy", device="energy")
data_group.attrs["axes"] = ["energy"]
elif axis_target:
self.safe_dataset(group=data_group, name="energy", device="energy")
self.safe_dataset(group=data_group, name="s1", device="signals", signal=f"{prefix}s1")
self.safe_dataset(group=data_group, name="s2", device="signals", signal=f"{prefix}s2")
self.safe_dataset(group=data_group, name="s3", device="signals", signal=f"{prefix}s3")
self.safe_dataset(group=data_group, name="s4", device="signals", signal=f"{prefix}s4")
self.safe_dataset(group=data_group, name="s5", device="signals", signal=f"{prefix}s5")
self.safe_dataset(group=data_group, name="s6", device="signals", signal=f"{prefix}s6")
self.safe_dataset(group=data_group, name="s7", device="signals", signal=f"{prefix}s7")
self.safe_dataset(
group=data_group, name="norm_diode", device="signals", signal=f"{prefix}norm_diode"
)
self.safe_dataset(
group=data_group, name="norm_tey", device="signals", signal=f"{prefix}norm_tey"
)
self.safe_dataset(
group=data_group, name="energy", device="signals", signal=f"{prefix}energy_cerbk"
)
found_signal = None
for signal in self._MONITOR_SIGNALS:
if self.get_entry("signals", signal=signal) is None:
continue
self.safe_dataset(group=data_group, name=signal, device="signals", signal=signal)
if found_signal is None:
found_signal = signal
# has_otf_data = self.get_entry("otf", signal="edata") is not None
if found_signal and not has_otf_data:
data_group.attrs["signal"] = found_signal
elif self.get_entry("energy") is not None and not has_otf_data:
data_group.attrs["signal"] = "energy"
# if has_otf_data:
# self.safe_dataset(group=data_group, name="edata", device="otf", signal="edata")
# self.safe_dataset(group=data_group, name="data", device="otf", signal="data")
# data_group.attrs["signal"] = "data"
# self.safe_dataset(group=data_group, name="idata", device="otf", signal="idata")
# self.safe_dataset(group=data_group, name="fdata", device="otf", signal="fdata")
def _axis_target(self) -> str | None:
if self.get_entry("energy") is not None:
return "/entry/instrument/beam_energy/energy"
if self.get_entry("mono") is not None:
return "/entry/instrument/monochromator/energy"
return None
# data_group.attrs["axes"] = ["edata"]
# auxiliary_signals = [
# signal_name
# for signal_name in ("idata", "fdata")
# if self.get_entry("otf", signal=signal_name) is not None
# ]
# if auxiliary_signals:
# data_group.attrs["auxiliary_signals"] = auxiliary_signals
# axis_target = self._axis_target()
# if axis_target and not has_otf_data:
# self.safe_dataset(group=data_group, name="energy", device="energy")
# data_group.attrs["axes"] = ["energy"]
# elif axis_target:
# self.safe_dataset(group=data_group, name="energy", device="energy")
# found_signal = None
# for signal in self._MONITOR_SIGNALS:
# if self.get_entry("signals", signal=signal) is None:
# continue
# self.safe_dataset(group=data_group, name=signal, device="signals", signal=signal)
# if found_signal is None:
# found_signal = signal
# if found_signal and not has_otf_data:
# data_group.attrs["signal"] = found_signal
# elif self.get_entry("energy") is not None and not has_otf_data:
# data_group.attrs["signal"] = "energy"
# def _axis_target(self) -> str | None:
# if self.get_entry("energy") is not None:
# return "/entry/instrument/beam_energy/energy"
# if self.get_entry("mono") is not None:
# return "/entry/instrument/monochromator/energy"
# return None