tomwer 1.0.3__py3-none-any.whl → 1.1.0__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/EBS_tomo_listener.ows +39 -0
- orangecontrib/tomwer/tutorials/cast_volume.ows +34 -0
- orangecontrib/tomwer/tutorials/simple_slice_reconstruction.ows +39 -0
- orangecontrib/tomwer/tutorials/simple_volume_local_reconstruction.ows +49 -0
- orangecontrib/tomwer/tutorials/simple_volume_to_slurm_reconstruction.ows +59 -0
- orangecontrib/tomwer/tutorials/using_saaxis_to_find_cor.ows +44 -0
- orangecontrib/tomwer/widgets/cluster/FutureSupervisorOW.py +1 -1
- orangecontrib/tomwer/widgets/cluster/SlurmClusterOW.py +14 -4
- orangecontrib/tomwer/widgets/cluster/__init__.py +1 -1
- orangecontrib/tomwer/widgets/control/DataListOW.py +12 -5
- orangecontrib/tomwer/widgets/control/DataListenerOW.py +18 -9
- orangecontrib/tomwer/widgets/control/DataSelectorOW.py +13 -6
- orangecontrib/tomwer/widgets/control/DataTransfertOW.py +3 -5
- orangecontrib/tomwer/widgets/control/DataValidatorOW.py +8 -4
- orangecontrib/tomwer/widgets/control/DataWatcherOW.py +4 -6
- orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py +49 -62
- orangecontrib/tomwer/widgets/control/FilterOW.py +2 -4
- orangecontrib/tomwer/widgets/control/NXTomomillMixIn.py +93 -0
- orangecontrib/tomwer/widgets/control/NXTomomillOW.py +135 -129
- orangecontrib/tomwer/widgets/control/NotifierOW.py +34 -9
- orangecontrib/tomwer/widgets/control/SingleTomoObjOW.py +3 -5
- orangecontrib/tomwer/widgets/control/TomoObjSerieOW.py +19 -13
- orangecontrib/tomwer/widgets/control/VolumeSelector.py +12 -4
- orangecontrib/tomwer/widgets/control/VolumeSymLinkOW.py +11 -7
- orangecontrib/tomwer/widgets/control/icons/notification.svg +4 -4
- orangecontrib/tomwer/widgets/control/icons/nxtomomill.png +0 -0
- orangecontrib/tomwer/widgets/control/icons/nxtomomill.svg +8 -5
- orangecontrib/tomwer/widgets/control/icons/tomoobjserie.png +0 -0
- orangecontrib/tomwer/widgets/control/icons/tomoobjserie.svg +73 -78
- orangecontrib/tomwer/widgets/edit/DarkFlatPatchOW.py +16 -4
- orangecontrib/tomwer/widgets/edit/NXtomoEditorOW.py +100 -0
- orangecontrib/tomwer/widgets/edit/icons/image_key_editor.png +0 -0
- orangecontrib/tomwer/widgets/edit/icons/image_key_upgrader.png +0 -0
- orangecontrib/tomwer/widgets/edit/icons/nx_tomo_editor.png +0 -0
- orangecontrib/tomwer/widgets/edit/icons/nx_tomo_editor.svg +123 -0
- orangecontrib/tomwer/widgets/edit/test/test_dark_flat_patch.py +21 -1
- orangecontrib/tomwer/widgets/edit/test/test_image_key_editor.py +1 -1
- orangecontrib/tomwer/widgets/edit/test/test_image_key_upgrader.py +1 -1
- orangecontrib/tomwer/widgets/edit/test/test_nxtomo_editor.py +25 -0
- orangecontrib/tomwer/widgets/other/PythonScriptOW.py +19 -11
- orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +20 -14
- orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py +24 -10
- orangecontrib/tomwer/widgets/reconstruction/DarkRefAndCopyOW.py +26 -21
- orangecontrib/tomwer/widgets/reconstruction/NabuOW.py +29 -12
- orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py +44 -17
- orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +28 -20
- orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +24 -18
- orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py +6 -6
- orangecontrib/tomwer/widgets/reconstruction/TofuOW.py +4 -2
- orangecontrib/tomwer/widgets/reconstruction/icons/nabu_2d.png +0 -0
- orangecontrib/tomwer/widgets/reconstruction/icons/nabu_2d.svg +11 -8
- orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +10 -4
- orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +1 -1
- orangecontrib/tomwer/widgets/visualization/NXtomoMetadataViewerOW.py +69 -0
- orangecontrib/tomwer/widgets/visualization/SampleMovedOW.py +2 -4
- orangecontrib/tomwer/widgets/visualization/icons/nx_tomo_metadata_viewer.png +0 -0
- orangecontrib/tomwer/widgets/visualization/icons/nx_tomo_metadata_viewer.svg +105 -0
- tomwer/__main__.py +10 -5
- tomwer/app/canvas_launcher/config.py +10 -10
- tomwer/app/canvas_launcher/mainwindow.py +68 -6
- tomwer/app/canvas_launcher/widgetsscheme.py +1 -3
- tomwer/app/darkref.py +16 -12
- tomwer/app/imagekeyeditor.py +2 -2
- tomwer/app/imagekeyupgrader.py +104 -0
- tomwer/app/intensitynormalization.py +0 -1
- tomwer/app/nxtomoeditor.py +103 -0
- tomwer/app/rsync.py +1 -1
- tomwer/core/cluster/cluster.py +1 -1
- tomwer/core/futureobject.py +1 -0
- tomwer/core/process/control/datalistener/datalistener.py +7 -1
- tomwer/core/process/control/datalistener/rpcserver.py +3 -4
- tomwer/core/process/control/datawatcher/datawatcher.py +18 -18
- tomwer/core/process/control/datawatcher/datawatcherobserver.py +5 -8
- tomwer/core/process/control/datawatcher/datawatcherprocess.py +2 -3
- tomwer/core/process/control/datawatcher/edfdwprocess.py +2 -2
- tomwer/core/process/control/nxtomomill.py +33 -58
- tomwer/core/process/control/scanlist.py +2 -1
- tomwer/core/process/control/scanselector.py +7 -0
- tomwer/core/process/control/scantransfer.py +2 -2
- tomwer/core/process/control/scanvalidator.py +6 -5
- tomwer/core/process/control/singletomoobj.py +2 -1
- tomwer/core/process/control/timer.py +2 -1
- tomwer/core/process/control/tomoobjserie.py +8 -2
- tomwer/core/process/control/volumeselector.py +2 -1
- tomwer/core/process/control/volumesymlink.py +2 -1
- tomwer/core/process/edit/darkflatpatch.py +2 -1
- tomwer/core/process/edit/imagekeyeditor.py +4 -3
- tomwer/core/process/reconstruction/axis/axis.py +29 -32
- tomwer/core/process/reconstruction/axis/mode.py +3 -2
- tomwer/core/process/reconstruction/axis/params.py +35 -16
- tomwer/core/process/reconstruction/darkref/darkrefs.py +90 -707
- tomwer/core/process/reconstruction/darkref/darkrefscopy.py +44 -16
- tomwer/core/process/reconstruction/darkref/params.py +62 -67
- tomwer/core/process/reconstruction/lamino/tofu.py +1 -2
- tomwer/core/process/reconstruction/nabu/castvolume.py +21 -26
- tomwer/core/process/reconstruction/nabu/nabucommon.py +36 -38
- tomwer/core/process/reconstruction/nabu/nabuscores.py +28 -13
- tomwer/core/process/reconstruction/nabu/nabuslices.py +41 -14
- tomwer/core/process/reconstruction/nabu/nabuvolume.py +21 -12
- tomwer/core/process/reconstruction/nabu/utils.py +32 -3
- tomwer/core/process/reconstruction/normalization/normalization.py +9 -8
- tomwer/core/process/reconstruction/saaxis/saaxis.py +46 -20
- tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +38 -12
- tomwer/core/process/reconstruction/test/__init__.py +0 -39
- tomwer/core/process/reconstruction/test/test_axis_params.py +25 -3
- tomwer/core/process/reconstruction/test/test_darkref_copy.py +117 -1
- tomwer/core/process/script/python.py +16 -12
- tomwer/core/process/task.py +3 -7
- tomwer/core/process/test/test_axis.py +1 -1
- tomwer/core/process/test/test_dark_and_flat.py +41 -111
- tomwer/core/process/test/test_data_listener.py +0 -29
- tomwer/core/process/test/test_data_transfer.py +10 -14
- tomwer/core/process/test/test_nabu.py +1 -1
- tomwer/core/process/test/test_normalization.py +1 -1
- tomwer/core/process/visualization/liveslice.py +6 -0
- tomwer/core/scan/blissscan.py +37 -2
- tomwer/core/scan/edfscan.py +19 -8
- tomwer/core/scan/hdf5scan.py +10 -4
- tomwer/core/scan/scanbase.py +35 -29
- tomwer/core/scan/scanfactory.py +3 -17
- tomwer/core/scan/test/test_h5.py +1 -1
- tomwer/core/scan/test/test_process_registration.py +0 -11
- tomwer/core/scan/test/test_scan.py +32 -30
- tomwer/core/settings.py +2 -2
- tomwer/core/test/test_utils.py +1 -1
- tomwer/core/tomwer_object.py +19 -0
- tomwer/core/utils/__init__.py +0 -45
- tomwer/core/utils/char.py +2 -0
- tomwer/core/utils/gpu.py +5 -5
- tomwer/core/utils/nxtomoutils.py +2 -2
- tomwer/core/utils/scanutils.py +50 -0
- tomwer/core/utils/volumeutils.py +13 -0
- tomwer/core/volume/edfvolume.py +4 -0
- tomwer/core/volume/hdf5volume.py +4 -0
- tomwer/core/volume/jp2kvolume.py +4 -0
- tomwer/core/volume/rawvolume.py +22 -5
- tomwer/core/volume/tiffvolume.py +4 -0
- tomwer/core/volume/volumebase.py +19 -12
- tomwer/core/volume/volumefactory.py +20 -1
- tomwer/gui/cluster/slurm.py +1 -1
- tomwer/gui/cluster/supervisor.py +0 -2
- tomwer/gui/cluster/test/test_cluster.py +2 -2
- tomwer/gui/control/datalist.py +109 -36
- tomwer/gui/control/datatransfert.py +1 -1
- tomwer/gui/control/datawatcher/configuration.py +0 -2
- tomwer/gui/control/datawatcher/datawatcher.py +23 -13
- tomwer/gui/control/datawatcher/datawatcherobserver.py +1 -1
- tomwer/gui/control/observations.py +0 -3
- tomwer/gui/control/selectorwidgetbase.py +42 -12
- tomwer/gui/control/serie/seriecreator.py +967 -0
- tomwer/{web/__init__.py → gui/control/serie/seriewaiter.py} +5 -7
- tomwer/gui/control/singletomoobj.py +15 -4
- tomwer/gui/control/test/test_datalist.py +1 -1
- tomwer/gui/control/test/test_datalistener.py +1 -1
- tomwer/gui/control/test/test_inputwidget.py +1 -1
- tomwer/gui/control/test/test_process_manager.py +1 -13
- tomwer/gui/control/test/test_scanselector.py +1 -1
- tomwer/gui/control/test/test_scanvalidator.py +1 -1
- tomwer/gui/control/test/test_single_tomo_obj.py +1 -1
- tomwer/gui/control/test/test_volume_dialog.py +19 -7
- tomwer/gui/control/test/test_volumeselector.py +4 -4
- tomwer/gui/debugtools/datasetgenerator.py +1 -9
- tomwer/gui/edit/dkrfpatch.py +2 -3
- tomwer/gui/edit/imagekeyeditor.py +12 -11
- tomwer/gui/edit/nxtomoeditor.py +475 -0
- tomwer/gui/edit/test/test_dkrf_patch.py +2 -14
- tomwer/gui/edit/test/test_image_key_editor.py +2 -2
- tomwer/gui/edit/test/test_nx_editor.py +155 -0
- tomwer/gui/icons.py +0 -1
- tomwer/gui/qfolderdialog.py +11 -0
- tomwer/gui/reconstruction/axis/CompareImages.py +27 -29
- tomwer/gui/reconstruction/axis/axis.py +2 -0
- tomwer/gui/reconstruction/axis/radioaxis.py +70 -14
- tomwer/gui/reconstruction/darkref/darkrefcopywidget.py +7 -9
- tomwer/gui/reconstruction/darkref/darkrefwidget.py +22 -24
- tomwer/gui/reconstruction/lamino/tofu/projections.py +1 -1
- tomwer/gui/reconstruction/lamino/tofu/tofu.py +3 -3
- tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py +4 -4
- tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py +10 -5
- tomwer/gui/reconstruction/nabu/castvolume.py +103 -24
- tomwer/gui/reconstruction/nabu/check.py +1 -1
- tomwer/gui/reconstruction/nabu/nabuconfig/ctf.py +352 -0
- tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py +0 -9
- tomwer/gui/reconstruction/nabu/nabuconfig/output.py +1 -1
- tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +18 -19
- tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +30 -7
- tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +26 -15
- tomwer/gui/reconstruction/nabu/slices.py +10 -4
- tomwer/gui/reconstruction/nabu/slurm.py +1 -1
- tomwer/gui/reconstruction/nabu/volume.py +13 -7
- tomwer/gui/reconstruction/normalization/intensity.py +1 -5
- tomwer/gui/reconstruction/saaxis/corrangeselector.py +10 -37
- tomwer/gui/reconstruction/saaxis/saaxis.py +11 -7
- tomwer/gui/reconstruction/saaxis/sliceselector.py +11 -26
- tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +13 -8
- tomwer/gui/reconstruction/scores/scoreplot.py +67 -62
- tomwer/gui/reconstruction/test/test_axis.py +2 -2
- tomwer/gui/reconstruction/test/test_lamino.py +2 -2
- tomwer/gui/reconstruction/test/test_nabu.py +14 -1
- tomwer/gui/reconstruction/test/test_saaxis.py +8 -17
- tomwer/gui/reconstruction/test/test_sadeltabeta.py +7 -13
- tomwer/gui/stackplot.py +11 -28
- tomwer/gui/test/test_axis_gui.py +4 -4
- tomwer/gui/test/test_qfolder_dialog.py +12 -0
- tomwer/gui/utils/inputwidget.py +42 -22
- tomwer/gui/utils/lineselector/lineselector.py +13 -21
- tomwer/gui/utils/scandescription.py +2 -4
- tomwer/gui/utils/slider.py +1 -102
- tomwer/gui/utils/unitsystem.py +48 -11
- tomwer/gui/visualization/dataviewer.py +24 -17
- tomwer/gui/visualization/diffviewer/diffviewer.py +2 -11
- tomwer/gui/visualization/nxtomometadata.py +21 -0
- tomwer/gui/visualization/scanoverview.py +0 -1
- tomwer/gui/visualization/test/test_nx_tomo_metadata_viewer.py +72 -0
- tomwer/gui/visualization/test/test_stacks.py +1 -1
- tomwer/gui/visualization/tomoobjoverview.py +49 -0
- tomwer/gui/visualization/volumeoverview.py +64 -0
- tomwer/gui/visualization/volumeviewer.py +1 -1
- tomwer/io/utils/utils.py +2 -2
- tomwer/resources/gui/icons/multi-document-save.png +0 -0
- tomwer/resources/gui/icons/multi-document-save.svg +101 -0
- tomwer/resources/gui/illustrations/ctf_z1.png +0 -0
- tomwer/resources/gui/illustrations/ctf_z1.svg +471 -0
- tomwer/synctools/axis.py +0 -1
- tomwer/synctools/darkref.py +0 -1
- tomwer/synctools/datalistener.py +5 -1
- tomwer/synctools/imageloaderthread.py +2 -2
- tomwer/synctools/saaxis.py +0 -1
- tomwer/synctools/sadeltabeta.py +0 -1
- tomwer/synctools/stacks/edit/imagekeyeditor.py +1 -1
- tomwer/synctools/stacks/processingstack.py +2 -2
- tomwer/synctools/stacks/reconstruction/castvolume.py +1 -0
- tomwer/synctools/stacks/reconstruction/dkrefcopy.py +1 -1
- tomwer/synctools/stacks/reconstruction/lamino.py +1 -3
- tomwer/synctools/stacks/reconstruction/sadeltabeta.py +0 -2
- tomwer/synctools/test/test_darkRefs.py +32 -149
- tomwer/synctools/test/test_foldertransfer.py +1 -1
- tomwer/synctools/test/test_scanstages.py +2 -2
- tomwer/tests/conftest.py +51 -0
- tomwer/{test → tests}/test_scripts.py +1 -1
- tomwer/tests/test_utils.py +10 -0
- tomwer/{test → tests}/utils/utilstest.py +0 -11
- tomwer/version.py +3 -3
- {tomwer-1.0.3.dist-info → tomwer-1.1.0.dist-info}/METADATA +14 -16
- {tomwer-1.0.3.dist-info → tomwer-1.1.0.dist-info}/RECORD +255 -235
- {tomwer-1.0.3.dist-info → tomwer-1.1.0.dist-info}/WHEEL +1 -1
- {tomwer-1.0.3.dist-info → tomwer-1.1.0.dist-info}/entry_points.txt +6 -0
- orangecontrib/tomwer/setup.py +0 -45
- orangecontrib/tomwer/widgets/setup.py +0 -49
- tomwer/app/process.py +0 -153
- tomwer/core/process/reconstruction/nabu/slurm.py +0 -36
- tomwer/core/process/reconstruction/utils/nabu_slice_exec.py +0 -10
- tomwer/core/utils/laminoutils.py +0 -80
- tomwer/gui/utils/lineselector/lineselection.py +0 -76
- tomwer/setup.py +0 -52
- tomwer/slurm/executor.py +0 -36
- tomwer/slurm/job.py +0 -349
- tomwer/slurm/utils.py +0 -44
- tomwer/web/client.py +0 -43
- tomwer/web/config.py +0 -36
- tomwer/web/test/test_graylog_connection.py +0 -59
- {tomwer/slurm → orangecontrib/tomwer/tutorials}/__init__.py +0 -0
- /tomwer/{test → gui/control/serie}/__init__.py +0 -0
- /tomwer/{web/test → tests}/__init__.py +0 -0
- /tomwer/{test → tests}/utils/__init__.py +0 -0
- /tomwer-1.0.3-py3.8-nspkg.pth → /tomwer-1.1.0-py3.9-nspkg.pth +0 -0
- {tomwer-1.0.3.dist-info → tomwer-1.1.0.dist-info}/LICENSE +0 -0
- {tomwer-1.0.3.dist-info → tomwer-1.1.0.dist-info}/namespace_packages.txt +0 -0
- {tomwer-1.0.3.dist-info → tomwer-1.1.0.dist-info}/top_level.txt +0 -0
@@ -37,9 +37,9 @@ from silx.gui.utils.testutils import TestCaseQt
|
|
37
37
|
from tomwer.core.utils.scanutils import MockEDF
|
38
38
|
from tomwer.core.process.reconstruction.darkref.darkrefs import DarkRefs
|
39
39
|
from tomwer.core.process.reconstruction.darkref.params import DKRFRP
|
40
|
-
from tomwer.core.process.reconstruction.darkref.params import
|
40
|
+
from tomwer.core.process.reconstruction.darkref.params import ReduceMethod
|
41
41
|
from tomwer.core.scan.scanfactory import ScanFactory
|
42
|
-
from tomwer.
|
42
|
+
from tomwer.tests.utils import UtilsTest
|
43
43
|
|
44
44
|
|
45
45
|
class TestDarkRefsBehavior(TestCaseQt):
|
@@ -74,8 +74,8 @@ class TestDarkRefsBehavior(TestCaseQt):
|
|
74
74
|
|
75
75
|
def testDarkCreation(self):
|
76
76
|
"""Test that the dark is correctly computed"""
|
77
|
-
self.recons_params.
|
78
|
-
self.recons_params.dark_calc_method =
|
77
|
+
self.recons_params.flat_calc_method = ReduceMethod.NONE
|
78
|
+
self.recons_params.dark_calc_method = ReduceMethod.MEDIAN
|
79
79
|
|
80
80
|
dar_ref_process = DarkRefs(
|
81
81
|
inputs={
|
@@ -101,7 +101,7 @@ class TestDarkRefsBehavior(TestCaseQt):
|
|
101
101
|
self.assertEqual(
|
102
102
|
len(
|
103
103
|
dar_ref_process.getRefHSTFiles(
|
104
|
-
self.dataset_folder, prefix=self.recons_params.
|
104
|
+
self.dataset_folder, prefix=self.recons_params.flat_prefix
|
105
105
|
)
|
106
106
|
),
|
107
107
|
0,
|
@@ -109,8 +109,8 @@ class TestDarkRefsBehavior(TestCaseQt):
|
|
109
109
|
|
110
110
|
def testRefCreation(self):
|
111
111
|
"""Test that the dark is correctly computed"""
|
112
|
-
self.recons_params.
|
113
|
-
self.recons_params.dark_calc_method =
|
112
|
+
self.recons_params.flat_calc_method = ReduceMethod.MEDIAN
|
113
|
+
self.recons_params.dark_calc_method = ReduceMethod.NONE
|
114
114
|
|
115
115
|
dar_ref_process = DarkRefs(
|
116
116
|
inputs={
|
@@ -132,66 +132,6 @@ class TestDarkRefsBehavior(TestCaseQt):
|
|
132
132
|
self.assertTrue("ref0001_0000.edf" in os.listdir(self.dataset_folder))
|
133
133
|
self.assertTrue("ref0001_0020.edf" in os.listdir(self.dataset_folder))
|
134
134
|
|
135
|
-
def testRemoveOption(self):
|
136
|
-
"""Test that the remove option is working"""
|
137
|
-
self.recons_params.ref_calc_method = Method.none
|
138
|
-
self.recons_params.dark_calc_method = Method.none
|
139
|
-
self.recons_params._set_remove_opt(True)
|
140
|
-
dar_ref_process = DarkRefs(
|
141
|
-
inputs={
|
142
|
-
"dark_ref_params": self.recons_params,
|
143
|
-
"force_sync": True,
|
144
|
-
"darkhst_prefix": "darkHST",
|
145
|
-
"data": self.dataset_folder,
|
146
|
-
}
|
147
|
-
)
|
148
|
-
dar_ref_process.run()
|
149
|
-
self.qapp.processEvents()
|
150
|
-
self.assertFalse("darkend0000.edf" in os.listdir(self.dataset_folder))
|
151
|
-
self.assertFalse("dark0000.edf" in os.listdir(self.dataset_folder))
|
152
|
-
self.assertFalse("refHST0000.edf" in os.listdir(self.dataset_folder))
|
153
|
-
self.assertFalse("refHST0020.edf" in os.listdir(self.dataset_folder))
|
154
|
-
self.assertFalse("ref0000_0000.edf" in os.listdir(self.dataset_folder))
|
155
|
-
self.assertFalse("ref0000_0020.edf" in os.listdir(self.dataset_folder))
|
156
|
-
self.assertFalse("ref0001_0000.edf" in os.listdir(self.dataset_folder))
|
157
|
-
self.assertFalse("ref0001_0020.edf" in os.listdir(self.dataset_folder))
|
158
|
-
|
159
|
-
def testSkipOption(self):
|
160
|
-
"""Test that the overwrite option is working"""
|
161
|
-
self.recons_params.ref_calc_method = Method.none
|
162
|
-
self.recons_params.dark_calc_method = Method.none
|
163
|
-
self.recons_params._set_skip_if_exist(True)
|
164
|
-
|
165
|
-
iniRefNFile = len(
|
166
|
-
DarkRefs.getRefHSTFiles(
|
167
|
-
self.dataset_folder, prefix=self.recons_params.ref_prefix
|
168
|
-
)
|
169
|
-
)
|
170
|
-
iniDarkNFile = len(
|
171
|
-
DarkRefs.getDarkHSTFiles(
|
172
|
-
self.dataset_folder, prefix=self.recons_params.dark_prefix
|
173
|
-
)
|
174
|
-
)
|
175
|
-
|
176
|
-
dar_ref_process = DarkRefs(
|
177
|
-
inputs={
|
178
|
-
"dark_ref_params": self.recons_params,
|
179
|
-
"force_sync": True,
|
180
|
-
"darkhst_prefix": "darkHST",
|
181
|
-
"data": self.dataset_folder,
|
182
|
-
}
|
183
|
-
)
|
184
|
-
dar_ref_process.run()
|
185
|
-
self.qapp.processEvents()
|
186
|
-
refs = DarkRefs.getRefHSTFiles(
|
187
|
-
self.dataset_folder, prefix=self.recons_params.ref_prefix
|
188
|
-
)
|
189
|
-
darks = DarkRefs.getDarkHSTFiles(
|
190
|
-
self.dataset_folder, prefix=self.recons_params.dark_prefix
|
191
|
-
)
|
192
|
-
self.assertTrue(len(refs) == iniRefNFile)
|
193
|
-
self.assertTrue(len(darks) == iniDarkNFile)
|
194
|
-
|
195
135
|
|
196
136
|
class TestRefCalculationOneSerie(TestCaseQt):
|
197
137
|
"""
|
@@ -228,15 +168,15 @@ class TestRefCalculationOneSerie(TestCaseQt):
|
|
228
168
|
}
|
229
169
|
)
|
230
170
|
self.darkRef.setForceSync(True)
|
231
|
-
self.recons_params.
|
171
|
+
self.recons_params.flat_pattern = "ref*.*[0-9]{3,4}_[0-9]{3,4}"
|
232
172
|
|
233
173
|
def tearDown(self):
|
234
174
|
shutil.rmtree(self.tmp_dir)
|
235
175
|
super().tearDown()
|
236
176
|
|
237
177
|
def testRefMedianCalculation(self):
|
238
|
-
self.recons_params.
|
239
|
-
self.recons_params.dark_calc_method =
|
178
|
+
self.recons_params.flat_calc_method = ReduceMethod.MEDIAN
|
179
|
+
self.recons_params.dark_calc_method = ReduceMethod.NONE
|
240
180
|
self.darkRef.run()
|
241
181
|
refHST = os.path.join(self.tmp_dir, "refHST0000.edf")
|
242
182
|
self.assertTrue(os.path.isfile(refHST))
|
@@ -245,8 +185,8 @@ class TestRefCalculationOneSerie(TestCaseQt):
|
|
245
185
|
)
|
246
186
|
|
247
187
|
def testRefMeanCalculation(self):
|
248
|
-
self.recons_params.
|
249
|
-
self.recons_params.dark_calc_method =
|
188
|
+
self.recons_params.flat_calc_method = ReduceMethod.MEAN
|
189
|
+
self.recons_params.dark_calc_method = ReduceMethod.NONE
|
250
190
|
self.darkRef.run()
|
251
191
|
refHST = os.path.join(self.tmp_dir, "refHST0000.edf")
|
252
192
|
self.assertTrue(os.path.isfile(refHST))
|
@@ -286,15 +226,15 @@ class TestRefCalculationThreeSerie(TestCaseQt):
|
|
286
226
|
"force_sync": True,
|
287
227
|
}
|
288
228
|
)
|
289
|
-
self.recons_params.
|
229
|
+
self.recons_params.flat_pattern = "ref*.*[0-9]{3,4}_[0-9]{3,4}"
|
290
230
|
|
291
231
|
def tearDown(self):
|
292
232
|
shutil.rmtree(self.tmp_dir)
|
293
233
|
super().tearDown()
|
294
234
|
|
295
235
|
def testRefMedianCalculation(self):
|
296
|
-
self.recons_params.
|
297
|
-
self.recons_params.dark_calc_method =
|
236
|
+
self.recons_params.flat_calc_method = ReduceMethod.MEDIAN
|
237
|
+
self.recons_params.dark_calc_method = ReduceMethod.NONE
|
298
238
|
self.darkRef.run()
|
299
239
|
for serie in self.series:
|
300
240
|
refHST = os.path.join(self.tmp_dir, "refHST" + str(serie).zfill(4) + ".edf")
|
@@ -306,8 +246,8 @@ class TestRefCalculationThreeSerie(TestCaseQt):
|
|
306
246
|
)
|
307
247
|
|
308
248
|
def testRefMeanCalculation(self):
|
309
|
-
self.recons_params.
|
310
|
-
self.recons_params.dark_calc_method =
|
249
|
+
self.recons_params.flat_calc_method = ReduceMethod.MEAN
|
250
|
+
self.recons_params.dark_calc_method = ReduceMethod.NONE
|
311
251
|
self.darkRef.run()
|
312
252
|
for serie in self.series:
|
313
253
|
refHST = os.path.join(self.tmp_dir, "refHST" + str(serie).zfill(4) + ".edf")
|
@@ -347,8 +287,8 @@ class TestDarkCalculationOneFrame(TestCaseQt):
|
|
347
287
|
super().tearDown()
|
348
288
|
|
349
289
|
def testDarkMeanCalculation(self):
|
350
|
-
self.recons_params.
|
351
|
-
self.recons_params.dark_calc_method =
|
290
|
+
self.recons_params.flat_calc_method = ReduceMethod.NONE
|
291
|
+
self.recons_params.dark_calc_method = ReduceMethod.MEAN
|
352
292
|
|
353
293
|
self.darkRef.run()
|
354
294
|
refHST = os.path.join(self.tmp_dir, "dark.edf")
|
@@ -358,8 +298,8 @@ class TestDarkCalculationOneFrame(TestCaseQt):
|
|
358
298
|
)
|
359
299
|
|
360
300
|
def testDarkMedianCalculation(self):
|
361
|
-
self.recons_params.
|
362
|
-
self.recons_params.dark_calc_method =
|
301
|
+
self.recons_params.flat_calc_method = ReduceMethod.NONE
|
302
|
+
self.recons_params.dark_calc_method = ReduceMethod.MEDIAN
|
363
303
|
|
364
304
|
self.darkRef.run()
|
365
305
|
refHST = os.path.join(self.tmp_dir, "dark.edf")
|
@@ -402,8 +342,8 @@ class TestDarkCalculation(TestCaseQt):
|
|
402
342
|
super().tearDown()
|
403
343
|
|
404
344
|
def testDarkMeanCalculation(self):
|
405
|
-
self.recons_params.
|
406
|
-
self.recons_params.dark_calc_method =
|
345
|
+
self.recons_params.flat_calc_method = ReduceMethod.NONE
|
346
|
+
self.recons_params.dark_calc_method = ReduceMethod.MEAN
|
407
347
|
|
408
348
|
self.darkRef.run()
|
409
349
|
refHST = os.path.join(self.tmp_dir, "dark.edf")
|
@@ -413,8 +353,8 @@ class TestDarkCalculation(TestCaseQt):
|
|
413
353
|
)
|
414
354
|
|
415
355
|
def testDarkMedianCalculation(self):
|
416
|
-
self.recons_params.
|
417
|
-
self.recons_params.dark_calc_method =
|
356
|
+
self.recons_params.flat_calc_method = ReduceMethod.NONE
|
357
|
+
self.recons_params.dark_calc_method = ReduceMethod.MEDIAN
|
418
358
|
|
419
359
|
self.darkRef.run()
|
420
360
|
refHST = os.path.join(self.tmp_dir, "dark.edf")
|
@@ -446,8 +386,8 @@ class TestDarkAccumulation(TestCaseQt):
|
|
446
386
|
os.remove(self.darkFile)
|
447
387
|
|
448
388
|
self.recons_params = DKRFRP()
|
449
|
-
self.recons_params.
|
450
|
-
self.recons_params.dark_calc_method =
|
389
|
+
self.recons_params.flat_calc_method = ReduceMethod.NONE
|
390
|
+
self.recons_params.dark_calc_method = ReduceMethod.MEDIAN
|
451
391
|
self.recons_params.dark_pattern = "darkend*"
|
452
392
|
self.recons_params.dark_prefix = "dark.edf"
|
453
393
|
|
@@ -481,10 +421,10 @@ class TestPCOTomo(TestCaseQt):
|
|
481
421
|
MockEDF.fastMockAcquisition(self.tmp_dir)
|
482
422
|
|
483
423
|
self.recons_params = DKRFRP()
|
484
|
-
self.recons_params.
|
485
|
-
self.recons_params.dark_calc_method =
|
424
|
+
self.recons_params.flat_calc_method = ReduceMethod.NONE
|
425
|
+
self.recons_params.dark_calc_method = ReduceMethod.NONE
|
486
426
|
self.recons_params.dark_pattern = ".*_dark_.*"
|
487
|
-
self.recons_params.
|
427
|
+
self.recons_params.flat_pattern = ".*_ref_.*"
|
488
428
|
self.recons_params._set_remove_opt(True)
|
489
429
|
|
490
430
|
def copyDataset(self, dataset):
|
@@ -495,67 +435,10 @@ class TestPCOTomo(TestCaseQt):
|
|
495
435
|
def tearDown(self):
|
496
436
|
shutil.rmtree(self.tmp_dir)
|
497
437
|
|
498
|
-
def testDark3Scan(self):
|
499
|
-
"""
|
500
|
-
Make sure the processing dark field for
|
501
|
-
pcotomo_3scan_refdarkbeg_end_download are correct
|
502
|
-
"""
|
503
|
-
self.dataset = "pcotomo_3scan_refdarkbeg_end_download"
|
504
|
-
self.copyDataset(self.dataset)
|
505
|
-
_file = os.path.join(
|
506
|
-
self.tmp_dir, "pcotomo_3scan_refdarkbeg_end_download", "dark.edf"
|
507
|
-
)
|
508
|
-
if os.path.isfile(_file):
|
509
|
-
os.remove(_file)
|
510
|
-
self.recons_params.dark_calc_method = Method.median
|
511
|
-
dar_ref_process = DarkRefs(
|
512
|
-
inputs={
|
513
|
-
"dark_ref_params": self.recons_params,
|
514
|
-
"data": self.scan,
|
515
|
-
"darkhst_prefix": "darkHST",
|
516
|
-
"force_sync": True,
|
517
|
-
}
|
518
|
-
)
|
519
|
-
dar_ref_process.run()
|
520
|
-
darkHSTFiles = DarkRefs.getDarkHSTFiles(
|
521
|
-
self.scan.path, prefix=self.recons_params.dark_prefix
|
522
|
-
)
|
523
|
-
self.assertEqual(len(darkHSTFiles), 2)
|
524
|
-
dark0000 = os.path.join(self.scan.path, "dark0000.edf")
|
525
|
-
dark1000 = os.path.join(self.scan.path, "dark1000.edf")
|
526
|
-
self.assertTrue(dark0000 in darkHSTFiles)
|
527
|
-
self.assertTrue(dark1000 in darkHSTFiles)
|
528
|
-
|
529
|
-
def testRef3Scan(self):
|
530
|
-
"""
|
531
|
-
Make sure the processing flat field for
|
532
|
-
pcotomo_3scan_refdarkbeg_end_download are correct
|
533
|
-
"""
|
534
|
-
self.dataset = "pcotomo_3scan_refdarkbeg_end_download"
|
535
|
-
self.copyDataset(self.dataset)
|
536
|
-
self.recons_params.ref_calc_method = Method.median
|
537
|
-
dar_ref_process = DarkRefs(
|
538
|
-
inputs={
|
539
|
-
"dark_ref_params": self.recons_params,
|
540
|
-
"data": self.scan,
|
541
|
-
"darkhst_prefix": "darkHST",
|
542
|
-
"force_sync": True,
|
543
|
-
}
|
544
|
-
)
|
545
|
-
dar_ref_process.run()
|
546
|
-
refHSTFiles = DarkRefs.getRefHSTFiles(
|
547
|
-
self.scan.path, prefix=self.recons_params.ref_prefix
|
548
|
-
)
|
549
|
-
self.assertEqual(len(refHSTFiles), 2)
|
550
|
-
f0000 = os.path.join(self.scan.path, "refHST0000.edf")
|
551
|
-
self.assertTrue(f0000 in refHSTFiles)
|
552
|
-
f1000 = os.path.join(self.scan.path, "refHST1000.edf")
|
553
|
-
self.assertTrue(f1000 in refHSTFiles)
|
554
|
-
|
555
438
|
def testDark2x2Scan(self):
|
556
439
|
self.dataset = "pcotomo_2x2scan_refdarkbeg_end_conti"
|
557
440
|
self.copyDataset(self.dataset)
|
558
|
-
self.recons_params.dark_calc_method =
|
441
|
+
self.recons_params.dark_calc_method = ReduceMethod.MEDIAN
|
559
442
|
dar_ref_process = DarkRefs(
|
560
443
|
inputs={
|
561
444
|
"dark_ref_params": self.recons_params,
|
@@ -569,7 +452,7 @@ class TestPCOTomo(TestCaseQt):
|
|
569
452
|
def testRef2x2Scan(self):
|
570
453
|
self.dataset = "pcotomo_2x2scan_refdarkbeg_end_conti"
|
571
454
|
self.copyDataset(self.dataset)
|
572
|
-
self.recons_params.
|
455
|
+
self.recons_params.flat_calc_method = ReduceMethod.MEDIAN
|
573
456
|
dar_ref_process = DarkRefs(
|
574
457
|
inputs={
|
575
458
|
"dark_ref_params": self.recons_params,
|
@@ -32,7 +32,7 @@ from tomwer.synctools.datatransfert import ScanTransfer
|
|
32
32
|
from tomwer.core.scan.scanfactory import ScanFactory
|
33
33
|
from tomwer.core.utils import rebaseParFile
|
34
34
|
from tomwer.core.utils.scanutils import MockEDF
|
35
|
-
from tomwer.
|
35
|
+
from tomwer.tests.utils import UtilsTest
|
36
36
|
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
37
37
|
from nxtomomill.converter import from_h5_to_nx
|
38
38
|
from nxtomomill.io.config.hdf5config import TomoHDF5Config
|
@@ -34,10 +34,10 @@ import os
|
|
34
34
|
import shutil
|
35
35
|
import glob
|
36
36
|
from collections import namedtuple
|
37
|
-
from tomwer.
|
37
|
+
from tomwer.tests.utils import UtilsTest
|
38
38
|
from tomwer.synctools.utils.scanstages import ScanStages
|
39
39
|
from tomwer.core.scan.scanfactory import ScanFactory
|
40
|
-
from tomwer.
|
40
|
+
from tomwer.tests.utils import skip_gui_test
|
41
41
|
import pytest
|
42
42
|
|
43
43
|
if skip_gui_test() is False:
|
tomwer/tests/conftest.py
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
import pytest
|
2
|
+
from ewoksorange.bindings.qtapp import qtapp_context
|
3
|
+
from ewoksorange.bindings.qtapp import get_all_qtwidgets
|
4
|
+
import logging
|
5
|
+
import gc
|
6
|
+
|
7
|
+
_logger = logging.getLogger(__name__)
|
8
|
+
|
9
|
+
|
10
|
+
def global_cleanup_orange():
|
11
|
+
from orangecanvas.document.suggestions import Suggestions
|
12
|
+
|
13
|
+
Suggestions.instance = None
|
14
|
+
|
15
|
+
|
16
|
+
def global_cleanup_pytest():
|
17
|
+
for obj in gc.get_objects():
|
18
|
+
if isinstance(obj, logging.LogRecord):
|
19
|
+
obj.exc_info = None # traceback keeps frames which keep locals
|
20
|
+
|
21
|
+
|
22
|
+
def collect_garbage(app):
|
23
|
+
if app is None:
|
24
|
+
return
|
25
|
+
app.processEvents()
|
26
|
+
while gc.collect():
|
27
|
+
app.processEvents()
|
28
|
+
|
29
|
+
|
30
|
+
@pytest.fixture(scope="session")
|
31
|
+
def qtapp():
|
32
|
+
"""
|
33
|
+
create a Qt application if doesn't exists
|
34
|
+
"""
|
35
|
+
with qtapp_context() as app:
|
36
|
+
yield app
|
37
|
+
collect_garbage(app)
|
38
|
+
global_cleanup_orange()
|
39
|
+
global_cleanup_pytest()
|
40
|
+
collect_garbage(app)
|
41
|
+
warn_qtwidgets_alive()
|
42
|
+
|
43
|
+
|
44
|
+
def warn_qtwidgets_alive():
|
45
|
+
widgets = get_all_qtwidgets()
|
46
|
+
if widgets:
|
47
|
+
_logger.warning(
|
48
|
+
"%d remaining widgets after tests:\n %s",
|
49
|
+
len(widgets),
|
50
|
+
"\n ".join(map(str, widgets)),
|
51
|
+
)
|
@@ -0,0 +1,10 @@
|
|
1
|
+
from tomwer.utils import Launcher
|
2
|
+
|
3
|
+
|
4
|
+
def test_launcher():
|
5
|
+
launcher = Launcher(prog="tomwer", version="1.0")
|
6
|
+
launcher.add_command(
|
7
|
+
"canvas", module_name="tomwer.app.canvas", description="open the orange-canvas"
|
8
|
+
)
|
9
|
+
launcher.print_help()
|
10
|
+
launcher.execute_help(["tomwer", "canvas"])
|
@@ -67,7 +67,6 @@ class TestContext(object):
|
|
67
67
|
def __init__(self):
|
68
68
|
self.options = None
|
69
69
|
self.timeout = 60 # timeout in seconds for downloading images
|
70
|
-
# url_base = "http://forge.epn-campus.eu/attachments/download"
|
71
70
|
self.url_base = "http://ftp.edna-site.org/pyFAI/testimages"
|
72
71
|
self.resources = ExternalResources(
|
73
72
|
PACKAGE, timeout=self.timeout, env_key=DATA_KEY, url_base=self.url_base
|
@@ -86,16 +85,6 @@ class TestContext(object):
|
|
86
85
|
|
87
86
|
self._tempdir = None
|
88
87
|
|
89
|
-
def deep_reload(self):
|
90
|
-
self.pyFAI = __import__(self.name)
|
91
|
-
logger.info("%s loaded from %s", self.name, self.pyFAI.__file__)
|
92
|
-
sys.modules[self.name] = self.pyFAI
|
93
|
-
self.reloaded = True
|
94
|
-
import pyFAI.utils.decorators
|
95
|
-
|
96
|
-
pyFAI.utils.decorators.depreclog.setLevel(logging.ERROR)
|
97
|
-
return self.pyFAI
|
98
|
-
|
99
88
|
def forceBuild(self, remove_first=True):
|
100
89
|
"""
|
101
90
|
Force the recompilation of pyFAI
|
tomwer/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: tomwer
|
3
|
-
Version: 1.0
|
3
|
+
Version: 1.1.0
|
4
4
|
Summary: "tomography workflow tools"
|
5
5
|
Home-page: https://gitlab.esrf.fr/tomotools/tomwer
|
6
6
|
Author: data analysis unit
|
@@ -25,10 +25,11 @@ Requires-Dist: setuptools
|
|
25
25
|
Requires-Dist: psutil
|
26
26
|
Requires-Dist: silx (>=1.0)
|
27
27
|
Requires-Dist: tomoscan (>=1.1.2)
|
28
|
-
Requires-Dist: nxtomomill (>=0.
|
29
|
-
Requires-Dist: processview (>=1.
|
30
|
-
Requires-Dist:
|
28
|
+
Requires-Dist: nxtomomill (>=0.12.2)
|
29
|
+
Requires-Dist: processview (>=1.1)
|
30
|
+
Requires-Dist: ewoks (>=0.1.1)
|
31
31
|
Requires-Dist: sluurp (>=0.1)
|
32
|
+
Requires-Dist: packaging
|
32
33
|
Provides-Extra: _dev_spec
|
33
34
|
Requires-Dist: black ; extra == '_dev_spec'
|
34
35
|
Requires-Dist: flake8 ; extra == '_dev_spec'
|
@@ -39,10 +40,9 @@ Requires-Dist: Sphinx (>=4.0.0) ; extra == '_full_base'
|
|
39
40
|
Requires-Dist: nbsphinx ; extra == '_full_base'
|
40
41
|
Requires-Dist: pandoc ; extra == '_full_base'
|
41
42
|
Requires-Dist: jupyterlab ; extra == '_full_base'
|
42
|
-
Requires-Dist: nabu (<2023,>=2022.2.0rc5) ; extra == '_full_base'
|
43
43
|
Requires-Dist: orange-canvas-core ; extra == '_full_base'
|
44
44
|
Requires-Dist: orange-widget-base ; extra == '_full_base'
|
45
|
-
Requires-Dist:
|
45
|
+
Requires-Dist: ewoks[orange] (>=0.1.1) ; extra == '_full_base'
|
46
46
|
Requires-Dist: rsyncmanager ; extra == '_full_base'
|
47
47
|
Requires-Dist: graypy ; extra == '_full_base'
|
48
48
|
Requires-Dist: fabio ; extra == '_full_base'
|
@@ -64,10 +64,9 @@ Requires-Dist: Sphinx (>=4.0.0) ; extra == 'dev'
|
|
64
64
|
Requires-Dist: nbsphinx ; extra == 'dev'
|
65
65
|
Requires-Dist: pandoc ; extra == 'dev'
|
66
66
|
Requires-Dist: jupyterlab ; extra == 'dev'
|
67
|
-
Requires-Dist: nabu (<2023,>=2022.2.0rc5) ; extra == 'dev'
|
68
67
|
Requires-Dist: orange-canvas-core ; extra == 'dev'
|
69
68
|
Requires-Dist: orange-widget-base ; extra == 'dev'
|
70
|
-
Requires-Dist:
|
69
|
+
Requires-Dist: ewoks[orange] (>=0.1.1) ; extra == 'dev'
|
71
70
|
Requires-Dist: rsyncmanager ; extra == 'dev'
|
72
71
|
Requires-Dist: graypy ; extra == 'dev'
|
73
72
|
Requires-Dist: fabio ; extra == 'dev'
|
@@ -84,7 +83,7 @@ Requires-Dist: resource ; extra == 'dev'
|
|
84
83
|
Requires-Dist: tifffile ; extra == 'dev'
|
85
84
|
Requires-Dist: opencv-python ; extra == 'dev'
|
86
85
|
Requires-Dist: hdf5plugin ; extra == 'dev'
|
87
|
-
Requires-Dist: nabu[full] (
|
86
|
+
Requires-Dist: nabu[full] (>=2023) ; extra == 'dev'
|
88
87
|
Requires-Dist: pycuda ; extra == 'dev'
|
89
88
|
Requires-Dist: scikit-cuda ; extra == 'dev'
|
90
89
|
Requires-Dist: black ; extra == 'dev'
|
@@ -96,10 +95,9 @@ Requires-Dist: Sphinx (>=4.0.0) ; extra == 'dev_no_cuda'
|
|
96
95
|
Requires-Dist: nbsphinx ; extra == 'dev_no_cuda'
|
97
96
|
Requires-Dist: pandoc ; extra == 'dev_no_cuda'
|
98
97
|
Requires-Dist: jupyterlab ; extra == 'dev_no_cuda'
|
99
|
-
Requires-Dist: nabu (<2023,>=2022.2.0rc5) ; extra == 'dev_no_cuda'
|
100
98
|
Requires-Dist: orange-canvas-core ; extra == 'dev_no_cuda'
|
101
99
|
Requires-Dist: orange-widget-base ; extra == 'dev_no_cuda'
|
102
|
-
Requires-Dist:
|
100
|
+
Requires-Dist: ewoks[orange] (>=0.1.1) ; extra == 'dev_no_cuda'
|
103
101
|
Requires-Dist: rsyncmanager ; extra == 'dev_no_cuda'
|
104
102
|
Requires-Dist: graypy ; extra == 'dev_no_cuda'
|
105
103
|
Requires-Dist: fabio ; extra == 'dev_no_cuda'
|
@@ -116,6 +114,7 @@ Requires-Dist: resource ; extra == 'dev_no_cuda'
|
|
116
114
|
Requires-Dist: tifffile ; extra == 'dev_no_cuda'
|
117
115
|
Requires-Dist: opencv-python ; extra == 'dev_no_cuda'
|
118
116
|
Requires-Dist: hdf5plugin ; extra == 'dev_no_cuda'
|
117
|
+
Requires-Dist: nabu (>=2023) ; extra == 'dev_no_cuda'
|
119
118
|
Requires-Dist: black ; extra == 'dev_no_cuda'
|
120
119
|
Requires-Dist: flake8 ; extra == 'dev_no_cuda'
|
121
120
|
Requires-Dist: timeout-decorator ; extra == 'dev_no_cuda'
|
@@ -130,10 +129,9 @@ Requires-Dist: Sphinx (>=4.0.0) ; extra == 'full'
|
|
130
129
|
Requires-Dist: nbsphinx ; extra == 'full'
|
131
130
|
Requires-Dist: pandoc ; extra == 'full'
|
132
131
|
Requires-Dist: jupyterlab ; extra == 'full'
|
133
|
-
Requires-Dist: nabu (<2023,>=2022.2.0rc5) ; extra == 'full'
|
134
132
|
Requires-Dist: orange-canvas-core ; extra == 'full'
|
135
133
|
Requires-Dist: orange-widget-base ; extra == 'full'
|
136
|
-
Requires-Dist:
|
134
|
+
Requires-Dist: ewoks[orange] (>=0.1.1) ; extra == 'full'
|
137
135
|
Requires-Dist: rsyncmanager ; extra == 'full'
|
138
136
|
Requires-Dist: graypy ; extra == 'full'
|
139
137
|
Requires-Dist: fabio ; extra == 'full'
|
@@ -150,7 +148,7 @@ Requires-Dist: resource ; extra == 'full'
|
|
150
148
|
Requires-Dist: tifffile ; extra == 'full'
|
151
149
|
Requires-Dist: opencv-python ; extra == 'full'
|
152
150
|
Requires-Dist: hdf5plugin ; extra == 'full'
|
153
|
-
Requires-Dist: nabu[full] (
|
151
|
+
Requires-Dist: nabu[full] (>=2023) ; extra == 'full'
|
154
152
|
Requires-Dist: pycuda ; extra == 'full'
|
155
153
|
Requires-Dist: scikit-cuda ; extra == 'full'
|
156
154
|
Provides-Extra: full_no_cuda
|
@@ -158,10 +156,9 @@ Requires-Dist: Sphinx (>=4.0.0) ; extra == 'full_no_cuda'
|
|
158
156
|
Requires-Dist: nbsphinx ; extra == 'full_no_cuda'
|
159
157
|
Requires-Dist: pandoc ; extra == 'full_no_cuda'
|
160
158
|
Requires-Dist: jupyterlab ; extra == 'full_no_cuda'
|
161
|
-
Requires-Dist: nabu (<2023,>=2022.2.0rc5) ; extra == 'full_no_cuda'
|
162
159
|
Requires-Dist: orange-canvas-core ; extra == 'full_no_cuda'
|
163
160
|
Requires-Dist: orange-widget-base ; extra == 'full_no_cuda'
|
164
|
-
Requires-Dist:
|
161
|
+
Requires-Dist: ewoks[orange] (>=0.1.1) ; extra == 'full_no_cuda'
|
165
162
|
Requires-Dist: rsyncmanager ; extra == 'full_no_cuda'
|
166
163
|
Requires-Dist: graypy ; extra == 'full_no_cuda'
|
167
164
|
Requires-Dist: fabio ; extra == 'full_no_cuda'
|
@@ -178,6 +175,7 @@ Requires-Dist: resource ; extra == 'full_no_cuda'
|
|
178
175
|
Requires-Dist: tifffile ; extra == 'full_no_cuda'
|
179
176
|
Requires-Dist: opencv-python ; extra == 'full_no_cuda'
|
180
177
|
Requires-Dist: hdf5plugin ; extra == 'full_no_cuda'
|
178
|
+
Requires-Dist: nabu (>=2023) ; extra == 'full_no_cuda'
|
181
179
|
Provides-Extra: setup_requires
|
182
180
|
Requires-Dist: setuptools ; extra == 'setup_requires'
|
183
181
|
Requires-Dist: numpy (>=1.12) ; extra == 'setup_requires'
|