tomwer 1.1.0rc7__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 +32 -38
- orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +26 -26
- 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/slurm.py +36 -0
- tomwer/core/process/reconstruction/nabu/utils.py +18 -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/laminoutils.py +80 -0
- 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/lineselection.py +76 -0
- 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 +3 -3
- tomwer/web/__init__.py +30 -0
- tomwer/web/client.py +43 -0
- tomwer/web/config.py +36 -0
- tomwer/web/test/__init__.py +0 -0
- tomwer/web/test/test_graylog_connection.py +59 -0
- {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/METADATA +2 -2
- {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/RECORD +361 -345
- {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/WHEEL +1 -1
- /tomwer-1.1.0rc7-py3.9-nspkg.pth → /tomwer-1.2.0a0-py3.8-nspkg.pth +0 -0
- {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/LICENSE +0 -0
- {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/entry_points.txt +0 -0
- {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/namespace_packages.txt +0 -0
- {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/top_level.txt +0 -0
@@ -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")
|
@@ -27,21 +27,23 @@ __license__ = "MIT"
|
|
27
27
|
__date__ = "09/06/2021"
|
28
28
|
|
29
29
|
|
30
|
-
|
31
|
-
from silx.gui.utils.testutils import TestCaseQt
|
32
|
-
from tomwer.core.utils.scanutils import MockHDF5
|
33
|
-
from tomwer.gui.reconstruction.sadeltabeta import SADeltaBetaWindow
|
34
|
-
from tomwer.core.process.reconstruction.sadeltabeta.params import SADeltaBetaParams
|
35
|
-
from tomwer.core.process.reconstruction.scores.params import ScoreMethod
|
36
|
-
from tomwer.core.process.reconstruction.scores import ComputedScore
|
37
|
-
from silx.io.url import DataUrl
|
38
|
-
from silx.gui import qt
|
39
|
-
import pytest
|
40
|
-
import numpy
|
30
|
+
import os
|
41
31
|
import shutil
|
42
32
|
import tempfile
|
43
|
-
|
33
|
+
|
44
34
|
import h5py
|
35
|
+
import numpy
|
36
|
+
import pytest
|
37
|
+
from silx.gui import qt
|
38
|
+
from silx.gui.utils.testutils import TestCaseQt
|
39
|
+
from silx.io.url import DataUrl
|
40
|
+
|
41
|
+
from tomwer.core.process.reconstruction.sadeltabeta.params import SADeltaBetaParams
|
42
|
+
from tomwer.core.process.reconstruction.scores import ComputedScore
|
43
|
+
from tomwer.core.process.reconstruction.scores.params import ScoreMethod
|
44
|
+
from tomwer.core.utils.scanutils import MockHDF5
|
45
|
+
from tomwer.gui.reconstruction.sadeltabeta import SADeltaBetaWindow
|
46
|
+
from tomwer.tests.utils import skip_gui_test
|
45
47
|
|
46
48
|
|
47
49
|
@pytest.mark.skipif(skip_gui_test(), reason="skip gui test")
|
@@ -58,7 +60,7 @@ class TestSADeltaBetaWindow(TestCaseQt):
|
|
58
60
|
self._cor_scores = {}
|
59
61
|
|
60
62
|
for i in range(self._N_OUTPUT_URLS):
|
61
|
-
output_file = os.path.join(self.folder, "recons_{}.h5"
|
63
|
+
output_file = os.path.join(self.folder, f"recons_{i}.h5")
|
62
64
|
with h5py.File(output_file, mode="a") as h5f:
|
63
65
|
h5f["data"] = numpy.random.random(100 * 100).reshape(100, 100)
|
64
66
|
url = DataUrl(file_path=output_file, data_path="data", scheme="silx")
|
@@ -30,16 +30,17 @@ __license__ = "MIT"
|
|
30
30
|
__date__ = "19/03/2018"
|
31
31
|
|
32
32
|
|
33
|
-
|
33
|
+
import logging
|
34
34
|
import weakref
|
35
|
-
from
|
36
|
-
|
37
|
-
from tomoscan.esrf.scan.utils import get_data
|
38
|
-
from silx.gui import qt
|
39
|
-
import silx.io.utils
|
35
|
+
from collections import OrderedDict
|
36
|
+
|
40
37
|
import silx.io.url
|
41
|
-
import
|
38
|
+
import silx.io.utils
|
39
|
+
from silx.gui import qt
|
40
|
+
from tomoscan.esrf.scan.utils import get_data
|
42
41
|
|
42
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
43
|
+
from tomwer.gui.samplemoved.selectiontable import AngleSelectionTable
|
43
44
|
from tomwer.gui.settings import Y_AXIS_DOWNWARD
|
44
45
|
|
45
46
|
_logger = logging.getLogger(__name__)
|
@@ -30,13 +30,15 @@ __license__ = "MIT"
|
|
30
30
|
__date__ = "17/08/2021"
|
31
31
|
|
32
32
|
|
33
|
+
import functools
|
34
|
+
import logging
|
33
35
|
import os
|
34
36
|
from collections import OrderedDict
|
35
|
-
|
37
|
+
|
36
38
|
from silx.gui import qt
|
37
39
|
from silx.io.url import DataUrl
|
40
|
+
|
38
41
|
from tomwer.gui.imagefromfile import FileWithImage
|
39
|
-
import logging
|
40
42
|
|
41
43
|
logger = logging.getLogger(__name__)
|
42
44
|
|
tomwer/gui/stackplot.py
CHANGED
@@ -28,24 +28,25 @@ __author__ = ["P. Paleo", "H. Payno"]
|
|
28
28
|
__license__ = "MIT"
|
29
29
|
__date__ = "24/05/2016"
|
30
30
|
|
31
|
+
import functools
|
32
|
+
import logging
|
33
|
+
import os
|
34
|
+
import time
|
35
|
+
from collections import OrderedDict, namedtuple
|
36
|
+
from typing import Iterable, Optional
|
37
|
+
|
38
|
+
import numpy
|
31
39
|
from silx.gui import qt
|
32
40
|
from silx.gui.plot import Plot2D
|
33
|
-
from . import utils
|
34
|
-
from tomwer.gui import settings
|
35
|
-
import numpy
|
36
|
-
import os
|
37
|
-
from collections import OrderedDict
|
38
|
-
import tomwer.resources
|
39
|
-
from .imagefromfile import ImageFromFile, FileWithImage, _Image
|
40
41
|
from silx.gui.plot.actions import PlotAction
|
41
42
|
from silx.gui.plot.actions.control import YAxisInvertedAction
|
42
43
|
from silx.io.url import DataUrl
|
43
|
-
|
44
|
-
|
45
|
-
import
|
46
|
-
|
47
|
-
from
|
48
|
-
from
|
44
|
+
|
45
|
+
import tomwer.resources
|
46
|
+
from tomwer.gui import icons, settings
|
47
|
+
|
48
|
+
from . import utils
|
49
|
+
from .imagefromfile import FileWithImage, ImageFromFile, _Image
|
49
50
|
|
50
51
|
logger = logging.getLogger(__name__)
|
51
52
|
|
tomwer/gui/stacks.py
CHANGED
@@ -30,17 +30,19 @@ __license__ = "MIT"
|
|
30
30
|
__date__ = "19/03/2018"
|
31
31
|
|
32
32
|
|
33
|
+
import logging
|
34
|
+
from collections import OrderedDict
|
33
35
|
from typing import Union
|
36
|
+
|
37
|
+
import h5py
|
34
38
|
from silx.gui import qt
|
35
|
-
from
|
36
|
-
from
|
37
|
-
|
39
|
+
from tomoscan.factory import Factory
|
40
|
+
from tomoscan.identifier import VolumeIdentifier
|
41
|
+
|
38
42
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
39
43
|
from tomwer.core.scan.scanfactory import ScanFactory
|
40
|
-
from
|
41
|
-
from
|
42
|
-
import logging
|
43
|
-
import h5py
|
44
|
+
from tomwer.gui.qfolderdialog import QDataDialog
|
45
|
+
from tomwer.gui.stackplot import _QImageFileStackPlot
|
44
46
|
|
45
47
|
_logger = logging.getLogger(__name__)
|
46
48
|
|
@@ -131,8 +133,8 @@ class _ImageStack(qt.QMainWindow):
|
|
131
133
|
for scan in all_images:
|
132
134
|
try:
|
133
135
|
oScanSlices = OrderedDict(sorted(all_images[scan].items()))
|
134
|
-
for
|
135
|
-
ordered_imgs.append(all_images[scan][
|
136
|
+
for scan_slice in oScanSlices:
|
137
|
+
ordered_imgs.append(all_images[scan][scan_slice])
|
136
138
|
except TypeError:
|
137
139
|
# in case algorithm could extract recons index
|
138
140
|
ordered_imgs = ordered_imgs + list(all_images[scan].values())
|
tomwer/gui/test/test_axis_gui.py
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
+
import pytest
|
2
|
+
from silx.gui.utils.testutils import TestCaseQt
|
3
|
+
|
1
4
|
from tomwer.gui.reconstruction.axis.radioaxis import AxisTabWidget
|
2
5
|
from tomwer.synctools.axis import QAxisRP
|
3
|
-
from silx.gui.utils.testutils import TestCaseQt
|
4
6
|
from tomwer.tests.utils import skip_gui_test
|
5
|
-
import pytest
|
6
7
|
|
7
8
|
|
8
9
|
@pytest.mark.skipif(skip_gui_test(), reason="skip gui test")
|
@@ -13,10 +14,10 @@ class TestGetNabuCorOpts(TestCaseQt):
|
|
13
14
|
"""
|
14
15
|
axis_params = QAxisRP()
|
15
16
|
widget = AxisTabWidget(recons_params=axis_params)
|
16
|
-
assert axis_params.get_nabu_cor_options_as_str() == "side='
|
17
|
+
assert axis_params.get_nabu_cor_options_as_str() == "side='right'"
|
17
18
|
widget._calculationWidget._corOpts.setText("low_pass=2")
|
18
19
|
widget._calculationWidget._corOpts.editingFinished.emit()
|
19
|
-
assert axis_params.get_nabu_cor_options_as_str() == "side='
|
20
|
+
assert axis_params.get_nabu_cor_options_as_str() == "side='right' ; low_pass=2"
|
20
21
|
widget._calculationWidget._corOpts.setText("low_pass=2 ; high_pass=10")
|
21
22
|
widget._calculationWidget._sideCB.setCurrentText("left")
|
22
23
|
widget._calculationWidget._corOpts.editingFinished.emit()
|
tomwer/gui/utils/__init__.py
CHANGED
@@ -31,9 +31,9 @@ __license__ = "MIT"
|
|
31
31
|
__date__ = "29/01/2020"
|
32
32
|
|
33
33
|
|
34
|
-
import subprocess
|
35
34
|
import logging
|
36
35
|
import os
|
36
|
+
import subprocess
|
37
37
|
|
38
38
|
_logger = logging.getLogger(__name__)
|
39
39
|
|
@@ -76,10 +76,10 @@ def open_url_with_image_j(url):
|
|
76
76
|
# for now we only manage the simple case of an edf file
|
77
77
|
try:
|
78
78
|
subprocess.call(["imagej", "-o", url.file_path()])
|
79
|
-
except Exception:
|
80
|
-
_logger.warning("Fail to open {}. Reason is {}"
|
79
|
+
except Exception as e:
|
80
|
+
_logger.warning(f"Fail to open {url}. Reason is {e}")
|
81
81
|
elif __image_j_from == "binary":
|
82
82
|
try:
|
83
83
|
subprocess.call([_IMAGE_J_BIN_PATH, url.file_path()])
|
84
|
-
except Exception:
|
85
|
-
_logger.warning("Fail to open {}. Reason is {}"
|
84
|
+
except Exception as e:
|
85
|
+
_logger.warning(f"Fail to open {url}. Reason is {e}")
|
tomwer/gui/utils/buttons.py
CHANGED
tomwer/gui/utils/completer.py
CHANGED
tomwer/gui/utils/flow.py
CHANGED
@@ -28,10 +28,12 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "04/03/2019"
|
29
29
|
|
30
30
|
|
31
|
+
import functools
|
32
|
+
from typing import Union
|
33
|
+
|
31
34
|
from silx.gui import qt
|
32
35
|
from silx.utils.enum import Enum as _Enum
|
33
|
-
|
34
|
-
import functools
|
36
|
+
|
35
37
|
from tomwer.gui import icons
|
36
38
|
from tomwer.utils import docstring
|
37
39
|
|
tomwer/gui/utils/inputwidget.py
CHANGED
@@ -26,17 +26,16 @@ __authors__ = ["H.Payno"]
|
|
26
26
|
__license__ = "MIT"
|
27
27
|
__date__ = "16/08/2018"
|
28
28
|
|
29
|
-
from silx.gui import qt
|
30
|
-
from tomwer.gui import icons
|
31
|
-
import numpy
|
32
29
|
import logging
|
33
|
-
|
34
|
-
from nxtomomill.io.config import (
|
35
|
-
TomoHDF5Config as HDF5Config,
|
36
|
-
TomoEDFConfig as EDFConfig,
|
37
|
-
)
|
38
|
-
from typing import Optional, Union
|
39
30
|
import os
|
31
|
+
from typing import Optional, Union
|
32
|
+
|
33
|
+
import numpy
|
34
|
+
from nxtomomill.io.config import TomoEDFConfig as EDFConfig
|
35
|
+
from nxtomomill.io.config import TomoHDF5Config as HDF5Config
|
36
|
+
from silx.gui import qt
|
37
|
+
|
38
|
+
from tomwer.gui import icons
|
40
39
|
from tomwer.gui.qlefilesystem import QLFileSystem
|
41
40
|
from tomwer.io.utils import get_default_directory
|
42
41
|
|
@@ -98,7 +97,7 @@ class SelectionLineEdit(qt.QWidget):
|
|
98
97
|
_from, _to, _step = self._qLineEdit.text().split(":")
|
99
98
|
_from, _to, _step = float(_from), float(_to), float(_step)
|
100
99
|
if _from > _to:
|
101
|
-
_logger.warning("to > from, invert
|
100
|
+
_logger.warning(f"to > from, invert {_from} and {_to}")
|
102
101
|
tmp = _to
|
103
102
|
_to = _from
|
104
103
|
_from = tmp
|
@@ -399,18 +398,13 @@ class _ConfigFileSelector(qt.QWidget):
|
|
399
398
|
try:
|
400
399
|
self._load_config_file(cfg_file)
|
401
400
|
except Exception as e:
|
402
|
-
mess =
|
403
|
-
"Fail to load nxtomomill configuration from {}. "
|
404
|
-
"Error is {}".format(cfg_file, e)
|
405
|
-
)
|
401
|
+
mess = f"Fail to load nxtomomill configuration from {cfg_file}. Error is {e}"
|
406
402
|
_logger.warning(mess)
|
407
403
|
qt.QMessageBox.warning(
|
408
404
|
self, "Unable to read configuration from file", mess
|
409
405
|
)
|
410
406
|
else:
|
411
|
-
_logger.info(
|
412
|
-
"Will use {} as input configuration file." "".format(cfg_file)
|
413
|
-
)
|
407
|
+
_logger.info(f"Will use {cfg_file} as input configuration file.")
|
414
408
|
self.sigConfigFileChanged.emit(cfg_file)
|
415
409
|
|
416
410
|
def getCFGFilePath(self):
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
# /*##########################################################################
|
3
|
+
#
|
4
|
+
# Copyright (c) 2016 European Synchrotron Radiation Facility
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
# of this software and associated documentation files (the "Software"), to deal
|
8
|
+
# in the Software without restriction, including without limitation the rights
|
9
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
+
# copies of the Software, and to permit persons to whom the Software is
|
11
|
+
# furnished to do so, subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in
|
14
|
+
# all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
+
# THE SOFTWARE.
|
23
|
+
#
|
24
|
+
# ###########################################################################*/
|
25
|
+
|
26
|
+
__authors__ = ["H. Payno"]
|
27
|
+
__license__ = "MIT"
|
28
|
+
__date__ = "25/09/2017"
|
29
|
+
|
30
|
+
import re
|
31
|
+
import numpy
|
32
|
+
|
33
|
+
SELECTION_PATTERN = re.compile(r"\d?[:]?\d?")
|
34
|
+
|
35
|
+
|
36
|
+
def selectionIsValid(selection):
|
37
|
+
"""
|
38
|
+
Return true if the given selection as a string is valid
|
39
|
+
|
40
|
+
:return: bool
|
41
|
+
"""
|
42
|
+
assert type(selection) is str
|
43
|
+
_selection = selection.replace(" ", "")
|
44
|
+
selections = _selection.split(";")
|
45
|
+
for sel in selections:
|
46
|
+
if not re.match(SELECTION_PATTERN, sel):
|
47
|
+
return False
|
48
|
+
return True
|
49
|
+
|
50
|
+
|
51
|
+
def getSelection(projections, selection):
|
52
|
+
"""
|
53
|
+
|
54
|
+
:param str selection:
|
55
|
+
:return numpy.ndarray:
|
56
|
+
"""
|
57
|
+
|
58
|
+
def evalSelection(projections, sel):
|
59
|
+
assert type(projections) is numpy.ndarray
|
60
|
+
return eval("projections[" + sel + "]")
|
61
|
+
|
62
|
+
assert type(selection) is str
|
63
|
+
if selection == "":
|
64
|
+
return projections
|
65
|
+
_selection = selection.replace(" ", "")
|
66
|
+
selections = _selection.split(";")
|
67
|
+
if len(selections) == 1:
|
68
|
+
return evalSelection(projections, selection)
|
69
|
+
else:
|
70
|
+
res = None
|
71
|
+
for iSel, sel in enumerate(range(len(selections))):
|
72
|
+
if iSel == 0:
|
73
|
+
res = evalSelection(projections, selections[iSel])
|
74
|
+
else:
|
75
|
+
res = numpy.append(res, evalSelection(projections, selections[iSel]))
|
76
|
+
return res
|
@@ -29,12 +29,13 @@ __license__ = "MIT"
|
|
29
29
|
__date__ = "15/09/2017"
|
30
30
|
|
31
31
|
import logging
|
32
|
-
from silx.gui import qt
|
33
|
-
from silx.gui.plot import PlotWidget
|
34
|
-
from typing import Union, Optional
|
35
|
-
from collections.abc import Iterable
|
36
32
|
from collections import OrderedDict
|
33
|
+
from collections.abc import Iterable
|
34
|
+
from typing import Optional, Union
|
35
|
+
|
37
36
|
import numpy
|
37
|
+
from silx.gui import qt
|
38
|
+
from silx.gui.plot import PlotWidget
|
38
39
|
|
39
40
|
logger = logging.getLogger(__name__)
|
40
41
|
|
@@ -76,10 +77,7 @@ class QSliceSelectorDialog(qt.QDialog):
|
|
76
77
|
"""
|
77
78
|
if self.nRequiredSlice() is not None and len(selection) > self.nRequiredSlice():
|
78
79
|
raise ValueError(
|
79
|
-
"you provide a selection of {} elements when "
|
80
|
-
"the user should select {}".format(
|
81
|
-
len(selection), self._n_required_slice
|
82
|
-
)
|
80
|
+
f"you provide a selection of {len(selection)} elements when the user should select {self._n_required_slice}"
|
83
81
|
)
|
84
82
|
if type(selection) is str:
|
85
83
|
selection = selection.replace("(", "")
|
tomwer/gui/utils/qt_utils.py
CHANGED
tomwer/gui/utils/splashscreen.py
CHANGED
tomwer/gui/utils/unitsystem.py
CHANGED
@@ -32,10 +32,12 @@ __license__ = "MIT"
|
|
32
32
|
__date__ = "21/09/2018"
|
33
33
|
|
34
34
|
|
35
|
+
import logging
|
36
|
+
|
35
37
|
from silx.gui import qt
|
36
38
|
from tomoscan.unitsystem import metricsystem
|
39
|
+
|
37
40
|
from tomwer.core.utils.char import MU_CHAR
|
38
|
-
import logging
|
39
41
|
|
40
42
|
_logger = logging.getLogger(__name__)
|
41
43
|
|
tomwer/gui/utils/vignettes.py
CHANGED
@@ -35,15 +35,15 @@ __license__ = "MIT"
|
|
35
35
|
__date__ = "26/02/2021"
|
36
36
|
|
37
37
|
|
38
|
+
import logging
|
39
|
+
from typing import Iterable, Union
|
40
|
+
|
41
|
+
import numpy
|
38
42
|
from silx.gui import qt
|
39
|
-
from silx.io.url import DataUrl
|
40
43
|
from silx.gui.plot import PlotWindow
|
41
|
-
from typing import Union
|
42
|
-
from typing import Iterable
|
43
|
-
from tomoscan.esrf.scan.utils import get_data
|
44
44
|
from silx.gui.plot.utils.axis import SyncAxes
|
45
|
-
import
|
46
|
-
import
|
45
|
+
from silx.io.url import DataUrl
|
46
|
+
from tomoscan.esrf.scan.utils import get_data
|
47
47
|
|
48
48
|
from tomwer.core.process.reconstruction.scores.scores import ComputedScore
|
49
49
|
|
@@ -380,13 +380,13 @@ class ValueLabel(qt.QWidget):
|
|
380
380
|
str_value = value_format.format(value)
|
381
381
|
else:
|
382
382
|
str_value = str(value)
|
383
|
-
txt = "{}: {}"
|
383
|
+
txt = f"{value_name}: {str_value}"
|
384
384
|
self._valueLabel = qt.QLabel(txt, self)
|
385
385
|
self.layout().addWidget(self._valueLabel)
|
386
386
|
if score_format is not None:
|
387
387
|
str_score = score_format.format(score)
|
388
388
|
else:
|
389
389
|
str_score = str(score)
|
390
|
-
txt = "({}: {})"
|
390
|
+
txt = f"({score_name}: {str_score})"
|
391
391
|
self._scoreLabel = qt.QLabel(txt, self)
|
392
392
|
self.layout().addWidget(self._scoreLabel)
|
tomwer/gui/utils/waiterthread.py
CHANGED