Skip to content
Snippets Groups Projects

Build XASObject in GUI via read_from_input_information

Merged Loic Huder requested to merge refactor-input-info into main
2 unresolved threads
3 files
+ 57
76
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -6,6 +6,8 @@ from silx.io.url import DataUrl
from est.io import InputType
from est.core.io import read_from_url
from est.core.io import read_from_ascii
from est.io.information import InputInformation
from est.io.utils.ascii import build_ascii_data_url
from .ascii import XASObjectFromAscii
from .hdf5 import XASObjectFromH5
@@ -169,7 +171,14 @@ class XASObjectDialog(qt.QWidget):
self._asciiDialog.setFileSelected(file_path=file_path)
def getSpectraUrl(self) -> Optional[DataUrl]:
return self._h5Dialog.getSpectraUrl()
if self.getCurrentType() is InputType.hdf5_spectra:
return self._h5Dialog.getSpectraUrl()
else:
return build_ascii_data_url(
file_path=self.getAsciiFile(),
col_name=self.getAbsColName(),
scan_title=self.getScanTitle(),
)
def setSpectraUrl(self, url):
self._h5Dialog.setSpectraUrl(url=url)
@@ -182,9 +191,7 @@ class XASObjectDialog(qt.QWidget):
def getEnergyUnit(self):
# TODO: FIXME: design should be improve to avoid those kind of conditions
if self.getCurrentType() == InputType.ascii_spectrum:
return self._asciiDialog.getEnergyUnit()
elif self.getCurrentType() == InputType.hdf5_spectra:
if self.getCurrentType() == InputType.hdf5_spectra:
return self._h5Dialog.getEnergyUnit()
else:
return self._asciiDialog.getEnergyUnit()
@@ -193,7 +200,6 @@ class XASObjectDialog(qt.QWidget):
# TODO: FIXME: design should be improved to avoid setting unit to all sub-widgets
self._h5Dialog.setEnergyUnit(unit=unit)
self._asciiDialog.setEnergyUnit(unit=unit)
self._asciiDialog.setEnergyUnit(unit=unit)
def getConfigurationUrl(self):
return self._h5Dialog.getConfigurationUrl()
@@ -206,3 +212,47 @@ class XASObjectDialog(qt.QWidget):
def setDimensions(self, dims):
self._h5Dialog.setDimensions(dims=dims)
def getInputInformation(self):
advanceHDF5Info = self.getAdvanceHdf5Information()
return InputInformation(
spectra_url=self.getSpectraUrl(),
channel_url=self.getChannelUrl(),
config_url=self.getConfigurationUrl(),
dimensions=self.getDimensions(),
energy_unit=self.getEnergyUnit(),
I0_url=advanceHDF5Info.getI0Url(),
I1_url=advanceHDF5Info.getI1Url(),
I2_url=advanceHDF5Info.getI2Url(),
mu_ref_url=advanceHDF5Info.getMuRefUrl(),
)
def getChannelUrl(self):
if self.getCurrentType() is InputType.hdf5_spectra:
return self.getEnergyUrl()
else:
return build_ascii_data_url(
file_path=self.getAsciiFile(),
col_name=self.getEnergyColName(),
scan_title=self.getScanTitle(),
)
def getMonitorUrl(self):
if self.getCurrentType() is InputType.hdf5_spectra:
# TODO: case not handled for H5 files ?!!
return None
else:
return build_ascii_data_url(
file_path=self.getAsciiFile(),
col_name=self.getMonitorColName(),
scan_title=self.getScanTitle(),
)
def getExtraInfos(self) -> dict:
if self.getCurrentType() is InputType.hdf5_spectra:
return {}
else:
return {
"scan_title": self.getScanTitle(),
}
Loading