tomwer 1.1.1__py3-none-any.whl → 1.2.0a0__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/__init__.py +1 -0
- orangecontrib/tomwer/orange/managedprocess.py +6 -4
- orangecontrib/tomwer/state_summary.py +3 -2
- orangecontrib/tomwer/widgets/__init__.py +2 -2
- orangecontrib/tomwer/widgets/cluster/FutureSupervisorOW.py +9 -7
- orangecontrib/tomwer/widgets/cluster/SlurmClusterOW.py +6 -5
- orangecontrib/tomwer/widgets/control/AdvancementOW.py +2 -1
- orangecontrib/tomwer/widgets/control/DataDiscoveryOW.py +235 -0
- orangecontrib/tomwer/widgets/control/DataListOW.py +7 -5
- orangecontrib/tomwer/widgets/control/DataListenerOW.py +13 -14
- orangecontrib/tomwer/widgets/control/DataSelectorOW.py +8 -6
- orangecontrib/tomwer/widgets/control/DataTransfertOW.py +9 -9
- orangecontrib/tomwer/widgets/control/DataValidatorOW.py +7 -8
- orangecontrib/tomwer/widgets/control/DataWatcherOW.py +25 -17
- orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py +8 -8
- orangecontrib/tomwer/widgets/control/FilterOW.py +9 -8
- orangecontrib/tomwer/widgets/control/NXTomomillMixIn.py +3 -4
- orangecontrib/tomwer/widgets/control/NXTomomillOW.py +13 -14
- orangecontrib/tomwer/widgets/control/NotifierOW.py +3 -4
- orangecontrib/tomwer/widgets/control/SingleTomoObjOW.py +7 -5
- orangecontrib/tomwer/widgets/control/TimerOW.py +6 -5
- orangecontrib/tomwer/widgets/control/TomoObjSerieOW.py +5 -3
- orangecontrib/tomwer/widgets/control/VolumeSelector.py +8 -6
- orangecontrib/tomwer/widgets/control/VolumeSymLinkOW.py +10 -9
- orangecontrib/tomwer/widgets/control/icons/datadiscover.png +0 -0
- orangecontrib/tomwer/widgets/control/icons/datadiscover.svg +137 -0
- orangecontrib/tomwer/widgets/control/icons/nxtomomill.png +0 -0
- orangecontrib/tomwer/widgets/control/icons/nxtomomill.svg +5 -8
- orangecontrib/tomwer/widgets/debugtools/DatasetGeneratorOW.py +13 -15
- orangecontrib/tomwer/widgets/debugtools/ObjectInspectorOW.py +3 -2
- orangecontrib/tomwer/widgets/edit/DarkFlatPatchOW.py +10 -7
- orangecontrib/tomwer/widgets/edit/ImageKeyEditorOW.py +8 -5
- orangecontrib/tomwer/widgets/edit/ImageKeyUpgraderOW.py +5 -2
- orangecontrib/tomwer/widgets/edit/NXtomoEditorOW.py +6 -3
- orangecontrib/tomwer/widgets/edit/test/test_dark_flat_patch.py +8 -6
- orangecontrib/tomwer/widgets/edit/test/test_image_key_editor.py +3 -1
- orangecontrib/tomwer/widgets/edit/test/test_image_key_upgrader.py +3 -1
- orangecontrib/tomwer/widgets/edit/test/test_nxtomo_editor.py +3 -1
- orangecontrib/tomwer/widgets/other/PythonScriptOW.py +11 -11
- orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +22 -27
- orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py +13 -11
- orangecontrib/tomwer/widgets/reconstruction/DarkRefAndCopyOW.py +11 -9
- orangecontrib/tomwer/widgets/reconstruction/NabuOW.py +16 -14
- orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py +27 -32
- orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +27 -34
- orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +23 -25
- orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py +16 -18
- orangecontrib/tomwer/widgets/reconstruction/TofuOW.py +9 -7
- orangecontrib/tomwer/widgets/reconstruction/icons/nabu_2d.png +0 -0
- orangecontrib/tomwer/widgets/reconstruction/icons/nabu_2d.svg +8 -11
- orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +8 -8
- orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +6 -4
- orangecontrib/tomwer/widgets/visualization/LivesliceOW.py +4 -3
- orangecontrib/tomwer/widgets/visualization/NXtomoMetadataViewerOW.py +4 -3
- orangecontrib/tomwer/widgets/visualization/RadioStackOW.py +6 -4
- orangecontrib/tomwer/widgets/visualization/SampleMovedOW.py +8 -6
- orangecontrib/tomwer/widgets/visualization/SinogramViewerOW.py +6 -3
- orangecontrib/tomwer/widgets/visualization/SliceStackOW.py +7 -5
- orangecontrib/tomwer/widgets/visualization/VolumeViewerOW.py +5 -4
- tomwer/__init__.py +1 -1
- tomwer/__main__.py +2 -1
- tomwer/app/axis.py +18 -14
- tomwer/app/canvas.py +7 -5
- tomwer/app/canvas_launcher/config.py +8 -6
- tomwer/app/canvas_launcher/environ.py +1 -2
- tomwer/app/canvas_launcher/mainwindow.py +23 -22
- tomwer/app/canvas_launcher/splash.py +1 -0
- tomwer/app/canvas_launcher/widgetsscheme.py +3 -3
- tomwer/app/darkref.py +7 -6
- tomwer/app/darkrefpatch.py +8 -6
- tomwer/app/diffframe.py +6 -4
- tomwer/app/imagekeyeditor.py +10 -10
- tomwer/app/imagekeyupgrader.py +8 -6
- tomwer/app/intensitynormalization.py +8 -8
- tomwer/app/lamino.py +5 -3
- tomwer/app/nabuapp.py +8 -6
- tomwer/app/nxtomoeditor.py +6 -5
- tomwer/app/radiostack.py +8 -6
- tomwer/app/rsync.py +3 -3
- tomwer/app/saaxis.py +22 -23
- tomwer/app/sadeltabeta.py +21 -21
- tomwer/app/samplemoved.py +8 -6
- tomwer/app/scanviewer.py +7 -6
- tomwer/app/sinogramviewer.py +8 -7
- tomwer/app/slicestack.py +8 -6
- tomwer/app/stopdatalistener.py +2 -1
- tomwer/core/futureobject.py +15 -6
- tomwer/core/log/logger.py +4 -3
- tomwer/core/log/processlog.py +0 -1
- tomwer/core/process/conditions/filters.py +3 -3
- tomwer/core/process/control/datadiscovery.py +7 -0
- tomwer/core/process/control/datalistener/datalistener.py +22 -21
- tomwer/core/process/control/datalistener/rpcserver.py +18 -28
- tomwer/core/process/control/datawatcher/datawatcher.py +15 -12
- tomwer/core/process/control/datawatcher/datawatcherobserver.py +11 -8
- tomwer/core/process/control/datawatcher/datawatcherprocess.py +7 -5
- tomwer/core/process/control/datawatcher/edfdwprocess.py +5 -15
- tomwer/core/process/control/datawatcher/hdf5dwprocess.py +3 -1
- tomwer/core/process/control/datawatcher/status.py +2 -0
- tomwer/core/process/control/nxtomomill.py +7 -6
- tomwer/core/process/control/scanlist.py +2 -1
- tomwer/core/process/control/scanselector.py +1 -0
- tomwer/core/process/control/scantransfer.py +12 -12
- tomwer/core/process/control/scanvalidator.py +7 -6
- tomwer/core/process/control/test/test_volume_link.py +5 -4
- tomwer/core/process/control/timer.py +4 -4
- tomwer/core/process/control/volumeselector.py +1 -0
- tomwer/core/process/control/volumesymlink.py +8 -9
- tomwer/core/process/edit/darkflatpatch.py +9 -12
- tomwer/core/process/edit/imagekeyeditor.py +11 -13
- tomwer/core/process/reconstruction/axis/axis.py +36 -38
- tomwer/core/process/reconstruction/axis/mode.py +2 -1
- tomwer/core/process/reconstruction/axis/params.py +23 -28
- tomwer/core/process/reconstruction/darkref/darkrefs.py +23 -27
- tomwer/core/process/reconstruction/darkref/darkrefscopy.py +14 -18
- tomwer/core/process/reconstruction/darkref/params.py +3 -1
- tomwer/core/process/reconstruction/lamino/tofu.py +11 -15
- tomwer/core/process/reconstruction/nabu/castvolume.py +15 -18
- tomwer/core/process/reconstruction/nabu/nabucommon.py +19 -20
- tomwer/core/process/reconstruction/nabu/nabuscores.py +16 -14
- tomwer/core/process/reconstruction/nabu/nabuslices.py +27 -22
- tomwer/core/process/reconstruction/nabu/nabuvolume.py +20 -22
- tomwer/core/process/reconstruction/nabu/utils.py +17 -15
- tomwer/core/process/reconstruction/normalization/__init__.py +1 -3
- tomwer/core/process/reconstruction/normalization/normalization.py +16 -21
- tomwer/core/process/reconstruction/normalization/params.py +2 -2
- tomwer/core/process/reconstruction/saaxis/__init__.py +1 -1
- tomwer/core/process/reconstruction/saaxis/params.py +6 -7
- tomwer/core/process/reconstruction/saaxis/saaxis.py +44 -55
- tomwer/core/process/reconstruction/sadeltabeta/__init__.py +1 -1
- tomwer/core/process/reconstruction/sadeltabeta/params.py +9 -13
- tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +40 -46
- tomwer/core/process/reconstruction/scores/__init__.py +2 -2
- tomwer/core/process/reconstruction/scores/params.py +6 -9
- tomwer/core/process/reconstruction/scores/scores.py +10 -13
- tomwer/core/process/reconstruction/test/test_axis_params.py +4 -2
- tomwer/core/process/reconstruction/test/test_darkref.py +1 -2
- tomwer/core/process/reconstruction/test/test_darkref_copy.py +3 -1
- tomwer/core/process/reconstruction/test/test_paramsbase.py +1 -1
- tomwer/core/process/reconstruction/test/test_saaxis.py +11 -7
- tomwer/core/process/reconstruction/test/test_sadeltabeta.py +5 -4
- tomwer/core/process/reconstruction/test/test_utils.py +3 -2
- tomwer/core/process/script/python.py +6 -8
- tomwer/core/process/task.py +11 -12
- tomwer/core/process/test/test_axis.py +12 -9
- tomwer/core/process/test/test_conditions.py +8 -8
- tomwer/core/process/test/test_dark_and_flat.py +9 -8
- tomwer/core/process/test/test_data_listener.py +5 -3
- tomwer/core/process/test/test_data_transfer.py +14 -12
- tomwer/core/process/test/test_data_watcher.py +3 -1
- tomwer/core/process/test/test_lamino.py +3 -1
- tomwer/core/process/test/test_nabu.py +13 -12
- tomwer/core/process/test/test_normalization.py +7 -5
- tomwer/core/process/test/test_timer.py +2 -1
- tomwer/core/process/utils.py +9 -9
- tomwer/core/progress.py +3 -4
- tomwer/core/scan/blissscan.py +4 -2
- tomwer/core/scan/edfscan.py +26 -29
- tomwer/core/scan/futurescan.py +2 -1
- tomwer/core/scan/hdf5scan.py +21 -28
- tomwer/core/scan/scanbase.py +18 -18
- tomwer/core/scan/scanfactory.py +20 -21
- tomwer/core/scan/scantype.py +7 -0
- tomwer/core/scan/test/test_edf.py +2 -1
- tomwer/core/scan/test/test_future_scan.py +2 -1
- tomwer/core/scan/test/test_h5.py +5 -4
- tomwer/core/scan/test/test_process_registration.py +5 -3
- tomwer/core/scan/test/test_scan.py +11 -9
- tomwer/core/settings.py +1 -2
- tomwer/core/test/test_lamino.py +3 -2
- tomwer/core/test/test_scanutils.py +3 -2
- tomwer/core/test/test_utils.py +6 -4
- tomwer/core/utils/__init__.py +8 -6
- tomwer/core/utils/deprecation.py +2 -2
- tomwer/core/utils/image.py +4 -3
- tomwer/core/utils/locker.py +1 -1
- tomwer/core/utils/normalization.py +1 -0
- tomwer/core/utils/nxtomoutils.py +2 -1
- tomwer/core/utils/scanutils.py +9 -6
- tomwer/core/utils/slurm.py +2 -1
- tomwer/core/utils/time.py +2 -4
- tomwer/core/utils/volumeutils.py +2 -1
- tomwer/core/volume/__init__.py +1 -1
- tomwer/core/volume/edfvolume.py +4 -3
- tomwer/core/volume/hdf5volume.py +6 -8
- tomwer/core/volume/jp2kvolume.py +4 -3
- tomwer/core/volume/rawvolume.py +7 -7
- tomwer/core/volume/tiffvolume.py +8 -6
- tomwer/core/volume/volumebase.py +1 -0
- tomwer/core/volume/volumefactory.py +18 -18
- tomwer/gui/cluster/slurm.py +2 -0
- tomwer/gui/cluster/supervisor.py +4 -2
- tomwer/gui/cluster/test/test_cluster.py +5 -4
- tomwer/gui/cluster/test/test_supervisor.py +4 -2
- tomwer/gui/conditions/filter.py +7 -6
- tomwer/gui/control/actions.py +1 -0
- tomwer/gui/control/datadiscovery.py +168 -0
- tomwer/gui/control/datalist.py +29 -28
- tomwer/gui/control/datalistener.py +8 -4
- tomwer/gui/control/datareacheractions.py +2 -1
- tomwer/gui/control/datatransfert.py +3 -1
- tomwer/gui/control/datavalidator.py +11 -12
- tomwer/gui/control/datawatcher/configuration.py +12 -1
- tomwer/gui/control/datawatcher/controlwidget.py +116 -0
- tomwer/gui/control/datawatcher/datawatcher.py +63 -121
- tomwer/gui/control/datawatcher/datawatcherobserver.py +7 -9
- tomwer/gui/control/history.py +3 -1
- tomwer/gui/control/observations.py +7 -7
- tomwer/gui/control/scanselectorwidget.py +4 -2
- tomwer/gui/control/selectorwidgetbase.py +3 -1
- tomwer/gui/control/serie/seriecreator.py +11 -12
- tomwer/gui/control/singletomoobj.py +4 -4
- tomwer/gui/control/test/test_datadiscovery.py +27 -0
- tomwer/gui/control/test/test_datalist.py +7 -6
- tomwer/gui/control/test/test_datalistener.py +4 -4
- tomwer/gui/control/test/test_datavalidator.py +3 -1
- tomwer/gui/control/test/test_inputwidget.py +5 -4
- tomwer/gui/control/test/test_process_manager.py +3 -3
- tomwer/gui/control/test/test_scanselector.py +6 -4
- tomwer/gui/control/test/test_scanvalidator.py +6 -5
- tomwer/gui/control/test/test_single_tomo_obj.py +5 -3
- tomwer/gui/control/test/test_volume_dialog.py +7 -5
- tomwer/gui/control/test/test_volumeselector.py +8 -6
- tomwer/gui/control/volumeselectorwidget.py +2 -1
- tomwer/gui/debugtools/datasetgenerator.py +2 -1
- tomwer/gui/debugtools/objectinspector.py +6 -7
- tomwer/gui/edit/dkrfpatch.py +11 -10
- tomwer/gui/edit/imagekeyeditor.py +12 -12
- tomwer/gui/edit/nxtomoeditor.py +8 -7
- tomwer/gui/edit/test/test_dkrf_patch.py +10 -9
- tomwer/gui/edit/test/test_image_key_editor.py +8 -6
- tomwer/gui/edit/test/test_nx_editor.py +7 -5
- tomwer/gui/icons.py +3 -2
- tomwer/gui/illustrations.py +3 -2
- tomwer/gui/imagefromfile.py +3 -1
- tomwer/gui/qfolderdialog.py +14 -12
- tomwer/gui/reconstruction/axis/CompareImages.py +9 -8
- tomwer/gui/reconstruction/axis/__init__.py +1 -1
- tomwer/gui/reconstruction/axis/axis.py +9 -7
- tomwer/gui/reconstruction/axis/radioaxis.py +30 -32
- tomwer/gui/reconstruction/darkref/darkrefcopywidget.py +6 -5
- tomwer/gui/reconstruction/darkref/darkrefwidget.py +4 -2
- tomwer/gui/reconstruction/lamino/tofu/misc.py +3 -1
- tomwer/gui/reconstruction/lamino/tofu/projections.py +16 -8
- tomwer/gui/reconstruction/lamino/tofu/tofu.py +6 -3
- tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py +5 -2
- tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py +8 -5
- tomwer/gui/reconstruction/nabu/action.py +1 -0
- tomwer/gui/reconstruction/nabu/castvolume.py +6 -4
- tomwer/gui/reconstruction/nabu/check.py +3 -2
- tomwer/gui/reconstruction/nabu/nabuconfig/base.py +5 -2
- tomwer/gui/reconstruction/nabu/nabuconfig/ctf.py +6 -3
- tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py +4 -3
- tomwer/gui/reconstruction/nabu/nabuconfig/output.py +7 -5
- tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +8 -6
- tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +7 -7
- tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +40 -33
- tomwer/gui/reconstruction/nabu/nabuflow.py +7 -4
- tomwer/gui/reconstruction/nabu/slices.py +14 -10
- tomwer/gui/reconstruction/nabu/slurm.py +1 -0
- tomwer/gui/reconstruction/nabu/volume.py +5 -3
- tomwer/gui/reconstruction/normalization/intensity.py +14 -13
- tomwer/gui/reconstruction/saaxis/corrangeselector.py +36 -35
- tomwer/gui/reconstruction/saaxis/dimensionwidget.py +5 -4
- tomwer/gui/reconstruction/saaxis/saaxis.py +17 -17
- tomwer/gui/reconstruction/saaxis/sliceselector.py +5 -5
- tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +33 -36
- tomwer/gui/reconstruction/scores/scoreplot.py +19 -18
- tomwer/gui/reconstruction/test/test_axis.py +14 -13
- tomwer/gui/reconstruction/test/test_lamino.py +3 -2
- tomwer/gui/reconstruction/test/test_nabu.py +8 -6
- tomwer/gui/reconstruction/test/test_saaxis.py +17 -15
- tomwer/gui/reconstruction/test/test_sadeltabeta.py +15 -13
- tomwer/gui/samplemoved/__init__.py +8 -7
- tomwer/gui/samplemoved/selectiontable.py +4 -2
- tomwer/gui/stackplot.py +14 -13
- tomwer/gui/stacks.py +11 -9
- tomwer/gui/test/test_axis_gui.py +5 -4
- tomwer/gui/test/test_qfolder_dialog.py +2 -1
- tomwer/gui/utils/__init__.py +5 -5
- tomwer/gui/utils/buttons.py +1 -0
- tomwer/gui/utils/completer.py +1 -0
- tomwer/gui/utils/flow.py +4 -2
- tomwer/gui/utils/illustrations.py +1 -0
- tomwer/gui/utils/inputwidget.py +11 -17
- tomwer/gui/utils/lineselector/lineselector.py +6 -8
- tomwer/gui/utils/qt_utils.py +1 -0
- tomwer/gui/utils/scandescription.py +2 -0
- tomwer/gui/utils/splashscreen.py +1 -1
- tomwer/gui/utils/unitsystem.py +3 -1
- tomwer/gui/utils/vignettes.py +8 -8
- tomwer/gui/utils/waiterthread.py +2 -1
- tomwer/gui/visualization/dataviewer.py +20 -28
- tomwer/gui/visualization/diffviewer/diffviewer.py +17 -20
- tomwer/gui/visualization/diffviewer/shiftwidget.py +3 -1
- tomwer/gui/visualization/nxtomometadata.py +1 -0
- tomwer/gui/visualization/reconstructionparameters.py +13 -12
- tomwer/gui/visualization/scanoverview.py +5 -3
- tomwer/gui/visualization/sinogramviewer.py +3 -2
- tomwer/gui/visualization/test/test_dataviewer.py +3 -1
- tomwer/gui/visualization/test/test_diffviewer.py +8 -6
- tomwer/gui/visualization/test/test_nx_tomo_metadata_viewer.py +5 -3
- tomwer/gui/visualization/test/test_reconstruction_parameters.py +5 -3
- tomwer/gui/visualization/test/test_sinogramviewer.py +10 -9
- tomwer/gui/visualization/test/test_stacks.py +8 -6
- tomwer/gui/visualization/test/test_volumeviewer.py +10 -8
- tomwer/gui/visualization/tomoobjoverview.py +7 -4
- tomwer/gui/visualization/volumeoverview.py +5 -3
- tomwer/gui/visualization/volumeviewer.py +15 -14
- tomwer/io/utils/__init__.py +3 -3
- tomwer/io/utils/h5pyutils.py +2 -1
- tomwer/io/utils/utils.py +17 -21
- tomwer/resources/__init__.py +1 -1
- tomwer/synctools/axis.py +3 -1
- tomwer/synctools/darkref.py +3 -2
- tomwer/synctools/datalistener.py +10 -6
- tomwer/synctools/datatransfert.py +2 -3
- tomwer/synctools/imageloaderthread.py +5 -3
- tomwer/synctools/rsyncmanager.py +3 -2
- tomwer/synctools/saaxis.py +3 -1
- tomwer/synctools/sadeltabeta.py +3 -1
- tomwer/synctools/stacks/control/datalistener.py +9 -12
- tomwer/synctools/stacks/edit/darkflatpatch.py +13 -12
- tomwer/synctools/stacks/edit/imagekeyeditor.py +12 -11
- tomwer/synctools/stacks/processingstack.py +3 -2
- tomwer/synctools/stacks/reconstruction/axis.py +12 -12
- tomwer/synctools/stacks/reconstruction/castvolume.py +8 -5
- tomwer/synctools/stacks/reconstruction/dkrefcopy.py +10 -9
- tomwer/synctools/stacks/reconstruction/lamino.py +9 -7
- tomwer/synctools/stacks/reconstruction/nabu.py +18 -17
- tomwer/synctools/stacks/reconstruction/normalization.py +12 -16
- tomwer/synctools/stacks/reconstruction/saaxis.py +13 -11
- tomwer/synctools/stacks/reconstruction/sadeltabeta.py +16 -14
- tomwer/synctools/test/test_darkRefs.py +4 -3
- tomwer/synctools/test/test_foldertransfer.py +14 -12
- tomwer/synctools/test/test_scanstages.py +8 -7
- tomwer/synctools/utils/scanstages.py +7 -5
- tomwer/tests/conftest.py +4 -4
- tomwer/tests/test_scripts.py +3 -2
- tomwer/tests/utils/__init__.py +5 -4
- tomwer/tests/utils/utilstest.py +5 -6
- tomwer/third_party/nabu/preproc/phase.py +7 -5
- tomwer/third_party/nabu/utils.py +3 -2
- tomwer/utils.py +12 -12
- tomwer/version.py +4 -4
- {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/METADATA +2 -2
- {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/RECORD +353 -345
- /tomwer-1.1.1-py3.8-nspkg.pth → /tomwer-1.2.0a0-py3.8-nspkg.pth +0 -0
- {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/LICENSE +0 -0
- {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/WHEEL +0 -0
- {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/entry_points.txt +0 -0
- {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/namespace_packages.txt +0 -0
- {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/top_level.txt +0 -0
@@ -34,23 +34,26 @@ __license__ = "MIT"
|
|
34
34
|
__date__ = "26/02/2021"
|
35
35
|
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
from tomwer.core.scan.scanbase import TomwerScanBase
|
37
|
+
import functools
|
38
|
+
import logging
|
39
|
+
import weakref
|
41
40
|
from typing import Union
|
41
|
+
|
42
|
+
import numpy
|
43
|
+
from silx.gui import icons as silxicons
|
44
|
+
from silx.gui import qt
|
45
|
+
from silx.gui.dialog.ImageFileDialog import ImageFileDialog
|
42
46
|
from silx.gui.plot import items
|
43
47
|
from silx.utils.enum import Enum as _Enum
|
48
|
+
from tomoscan.esrf.scan.utils import get_data
|
49
|
+
|
50
|
+
from tomwer.core.process.reconstruction.saaxis.saaxis import ReconstructionMode
|
51
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
52
|
+
from tomwer.gui import icons
|
44
53
|
from tomwer.gui.reconstruction.saaxis.sliceselector import SliceSelector
|
45
|
-
from tomwer.gui.visualization.sinogramviewer import SinogramViewer as _SinogramViewer
|
46
54
|
from tomwer.gui.utils.lineselector import QSliceSelectorDialog
|
47
|
-
from
|
48
|
-
from
|
49
|
-
from tomoscan.esrf.scan.utils import get_data
|
50
|
-
import numpy
|
51
|
-
import weakref
|
52
|
-
import logging
|
53
|
-
import functools
|
55
|
+
from tomwer.gui.utils.slider import LogSlider
|
56
|
+
from tomwer.gui.visualization.sinogramviewer import SinogramViewer as _SinogramViewer
|
54
57
|
|
55
58
|
_logger = logging.getLogger(__name__)
|
56
59
|
|
@@ -124,13 +127,13 @@ class SinogramViewer(_SinogramViewer):
|
|
124
127
|
and self._estimated_cor is not None
|
125
128
|
):
|
126
129
|
self.setCorRange(
|
127
|
-
|
128
|
-
|
130
|
+
cor_min=self._min,
|
131
|
+
cor_max=self._max,
|
129
132
|
estimated_cor=self._estimated_cor,
|
130
133
|
other_cors=self._other_cors,
|
131
134
|
)
|
132
135
|
|
133
|
-
def setCorRange(self,
|
136
|
+
def setCorRange(self, cor_min, cor_max, estimated_cor, other_cors=tuple()):
|
134
137
|
"""
|
135
138
|
For now we can only modify the estimated cor
|
136
139
|
|
@@ -140,8 +143,8 @@ class SinogramViewer(_SinogramViewer):
|
|
140
143
|
:param int display_n_recons: the grid created by all cor observe
|
141
144
|
:return:
|
142
145
|
"""
|
143
|
-
self._min =
|
144
|
-
self._max =
|
146
|
+
self._min = cor_min
|
147
|
+
self._max = cor_max
|
145
148
|
self._estimated_cor = estimated_cor
|
146
149
|
self._other_cors = other_cors if other_cors is not None else tuple()
|
147
150
|
|
@@ -168,10 +171,10 @@ class SinogramViewer(_SinogramViewer):
|
|
168
171
|
plot.removeMarker(marker)
|
169
172
|
# recreate markers
|
170
173
|
plot.addXMarker(
|
171
|
-
x=
|
174
|
+
x=cor_min, legend="from", text="from", color="#3449ebff", draggable=True
|
172
175
|
)
|
173
176
|
plot.addXMarker(
|
174
|
-
x=
|
177
|
+
x=cor_max, legend="to", text="to", color="#3449ebff", draggable=True
|
175
178
|
)
|
176
179
|
plot.addXMarker(
|
177
180
|
x=estimated_cor,
|
@@ -182,7 +185,7 @@ class SinogramViewer(_SinogramViewer):
|
|
182
185
|
)
|
183
186
|
for i_cor, cor in enumerate(other_cors):
|
184
187
|
plot.addXMarker(
|
185
|
-
x=cor, legend="cor_{}"
|
188
|
+
x=cor, legend=f"cor_{i_cor}", draggable=False, color="#34dceb42"
|
186
189
|
)
|
187
190
|
|
188
191
|
# handle draggable markers
|
@@ -274,15 +277,13 @@ class _ReconstructionModeGB(qt.QGroupBox):
|
|
274
277
|
valid_modes = ("vertical", "horizontal")
|
275
278
|
if mode not in valid_modes:
|
276
279
|
raise ValueError(
|
277
|
-
"mode {} is not recosgnized. Valid modes are {}"
|
278
|
-
"".format(mode, valid_modes)
|
280
|
+
f"mode {mode} is not recosgnized. Valid modes are {valid_modes}"
|
279
281
|
)
|
280
282
|
self._verticalRB.setChecked(mode == "vertical")
|
281
283
|
if mode == "vertical":
|
282
284
|
if slices not in self._DEFAULT_VERTICAL_SLICE_MODE:
|
283
285
|
raise ValueError(
|
284
|
-
"{} is not a vadid slice mode. Calid are {}"
|
285
|
-
"".format(slices, self._DEFAULT_VERTICAL_SLICE_MODE)
|
286
|
+
f"{slices} is not a vadid slice mode. Calid are {self._DEFAULT_VERTICAL_SLICE_MODE}"
|
286
287
|
)
|
287
288
|
else:
|
288
289
|
index = self._defaultSlicesCB.findText(slices)
|
@@ -358,29 +359,29 @@ class _ReconstructionModeGB(qt.QGroupBox):
|
|
358
359
|
else:
|
359
360
|
return self._sliceVerticalQSB.getSlicesValue()
|
360
361
|
else:
|
361
|
-
raise ValueError("mode {} is not handled"
|
362
|
+
raise ValueError(f"mode {mode} is not handled")
|
362
363
|
|
363
|
-
def setReconstructionSlices(self,
|
364
|
+
def setReconstructionSlices(self, slice_: Union[dict, int, str]):
|
364
365
|
slice_name = None
|
365
|
-
if
|
366
|
+
if slice_ == "middle" or isinstance(slice_, int) or len(slice_) == 1:
|
366
367
|
self.setReconstructionMode(ReconstructionMode.VERTICAL)
|
367
368
|
target = self._sliceVerticalQSB
|
368
|
-
if
|
369
|
+
if slice_ == "middle":
|
369
370
|
index = self._defaultSlicesCB.findText("middle")
|
370
371
|
else:
|
371
372
|
index = self._defaultSlicesCB.findText("other")
|
372
373
|
slice_name = "Slice"
|
373
374
|
self._defaultSlicesCB.setCurrentIndex(index)
|
374
|
-
elif len(
|
375
|
+
elif len(slice_) == 2:
|
375
376
|
self.setReconstructionMode(ReconstructionMode.TILT_CORRECTION)
|
376
377
|
target = self._sliceTiltCorrQSB
|
377
378
|
else:
|
378
379
|
raise ValueError("slice is expected to contain one or two element(s)")
|
379
|
-
if
|
380
|
-
if isinstance(
|
381
|
-
target.setSliceValue(name=slice_name, value=
|
380
|
+
if slice_ not in ("middle",):
|
381
|
+
if isinstance(slice_, int):
|
382
|
+
target.setSliceValue(name=slice_name, value=slice_)
|
382
383
|
else:
|
383
|
-
for slice_name, slice_value in
|
384
|
+
for slice_name, slice_value in slice_.items():
|
384
385
|
target.setSliceValue(name=slice_name, value=slice_value)
|
385
386
|
|
386
387
|
def _reconstructionModeChanged(self, *args, **kwargs):
|
@@ -534,14 +535,14 @@ class _EstimatedCorWidget(qt.QGroupBox):
|
|
534
535
|
else:
|
535
536
|
return self._MIDDLE_COR_TXT
|
536
537
|
else:
|
537
|
-
raise ValueError("Mode {} is not recognized"
|
538
|
+
raise ValueError(f"Mode {mode} is not recognized")
|
538
539
|
else:
|
539
540
|
if mode in ("rel", "relative"):
|
540
541
|
return self._manualCORRel.value()
|
541
542
|
elif mode in ("abs", "absolute"):
|
542
543
|
return self._manualCORAbs.value()
|
543
544
|
else:
|
544
|
-
raise ValueError("Mode {} is not recognized"
|
545
|
+
raise ValueError(f"Mode {mode} is not recognized")
|
545
546
|
|
546
547
|
def _modeChanged(self, *args, **kwargs):
|
547
548
|
manual_opt_visible = not self._middlePositionRB.isChecked()
|
@@ -34,9 +34,10 @@ __license__ = "MIT"
|
|
34
34
|
__date__ = "05/02/2021"
|
35
35
|
|
36
36
|
|
37
|
+
from collections.abc import Iterable
|
38
|
+
|
37
39
|
from silx.gui import qt
|
38
40
|
from tomoscan.unitsystem import metricsystem
|
39
|
-
from collections.abc import Iterable
|
40
41
|
|
41
42
|
|
42
43
|
class DimensionWidget(qt.QGroupBox):
|
@@ -85,7 +86,7 @@ class DimensionWidget(qt.QGroupBox):
|
|
85
86
|
self._dim0ValueQLE.setSingleStep(0.0001)
|
86
87
|
self._dim0ValueQLE.setValue(self._getDim0DisplayValue())
|
87
88
|
if dims_colors is not None:
|
88
|
-
stylesheet = "background-color: {
|
89
|
+
stylesheet = f"background-color: {dims_colors[0]}"
|
89
90
|
self._dim0ValueQLE.setStyleSheet(stylesheet)
|
90
91
|
self.layout().addWidget(self._dim0ValueQLE)
|
91
92
|
# dim 1
|
@@ -97,7 +98,7 @@ class DimensionWidget(qt.QGroupBox):
|
|
97
98
|
self._dim1ValueQLE.setSingleStep(0.0001)
|
98
99
|
self._dim1ValueQLE.setValue(self._getDim1DisplayValue())
|
99
100
|
if dims_colors is not None:
|
100
|
-
stylesheet = "background-color: {
|
101
|
+
stylesheet = f"background-color: {dims_colors[1]}"
|
101
102
|
self._dim1ValueQLE.setStyleSheet(stylesheet)
|
102
103
|
self.layout().addWidget(self._dim1ValueQLE)
|
103
104
|
# dim 2
|
@@ -109,7 +110,7 @@ class DimensionWidget(qt.QGroupBox):
|
|
109
110
|
self._dim2ValueQLE.setSingleStep(0.0001)
|
110
111
|
self._dim2ValueQLE.setValue(self._getDim2DisplayValue())
|
111
112
|
if dims_colors is not None:
|
112
|
-
stylesheet = "background-color: {
|
113
|
+
stylesheet = f"background-color: {dims_colors[2]}"
|
113
114
|
self._dim2ValueQLE.setStyleSheet(stylesheet)
|
114
115
|
self.layout().addWidget(self._dim2ValueQLE)
|
115
116
|
|
@@ -34,25 +34,26 @@ __license__ = "MIT"
|
|
34
34
|
__date__ = "01/02/2021"
|
35
35
|
|
36
36
|
|
37
|
+
import logging
|
38
|
+
from typing import Union
|
39
|
+
|
40
|
+
import numpy
|
37
41
|
from silx.gui import qt
|
38
|
-
|
39
|
-
from tomwer.
|
40
|
-
from tomwer.gui.reconstruction.axis.radioaxis import _CalculationWidget
|
41
|
-
from tomwer.synctools.axis import QAxisRP
|
42
|
+
|
43
|
+
from tomwer.core.process.reconstruction.axis import mode as axis_mode
|
42
44
|
from tomwer.core.process.reconstruction.nabu.utils import _NabuMode
|
43
45
|
from tomwer.core.process.reconstruction.saaxis.params import SAAxisParams
|
44
|
-
from tomwer.
|
45
|
-
from tomwer.gui
|
46
|
+
from tomwer.core.process.reconstruction.saaxis.saaxis import SAAxisProcess
|
47
|
+
from tomwer.gui import icons
|
48
|
+
from tomwer.gui.reconstruction.axis.radioaxis import _CalculationWidget
|
49
|
+
from tomwer.gui.reconstruction.nabu.slices import NabuWindow
|
46
50
|
from tomwer.gui.reconstruction.saaxis.corrangeselector import SliceAndCorWidget
|
47
|
-
from tomwer.gui.utils.buttons import TabBrowsersButtons
|
48
51
|
from tomwer.gui.reconstruction.scores.control import ControlWidget
|
49
|
-
from tomwer.
|
50
|
-
from tomwer.
|
52
|
+
from tomwer.gui.reconstruction.scores.scoreplot import CorSelection
|
53
|
+
from tomwer.gui.reconstruction.scores.scoreplot import ScorePlot as _ScorePlot
|
54
|
+
from tomwer.gui.utils.buttons import TabBrowsersButtons
|
51
55
|
from tomwer.gui.utils.scandescription import ScanNameLabelAndShape
|
52
|
-
import
|
53
|
-
from typing import Union
|
54
|
-
import logging
|
55
|
-
|
56
|
+
from tomwer.synctools.axis import QAxisRP
|
56
57
|
|
57
58
|
_logger = logging.getLogger(__file__)
|
58
59
|
|
@@ -264,8 +265,7 @@ class _SAAxisTabWidget(qt.QTabWidget):
|
|
264
265
|
config = config.to_dict()
|
265
266
|
if not isinstance(config, dict):
|
266
267
|
raise TypeError(
|
267
|
-
"config should be a dictionary or a SAAxisParams. "
|
268
|
-
"Not {}".format(type(config))
|
268
|
+
f"config should be a dictionary or a SAAxisParams. Not {type(config)}"
|
269
269
|
)
|
270
270
|
|
271
271
|
research_width = config.get("research_width", None)
|
@@ -491,8 +491,8 @@ class SAAxisWindow(qt.QMainWindow):
|
|
491
491
|
else:
|
492
492
|
other_cors = ()
|
493
493
|
sino_viewer.setCorRange(
|
494
|
-
|
495
|
-
|
494
|
+
cor_min=cors[0],
|
495
|
+
cor_max=cors[-1],
|
496
496
|
estimated_cor=estimated_cor,
|
497
497
|
other_cors=other_cors,
|
498
498
|
)
|
@@ -35,11 +35,11 @@ __license__ = "MIT"
|
|
35
35
|
__date__ = "04/02/2021"
|
36
36
|
|
37
37
|
|
38
|
-
from silx.gui import qt
|
39
|
-
from silx.gui.plot import PlotWidget
|
40
38
|
import functools
|
41
|
-
import numpy
|
42
39
|
|
40
|
+
import numpy
|
41
|
+
from silx.gui import qt
|
42
|
+
from silx.gui.plot import PlotWidget
|
43
43
|
|
44
44
|
# class SliceSelectorWithMiddle(qt.QWidget):
|
45
45
|
|
@@ -82,7 +82,7 @@ class SliceSelector(qt.QWidget):
|
|
82
82
|
widget.layout().setContentsMargins(0, 0, 0, 0)
|
83
83
|
widget.layout().addWidget(qt.QLabel(name, self))
|
84
84
|
sb = qt.QSpinBox(self)
|
85
|
-
stylesheet = "background-color: {}"
|
85
|
+
stylesheet = f"background-color: {color}"
|
86
86
|
sb.setStyleSheet(stylesheet)
|
87
87
|
|
88
88
|
min_i, max_i = self.getSlicesRange()
|
@@ -288,7 +288,7 @@ class _SliceSelectorFrmVolume(PlotWidget):
|
|
288
288
|
self.sigSlicesChanged.emit()
|
289
289
|
|
290
290
|
def getMarkerName(self, name: str):
|
291
|
-
return "marker_{}"
|
291
|
+
return f"marker_{name}"
|
292
292
|
|
293
293
|
def _addSliceAnchor(self, value, curve_name, color):
|
294
294
|
y_value = self.valueToPlotSpace(value=value)
|
@@ -34,28 +34,32 @@ __license__ = "MIT"
|
|
34
34
|
__date__ = "20/05/2021"
|
35
35
|
|
36
36
|
|
37
|
+
import logging
|
38
|
+
import typing
|
39
|
+
|
40
|
+
import numpy
|
37
41
|
from silx.gui import qt
|
38
|
-
|
39
|
-
from tomwer.core.process.reconstruction.
|
42
|
+
|
43
|
+
from tomwer.core.process.reconstruction.nabu.utils import (
|
44
|
+
ConfigurationLevel,
|
45
|
+
_NabuMode,
|
46
|
+
retrieve_lst_of_value_from_str,
|
47
|
+
)
|
40
48
|
from tomwer.core.process.reconstruction.sadeltabeta.sadeltabeta import (
|
41
49
|
SADeltaBetaProcess,
|
42
50
|
)
|
43
|
-
from tomwer.
|
44
|
-
from tomwer.
|
51
|
+
from tomwer.core.process.reconstruction.scores.params import ScoreMethod
|
52
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
53
|
+
from tomwer.gui import icons
|
54
|
+
from tomwer.gui.reconstruction.nabu.nabuconfig.phase import _NabuPhaseConfig
|
45
55
|
from tomwer.gui.reconstruction.nabu.slices import NabuWindow
|
46
|
-
from tomwer.gui.utils.scandescription import ScanNameLabelAndShape
|
47
|
-
from tomwer.gui.reconstruction.scores.scoreplot import ScorePlot as _ScorePlot
|
48
|
-
from tomwer.gui.reconstruction.scores.scoreplot import DelaBetaSelection
|
49
|
-
from tomwer.core.process.reconstruction.nabu.utils import _NabuMode
|
50
|
-
from tomwer.core.process.reconstruction.nabu.utils import ConfigurationLevel
|
51
|
-
from tomwer.core.process.reconstruction.nabu.utils import retrieve_lst_of_value_from_str
|
52
|
-
from tomwer.gui.reconstruction.scores.control import ControlWidget
|
53
56
|
from tomwer.gui.reconstruction.saaxis.sliceselector import SliceSelector
|
54
|
-
from tomwer.gui.reconstruction.
|
55
|
-
from tomwer.
|
56
|
-
import
|
57
|
-
import
|
58
|
-
import
|
57
|
+
from tomwer.gui.reconstruction.scores.control import ControlWidget
|
58
|
+
from tomwer.gui.reconstruction.scores.scoreplot import DelaBetaSelection
|
59
|
+
from tomwer.gui.reconstruction.scores.scoreplot import ScorePlot as _ScorePlot
|
60
|
+
from tomwer.gui.utils.buttons import TabBrowsersButtons
|
61
|
+
from tomwer.gui.utils.scandescription import ScanNameLabelAndShape
|
62
|
+
from tomwer.synctools.sadeltabeta import QSADeltaBetaParams
|
59
63
|
|
60
64
|
_logger = logging.getLogger(__name__)
|
61
65
|
|
@@ -181,16 +185,15 @@ class _SADeltaBetaTabWidget(qt.QTabWidget):
|
|
181
185
|
def getReconstructionSlice(self):
|
182
186
|
return self._deltaBetaSelectionWidget.getSlice()
|
183
187
|
|
184
|
-
def setReconstructionSlice(self,
|
185
|
-
return self._deltaBetaSelectionWidget.setSlice(
|
188
|
+
def setReconstructionSlice(self, slice_):
|
189
|
+
return self._deltaBetaSelectionWidget.setSlice(slice_=slice_)
|
186
190
|
|
187
191
|
def setConfiguration(self, config):
|
188
192
|
if isinstance(config, QSADeltaBetaParams):
|
189
193
|
config = config.to_dict()
|
190
194
|
if not isinstance(config, dict):
|
191
195
|
raise TypeError(
|
192
|
-
"config should be a dictionary or a SAAxisParams. "
|
193
|
-
"Not {}".format(type(config))
|
196
|
+
f"config should be a dictionary or a SAAxisParams. Not {type(config)}"
|
194
197
|
)
|
195
198
|
|
196
199
|
db_values = config.get("delta_beta_values", None)
|
@@ -429,24 +432,20 @@ class DeltaBetaSelectionWidget(qt.QWidget):
|
|
429
432
|
def _updated(self, *args, **kwargs):
|
430
433
|
self.sigConfigurationChanged.emit()
|
431
434
|
|
432
|
-
def setSlice(self,
|
433
|
-
if isinstance(
|
434
|
-
if
|
435
|
-
raise ValueError(
|
436
|
-
"Slice should be 'middle' or an int. " "Not {}".format(slice)
|
437
|
-
)
|
435
|
+
def setSlice(self, slice_: typing.Union["str", int]):
|
436
|
+
if isinstance(slice_, str):
|
437
|
+
if slice_ != "middle":
|
438
|
+
raise ValueError(f"Slice should be 'middle' or an int. Not {slice_}")
|
438
439
|
else:
|
439
440
|
self.setMode("middle")
|
440
|
-
elif isinstance(
|
441
|
+
elif isinstance(slice_, int):
|
441
442
|
self.setMode("other")
|
442
|
-
self._sliceSelectionQSB.setSliceValue("Slice",
|
443
|
-
elif isinstance(
|
443
|
+
self._sliceSelectionQSB.setSliceValue("Slice", slice_)
|
444
|
+
elif isinstance(slice_, dict) and "Slice" in slice_:
|
444
445
|
self.setMode("other")
|
445
|
-
self._sliceSelectionQSB.setSliceValue("Slice",
|
446
|
+
self._sliceSelectionQSB.setSliceValue("Slice", slice_["Slice"])
|
446
447
|
else:
|
447
|
-
raise TypeError(
|
448
|
-
"slice should be an int or 'middle'. Not {}".format(type(slice))
|
449
|
-
)
|
448
|
+
raise TypeError(f"slice should be an int or 'middle'. Not {type(slice_)}")
|
450
449
|
|
451
450
|
def setSliceRange(self, min_, max_):
|
452
451
|
self._sliceSelectionQSB.setSlicesRange(min_, max_)
|
@@ -457,9 +456,7 @@ class DeltaBetaSelectionWidget(qt.QWidget):
|
|
457
456
|
def setMode(self, mode):
|
458
457
|
if mode not in self._DEFAULT_VERTICAL_SLICE_MODE:
|
459
458
|
raise ValueError(
|
460
|
-
"mode should be in {}. Not {}."
|
461
|
-
self._DEFAULT_VERTICAL_SLICE_MODE, mode
|
462
|
-
)
|
459
|
+
f"mode should be in {self._DEFAULT_VERTICAL_SLICE_MODE}. Not {mode}."
|
463
460
|
)
|
464
461
|
idx = self._defaultSlicesCB.findText(mode)
|
465
462
|
self._defaultSlicesCB.setCurrentIndex(idx)
|
@@ -35,25 +35,26 @@ __license__ = "MIT"
|
|
35
35
|
__date__ = "25/02/2021"
|
36
36
|
|
37
37
|
|
38
|
+
import logging
|
38
39
|
import os
|
39
40
|
import weakref
|
40
|
-
import numpy
|
41
|
-
import logging
|
42
|
-
from typing import Union
|
43
41
|
from contextlib import AbstractContextManager
|
42
|
+
from typing import Union
|
43
|
+
|
44
|
+
import numpy
|
44
45
|
from matplotlib import image as _matplotlib_image
|
45
46
|
from silx.gui import qt
|
46
47
|
from silx.gui.plot import PlotWidget
|
47
|
-
|
48
|
+
|
49
|
+
from tomwer.core.process.reconstruction.scores.params import ScoreMethod
|
50
|
+
from tomwer.gui import icons, settings
|
48
51
|
from tomwer.gui.reconstruction.saaxis.dimensionwidget import DimensionWidget
|
49
|
-
from tomwer.gui.visualization.dataviewer import ImageStack
|
50
|
-
from tomwer.gui.utils.vignettes import VignettesQDialog
|
51
52
|
from tomwer.gui.utils.buttons import PadlockButton
|
52
|
-
from tomwer.gui import
|
53
|
-
from tomwer.gui import
|
54
|
-
from tomwer.io.utils.h5pyutils import DatasetReader
|
55
|
-
from tomwer.core.process.reconstruction.scores.params import ScoreMethod
|
53
|
+
from tomwer.gui.utils.vignettes import VignettesQDialog
|
54
|
+
from tomwer.gui.visualization.dataviewer import ImageStack
|
56
55
|
from tomwer.io.utils import get_default_directory
|
56
|
+
from tomwer.io.utils.h5pyutils import DatasetReader
|
57
|
+
from tomwer.io.utils.utils import get_slice_data
|
57
58
|
|
58
59
|
_logger = logging.getLogger(__name__)
|
59
60
|
|
@@ -147,7 +148,7 @@ class VariableSelection(qt.QWidget):
|
|
147
148
|
# TODO: this should be inherite by a cor plot (to display variable and absloute value)
|
148
149
|
# cor value
|
149
150
|
self._currentVarValue = qt.QGroupBox(self)
|
150
|
-
self._currentVarValue.setTitle("current {} value"
|
151
|
+
self._currentVarValue.setTitle(f"current {self._variable_name} value")
|
151
152
|
self._currentVarValue.setLayout(qt.QFormLayout())
|
152
153
|
self.layout().addWidget(self._currentVarValue, 0, 3, 3, 2)
|
153
154
|
|
@@ -156,7 +157,7 @@ class VariableSelection(qt.QWidget):
|
|
156
157
|
self.layout().addWidget(self._currentcorRB, 0, 5, 1, 1)
|
157
158
|
self._autofocusRB = qt.QRadioButton("autofocus", self)
|
158
159
|
self._autofocusRB.setToolTip(
|
159
|
-
"Take the {} with the best score"
|
160
|
+
f"Take the {self._variable_name} with the best score"
|
160
161
|
)
|
161
162
|
self.layout().addWidget(self._autofocusRB, 1, 5, 1, 1)
|
162
163
|
# lock autofocus button
|
@@ -211,13 +212,13 @@ class VariableSelection(qt.QWidget):
|
|
211
212
|
master_plot = self.parent().getPlotWidget()
|
212
213
|
colormap = master_plot.getColorBarWidget().getColormap()
|
213
214
|
dialog = VignettesQDialog(
|
214
|
-
value_name="{} position"
|
215
|
+
value_name=f"{self._variable_name} position",
|
215
216
|
score_name="score",
|
216
217
|
value_format="{:.3f}",
|
217
218
|
score_format="{:.3f}",
|
218
219
|
colormap=colormap,
|
219
220
|
)
|
220
|
-
dialog.setWindowTitle("{} - vignettes"
|
221
|
+
dialog.setWindowTitle(f"{self.getWindowTitle()} - vignettes")
|
221
222
|
|
222
223
|
# set scores
|
223
224
|
dialog.setScores(self._scores, score_method=self.getScoreMethod())
|
@@ -285,7 +286,7 @@ class SingleValueSelection(VariableSelection):
|
|
285
286
|
self._currentVarValue.layout().addRow("value:", self._valueLE)
|
286
287
|
|
287
288
|
def setValue(self, value):
|
288
|
-
self._valueLE.setText("{:.2f}"
|
289
|
+
self._valueLE.setText(f"{value:.2f}")
|
289
290
|
|
290
291
|
def getWindowTitle(self):
|
291
292
|
raise NotImplementedError("Base class")
|
@@ -325,12 +326,12 @@ class CorSelection(VariableSelection):
|
|
325
326
|
if relative_value is None:
|
326
327
|
self._relativeVarValueLE.clear()
|
327
328
|
else:
|
328
|
-
self._relativeVarValueLE.setText("{:.3f}"
|
329
|
+
self._relativeVarValueLE.setText(f"{relative_value:.3f}")
|
329
330
|
if relative_value is None or self._img_width is None:
|
330
331
|
self._absoluteVarValueLE.clear()
|
331
332
|
else:
|
332
333
|
absolute_value = relative_value + self._img_width / 2.0
|
333
|
-
self._absoluteVarValueLE.setText("{:.3f}"
|
334
|
+
self._absoluteVarValueLE.setText(f"{absolute_value:.3f}")
|
334
335
|
|
335
336
|
def getWindowTitle(self):
|
336
337
|
return "sa axis - vignettes"
|
@@ -439,7 +440,7 @@ class _VariableValueLabels(qt.QWidget):
|
|
439
440
|
for i_var in var_indexes:
|
440
441
|
var_value = self._var_values[i_var]
|
441
442
|
var_px_pos = var_px_positions[i_var]
|
442
|
-
txt_value = "{:.3f}"
|
443
|
+
txt_value = f"{var_value:.3f}"
|
443
444
|
# apply rotation to "invert" the painter rotation requested to
|
444
445
|
# paint oblique text
|
445
446
|
with PainterRotationCM(
|
@@ -27,22 +27,23 @@ __license__ = "MIT"
|
|
27
27
|
__date__ = "16/06/2021"
|
28
28
|
|
29
29
|
|
30
|
-
from tomwer.gui.reconstruction.axis import AxisWindow
|
31
|
-
from tomwer.gui.reconstruction.axis.radioaxis import _ManualFramesSelection
|
32
|
-
from tomwer.tests.utils import skip_gui_test
|
33
|
-
from tomwer.tests.utils import UtilsTest
|
34
|
-
from tomwer.core.process.reconstruction.axis.mode import AxisMode
|
35
|
-
from tomwer.core.scan.edfscan import EDFTomoScan
|
36
|
-
from tomwer.synctools.axis import QAxisRP
|
37
|
-
from silx.gui.utils.testutils import TestCaseQt
|
38
|
-
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
39
|
-
from silx.gui import qt
|
40
|
-
import numpy.random
|
41
|
-
import pytest
|
42
|
-
import tempfile
|
43
30
|
import os
|
44
31
|
import shutil
|
32
|
+
import tempfile
|
33
|
+
|
45
34
|
import h5py
|
35
|
+
import numpy.random
|
36
|
+
import pytest
|
37
|
+
from silx.gui import qt
|
38
|
+
from silx.gui.utils.testutils import TestCaseQt
|
39
|
+
|
40
|
+
from tomwer.core.process.reconstruction.axis.mode import AxisMode
|
41
|
+
from tomwer.core.scan.edfscan import EDFTomoScan
|
42
|
+
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
43
|
+
from tomwer.gui.reconstruction.axis import AxisWindow
|
44
|
+
from tomwer.gui.reconstruction.axis.radioaxis import _ManualFramesSelection
|
45
|
+
from tomwer.synctools.axis import QAxisRP
|
46
|
+
from tomwer.tests.utils import UtilsTest, skip_gui_test
|
46
47
|
|
47
48
|
|
48
49
|
@pytest.mark.skipif(skip_gui_test(), reason="skip gui test")
|
@@ -31,12 +31,13 @@ import os
|
|
31
31
|
import shutil
|
32
32
|
import tempfile
|
33
33
|
import unittest
|
34
|
+
|
34
35
|
import pytest
|
35
36
|
from silx.gui import qt
|
37
|
+
|
36
38
|
from tomwer.core import settings
|
37
39
|
from tomwer.gui.reconstruction.lamino.tofu import TofuWindow
|
38
|
-
from tomwer.tests.utils import UtilsTest
|
39
|
-
from tomwer.tests.utils import skip_gui_test
|
40
|
+
from tomwer.tests.utils import UtilsTest, skip_gui_test
|
40
41
|
|
41
42
|
|
42
43
|
@pytest.mark.skipif(skip_gui_test(), reason="skip gui test")
|
@@ -28,21 +28,23 @@ __date__ = "05/02/2020"
|
|
28
28
|
|
29
29
|
|
30
30
|
import os
|
31
|
+
|
32
|
+
import pytest
|
31
33
|
from silx.gui import qt
|
32
|
-
from
|
33
|
-
|
34
|
+
from silx.gui.utils.testutils import TestCaseQt
|
35
|
+
|
36
|
+
from tomwer.gui.reconstruction.nabu.nabuconfig.output import _NabuOutputConfig
|
37
|
+
from tomwer.gui.reconstruction.nabu.nabuconfig.phase import _NabuPhaseConfig
|
34
38
|
from tomwer.gui.reconstruction.nabu.nabuconfig.preprocessing import (
|
35
39
|
_NabuPreProcessingConfig,
|
36
40
|
_RingCorrectionMethod,
|
37
41
|
)
|
38
|
-
from tomwer.gui.reconstruction.nabu.nabuconfig.phase import _NabuPhaseConfig
|
39
42
|
from tomwer.gui.reconstruction.nabu.nabuconfig.reconstruction import (
|
40
43
|
_NabuReconstructionConfig,
|
41
44
|
)
|
42
|
-
from tomwer.gui.reconstruction.nabu.
|
45
|
+
from tomwer.gui.reconstruction.nabu.nabuflow import NabuFlowControl
|
43
46
|
from tomwer.gui.reconstruction.nabu.volume import NabuVolumeWidget
|
44
|
-
from
|
45
|
-
import pytest
|
47
|
+
from tomwer.tests.utils import skip_gui_test
|
46
48
|
|
47
49
|
|
48
50
|
class ProcessClass:
|
@@ -27,26 +27,28 @@ __license__ = "MIT"
|
|
27
27
|
__date__ = "03/02/2021"
|
28
28
|
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
import os
|
31
|
+
import shutil
|
32
|
+
import tempfile
|
33
|
+
|
34
|
+
import h5py
|
35
|
+
import numpy
|
36
|
+
import pytest
|
37
|
+
from silx.gui import qt
|
33
38
|
from silx.gui.utils.testutils import TestCaseQt
|
34
|
-
from
|
35
|
-
from
|
39
|
+
from silx.io.url import DataUrl
|
40
|
+
from tomoscan.unitsystem import metricsystem
|
41
|
+
|
36
42
|
from tomwer.core.process.reconstruction.saaxis.params import (
|
37
|
-
SAAxisParams,
|
38
43
|
ReconstructionMode,
|
44
|
+
SAAxisParams,
|
39
45
|
)
|
40
46
|
from tomwer.core.process.reconstruction.scores import ComputedScore
|
41
47
|
from tomwer.core.process.reconstruction.scores.params import ScoreMethod
|
42
|
-
from
|
43
|
-
from
|
44
|
-
import
|
45
|
-
import
|
46
|
-
import shutil
|
47
|
-
import tempfile
|
48
|
-
import os
|
49
|
-
import h5py
|
48
|
+
from tomwer.core.utils.scanutils import MockHDF5
|
49
|
+
from tomwer.gui.reconstruction.saaxis.dimensionwidget import DimensionWidget
|
50
|
+
from tomwer.gui.reconstruction.saaxis.saaxis import SAAxisWindow
|
51
|
+
from tomwer.tests.utils import skip_gui_test
|
50
52
|
|
51
53
|
|
52
54
|
@pytest.mark.skipif(skip_gui_test(), reason="skip gui test")
|
@@ -127,7 +129,7 @@ class TestSAAxisWindow(TestCaseQt):
|
|
127
129
|
self._cor_scores = {}
|
128
130
|
|
129
131
|
for i in range(self._N_OUTPUT_URLS):
|
130
|
-
output_file = os.path.join(self.folder, "recons_{}.h5"
|
132
|
+
output_file = os.path.join(self.folder, f"recons_{i}.h5")
|
131
133
|
with h5py.File(output_file, mode="a") as h5f:
|
132
134
|
h5f["data"] = numpy.random.random(100 * 100).reshape(100, 100)
|
133
135
|
url = DataUrl(file_path=output_file, data_path="data", scheme="silx")
|