tomwer 1.3.4__py3-none-any.whl → 1.3.12__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.
Files changed (39) hide show
  1. tomwer/core/process/control/datalistener/datalistener.py +11 -11
  2. tomwer/core/process/control/datawatcher/edfdwprocess.py +0 -9
  3. tomwer/core/process/reconstruction/axis/axis.py +3 -3
  4. tomwer/core/process/reconstruction/darkref/darkrefscopy.py +3 -2
  5. tomwer/core/process/reconstruction/nabu/nabucommon.py +3 -4
  6. tomwer/core/process/reconstruction/nabu/nabuscores.py +1 -0
  7. tomwer/core/process/reconstruction/nabu/nabuslices.py +6 -52
  8. tomwer/core/process/reconstruction/nabu/nabuvolume.py +2 -5
  9. tomwer/core/process/reconstruction/nabu/utils.py +6 -0
  10. tomwer/core/process/reconstruction/saaxis/saaxis.py +2 -0
  11. tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +2 -0
  12. tomwer/core/process/task.py +4 -2
  13. tomwer/core/process/test/test_data_transfer.py +4 -3
  14. tomwer/core/scan/blissscan.py +3 -3
  15. tomwer/core/scan/nxtomoscan.py +2 -2
  16. tomwer/core/scan/scanbase.py +5 -6
  17. tomwer/gui/control/datawatcher/datawatcher.py +1 -24
  18. tomwer/gui/control/reducedarkflatselector.py +2 -2
  19. tomwer/gui/edit/dkrfpatch.py +4 -4
  20. tomwer/gui/edit/nxtomowarmer.py +3 -2
  21. tomwer/gui/imagefromfile.py +2 -2
  22. tomwer/gui/qfolderdialog.py +4 -0
  23. tomwer/gui/reconstruction/axis/radioaxis.py +3 -0
  24. tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +11 -10
  25. tomwer/gui/reconstruction/saaxis/saaxis.py +2 -2
  26. tomwer/gui/visualization/volumeviewer.py +10 -4
  27. tomwer/io/utils/h5pyutils.py +3 -7
  28. tomwer/io/utils/utils.py +3 -3
  29. tomwer/synctools/stacks/reconstruction/castvolume.py +20 -5
  30. tomwer/version.py +1 -1
  31. tomwer-1.3.12-py3.11-nspkg.pth +1 -0
  32. {tomwer-1.3.4.dist-info → tomwer-1.3.12.dist-info}/METADATA +1 -1
  33. {tomwer-1.3.4.dist-info → tomwer-1.3.12.dist-info}/RECORD +38 -38
  34. {tomwer-1.3.4.dist-info → tomwer-1.3.12.dist-info}/WHEEL +1 -1
  35. tomwer-1.3.4-py3.11-nspkg.pth +0 -1
  36. {tomwer-1.3.4.dist-info → tomwer-1.3.12.dist-info}/LICENSE +0 -0
  37. {tomwer-1.3.4.dist-info → tomwer-1.3.12.dist-info}/entry_points.txt +0 -0
  38. {tomwer-1.3.4.dist-info → tomwer-1.3.12.dist-info}/namespace_packages.txt +0 -0
  39. {tomwer-1.3.4.dist-info → tomwer-1.3.12.dist-info}/top_level.txt +0 -0
