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
@@ -27,19 +27,19 @@ __authors__ = ["H. Payno"]
|
|
27
27
|
__license__ = "MIT"
|
28
28
|
__date__ = "09/06/2020"
|
29
29
|
|
30
|
-
import
|
30
|
+
import getpass
|
31
31
|
import logging
|
32
|
+
import socket
|
32
33
|
import threading
|
34
|
+
import time
|
33
35
|
import typing
|
34
|
-
from silx.utils.enum import Enum as _Enum
|
35
36
|
from multiprocessing import Process
|
36
|
-
|
37
|
-
from werkzeug.serving import run_simple
|
37
|
+
|
38
38
|
from jsonrpc import JSONRPCResponseManager, dispatcher
|
39
|
-
import socket
|
40
39
|
from psutil import process_iter
|
41
|
-
import
|
42
|
-
|
40
|
+
from silx.utils.enum import Enum as _Enum
|
41
|
+
from werkzeug.serving import run_simple
|
42
|
+
from werkzeug.wrappers import Request, Response
|
43
43
|
|
44
44
|
_logger = logging.getLogger(__name__)
|
45
45
|
|
@@ -177,20 +177,18 @@ class _BaseDataListenerThread:
|
|
177
177
|
self.scan_added(acquisition=self._current_sequence, scan_number=scan_number)
|
178
178
|
|
179
179
|
def scan_added(self, acquisition: BlissAcquisition, scan_number: int):
|
180
|
-
print("scan {} started"
|
180
|
+
print(f"scan {scan_number} started")
|
181
181
|
|
182
182
|
def _rpc_scan_ended(self, scan_number):
|
183
183
|
if self._current_sequence is not None:
|
184
184
|
self.scan_ended(acquisition=self._current_sequence, scan_number=scan_number)
|
185
185
|
|
186
186
|
def scan_ended(self, acquisition: BlissAcquisition, scan_number):
|
187
|
-
print("scan {} ended"
|
187
|
+
print(f"scan {scan_number} ended")
|
188
188
|
|
189
189
|
def _rpc_sequence_ended(self, saving_file, sequence_scan_number, success: bool):
|
190
190
|
if success is False:
|
191
|
-
_logger.warning(
|
192
|
-
"sequence {}@{} failed".format(sequence_scan_number, saving_file)
|
193
|
-
)
|
191
|
+
_logger.warning(f"sequence {sequence_scan_number}@{saving_file} failed")
|
194
192
|
if self._current_sequence is not None:
|
195
193
|
try:
|
196
194
|
self.sequence_failed(self._current_sequence)
|
@@ -212,23 +210,18 @@ class _BaseDataListenerThread:
|
|
212
210
|
)
|
213
211
|
|
214
212
|
_logger.warning(
|
215
|
-
"End of {} detected but does not fit the "
|
216
|
-
"current acquisition {}".format(name, name_current)
|
213
|
+
f"End of {name} detected but does not fit the current acquisition {name_current}"
|
217
214
|
)
|
218
215
|
|
219
216
|
def sequence_ended(self, acquisition: BlissAcquisition):
|
220
217
|
"""callback when a sequence end (with success)"""
|
221
218
|
print(
|
222
|
-
"sequence {}@{} ended. Succeed: {}"
|
223
|
-
acquisition.entry, acquisition.master_file, acquisition.status
|
224
|
-
)
|
219
|
+
f"sequence {acquisition.entry}@{acquisition.master_file} ended. Succeed: {acquisition.status}"
|
225
220
|
)
|
226
221
|
|
227
222
|
def sequence_failed(self, acquisition: BlissAcquisition):
|
228
223
|
"""callback when a sequence fails (probably canceled)"""
|
229
|
-
print(
|
230
|
-
"sequence {}@{} failed".format(acquisition.entry, acquisition.master_file)
|
231
|
-
)
|
224
|
+
print(f"sequence {acquisition.entry}@{acquisition.master_file} failed")
|
232
225
|
|
233
226
|
@Request.application
|
234
227
|
def application(self, request):
|
@@ -242,17 +235,17 @@ class _BaseDataListenerThread:
|
|
242
235
|
|
243
236
|
def start(self) -> None:
|
244
237
|
self._stop = False
|
245
|
-
_logger.info("launch rpc server on {}:{
|
238
|
+
_logger.info(f"launch rpc server on {self._host}:{self._port}")
|
246
239
|
self._server = Process(
|
247
240
|
target=run_simple, args=(self._host, self._port, self.application)
|
248
241
|
)
|
249
242
|
self._server.start()
|
250
|
-
_logger.info("launcher server with pid {
|
243
|
+
_logger.info(f"launcher server with pid {self._server.pid}")
|
251
244
|
|
252
245
|
def stop(self):
|
253
246
|
self._stop = True
|
254
247
|
if self._server is not None:
|
255
|
-
_logger.info("stop rpc server on {}:{
|
248
|
+
_logger.info(f"stop rpc server on {self._host}:{self._port}")
|
256
249
|
self._server.terminate()
|
257
250
|
self._server.join(_BaseDataListenerThread._JOIN_TIMEOUT)
|
258
251
|
self._server = None
|
@@ -290,9 +283,7 @@ def send_signal_to_local_rpc_servers(signal, port, extended_find=True):
|
|
290
283
|
"tomwer",
|
291
284
|
"orange-canvas",
|
292
285
|
):
|
293
|
-
_logger.warning(
|
294
|
-
"send {} signal to pid {}" "".format(signal, proc.pid)
|
295
|
-
)
|
286
|
+
_logger.warning(f"send {signal} signal to pid {proc.pid}")
|
296
287
|
proc.send_signal(signal)
|
297
288
|
found = True
|
298
289
|
return
|
@@ -308,8 +299,7 @@ def send_signal_to_local_rpc_servers(signal, port, extended_find=True):
|
|
308
299
|
# make sure we will kill the correct process
|
309
300
|
if conns.laddr.port == port:
|
310
301
|
_logger.warning(
|
311
|
-
"process pid: {} - {} seems to be one occupying port {}"
|
312
|
-
"".format(proc.pid, proc.name(), port)
|
302
|
+
f"process pid: {proc.pid} - {proc.name()} seems to be one occupying port {port}"
|
313
303
|
)
|
314
304
|
return
|
315
305
|
except (psutil.PermissionError, psutil.AccessDenied):
|
@@ -30,25 +30,28 @@ __authors__ = ["H. Payno"]
|
|
30
30
|
__license__ = "MIT"
|
31
31
|
__date__ = "30/09/2019"
|
32
32
|
|
33
|
+
import logging
|
33
34
|
import os
|
34
|
-
import time
|
35
35
|
import threading
|
36
|
-
|
37
|
-
from
|
38
|
-
|
39
|
-
from
|
36
|
+
import time
|
37
|
+
from typing import Optional
|
38
|
+
|
39
|
+
from ewokscore.task import Task as EwoksTask
|
40
|
+
|
40
41
|
from tomwer.core.process.control.datawatcher.datawatcherobserver import (
|
41
42
|
_DataWatcherObserver,
|
42
43
|
_OngoingObservation,
|
43
44
|
)
|
44
|
-
from
|
45
|
+
from tomwer.core.process.task import BaseProcessInfo
|
46
|
+
from tomwer.core.process.utils import LastReceivedScansDict
|
47
|
+
from tomwer.core.scan.blissscan import BlissScan
|
48
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
45
49
|
from tomwer.core.scan.scanfactory import ScanFactory
|
46
|
-
from tomwer.core.settings import
|
50
|
+
from tomwer.core.settings import get_dest_path, get_lbsram_path
|
51
|
+
from tomwer.core.signal import Signal
|
47
52
|
from tomwer.core.utils import logconfig
|
53
|
+
|
48
54
|
from .status import * # noqa F403
|
49
|
-
import logging
|
50
|
-
from tomwer.core.scan.scanbase import TomwerScanBase
|
51
|
-
from ewokscore.task import Task as EwoksTask
|
52
55
|
|
53
56
|
logger = logging.getLogger(__name__)
|
54
57
|
|
@@ -284,8 +287,8 @@ class _DataWatcher(BaseProcessInfo):
|
|
284
287
|
|
285
288
|
return True
|
286
289
|
|
287
|
-
def _messageNotDir(self,
|
288
|
-
message = "Given path (%s) isn't a directory." %
|
290
|
+
def _messageNotDir(self, dir_):
|
291
|
+
message = "Given path (%s) isn't a directory." % dir_
|
289
292
|
logger.warning(message, extra={logconfig.DOC_TITLE: self._scheme_title})
|
290
293
|
|
291
294
|
def _createDataWatcher(self):
|
@@ -33,24 +33,27 @@ __license__ = "MIT"
|
|
33
33
|
__date__ = "09/02/2017"
|
34
34
|
|
35
35
|
|
36
|
-
|
36
|
+
import logging
|
37
37
|
import os
|
38
38
|
import threading
|
39
|
+
import time
|
39
40
|
from collections import OrderedDict
|
41
|
+
from fnmatch import fnmatch
|
40
42
|
from typing import Optional
|
43
|
+
|
44
|
+
import h5py
|
45
|
+
|
41
46
|
from tomwer.core.process.control.datawatcher import status as datawatcherstatus
|
47
|
+
from tomwer.core.scan.edfscan import EDFTomoScan
|
48
|
+
from tomwer.core.utils.threads import LoopThread
|
49
|
+
|
50
|
+
from .datawatcherprocess import _DataWatchEmpty
|
42
51
|
from .edfdwprocess import (
|
43
52
|
_DataWatcherProcessParseInfo,
|
44
53
|
_DataWatcherProcessUserFilePattern,
|
45
54
|
_DataWatcherProcessXML,
|
46
55
|
)
|
47
|
-
from .hdf5dwprocess import
|
48
|
-
from .datawatcherprocess import _DataWatchEmpty
|
49
|
-
from tomwer.core.utils.threads import LoopThread
|
50
|
-
import logging
|
51
|
-
from tomwer.core.scan.edfscan import EDFTomoScan
|
52
|
-
import time
|
53
|
-
import h5py
|
56
|
+
from .hdf5dwprocess import _BlissScanWatcherProcess, _DataWatcherProcessHDF5
|
54
57
|
|
55
58
|
logger = logging.getLogger(__name__)
|
56
59
|
|
@@ -31,13 +31,15 @@ __license__ = "MIT"
|
|
31
31
|
__date__ = "14/10/2016"
|
32
32
|
|
33
33
|
|
34
|
-
from glob import glob
|
35
|
-
import subprocess
|
36
|
-
from tomwer.core.signal import Signal
|
37
34
|
import logging
|
35
|
+
import os
|
36
|
+
import subprocess
|
37
|
+
from glob import glob
|
38
|
+
|
38
39
|
from tomwer.core.scan.edfscan import EDFTomoScan
|
40
|
+
from tomwer.core.signal import Signal
|
41
|
+
|
39
42
|
from .status import OBSERVATION_STATUS
|
40
|
-
import os
|
41
43
|
|
42
44
|
logger = logging.getLogger(__name__)
|
43
45
|
|
@@ -168,7 +170,7 @@ class _DataWatcherProcess:
|
|
168
170
|
if self.RootDir.startswith(self.srcPattern):
|
169
171
|
source = os.path.join(self.RootDir, self.parsing_dir)
|
170
172
|
target = source.replace(self.srcPattern, self.destPattern, 1)
|
171
|
-
info = "Start synchronization between
|
173
|
+
info = f"Start synchronization between {source} and {target}"
|
172
174
|
self.sigNewInformation.emit(info)
|
173
175
|
|
174
176
|
target_dirname = os.path.dirname(target)
|
@@ -31,14 +31,15 @@ __license__ = "MIT"
|
|
31
31
|
__date__ = "30/09/2019"
|
32
32
|
|
33
33
|
|
34
|
-
from .datawatcherprocess import _DataWatcherProcess
|
35
34
|
import logging
|
36
35
|
import os
|
37
36
|
import shutil
|
38
|
-
from tomwer.core.scan.edfscan import EDFTomoScan
|
39
|
-
from subprocess import getstatusoutput as myux
|
40
37
|
from glob import glob
|
41
38
|
|
39
|
+
from tomwer.core.scan.edfscan import EDFTomoScan
|
40
|
+
|
41
|
+
from .datawatcherprocess import _DataWatcherProcess
|
42
|
+
|
42
43
|
_logger = logging.getLogger(__name__)
|
43
44
|
try:
|
44
45
|
from tomwer.synctools.rsyncmanager import RSyncManager
|
@@ -49,17 +50,6 @@ except ImportError:
|
|
49
50
|
has_rsync = True
|
50
51
|
|
51
52
|
|
52
|
-
def get_dir_size(dir):
|
53
|
-
if not os.path.isdir(dir):
|
54
|
-
err = "%s is not a directory, can't get size" % dir
|
55
|
-
raise ValueError(err)
|
56
|
-
else:
|
57
|
-
aux = myux("du -ms " + dir.replace(" ", "\ ")) # noqa W605
|
58
|
-
if len(aux) < 2:
|
59
|
-
return 0
|
60
|
-
return float((aux[1].split("\t"))[0])
|
61
|
-
|
62
|
-
|
63
53
|
def get_info_val(lines, key):
|
64
54
|
r = range(len(lines))
|
65
55
|
key = key + "="
|
@@ -97,7 +87,7 @@ class _DataWatcherEDFProcess(_DataWatcherProcess):
|
|
97
87
|
def _removeAcquisition(self, scanID, reason):
|
98
88
|
if os.path.exists(scanID) and os.path.isdir(scanID):
|
99
89
|
if self._removed is None:
|
100
|
-
_logger.info("removing folder
|
90
|
+
_logger.info(f"removing folder {scanID} because {reason}")
|
101
91
|
if has_rsync:
|
102
92
|
RSyncManager().removeDir(scanID)
|
103
93
|
# avoid multiple removal as removal is asynchronous and might
|
@@ -30,10 +30,12 @@ __authors__ = ["C. Nemoz", "H. Payno"]
|
|
30
30
|
__license__ = "MIT"
|
31
31
|
__date__ = "30/09/2019"
|
32
32
|
|
33
|
-
from .datawatcherprocess import _DataWatcherProcess
|
34
33
|
import logging
|
34
|
+
|
35
35
|
import h5py
|
36
36
|
|
37
|
+
from .datawatcherprocess import _DataWatcherProcess
|
38
|
+
|
37
39
|
_logger = logging.getLogger(__name__)
|
38
40
|
|
39
41
|
|
@@ -28,15 +28,16 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "30/07/2020"
|
29
29
|
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
import logging
|
32
|
+
import os
|
33
|
+
|
34
34
|
from nxtomomill import converter as nxtomomill_converter
|
35
|
-
from nxtomomill.io.config import TomoHDF5Config as HDF5Config
|
36
35
|
from nxtomomill.io.config import TomoEDFConfig as EDFConfig
|
36
|
+
from nxtomomill.io.config import TomoHDF5Config as HDF5Config
|
37
37
|
|
38
|
-
import
|
39
|
-
import
|
38
|
+
from tomwer.core.process.task import TaskWithProgress
|
39
|
+
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
40
|
+
from tomwer.core.utils.scanutils import format_output_location
|
40
41
|
|
41
42
|
_logger = logging.getLogger(__name__)
|
42
43
|
|
@@ -28,24 +28,24 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "05/07/2017"
|
29
29
|
|
30
30
|
|
31
|
+
import fnmatch
|
32
|
+
import logging
|
31
33
|
import os
|
32
34
|
import shutil
|
33
|
-
import fnmatch
|
34
35
|
|
35
|
-
|
36
|
-
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
37
|
-
from tomwer.core.scan.scanfactory import ScanFactory
|
38
|
-
from tomwer.core.settings import get_lbsram_path, get_dest_path
|
36
|
+
import tomwer.version
|
39
37
|
from tomwer.core.process.reconstruction.nabu.settings import NABU_CFG_FILE_FOLDER
|
40
38
|
from tomwer.core.process.reconstruction.nabu.utils import update_cfg_file_after_transfer
|
41
|
-
from tomwer.core.
|
42
|
-
from tomwer.core.utils import logconfig, rebaseParFile
|
43
|
-
import logging
|
44
|
-
from tomwer.core.scan.scanbase import TomwerScanBase
|
39
|
+
from tomwer.core.process.task import Task
|
45
40
|
from tomwer.core.scan.edfscan import EDFTomoScan
|
46
41
|
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
42
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
43
|
+
from tomwer.core.scan.scanfactory import ScanFactory
|
44
|
+
from tomwer.core.settings import get_dest_path, get_lbsram_path
|
45
|
+
from tomwer.core.signal import Signal
|
46
|
+
from tomwer.core.utils import logconfig, rebaseParFile
|
47
|
+
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
47
48
|
from tomwer.io.utils import get_linked_files_with_entry
|
48
|
-
import tomwer.version
|
49
49
|
|
50
50
|
logger = logging.getLogger(__name__)
|
51
51
|
|
@@ -521,7 +521,7 @@ class ScanTransfer(Task, input_names=("data",), output_names=("data",)):
|
|
521
521
|
configuration=None,
|
522
522
|
)
|
523
523
|
logger.processSucceed(
|
524
|
-
"transfer succeed of {} to {}"
|
524
|
+
f"transfer succeed of {input_scan} to {output_scan}",
|
525
525
|
extra={
|
526
526
|
logconfig.DOC_TITLE: self._scheme_title,
|
527
527
|
logconfig.FROM: str(input_scan),
|
@@ -646,7 +646,7 @@ class ScanTransfer(Task, input_names=("data",), output_names=("data",)):
|
|
646
646
|
print("### copying files ", scanID, " to ", outputdir)
|
647
647
|
print("### ...")
|
648
648
|
|
649
|
-
info = "start moving folder from
|
649
|
+
info = f"start moving folder from {scanID} to {outputdir}"
|
650
650
|
logger.processStarted(info, extra={logconfig.DOC_TITLE: self._scheme_title})
|
651
651
|
|
652
652
|
def _signalCopyFailed(self):
|
@@ -27,16 +27,17 @@ __authors__ = ["H. Payno"]
|
|
27
27
|
__license__ = "MIT"
|
28
28
|
__date__ = "18/06/2017"
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
from
|
30
|
+
import logging
|
31
|
+
|
32
|
+
from ewokscore.task import Task as EwoksTask
|
33
|
+
|
34
|
+
from tomwer.core import settings, utils
|
33
35
|
from tomwer.core.process.task import BaseProcessInfo
|
36
|
+
from tomwer.core.scan.scanbase import TomwerScanBase, _TomwerBaseDock
|
34
37
|
from tomwer.core.scan.scanfactory import ScanFactory
|
38
|
+
from tomwer.core.signal import Signal
|
35
39
|
from tomwer.core.utils import logconfig
|
36
40
|
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
37
|
-
import logging
|
38
|
-
from tomwer.core.scan.scanbase import TomwerScanBase, _TomwerBaseDock
|
39
|
-
from ewokscore.task import Task as EwoksTask
|
40
41
|
|
41
42
|
logger = logging.getLogger(__name__)
|
42
43
|
|
@@ -28,13 +28,14 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "16/06/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.control.volumesymlink import VolumeSymbolicLinkProcess
|
33
|
-
from tomwer.core.utils.scanutils import MockEDF
|
34
37
|
from tomwer.core.scan.edfscan import EDFTomoScan
|
35
|
-
import
|
36
|
-
import shutil
|
37
|
-
import os
|
38
|
+
from tomwer.core.utils.scanutils import MockEDF
|
38
39
|
|
39
40
|
|
40
41
|
class TestVolumeSymbolicLink(unittest.TestCase):
|
@@ -28,12 +28,13 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "12/12/2018"
|
29
29
|
|
30
30
|
|
31
|
+
import logging
|
32
|
+
import time
|
33
|
+
|
31
34
|
from tomwer.core.process.task import Task
|
32
35
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
33
36
|
from tomwer.core.scan.scanfactory import ScanFactory
|
34
37
|
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
35
|
-
import time
|
36
|
-
import logging
|
37
38
|
|
38
39
|
_logger = logging.getLogger(__name__)
|
39
40
|
|
@@ -74,8 +75,7 @@ class Timer(Task, input_names=("data",), output_names=("data",)):
|
|
74
75
|
scan = scan
|
75
76
|
if not isinstance(scan, TomwerScanBase):
|
76
77
|
raise TypeError(
|
77
|
-
"scan is expected to be a dict or an instance "
|
78
|
-
"of TomwerScanBase. Not {}".format(type(scan))
|
78
|
+
f"scan is expected to be a dict or an instance of TomwerScanBase. Not {type(scan)}"
|
79
79
|
)
|
80
80
|
time.sleep(self.waiting_time)
|
81
81
|
if self._return_dict:
|
@@ -29,16 +29,18 @@ __date__ = "16/11/2020"
|
|
29
29
|
|
30
30
|
|
31
31
|
import logging
|
32
|
-
|
32
|
+
import os
|
33
|
+
|
34
|
+
from silx.utils.enum import Enum as _Enum
|
33
35
|
from tomoscan.factory import Factory
|
34
36
|
from tomoscan.volumebase import VolumeBase
|
37
|
+
|
38
|
+
import tomwer.version
|
35
39
|
from tomwer.core.process.task import Task
|
40
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
36
41
|
from tomwer.core.scan.scanfactory import ScanFactory
|
37
42
|
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
38
|
-
from silx.utils.enum import Enum as _Enum
|
39
43
|
from tomwer.utils import docstring
|
40
|
-
import tomwer.version
|
41
|
-
import os
|
42
44
|
|
43
45
|
_logger = logging.getLogger(__name__)
|
44
46
|
|
@@ -128,8 +130,7 @@ class VolumeSymbolicLinkProcess(Task, input_names=("data",), output_names=("data
|
|
128
130
|
return
|
129
131
|
if not isinstance(scan, TomwerScanBase):
|
130
132
|
raise TypeError(
|
131
|
-
"scan is expected to be a dict or an instance "
|
132
|
-
"of TomwerScanBase. Not {}".format(type(scan))
|
133
|
+
f"scan is expected to be a dict or an instance of TomwerScanBase. Not {type(scan)}"
|
133
134
|
)
|
134
135
|
|
135
136
|
if self._output_type is OutputType.STATIC:
|
@@ -150,9 +151,7 @@ class VolumeSymbolicLinkProcess(Task, input_names=("data",), output_names=("data
|
|
150
151
|
os.path.join(output_folder, self._output_type.value)
|
151
152
|
)
|
152
153
|
else:
|
153
|
-
raise ValueError(
|
154
|
-
"output type {} is not managed".format(self._output_type.value)
|
155
|
-
)
|
154
|
+
raise ValueError(f"output type {self._output_type.value} is not managed")
|
156
155
|
create_volume_symbolic_link(scan=scan, output_folder=output_folder)
|
157
156
|
self.outputs.data = scan
|
158
157
|
|
@@ -28,14 +28,15 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "04/11/2020"
|
29
29
|
|
30
30
|
|
31
|
-
|
32
|
-
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
33
|
-
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
31
|
+
import nxtomomill.version
|
34
32
|
from nxtomomill.utils import add_dark_flat_nx_file
|
33
|
+
from silx.io.url import DataUrl
|
34
|
+
|
35
35
|
from tomwer.core.process.task import Task
|
36
|
+
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
37
|
+
from tomwer.core.scan.scanbase import TomwerScanBase
|
36
38
|
from tomwer.core.scan.scanfactory import ScanFactory
|
37
|
-
from
|
38
|
-
import nxtomomill.version
|
39
|
+
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
39
40
|
|
40
41
|
|
41
42
|
def apply_dark_flat_patch(scan: HDF5TomoScan, config: dict) -> TomwerScanBase:
|
@@ -47,8 +48,7 @@ def apply_dark_flat_patch(scan: HDF5TomoScan, config: dict) -> TomwerScanBase:
|
|
47
48
|
"""
|
48
49
|
if not isinstance(scan, HDF5TomoScan):
|
49
50
|
raise ValueError(
|
50
|
-
"Dark and flat patch only manage HDF5TomoScan and "
|
51
|
-
"not {}".format(type(scan))
|
51
|
+
f"Dark and flat patch only manage HDF5TomoScan and not {type(scan)}"
|
52
52
|
)
|
53
53
|
if config is None:
|
54
54
|
return scan
|
@@ -79,13 +79,10 @@ class DarkFlatPatch(Task, input_names=("data",), output_names=("data",)):
|
|
79
79
|
return
|
80
80
|
if not isinstance(scan, TomwerScanBase):
|
81
81
|
raise TypeError(
|
82
|
-
"scan is expected to be a dict or an instance "
|
83
|
-
"of TomwerScanBase. Not {}".format(type(scan))
|
82
|
+
f"scan is expected to be a dict or an instance of TomwerScanBase. Not {type(scan)}"
|
84
83
|
)
|
85
84
|
if not isinstance(scan, HDF5TomoScan):
|
86
|
-
raise ValueError(
|
87
|
-
"input type of {}: {} is not managed" "".format(scan, type(scan))
|
88
|
-
)
|
85
|
+
raise ValueError(f"input type of {scan}: {type(scan)} is not managed")
|
89
86
|
|
90
87
|
config = self.get_configuration()
|
91
88
|
apply_dark_flat_patch(scan=scan, config=config)
|
@@ -28,16 +28,18 @@ __license__ = "MIT"
|
|
28
28
|
__date__ = "26/10/2020"
|
29
29
|
|
30
30
|
|
31
|
+
import logging
|
32
|
+
|
33
|
+
import nxtomomill.version
|
34
|
+
from nxtomomill.utils import change_image_key_control as _change_image_key_control
|
35
|
+
from tomoscan.esrf.scan.hdf5scan import ImageKey
|
31
36
|
from tomoscan.esrf.scan.hdf5scan import ImageKey as _ImageKey
|
37
|
+
|
38
|
+
from tomwer.core.process.task import Task
|
32
39
|
from tomwer.core.scan.hdf5scan import HDF5TomoScan
|
33
40
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
34
|
-
from nxtomomill.utils import change_image_key_control as _change_image_key_control
|
35
|
-
from tomwer.core.process.task import Task
|
36
|
-
from tomoscan.esrf.scan.hdf5scan import ImageKey
|
37
41
|
from tomwer.core.scan.scanfactory import ScanFactory
|
38
42
|
from tomwer.core.utils.scanutils import data_identifier_to_scan
|
39
|
-
import nxtomomill.version
|
40
|
-
import logging
|
41
43
|
|
42
44
|
_logger = logging.getLogger(__name__)
|
43
45
|
|
@@ -63,8 +65,7 @@ def change_image_key_control(scan: HDF5TomoScan, config: dict) -> TomwerScanBase
|
|
63
65
|
return
|
64
66
|
elif not isinstance(scan, HDF5TomoScan):
|
65
67
|
raise ValueError(
|
66
|
-
"Image key control only handle HDF5TomoScan and "
|
67
|
-
"not {}".format(type(scan))
|
68
|
+
f"Image key control only handle HDF5TomoScan and not {type(scan)}"
|
68
69
|
)
|
69
70
|
|
70
71
|
if "modifications" not in config:
|
@@ -83,7 +84,7 @@ def change_image_key_control(scan: HDF5TomoScan, config: dict) -> TomwerScanBase
|
|
83
84
|
filter(lambda item: item[1] is image_key_type, modifications.items())
|
84
85
|
)
|
85
86
|
frame_indexes = tuple(frame_indexes_dict.keys())
|
86
|
-
_logger.warning("will modify {} to {}"
|
87
|
+
_logger.warning(f"will modify {frame_indexes} to {image_key_type}")
|
87
88
|
_change_image_key_control(
|
88
89
|
file_path=scan.master_file,
|
89
90
|
entry=scan.entry,
|
@@ -118,13 +119,10 @@ class ImageKeyEditor(Task, input_names=("data",), output_names=("data",)):
|
|
118
119
|
return
|
119
120
|
if not isinstance(scan, TomwerScanBase):
|
120
121
|
raise TypeError(
|
121
|
-
"scan is expected to be a dict or an instance "
|
122
|
-
"of TomwerScanBase. Not {}".format(type(scan))
|
122
|
+
f"scan is expected to be a dict or an instance of TomwerScanBase. Not {type(scan)}"
|
123
123
|
)
|
124
124
|
if not isinstance(scan, HDF5TomoScan):
|
125
|
-
raise ValueError(
|
126
|
-
"input type of {}: {} is not managed" "".format(scan, type(scan))
|
127
|
-
)
|
125
|
+
raise ValueError(f"input type of {scan}: {(type(scan))} is not managed")
|
128
126
|
|
129
127
|
change_image_key_control(scan=scan, config=self.get_configuration())
|
130
128
|
config = self.get_configuration()
|