Commit 6b0462f2 authored by Pierre Paleo's avatar Pierre Paleo
Browse files

Merge branch 'april_release' into 'master'

April release

See merge request !14
parents 3ffd534e 6bf8f2aa
Pipeline #25296 passed with stages
in 2 minutes and 17 seconds
......@@ -158,6 +158,8 @@ class HDF5TomoScan(TomoScanBase):
# image dimensions
self._x_pixel_size = None
self._y_pixel_size = None
self._x_magnified_pixel_size = None
self._y_magnified_pixel_size = None
# pixel dimensions (tuple)
self._frames = None
self._image_keys = None
......@@ -232,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:
......@@ -400,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])
......@@ -410,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
......@@ -418,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:
......@@ -489,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]
......@@ -497,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]
......@@ -536,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
......@@ -546,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
......@@ -656,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')
......
......@@ -69,7 +69,7 @@ RELEASE_LEVEL_VALUE = {"dev": 0,
MAJOR = 0
MINOR = 2
MICRO = 2
RELEV = "dev" # <16
RELEV = "final" # <16
SERIAL = 0 # <16
date = __date__
......
Markdown is supported
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