tomwer 1.3.11__py3-none-any.whl → 1.3.13__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.
@@ -152,6 +152,7 @@ class DarkRefAndCopyOW(SuperviseOW, WidgetLongProcessing):
152
152
  self.widget.recons_params.sigChanged.connect(self._updateSettingsVals)
153
153
  self.widget.sigModeAutoChanged.connect(self._updateSettingsVals)
154
154
  self.widget.sigCopyActivationChanged.connect(self._updateSettingsVals)
155
+ self.widget.sigClearCache.connect(self._processing_stack.clear_cache)
155
156
  self._processing_stack.sigComputationStarted.connect(self._startProcessing)
156
157
  self._processing_stack.sigComputationEnded.connect(self._endProcessing)
157
158
  self._processing_stack.sigRefSetted.connect(self.widget.setRefSetBy)
@@ -50,15 +50,6 @@ except ImportError:
50
50
  has_rsync = True
51
51
 
52
52
 
53
- def get_info_val(lines, key):
54
- r = range(len(lines))
55
- key = key + "="
56
- for i in r:
57
- if key in lines[i]:
58
- val = float(lines[i].split("=")[1])
59
- return val
60
-
61
-
62
53
  class _DataWatcherEDFProcess(_DataWatcherProcess):
63
54
  """
64
55
  Base class for edf acquisition observation
@@ -34,6 +34,7 @@ __date__ = "17/08/2021"
34
34
 
35
35
  import logging
36
36
  import os
37
+ import h5py
37
38
  import tempfile
38
39
  from typing import Union
39
40
 
@@ -198,10 +199,21 @@ class DarkRefsCopy(DarkRefsTask):
198
199
  update_mode="replace",
199
200
  )
200
201
 
202
+ def _clear_cache_data_path(self, file_path: str, data_path: str):
203
+ if not os.path.exists(file_path):
204
+ return
205
+ with h5py.File(file_path, mode="a") as h5f:
206
+ if data_path in h5f:
207
+ del h5f[data_path]
208
+
201
209
  def set_darks_and_flats_from_scan(self, scan: TomwerScanBase) -> bool:
202
210
  if scan.reduced_flats in (None, {}):
203
211
  logger.warning(f"No flat found for {scan}. Unable to copy them")
204
212
  else:
213
+ self._clear_cache_data_path(
214
+ file_path=self._flats_url.file_path(),
215
+ data_path=self._flats_url.data_path(),
216
+ )
205
217
  dicttoh5(
206
218
  scan.reduced_flats,
207
219
  h5file=self._flats_url.file_path(),
@@ -212,6 +224,10 @@ class DarkRefsCopy(DarkRefsTask):
212
224
  if scan.reduced_darks in (None, {}):
213
225
  logger.warning(f"No dark found for {scan}. Unable to copy them")
214
226
  else:
227
+ self._clear_cache_data_path(
228
+ file_path=self._darks_url.file_path(),
229
+ data_path=self._darks_url.data_path(),
230
+ )
215
231
  dicttoh5(
216
232
  scan.reduced_darks,
217
233
  h5file=self._darks_url.file_path(),
@@ -247,10 +263,6 @@ class DarkRefsCopy(DarkRefsTask):
247
263
  overwrite=True,
248
264
  )
249
265
 
250
- def clean_save_files(self):
251
- if os.path.exists(self._save_file):
252
- os.remove(self._save_file)
253
-
254
266
  def run(self):
255
267
  """
256
268
  This is function triggered when a new scan / data is received.
