tomwer 1.4.0__py3-none-any.whl → 1.4.0rc0__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.
- orangecontrib/tomwer/tutorials/test_cor.ows +3 -3
- orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +14 -6
- orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py +2 -4
- tomwer/app/axis.py +3 -0
- tomwer/app/multipag.py +3 -11
- tomwer/core/process/reconstruction/axis/axis.py +736 -27
- tomwer/core/process/reconstruction/axis/mode.py +24 -86
- tomwer/core/process/reconstruction/axis/params.py +138 -127
- tomwer/core/process/reconstruction/nabu/nabuscores.py +22 -19
- tomwer/core/process/reconstruction/nabu/nabuslices.py +1 -5
- tomwer/core/process/reconstruction/saaxis/saaxis.py +4 -4
- tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +4 -4
- tomwer/core/process/reconstruction/tests/test_axis.py +1 -1
- tomwer/core/process/reconstruction/tests/test_utils.py +4 -4
- tomwer/core/process/reconstruction/utils/cor.py +4 -8
- tomwer/core/process/tests/test_axis.py +231 -0
- tomwer/core/process/tests/test_nabu.py +3 -1
- tomwer/core/scan/nxtomoscan.py +0 -2
- tomwer/core/scan/scanbase.py +4 -4
- tomwer/core/scan/tests/test_process_registration.py +18 -0
- tomwer/gui/reconstruction/axis/AxisMainWindow.py +9 -20
- tomwer/gui/reconstruction/axis/AxisOptionsWidget.py +79 -239
- tomwer/gui/reconstruction/axis/AxisSettingsWidget.py +17 -38
- tomwer/gui/reconstruction/axis/AxisWidget.py +8 -16
- tomwer/gui/reconstruction/axis/CalculationWidget.py +200 -44
- tomwer/gui/reconstruction/axis/ControlWidget.py +2 -10
- tomwer/gui/reconstruction/axis/InputWidget.py +155 -11
- tomwer/gui/reconstruction/saaxis/corrangeselector.py +10 -19
- tomwer/gui/reconstruction/scores/scoreplot.py +2 -5
- tomwer/gui/reconstruction/tests/test_nabu.py +0 -8
- tomwer/gui/stitching/config/axisparams.py +0 -2
- tomwer/gui/stitching/z_stitching/fineestimation.py +1 -1
- tomwer/gui/tests/test_axis_gui.py +15 -31
- tomwer/synctools/stacks/reconstruction/axis.py +23 -5
- tomwer/synctools/stacks/reconstruction/dkrefcopy.py +1 -1
- tomwer/synctools/stacks/reconstruction/nabu.py +2 -2
- tomwer/synctools/stacks/reconstruction/normalization.py +1 -1
- tomwer/synctools/stacks/reconstruction/saaxis.py +1 -1
- tomwer/synctools/stacks/reconstruction/sadeltabeta.py +1 -1
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_axis.py +16 -0
- tomwer/tests/test_ewoks/test_single_node_execution.py +1 -1
- tomwer/tests/test_ewoks/test_workflows.py +1 -1
- tomwer/version.py +1 -1
- {tomwer-1.4.0.dist-info → tomwer-1.4.0rc0.dist-info}/METADATA +3 -3
- {tomwer-1.4.0.dist-info → tomwer-1.4.0rc0.dist-info}/RECORD +49 -52
- tomwer/core/process/reconstruction/axis/side.py +0 -8
- tomwer/gui/fonts.py +0 -5
- tomwer/gui/reconstruction/axis/EstimatedCORWidget.py +0 -394
- tomwer/gui/reconstruction/axis/EstimatedCorComboBox.py +0 -118
- {tomwer-1.4.0.dist-info → tomwer-1.4.0rc0.dist-info}/LICENSE +0 -0
- {tomwer-1.4.0.dist-info → tomwer-1.4.0rc0.dist-info}/WHEEL +0 -0
- {tomwer-1.4.0.dist-info → tomwer-1.4.0rc0.dist-info}/entry_points.txt +0 -0
- {tomwer-1.4.0.dist-info → tomwer-1.4.0rc0.dist-info}/top_level.txt +0 -0
@@ -16,10 +16,6 @@ from silx.gui.plot import items
|
|
16
16
|
from silx.utils.enum import Enum as _Enum
|
17
17
|
from tomoscan.esrf.scan.utils import get_data
|
18
18
|
|
19
|
-
from tomwer.core.process.reconstruction.utils.cor import (
|
20
|
-
absolute_pos_to_relative,
|
21
|
-
relative_pos_to_absolute,
|
22
|
-
)
|
23
19
|
from tomwer.core.process.reconstruction.saaxis.saaxis import ReconstructionMode
|
24
20
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
25
21
|
from tomwer.gui import icons
|
@@ -27,7 +23,6 @@ from tomwer.gui.reconstruction.saaxis.sliceselector import SliceSelector
|
|
27
23
|
from tomwer.gui.utils.lineselector import QSliceSelectorDialog
|
28
24
|
from tomwer.gui.utils.slider import LogSlider
|
29
25
|
from tomwer.gui.visualization.sinogramviewer import SinogramViewer as _SinogramViewer
|
30
|
-
from tomwer.gui.fonts import FONT_MEDIUM, FONT_IMPORTANT
|
31
26
|
|
32
27
|
_logger = logging.getLogger(__name__)
|
33
28
|
|
@@ -498,9 +493,7 @@ class _EstimatedCorWidget(qt.QGroupBox):
|
|
498
493
|
return 0.0
|
499
494
|
elif mode in ("abs", "absolute"):
|
500
495
|
if self._frameWidth is not None:
|
501
|
-
return
|
502
|
-
relative_pos=0.0, det_width=self._frameWidth
|
503
|
-
)
|
496
|
+
return (self._frameWidth - 1) / 2.0
|
504
497
|
else:
|
505
498
|
return self._MIDDLE_COR_TXT
|
506
499
|
else:
|
@@ -526,9 +519,7 @@ class _EstimatedCorWidget(qt.QGroupBox):
|
|
526
519
|
old = self.blockSignals(True)
|
527
520
|
old_mcor = self._manualCORAbs.blockSignals(True)
|
528
521
|
self._manualCORAbs.setValue(
|
529
|
-
|
530
|
-
relative_pos=self._manualCORRel.value(), det_width=self._frameWidth
|
531
|
-
)
|
522
|
+
self._manualCORRel.value() + (self._frameWidth - 1) / 2.0
|
532
523
|
)
|
533
524
|
self._manualCORAbs.blockSignals(old_mcor)
|
534
525
|
self.blockSignals(old)
|
@@ -538,10 +529,7 @@ class _EstimatedCorWidget(qt.QGroupBox):
|
|
538
529
|
old = self.blockSignals(True)
|
539
530
|
old_mcor = self._manualCORRel.blockSignals(True)
|
540
531
|
self._manualCORRel.setValue(
|
541
|
-
|
542
|
-
absolute_pos=self._manualCORAbs.value(),
|
543
|
-
det_width=self._frameWidth,
|
544
|
-
)
|
532
|
+
self._manualCORAbs.value() - (self._frameWidth - 1) / 2.0
|
545
533
|
)
|
546
534
|
self._manualCORRel.blockSignals(old_mcor)
|
547
535
|
self.blockSignals(old)
|
@@ -594,12 +582,15 @@ class SAAxisOptions(qt.QWidget):
|
|
594
582
|
sigConfigurationChanged = qt.Signal()
|
595
583
|
"""signal emitted when the configuration change"""
|
596
584
|
|
585
|
+
_FONT_IMPORTANT = qt.QFont("Arial", 12)
|
586
|
+
_FONT_MEDIUM = qt.QFont("Arial", 10)
|
587
|
+
|
597
588
|
def __init__(self, parent=None):
|
598
589
|
qt.QWidget.__init__(self, parent)
|
599
590
|
self.setLayout(qt.QVBoxLayout())
|
600
591
|
# reconstruction mode
|
601
592
|
self._reconstructionMode = _ReconstructionModeGB(parent=self)
|
602
|
-
self._reconstructionMode.setFont(
|
593
|
+
self._reconstructionMode.setFont(self._FONT_MEDIUM)
|
603
594
|
self.layout().addWidget(self._reconstructionMode)
|
604
595
|
|
605
596
|
# estimated cor
|
@@ -607,12 +598,12 @@ class SAAxisOptions(qt.QWidget):
|
|
607
598
|
self,
|
608
599
|
title="Estimated cor position (x axis)",
|
609
600
|
)
|
610
|
-
self._estimatedCorWidget.setFont(
|
601
|
+
self._estimatedCorWidget.setFont(self._FONT_IMPORTANT)
|
611
602
|
self.layout().addWidget(self._estimatedCorWidget)
|
612
603
|
|
613
604
|
# detection accuracy
|
614
605
|
self._detectionAccuracy = _DetectionAccuracyGB(parent=self)
|
615
|
-
self._detectionAccuracy.setFont(
|
606
|
+
self._detectionAccuracy.setFont(self._FONT_MEDIUM)
|
616
607
|
self.layout().addWidget(self._detectionAccuracy)
|
617
608
|
|
618
609
|
# number of reconstructions eq volume size
|
@@ -622,7 +613,7 @@ class SAAxisOptions(qt.QWidget):
|
|
622
613
|
self._nReconsSB = qt.QSpinBox(self._nReconsWidget)
|
623
614
|
self._nReconsSB.setRange(0, 2000)
|
624
615
|
self._nReconsSB.setValue(30)
|
625
|
-
self._nReconsWidget.setFont(
|
616
|
+
self._nReconsWidget.setFont(self._FONT_IMPORTANT)
|
626
617
|
self._nReconsWidget.layout().addRow("Number of reconstruction", self._nReconsSB)
|
627
618
|
self.layout().addWidget(self._nReconsWidget)
|
628
619
|
|
@@ -14,7 +14,6 @@ from matplotlib import image as _matplotlib_image
|
|
14
14
|
from silx.gui import qt
|
15
15
|
from silx.gui.plot import PlotWidget
|
16
16
|
|
17
|
-
from tomwer.core.process.reconstruction.utils.cor import relative_pos_to_absolute
|
18
17
|
from tomwer.core.process.reconstruction.scores.params import ScoreMethod
|
19
18
|
from tomwer.gui import icons, settings
|
20
19
|
from tomwer.gui.reconstruction.saaxis.dimensionwidget import DimensionWidget
|
@@ -308,9 +307,7 @@ class CorSelection(VariableSelection):
|
|
308
307
|
if relative_value is None or self._img_width is None:
|
309
308
|
self._absoluteVarValueLE.clear()
|
310
309
|
else:
|
311
|
-
absolute_value =
|
312
|
-
relative_pos=relative_value, det_width=self._img_width
|
313
|
-
)
|
310
|
+
absolute_value = relative_value + (self._img_width - 1) / 2.0
|
314
311
|
self._absoluteVarValueLE.setText(f"{absolute_value:.3f}")
|
315
312
|
|
316
313
|
def getWindowTitle(self):
|
@@ -425,7 +422,7 @@ class _VariableValueLabels(qt.QWidget):
|
|
425
422
|
# paint oblique text
|
426
423
|
with PainterRotationCM(
|
427
424
|
painter=painter,
|
428
|
-
x=var_px_pos +
|
425
|
+
x=var_px_pos + self._slider_ticks_margin / 2.0,
|
429
426
|
y=0,
|
430
427
|
angle=self.rotation_angle_degree,
|
431
428
|
) as l_painter:
|
@@ -19,11 +19,8 @@ from tomwer.gui.reconstruction.nabu.nabuconfig.reconstruction import (
|
|
19
19
|
)
|
20
20
|
from tomwer.gui.reconstruction.nabu.nabuflow import NabuFlowControl
|
21
21
|
from tomwer.gui.reconstruction.nabu.volume import NabuVolumeTabWidget
|
22
|
-
from tomwer.gui.reconstruction.axis.EstimatedCORWidget import EstimatedCORWidget
|
23
22
|
from tomwer.tests.utils import skip_gui_test
|
24
23
|
from tomwer.core.process.output import ProcessDataOutputDirMode
|
25
|
-
from tomwer.tests.conftest import qtapp # noqa F401
|
26
|
-
from tomwer.synctools.axis import QAxisRP
|
27
24
|
|
28
25
|
|
29
26
|
class ProcessClass:
|
@@ -359,8 +356,3 @@ class TestNabuVolumeWidget(TestCaseQt):
|
|
359
356
|
}
|
360
357
|
)
|
361
358
|
self.assertEqual(self.nabuWidget.getConfiguration(), conf)
|
362
|
-
|
363
|
-
|
364
|
-
def test_EstimatedCorWidget(qtapp): # noqa F811
|
365
|
-
"""test of EstimatedCorWidget"""
|
366
|
-
EstimatedCORWidget(parent=None, axis_params=QAxisRP())
|
@@ -119,8 +119,6 @@ class StitcherAxisParams(qt.QWidget):
|
|
119
119
|
for option in options:
|
120
120
|
clean_option = option.rstrip(" ").lstrip(" ")
|
121
121
|
opt_name, opt_value = clean_option.split("=")
|
122
|
-
if opt_value == "":
|
123
|
-
continue
|
124
122
|
if opt_name == stitching_config.KEY_IMG_REG_METHOD:
|
125
123
|
self.setShiftSearchMethod(opt_value)
|
126
124
|
elif opt_name == stitching_config.KEY_WINDOW_SIZE:
|
@@ -73,7 +73,7 @@ class Axis_N_Params(qt.QGroupBox):
|
|
73
73
|
|
74
74
|
class AutoRefineWidget(qt.QWidget):
|
75
75
|
"""
|
76
|
-
widget grouping information not specific to objects (output file,
|
76
|
+
widget grouping information not specific to objects (output file, stithcing strategy...)
|
77
77
|
"""
|
78
78
|
|
79
79
|
def __init__(self, parent=None):
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import pytest
|
2
|
-
import numpy
|
3
2
|
|
4
3
|
from tomwer.gui.reconstruction.axis.AxisSettingsWidget import AxisSettingsTabWidget
|
5
4
|
from tomwer.synctools.axis import QAxisRP
|
@@ -11,33 +10,18 @@ from tomwer.tests.conftest import qtapp # noqa F401
|
|
11
10
|
def test_get_nabu_cor_opts(qtapp): # noqa F811
|
12
11
|
axis_params = QAxisRP()
|
13
12
|
widget = AxisSettingsTabWidget(recons_params=axis_params)
|
14
|
-
assert axis_params.
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
widget.
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
assert axis_params.get_nabu_cor_options_as_dict() == {
|
30
|
-
"side": "right",
|
31
|
-
"radio_angles": (0.0, numpy.pi),
|
32
|
-
"slice_idx": "middle",
|
33
|
-
"low_pass": 2.0,
|
34
|
-
"high_pass": 10.0,
|
35
|
-
}
|
36
|
-
widget._calculationWidget.setEstimatedCorValue("left")
|
37
|
-
assert axis_params.get_nabu_cor_options_as_dict() == {
|
38
|
-
"side": "left",
|
39
|
-
"radio_angles": (0.0, numpy.pi),
|
40
|
-
"slice_idx": "middle",
|
41
|
-
"low_pass": 2.0,
|
42
|
-
"high_pass": 10.0,
|
43
|
-
}
|
13
|
+
assert axis_params.get_nabu_cor_options_as_str() == "side='right'"
|
14
|
+
widget._calculationWidget._corOpts.setText("low_pass=2")
|
15
|
+
widget._calculationWidget._corOpts.editingFinished.emit()
|
16
|
+
assert axis_params.get_nabu_cor_options_as_str() == "side='right' ; low_pass=2"
|
17
|
+
widget._calculationWidget._corOpts.setText("low_pass=2 ; high_pass=10")
|
18
|
+
widget._calculationWidget._corOpts.editingFinished.emit()
|
19
|
+
assert axis_params.get_nabu_cor_options_as_str() == (
|
20
|
+
"side='right' ; low_pass=2 ; high_pass=10"
|
21
|
+
)
|
22
|
+
widget._calculationWidget._sideCB.setCurrentText("left")
|
23
|
+
widget._calculationWidget._corOpts.editingFinished.emit()
|
24
|
+
assert (
|
25
|
+
axis_params.get_nabu_cor_options_as_str()
|
26
|
+
== "side='left' ; low_pass=2 ; high_pass=10"
|
27
|
+
)
|
@@ -23,7 +23,7 @@ _logger = logging.getLogger(__name__)
|
|
23
23
|
|
24
24
|
|
25
25
|
class AxisProcessStack(FIFO, qt.QObject):
|
26
|
-
"""Implementation of the `.
|
26
|
+
"""Implementation of the `.AxisProcess` but having a stack for treating
|
27
27
|
scans and making computation in threads"""
|
28
28
|
|
29
29
|
def __init__(self, axis_params, process_id=None):
|
@@ -55,7 +55,7 @@ class AxisProcessStack(FIFO, qt.QObject):
|
|
55
55
|
if callback is not None:
|
56
56
|
callback()
|
57
57
|
self.scan_ready(scan=data)
|
58
|
-
elif mode
|
58
|
+
elif not self._axis_params.use_sinogram and mode in (AxisMode.manual,):
|
59
59
|
# if cor is not set then set it to 0 (can be the case if no)
|
60
60
|
# interaction has been dne
|
61
61
|
cor = self._axis_params.relative_cor_value
|
@@ -84,6 +84,14 @@ class AxisProcessStack(FIFO, qt.QObject):
|
|
84
84
|
# we will keep the actual one (should have been defined previously)
|
85
85
|
self._end_computation(data=data, future_tomo_obj=None, callback=callback)
|
86
86
|
|
87
|
+
elif (
|
88
|
+
not self._axis_params.use_sinogram
|
89
|
+
and mode not in AxisTask._CALCULATIONS_METHODS
|
90
|
+
):
|
91
|
+
_logger.warning(f"no method defined to compute {mode}")
|
92
|
+
if callback is not None:
|
93
|
+
callback()
|
94
|
+
self._process_next()
|
87
95
|
else:
|
88
96
|
_logger.processStarted(
|
89
97
|
f"Start cor calculation on {data} ({self._axis_params.get_simple_str()})"
|
@@ -105,7 +113,7 @@ class AxisProcessStack(FIFO, qt.QObject):
|
|
105
113
|
"""
|
106
114
|
assert isinstance(data, TomwerScanBase)
|
107
115
|
assert self._axis_params is not None
|
108
|
-
# copy result computed on scan on the
|
116
|
+
# copy result computed on scan on the AxisProcess reconsparams
|
109
117
|
self._axis_params.set_relative_value(
|
110
118
|
data.axis_params.relative_cor_value
|
111
119
|
) # noqa
|
@@ -159,13 +167,23 @@ class _ProcessingThread(ProcessingThread, SuperviseProcess):
|
|
159
167
|
},
|
160
168
|
process_id=self.process_id,
|
161
169
|
)
|
170
|
+
axis = self.apply_patch(axis=axis)
|
162
171
|
try:
|
163
172
|
axis.run()
|
164
173
|
except NoAxisUrl as e:
|
165
174
|
self.center_of_rotation = None
|
166
|
-
_logger.error(
|
175
|
+
_logger.error(str(e))
|
167
176
|
except Exception as e:
|
168
|
-
_logger.error(
|
177
|
+
_logger.error(str(e))
|
169
178
|
self.center_of_rotation = None
|
170
179
|
else:
|
171
180
|
self.center_of_rotation = self._scan.axis_params.relative_cor_value
|
181
|
+
|
182
|
+
def patch_calc_method(self, mode, function):
|
183
|
+
self.__patch[mode] = function
|
184
|
+
|
185
|
+
def apply_patch(self, axis):
|
186
|
+
for mode, patch_fct in self.__patch.items():
|
187
|
+
if mode in AxisMode:
|
188
|
+
axis._CALCULATIONS_METHODS[mode] = patch_fct
|
189
|
+
return axis
|
@@ -23,7 +23,7 @@ _logger = logging.getLogger(__name__)
|
|
23
23
|
|
24
24
|
|
25
25
|
class DarkRefCopyProcessStack(FIFO, qt.QObject):
|
26
|
-
"""Implementation of the `.
|
26
|
+
"""Implementation of the `.AxisProcess` but having a stack for treating
|
27
27
|
scans and making computation in threads"""
|
28
28
|
|
29
29
|
sigRefSetted = qt.Signal(str)
|
@@ -21,7 +21,7 @@ _logger = logging.getLogger(__name__)
|
|
21
21
|
|
22
22
|
|
23
23
|
class NabuSliceProcessStack(FIFO, qt.QObject):
|
24
|
-
"""Implementation of the `.
|
24
|
+
"""Implementation of the `.AxisProcess` but having a stack for treating
|
25
25
|
scans and making computation in threads"""
|
26
26
|
|
27
27
|
def __init__(self, parent=None, process_id=None):
|
@@ -78,7 +78,7 @@ class NabuSliceProcessStack(FIFO, qt.QObject):
|
|
78
78
|
|
79
79
|
|
80
80
|
class NabuVolumeProcessStack(NabuSliceProcessStack):
|
81
|
-
"""Implementation of the `.
|
81
|
+
"""Implementation of the `.AxisProcess` but having a stack for treating
|
82
82
|
scans and making computation in threads"""
|
83
83
|
|
84
84
|
def _create_processing_thread(self, process_id=None) -> qt.QThread:
|
@@ -20,7 +20,7 @@ _logger = logging.getLogger(__name__)
|
|
20
20
|
|
21
21
|
|
22
22
|
class INormalizationProcessStack(FIFO, qt.QObject):
|
23
|
-
"""Implementation of the `.
|
23
|
+
"""Implementation of the `.AxisProcess` but having a stack for treating
|
24
24
|
scans and making computation in threads"""
|
25
25
|
|
26
26
|
def __init__(self, process_id=None):
|
@@ -22,7 +22,7 @@ _logger = logging.getLogger(__name__)
|
|
22
22
|
|
23
23
|
|
24
24
|
class SAAxisProcessStack(FIFO, qt.QObject):
|
25
|
-
"""Implementation of the `.
|
25
|
+
"""Implementation of the `.AxisProcess` but having a stack for treating
|
26
26
|
scans and making computation in threads"""
|
27
27
|
|
28
28
|
def __init__(self, saaxis_params, process_id=None):
|
@@ -24,7 +24,7 @@ _logger = logging.getLogger(__name__)
|
|
24
24
|
|
25
25
|
|
26
26
|
class SADeltaBetaProcessStack(FIFO, qt.QObject):
|
27
|
-
"""Implementation of the `.
|
27
|
+
"""Implementation of the `.AxisProcess` but having a stack for treating
|
28
28
|
scans and making computation in threads"""
|
29
29
|
|
30
30
|
def __init__(self, sa_delta_beta_params, process_id=None):
|
@@ -179,6 +179,22 @@ class TestAxisStack(TestCaseQt):
|
|
179
179
|
self.assertEqual(self._scan2.axis_params, None)
|
180
180
|
self.assertEqual(self._scan3.axis_params, None)
|
181
181
|
|
182
|
+
def testUnlockStack(self):
|
183
|
+
"""Check that all axis position will be computed properly if we set a
|
184
|
+
stack of scan"""
|
185
|
+
self._mainWindow.recons_params.set_relative_value(1.0)
|
186
|
+
for scan in (self._scan1, self._scan2, self._scan3):
|
187
|
+
self._mainWindow.process(scan)
|
188
|
+
|
189
|
+
for i in range(5):
|
190
|
+
self.qapp.processEvents()
|
191
|
+
time.sleep(0.2)
|
192
|
+
self.qapp.processEvents()
|
193
|
+
|
194
|
+
self.assertNotEqual(self._scan1.axis_params, None)
|
195
|
+
self.assertNotEqual(self._scan2.axis_params, None)
|
196
|
+
self.assertNotEqual(self._scan3.axis_params, None)
|
197
|
+
|
182
198
|
def testLockStack(self):
|
183
199
|
"""Check that axis position will be simply copy if we are in a lock
|
184
200
|
stack"""
|
@@ -37,7 +37,7 @@ pytest.mark.skipif(condition=not has_nabu, reason="nabu not installed")
|
|
37
37
|
|
38
38
|
classes_to_test = {
|
39
39
|
"darkref": "tomwer.core.process.reconstruction.darkref.darkrefs.DarkRefs",
|
40
|
-
"axis": "tomwer.core.process.reconstruction.axis.axis.
|
40
|
+
"axis": "tomwer.core.process.reconstruction.axis.axis.AxisProcess",
|
41
41
|
"nabu slices": "tomwer.core.process.reconstruction.nabu.nabuslices.NabuSlices",
|
42
42
|
}
|
43
43
|
|
@@ -55,7 +55,7 @@ def test_simple_workflow_nabu():
|
|
55
55
|
{
|
56
56
|
"id": "axis",
|
57
57
|
"task_type": "class",
|
58
|
-
"task_identifier": "tomwer.core.process.reconstruction.axis.axis.
|
58
|
+
"task_identifier": "tomwer.core.process.reconstruction.axis.axis.AxisProcess",
|
59
59
|
"default_inputs": [
|
60
60
|
{
|
61
61
|
"name": "axis_params",
|
tomwer/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: tomwer
|
3
|
-
Version: 1.4.
|
3
|
+
Version: 1.4.0rc0
|
4
4
|
Summary: "tomography workflow tools"
|
5
5
|
Home-page: https://gitlab.esrf.fr/tomotools/tomwer
|
6
6
|
Author: Henri Payno, Pierre Paleo, Pierre-Olivier Autran, Jérôme Lesaint, Alessandro Mirone
|
@@ -28,9 +28,9 @@ Requires-Dist: silx[full]>=2.0
|
|
28
28
|
Requires-Dist: tomoscan>=2.1.0a18
|
29
29
|
Requires-Dist: nxtomo>=1.3.0dev4
|
30
30
|
Requires-Dist: nxtomomill>=1.1.0a0
|
31
|
-
Requires-Dist: processview>=1.
|
31
|
+
Requires-Dist: processview>=1.3
|
32
32
|
Requires-Dist: ewoks>=0.1.1
|
33
|
-
Requires-Dist: sluurp>=0.4.
|
33
|
+
Requires-Dist: sluurp>=0.4.0
|
34
34
|
Requires-Dist: packaging
|
35
35
|
Requires-Dist: flufl-lock
|
36
36
|
Requires-Dist: pyunitsystem>=2.0.0a
|