@@ -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(
@@ -544,6 +544,10 @@ class QVolumeDialog(qt.QDialog):
544
544
  constructor = TIFFVolume
545
545
  elif file_extension in self._JP2K_EXTENSIONS:
546
546
  constructor = JP2KVolume
547
+ else:
548
+ raise NotImplementedError(
549
+ f"unhandled file extension ({file_extension})"
550
+ )
547
551
  volume = constructor(
548
552
  folder=file_path,
549
553
  volume_basename=None if basename in ("", None) else basename,
@@ -1647,6 +1647,9 @@ class _CalculationWidget(qt.QWidget):
1647
1647
  def setEstimatedCorValue(self, value):
1648
1648
  if value is not None:
1649
1649
  self._qleNearPosQLE.setText(str(value))
1650
+ # note: keep self._axis_params up to date.
1651
+ if self._axis_params:
1652
+ self._axis_params.estimated_cor = value
1650
1653
 
1651
1654
  def getEstimatedCor(self):
1652
1655
  try:
@@ -40,6 +40,7 @@ from tomwer.core.process.reconstruction.nabu.utils import (
40
40
  from tomwer.gui.reconstruction.nabu.nabuconfig.base import _NabuStageConfigBase
41
41
  from tomwer.gui.utils.scrollarea import QComboBoxIgnoreWheel as QComboBox
42
42
  from tomwer.gui.utils.scrollarea import QDoubleSpinBoxIgnoreWheel as QDoubleSpinBox
43
+ from tomwer.gui.utils.scrollarea import QSpinBoxIgnoreWheel as QSpinBox
43
44
  from tomwer.utils import docstring
44
45
 
45
46
  _logger = logging.getLogger(__name__)
@@ -104,7 +105,7 @@ class _NabuPreProcessingConfig(_NabuStageConfigBase, qt.QWidget):
104
105
  self.layout().addWidget(self._sinoRingCorrectionMthd, 2, 2, 1, 1)
105
106
  self.registerWidget(self._sinoRingCorrectionMthd, "required")
106
107
 
107
- self._sinoRingsOpts = SinoRingsOptions(parent=self)
108
+ self._sinoRingsOpts = SinoRingsOptions(parent=self, scrollArea=scrollArea)
108
109
  self.layout().addWidget(self._sinoRingsOpts, 3, 1, 1, 3)
109
110
 
110
111
  ## ccd filter
@@ -443,7 +444,7 @@ class _NabuPreProcessingConfig(_NabuStageConfigBase, qt.QWidget):
443
444
  class SinoRingsOptions(qt.QWidget):
444
445
  _VO_DIMS = ("horizontaly", "horizontaly and vertically")
445
446
 
446
- def __init__(self, parent=None, *args, **kwargs):
447
+ def __init__(self, parent=None, scrollArea=None, *args, **kwargs):
447
448
  super().__init__(parent, *args, **kwargs)
448
449
  self._method = None
449
450
  self.setLayout(qt.QFormLayout())
@@ -451,12 +452,12 @@ class SinoRingsOptions(qt.QWidget):
451
452
  self.layout().setSpacing(0)
452
453
  # munch parameters
453
454
  self._sigmaMunchLabel = qt.QLabel("sigma", self)
454
- self._sigmaMunch = qt.QDoubleSpinBox(self)
455
+ self._sigmaMunch = QDoubleSpinBox(self, scrollArea=scrollArea)
455
456
  self._sigmaMunch.setRange(0.0, 2147483647)
456
457
  self.layout().addRow(self._sigmaMunchLabel, self._sigmaMunch)
457
458
 
458
459
  self._levelsMunchLabel = qt.QLabel("levels", self)
459
- self._levelsMunch = qt.QSpinBox(self)
460
+ self._levelsMunch = QSpinBox(self, scrollArea=scrollArea)
460
461
  self._levelsMunch.setRange(0, 2147483647)
461
462
  self.layout().addRow(self._levelsMunchLabel, self._levelsMunch)
462
463
 
@@ -465,7 +466,7 @@ class SinoRingsOptions(qt.QWidget):
465
466
 
466
467
  # vo parameters
467
468
  self._snrVOLabel = qt.QLabel("snr", self)
468
- self._snrVO = qt.QDoubleSpinBox(self)
469
+ self._snrVO = QDoubleSpinBox(self, scrollArea=scrollArea)
469
470
  self._snrVO.setMinimum(0.0)
470
471
  tooltip = "Ratio used to locate large stripes. Greater is less sensitive."
471
472
  self._snrVO.setToolTip(tooltip)
@@ -473,7 +474,7 @@ class SinoRingsOptions(qt.QWidget):
473
474
  self.layout().addRow(self._snrVOLabel, self._snrVO)
474
475
 
475
476
  self._laSizeVOLabel = qt.QLabel("la_size", self)
476
- self._laSizeVO = qt.QSpinBox(self)
477
+ self._laSizeVO = QSpinBox(self, scrollArea=scrollArea)
477
478
  self._laSizeVO.setMinimum(0)
478
479
  tooltip = "Window size of the median filter to remove large stripes."
479
480
  self._laSizeVO.setToolTip(tooltip)
@@ -481,7 +482,7 @@ class SinoRingsOptions(qt.QWidget):
481
482
  self.layout().addRow(self._laSizeVOLabel, self._laSizeVO)
482
483
 
483
484
  self._smSizeVOLabel = qt.QLabel("sm_size", self)
484
- self._smSizeVO = qt.QSpinBox(self)
485
+ self._smSizeVO = QSpinBox(self, scrollArea=scrollArea)
485
486
  self._smSizeVO.setMinimum(0)
486
487
  tooltip = "Window size of the median filter to remove small-to-medium stripes."
487
488
  self._laSizeVO.setToolTip(tooltip)
@@ -489,18 +490,18 @@ class SinoRingsOptions(qt.QWidget):
489
490
  self.layout().addRow(self._smSizeVOLabel, self._smSizeVO)
490
491
 
491
492
  self._dimVOLabel = qt.QLabel("dimension", self)
492
- self._dimVO = qt.QComboBox(self)
493
+ self._dimVO = QComboBox(self, scrollArea=scrollArea)
493
494
  self._dimVO.addItems(self._VO_DIMS)
494
495
  self.layout().addRow(self._dimVOLabel, self._dimVO)
495
496
 
496
497
  # sino mean deringer
497
498
  self._sigmaLowLabel = qt.QLabel("signal low", self)
498
- self._sigmaLow = qt.QDoubleSpinBox(self)
499
+ self._sigmaLow = QDoubleSpinBox(self, scrollArea=scrollArea)
499
500
  self._sigmaLow.setMinimum(0.0)
500
501
  self._sigmaHighLabel = qt.QLabel("signal high", self)
501
502
  self.layout().addRow(self._sigmaLowLabel, self._sigmaLow)
502
503
 
503
- self._sigmaHigh = qt.QDoubleSpinBox(self)
504
+ self._sigmaHigh = QDoubleSpinBox(self, scrollArea=scrollArea)
504
505
  self._sigmaHigh.setMinimum(0.0)
505
506
  tooltip = (
506
507
  "sigma low and sigma high values are defining the standard deviation of "
@@ -66,14 +66,14 @@ class ScorePlot(_ScorePlot, constructor=CorSelection):
66
66
 
67
67
  def _updateScores(self):
68
68
  scan = self.__scan() if self.__scan else None
69
+ img_width = None
69
70
  if scan is not None:
70
71
  if scan.saaxis_params:
71
72
  scan.saaxis_params.score_method = self.getScoreMethod()
72
73
  img_width = scan.dim_1
73
74
  # update autofocus
74
75
  SAAxisTask.autofocus(scan)
75
- else:
76
- img_width = None
76
+
77
77
  self.setVarScores(
78
78
  scores=self._scores,
79
79
  score_method=self.getScoreMethod(),
@@ -15,7 +15,6 @@ from tomoscan.esrf.volume.hdf5volume import HDF5Volume
15
15
  from tomoscan.factory import Factory
16
16
  from tomoscan.identifier import VolumeIdentifier
17
17
  from tomoscan.volumebase import VolumeBase
18
- from tomoscan.io import HDF5File, get_swmr_mode
19
18
 
20
19
  from tomwer.core.scan.scanbase import TomwerScanBase
21
20
  from tomwer.gui.visualization.reconstructionparameters import ReconstructionParameters
@@ -298,9 +297,16 @@ class VolumeViewer(qt.QMainWindow):
298
297
 
299
298
  self._close_h5_file()
300
299
  if isinstance(volume, HDF5Volume):
301
- self._h5_file = HDF5File(
302
- filename=volume.data_url.file_path(), mode="r", swmr=get_swmr_mode()
303
- )
300
+ try:
301
+ self._h5_file = h5py.File(volume.data_url.file_path(), mode="r")
302
+ except OSError:
303
+ self._h5_file = h5py.File(
304
+ volume.data_url.file_path(),
305
+ mode="r",
306
+ libver="latest",
307
+ swmr=True,
308
+ )
309
+
304
310
  if volume.data_url.data_path() in self._h5_file:
305
311
  data = self._h5_file[volume.data_url.data_path()]
306
312
  state = "loaded"
@@ -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():
@@ -94,11 +94,26 @@ class CastVolumeProcessStack(FIFO, qt.QObject):
94
94
  self.scan_ready(scan=data)
95
95
  else:
96
96
  self._data_currently_computed = data
97
- self._computationThread.init(data=data, configuration=configuration)
98
- # need to manage connect before starting it because
99
- fct_callback = functools.partial(self._end_threaded_computation, callback)
100
- self._computationThread.finished.connect(fct_callback)
101
- self._computationThread.start()
97
+ try:
98
+ self._computationThread.init(data=data, configuration=configuration)
99
+ except ValueError as e:
100
+ # initialization can fail (for example for cast volume is there is no volume or be case this will raise an error)
101
+ # then we want to keep the thread active
102
+ self._data_currently_computed = None
103
+ ProcessManager().notify_dataset_state(
104
+ dataset=data, process=self._process_id, state=DatasetState.SKIPPED
105
+ )
106
+ _logger.processSkipped(f"thread initialization failed. Error is {e}")
107
+ if callback is not None:
108
+ callback()
109
+ self.scan_ready(scan=data)
110
+ else:
111
+ # need to manage connect before starting it because
112
+ fct_callback = functools.partial(
113
+ self._end_threaded_computation, callback
114
+ )
115
+ self._computationThread.finished.connect(fct_callback)
116
+ self._computationThread.start()
102
117
 
103
118
  def _end_computation(self, data, future_tomo_obj, callback):
104
119
  """
tomwer/version.py CHANGED
@@ -77,7 +77,7 @@ RELEASE_LEVEL_VALUE = {
77
77
 
78
78
  MAJOR = 1
79
79
  MINOR = 3
80
- MICRO = 4
80
+ MICRO = 12
81
81
  RELEV = "final" # <16
82
82
  SERIAL = 0 # <16
83
83
 
@@ -0,0 +1 @@
1
+ import sys, types, os;p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('orangecontrib',));importlib = __import__('importlib.util');__import__('importlib.machinery');m = sys.modules.setdefault('orangecontrib', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('orangecontrib', [os.path.dirname(p)])));m = m or sys.modules.setdefault('orangecontrib', types.ModuleType('orangecontrib'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tomwer
3
- Version: 1.3.4
3
+ Version: 1.3.12
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.4-py3.11-nspkg.pth,sha256=xeeGR3TjdoVxdFeF6T-zSwZWh6Et--EYuPWu67LxL_c,574
1
+ tomwer-1.3.12-py3.11-nspkg.pth,sha256=UYCZtLWueceGiAlmXKRJUZ0TWQEubpPoQ1pVnAAsME0,502
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=C70dCggHBOePxIH5hg9_Qp25x3tVMecOvoGVF8bWJ0Y,4386
223
+ tomwer/version.py,sha256=IDUyPUncjIHz-jVJ_hLVrrkFdMvxkotQuwEVTJGHUKo,4387
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=ONb5EpuDVMtt0JNcakYnsMbvW8aKKvxhooAeBIvNtGs,15733
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,13 +284,13 @@ 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
291
291
  tomwer/core/process/control/datawatcher/datawatcherobserver.py,sha256=wgmIMpPZv3AX6HxSNkaIGGFPmqYz8DshvLkFeWh9XRM,25752
292
292
  tomwer/core/process/control/datawatcher/datawatcherprocess.py,sha256=7jmHizBYV6NGbT63pQPAS7V5Zk8OydikbdFNMYzFIiE,9450
293
- tomwer/core/process/control/datawatcher/edfdwprocess.py,sha256=D1vq45z7rSrlKnnrRIGQ9gm2cRTM45FERKS7OQVJeNs,7209
293
+ tomwer/core/process/control/datawatcher/edfdwprocess.py,sha256=Bjp0YHPfrCS2NZmcX_oFkaqsH2jxouR7OCz2YjGhOK8,7024
294
294
  tomwer/core/process/control/datawatcher/hdf5dwprocess.py,sha256=fYcxP3cLtxN_KwiLZuiubBcY0MIYgKuy4t8FSa66b2c,3027
295
295
  tomwer/core/process/control/datawatcher/status.py,sha256=hsrBiaCyxvFK5E2l_jHWnt3Unyf6XKCSlXe0nFFS0wk,3074
296
296
  tomwer/core/process/control/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -312,35 +312,35 @@ 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
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
327
+ tomwer/core/process/reconstruction/nabu/nabucommon.py,sha256=3OyyDjBfdrEF4ctXo6LBH-WeyrKh24j6sJUocA7TwXw,24428
328
+ tomwer/core/process/reconstruction/nabu/nabuscores.py,sha256=fn4gUvw6Cl3jl7WI5R_HATYjhd1y5ctt1MkOhWq6VOM,25733
329
+ tomwer/core/process/reconstruction/nabu/nabuslices.py,sha256=ErNsrXWJ0cpXKL1DHDi7PC6Xulz_iJ-9r2QFhH5s_zU,36816
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
334
- tomwer/core/process/reconstruction/nabu/utils.py,sha256=gRs1fEw4qmNyf7R4j9XMo6IK7Y5q3NlkDeh6w2UAelI,17950
334
+ tomwer/core/process/reconstruction/nabu/utils.py,sha256=lc6o0ROVk3VL3RtGB_05a7YNDBXsDRlkof_sFLeSIB8,18285
335
335
  tomwer/core/process/reconstruction/normalization/__init__.py,sha256=TDtATpMVFkEOT93wLXLpW0A_TOeiQDiM7AWAqX4FIB0,119
336
336
  tomwer/core/process/reconstruction/normalization/normalization.py,sha256=G-eAZIct47RvzvHNMbKsG4Dt58vTSKhvH-NnIMzxzOs,13210
337
337
  tomwer/core/process/reconstruction/normalization/params.py,sha256=porWC6G5lQWF-4JB03B56uGmuMxjx3u0ZMums-Bh2p8,4790
338
338
  tomwer/core/process/reconstruction/saaxis/__init__.py,sha256=ZEOu0nZWlMyBoX_A64yeEjVflE5x4iWSpYLTgs45g0o,137
339
339
  tomwer/core/process/reconstruction/saaxis/params.py,sha256=dvBHxfSs3ffUk22drLAlcmAJJhaC42qV9aW45kC1ITA,5583
340
- tomwer/core/process/reconstruction/saaxis/saaxis.py,sha256=wKkWMXZPLZr5HVbio6FcZtVSac4SmLq2XjcCTe1nVMg,31985
340
+ tomwer/core/process/reconstruction/saaxis/saaxis.py,sha256=uTkARtWJchEkPqPRI2Aqicb6oaA0z4QCtZS9tj444A8,32085
341
341
  tomwer/core/process/reconstruction/sadeltabeta/__init__.py,sha256=WDYJxfqPnz5IeLPCX5W8UEO8-Z-NSH79gkqp2DZn1bM,162
342
342
  tomwer/core/process/reconstruction/sadeltabeta/params.py,sha256=4UrLpA-6Wwfof9Jl1fcGTd5wrDzDB86GX4vo_PEgj74,4043
343
- tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py,sha256=Qde-QTnn6TVt9XRLVKQ1a9s7vW9mBcz6p0FTkTJbM5I,30925
343
+ tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py,sha256=E1FLnZ6d54IXlt6Rjgrco1ca1eMzFlcYa_mqCf8Pfgw,31025
344
344
  tomwer/core/process/reconstruction/scores/__init__.py,sha256=aTWranL8RRGSMKOSDkkjhaqWisgZdP9Xgx7GoFhLwJo,282
345
345
  tomwer/core/process/reconstruction/scores/params.py,sha256=kk6prt2sLMe8p-vvgGyKRM6KMCG0XuwyhNvAlp9KuGs,7564
346
346
  tomwer/core/process/reconstruction/scores/scores.py,sha256=pb60Pt7p_8O9XZtcT0MH_TwVSNEzJFkTl_K3o5fJCgE,7383
@@ -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,9 +429,9 @@ 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
- tomwer/gui/qfolderdialog.py,sha256=lIptQ9WHU5OoViCTE5lJMctSBa_ayf0IBirKikrKudI,22761
434
+ tomwer/gui/qfolderdialog.py,sha256=zOW2DOh9YCaxMKl-eUOb865gxPWT_0UMn4076N2YPw8,22907
435
435
  tomwer/gui/qlefilesystem.py,sha256=ooNqoAeQA_JKamBg-ZlJSfX-paAYcGAjNam25qXJPgA,534
436
436
  tomwer/gui/settings.py,sha256=2Uy0itj8Dg-Owtay852l_oSCop2CQBFqIU11iVj2-nE,244
437
437
  tomwer/gui/stackplot.py,sha256=Bz-6Taen3RKAa6FYKeZ81M27r9hahbjAr7Cnx0TsPhE,25517
@@ -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
@@ -468,7 +468,7 @@ tomwer/gui/control/volumeselectorwidget.py,sha256=mpbofAawBpzdc46IEkucTuiFJRDP18
468
468
  tomwer/gui/control/datawatcher/__init__.py,sha256=4MnBP53SmxMTRpeM8NApgSsbh6HRKshwLdhpJt078jQ,1444
469
469
  tomwer/gui/control/datawatcher/configuration.py,sha256=E9RTx2hgF7JJKg8zOq6vFwWZYcKAWyvZkLR5g5TiBsw,10193
470
470
  tomwer/gui/control/datawatcher/controlwidget.py,sha256=qaT_QJCiMnmp21LnzGomnkBGX6Rvuxf3V_tktyEcSLI,3857
471
- tomwer/gui/control/datawatcher/datawatcher.py,sha256=tjiSksE3C_bjdf7olOvz6pdSzj6E5MlRg1kq137Jq-c,22592
471
+ tomwer/gui/control/datawatcher/datawatcher.py,sha256=vfU04qzSioOAEo-Htb_R3peZuPGJAP1RytxlKH0evvs,21671
472
472
  tomwer/gui/control/datawatcher/datawatcherobserver.py,sha256=wm4uuFeBxyUrb_1Wfw4WASWhlKl0DKud5eihIh4Brt0,10543
473
473
  tomwer/gui/control/serie/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
474
474
  tomwer/gui/control/serie/nxtomoconcatenate.py,sha256=YyJssAnQauRhQ1jBg63uj1pXcdo2IsktebaQvpgx8YA,3131
@@ -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
@@ -508,7 +508,7 @@ tomwer/gui/reconstruction/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
508
508
  tomwer/gui/reconstruction/axis/CompareImages.py,sha256=mrlXPCgq71lzmA_XACqrjdzRTK1iYJQBMrJMaeKZAq8,12870
509
509
  tomwer/gui/reconstruction/axis/__init__.py,sha256=fUKWiRiG2o4Y-9RN-41VZMMM8L9Srl6QCn942VL5szY,94
510
510
  tomwer/gui/reconstruction/axis/axis.py,sha256=QLyrJzJrShjlnO3tLkcnv2oexzVkxw-SGgn3cYfmmEY,27260
511
- tomwer/gui/reconstruction/axis/radioaxis.py,sha256=Yw4Rieeu6JRrrD6TtIiid0yqLQkJXTIZLlz493l9kMM,92610
511
+ tomwer/gui/reconstruction/axis/radioaxis.py,sha256=hTweuwS-X32ZlpkHvP5X910zJ8p4fiJMsn_oUVtfvXM,92755
512
512
  tomwer/gui/reconstruction/darkref/__init__.py,sha256=g9LASP8OJjxCPEHXO14hN0OLjLkeUve6etaPm1LIz4c,1373
513
513
  tomwer/gui/reconstruction/darkref/darkrefcopywidget.py,sha256=9pgynAKXb5KEfPwjaSprcycMgg7K7DjgXdVUlc5xsJA,11562
514
514
  tomwer/gui/reconstruction/darkref/darkrefwidget.py,sha256=O33udHaezaanZD9L5D525KrB4FD77g_Spr7gAUxGEag,16468
@@ -526,14 +526,14 @@ tomwer/gui/reconstruction/nabu/nabuconfig/ctf.py,sha256=6WnlS4vNMTdKJ5uj-uLvjeWx
526
526
  tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py,sha256=tNrV-qSpN1oaXImGJgbnk3dLfdg6nUYa4Gji41VShWU,11529
527
527
  tomwer/gui/reconstruction/nabu/nabuconfig/output.py,sha256=RWd1yO4tbCoqktYozVMaRdU5wQdvshjQM5Lf5jKbiNE,13952
528
528
  tomwer/gui/reconstruction/nabu/nabuconfig/phase.py,sha256=5bGZI4fW970hCd5bTHWBYPNHZ7MU5--nasF_uD3qi0Y,15368
529
- tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py,sha256=-MMPCPT-xdwaIvgU0uW6H-MH_Bwr9ef2Oq8rfY-MQKA,30942
529
+ tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py,sha256=WjgufdyDQi1vy77jiaobfZE9_kIVKirvWzns3Ms_MEo,31214
530
530
  tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py,sha256=wFjJiHGe8XZFuTeF0EefgIYfPWZJEj6bsBLC6MPjNNs,38981
531
531
  tomwer/gui/reconstruction/normalization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
532
532
  tomwer/gui/reconstruction/normalization/intensity.py,sha256=GWFPxsRxDxFnUwCh4zEDKccjt5Mmnl9WWZYa5wte0Ys,33856
533
533
  tomwer/gui/reconstruction/saaxis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
534
534
  tomwer/gui/reconstruction/saaxis/corrangeselector.py,sha256=dxA10buj6yX3zFIHbAwsLqYdlXYsWa0NgBZyrKoTu2Y,32888
535
535
  tomwer/gui/reconstruction/saaxis/dimensionwidget.py,sha256=NtLK3yec9yqW5IITWik-g_KYbk0Qkx9ctLjjb6gsFEc,9750
536
- tomwer/gui/reconstruction/saaxis/saaxis.py,sha256=6ZVKZBa0WSiSSLhLuxEEwT1jjY1NxB7Y0N9SWKO1mQQ,21065
536
+ tomwer/gui/reconstruction/saaxis/saaxis.py,sha256=T4aMRe_TfPGUxjE7zS2buejvuYBdi_Kkz8G3BQkXBXI,21048
537
537
  tomwer/gui/reconstruction/saaxis/sliceselector.py,sha256=PXKShit4GXTEDUoEPjC4SYZeWd8A5rj1BWnAR0uygso,12213
538
538
  tomwer/gui/reconstruction/sadeltabeta/__init__.py,sha256=74VkZ1KfTqXmfQReLkjJenvuEZFkhHDqK6BZJHhOeS4,57
539
539
  tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py,sha256=64G8p4dCxKNM9JxmYLRx9aVZHKifLLOUPOUVB4aGHEw,20396
@@ -595,7 +595,7 @@ tomwer/gui/visualization/scanoverview.py,sha256=xmq_nhbnGcedDreqIrZ8ZXXtRhC6KI4q
595
595
  tomwer/gui/visualization/sinogramviewer.py,sha256=mBfB77ywfyj4vYkb7lYhEcn9-gZVjqzlTvMCngB9CyI,9707
596
596
  tomwer/gui/visualization/tomoobjoverview.py,sha256=YzocBQXhgnzI8IsJg5junE7218WcJdvSNH4r6DQgo74,1991
597
597
  tomwer/gui/visualization/volumeoverview.py,sha256=6Hv1TtsDlaGQPCJKW-IkGy_r5Buue-O95tl1KkpMD-0,2491
598
- tomwer/gui/visualization/volumeviewer.py,sha256=LZWJuiiA4nnaCCKKM_izTKGei6M5i1GEqKPstYm2j94,16185
598
+ tomwer/gui/visualization/volumeviewer.py,sha256=LZq0sHlxpkPvBT5D4l7fbMj7jdwRBRylqswQy1bJD_c,16335
599
599
  tomwer/gui/visualization/diffviewer/__init__.py,sha256=rZ7qOTfAChU3FouCdkZllXT9ZZqTdo1XhLZMfmOqUAE,39
600
600
  tomwer/gui/visualization/diffviewer/diffviewer.py,sha256=Y8tDT1l-AkBSpTkBes31r_bhjbBeAlO__3OAc0Ob6Io,21812
601
601
  tomwer/gui/visualization/diffviewer/shiftwidget.py,sha256=2hpGo6BvubcSbw2QOT823sL74AEWyU32UxnvVZ4bDok,20928
@@ -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
@@ -757,7 +757,7 @@ tomwer/synctools/stacks/edit/darkflatpatch.py,sha256=dCP8Zk6f-toFUFzcnJHbF2bkTS0
757
757
  tomwer/synctools/stacks/edit/imagekeyeditor.py,sha256=NNDQWMJEuE50zBk_2zJAWbf6hC8J3QKV42YpPQAmV0U,5259
758
758
  tomwer/synctools/stacks/reconstruction/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
759
759
  tomwer/synctools/stacks/reconstruction/axis.py,sha256=9Gqh0isvLYupypOq3P7XM_lU4Hcni4l3V2aUZsAVLrc,8876
760
- tomwer/synctools/stacks/reconstruction/castvolume.py,sha256=_fmlozGxTuhzhtdpY-xtE0D7Oz2fxT4J4TTCSLDVyQI,7552
760
+ tomwer/synctools/stacks/reconstruction/castvolume.py,sha256=PaoMuTxcj4Ms6N2MFnrCzmaCCC3wEZItYAwQ8NApe_o,8282
761
761
  tomwer/synctools/stacks/reconstruction/dkrefcopy.py,sha256=LlEtCh-nbftFo77s1QXnoISDQKQOBR-4AKfurgUj7zI,7040
762
762
  tomwer/synctools/stacks/reconstruction/nabu.py,sha256=dDqw74kobhkawquJIwLDQH--PN6LbbthlqZ9MQUBJi4,7816
763
763
  tomwer/synctools/stacks/reconstruction/normalization.py,sha256=wcw-tHjKUQMcija0bCExDl0InYsKHZNTeTk4w_hnaDI,5362
@@ -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.4.dist-info/LICENSE,sha256=yR_hIZ1MfDh9x2_s23uFqBH7m5DgrBl9nJKkE37YChM,1877
780
- tomwer-1.3.4.dist-info/METADATA,sha256=Efd1ush-YYsEe0jcDXBvMj9Id3ftzXHjQn0XSBjHlmM,11459
781
- tomwer-1.3.4.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
782
- tomwer-1.3.4.dist-info/entry_points.txt,sha256=fIcDnCxjgwzfIylLYhUsFyiNZjZMxsfRQBxi4f-cJg8,440
783
- tomwer-1.3.4.dist-info/namespace_packages.txt,sha256=Iut-JTfT11SZHHm77_ZeszD7pZDWXcTweCbvrJpqDyQ,14
784
- tomwer-1.3.4.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
785
- tomwer-1.3.4.dist-info/RECORD,,
779
+ tomwer-1.3.12.dist-info/LICENSE,sha256=yR_hIZ1MfDh9x2_s23uFqBH7m5DgrBl9nJKkE37YChM,1877
780
+ tomwer-1.3.12.dist-info/METADATA,sha256=bUzdE3iiLKgWG_xxxestUTCEGqOuBQm0hw7MIbxm1SM,11460
781
+ tomwer-1.3.12.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
782
+ tomwer-1.3.12.dist-info/entry_points.txt,sha256=fIcDnCxjgwzfIylLYhUsFyiNZjZMxsfRQBxi4f-cJg8,440
783
+ tomwer-1.3.12.dist-info/namespace_packages.txt,sha256=Iut-JTfT11SZHHm77_ZeszD7pZDWXcTweCbvrJpqDyQ,14
784
+ tomwer-1.3.12.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
785
+ tomwer-1.3.12.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1 +0,0 @@
1
- import sys, types, os;has_mfs = sys.version_info > (3, 5);p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('orangecontrib',));importlib = has_mfs and __import__('importlib.util');has_mfs and __import__('importlib.machinery');m = has_mfs and sys.modules.setdefault('orangecontrib', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('orangecontrib', [os.path.dirname(p)])));m = m or sys.modules.setdefault('orangecontrib', types.ModuleType('orangecontrib'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p)