@@ -211,6 +211,7 @@ def run_nabu_multicor(
211
211
  recons_urls = {}
212
212
  std_outs = []
213
213
  std_errs = []
214
+ future_tomo_obj = None
214
215
 
215
216
  success = result.success
216
217
  if isinstance(result, ResultsWithStd):
@@ -962,6 +962,8 @@ class NabuSliceMode(_Enum):
962
962
  n_slice = scan.dim_2 or 2048
963
963
  elif axis in (NabuPlane.YZ, NabuPlane.XZ):
964
964
  n_slice = scan.dim_1 or 2048
965
+ else:
966
+ raise NotImplementedError(f"unknow axis {axis}")
965
967
  res.append(n_slice // 2)
966
968
  else:
967
969
  raise ValueError(
@@ -171,6 +171,8 @@ def get_recons_volume_identifier(
171
171
  entry = scan.entry
172
172
  elif isinstance(scan, EDFTomoScan):
173
173
  entry = "entry"
174
+ else:
175
+ raise NotImplementedError(f"unrecognized scan type ({type(scan)})")
174
176
 
175
177
  volumes = (
176
178
  HDF5Volume(
@@ -536,6 +536,8 @@ class SAAxisTask(
536
536
  mess = "sa-axis computation succeeded"
537
537
  else:
538
538
  cors_res = {}
539
+ state = DatasetState.FAILED
540
+ mess = "couldn't find 'compute_scores'"
539
541
 
540
542
  if self._cancelled:
541
543
  state = DatasetState.CANCELLED
@@ -341,6 +341,8 @@ class SADeltaBetaTask(
341
341
  mess = "sa-delta-beta computation succeeded"
342
342
  else:
343
343
  dbs_res = {}
344
+ state = DatasetState.FAILED
345
+ mess = "couldn't find 'compute_scores'"
344
346
 
345
347
  if self._cancelled:
346
348
  state = DatasetState.CANCELLED
@@ -383,6 +383,7 @@ class BaseProcessInfo:
383
383
  root = h5f[list(h5f.keys())[0]]
384
384
  else:
385
385
  _logger.warning("no process find")
386
+ return []
386
387
  else:
387
388
  root = h5f[entry]
388
389
 
@@ -156,7 +156,9 @@ class _SelectorWidget(qt.QMainWindow):
156
156
 
157
157
  def removeSelectedDatasets(self):
158
158
  sItem = self.dataList.selectedItems()
159
- selection = [_item.text().get_identifier().to_str() for _item in sItem]
159
+ selection = [
160
+ _item.data(qt.Qt.UserRole).get_identifier().to_str() for _item in sItem
161
+ ]
160
162
 
161
163
  with block_signals(self):
162
164
  # make sure sigUpdated is called only once.
@@ -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:
@@ -54,6 +54,7 @@ class DarkRefAndCopyWidget(DarkRefWidget):
54
54
  """Signal emitted when the mode auto change"""
55
55
  sigCopyActivationChanged = qt.Signal()
56
56
  """Signal emitted when the copy is activated or deactivated"""
57
+ sigClearCache = qt.Signal()
57
58
 
58
59
  def __init__(self, save_dir: str, parent=None, reconsparams=None, process_id=None):
59
60
  DarkRefWidget.__init__(
@@ -79,6 +80,7 @@ class DarkRefAndCopyWidget(DarkRefWidget):
79
80
  self._refCopyWidget.sigCopyActivationChanged.connect(
80
81
  self._triggerCopyActivation
81
82
  )
83
+ self._refCopyWidget.sigClearCache.connect(self.sigClearCache)
82
84
 
83
85
  def setRefSetBy(self, scan_id: str):
84
86
  self._refCopyWidget._statusBar.showMessage(f"ref set from {scan_id}")
@@ -155,6 +157,8 @@ class RefCopyWidget(qt.QGroupBox):
155
157
  """Signal emitted when the mode auto change"""
156
158
  sigCopyActivationChanged = qt.Signal()
157
159
  """Signal emitted when the copy is activated or deactivated"""
160
+ sigClearCache = qt.Signal()
161
+ """Signal when the cache needs to be cleared"""
158
162
 
159
163
  _DEFAULT_DIRECTORY = "/lbsram/data/visitor"
160
164
  """Default directory used when the user need to set path to references"""
@@ -190,6 +194,12 @@ class RefCopyWidget(qt.QGroupBox):
190
194
  spacer = qt.QWidget(self)
191
195
  spacer.setSizePolicy(qt.QSizePolicy.Minimum, qt.QSizePolicy.Expanding)
192
196
  self.layout().addWidget(spacer)
197
+ self._removeCacheFile = qt.QPushButton("clear cache")
198
+ self._removeCacheFile.setToolTip(
199
+ "Remove the file used for cacheing reduce dark / flat."
200
+ )
201
+ self.layout().addWidget(self._removeCacheFile)
202
+
193
203
  self.layout().addWidget(self.__createStatusBarGUI())
194
204
 
195
205
  self.setModeAuto(True)
@@ -201,6 +211,7 @@ class RefCopyWidget(qt.QGroupBox):
201
211
  # connect signal / slot
202
212
  self.toggled.connect(self._triggerCopyActivated)
203
213
  self._qcbAutoMode.toggled.connect(self._triggerModeAutoChanged)
214
+ self._removeCacheFile.released.connect(self.sigClearCache)
204
215
 
205
216
  def _triggerCopyActivated(self, *args, **kwargs):
206
217
  self.sigCopyActivationChanged.emit()
@@ -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(),
@@ -26,6 +26,7 @@ __authors__ = ["H.Payno"]
26
26
  __license__ = "MIT"
27
27
  __date__ = "13/08/2021"
28
28
 
29
+ import os
29
30
  import functools
30
31
  import logging
31
32
  import shutil
@@ -132,6 +133,15 @@ class DarkRefCopyProcessStack(FIFO, qt.QObject):
132
133
  def _create_processing_thread(self, process_id=None) -> qt.QThread:
133
134
  return _ProcessingThread(process_id=process_id, save_dir=self._save_dir)
134
135
 
136
+ def clear_cache(self):
137
+ """
138
+ remove the file used to cache the reduced darks / flats.
139
+ This can be used in the case it contain unrelevant data. Like frame with another shape...
140
+ """
141
+ cache_file = DarkRefsCopy.get_save_file(self._save_dir)
142
+ if os.path.exists(cache_file):
143
+ os.remove(cache_file)
144
+
135
145
 
136
146
  class _ProcessingThread(ProcessingThread, SuperviseProcess):
137
147
  """
tomwer/version.py CHANGED
@@ -77,7 +77,7 @@ RELEASE_LEVEL_VALUE = {
77
77
 
78
78
  MAJOR = 1
79
79
  MINOR = 3
80
- MICRO = 11
80
+ MICRO = 13
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.11
3
+ Version: 1.3.13
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.11-py3.11-nspkg.pth,sha256=xeeGR3TjdoVxdFeF6T-zSwZWh6Et--EYuPWu67LxL_c,574
1
+ tomwer-1.3.13-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
@@ -151,7 +151,7 @@ orangecontrib/tomwer/widgets/other/icons/hub.png,sha256=wnKSaxw2WnBkSQjI86aLZfdm
151
151
  orangecontrib/tomwer/widgets/other/icons/hub.svg,sha256=9EYoBKY-P-cO17nM48OPA9VDZSCbyGtrMRc80BGHflk,3735
152
152
  orangecontrib/tomwer/widgets/reconstruction/AxisOW.py,sha256=ffbMYzHWALir19bZhpXjYIgMfJjyyaeov9Uxp5tNyGs,22342
153
153
  orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py,sha256=Ev-TrwZ-HxmdMfZMsz512vhCOgXpGImVsdNdlPSnQIM,9604
154
- orangecontrib/tomwer/widgets/reconstruction/DarkRefAndCopyOW.py,sha256=DyjkZ3RDgUvEkK3yR8qCWQq9eaVus8I-64nvhrHN1ZQ,10988
154
+ orangecontrib/tomwer/widgets/reconstruction/DarkRefAndCopyOW.py,sha256=nToQw3tj9Wm8s3wPsVBeMYh_F6FBtCsAKLsc2Dic4kk,11066
155
155
  orangecontrib/tomwer/widgets/reconstruction/NabuHelicalPrepareWeightsDoubleOW.py,sha256=aI8VcCK7m518xjjjvE8l3kpTQFEwjWF-hCKua4bBkJM,5967
156
156
  orangecontrib/tomwer/widgets/reconstruction/NabuOW.py,sha256=LzHxCuLrEQIVeGaYmcEO7rwxaT98mbXPdpMc6dCaAHE,12673
157
157
  orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py,sha256=B4iZdYHmbsim4qQD5UaMCg2lcJa3ZAim3_AZQC7bYIk,19195
@@ -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=uRiz7EdaIYbREXUdfqLNldYVgHQFOyd9xV0MHlhRyCs,4387
223
+ tomwer/version.py,sha256=NB9NVW9JDgrzz_rw-aJi5JYGnpnQP-hHA1sASP_uZ14,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=3_AuZGwUoLLUw5B8ZwYt0cDFeZ_g1VtTBta573tiODQ,15703
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
@@ -290,7 +290,7 @@ tomwer/core/process/control/datawatcher/__init__.py,sha256=F9d_bGOr5iAPEfnKaf5XO
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
@@ -318,29 +318,29 @@ tomwer/core/process/reconstruction/axis/params.py,sha256=y1RgFAk1wiJMeueSNJH5enU
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=6wEBs7yBZHeEADxDLZ-jYTxaeOBJCJacqfskkr1-ytE,13276
321
+ tomwer/core/process/reconstruction/darkref/darkrefscopy.py,sha256=cWT2bM_ReVJ18cJKqQXp3IcKk0Z6W5NeJ03wpqTzjNk,13754
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
327
  tomwer/core/process/reconstruction/nabu/nabucommon.py,sha256=3OyyDjBfdrEF4ctXo6LBH-WeyrKh24j6sJUocA7TwXw,24428
328
- tomwer/core/process/reconstruction/nabu/nabuscores.py,sha256=UtTpMF_NZhmz_q8zvBZj6W91cNxYEA3BckWL5GRmCag,25702
329
- tomwer/core/process/reconstruction/nabu/nabuslices.py,sha256=y-ERlOPiixI-aXlwaQvEMwdo7SN7NTvyOqkWg9pSnFc,36725
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
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=-EzMnHzxK5r6WZqtOL2GmVyx5KC4CcKHIYBTFigymq8,18191
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
@@ -431,7 +431,7 @@ tomwer/gui/icons.py,sha256=r_UURvOe36k83iw5gQiEKt6fgdvPNbZgrUoeji_s6eE,12917
431
431
  tomwer/gui/illustrations.py,sha256=kKA_Jnj67QwwjHXW1d5x1qOgV2QWlktvEJYIDFTSJ-0,5368
432
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
@@ -461,7 +461,7 @@ tomwer/gui/control/nxtomomill.py,sha256=DI7DsO98O8h9mFcJ_1y1Kb8nD6w09at8YvJZNHR_
461
461
  tomwer/gui/control/observations.py,sha256=oj2OqWYwiewgsZ5vNjzrMjB-YPopYyJmaBE5df09L7c,7735
462
462
  tomwer/gui/control/reducedarkflatselector.py,sha256=hW2D69B2THZn8lIOaUQJHJ6aGIn-tHjcynEfIn4DftA,20536
463
463
  tomwer/gui/control/scanselectorwidget.py,sha256=m3uxkoG4aNPPwamiI14l82PNS8tvIiOXmKhBJiwHgjU,2356
464
- tomwer/gui/control/selectorwidgetbase.py,sha256=avj6dkBJaryCQYF66vXbuYbaLAjTwmcdQ1L24DcUH6I,5571
464
+ tomwer/gui/control/selectorwidgetbase.py,sha256=faMzMHM4KDZ9L8irDnwSdGhwg2EjErbLPfXSNUqU9ko,5607
465
465
  tomwer/gui/control/singletomoobj.py,sha256=5R_Uwgp5wdDQudxG2vyyq4Nj1GjhqH0HCeo_cFS7WuI,6777
466
466
  tomwer/gui/control/tomoobjdisplaymode.py,sha256=u7JPqTD_stisI3ouckVr60yEqZuYWkpF_FI9rKhxPzo,159
467
467
  tomwer/gui/control/volumeselectorwidget.py,sha256=mpbofAawBpzdc46IEkucTuiFJRDP18gWGdZjf5wUaTg,2082
@@ -508,9 +508,9 @@ 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
- tomwer/gui/reconstruction/darkref/darkrefcopywidget.py,sha256=9pgynAKXb5KEfPwjaSprcycMgg7K7DjgXdVUlc5xsJA,11562
513
+ tomwer/gui/reconstruction/darkref/darkrefcopywidget.py,sha256=cfU2EJv_9LfCrKTHwnYwt2Kj4G6lMPbw0lbD-yjyT-Y,12053
514
514
  tomwer/gui/reconstruction/darkref/darkrefwidget.py,sha256=O33udHaezaanZD9L5D525KrB4FD77g_Spr7gAUxGEag,16468
515
515
  tomwer/gui/reconstruction/nabu/__init__.py,sha256=v2WxaBpu2zpGu7DEV96zaKAtHgRlcpORuAG2S0iF9O0,44
516
516
  tomwer/gui/reconstruction/nabu/castvolume.py,sha256=4lrfdBt_24p9_kb9qmytEtIfzPXFPzYVdV57wgMLVWQ,15003
@@ -533,7 +533,7 @@ tomwer/gui/reconstruction/normalization/intensity.py,sha256=GWFPxsRxDxFnUwCh4zED
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
@@ -758,7 +758,7 @@ tomwer/synctools/stacks/edit/imagekeyeditor.py,sha256=NNDQWMJEuE50zBk_2zJAWbf6hC
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
760
  tomwer/synctools/stacks/reconstruction/castvolume.py,sha256=PaoMuTxcj4Ms6N2MFnrCzmaCCC3wEZItYAwQ8NApe_o,8282
761
- tomwer/synctools/stacks/reconstruction/dkrefcopy.py,sha256=LlEtCh-nbftFo77s1QXnoISDQKQOBR-4AKfurgUj7zI,7040
761
+ tomwer/synctools/stacks/reconstruction/dkrefcopy.py,sha256=01YdLs9xfmKFl7Wz3Qf9jawY6ePGp7fxcTus9BHNBeM,7402
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
764
764
  tomwer/synctools/stacks/reconstruction/saaxis.py,sha256=N5LM4QPE1H06WXjEH-PGIMfWgCHkwR02QR3PENZ_JzE,7126
@@ -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.11.dist-info/LICENSE,sha256=yR_hIZ1MfDh9x2_s23uFqBH7m5DgrBl9nJKkE37YChM,1877
780
- tomwer-1.3.11.dist-info/METADATA,sha256=7VENzH_OQXhpo3-83hIGyi8aUlwk_7gkdvdfG9ImGeM,11460
781
- tomwer-1.3.11.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
782
- tomwer-1.3.11.dist-info/entry_points.txt,sha256=fIcDnCxjgwzfIylLYhUsFyiNZjZMxsfRQBxi4f-cJg8,440
783
- tomwer-1.3.11.dist-info/namespace_packages.txt,sha256=Iut-JTfT11SZHHm77_ZeszD7pZDWXcTweCbvrJpqDyQ,14
784
- tomwer-1.3.11.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
785
- tomwer-1.3.11.dist-info/RECORD,,
779
+ tomwer-1.3.13.dist-info/LICENSE,sha256=yR_hIZ1MfDh9x2_s23uFqBH7m5DgrBl9nJKkE37YChM,1877
780
+ tomwer-1.3.13.dist-info/METADATA,sha256=wWs75qkhJSr9ujUassUsmSCC5PGtRboBkMv07SI5Fu0,11460
781
+ tomwer-1.3.13.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
782
+ tomwer-1.3.13.dist-info/entry_points.txt,sha256=fIcDnCxjgwzfIylLYhUsFyiNZjZMxsfRQBxi4f-cJg8,440
783
+ tomwer-1.3.13.dist-info/namespace_packages.txt,sha256=Iut-JTfT11SZHHm77_ZeszD7pZDWXcTweCbvrJpqDyQ,14
784
+ tomwer-1.3.13.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
785
+ tomwer-1.3.13.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)