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
@@ -29,42 +29,43 @@ __authors__ = ["C.Nemoz", "H.Payno"]
|
|
29
29
|
__license__ = "MIT"
|
30
30
|
__date__ = "19/03/2019"
|
31
31
|
|
32
|
+
import logging
|
33
|
+
from typing import Optional, Union
|
34
|
+
|
32
35
|
import nabu
|
33
36
|
import numpy
|
34
|
-
import
|
35
|
-
|
36
|
-
|
37
|
+
from nabu.estimation.cor import (
|
38
|
+
CenterOfRotation,
|
39
|
+
CenterOfRotationAdaptiveSearch,
|
40
|
+
CenterOfRotationGrowingWindow,
|
41
|
+
CenterOfRotationSlidingWindow,
|
42
|
+
)
|
43
|
+
from nabu.pipeline.estimators import SinoCORFinder
|
44
|
+
from processview.core.manager import DatasetState, ProcessManager
|
45
|
+
from processview.core.superviseprocess import SuperviseProcess
|
46
|
+
|
37
47
|
import tomwer.version
|
48
|
+
from tomwer.core.process.reconstruction.utils.cor import absolute_pos_to_relative
|
49
|
+
from tomwer.core.process.task import Task
|
50
|
+
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
51
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
52
|
+
from tomwer.core.scan.scanfactory import ScanFactory
|
53
|
+
from tomwer.core.utils import image, logconfig
|
54
|
+
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
55
|
+
from tomwer.utils import docstring
|
56
|
+
|
57
|
+
from .anglemode import CorAngleMode
|
58
|
+
from .mode import AxisMode
|
38
59
|
from .params import (
|
39
|
-
AxisRP,
|
40
|
-
DEFAULT_CMP_TAKE_LOG,
|
41
|
-
DEFAULT_CMP_OVERSAMPLING,
|
42
60
|
DEFAULT_CMP_N_SUBSAMPLING_Y,
|
43
61
|
DEFAULT_CMP_NEAR_POS,
|
44
62
|
DEFAULT_CMP_NEAR_WIDTH,
|
63
|
+
DEFAULT_CMP_OVERSAMPLING,
|
64
|
+
DEFAULT_CMP_TAKE_LOG,
|
45
65
|
DEFAULT_CMP_THETA,
|
66
|
+
AxisRP,
|
46
67
|
)
|
47
|
-
from .mode import AxisMode
|
48
68
|
from .projectiontype import ProjectionType
|
49
|
-
from .anglemode import CorAngleMode
|
50
|
-
from tomwer.core.process.task import Task
|
51
|
-
from processview.core.superviseprocess import SuperviseProcess
|
52
|
-
from tomwer.core.scan.scanbase import TomwerScanBase
|
53
|
-
from tomwer.core.process.reconstruction.utils.cor import absolute_pos_to_relative
|
54
|
-
from tomwer.core.scan.scanfactory import ScanFactory
|
55
|
-
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
56
|
-
from tomwer.core.utils import logconfig
|
57
|
-
from typing import Optional, Union
|
58
|
-
from tomwer.utils import docstring
|
59
|
-
from tomwer.core.utils import image
|
60
|
-
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
61
|
-
from nabu.estimation.cor import (
|
62
|
-
CenterOfRotation,
|
63
|
-
CenterOfRotationAdaptiveSearch,
|
64
|
-
CenterOfRotationGrowingWindow,
|
65
|
-
CenterOfRotationSlidingWindow,
|
66
|
-
)
|
67
|
-
from nabu.pipeline.estimators import SinoCORFinder
|
68
69
|
|
69
70
|
try:
|
70
71
|
from nabu.pipeline.estimators import CompositeCOREstimator
|
@@ -73,8 +74,8 @@ except ImportError:
|
|
73
74
|
else:
|
74
75
|
has_composite_cor_finder = True
|
75
76
|
from silx.io.url import DataUrl
|
76
|
-
from tomoscan.io import HDF5File
|
77
77
|
from silx.io.utils import h5py_read_dataset
|
78
|
+
from tomoscan.io import HDF5File
|
78
79
|
|
79
80
|
_logger = logging.getLogger(__name__)
|
80
81
|
if not has_composite_cor_finder:
|
@@ -111,9 +112,10 @@ def adapt_tomwer_scan_to_nabu(scan: TomwerScanBase):
|
|
111
112
|
# since this version nabu does not the load of dark / flat mean/median
|
112
113
|
# directly in the function but outside. So we need an extra call to
|
113
114
|
# update_dataset_info_flats_darks
|
114
|
-
from nabu.resources.nxflatfield import update_dataset_info_flats_darks
|
115
115
|
import inspect
|
116
116
|
|
117
|
+
from nabu.resources.nxflatfield import update_dataset_info_flats_darks
|
118
|
+
|
117
119
|
# processes_file has been removed in a minor release. safer to inspect if is needed or not
|
118
120
|
# should be removed on release 1.1 of tomwer I guess
|
119
121
|
if (
|
@@ -265,7 +267,7 @@ def compute_scan_composite_coarse_to_fine(scan: TomwerScanBase):
|
|
265
267
|
cor_options=scan.axis_params.get_nabu_cor_options_as_dict(),
|
266
268
|
logger=_logger,
|
267
269
|
take_log=take_log,
|
268
|
-
**extra_args
|
270
|
+
**extra_args,
|
269
271
|
)
|
270
272
|
res = corfinder.find_cor()
|
271
273
|
return _absolute_pos_to_relative_with_warning(
|
@@ -679,7 +681,7 @@ class AxisProcess(
|
|
679
681
|
elif isinstance(scan, dict):
|
680
682
|
scan = ScanFactory.create_scan_object_frm_dict(scan)
|
681
683
|
else:
|
682
|
-
raise ValueError("input type {} is not managed"
|
684
|
+
raise ValueError(f"input type {scan} is not managed")
|
683
685
|
|
684
686
|
_logger.info("start axis calculation for %s" % scan.path)
|
685
687
|
self._axis_params.frame_width = scan.dim_1
|
@@ -751,7 +753,7 @@ class AxisProcess(
|
|
751
753
|
dataset=scan, process=self, state=DatasetState.FAILED, details=info
|
752
754
|
)
|
753
755
|
else:
|
754
|
-
info = "axis calculation defined for {}: {} (using {})"
|
756
|
+
info = "axis calculation defined for {}: {} (using {})".format(
|
755
757
|
str(scan.path),
|
756
758
|
str(scan.axis_params.relative_cor_value),
|
757
759
|
scan.axis_params.mode.value,
|
@@ -863,8 +865,7 @@ class AxisProcess(
|
|
863
865
|
scan_name = scan.path or "undef scan"
|
864
866
|
scan.axis_params.set_relative_value(None)
|
865
867
|
raise Exception(
|
866
|
-
"Fail to compute axis position for {} reason is {}"
|
867
|
-
"".format(scan_name, e)
|
868
|
+
f"Fail to compute axis position for {scan_name} reason is {e}"
|
868
869
|
)
|
869
870
|
else:
|
870
871
|
scan.axis_params.set_relative_value(position)
|
@@ -875,12 +876,9 @@ class AxisProcess(
|
|
875
876
|
method = "sinogram"
|
876
877
|
else:
|
877
878
|
method = scan.axis_params.mode.value
|
879
|
+
r_cor_value = scan.axis_params.relative_cor_value
|
878
880
|
mess = (
|
879
|
-
"Compute axis position ({
|
880
|
-
value=str(scan.axis_params.relative_cor_value),
|
881
|
-
method=method,
|
882
|
-
scan_name=scan_name,
|
883
|
-
)
|
881
|
+
f"Compute axis position ({r_cor_value}) with {method} for {scan_name}"
|
884
882
|
)
|
885
883
|
_logger.info(mess)
|
886
884
|
if self._return_dict:
|
@@ -28,23 +28,25 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "04/03/2019"
|
29
29
|
|
30
30
|
|
31
|
-
from silx.utils.enum import Enum as _Enum
|
32
|
-
|
33
|
-
from .anglemode import CorAngleMode
|
34
|
-
from tomwer.core.utils import getParametersFromParOrInfo
|
35
|
-
from .projectiontype import ProjectionType
|
36
|
-
from .mode import AxisMode
|
37
|
-
from collections import namedtuple
|
38
|
-
from silx.io.url import DataUrl
|
39
|
-
from tomoscan.esrf.scan.utils import get_data
|
40
31
|
import logging
|
41
|
-
import numpy
|
42
32
|
import os
|
43
|
-
import
|
33
|
+
from collections import namedtuple
|
44
34
|
from typing import Union
|
35
|
+
|
36
|
+
import h5py
|
37
|
+
import numpy
|
38
|
+
from silx.io.url import DataUrl
|
39
|
+
from silx.utils.deprecation import deprecated
|
40
|
+
from silx.utils.enum import Enum as _Enum
|
41
|
+
from tomoscan.esrf.scan.utils import get_data
|
42
|
+
|
45
43
|
from tomwer.core.process.task import Task
|
46
44
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
47
|
-
from
|
45
|
+
from tomwer.core.utils import getParametersFromParOrInfo
|
46
|
+
|
47
|
+
from .anglemode import CorAngleMode
|
48
|
+
from .mode import AxisMode
|
49
|
+
from .projectiontype import ProjectionType
|
48
50
|
|
49
51
|
try:
|
50
52
|
from nabu.preproc.phase import PaganinPhaseRetrieval
|
@@ -264,7 +266,7 @@ class AxisRP:
|
|
264
266
|
"""do image scaling"""
|
265
267
|
self.__padding_mode = None
|
266
268
|
self.__frame_width = None
|
267
|
-
self.__side = "
|
269
|
+
self.__side = "right"
|
268
270
|
"""side of the cor. Requested by nabu cor algorithms growing-window
|
269
271
|
and sliding-window"""
|
270
272
|
self.__flip_lr = True
|
@@ -293,8 +295,7 @@ class AxisRP:
|
|
293
295
|
name = AxisMode.global_.name
|
294
296
|
elif name == "accurate":
|
295
297
|
_logger.info(
|
296
|
-
"convert axis mode {} to {} (renamed)"
|
297
|
-
"".format(name, AxisMode.centered.name)
|
298
|
+
f"convert axis mode {name} to {AxisMode.centered.name} (renamed)"
|
298
299
|
)
|
299
300
|
name = AxisMode.centered.name
|
300
301
|
elif name == "growing-window":
|
@@ -312,7 +313,7 @@ class AxisRP:
|
|
312
313
|
except Exception:
|
313
314
|
_mode = AxisMode.from_value(name)
|
314
315
|
except Exception:
|
315
|
-
raise ValueError("Fail to create axis mode from
|
316
|
+
raise ValueError(f"Fail to create axis mode from {mode}")
|
316
317
|
else:
|
317
318
|
if not isinstance(mode, AxisMode):
|
318
319
|
raise TypeError(f"mode is expected to be an instance of {AxisMode}")
|
@@ -328,7 +329,7 @@ class AxisRP:
|
|
328
329
|
def frame_width(self, value):
|
329
330
|
if not isinstance(value, (type(None), float, int)):
|
330
331
|
raise TypeError(
|
331
|
-
"Value is expected to be None or a float. Not {
|
332
|
+
f"Value is expected to be None or a float. Not {type(value)}"
|
332
333
|
)
|
333
334
|
if value is None:
|
334
335
|
self.__frame_width = value
|
@@ -410,7 +411,7 @@ class AxisRP:
|
|
410
411
|
@side.setter
|
411
412
|
def side(self, side):
|
412
413
|
if side not in ("all", "left", "right", "center", "near"):
|
413
|
-
raise ValueError("side '{}' is not managed"
|
414
|
+
raise ValueError(f"side '{side}' is not managed")
|
414
415
|
if self.__side != side:
|
415
416
|
self.__side = side
|
416
417
|
self.changed()
|
@@ -660,10 +661,7 @@ class AxisRP:
|
|
660
661
|
):
|
661
662
|
_dict = getParametersFromParOrInfo(file_path)
|
662
663
|
if self.AXIS_POSITION_PAR_KEY.lower() not in _dict:
|
663
|
-
err = "fail to find
|
664
|
-
self.AXIS_POSITION_PAR_KEY,
|
665
|
-
file_path,
|
666
|
-
)
|
664
|
+
err = f"fail to find `{self.AXIS_POSITION_PAR_KEY}` in {file_path}"
|
667
665
|
_logger.info(err)
|
668
666
|
raise KeyError(err)
|
669
667
|
else:
|
@@ -725,8 +723,7 @@ class AxisRP:
|
|
725
723
|
elif len(processes) > 1:
|
726
724
|
_logger.info("found more than one value computed for " "center of rotation")
|
727
725
|
_logger.info(
|
728
|
-
"load center of rotation from
|
729
|
-
% (file_path, processes[0].results["center_of_rotation"])
|
726
|
+
f"load center of rotation from {file_path}: {processes[0].results['center_of_rotation']}"
|
730
727
|
)
|
731
728
|
cor = processes[0].results["center_of_rotation"]
|
732
729
|
if cor in [None, ""]:
|
@@ -862,16 +859,14 @@ class AxisRP:
|
|
862
859
|
pass
|
863
860
|
|
864
861
|
def get_simple_str(self):
|
865
|
-
results = "{
|
862
|
+
results = f"{self.mode.value}"
|
866
863
|
if self.mode in (
|
867
864
|
AxisMode.growing_window_radios,
|
868
865
|
AxisMode.growing_window_sinogram,
|
869
866
|
AxisMode.sliding_window_radios,
|
870
867
|
AxisMode.sliding_window_sinogram,
|
871
868
|
):
|
872
|
-
extra_info = "side: {}, use sinogram: {}"
|
873
|
-
self.side, self.use_sinogram
|
874
|
-
)
|
869
|
+
extra_info = f"side: {self.side}, use sinogram: {self.use_sinogram}"
|
875
870
|
results = ", ".join((results, extra_info))
|
876
871
|
return results
|
877
872
|
|
@@ -30,27 +30,28 @@ __authors__ = ["C. Nemoz", "H.Payno"]
|
|
30
30
|
__license__ = "MIT"
|
31
31
|
__date__ = "06/09/2017"
|
32
32
|
|
33
|
+
import logging
|
33
34
|
import os
|
34
35
|
import typing
|
35
|
-
import logging
|
36
36
|
from queue import Queue
|
37
|
+
|
38
|
+
from processview.core.manager import DatasetState, ProcessManager
|
39
|
+
from processview.core.superviseprocess import SuperviseProcess
|
40
|
+
from silx.io.url import DataUrl
|
41
|
+
from silx.io.utils import h5py_read_dataset
|
42
|
+
from tomoscan.framereducerbase import REDUCER_TARGET, ReduceMethod
|
43
|
+
from tomoscan.io import HDF5File
|
44
|
+
|
37
45
|
import tomwer.version
|
38
|
-
from tomwer.
|
39
|
-
from tomwer.core import settings
|
40
|
-
from tomwer.core import utils
|
46
|
+
from tomwer.core import settings, utils
|
41
47
|
from tomwer.core.process.task import Task
|
42
|
-
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
43
|
-
from tomwer.core.scan.scanbase import TomwerScanBase
|
44
48
|
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
45
|
-
from . import
|
49
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
46
50
|
from tomwer.core.scan.scanfactory import ScanFactory
|
47
|
-
from
|
48
|
-
from
|
49
|
-
|
50
|
-
from
|
51
|
-
from processview.core.manager import DatasetState
|
52
|
-
from silx.io.utils import h5py_read_dataset
|
53
|
-
from silx.io.url import DataUrl
|
51
|
+
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
52
|
+
from tomwer.utils import docstring
|
53
|
+
|
54
|
+
from . import params as dkrf_reconsparams
|
54
55
|
|
55
56
|
logger = logging.getLogger(__name__)
|
56
57
|
|
@@ -247,7 +248,7 @@ class DarkRefs(
|
|
247
248
|
|
248
249
|
with HDF5File(process_file, "r", swmr=True) as h5f:
|
249
250
|
if entry not in h5f.keys():
|
250
|
-
logger.info("no dark found for {}"
|
251
|
+
logger.info(f"no dark found for {entry}")
|
251
252
|
return {}
|
252
253
|
dark_nodes = DarkRefs._get_process_nodes(
|
253
254
|
root_node=h5f[entry], process=DarkRefs
|
@@ -309,7 +310,7 @@ class DarkRefs(
|
|
309
310
|
|
310
311
|
with HDF5File(process_file, "r", swmr=True) as h5f:
|
311
312
|
if entry not in h5f.keys():
|
312
|
-
logger.info("no flats found for {}"
|
313
|
+
logger.info(f"no flats found for {entry}")
|
313
314
|
return {}
|
314
315
|
dkref_nodes = DarkRefs._get_process_nodes(
|
315
316
|
root_node=h5f[entry], process=DarkRefs
|
@@ -326,7 +327,7 @@ class DarkRefs(
|
|
326
327
|
if (len(index_to_path)) > 1:
|
327
328
|
logger.debug(
|
328
329
|
"several processing found for dark-ref,"
|
329
|
-
"take the last one:
|
330
|
+
f"take the last one: {last_process_dkrf}"
|
330
331
|
)
|
331
332
|
|
332
333
|
res = {}
|
@@ -378,7 +379,7 @@ class DarkRefs(
|
|
378
379
|
process=self,
|
379
380
|
state=DatasetState.ON_GOING,
|
380
381
|
)
|
381
|
-
logger.processStarted("start dark and ref for {}"
|
382
|
+
logger.processStarted(f"start dark and ref for {scan}")
|
382
383
|
if (
|
383
384
|
settings.isOnLbsram(scan)
|
384
385
|
and utils.isLowOnMemory(settings.get_lbsram_path()) is True
|
@@ -398,7 +399,7 @@ class DarkRefs(
|
|
398
399
|
return
|
399
400
|
|
400
401
|
if not (scan and os.path.exists(scan.path)):
|
401
|
-
mess = "folder {} is not existing"
|
402
|
+
mess = f"folder {scan.folder} is not existing"
|
402
403
|
logger.warning(mess)
|
403
404
|
ProcessManager().notify_dataset_state(
|
404
405
|
dataset=scan, process=self, state=DatasetState.FAILED, details=mess
|
@@ -424,16 +425,11 @@ class DarkRefs(
|
|
424
425
|
# if reduced already exists and user didn't asked for overwritting it
|
425
426
|
if exists and not overwrite:
|
426
427
|
continue
|
427
|
-
logger.debug(
|
428
|
-
"compute {what} using mode {mode} for {scan}"
|
429
|
-
"".format(what=what, mode=mode, scan=str(scan))
|
430
|
-
)
|
428
|
+
logger.debug(f"compute {what} using mode {mode} for {scan}")
|
431
429
|
try:
|
432
430
|
self.compute(scan=scan, target=what, method=mode, overwrite=True)
|
433
431
|
except Exception as e:
|
434
|
-
info = "Fail computing dark and flat for {}. Reason is {}"
|
435
|
-
str(scan), e
|
436
|
-
)
|
432
|
+
info = f"Fail computing dark and flat for {scan}. Reason is {e}"
|
437
433
|
self.notify_to_state_to_managed(
|
438
434
|
dataset=scan, state=DatasetState.FAILED, details=info
|
439
435
|
)
|
@@ -489,7 +485,7 @@ class DarkRefs(
|
|
489
485
|
process_index=scan.pop_process_index(),
|
490
486
|
overwrite=True,
|
491
487
|
)
|
492
|
-
logger.processSucceed("Dark and ref succeeded for {}"
|
488
|
+
logger.processSucceed(f"Dark and ref succeeded for {scan}")
|
493
489
|
self.notify_to_state_to_managed(
|
494
490
|
dataset=scan, state=DatasetState.SUCCEED, details=None
|
495
491
|
)
|
@@ -32,20 +32,24 @@ __license__ = "MIT"
|
|
32
32
|
__date__ = "17/08/2021"
|
33
33
|
|
34
34
|
|
35
|
-
import os
|
36
35
|
import logging
|
36
|
+
import os
|
37
37
|
import tempfile
|
38
38
|
from typing import Union
|
39
|
+
|
40
|
+
from silx.io.dictdump import dicttoh5, h5todict
|
39
41
|
from silx.io.url import DataUrl
|
40
|
-
from
|
41
|
-
|
42
|
-
|
42
|
+
from tomoscan.esrf.scan.utils import (
|
43
|
+
copy_h5_dict_darks_to,
|
44
|
+
copy_h5_dict_flats_to,
|
45
|
+
cwd_context,
|
46
|
+
)
|
43
47
|
from tomoscan.framereducerbase import REDUCER_TARGET
|
48
|
+
from tomoscan.io import HDF5File
|
49
|
+
|
44
50
|
from tomwer.core.process.reconstruction.darkref.darkrefs import DarkRefs
|
45
51
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
46
52
|
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
47
|
-
from tomoscan.esrf.scan.utils import copy_h5_dict_darks_to, copy_h5_dict_flats_to
|
48
|
-
from silx.io.dictdump import h5todict
|
49
53
|
|
50
54
|
logger = logging.getLogger(__name__)
|
51
55
|
|
@@ -92,9 +96,7 @@ class DarkRefsCopy(DarkRefs):
|
|
92
96
|
if init_ref_scan:
|
93
97
|
if not isinstance(init_ref_scan, TomwerScanBase):
|
94
98
|
raise TypeError(
|
95
|
-
"init_ref_scan is expected to be an instance of TomwerScanBase. Not {}"
|
96
|
-
type(init_ref_scan)
|
97
|
-
)
|
99
|
+
f"init_ref_scan is expected to be an instance of TomwerScanBase. Not {type(init_ref_scan)}"
|
98
100
|
)
|
99
101
|
else:
|
100
102
|
self.set_darks_and_flats_from_scan(init_ref_scan)
|
@@ -216,9 +218,7 @@ class DarkRefsCopy(DarkRefs):
|
|
216
218
|
def _copy_to(self, scan):
|
217
219
|
if not isinstance(scan, TomwerScanBase):
|
218
220
|
raise TypeError(
|
219
|
-
"{} is expected to be
|
220
|
-
str(scan), TomwerScanBase, type(scan)
|
221
|
-
)
|
221
|
+
f"{scan} is expected to be an instance of {TomwerScanBase} and not {type(scan)}"
|
222
222
|
)
|
223
223
|
|
224
224
|
if self.has_dark_stored():
|
@@ -306,9 +306,7 @@ class DarkRefsCopy(DarkRefs):
|
|
306
306
|
"""Return True if the scan has already some dark processed"""
|
307
307
|
if not isinstance(scan, TomwerScanBase):
|
308
308
|
return TypeError(
|
309
|
-
"scan is expected to be an instance of {} and not {}"
|
310
|
-
TomwerScanBase, type(scan)
|
311
|
-
)
|
309
|
+
f"scan is expected to be an instance of {TomwerScanBase} and not {type(scan)}"
|
312
310
|
)
|
313
311
|
else:
|
314
312
|
return scan.reduced_darks or scan.load_reduced_darks()
|
@@ -317,9 +315,7 @@ class DarkRefsCopy(DarkRefs):
|
|
317
315
|
"""Return True if the scan has already some dark processed"""
|
318
316
|
if not isinstance(scan, TomwerScanBase):
|
319
317
|
return TypeError(
|
320
|
-
"scan is expected to be an instance of {} and not {}"
|
321
|
-
TomwerScanBase, type(scan)
|
322
|
-
)
|
318
|
+
f"scan is expected to be an instance of {TomwerScanBase} and not {type(scan)}"
|
323
319
|
)
|
324
320
|
else:
|
325
321
|
return scan.reduced_flats or scan.load_reduced_flats()
|
@@ -29,14 +29,16 @@ __date__ = "07/03/2019"
|
|
29
29
|
|
30
30
|
|
31
31
|
import enum
|
32
|
+
|
32
33
|
from silx.utils.enum import Enum as _Enum
|
34
|
+
from tomoscan.framereducerbase import ReduceMethod
|
35
|
+
|
33
36
|
from tomwer.core.process.reconstruction.darkref.settings import (
|
34
37
|
DARKHST_PREFIX,
|
35
38
|
REFHST_PREFIX,
|
36
39
|
)
|
37
40
|
from tomwer.core.process.reconstruction.paramsbase import _ReconsParam
|
38
41
|
from tomwer.core.utils.deprecation import deprecated
|
39
|
-
from tomoscan.framereducerbase import ReduceMethod
|
40
42
|
|
41
43
|
|
42
44
|
# TODO: those classes (when, method) should be linked / embedded in the DarkRef
|
@@ -28,27 +28,27 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "01/06/2018"
|
29
29
|
|
30
30
|
|
31
|
+
import enum
|
31
32
|
import glob
|
33
|
+
import logging
|
32
34
|
import os
|
35
|
+
import shutil
|
33
36
|
import subprocess
|
34
37
|
import sys
|
35
|
-
import enum
|
36
|
-
from collections import OrderedDict
|
37
38
|
import tempfile
|
38
|
-
import
|
39
|
-
|
40
|
-
|
39
|
+
from collections import OrderedDict
|
40
|
+
|
41
|
+
import tomwer.version
|
41
42
|
from tomwer.core.process.reconstruction.darkref.settings import (
|
42
43
|
DARKHST_PREFIX,
|
43
44
|
REFHST_PREFIX,
|
44
45
|
)
|
45
|
-
from tomwer.core.
|
46
|
+
from tomwer.core.process.task import Task
|
47
|
+
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
46
48
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
49
|
+
from tomwer.core.scan.scanfactory import ScanFactory
|
47
50
|
from tomwer.core.utils import getDim1Dim2
|
48
51
|
from tomwer.core.utils.char import PSI_CHAR
|
49
|
-
import tomwer.version
|
50
|
-
|
51
|
-
import logging
|
52
52
|
|
53
53
|
logger = logging.getLogger(__name__)
|
54
54
|
|
@@ -417,10 +417,7 @@ def _preprocess_stitching(
|
|
417
417
|
return True
|
418
418
|
|
419
419
|
def stitching(shift, blend, adjust_mean):
|
420
|
-
work = "[read path
|
421
|
-
fc1_folder,
|
422
|
-
fc2_folder,
|
423
|
-
)
|
420
|
+
work = f"[read path={fc1_folder}, read path={fc2_folder} ! flip direction=horizontal]"
|
424
421
|
work = work + " ! stitch shift=%s " % shift
|
425
422
|
work += "blend=%s " % str(int(blend))
|
426
423
|
work += "adjust-mean=%s " % str(int(adjust_mean))
|
@@ -767,8 +764,7 @@ class LaminoReconstruction(Task, input_names=("data",), output_names=("data",)):
|
|
767
764
|
_scan = scan
|
768
765
|
if not isinstance(_scan, TomwerScanBase):
|
769
766
|
raise TypeError(
|
770
|
-
"input data is expected to be dict, str or "
|
771
|
-
"TomwerScanBase not {}".format(type(_scan))
|
767
|
+
f"input data is expected to be dict, str or {TomwerScanBase} not {type(_scan)}"
|
772
768
|
)
|
773
769
|
|
774
770
|
# if need some preprocessing
|
@@ -31,31 +31,28 @@ __license__ = "MIT"
|
|
31
31
|
__date__ = "15/12/2021"
|
32
32
|
|
33
33
|
|
34
|
+
import logging
|
34
35
|
import os
|
36
|
+
|
37
|
+
import numpy
|
38
|
+
from nabu.io.cast_volume import RESCALE_MAX_PERCENTILE, RESCALE_MIN_PERCENTILE
|
39
|
+
from nabu.io.cast_volume import cast_volume as _nabu_cast_volume
|
40
|
+
from nabu.io.cast_volume import get_default_output_volume
|
41
|
+
from processview.core.manager import DatasetState, ProcessManager
|
35
42
|
from processview.core.superviseprocess import SuperviseProcess
|
43
|
+
from sluurp.executor import submit as submit_to_slurm_cluster
|
44
|
+
from sluurp.job import SBatchScriptJob
|
45
|
+
from tomoscan.volumebase import VolumeBase
|
46
|
+
|
36
47
|
from tomwer.core.cluster.cluster import SlurmClusterConfiguration
|
48
|
+
from tomwer.core.futureobject import FutureTomwerObject
|
37
49
|
from tomwer.core.process.reconstruction.nabu import settings
|
50
|
+
from tomwer.core.process.reconstruction.nabu.nabucommon import NabuOutputFileFormat
|
38
51
|
from tomwer.core.process.task import Task
|
39
|
-
from tomwer.core.process.reconstruction.nabu.nabucommon import (
|
40
|
-
NabuOutputFileFormat,
|
41
|
-
)
|
42
|
-
from processview.core.manager import ProcessManager, DatasetState
|
43
|
-
import numpy
|
44
|
-
import logging
|
45
|
-
from tomoscan.volumebase import VolumeBase
|
46
|
-
from nabu.io.cast_volume import (
|
47
|
-
cast_volume as _nabu_cast_volume,
|
48
|
-
RESCALE_MIN_PERCENTILE,
|
49
|
-
RESCALE_MAX_PERCENTILE,
|
50
|
-
get_default_output_volume,
|
51
|
-
)
|
52
|
-
from tomwer.core.futureobject import FutureTomwerObject
|
53
52
|
from tomwer.core.utils.slurm import get_slurm_script_name
|
54
|
-
from tomwer.core.volume.volumefactory import VolumeFactory
|
55
|
-
from tomwer.core.volume.volumebase import TomwerVolumeBase
|
56
53
|
from tomwer.core.utils.volumeutils import volume_identifier_to_volume
|
57
|
-
from
|
58
|
-
from
|
54
|
+
from tomwer.core.volume.volumebase import TomwerVolumeBase
|
55
|
+
from tomwer.core.volume.volumefactory import VolumeFactory
|
59
56
|
|
60
57
|
_logger = logging.getLogger(__name__)
|
61
58
|
|
@@ -32,37 +32,36 @@ __license__ = "MIT"
|
|
32
32
|
__date__ = "27/10/2021"
|
33
33
|
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
import logging
|
36
|
+
import os
|
37
|
+
import subprocess
|
38
|
+
import uuid
|
39
|
+
from typing import Iterable, Optional, Union
|
40
|
+
|
41
|
+
import numpy
|
42
|
+
from silx.io.url import DataUrl
|
43
|
+
from silx.utils.enum import Enum as _Enum
|
38
44
|
from sluurp.executor import submit as submit_to_slurm_cluster
|
39
45
|
from sluurp.job import SBatchScriptJob
|
46
|
+
from tomoscan.io import HDF5File
|
47
|
+
from tomoscan.normalization import Method as INormMethod
|
48
|
+
|
49
|
+
from tomwer.core.cluster.cluster import SlurmClusterConfiguration
|
40
50
|
from tomwer.core.process.reconstruction.nabu.target import Target
|
41
51
|
from tomwer.core.process.reconstruction.nabu.utils import (
|
42
52
|
_NabuPhaseMethod,
|
43
53
|
nabu_std_err_has_error,
|
44
54
|
)
|
45
|
-
from tomwer.core.
|
55
|
+
from tomwer.core.process.reconstruction.normalization.params import (
|
56
|
+
_ValueSource as INormSource,
|
57
|
+
)
|
46
58
|
from tomwer.core.scan.edfscan import EDFTomoScan
|
47
59
|
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
48
60
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
61
|
+
from tomwer.core.utils.scanutils import format_output_location
|
49
62
|
from tomwer.core.utils.slurm import get_slurm_script_name, is_slurm_available
|
50
|
-
|
51
|
-
|
52
|
-
)
|
53
|
-
from tomoscan.normalization import Method as INormMethod
|
54
|
-
from silx.utils.enum import Enum as _Enum
|
55
|
-
from silx.io.url import DataUrl
|
56
|
-
from typing import Iterable, Optional
|
57
|
-
from typing import Union
|
58
|
-
import logging
|
59
|
-
import subprocess
|
60
|
-
from . import settings
|
61
|
-
from . import utils
|
62
|
-
import os
|
63
|
-
import uuid
|
64
|
-
from tomoscan.io import HDF5File
|
65
|
-
import numpy
|
63
|
+
|
64
|
+
from . import settings, utils
|
66
65
|
|
67
66
|
_logger = logging.getLogger(__name__)
|
68
67
|
try:
|