Commit 625db23e authored by payno's avatar payno
Browse files

Merge branch 'add_swrm_opt' into 'april_release'

[hdf5scan] add swrm option active

See merge request !13
parents bd03e214 9c0fcf0d
Pipeline #24812 passed with stages
in 2 minutes and 9 seconds
......@@ -234,7 +234,7 @@ class HDF5TomoScan(TomoScanBase):
if not os.path.isfile(file_path):
raise ValueError('given file path should be a file')
with h5py.File(file_path, 'r') as h5f:
with h5py.File(file_path, 'r', swmr=True) as h5f:
for root_node in h5f.keys():
node = h5f[root_node]
if HDF5TomoScan.node_is_nxtomo(node) is True:
......@@ -402,7 +402,7 @@ class HDF5TomoScan(TomoScanBase):
def rotation_angle(self) -> typing.Union[None, list]:
if self._rotation_angles is None:
self._check_hdf5scan_validity()
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
_rotation_angles = h5_file[self._entry][self._ROTATION_ANGLE_PATH][()]
# cast in float
self._rotation_angles = tuple([float(angle) for angle in _rotation_angles])
......@@ -412,7 +412,7 @@ class HDF5TomoScan(TomoScanBase):
def image_key(self) -> typing.Union[list, None]:
if self._entry and self._image_keys is None:
self._check_hdf5scan_validity()
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
self._image_keys = h5_file[self._entry][self._IMG_KEY_PATH][()]
return self._image_keys
......@@ -420,7 +420,7 @@ class HDF5TomoScan(TomoScanBase):
def image_key_control(self) -> typing.Union[list, None]:
if self._entry and self._image_keys_control is None:
self._check_hdf5scan_validity()
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
if self._IMG_KEY_CONTROL_PATH in h5_file[self._entry]:
self._image_keys_control = h5_file[self._entry][self._IMG_KEY_CONTROL_PATH][()]
else:
......@@ -491,7 +491,7 @@ class HDF5TomoScan(TomoScanBase):
def _get_x_y_pixel_values(self):
"""read x and y pixel values"""
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
x_pixel_dataset = h5_file[self._entry][self._X_PIXEL_SIZE_PATH]
_x_pixel_size = self._get_value(x_pixel_dataset, default_unit='micrometer')
y_pixel_dataset = h5_file[self._entry][self._Y_PIXEL_SIZE_PATH]
......@@ -499,7 +499,7 @@ class HDF5TomoScan(TomoScanBase):
return _x_pixel_size, _y_pixel_size
def _get_x_y_magnified_pixel_values(self):
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
x_m_pixel_dataset = h5_file[self._entry][self._X_PIXEL_MAG_SIZE_PATH]
_x_m_pixel_size = self._get_value(x_m_pixel_dataset, default_unit='micrometer')
y_m_pixel_dataset = h5_file[self._entry][self._Y_PIXEL_MAG_SIZE_PATH]
......@@ -538,7 +538,7 @@ class HDF5TomoScan(TomoScanBase):
if (self._distance is None and self.master_file and
os.path.exists(self.master_file)):
self._check_hdf5scan_validity()
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
distance_dataset = h5_file[self._entry][self._DISTANCE_PATH]
self._distance = self._get_value(distance_dataset, default_unit='m')
return self._distance
......@@ -548,7 +548,7 @@ class HDF5TomoScan(TomoScanBase):
if (self._energy is None and self.master_file and
os.path.exists(self.master_file)):
self._check_hdf5scan_validity()
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
energy_dataset = h5_file[self._entry][self._ENERGY_PATH]
self._energy = self._get_value(energy_dataset, default_unit='keV')
return self._energy
......@@ -658,7 +658,7 @@ class HDF5TomoScan(TomoScanBase):
raise ValueError('No master file provided')
if self.entry is None:
raise ValueError('No entry provided')
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
if self._entry not in h5_file:
raise ValueError('Given entry %s is not in the master '
'file %s' % (self._entry, self.master_file))
......
......@@ -246,7 +246,7 @@ class MockHDF5(_ScanMock):
def _append_frame(self, data_, rotation_angle, image_key,
image_key_control):
with h5py.File(self.scan_master_file, 'r+') as h5_file:
with h5py.File(self.scan_master_file, 'r+', swmr=True) as h5_file:
entry_one = h5_file.require_group(self.scan_entry)
instrument_grp = entry_one.require_group('instrument')
detector_grp = instrument_grp.require_group('detector')
......@@ -297,7 +297,7 @@ class MockHDF5(_ScanMock):
else:
new_count_time = [self._PROJ_COUNT, ]
with h5py.File(self.scan_master_file, 'a') as h5_file:
with h5py.File(self.scan_master_file, 'a', swmr=True) as h5_file:
entry_one = h5_file.require_group(self.scan_entry)
instrument_grp = entry_one.require_group('instrument')
if 'NX_class' not in instrument_grp.attrs:
......@@ -317,7 +317,7 @@ class MockHDF5(_ScanMock):
sample_grp['rotation_angle'] = new_rot_angle
def write_metadata(self, n_radio, scan_range, ref_n, dark_n):
with h5py.File(self.scan_master_file, 'a') as h5_file:
with h5py.File(self.scan_master_file, 'a', swmr=True) as h5_file:
entry_one = h5_file.require_group(self.scan_entry)
instrument_grp = entry_one.require_group('instrument')
detector_grp = instrument_grp.require_group('detector')
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment