tomwer 1.3.5__py3-none-any.whl → 1.3.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,7 +37,7 @@ import typing
37
37
  from ewokscore.task import Task as EwoksTask
38
38
  from nxtomomill import converter as nxtomomill_converter
39
39
  from silx.io.utils import h5py_read_dataset
40
- from tomoscan.io import HDF5File
40
+ from silx.io.utils import open as open_hdf5
41
41
 
42
42
  import tomwer.version
43
43
  from tomwer.core import settings
@@ -229,7 +229,7 @@ class DataListener(BaseProcessInfo):
229
229
  """Return the list of scans dir for this bliss_file / entry"""
230
230
 
231
231
  def get_scan_indexes():
232
- with HDF5File(bliss_file, "r", swmr=DataListener.SWMR_MODE) as h5f:
232
+ with open_hdf5(bliss_file) as h5f:
233
233
  entry_node = h5f[entry]
234
234
  if _SCAN_NUMBER_PATH in entry_node:
235
235
  return h5py_read_dataset(entry_node[_SCAN_NUMBER_PATH])
@@ -254,7 +254,7 @@ class DataListener(BaseProcessInfo):
254
254
  """Return the proposal file of the experimentation if registred by the
255
255
  data listener"""
256
256
  if entry is None:
257
- with HDF5File(process_file, "r", swmr=DataListener.SWMR_MODE) as h5f:
257
+ with open_hdf5(process_file) as h5f:
258
258
  entries = BaseProcessInfo._get_process_nodes(
259
259
  root_node=h5f, process=DataListener
260
260
  )
@@ -269,7 +269,7 @@ class DataListener(BaseProcessInfo):
269
269
  entry = list(entries.keys())[0]
270
270
  _logger.info("take %s as default entry" % entry)
271
271
 
272
- with HDF5File(process_file, "r", swmr=DataListener.SWMR_MODE) as h5f:
272
+ with open_hdf5(process_file) as h5f:
273
273
  dl_nodes = BaseProcessInfo._get_process_nodes(
274
274
  root_node=h5f[entry], process=DataListener
275
275
  )
@@ -311,7 +311,7 @@ class DataListener(BaseProcessInfo):
311
311
  """Return the proposal file of the experimentation if registred by the
312
312
  data listener"""
313
313
  if entry is None:
314
- with HDF5File(process_file, "r", swmr=DataListener.SWMR_MODE) as h5f:
314
+ with open_hdf5(process_file) as h5f:
315
315
  entries = BaseProcessInfo._get_process_nodes(
316
316
  root_node=h5f, process=DataListener
317
317
  )
@@ -326,7 +326,7 @@ class DataListener(BaseProcessInfo):
326
326
  entry = list(entries.keys())[0]
327
327
  _logger.info("take %s as default entry" % entry)
328
328
 
329
- with HDF5File(process_file, "r", swmr=DataListener.SWMR_MODE) as h5f:
329
+ with open_hdf5(process_file) as h5f:
330
330
  dl_nodes = BaseProcessInfo._get_process_nodes(
331
331
  root_node=h5f[entry], process=DataListener
332
332
  )
@@ -360,7 +360,7 @@ class DataListener(BaseProcessInfo):
360
360
  """Return the proposal file of the experimentation if registred by the
361
361
  data listener"""
362
362
  if entry is None:
363
- with HDF5File(process_file, "r", swmr=DataListener.SWMR_MODE) as h5f:
363
+ with open_hdf5(process_file) as h5f:
364
364
  entries = BaseProcessInfo._get_process_nodes(
365
365
  root_node=h5f, process=DataListener
366
366
  )
@@ -375,7 +375,7 @@ class DataListener(BaseProcessInfo):
375
375
  entry = list(entries.keys())[0]
376
376
  _logger.info("take %s as default entry" % entry)
377
377
 
378
- with HDF5File(process_file, "r", swmr=DataListener.SWMR_MODE) as h5f:
378
+ with open_hdf5(process_file) as h5f:
379
379
  dl_nodes = BaseProcessInfo._get_process_nodes(
380
380
  root_node=h5f[entry], process=DataListener
381
381
  )
@@ -410,7 +410,7 @@ class DataListener(BaseProcessInfo):
410
410
  specific sequence data
411
411
  """
412
412
  if entry is None:
413
- with HDF5File(process_file, "r", swmr=DataListener.SWMR_MODE) as h5f:
413
+ with open_hdf5(process_file) as h5f:
414
414
  entries = BaseProcessInfo._get_process_nodes(
415
415
  root_node=h5f, process=DataListener
416
416
  )
@@ -425,7 +425,7 @@ class DataListener(BaseProcessInfo):
425
425
  entry = list(entries.keys())[0]
426
426
  _logger.info("take %s as default entry" % entry)
427
427
 
428
- with HDF5File(process_file, "r", swmr=DataListener.SWMR_MODE) as h5f:
428
+ with open_hdf5(process_file) as h5f:
429
429
  dl_nodes = BaseProcessInfo._get_process_nodes(
430
430
  root_node=h5f[entry], process=DataListener
431
431
  )
@@ -503,7 +503,7 @@ class DataListener(BaseProcessInfo):
503
503
  # write
504
504
  def sequence_is_finished():
505
505
  try:
506
- with HDF5File(bliss_file, "r", swmr=DataListener.SWMR_MODE) as h5f:
506
+ with open_hdf5(bliss_file) as h5f:
507
507
  end_scan_path = "/".join((entry, "end_time"))
508
508
  return end_scan_path in h5f
509
509
  except Exception:
@@ -76,7 +76,7 @@ else:
76
76
  has_composite_cor_finder = True
77
77
  from silx.io.url import DataUrl
78
78
  from silx.io.utils import h5py_read_dataset
79
- from tomoscan.io import HDF5File, get_swmr_mode
79
+ from silx.io.utils import open as open_hdf5
80
80
 
81
81
  _logger = logging.getLogger(__name__)
82
82
  if not has_composite_cor_finder:
@@ -1164,7 +1164,7 @@ class AxisTask(
1164
1164
  :return:
1165
1165
  """
1166
1166
  if entry is None:
1167
- with HDF5File(process_file, "r", swmr=get_swmr_mode()) as h5f:
1167
+ with open_hdf5(process_file) as h5f:
1168
1168
  entries = AxisTask._get_process_nodes(root_node=h5f, process=AxisTask)
1169
1169
  if len(entries) == 0:
1170
1170
  _logger.info("unable to find a Axis process in %s" % process_file)
