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
@@ -32,48 +32,52 @@ __license__ = "MIT"
|
|
32
32
|
__date__ = "10/02/2021"
|
33
33
|
|
34
34
|
|
35
|
-
import os
|
36
35
|
import copy
|
37
|
-
import h5py
|
38
|
-
import numpy
|
39
36
|
import logging
|
37
|
+
import os
|
40
38
|
from typing import Iterable, Optional
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
from processview.core.superviseprocess import SuperviseProcess
|
39
|
+
|
40
|
+
import h5py
|
41
|
+
import numpy
|
45
42
|
from nabu.pipeline.config import get_default_nabu_config
|
46
43
|
from nabu.pipeline.fullfield.nabu_config import (
|
47
44
|
nabu_config as nabu_fullfield_default_config,
|
48
45
|
)
|
49
|
-
from
|
50
|
-
from
|
46
|
+
from processview.core.manager import DatasetState, ProcessManager
|
47
|
+
from processview.core.superviseprocess import SuperviseProcess
|
48
|
+
from silx.io.url import DataUrl
|
49
|
+
from tomoscan.io import HDF5File
|
50
|
+
|
51
|
+
import tomwer.version
|
52
|
+
from tomwer.core.process.reconstruction.axis import AxisRP
|
53
|
+
from tomwer.core.process.reconstruction.nabu.nabuscores import (
|
54
|
+
run_nabu_one_slice_several_config,
|
55
|
+
)
|
51
56
|
from tomwer.core.process.reconstruction.nabu.nabuslices import (
|
52
57
|
SingleSliceRunner,
|
53
58
|
interpret_tomwer_configuration,
|
54
59
|
)
|
55
|
-
from tomwer.core.
|
56
|
-
|
57
|
-
|
58
|
-
|
60
|
+
from tomwer.core.process.reconstruction.scores import (
|
61
|
+
ComputedScore,
|
62
|
+
apply_roi,
|
63
|
+
compute_score,
|
64
|
+
get_disk_mask_radius,
|
65
|
+
)
|
59
66
|
from tomwer.core.process.reconstruction.scores.params import ScoreMethod
|
60
|
-
from .params import ReconstructionMode
|
61
|
-
from .params import SAAxisParams
|
62
|
-
from tomwer.core.scan.scanbase import TomwerScanBase
|
63
|
-
from tomwer.core.utils import logconfig
|
64
67
|
from tomwer.core.process.task import Task
|
65
|
-
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
66
|
-
import tomwer.version
|
67
68
|
from tomwer.core.progress import Progress
|
68
|
-
from tomwer.core.
|
69
|
-
from tomwer.core.
|
70
|
-
from tomwer.core.
|
71
|
-
from tomwer.core.
|
72
|
-
from tomwer.core.
|
73
|
-
run_nabu_one_slice_several_config,
|
74
|
-
)
|
69
|
+
from tomwer.core.scan.edfscan import EDFTomoScan
|
70
|
+
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
71
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
72
|
+
from tomwer.core.scan.scanfactory import ScanFactory
|
73
|
+
from tomwer.core.utils import logconfig
|
75
74
|
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
75
|
+
from tomwer.core.utils.slurm import is_slurm_available
|
76
|
+
from tomwer.core.volume.volumefactory import VolumeFactory
|
77
|
+
from tomwer.io.utils.utils import get_slice_data
|
76
78
|
|
79
|
+
from ..nabu import utils
|
80
|
+
from .params import ReconstructionMode, SAAxisParams
|
77
81
|
|
78
82
|
_logger = logging.getLogger(__name__)
|
79
83
|
|
@@ -116,18 +120,16 @@ def one_slice_several_cor(
|
|
116
120
|
nabu_output_config = nabu_config.get("output", {})
|
117
121
|
file_format = nabu_output_config.get("file_format", "hdf5")
|
118
122
|
cluster_config = configuration.cluster_config
|
119
|
-
_logger.info(
|
120
|
-
"launch reconstruction of slice {} and cors {}".format(slice_index, cors)
|
121
|
-
)
|
123
|
+
_logger.info(f"launch reconstruction of slice {slice_index} and cors {cors}")
|
122
124
|
if mode is ReconstructionMode.VERTICAL:
|
123
125
|
if isinstance(slice_index, str):
|
124
126
|
if not slice_index == "middle":
|
125
|
-
raise ValueError("slice index {} not recognized"
|
127
|
+
raise ValueError(f"slice index {slice_index} not recognized")
|
126
128
|
elif not len(slice_index) == 1:
|
127
|
-
raise ValueError("{} mode only manage one slice"
|
129
|
+
raise ValueError(f"{mode.value} mode only manage one slice")
|
128
130
|
else:
|
129
131
|
slice_index = list(slice_index.values())[0]
|
130
|
-
advancement = Progress("saaxis - slice {} of {}"
|
132
|
+
advancement = Progress(f"saaxis - slice {slice_index} of {scan}")
|
131
133
|
|
132
134
|
_, cor_reconstructions, outs, errs, future_tomo_objs = run_slice_reconstruction(
|
133
135
|
scan=scan,
|
@@ -142,7 +144,7 @@ def one_slice_several_cor(
|
|
142
144
|
process_id=process_id,
|
143
145
|
)
|
144
146
|
else:
|
145
|
-
raise ValueError("{} is not handled for now"
|
147
|
+
raise ValueError(f"{mode} is not handled for now")
|
146
148
|
|
147
149
|
# treat future
|
148
150
|
if output_dir is None:
|
@@ -173,7 +175,7 @@ def one_slice_several_cor(
|
|
173
175
|
db=db,
|
174
176
|
ctf=ctf,
|
175
177
|
)
|
176
|
-
file_prefix = "cor_{}_{}"
|
178
|
+
file_prefix = f"cor_{_file_name}_{cor}"
|
177
179
|
|
178
180
|
recons_vol_id = utils.get_recons_volume_identifier(
|
179
181
|
scan=scan,
|
@@ -280,8 +282,7 @@ def one_slice_several_cor(
|
|
280
282
|
data = get_slice_data(url=url)
|
281
283
|
except Exception as e:
|
282
284
|
_logger.error(
|
283
|
-
"Fail to compute a score for {}. Reason is {}"
|
284
|
-
"".format(url.path(), str(e))
|
285
|
+
f"Fail to compute a score for {url.path()}. Reason is {e}"
|
285
286
|
)
|
286
287
|
datasets_[cor] = (url, None)
|
287
288
|
else:
|
@@ -292,14 +293,12 @@ def one_slice_several_cor(
|
|
292
293
|
data = data.reshape(data.shape[0], data.shape[1])
|
293
294
|
else:
|
294
295
|
raise ValueError(
|
295
|
-
"Data is expected to be 2D. Not {
|
296
|
+
f"Data is expected to be 2D. Not {data.ndim}D"
|
296
297
|
)
|
297
298
|
elif data.ndim == 2:
|
298
299
|
pass
|
299
300
|
else:
|
300
|
-
raise ValueError(
|
301
|
-
"Data is expected to be 2D. Not {}".format(data.ndim)
|
302
|
-
)
|
301
|
+
raise ValueError("Data is expected to be 2D. Not {data.ndim}D")
|
303
302
|
|
304
303
|
datasets_[cor] = (url, data)
|
305
304
|
return datasets_
|
@@ -506,9 +505,7 @@ class SAAxisProcess(
|
|
506
505
|
elif isinstance(scan, dict):
|
507
506
|
scan = ScanFactory.create_scan_object_frm_dict(scan)
|
508
507
|
else:
|
509
|
-
raise ValueError(
|
510
|
-
"input type of {}: {} is not managed" "".format(scan, type(scan))
|
511
|
-
)
|
508
|
+
raise ValueError(f"input type of {scan}: {type(scan)} is not managed")
|
512
509
|
# TODO: look and update if there is some nabu reconstruction
|
513
510
|
# or axis information to be used back
|
514
511
|
configuration = self.get_configuration()
|
@@ -527,17 +524,13 @@ class SAAxisProcess(
|
|
527
524
|
):
|
528
525
|
params.estimated_cor = relative_cor
|
529
526
|
_logger.info(
|
530
|
-
"{}: set estimated cor from previously computed cor ({})"
|
531
|
-
str(scan), params.estimated_cor
|
532
|
-
)
|
527
|
+
f"{scan}: set estimated cor from previously computed cor ({params.estimated_cor})"
|
533
528
|
)
|
534
529
|
# from scan.estimated_cor_position
|
535
530
|
if params.estimated_cor is None and scan.estimated_cor_frm_motor is not None:
|
536
531
|
params.estimated_cor = scan.estimated_cor_frm_motor
|
537
532
|
_logger.info(
|
538
|
-
"{}: set estimated cor from motor position ({})"
|
539
|
-
str(scan), params.estimated_cor
|
540
|
-
)
|
533
|
+
f"{scan}: set estimated cor from motor position ({params.estimated_cor})"
|
541
534
|
)
|
542
535
|
if scan.dim_1 is not None:
|
543
536
|
params.image_width = scan.dim_1
|
@@ -575,17 +568,13 @@ class SAAxisProcess(
|
|
575
568
|
slice_index = self.get_configuration().get("slice_index", None)
|
576
569
|
|
577
570
|
if cors_res is None:
|
578
|
-
info = "fail to compute cor scores of slice {} for scan {}."
|
579
|
-
slice_index, scan
|
580
|
-
)
|
571
|
+
info = f"fail to compute cor scores of slice {slice_index} for scan {scan}."
|
581
572
|
_logger.processFailed(info, extra=extra)
|
582
573
|
ProcessManager().notify_dataset_state(
|
583
574
|
dataset=scan, process=self, state=DatasetState.FAILED, details=info
|
584
575
|
)
|
585
576
|
else:
|
586
|
-
info = "cor scores of slice {} for scan {} computed."
|
587
|
-
slice_index, scan
|
588
|
-
)
|
577
|
+
info = f"cor scores of slice {slice_index} for scan {scan} computed."
|
589
578
|
_logger.processSucceed(info, extra=extra)
|
590
579
|
ProcessManager().notify_dataset_state(
|
591
580
|
dataset=scan,
|
@@ -28,10 +28,11 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "04/05/2021"
|
29
29
|
|
30
30
|
|
31
|
-
from tomwer.core.process.reconstruction.scores.params import SABaseParams
|
32
|
-
from tomwer.core.process.reconstruction.nabu.utils import retrieve_lst_of_value_from_str
|
33
31
|
import typing
|
34
32
|
|
33
|
+
from tomwer.core.process.reconstruction.nabu.utils import retrieve_lst_of_value_from_str
|
34
|
+
from tomwer.core.process.reconstruction.scores.params import SABaseParams
|
35
|
+
|
35
36
|
|
36
37
|
class SADeltaBetaParams(SABaseParams):
|
37
38
|
"""Parameters for the semi-automatic axis calculation"""
|
@@ -62,20 +63,18 @@ class SADeltaBetaParams(SABaseParams):
|
|
62
63
|
return self._selected_db
|
63
64
|
|
64
65
|
def to_dict(self) -> dict:
|
65
|
-
|
66
|
-
|
66
|
+
my_dict = super().to_dict()
|
67
|
+
my_dict.update(
|
67
68
|
{
|
68
69
|
"delta_beta_values": self.delta_beta_values,
|
69
70
|
"selected_db_value": self.selected_delta_beta_value,
|
70
71
|
}
|
71
72
|
)
|
72
|
-
return
|
73
|
+
return my_dict
|
73
74
|
|
74
75
|
def load_from_dict(self, dict_: dict):
|
75
76
|
if not isinstance(dict_, dict):
|
76
|
-
raise TypeError(
|
77
|
-
"dict_ should be an instance of dict not {}".format(type(dict_))
|
78
|
-
)
|
77
|
+
raise TypeError(f"dict_ should be an instance of dict not {type(dict_)}")
|
79
78
|
super().load_from_dict(dict_)
|
80
79
|
if "delta_beta_values" in dict_:
|
81
80
|
self.delta_beta_values = dict_["delta_beta_values"]
|
@@ -99,12 +98,9 @@ class SADeltaBetaParams(SABaseParams):
|
|
99
98
|
if self.slice_indexes is None:
|
100
99
|
missing_information.append("slice index not provided")
|
101
100
|
if len(missing_information) > 0:
|
101
|
+
missing_information_str = " ; ".join(missing_information)
|
102
102
|
raise ValueError(
|
103
|
-
|
104
|
-
"Some informations are missing: {}".format(
|
105
|
-
" ; ".join(missing_information)
|
106
|
-
)
|
107
|
-
)
|
103
|
+
f"Some informations are missing: {missing_information_str}"
|
108
104
|
)
|
109
105
|
|
110
106
|
def __str__(self):
|
@@ -32,45 +32,51 @@ __license__ = "MIT"
|
|
32
32
|
__date__ = "28/10/2021"
|
33
33
|
|
34
34
|
|
35
|
-
import os
|
36
35
|
import logging
|
37
|
-
import
|
38
|
-
import numpy
|
36
|
+
import os
|
39
37
|
from copy import copy
|
40
38
|
from typing import Optional, Union
|
39
|
+
|
40
|
+
import h5py
|
41
|
+
import numpy
|
41
42
|
from nabu.pipeline.config import get_default_nabu_config
|
42
43
|
from nabu.pipeline.fullfield.nabu_config import (
|
43
44
|
nabu_config as nabu_fullfield_default_config,
|
44
45
|
)
|
45
|
-
from processview.core.manager import
|
46
|
+
from processview.core.manager import DatasetState, ProcessManager
|
46
47
|
from processview.core.superviseprocess import SuperviseProcess
|
48
|
+
from tomoscan.esrf.scan.utils import get_data
|
49
|
+
from tomoscan.io import HDF5File
|
50
|
+
|
51
|
+
import tomwer.version
|
47
52
|
from tomwer.core.process.reconstruction.nabu.nabucommon import (
|
48
|
-
ResultSlurmRun,
|
49
53
|
ResultsLocalRun,
|
54
|
+
ResultSlurmRun,
|
55
|
+
ResultsRun,
|
50
56
|
ResultsWithStd,
|
51
57
|
)
|
52
|
-
from tomwer.core.scan.scanfactory import ScanFactory
|
53
|
-
from .params import SADeltaBetaParams
|
54
|
-
from tomwer.core.scan.scanbase import TomwerScanBase
|
55
|
-
from tomwer.core.utils import logconfig
|
56
|
-
from tomwer.core.process.task import Task
|
57
|
-
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
58
|
-
from tomoscan.io import HDF5File
|
59
|
-
from tomoscan.esrf.scan.utils import get_data
|
60
|
-
import tomwer.version
|
61
58
|
from tomwer.core.process.reconstruction.nabu.nabuslices import (
|
59
|
+
SingleSliceRunner,
|
62
60
|
run_single_slice_reconstruction,
|
63
61
|
)
|
64
|
-
from tomwer.core.process.reconstruction.
|
62
|
+
from tomwer.core.process.reconstruction.scores import (
|
63
|
+
ComputedScore,
|
64
|
+
ScoreMethod,
|
65
|
+
apply_roi,
|
66
|
+
compute_score,
|
67
|
+
get_disk_mask_radius,
|
68
|
+
)
|
69
|
+
from tomwer.core.process.task import Task
|
65
70
|
from tomwer.core.progress import Progress
|
66
|
-
from
|
67
|
-
from tomwer.core.
|
68
|
-
from tomwer.core.
|
69
|
-
from tomwer.core.
|
70
|
-
from tomwer.core.process.reconstruction.scores import get_disk_mask_radius, apply_roi
|
71
|
-
from tomwer.core.process.reconstruction.nabu.nabuslices import SingleSliceRunner
|
72
|
-
from tomwer.core.volume.volumefactory import VolumeFactory
|
71
|
+
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
72
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
73
|
+
from tomwer.core.scan.scanfactory import ScanFactory
|
74
|
+
from tomwer.core.utils import logconfig
|
73
75
|
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
76
|
+
from tomwer.core.volume.volumefactory import VolumeFactory
|
77
|
+
|
78
|
+
from ..nabu import utils as nabu_utils
|
79
|
+
from .params import SADeltaBetaParams
|
74
80
|
|
75
81
|
_logger = logging.getLogger(__name__)
|
76
82
|
|
@@ -113,22 +119,20 @@ def one_slice_several_db(
|
|
113
119
|
dry_run = configuration.dry_run
|
114
120
|
cluster_config = configuration.cluster_config
|
115
121
|
_logger.info(
|
116
|
-
"launch reconstruction of slice {} and delta / beta: {}"
|
117
|
-
slice_index, delta_beta_s
|
118
|
-
)
|
122
|
+
f"launch reconstruction of slice {slice_index} and delta / beta: {delta_beta_s}"
|
119
123
|
)
|
120
124
|
if isinstance(slice_index, str):
|
121
125
|
if not slice_index == "middle":
|
122
|
-
raise ValueError("slice index {} not recognized"
|
126
|
+
raise ValueError(f"slice index {slice_index} not recognized")
|
123
127
|
elif not len(slice_index) == 1:
|
124
128
|
raise ValueError("only manage one slice")
|
125
129
|
else:
|
126
130
|
slice_index = list(slice_index.values())[0]
|
127
|
-
advancement = Progress("sa-delta-beta - slice {} of {}"
|
131
|
+
advancement = Progress(f"sa-delta-beta - slice {slice_index} of {scan}")
|
128
132
|
|
129
133
|
config = configuration.nabu_params.copy()
|
130
134
|
|
131
|
-
_logger.info("start reconstruction of {}"
|
135
|
+
_logger.info(f"start reconstruction of {scan}")
|
132
136
|
# if scan contains some center of position copy it to nabu
|
133
137
|
if scan.axis_params is not None and scan.axis_params.relative_cor_value is not None:
|
134
138
|
if "reconstruction" in config:
|
@@ -136,7 +140,7 @@ def one_slice_several_db(
|
|
136
140
|
cor_nabu_ref = scan.axis_params.relative_cor_value + scan.dim_1 / 2.0
|
137
141
|
config["reconstruction"]["rotation_axis_position"] = str(cor_nabu_ref)
|
138
142
|
|
139
|
-
_logger.info("set nabu reconstruction parameters to {}"
|
143
|
+
_logger.info(f"set nabu reconstruction parameters to {scan}")
|
140
144
|
scan.nabu_recons_params = config
|
141
145
|
|
142
146
|
db_reconstructions = {}
|
@@ -285,8 +289,7 @@ def one_slice_several_db(
|
|
285
289
|
data = get_data(slice_url)
|
286
290
|
except Exception as e:
|
287
291
|
_logger.error(
|
288
|
-
"Fail to compute a score for {}. Reason is {}"
|
289
|
-
"".format(volume_identifier, str(e))
|
292
|
+
f"Fail to compute a score for {volume_identifier}. Reason is {e}"
|
290
293
|
)
|
291
294
|
datasets_[db] = (slice_url, None)
|
292
295
|
else:
|
@@ -297,14 +300,12 @@ def one_slice_several_db(
|
|
297
300
|
data = data.reshape(data.shape[0], data.shape[1])
|
298
301
|
else:
|
299
302
|
raise ValueError(
|
300
|
-
"Data is expected to be 2D. Not {
|
303
|
+
f"Data is expected to be 2D. Not {data.ndim}D"
|
301
304
|
)
|
302
305
|
elif data.ndim == 2:
|
303
306
|
pass
|
304
307
|
else:
|
305
|
-
raise ValueError(
|
306
|
-
"Data is expected to be 2D. Not {}".format(data.ndim)
|
307
|
-
)
|
308
|
+
raise ValueError(f"Data is expected to be 2D. Not {data.ndim}D")
|
308
309
|
|
309
310
|
datasets_[db] = (slice_url, data)
|
310
311
|
return datasets_
|
@@ -411,9 +412,7 @@ class SADeltaBetaProcess(
|
|
411
412
|
elif isinstance(scan, dict):
|
412
413
|
scan = ScanFactory.create_scan_object_frm_dict(scan)
|
413
414
|
else:
|
414
|
-
raise ValueError(
|
415
|
-
"input type of {}: {} is not managed" "".format(scan, type(scan))
|
416
|
-
)
|
415
|
+
raise ValueError(f"input type of {scan}: {type(scan)} is not managed")
|
417
416
|
# insure scan contains some parameter regarding sa delta / beta
|
418
417
|
if scan.sa_delta_beta_params is None:
|
419
418
|
scan.sa_delta_beta_params = SADeltaBetaParams()
|
@@ -458,18 +457,13 @@ class SADeltaBetaProcess(
|
|
458
457
|
slice_index = self.get_configuration().get("slice_index", None)
|
459
458
|
|
460
459
|
if db_res is None:
|
461
|
-
info =
|
462
|
-
"fail to compute delta/beta scores of slice {} for scan {}."
|
463
|
-
"".format(slice_index, scan)
|
464
|
-
)
|
460
|
+
info = f"fail to compute delta/beta scores of slice {slice_index} for scan {scan}."
|
465
461
|
_logger.processFailed(info, extra=extra)
|
466
462
|
ProcessManager().notify_dataset_state(
|
467
463
|
dataset=scan, process=self, state=DatasetState.FAILED, details=info
|
468
464
|
)
|
469
465
|
else:
|
470
|
-
info = "delta/beta scores of slice {} for scan {} computed."
|
471
|
-
slice_index, scan
|
472
|
-
)
|
466
|
+
info = f"delta/beta scores of slice {slice_index} for scan {scan} computed."
|
473
467
|
_logger.processSucceed(info, extra=extra)
|
474
468
|
ProcessManager().notify_dataset_state(
|
475
469
|
dataset=scan,
|
@@ -496,7 +490,7 @@ class SADeltaBetaProcess(
|
|
496
490
|
if not isinstance(score_rois, dict):
|
497
491
|
raise TypeError("score_rois is expected to be a dict")
|
498
492
|
process_file = scan.process_file
|
499
|
-
process_name = "tomwer_process_"
|
493
|
+
process_name = f"tomwer_process_{process_index}"
|
500
494
|
|
501
495
|
if scan.saaxis_params.scores in (None, {}):
|
502
496
|
return
|
@@ -1,6 +1,6 @@
|
|
1
|
-
from .scores import ScoreMethod # noqa F401
|
2
1
|
from .params import SABaseParams # noqa F401
|
3
|
-
from .scores import compute_score # noqa F401
|
4
2
|
from .scores import ComputedScore # noqa F401
|
3
|
+
from .scores import ScoreMethod # noqa F401
|
5
4
|
from .scores import apply_roi # noqa F401
|
5
|
+
from .scores import compute_score # noqa F401
|
6
6
|
from .scores import get_disk_mask_radius # noqa F401
|
@@ -28,10 +28,11 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "04/05/2021"
|
29
29
|
|
30
30
|
|
31
|
-
from tomwer.core.cluster.cluster import SlurmClusterConfiguration
|
32
|
-
from tomwer.core.process.reconstruction.scores import ScoreMethod
|
33
31
|
from typing import Optional, Union
|
34
32
|
|
33
|
+
from tomwer.core.cluster.cluster import SlurmClusterConfiguration
|
34
|
+
from tomwer.core.process.reconstruction.scores.scores import ScoreMethod
|
35
|
+
|
35
36
|
|
36
37
|
class SABaseParams:
|
37
38
|
"""Parameters for the semi-automatic axis calculation"""
|
@@ -79,8 +80,7 @@ class SABaseParams:
|
|
79
80
|
raise ValueError("the only valid indexes values is 'middle'")
|
80
81
|
elif not isinstance(indexes, (type(None), dict)):
|
81
82
|
raise TypeError(
|
82
|
-
"index should be an instance of int or None and "
|
83
|
-
"not {}".format(type(indexes))
|
83
|
+
f"index should be an instance of int or None and not {type(indexes)}"
|
84
84
|
)
|
85
85
|
self._slice_indexes = indexes
|
86
86
|
|
@@ -91,9 +91,7 @@ class SABaseParams:
|
|
91
91
|
@nabu_params.setter
|
92
92
|
def nabu_params(self, params: dict):
|
93
93
|
if not isinstance(params, dict):
|
94
|
-
raise TypeError(
|
95
|
-
"params should be a dictionary and not {}" "".format(type(params))
|
96
|
-
)
|
94
|
+
raise TypeError(f"params should be a dictionary and not {type(params)}")
|
97
95
|
self._nabu_params = params
|
98
96
|
|
99
97
|
@property
|
@@ -144,8 +142,7 @@ class SABaseParams:
|
|
144
142
|
raise TypeError("format should be a str")
|
145
143
|
if format_ not in self._VALID_FILE_FORMAT:
|
146
144
|
raise ValueError(
|
147
|
-
"requested format ({}) is invalid. valid ones "
|
148
|
-
"are {}".format(format_, self._VALID_FILE_FORMAT)
|
145
|
+
f"requested format ({format_}) is invalid. valid ones are {self._VALID_FILE_FORMAT}"
|
149
146
|
)
|
150
147
|
self._file_format = format_
|
151
148
|
|
@@ -28,12 +28,13 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "18/02/2021"
|
29
29
|
|
30
30
|
|
31
|
-
from silx.utils.enum import Enum as _Enum
|
32
|
-
import numpy
|
33
|
-
import sys
|
34
31
|
import logging
|
32
|
+
import sys
|
35
33
|
from typing import Union
|
36
34
|
|
35
|
+
import numpy
|
36
|
+
from silx.utils.enum import Enum as _Enum
|
37
|
+
|
37
38
|
_logger = logging.getLogger(__name__)
|
38
39
|
|
39
40
|
|
@@ -76,7 +77,7 @@ class ComputedScore:
|
|
76
77
|
elif method is ScoreMethod.TOMO_CONSISTENCY:
|
77
78
|
return self.tomo_consistency
|
78
79
|
else:
|
79
|
-
raise ValueError("{} is an unrecognized method"
|
80
|
+
raise ValueError(f"{method} is an unrecognized method")
|
80
81
|
|
81
82
|
|
82
83
|
def compute_tomo_consistency(
|
@@ -160,11 +161,11 @@ def compute_score(
|
|
160
161
|
elif data.shape[2] == 1:
|
161
162
|
data = data.reshape(data.shape[0], data.shape[1])
|
162
163
|
else:
|
163
|
-
raise ValueError("Data is expected to be 2D. Not {
|
164
|
+
raise ValueError(f"Data is expected to be 2D. Not {data.ndim}D")
|
164
165
|
elif data.ndim == 2:
|
165
166
|
pass
|
166
167
|
else:
|
167
|
-
raise ValueError("Data is expected to be 2D. Not {
|
168
|
+
raise ValueError(f"Data is expected to be 2D. Not {data.ndim}D")
|
168
169
|
if method is ScoreMethod.TOMO_CONSISTENCY:
|
169
170
|
try:
|
170
171
|
return compute_tomo_consistency(
|
@@ -177,9 +178,7 @@ def compute_score(
|
|
177
178
|
except ImportError:
|
178
179
|
return None
|
179
180
|
except Exception as e:
|
180
|
-
_logger.warning(
|
181
|
-
"Fail to compute 'tomo consistency' score. " "Reason is {}".format(e)
|
182
|
-
)
|
181
|
+
_logger.warning(f"Fail to compute 'tomo consistency' score. Reason is {e}")
|
183
182
|
return None
|
184
183
|
else:
|
185
184
|
fct = _METHOD_TO_FCT.get(method, None)
|
@@ -187,7 +186,7 @@ def compute_score(
|
|
187
186
|
if fct is not None:
|
188
187
|
return fct(data)
|
189
188
|
else:
|
190
|
-
raise ValueError("{} is not handled"
|
189
|
+
raise ValueError(f"{method} is not handled")
|
191
190
|
|
192
191
|
|
193
192
|
def get_disk_mask_radius(datasets_) -> int:
|
@@ -214,7 +213,5 @@ def apply_roi(data, radius, url) -> numpy.array:
|
|
214
213
|
try:
|
215
214
|
return data[min_y:max_y, min_x:max_x]
|
216
215
|
except Exception:
|
217
|
-
_logger.error(
|
218
|
-
"Fail to apply roi for {}. Take the entire dataset".format(url.path())
|
219
|
-
)
|
216
|
+
_logger.error(f"Fail to apply roi for {url.path()}. Take the entire dataset")
|
220
217
|
return data
|
@@ -1,11 +1,13 @@
|
|
1
1
|
import os
|
2
|
+
|
3
|
+
import numpy
|
2
4
|
import pytest
|
5
|
+
|
3
6
|
from tomwer.core.process.reconstruction.axis.params import (
|
4
|
-
AxisResource,
|
5
7
|
AxisCalculationInput,
|
8
|
+
AxisResource,
|
6
9
|
)
|
7
10
|
from tomwer.core.utils.scanutils import MockHDF5
|
8
|
-
import numpy
|
9
11
|
|
10
12
|
|
11
13
|
def test_axis_resource(tmp_path):
|
@@ -28,11 +28,10 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "24/11/2021"
|
29
29
|
|
30
30
|
|
31
|
-
from tomwer.core.utils.scanutils import MockEDF
|
32
|
-
from tomwer.core.utils.scanutils import MockHDF5
|
33
31
|
from tomwer.core.process.reconstruction.darkref.darkrefs import (
|
34
32
|
requires_reduced_dark_and_flat,
|
35
33
|
)
|
34
|
+
from tomwer.core.utils.scanutils import MockEDF, MockHDF5
|
36
35
|
|
37
36
|
|
38
37
|
def test_quick_run_necessary_edf(tmpdir):
|
@@ -1,7 +1,9 @@
|
|
1
1
|
import os
|
2
|
+
|
2
3
|
import numpy
|
3
4
|
import pytest
|
4
5
|
from silx.io.dictdump import dicttoh5
|
6
|
+
|
5
7
|
from tomwer.core.process.reconstruction.darkref.darkrefscopy import DarkRefsCopy
|
6
8
|
from tomwer.core.utils.scanutils import MockHDF5
|
7
9
|
|
@@ -91,8 +93,8 @@ def test_save_reduced_frames_to_be_copied(tmp_path):
|
|
91
93
|
test save_flats_to_be_copied and save_darks_to_be_copied functions
|
92
94
|
"""
|
93
95
|
# create raw data
|
94
|
-
from tomoscan.scanbase import ReducedFramesInfos
|
95
96
|
from silx.io.url import DataUrl
|
97
|
+
from tomoscan.scanbase import ReducedFramesInfos
|
96
98
|
|
97
99
|
raw_data = tmp_path / "raw_data"
|
98
100
|
raw_data.mkdir()
|
@@ -1,5 +1,5 @@
|
|
1
|
-
from tomwer.core.process.reconstruction.paramsbase import _ReconsParam, _get_db_fromstr
|
2
1
|
from tomwer.core.process.reconstruction.darkref.params import DKRFRP
|
2
|
+
from tomwer.core.process.reconstruction.paramsbase import _get_db_fromstr, _ReconsParam
|
3
3
|
|
4
4
|
|
5
5
|
def test_paramsbase():
|
@@ -28,17 +28,21 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "27/02/2021"
|
29
29
|
|
30
30
|
|
31
|
-
import unittest
|
32
|
-
from tomwer.core.process.reconstruction.scores.scores import compute_score_contrast_std
|
33
|
-
from tomwer.core.process.reconstruction.scores.scores import _METHOD_TO_FCT
|
34
|
-
from tomwer.core.process.reconstruction.saaxis.saaxis import SAAxisProcess
|
35
|
-
from tomwer.core.process.reconstruction.saaxis.params import SAAxisParams
|
36
|
-
from tomwer.core.utils.scanutils import MockHDF5
|
37
31
|
import os
|
38
|
-
import tempfile
|
39
32
|
import shutil
|
33
|
+
import tempfile
|
34
|
+
import unittest
|
35
|
+
|
40
36
|
import numpy
|
41
37
|
|
38
|
+
from tomwer.core.process.reconstruction.saaxis.params import SAAxisParams
|
39
|
+
from tomwer.core.process.reconstruction.saaxis.saaxis import SAAxisProcess
|
40
|
+
from tomwer.core.process.reconstruction.scores.scores import (
|
41
|
+
_METHOD_TO_FCT,
|
42
|
+
compute_score_contrast_std,
|
43
|
+
)
|
44
|
+
from tomwer.core.utils.scanutils import MockHDF5
|
45
|
+
|
42
46
|
|
43
47
|
class TestScoreFunctions(unittest.TestCase):
|
44
48
|
"""Test all the score functions"""
|
@@ -28,15 +28,16 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "27/02/2021"
|
29
29
|
|
30
30
|
|
31
|
+
import os
|
32
|
+
import shutil
|
33
|
+
import tempfile
|
31
34
|
import unittest
|
35
|
+
|
32
36
|
from tomwer.core.process.reconstruction.sadeltabeta.sadeltabeta import (
|
33
|
-
SADeltaBetaProcess,
|
34
37
|
SADeltaBetaParams,
|
38
|
+
SADeltaBetaProcess,
|
35
39
|
)
|
36
40
|
from tomwer.core.utils.scanutils import MockHDF5
|
37
|
-
import os
|
38
|
-
import tempfile
|
39
|
-
import shutil
|
40
41
|
|
41
42
|
|
42
43
|
class TestSADeltaBetaProcess(unittest.TestCase):
|