tomwer 1.3.13__py3-none-any.whl → 1.3.15__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.
- tomwer/core/process/reconstruction/darkref/darkrefscopy.py +18 -2
- tomwer/gui/edit/nxtomoeditor.py +28 -20
- tomwer/gui/edit/test/test_nx_editor.py +58 -1
- tomwer/gui/reconstruction/axis/axis.py +16 -13
- tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +5 -4
- tomwer/synctools/stacks/reconstruction/dkrefcopy.py +1 -1
- tomwer/version.py +1 -1
- tomwer-1.3.15-py3.11-nspkg.pth +1 -0
- {tomwer-1.3.13.dist-info → tomwer-1.3.15.dist-info}/METADATA +3 -3
- {tomwer-1.3.13.dist-info → tomwer-1.3.15.dist-info}/RECORD +15 -15
- {tomwer-1.3.13.dist-info → tomwer-1.3.15.dist-info}/WHEEL +1 -1
- tomwer-1.3.13-py3.11-nspkg.pth +0 -1
- {tomwer-1.3.13.dist-info → tomwer-1.3.15.dist-info}/LICENSE +0 -0
- {tomwer-1.3.13.dist-info → tomwer-1.3.15.dist-info}/entry_points.txt +0 -0
- {tomwer-1.3.13.dist-info → tomwer-1.3.15.dist-info}/namespace_packages.txt +0 -0
- {tomwer-1.3.13.dist-info → tomwer-1.3.15.dist-info}/top_level.txt +0 -0
@@ -199,6 +199,15 @@ class DarkRefsCopy(DarkRefsTask):
|
|
199
199
|
update_mode="replace",
|
200
200
|
)
|
201
201
|
|
202
|
+
def clear_cache(self):
|
203
|
+
"""
|
204
|
+
remove the file used to cache the reduced darks / flats.
|
205
|
+
This can be used in the case it contain unrelevant data. Like frame with another shape...
|
206
|
+
"""
|
207
|
+
cache_file = DarkRefsCopy.get_save_file(self._savedir)
|
208
|
+
if os.path.exists(cache_file):
|
209
|
+
os.remove(cache_file)
|
210
|
+
|
202
211
|
def _clear_cache_data_path(self, file_path: str, data_path: str):
|
203
212
|
if not os.path.exists(file_path):
|
204
213
|
return
|
@@ -207,7 +216,14 @@ class DarkRefsCopy(DarkRefsTask):
|
|
207
216
|
del h5f[data_path]
|
208
217
|
|
209
218
|
def set_darks_and_flats_from_scan(self, scan: TomwerScanBase) -> bool:
|
210
|
-
|
219
|
+
has_flats = scan.reduced_flats not in (None, {})
|
220
|
+
has_darks = scan.reduced_darks not in (None, {})
|
221
|
+
if has_flats and has_darks:
|
222
|
+
# if the scan has darks and flats remove directly the cache file
|
223
|
+
# else in append mode HDF5 is not removing the dataset and
|
224
|
+
# the cache size will continue to increase
|
225
|
+
self.clear_cache()
|
226
|
+
if not has_flats:
|
211
227
|
logger.warning(f"No flat found for {scan}. Unable to copy them")
|
212
228
|
else:
|
213
229
|
self._clear_cache_data_path(
|
@@ -221,7 +237,7 @@ class DarkRefsCopy(DarkRefsTask):
|
|
221
237
|
mode="a",
|
222
238
|
update_mode="replace",
|
223
239
|
)
|
224
|
-
if
|
240
|
+
if not has_darks:
|
225
241
|
logger.warning(f"No dark found for {scan}. Unable to copy them")
|
226
242
|
else:
|
227
243
|
self._clear_cache_data_path(
|
tomwer/gui/edit/nxtomoeditor.py
CHANGED
@@ -574,28 +574,36 @@ class NXtomoEditor(qt.QWidget):
|
|
574
574
|
),
|
575
575
|
solve_empty_dependency=True,
|
576
576
|
)
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
577
|
+
if nexus_paths.nx_detector_paths.NX_TRANSFORMATIONS is not None:
|
578
|
+
# old NXtomo are not handling NX_TRANSFORMATIONS
|
579
|
+
detector_transformation_path = "/".join(
|
580
|
+
(
|
581
|
+
nexus_paths.INSTRUMENT_PATH,
|
582
|
+
nexus_paths.nx_instrument_paths.DETECTOR_PATH,
|
583
|
+
nexus_paths.nx_detector_paths.NX_TRANSFORMATIONS,
|
584
|
+
),
|
585
|
+
)
|
586
|
+
if detector_transformation_path in entry:
|
587
|
+
del entry[detector_transformation_path]
|
588
|
+
|
589
|
+
detector_transformation_path = "/".join(
|
590
|
+
(scan.entry, detector_transformation_path)
|
591
|
+
)
|
592
|
+
else:
|
593
|
+
_logger.debug(
|
594
|
+
"Old version of NXtomo found. No information about transformation will be saved"
|
595
|
+
)
|
596
|
+
detector_transformation_path = None
|
597
|
+
|
598
|
+
if detector_transformation_path is not None:
|
599
|
+
dicttonx(
|
600
|
+
nx_dict,
|
601
|
+
h5file=scan.master_file,
|
602
|
+
h5path=detector_transformation_path,
|
603
|
+
update_mode="replace",
|
604
|
+
mode="a",
|
589
605
|
)
|
590
606
|
|
591
|
-
dicttonx(
|
592
|
-
nx_dict,
|
593
|
-
h5file=scan.master_file,
|
594
|
-
h5path=detector_transformation_path,
|
595
|
-
update_mode="replace",
|
596
|
-
mode="a",
|
597
|
-
)
|
598
|
-
|
599
607
|
# clear caches to make sure all modifications will be considered
|
600
608
|
scan.clear_caches()
|
601
609
|
scan.clear_frames_caches()
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import os
|
2
|
+
import h5py
|
2
3
|
|
3
4
|
import numpy
|
4
5
|
import pytest
|
@@ -252,7 +253,7 @@ def test_nx_editor_lock(
|
|
252
253
|
# 3.0 save the nxtomo
|
253
254
|
widget.overwriteNXtomo()
|
254
255
|
|
255
|
-
# 4.0 check save went
|
256
|
+
# 4.0 check save went well
|
256
257
|
overwrite_nx_tomo = NXtomo().load(
|
257
258
|
file_path=file_path,
|
258
259
|
data_path=entry,
|
@@ -305,3 +306,59 @@ def test_nx_editor_lock(
|
|
305
306
|
"instrument.detector.x_flipped": (False, False),
|
306
307
|
"instrument.detector.y_flipped": (True, False),
|
307
308
|
}
|
309
|
+
|
310
|
+
|
311
|
+
def test_nxtomo_editor_with_missing_paths(
|
312
|
+
tmp_path,
|
313
|
+
qtapp, # noqa F811
|
314
|
+
):
|
315
|
+
"""
|
316
|
+
test widget behavior in the case some nxtomo path don't exist
|
317
|
+
"""
|
318
|
+
|
319
|
+
# create nx tomo with raw data
|
320
|
+
nx_tomo = NXtomo()
|
321
|
+
nx_tomo.instrument.detector.image_key_control = [ImageKey.PROJECTION.value] * 12
|
322
|
+
nx_tomo.instrument.detector.data = numpy.empty(shape=(12, 10, 10))
|
323
|
+
nx_tomo.sample.rotation_angle = numpy.linspace(0, 20, num=12)
|
324
|
+
|
325
|
+
file_path = os.path.join(tmp_path, "nxtomo.nx")
|
326
|
+
entry = "entry0000"
|
327
|
+
nx_tomo.save(
|
328
|
+
file_path=file_path,
|
329
|
+
data_path=entry,
|
330
|
+
)
|
331
|
+
# delete some path that can be missing in some case
|
332
|
+
with h5py.File(file_path, mode="a") as h5f:
|
333
|
+
assert "entry0000" in h5f
|
334
|
+
assert "entry0000/beam" not in h5f
|
335
|
+
assert "entry0000/instrument/beam" not in h5f
|
336
|
+
assert "entry0000/instrument/detector/distance" not in h5f
|
337
|
+
assert "entry0000/instrument/detector/x_pixel_size" not in h5f
|
338
|
+
assert "entry0000/instrument/detector/y_pixel_size" not in h5f
|
339
|
+
assert "entry0000/instrument/detector/transformations" not in h5f
|
340
|
+
|
341
|
+
scan = NXtomoScan(file_path, entry)
|
342
|
+
|
343
|
+
# create the widget and do the edition
|
344
|
+
widget = NXtomoEditor()
|
345
|
+
|
346
|
+
widget.setScan(scan=scan)
|
347
|
+
|
348
|
+
widget._distanceMetricEntry.setValue(0.05)
|
349
|
+
widget._energyEntry.setValue(50)
|
350
|
+
widget._xPixelSizeMetricEntry.setValue(0.02)
|
351
|
+
widget._yPixelSizeMetricEntry.setValue(0.03)
|
352
|
+
|
353
|
+
# overwrite the NXtomo
|
354
|
+
widget.overwriteNXtomo()
|
355
|
+
|
356
|
+
# check save went well
|
357
|
+
overwrite_nx_tomo = NXtomo().load(
|
358
|
+
file_path=file_path,
|
359
|
+
data_path=entry,
|
360
|
+
)
|
361
|
+
assert overwrite_nx_tomo.instrument.detector.x_pixel_size.value == 0.02
|
362
|
+
assert overwrite_nx_tomo.instrument.detector.y_pixel_size.value == 0.03
|
363
|
+
assert overwrite_nx_tomo.energy.value == 50
|
364
|
+
assert overwrite_nx_tomo.instrument.detector.distance.value == 0.05
|
@@ -31,6 +31,7 @@ __license__ = "MIT"
|
|
31
31
|
__date__ = "14/10/2019"
|
32
32
|
|
33
33
|
|
34
|
+
import numpy
|
34
35
|
import logging
|
35
36
|
from typing import Optional
|
36
37
|
|
@@ -272,6 +273,7 @@ class _AxisWidget(qt.QMainWindow):
|
|
272
273
|
self._axis_params.relative_cor_value,
|
273
274
|
self._axis_params.absolute_cor_value,
|
274
275
|
)
|
276
|
+
self._controlWidget._positionInfo.setAxis(self._axis_params)
|
275
277
|
|
276
278
|
# connect signal / slots
|
277
279
|
self._controlWidget.sigComputationRequest.connect(self.sigComputationRequested)
|
@@ -663,7 +665,13 @@ class _PositionInfoWidget(qt.QWidget):
|
|
663
665
|
if self._relativePositionQLE.text().startswith((".", "?")):
|
664
666
|
return
|
665
667
|
else:
|
666
|
-
|
668
|
+
value = float(self._relativePositionQLE.text())
|
669
|
+
# make sure we only emit the signal if the value changed (and when the Qline has been edited).
|
670
|
+
if self._axis.relative_cor_value is None or (
|
671
|
+
self._axis is not None
|
672
|
+
and not numpy.isclose(value, self._axis.relative_cor_value, atol=1e-3)
|
673
|
+
):
|
674
|
+
self.sigRelativeValueSet.emit(value)
|
667
675
|
|
668
676
|
def _userUpdatedAbsolutePosition(self, *args, **kwargs):
|
669
677
|
palette = self.palette()
|
@@ -675,24 +683,19 @@ class _PositionInfoWidget(qt.QWidget):
|
|
675
683
|
if self._absolutePositionQLE.text().startswith((".", "?")):
|
676
684
|
return
|
677
685
|
else:
|
678
|
-
|
686
|
+
value = float(self._absolutePositionQLE.text())
|
687
|
+
# make sure we only emit the signal if the value changed (and when the Qline has been edited).
|
688
|
+
if self._axis.absolute_cor_value is None or (
|
689
|
+
self._axis is not None
|
690
|
+
and not numpy.isclose(value, self._axis.absolute_cor_value, atol=1e-3)
|
691
|
+
):
|
692
|
+
self.sigAbsolueValueSet.emit(value)
|
679
693
|
|
680
694
|
def setAxis(self, axis):
|
681
695
|
assert isinstance(axis, QAxisRP)
|
682
696
|
if axis == self._axis:
|
683
697
|
return
|
684
|
-
if self._axis is not None:
|
685
|
-
self._axis.sigChanged.disconnect(self._updatePosition)
|
686
698
|
self._axis = axis
|
687
|
-
self._axis.sigChanged.connect(self._updatePosition)
|
688
|
-
self._updatePosition()
|
689
|
-
|
690
|
-
def _updatePosition(self):
|
691
|
-
if self._axis:
|
692
|
-
self.setPosition(
|
693
|
-
relative_cor=self._axis.relative_cor_value,
|
694
|
-
abs_cor=self._axis.absolute_cor_value,
|
695
|
-
)
|
696
699
|
|
697
700
|
def getPosition(self):
|
698
701
|
return float(self._relativePositionQLE.text())
|
@@ -188,13 +188,14 @@ class _NabuPreProcessingConfig(_NabuStageConfigBase, qt.QWidget):
|
|
188
188
|
|
189
189
|
# option dedicated to Helical
|
190
190
|
## process file
|
191
|
-
self.
|
191
|
+
self._processFileLabel = qt.QLabel("file containing weights maps", self)
|
192
|
+
self.registerWidget(self._processFileLabel, "advanced")
|
193
|
+
self.layout().addWidget(self._processFileLabel, 20, 0, 1, 1)
|
194
|
+
self._processFileQLE = qt.QLineEdit("", self)
|
195
|
+
self.registerWidget(self._processFileQLE, "advanced")
|
192
196
|
self._processFileQLE.setToolTip(
|
193
197
|
"also know as 'process_file'. If you don't have this file it can be created from the 'helical-prepare-weights' widget"
|
194
198
|
)
|
195
|
-
self.layout().addWidget(self._processFileQLE, 20, 0, 1, 1)
|
196
|
-
self._processFileQLE = qt.QLineEdit("", self)
|
197
|
-
self.registerWidget(self._processFileQLE, "advanced")
|
198
199
|
self.layout().addWidget(self._processFileQLE, 20, 1, 1, 3)
|
199
200
|
|
200
201
|
# style
|
@@ -26,11 +26,11 @@ __authors__ = ["H.Payno"]
|
|
26
26
|
__license__ = "MIT"
|
27
27
|
__date__ = "13/08/2021"
|
28
28
|
|
29
|
-
import os
|
30
29
|
import functools
|
31
30
|
import logging
|
32
31
|
import shutil
|
33
32
|
import tempfile
|
33
|
+
import os
|
34
34
|
|
35
35
|
from processview.core.manager import DatasetState, ProcessManager
|
36
36
|
from processview.core.superviseprocess import SuperviseProcess
|
tomwer/version.py
CHANGED
@@ -0,0 +1 @@
|
|
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)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: tomwer
|
3
|
-
Version: 1.3.
|
3
|
+
Version: 1.3.15
|
4
4
|
Summary: "tomography workflow tools"
|
5
5
|
Home-page: https://gitlab.esrf.fr/tomotools/tomwer
|
6
6
|
Author: data analysis unit
|
@@ -18,8 +18,8 @@ Classifier: Operating System :: POSIX
|
|
18
18
|
Classifier: Natural Language :: English
|
19
19
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
20
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
21
|
-
Requires-Python: >=3.
|
22
|
-
Description-Content-Type: text/
|
21
|
+
Requires-Python: >=3.8
|
22
|
+
Description-Content-Type: text/x-rst
|
23
23
|
License-File: LICENSE
|
24
24
|
Requires-Dist: numpy
|
25
25
|
Requires-Dist: setuptools
|
@@ -1,4 +1,4 @@
|
|
1
|
-
tomwer-1.3.
|
1
|
+
tomwer-1.3.15-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=
|
223
|
+
tomwer/version.py,sha256=38e9A4OTLss-_PJiptPo7GAz0A2YTmrANmK0dxW9OWc,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
|
@@ -318,7 +318,7 @@ 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=
|
321
|
+
tomwer/core/process/reconstruction/darkref/darkrefscopy.py,sha256=Oe65TZUS0XZ-5IuuuFMFGuu4aGxKChREPvVa_Ti85EU,14451
|
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
|
@@ -494,12 +494,12 @@ tomwer/gui/debugtools/objectinspector.py,sha256=Mva9iK4bIxHvs3CcuHboWa4kiUEMoBeu
|
|
494
494
|
tomwer/gui/edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
495
495
|
tomwer/gui/edit/dkrfpatch.py,sha256=UCXfEq3wV1x3OzEdzIzi6YxRN6SaEIZb-Yudt2YwnUs,17533
|
496
496
|
tomwer/gui/edit/imagekeyeditor.py,sha256=NjnPdKJif9bhfPXejJuRrj2TqTTMlOxlk4mb6mSBoHw,29728
|
497
|
-
tomwer/gui/edit/nxtomoeditor.py,sha256=
|
497
|
+
tomwer/gui/edit/nxtomoeditor.py,sha256=Bf2dVU73pV8oJXdS9Zms-L2e7KJTzfLdlwZeeKerPTk,28586
|
498
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
|
502
|
-
tomwer/gui/edit/test/test_nx_editor.py,sha256=
|
502
|
+
tomwer/gui/edit/test/test_nx_editor.py,sha256=KMpptfEURWAKGwuPxRtrOpNYlbxSxu0Tulla2uLXVmw,13201
|
503
503
|
tomwer/gui/icat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
504
504
|
tomwer/gui/icat/createscreenshots.py,sha256=IeKBF-urVsEsjDH2gXpt3oG5Sx_OstC1mNJB7zFeWkk,3123
|
505
505
|
tomwer/gui/icat/gallery.py,sha256=puBAkqlwgV1Orki_g2IVXjssCn_PCPjNGJtC0RIPpxI,8700
|
@@ -507,7 +507,7 @@ tomwer/gui/icat/publish.py,sha256=E1DwyABMZeIHDcy88YFtLpg2GpvN_AFHn4aAJbcK13c,62
|
|
507
507
|
tomwer/gui/reconstruction/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
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
|
-
tomwer/gui/reconstruction/axis/axis.py,sha256=
|
510
|
+
tomwer/gui/reconstruction/axis/axis.py,sha256=ygo7QHTKVGK2_zUZQsfl9uKbbGt_Es5kj-MaBzOe3hc,27607
|
511
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=cfU2EJv_9LfCrKTHwnYwt2Kj4G6lMPbw0lbD-yjyT-Y,12053
|
@@ -526,7 +526,7 @@ 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=
|
529
|
+
tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py,sha256=3MaJRS4r3GlHzJ3JCNb9p9PrY6vn4FZr9B3eKiobyUs,31282
|
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
|
@@ -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=
|
761
|
+
tomwer/synctools/stacks/reconstruction/dkrefcopy.py,sha256=cHkvyOtbaqtaftnCyIhDF3oXRM-lXMWqBf-CVTqF198,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.
|
780
|
-
tomwer-1.3.
|
781
|
-
tomwer-1.3.
|
782
|
-
tomwer-1.3.
|
783
|
-
tomwer-1.3.
|
784
|
-
tomwer-1.3.
|
785
|
-
tomwer-1.3.
|
779
|
+
tomwer-1.3.15.dist-info/LICENSE,sha256=yR_hIZ1MfDh9x2_s23uFqBH7m5DgrBl9nJKkE37YChM,1877
|
780
|
+
tomwer-1.3.15.dist-info/METADATA,sha256=-5aT_Ge5i-iUGuYCUTWvemmzQ_njF5BkJpmHL_MJREo,11457
|
781
|
+
tomwer-1.3.15.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
782
|
+
tomwer-1.3.15.dist-info/entry_points.txt,sha256=fIcDnCxjgwzfIylLYhUsFyiNZjZMxsfRQBxi4f-cJg8,440
|
783
|
+
tomwer-1.3.15.dist-info/namespace_packages.txt,sha256=Iut-JTfT11SZHHm77_ZeszD7pZDWXcTweCbvrJpqDyQ,14
|
784
|
+
tomwer-1.3.15.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
|
785
|
+
tomwer-1.3.15.dist-info/RECORD,,
|
tomwer-1.3.13-py3.11-nspkg.pth
DELETED
@@ -1 +0,0 @@
|
|
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)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|