@@ -1175,7 +1175,7 @@ class AxisTask(
1175
1175
  entry = list(entries.keys())[0]
1176
1176
  _logger.info("take %s as default entry" % entry)
1177
1177
 
1178
- with HDF5File(process_file, "r", swmr=get_swmr_mode()) as h5f:
1178
+ with open_hdf5(process_file) as h5f:
1179
1179
  axis_nodes = AxisTask._get_process_nodes(
1180
1180
  root_node=h5f[entry], process=AxisTask
1181
1181
  )
@@ -39,6 +39,7 @@ from typing import Union
39
39
 
40
40
  from silx.io.dictdump import dicttoh5, h5todict
41
41
  from silx.io.url import DataUrl
42
+ from silx.io.utils import open as open_hdf5
42
43
  from tomoscan.esrf.scan.utils import (
43
44
  copy_h5_dict_darks_to,
44
45
  copy_h5_dict_flats_to,
@@ -297,7 +298,7 @@ class DarkRefsCopy(DarkRefsTask):
297
298
  if not os.path.exists(self._save_file):
298
299
  return False
299
300
  else:
300
- with HDF5File(self._save_file, mode="r") as h5f:
301
+ with open_hdf5(self._save_file) as h5f:
301
302
  return self._flats_url.data_path() in h5f
302
303
 
303
304
  def has_dark_stored(self) -> bool:
@@ -309,7 +310,7 @@ class DarkRefsCopy(DarkRefsTask):
309
310
  if not os.path.exists(self._save_file):
310
311
  return False
311
312
  else:
312
- with HDF5File(self._save_file, mode="r") as h5f:
313
+ with open_hdf5(self._save_file) as h5f:
313
314
  return self._darks_url.data_path() in h5f
314
315
 
315
316
  def contains_dark(self, scan: TomwerScanBase) -> bool:
@@ -43,9 +43,10 @@ import sys
43
43
 
44
44
  import numpy
45
45
  from silx.io.url import DataUrl
46
+ from silx.io.utils import open as open_hdf5
46
47
  from sluurp.executor import submit as submit_to_slurm_cluster
47
48
  from sluurp.job import SBatchScriptJob
48
- from tomoscan.io import HDF5File, get_swmr_mode
49
+ from tomoscan.io import HDF5File
49
50
  from tomoscan.normalization import Method as INormMethod
50
51
  from tomoscan.identifier import VolumeIdentifier
51
52
 
@@ -581,9 +582,7 @@ class _NabuBaseReconstructor:
581
582
  # if an url exists insure we can access it
582
583
  dataset_url = DataUrl(path=dataset_url)
583
584
  if os.path.exists(dataset_url.file_path()):
584
- with HDF5File(
585
- dataset_url.file_path(), mode="r", swmr=get_swmr_mode()
586
- ) as h5f:
585
+ with open_hdf5(dataset_url.file_path()) as h5f:
587
586
  if dataset_url.data_path() not in h5f:
588
587
  dataset_url = None
589
588
  else:
@@ -35,6 +35,7 @@ import os
35
35
  import gc
36
36
  from tomwer.io.utils import format_stderr_stdout
37
37
  from silx.utils.deprecation import deprecated, deprecated_warning
38
+ from silx.io.utils import open as open_hdf5
38
39
 
39
40
  from processview.core.manager.manager import ProcessManager, DatasetState
40
41
 
@@ -84,7 +85,6 @@ from processview.core.superviseprocess import SuperviseProcess
84
85
  from silx.io.dictdump import h5todict
85
86
  from silx.io.utils import h5py_read_dataset
86
87
  from silx.utils.enum import Enum as _Enum
87
- from tomoscan.io import HDF5File, get_swmr_mode
88
88
 
89
89
  from tomwer.core.process.task import Task
90
90
  from tomwer.core.scan.edfscan import EDFTomoScan
@@ -494,7 +494,7 @@ class NabuSlicesTask(
494
494
  :rtype:dict
495
495
  """
496
496
  if entry is None:
497
- with HDF5File(process_file, "r", swmr=get_swmr_mode()) as h5f:
497
+ with open_hdf5(process_file) as h5f:
498
498
  entries = NabuSlicesTask._get_process_nodes(
499
499
  root_node=h5f, process=NabuSlicesTask
500
500
  )
@@ -510,7 +510,7 @@ class NabuSlicesTask(
510
510
  configuration_path = None
511
511
  res = {}
512
512
 
513
- with HDF5File(process_file, "r", swmr=get_swmr_mode()) as h5f:
513
+ with open_hdf5(process_file) as h5f:
514
514
  nabu_nodes = NabuSlicesTask._get_process_nodes(
515
515
  root_node=h5f[entry], process=NabuSlicesTask
516
516
  )
@@ -845,7 +845,7 @@ class SingleSliceRunner(_NabuBaseReconstructor):
845
845
  basename, _ = os.path.splitext(scan.master_file)
846
846
  basename = os.path.basename(basename)
847
847
  try:
848
- with HDF5File(scan.master_file, mode="r", swmr=get_swmr_mode()) as h5f:
848
+ with open_hdf5(scan.master_file) as h5f:
849
849
  if len(h5f.keys()) > 1:
850
850
  # if there is more than one entry in the file append the entry name to the file basename
851
851
  basename = "_".join((basename, scan.entry.lstrip("/")))
@@ -43,10 +43,9 @@ from processview.core.manager.manager import ProcessManager, DatasetState
43
43
  from processview.core.superviseprocess import SuperviseProcess
44
44
 
45
45
  from silx.io.utils import h5py_read_dataset
46
+ from silx.io.utils import open as open_hdf5
46
47
  from tomwer.core.utils.deprecation import deprecated_warning
47
48
 
48
- from tomoscan.io import HDF5File, get_swmr_mode
49
-
50
49
  from tomwer.core.cluster.cluster import SlurmClusterConfiguration
51
50
  from tomwer.core.futureobject import FutureTomwerObject
52
51
  from tomwer.core.process.reconstruction.nabu.plane import NabuPlane
@@ -354,9 +353,7 @@ class VolumeRunner(_NabuBaseReconstructor):
354
353
  basename = os.path.basename(basename)
355
354
  try:
356
355
  # if there is more than one entry in the file append the entry name to the file basename
357
- with HDF5File(
358
- self.scan.master_file, mode="r", swmr=get_swmr_mode()
359
- ) as h5f:
356
+ with open_hdf5(self.scan.master_file) as h5f:
360
357
  if len(h5f.keys()) > 1:
361
358
  basename = "_".join((basename, self.scan.entry.strip("/")))
362
359
  except Exception:
@@ -46,7 +46,8 @@ from ewokscore.task import Task as _EwoksTask
46
46
  from ewokscore.taskwithprogress import TaskWithProgress as _EwoksTaskWithProgress
47
47
  from silx.io.dictdump import dicttoh5, h5todict
48
48
  from silx.io.utils import h5py_read_dataset
49
- from tomoscan.io import HDF5File, get_swmr_mode
49
+ from silx.io.utils import open as open_hdf5
50
+ from tomoscan.io import HDF5File
50
51
  from tomwer.core.utils.locker import FileLockerManager
51
52
 
52
53
 
@@ -376,7 +377,7 @@ class BaseProcessInfo:
376
377
  :rtype: list
377
378
  """
378
379
  # retrieve process to load
379
- with HDF5File(process_file, mode="r", swmr=get_swmr_mode()) as h5f:
380
+ with open_hdf5(process_file) as h5f:
380
381
  if entry is None:
381
382
  if len(h5f.keys()) > 0:
382
383
  root = h5f[list(h5f.keys())[0]]
@@ -42,7 +42,8 @@ from nxtomomill.converter import from_h5_to_nx
42
42
  from nxtomomill.io.config.hdf5config import TomoHDF5Config
43
43
  from nxtomo.nxobject.nxdetector import ImageKey
44
44
 
45
- from tomoscan.io import HDF5File, get_swmr_mode
45
+ from silx.io.utils import open as open_hdf5
46
+ from tomoscan.io import HDF5File
46
47
  from tomoscan.validator import is_valid_for_reconstruction
47
48
 
48
49
  from tomwer.core.process.control.datalistener import DataListener
@@ -335,9 +336,9 @@ class NXTomoDataTransferBase(unittest.TestCase):
335
336
  dst_scan = process.outputs.data
336
337
  assert dst_scan.master_file != self.nexus_file_path
337
338
  assert is_valid_for_reconstruction(dst_scan, check_values=True)
338
- with HDF5File(src_scan.master_file, mode="r", swmr=get_swmr_mode()) as h5s_src:
339
+ with open_hdf5(src_scan.master_file) as h5s_src:
339
340
  src_dataset = h5s_src["entry0000/detector/data"][...]
340
- with HDF5File(dst_scan.master_file, mode="r", swmr=get_swmr_mode()) as h5s_dst:
341
+ with open_hdf5(dst_scan.master_file) as h5s_dst:
341
342
  dst_dataset = h5s_dst["entry0000/detector/data"][...]
342
343
  assert numpy.array_equal(src_dataset, dst_dataset)
343
344
 
@@ -54,7 +54,7 @@ import logging
54
54
  from typing import Optional
55
55
 
56
56
  from silx.io.utils import h5py_read_dataset
57
- from tomoscan.io import HDF5File, get_swmr_mode
57
+ from silx.io.utils import open as open_hdf5
58
58
 
59
59
  _logger = logging.getLogger(__name__)
60
60
 
@@ -203,7 +203,7 @@ class BlissScan:
203
203
  return True
204
204
  return False
205
205
 
206
- with HDF5File(file_path, mode="r", swmr=get_swmr_mode()) as h5s:
206
+ with open_hdf5(file_path) as h5s:
207
207
  if not isinstance(h5s, h5py.Group) or not isinstance(
208
208
  h5s[entry], h5py.Group
209
209
  ):
@@ -227,7 +227,7 @@ class BlissScan:
227
227
  return tuple()
228
228
  else:
229
229
  res = []
230
- with HDF5File(file_path, mode="r", swmr=get_swmr_mode()) as h5s:
230
+ with open_hdf5(file_path) as h5s:
231
231
  for entry in h5s:
232
232
  if BlissScan.is_bliss_valid_entry(file_path=file_path, entry=entry):
233
233
  res.append(entry)
@@ -40,12 +40,12 @@ from urllib.parse import urlparse
40
40
 
41
41
  import h5py
42
42
  from processview.core.dataset import DatasetIdentifier
43
+ from silx.io.utils import open as open_hdf5
43
44
  from tomoscan.esrf.identifier.hdf5Identifier import (
44
45
  NXtomoScanIdentifier as _NXtomoScanIdentifier,
45
46
  )
46
47
  from tomoscan.esrf.identifier.url_utils import UrlSettings, split_path, split_query
47
48
  from tomoscan.esrf.scan.nxtomoscan import NXtomoScan as _tsNXtomoScan
48
- from tomoscan.io import HDF5File, get_swmr_mode
49
49
  from nxtomo.nxobject.nxdetector import ImageKey
50
50
 
51
51
  from tomwer.utils import docstring
@@ -424,7 +424,7 @@ class NXtomoScan(_tsNXtomoScan, TomwerScanBase):
424
424
  return tuple()
425
425
  else:
426
426
  res = []
427
- with HDF5File(file_path, mode="r", swmr=get_swmr_mode()) as h5s:
427
+ with open_hdf5(file_path) as h5s:
428
428
  for entry_name, node in h5s.items():
429
429
  if isinstance(node, h5py.Group):
430
430
  if NXtomoScan.entry_is_nx_tomo(node):
@@ -40,8 +40,9 @@ import functools
40
40
  import numpy
41
41
  from silx.io.url import DataUrl
42
42
  from silx.utils.enum import Enum as _Enum
43
+ from silx.io.utils import open as open_hdf5
44
+
43
45
  from tomoscan.identifier import VolumeIdentifier
44
- from tomoscan.io import HDF5File, get_swmr_mode
45
46
  from tomoscan.normalization import IntensityNormalization
46
47
  from tomoscan.volumebase import VolumeBase
47
48
  from tomoscan.identifier import BaseIdentifier
@@ -131,7 +132,7 @@ class TomwerScanBase(TomwerObject):
131
132
  and self.process_file is not None
132
133
  and os.path.exists(self.process_file)
133
134
  ):
134
- with HDF5File(self.process_file, mode="r", swmr=get_swmr_mode()) as h5s:
135
+ with open_hdf5(self.process_file) as h5s:
135
136
  self._process_index = len(h5s.items())
136
137
  else:
137
138
  self._process_index = 0
@@ -756,7 +757,7 @@ class TomwerScanBase(TomwerObject):
756
757
  from tomwer.core.process.task import Task
757
758
 
758
759
  if os.path.exists(self.process_file):
759
- with HDF5File(self.process_file, mode="r", swmr=get_swmr_mode()) as h5s:
760
+ with open_hdf5(self.process_file) as h5s:
760
761
  if not hasattr(self, "entry"):
761
762
  entry = "entry"
762
763
  else:
@@ -864,9 +865,7 @@ def _get_reconstructed_single_file_volume(
864
865
 
865
866
  if check_url is True:
866
867
  try:
867
- with HDF5File(
868
- os.path.abspath(file_), "r", swmr=get_swmr_mode()
869
- ) as h5f:
868
+ with open_hdf5(os.path.abspath(file_)) as h5f:
870
869
  if entry not in h5f:
871
870
  logger.info("{volume} does not exists")
872
871
  return None
@@ -8,11 +8,11 @@ from silx.gui import qt
8
8
  from silx.gui.plot import Plot2D
9
9
  from silx.io.dictdump import h5todict
10
10
  from silx.io.url import DataUrl
11
+ from silx.io.utils import open as open_hdf5
11
12
  from silx.gui.dialog.DataFileDialog import DataFileDialog
12
13
 
13
14
  from tomoscan.esrf.scan.utils import cwd_context
14
15
  from tomoscan.framereducer.target import REDUCER_TARGET
15
- from tomoscan.io import HDF5File, get_swmr_mode
16
16
 
17
17
  from tomwer.io.utils import get_default_directory
18
18
 
@@ -249,7 +249,7 @@ class ReduceDarkFlatSelectorTableWidget(qt.QWidget):
249
249
  if not os.path.exists(file_path):
250
250
  _logger.error(f"file doesn't exists ({file_path})")
251
251
 
252
- with HDF5File(file_path, mode="r", swmr=get_swmr_mode()) as h5f:
252
+ with open_hdf5(file_path) as h5f:
253
253
  entries = tuple(h5f.keys())
254
254
 
255
255
  res = []
@@ -36,8 +36,8 @@ from silx.gui import qt
36
36
  from silx.gui.dialog.DataFileDialog import DataFileDialog
37
37
  from silx.io.url import DataUrl
38
38
  from silx.io.utils import h5py_read_dataset
39
+ from silx.io.utils import open as open_hdf5
39
40
  from nxtomo.nxobject.nxdetector import ImageKey
40
- from tomoscan.io import HDF5File, get_swmr_mode
41
41
 
42
42
  import tomwer.core.utils.nxtomoutils as nxtomo_utils
43
43
  from tomwer.core.scan.nxtomoscan import NXtomoScan
@@ -83,7 +83,7 @@ class _DarkOrFlatUrl(qt.QWidget):
83
83
  url = self._redirectDataPath(url, logger=_logger)
84
84
 
85
85
  def dataset_invalid(url):
86
- with HDF5File(url.file_path(), mode="r", swmr=get_swmr_mode()) as h5s:
86
+ with open_hdf5(url.file_path()) as h5s:
87
87
  if not isinstance(h5s[url.data_path()], h5py.Dataset):
88
88
  return True
89
89
  return False
@@ -113,7 +113,7 @@ class _DarkOrFlatUrl(qt.QWidget):
113
113
 
114
114
  def _redirectDataPath(self, url, logger=None):
115
115
  try:
116
- with HDF5File(url.file_path(), mode="r", swmr=get_swmr_mode()) as h5s:
116
+ with open_hdf5(url.file_path()) as h5s:
117
117
  node = h5s[url.data_path()]
118
118
 
119
119
  if NXtomoScan.entry_is_nx_tomo(node):
@@ -188,7 +188,7 @@ class _DarkOrFlatUrl(qt.QWidget):
188
188
  def _getImageKey(self, url):
189
189
  # if we are on a 'detector / data dataset' then we can try to reach
190
190
  # image_key information
191
- with HDF5File(url.file_path(), mode="r", swmr=get_swmr_mode()) as h5s:
191
+ with open_hdf5(url.file_path()) as h5s:
192
192
  dataset = h5s[url.data_path()]
193
193
  grp_parent = dataset.parent
194
194
  if grp_parent is not None and NXtomoScan.is_nxdetector(grp_parent):
@@ -1,9 +1,10 @@
1
1
  from typing import Optional
2
2
  import h5py
3
3
  from silx.gui import qt
4
+ from silx.io.utils import open as open_hdf5
5
+
4
6
  from tomwer.core.scan.nxtomoscan import NXtomoScan
5
7
  from tomwer.gui import icons
6
- from tomoscan.io import HDF5File, get_swmr_mode
7
8
 
8
9
 
9
10
  class NXtomoProxyWarmer(qt.QWidget):
@@ -44,7 +45,7 @@ class NXtomoProxyWarmer(qt.QWidget):
44
45
  if scan is None:
45
46
  self._activateWarning(False)
46
47
  elif isinstance(scan, NXtomoScan):
47
- with HDF5File(scan.master_file, mode="r", swmr=get_swmr_mode()) as h5f:
48
+ with open_hdf5(scan.master_file) as h5f:
48
49
  entry = h5f.get(
49
50
  name=scan.entry, getclass=True, getlink=True, default=None
50
51
  )
@@ -34,7 +34,7 @@ import logging
34
34
 
35
35
  from silx.gui import qt
36
36
  from silx.io.url import DataUrl
37
- from tomoscan.io import HDF5File, get_swmr_mode
37
+ from silx.io.utils import open as open_hdf5
38
38
 
39
39
  from tomwer.core.scan.scanbase import TomwerScanBase
40
40
  from tomwer.synctools.imageloaderthread import ImageLoaderThread
@@ -71,7 +71,7 @@ class ImageFromFile(_Image):
71
71
 
72
72
  def get_nabu_entry():
73
73
  try:
74
- with HDF5File(_file, mode="r", swmr=get_swmr_mode()) as h5s:
74
+ with open_hdf5(_file) as h5s:
75
75
  for node in h5s:
76
76
  if "reconstruction" in h5s[node]:
77
77
  return "/".join(
@@ -35,7 +35,7 @@ import contextlib
35
35
 
36
36
  import h5py
37
37
  from silx.io.url import DataUrl
38
- from tomoscan.io import HDF5File, get_swmr_mode
38
+ from silx.io.utils import open as open_hdf5
39
39
 
40
40
 
41
41
  class _BaseReader(contextlib.AbstractContextManager):
@@ -60,9 +60,7 @@ class EntryReader(_BaseReader):
60
60
  """Context manager used to read a bliss node"""
61
61
 
62
62
  def __enter__(self):
63
- self._file_handler = HDF5File(
64
- filename=self._url.file_path(), mode="r", swmr=get_swmr_mode()
65
- )
63
+ self._file_handler = open_hdf5(filename=self._url.file_path())
66
64
  entry = self._file_handler[self._url.data_path()]
67
65
  if not isinstance(entry, h5py.Group):
68
66
  raise ValueError("Data path should point to a bliss node (h5py.Group)")
@@ -73,9 +71,7 @@ class DatasetReader(_BaseReader):
73
71
  """Context manager used to read a bliss node"""
74
72
 
75
73
  def __enter__(self):
76
- self._file_handler = HDF5File(
77
- filename=self._url.file_path(), mode="r", swmr=get_swmr_mode()
78
- )
74
+ self._file_handler = open_hdf5(filename=self._url.file_path())
79
75
  entry = self._file_handler[self._url.data_path()]
80
76
  if not isinstance(entry, h5py.Dataset):
81
77
  raise ValueError("Data path should point to a dtaset (h5py.Dataset)")
tomwer/io/utils/utils.py CHANGED
@@ -37,9 +37,9 @@ import os
37
37
  import h5py
38
38
  import numpy.lib.npyio
39
39
  from PIL import Image
40
+ from silx.io.utils import open as open_hdf5
40
41
  from tomoscan.esrf import has_glymur
41
42
  from tomoscan.esrf.scan.utils import get_data as tomoscan_get_data
42
- from tomoscan.io import HDF5File, get_swmr_mode
43
43
  from typing import Union
44
44
 
45
45
  from tomwer.core.utils import ftseriesutils
@@ -201,7 +201,7 @@ def get_linked_files_with_entry(hdf5_file: str, entry: str) -> set:
201
201
  if item in treated_items:
202
202
  continue
203
203
  dirname = os.path.dirname(abs_file_path)
204
- with HDF5File(abs_file_path, mode="r", swmr=get_swmr_mode()) as h5f:
204
+ with open_hdf5(abs_file_path) as h5f:
205
205
  node = h5f.get(data_path, getlink=True)
206
206
  if isinstance(node, h5py.ExternalLink):
207
207
  ext_file_path = node.filename
@@ -252,7 +252,7 @@ def get_linked_files_with_vds(hdf5_file: str, dataset_path: str) -> set:
252
252
  if item in treated_items:
253
253
  continue
254
254
  dirname = os.path.dirname(abs_file_path)
255
- with HDF5File(abs_file_path, mode="r", swmr=get_swmr_mode()) as h5f:
255
+ with open_hdf5(abs_file_path) as h5f:
256
256
  dataset = h5f[dataset_path]
257
257
  if dataset.is_virtual:
258
258
  for vs_info in dataset.virtual_sources():
tomwer/version.py CHANGED
@@ -77,7 +77,7 @@ RELEASE_LEVEL_VALUE = {
77
77
 
78
78
  MAJOR = 1
79
79
  MINOR = 3
80
- MICRO = 5
80
+ MICRO = 6
81
81
  RELEV = "final" # <16
82
82
  SERIAL = 0 # <16
83
83
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tomwer
3
- Version: 1.3.5
3
+ Version: 1.3.6
4
4
  Summary: "tomography workflow tools"
5
5
  Home-page: https://gitlab.esrf.fr/tomotools/tomwer
6
6
  Author: data analysis unit
@@ -1,4 +1,4 @@
1
- tomwer-1.3.5-py3.11-nspkg.pth,sha256=xeeGR3TjdoVxdFeF6T-zSwZWh6Et--EYuPWu67LxL_c,574
1
+ tomwer-1.3.6-py3.11-nspkg.pth,sha256=xeeGR3TjdoVxdFeF6T-zSwZWh6Et--EYuPWu67LxL_c,574
2
2
  orangecontrib/tomwer/__init__.py,sha256=B4DXy1gY_wXmNYa2aOfapmJb2mEuCAjoaNEGnpBs70g,148
3
3
  orangecontrib/tomwer/state_summary.py,sha256=5_dPzweL3r0ye4ZfJo6IV2ThJI8fQhWoO2ySdJJajj8,1711
4
4
  orangecontrib/tomwer/orange/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -220,7 +220,7 @@ orangecontrib/tomwer/widgets/visualization/icons/volumeviewer.svg,sha256=2uT9_px
220
220
  tomwer/__init__.py,sha256=82Jp1abyG4UWdGuT4nNU7LxaUV6xxkOte5pIz3w69Do,1745
221
221
  tomwer/__main__.py,sha256=jsDfWA2yl5am0dHQVkYwlKLxxqKNont6VDF-LusuawE,8575
222
222
  tomwer/utils.py,sha256=EgVwJ5CQVjoBvcKNwyVoXv_P4ciI11oxb8fNyy82Lck,8465
223
- tomwer/version.py,sha256=7RnYG3T8V7-HCuyqmXQHZ9FNoUnZS9FQvPROmBSP_fc,4386
223
+ tomwer/version.py,sha256=uL9QPJPqCFjLS5OtVGnrUyJmYbddVDNZ1-V5j_9cyhQ,4386
224
224
  tomwer/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
225
225
  tomwer/app/axis.py,sha256=Ax0wlTp9u0Ll_3ax23QP5Ck16_M9Kop7wx0hAbXrXyM,6004
226
226
  tomwer/app/canvas.py,sha256=RbQqgE7DuNjv4nGG6BNfnSevQO5_lCl7N71hGcLoxwE,1561
@@ -263,7 +263,7 @@ tomwer/core/log/logger.py,sha256=KDHLUbaVx3hOuIk8WmzS61x1IkYgAZJ97nVYUI5-PTU,409
263
263
  tomwer/core/log/processlog.py,sha256=0XmoKVUpHjxvaOFEi56eqF1edHPzCfsCmjdMMZP2sxs,3697
264
264
  tomwer/core/process/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
265
265
  tomwer/core/process/output.py,sha256=UmOczI3GYNXm79B_1B3DInrXZqerhMF98Hru4KcgP1o,1562
266
- tomwer/core/process/task.py,sha256=2N7qH1t5GDd6ooXq9srXWm8mE8Th9a_Q2r-nvaZ-Mmo,15705
266
+ tomwer/core/process/task.py,sha256=3_AuZGwUoLLUw5B8ZwYt0cDFeZ_g1VtTBta573tiODQ,15703
267
267
  tomwer/core/process/utils.py,sha256=LIzKwucEq6IqQ7L8L70UgDBaE9F29h_gjipQsa1RFo8,4010
268
268
  tomwer/core/process/cluster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
269
269
  tomwer/core/process/cluster/supervisor.py,sha256=sStffXsjWEYaAF0yL03igtLflRnmr3zJzHRWGidwHas,1755
@@ -284,7 +284,7 @@ tomwer/core/process/control/tomoobjserie.py,sha256=L--pjgc0P-2wCul9KERwT4jeq45Rk
284
284
  tomwer/core/process/control/volumeselector.py,sha256=0uv1Q8k5Ms1h_iU-ldhb-Y35xsy1kHwQrbUQguV5M_A,370
285
285
  tomwer/core/process/control/volumesymlink.py,sha256=lcHS5eJv5lr72BAXrTe0QfwQw8amXIu0lPRsPdL6o_o,7626
286
286
  tomwer/core/process/control/datalistener/__init__.py,sha256=gSEeJEDX8E-8HzY7tmPc32QKfqSZHG4Ad06IxDrzOWo,52
287
- tomwer/core/process/control/datalistener/datalistener.py,sha256=_2-PKCdiMe58W5mO5eOEsNGF1FuVzx1Q7tNWXSa8n2o,22406
287
+ tomwer/core/process/control/datalistener/datalistener.py,sha256=Je1zillD907UEacwMoFpSVJ6AzzgOEKKaMCjngBERpI,22087
288
288
  tomwer/core/process/control/datalistener/rpcserver.py,sha256=BAIpBqovcxr5R-F144uvAYYUVgqSiXeDRYuw-ZeVgF8,11104
289
289
  tomwer/core/process/control/datawatcher/__init__.py,sha256=F9d_bGOr5iAPEfnKaf5XOEwQSR1wZp_wkzcDYNSuin4,50
290
290
  tomwer/core/process/control/datawatcher/datawatcher.py,sha256=oU0nBmn_-cv_f8r-dTQM4I8QT5XPxLuQ6s4yLkf_PEk,16822
@@ -312,22 +312,22 @@ tomwer/core/process/reconstruction/output.py,sha256=JxtQ-ky2rPjTet2kYtIlzqnfj9E7
312
312
  tomwer/core/process/reconstruction/paramsbase.py,sha256=YhCqZwZCM632WdLlLHJVEwBHnXwbBf7CoLA3jESxOFE,7725
313
313
  tomwer/core/process/reconstruction/axis/__init__.py,sha256=VSQkN6M6JvM_c55OiboNyJUW8Zs1wkkQgv1JYmzvIr8,80
314
314
  tomwer/core/process/reconstruction/axis/anglemode.py,sha256=sOkuTqO8sR8xd_tEwZHj-o1TA1z33AmwwZbrPnuYqmI,1896
315
- tomwer/core/process/reconstruction/axis/axis.py,sha256=CfHrPLUxbPgxmLbMOe5Mw479Geu0q4yo2i3YWrOnBls,42779
315
+ tomwer/core/process/reconstruction/axis/axis.py,sha256=nkBkDjB5yGkxRNWtjnFrixwOE_qCx5iNloIpWEZne3M,42723
316
316
  tomwer/core/process/reconstruction/axis/mode.py,sha256=CvYf-Mat3Vc6Ki1RSUQl4_Z02OKdmXUmpknnLmUgz5k,6750
317
317
  tomwer/core/process/reconstruction/axis/params.py,sha256=y1RgFAk1wiJMeueSNJH5enUnUDxw-jsb9_JF_XxSYks,33185
318
318
  tomwer/core/process/reconstruction/axis/projectiontype.py,sha256=0w_NZ0N95iInHuEQCIxJIxt7K-YpCUo2fZ-_vhZ6D7Q,1543
319
319
  tomwer/core/process/reconstruction/darkref/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
320
320
  tomwer/core/process/reconstruction/darkref/darkrefs.py,sha256=gbRq1IJ-9fxD71684wajQj3D_M9G6chm7ahZsjxTmpM,20862
321
- tomwer/core/process/reconstruction/darkref/darkrefscopy.py,sha256=xcc9huplaFNVud5bUAbe7hxdg0B7YG4R2NWuytR7arM,13250
321
+ tomwer/core/process/reconstruction/darkref/darkrefscopy.py,sha256=6wEBs7yBZHeEADxDLZ-jYTxaeOBJCJacqfskkr1-ytE,13276
322
322
  tomwer/core/process/reconstruction/darkref/params.py,sha256=Pnl8XJ4et-u169wzUdhB8_woBEXPXtrGPLZEbXSwZDQ,10080
323
323
  tomwer/core/process/reconstruction/darkref/settings.py,sha256=35jliuOIjMKTOJjgn4uiotcDEr6RskpLHfRWWLm76dc,188
324
324
  tomwer/core/process/reconstruction/nabu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
325
325
  tomwer/core/process/reconstruction/nabu/castvolume.py,sha256=qk5bNGcPXylEXfHE3eB6gIh2_Bh-ehtq4Z1Ok8hXd5s,10239
326
326
  tomwer/core/process/reconstruction/nabu/helical.py,sha256=gauUkoPiShvnvMQrCQXv28g0yLe-GceML5kYMSXmNIg,1997
327
- tomwer/core/process/reconstruction/nabu/nabucommon.py,sha256=tKbwkEcheecG0hLyl7seZVHvZwsQpzkFgnAmjUs03OE,24484
327
+ tomwer/core/process/reconstruction/nabu/nabucommon.py,sha256=3OyyDjBfdrEF4ctXo6LBH-WeyrKh24j6sJUocA7TwXw,24428
328
328
  tomwer/core/process/reconstruction/nabu/nabuscores.py,sha256=UtTpMF_NZhmz_q8zvBZj6W91cNxYEA3BckWL5GRmCag,25702
329
- tomwer/core/process/reconstruction/nabu/nabuslices.py,sha256=bIk3MAY72tNnmOpbg-REXiFdOBLtC1kWWZd8a5aPp5M,38818
330
- tomwer/core/process/reconstruction/nabu/nabuvolume.py,sha256=gYXQRxVhdbizz7iwh2jnio6Sy_aWXCiMO-mb3rTci5Y,21990
329
+ tomwer/core/process/reconstruction/nabu/nabuslices.py,sha256=lDgGGRQ2xABu9TXs8m-aeyP_jCs3m2WGF75MRd58xm0,38731
330
+ tomwer/core/process/reconstruction/nabu/nabuvolume.py,sha256=z7nyfXhMrp0Q3hAN3NYw5rvvjdgU-ZQQ7kMD3bEiFcU,21916
331
331
  tomwer/core/process/reconstruction/nabu/plane.py,sha256=Cgzth77M0pFgLDULmvmPj4bqFm5MvIMJ7Ien8mRqLsE,134
332
332
  tomwer/core/process/reconstruction/nabu/settings.py,sha256=JpHKf0smiXeWC8i9Mj7h3g67teJ3Gqycd-Uwg2yzGOQ,2279
333
333
  tomwer/core/process/reconstruction/nabu/target.py,sha256=_Z4gViprjR3Vm4KASqsASStLA9GM1wTyoi3Pg0PUSeg,1481
@@ -364,7 +364,7 @@ tomwer/core/process/test/test_axis.py,sha256=So1e1WnVuhvFCv5wT5dftZ9JFsVsc8uR0Qe
364
364
  tomwer/core/process/test/test_conditions.py,sha256=7yKYB_Bg6dQqblA3lGD4eESegDX6MU2AzmUahWTzmdI,3464
365
365
  tomwer/core/process/test/test_dark_and_flat.py,sha256=XyfTtZAH-qleMUwVhaDkpbkxIeqWlgYXMeLVipc0spI,15444
366
366
  tomwer/core/process/test/test_data_listener.py,sha256=ab_FZM7f-lXzQ6eMY-4aCFyTUqWuexZKV_tiRaPVfzE,3696
367
- tomwer/core/process/test/test_data_transfer.py,sha256=d8aZkH3rhKlUUvvaxvEJRTeMXNExdpvUHMvs0-f6vI8,15452
367
+ tomwer/core/process/test/test_data_transfer.py,sha256=6vHQTv4C6pI5XTGTwQCG4U0OQKfR42HviX5frBMsQGE,15419
368
368
  tomwer/core/process/test/test_data_watcher.py,sha256=y0FpUqxlpKZu7OhuwlxeLPX5ESPXj_2m2lKjEWrVCV4,3138
369
369
  tomwer/core/process/test/test_nabu.py,sha256=mMaMNS4Sp-4On6ZDcuNVajQPTiO5kFy84z9p7_pUhzw,19621
370
370
  tomwer/core/process/test/test_normalization.py,sha256=m9hSFi88Q2IGiyNb9emGsS5HOBx9HulJsejUjO0x5Mo,4014
@@ -380,13 +380,13 @@ tomwer/core/process/visualization/sinogramviewer.py,sha256=VPkea5-DiVv_fCvg_UqBo
380
380
  tomwer/core/process/visualization/slicestack.py,sha256=0388rNQBDu_ihJ_vGT7EtwiGPlHf-yJDVBK8VCLXsEo,1625
381
381
  tomwer/core/process/visualization/volumeviewer.py,sha256=h2_LOfx0PNJaBK0cyUDniuV1Gf7FwLsHwU3jFaAbOow,1579
382
382
  tomwer/core/scan/__init__.py,sha256=V1TPi41mS3b6jskdiNqgnKYvRHZg1x1KmEClQ3hUmu8,1392
383
- tomwer/core/scan/blissscan.py,sha256=sldjJdZjRgGRlGASrpTzYTBVbkEhSWJ1Vi052Zzhy34,8310
383
+ tomwer/core/scan/blissscan.py,sha256=yfJaoYGeEKehZwKj1sfdzXU7rohxm5mbOdaORXIRI7o,8244
384
384
  tomwer/core/scan/edfscan.py,sha256=_J6NyqXkMcrD6NirLT-TmI-Le2UpdV8uy8XOmrdu9AM,22892
385
385
  tomwer/core/scan/futurescan.py,sha256=chXjteQ4_6cSyFBoCil-DeHkHGGzM-xb21xJRYLEfhI,213
386
386
  tomwer/core/scan/hdf5scan.py,sha256=P7LHxyqY9Ujg19MpYVItarKxFEy2Z_PVTh5Hi3PCXyU,980
387
387
  tomwer/core/scan/helicalmetadata.py,sha256=JRBxqHkyTe5f3FDlbIeDfN31P6Ms48SqGiFRXHuZ8sw,472
388
- tomwer/core/scan/nxtomoscan.py,sha256=FbWSMjWZP0tO0WyFXP-DBxiKzR2dJV7th8w5wFdi1Kw,19440
389
- tomwer/core/scan/scanbase.py,sha256=noq-wwEnffhJ3C1VLCMDsy3NLNIQwKdr3FWak-n3gG8,32197
388
+ tomwer/core/scan/nxtomoscan.py,sha256=WJEO_hQTcMhgALI5KaSIQy8bGsLEeX2Po0ArUdxlqA0,19405
389
+ tomwer/core/scan/scanbase.py,sha256=PSPeGM6mI6EacE_VUWLTUGcjhdJnY6ZpR_I4qHSHmIc,32052
390
390
  tomwer/core/scan/scanfactory.py,sha256=Ltisxo9B8j11lS_cdwUjuEH1ZjPb9nmU2KmkXxzU98I,10521
391
391
  tomwer/core/scan/scantype.py,sha256=pQjWuCy_014uK5cdb8pFAkE_EPHJvPdSo3NM8aWTo58,137
392
392
  tomwer/core/scan/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -429,7 +429,7 @@ tomwer/core/volume/volumefactory.py,sha256=sf9Mok3EG7a43OTrLAKnRw37TG_22FXY9rruX
429
429
  tomwer/gui/__init__.py,sha256=GuoK-CFwHqHBiLvvSUOAk6_SaXu7-k3SIYCfPTZFHFk,1474
430
430
  tomwer/gui/icons.py,sha256=r_UURvOe36k83iw5gQiEKt6fgdvPNbZgrUoeji_s6eE,12917
431
431
  tomwer/gui/illustrations.py,sha256=kKA_Jnj67QwwjHXW1d5x1qOgV2QWlktvEJYIDFTSJ-0,5368
432
- tomwer/gui/imagefromfile.py,sha256=mz0tKpWu_7Ezv5U6sYkb9840HWWqjyYhVYq0j_Yv9mo,5536
432
+ tomwer/gui/imagefromfile.py,sha256=vE7O59deIJoUqCcm09tcGLZ99YHncqMf-xQbEkWboGo,5501
433
433
  tomwer/gui/qconfigfile.py,sha256=zkXEirFZbIyylm0usdn7dVRWvns6bRoqYTG2bs9JCTM,713
434
434
  tomwer/gui/qfolderdialog.py,sha256=lIptQ9WHU5OoViCTE5lJMctSBa_ayf0IBirKikrKudI,22761
435
435
  tomwer/gui/qlefilesystem.py,sha256=ooNqoAeQA_JKamBg-ZlJSfX-paAYcGAjNam25qXJPgA,534
@@ -459,7 +459,7 @@ tomwer/gui/control/emailnotifier.py,sha256=nbuy4cSXdSOiDTSwWhK2bbpIdq4bDpApWNs2z
459
459
  tomwer/gui/control/history.py,sha256=o7r2OiUqIPX7DsyPCI_r8XDkLowU5NajQnpbJic2rgY,4826
460
460
  tomwer/gui/control/nxtomomill.py,sha256=DI7DsO98O8h9mFcJ_1y1Kb8nD6w09at8YvJZNHR_EtE,7293
461
461
  tomwer/gui/control/observations.py,sha256=oj2OqWYwiewgsZ5vNjzrMjB-YPopYyJmaBE5df09L7c,7735
462
- tomwer/gui/control/reducedarkflatselector.py,sha256=UGnJEApAm8wO7pOLLeBS1unZZbqzKL2YpOyvKv6dV1I,20571
462
+ tomwer/gui/control/reducedarkflatselector.py,sha256=hW2D69B2THZn8lIOaUQJHJ6aGIn-tHjcynEfIn4DftA,20536
463
463
  tomwer/gui/control/scanselectorwidget.py,sha256=m3uxkoG4aNPPwamiI14l82PNS8tvIiOXmKhBJiwHgjU,2356
464
464
  tomwer/gui/control/selectorwidgetbase.py,sha256=avj6dkBJaryCQYF66vXbuYbaLAjTwmcdQ1L24DcUH6I,5571
465
465
  tomwer/gui/control/singletomoobj.py,sha256=5R_Uwgp5wdDQudxG2vyyq4Nj1GjhqH0HCeo_cFS7WuI,6777
@@ -492,10 +492,10 @@ tomwer/gui/debugtools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
492
492
  tomwer/gui/debugtools/datasetgenerator.py,sha256=b3VSgtzG4QyHqxbeVyXE4gX41cGwuVKJHhPWU9ZibQc,10641
493
493
  tomwer/gui/debugtools/objectinspector.py,sha256=Mva9iK4bIxHvs3CcuHboWa4kiUEMoBeuUOULfPNyNOs,2925
494
494
  tomwer/gui/edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
495
- tomwer/gui/edit/dkrfpatch.py,sha256=ZWsEYCsvRit7IA7oEkuOM_Tu0D4SzasQX3U1LdSsuWw,17630
495
+ tomwer/gui/edit/dkrfpatch.py,sha256=UCXfEq3wV1x3OzEdzIzi6YxRN6SaEIZb-Yudt2YwnUs,17533
496
496
  tomwer/gui/edit/imagekeyeditor.py,sha256=NjnPdKJif9bhfPXejJuRrj2TqTTMlOxlk4mb6mSBoHw,29728
497
497
  tomwer/gui/edit/nxtomoeditor.py,sha256=1mV5EIHTclg1YxDLMncbErNwC58jEOGxjxO7I1dRzyQ,28095
498
- tomwer/gui/edit/nxtomowarmer.py,sha256=8CJ4apk9BHQatYFDj3FiK0Etv8YapieY8C60nGKcd-U,2383
498
+ tomwer/gui/edit/nxtomowarmer.py,sha256=Vmsg8oUSzHpIvJVqF6xZd0aYKzPi_DDoNrGOIQbqBwU,2349
499
499
  tomwer/gui/edit/test/__init__.py,sha256=OLK9ip_LryBfM_L40MReqjvJS3wdbWP_CpnBeD1NQTA,1368
500
500
  tomwer/gui/edit/test/test_dkrf_patch.py,sha256=578ZPdVGOHls236XQqId7QqRrpdN5h3Hh8BePTlV03g,8001
501
501
  tomwer/gui/edit/test/test_image_key_editor.py,sha256=hkeiB5plRR17YD499j6_yQatuIgKLa4F4NfjWVMzhY4,5965
@@ -609,10 +609,10 @@ tomwer/gui/visualization/test/test_stacks.py,sha256=HFLwaJ4LCHKuhRjMB4FNhIrI3W96
609
609
  tomwer/gui/visualization/test/test_volumeviewer.py,sha256=Cf0EIQ8D_A9scznodWQGZfzkKgsuImzE44Q3A2e_PPs,2374
610
610
  tomwer/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
611
611
  tomwer/io/utils/__init__.py,sha256=SrC5etCrm-3oMkUc4PPRqSdkIwTvKdtnBTfxh35_exI,272
612
- tomwer/io/utils/h5pyutils.py,sha256=f4Oj00fxLKI-a6JAq_gPgiitInhcK65vFwIyYOX6I9c,3074
612
+ tomwer/io/utils/h5pyutils.py,sha256=nSKVGHhFh2dJbEj6Ie0wPgU60HXxTctMJoTyRIpQPQs,2964
613
613
  tomwer/io/utils/raw_and_processed_data.py,sha256=XMAyMTbxB7orxHsYOPuWQd5QiGQB_xesx8bMf2KyW0g,3208
614
614
  tomwer/io/utils/tomoobj.py,sha256=PGcTc2nMDMzKGvL7u5LgIMc9MYhJwLN9yecA1gttmzE,2828
615
- tomwer/io/utils/utils.py,sha256=jy27AkxXOi6oreRCR-Q3pFqqSwftzfqSkaH0ZobKQ-c,10744
615
+ tomwer/io/utils/utils.py,sha256=GnBaxTacb-vMJymiVk8onRRjJamGx0xRzbWl5yFl_fQ,10678
616
616
  tomwer/resources/__init__.py,sha256=dXxWZFKRE4ncPKzNq9BBLtjwRYmRvzzErgKhvzH_W6g,5904
617
617
  tomwer/resources/gui/icons/Imagej_icon.png,sha256=JFDzPw20pzRrf6wLBnScXEcmTVt6orXPzwPwniKeVss,1618960
618
618
  tomwer/resources/gui/icons/a.png,sha256=YrYFndLl3SUcsYNJDloU9YeJLBUkiMmgvDjDNJCMipI,3858
@@ -776,10 +776,10 @@ tomwer/tests/test_utils.py,sha256=D0rNDSK6csEOYBY_7gD-4A3jp8rYAm8L1_Xg34A9I2s,30
776
776
  tomwer/tests/utils.py,sha256=RAXx5A99WD4Vyuv_wjHBdr-Xu7UiThHRKw2eiB5GX10,107
777
777
  tomwer/third_part/WaitingOverlay.py,sha256=GnqiytcJDp_24Cmz_2nZAP5HfpL3Yh7AzR2ATIusGsg,3906
778
778
  tomwer/third_part/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
779
- tomwer-1.3.5.dist-info/LICENSE,sha256=yR_hIZ1MfDh9x2_s23uFqBH7m5DgrBl9nJKkE37YChM,1877
780
- tomwer-1.3.5.dist-info/METADATA,sha256=CXAdzIqOr-504Mh_Dq4fDhzxC_DSK7-eT-fJ64Vmkew,11459
781
- tomwer-1.3.5.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
782
- tomwer-1.3.5.dist-info/entry_points.txt,sha256=fIcDnCxjgwzfIylLYhUsFyiNZjZMxsfRQBxi4f-cJg8,440
783
- tomwer-1.3.5.dist-info/namespace_packages.txt,sha256=Iut-JTfT11SZHHm77_ZeszD7pZDWXcTweCbvrJpqDyQ,14
784
- tomwer-1.3.5.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
785
- tomwer-1.3.5.dist-info/RECORD,,
779
+ tomwer-1.3.6.dist-info/LICENSE,sha256=yR_hIZ1MfDh9x2_s23uFqBH7m5DgrBl9nJKkE37YChM,1877
780
+ tomwer-1.3.6.dist-info/METADATA,sha256=0rHJ-_xiv99uLR6bp1igf01UZ0NtSPKkZbuPuaqU9So,11459
781
+ tomwer-1.3.6.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
782
+ tomwer-1.3.6.dist-info/entry_points.txt,sha256=fIcDnCxjgwzfIylLYhUsFyiNZjZMxsfRQBxi4f-cJg8,440
783
+ tomwer-1.3.6.dist-info/namespace_packages.txt,sha256=Iut-JTfT11SZHHm77_ZeszD7pZDWXcTweCbvrJpqDyQ,14
784
+ tomwer-1.3.6.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
785
+ tomwer-1.3.6.dist-info/RECORD,,
File without changes