tomwer 1.3.26__py3-none-any.whl → 1.4.0__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/orange/managedprocess.py +1 -29
- orangecontrib/tomwer/orange/settings.py +2 -28
- orangecontrib/tomwer/tests/TestAcquisition.py +220 -0
- orangecontrib/tomwer/tutorials/append_raw_darks_and_flats_frames_to_NXtomos.ows +2 -2
- orangecontrib/tomwer/tutorials/copy_reduced_darks_and_flats_meth1.ows +1 -1
- orangecontrib/tomwer/tutorials/{icat_publication.ows → drac_publication.ows} +7 -21
- orangecontrib/tomwer/tutorials/id16b/ID16b_full_volume.ows +22 -0
- orangecontrib/tomwer/tutorials/id16b/ID16b_insitu.ows +302 -0
- orangecontrib/tomwer/tutorials/id16b/ID16b_normalization.ows +218 -0
- orangecontrib/tomwer/tutorials/simple_volume_to_slurm_reconstruction.ows +29 -24
- orangecontrib/tomwer/tutorials/test_cor.ows +19 -0
- orangecontrib/tomwer/tutorials/volume_casting_on_slurm.ows +54 -0
- orangecontrib/tomwer/widgets/__init__.py +3 -5
- orangecontrib/tomwer/widgets/cluster/FutureSupervisorOW.py +35 -54
- orangecontrib/tomwer/widgets/cluster/SlurmClusterOW.py +1 -31
- orangecontrib/tomwer/widgets/control/AdvancementOW.py +1 -29
- orangecontrib/tomwer/widgets/control/DataDiscoveryOW.py +5 -4
- orangecontrib/tomwer/widgets/control/DataListenerOW.py +1 -29
- orangecontrib/tomwer/widgets/control/DataSelectorOW.py +11 -30
- orangecontrib/tomwer/widgets/control/DataTransfertOW.py +2 -28
- orangecontrib/tomwer/widgets/control/DataValidatorOW.py +1 -28
- orangecontrib/tomwer/widgets/control/DataWatcherOW.py +1 -28
- orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py +48 -51
- orangecontrib/tomwer/widgets/control/EmailOW.py +12 -2
- orangecontrib/tomwer/widgets/control/FilterOW.py +1 -28
- orangecontrib/tomwer/widgets/control/NXTomomillOW.py +37 -53
- orangecontrib/tomwer/widgets/control/NXtomoConcatenate.py +21 -20
- orangecontrib/tomwer/widgets/control/NotifierOW.py +9 -28
- orangecontrib/tomwer/widgets/control/ReduceDarkFlatSelectorOW.py +3 -2
- orangecontrib/tomwer/widgets/control/SingleTomoObjOW.py +1 -27
- orangecontrib/tomwer/widgets/control/TimerOW.py +9 -28
- orangecontrib/tomwer/widgets/control/TomoObjSeriesOW.py +58 -0
- orangecontrib/tomwer/widgets/control/VolumeSelector.py +8 -30
- orangecontrib/tomwer/widgets/control/icons/nxtomomill.svg +173 -119
- orangecontrib/tomwer/widgets/control/icons/reduced_darkflat_selector.png +0 -0
- orangecontrib/tomwer/widgets/control/icons/reduced_darkflat_selector.svg +55 -195
- orangecontrib/tomwer/widgets/control/icons/{tomoobjserie.svg → tomoobjseries.svg} +2 -2
- orangecontrib/tomwer/widgets/dataportal/PublishProcessedDataOW.py +172 -0
- orangecontrib/tomwer/widgets/{icat → dataportal}/__init__.py +2 -2
- orangecontrib/tomwer/widgets/debugtools/DatasetGeneratorOW.py +2 -29
- orangecontrib/tomwer/widgets/debugtools/ObjectInspectorOW.py +1 -29
- orangecontrib/tomwer/widgets/edit/DarkFlatPatchOW.py +48 -73
- orangecontrib/tomwer/widgets/edit/ImageKeyEditorOW.py +48 -75
- orangecontrib/tomwer/widgets/edit/ImageKeyUpgraderOW.py +5 -30
- orangecontrib/tomwer/widgets/edit/NXtomoEditorOW.py +51 -52
- orangecontrib/tomwer/widgets/other/PythonScriptOW.py +22 -10
- orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +51 -60
- orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py +22 -68
- orangecontrib/tomwer/widgets/reconstruction/DarkRefAndCopyOW.py +3 -30
- orangecontrib/tomwer/widgets/reconstruction/NabuHelicalPrepareWeightsDoubleOW.py +21 -19
- orangecontrib/tomwer/widgets/reconstruction/NabuOW.py +7 -70
- orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py +41 -84
- orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +15 -40
- orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +13 -35
- orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py +2 -30
- orangecontrib/tomwer/widgets/stitching/ZStitchingConfigOW.py +11 -11
- orangecontrib/tomwer/widgets/utils.py +2 -29
- orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +1 -27
- orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +1 -27
- orangecontrib/tomwer/widgets/visualization/NXtomoMetadataViewerOW.py +1 -1
- orangecontrib/tomwer/widgets/visualization/RadioStackOW.py +2 -28
- orangecontrib/tomwer/widgets/visualization/SampleMovedOW.py +1 -27
- orangecontrib/tomwer/widgets/visualization/SinogramViewerOW.py +1 -27
- orangecontrib/tomwer/widgets/visualization/SliceStackOW.py +2 -28
- tomwer/__init__.py +3 -28
- tomwer/__main__.py +8 -4
- tomwer/app/__init__.py +2 -0
- tomwer/app/axis.py +8 -10
- tomwer/app/canvas.py +23 -29
- tomwer/app/canvas_launcher/config.py +14 -102
- tomwer/app/canvas_launcher/environ.py +5 -8
- tomwer/app/canvas_launcher/mainwindow.py +175 -69
- tomwer/app/canvas_launcher/splash.py +1 -3
- tomwer/app/canvas_launcher/utils.py +47 -0
- tomwer/app/canvas_launcher/widgetsscheme.py +3 -10
- tomwer/app/diffframe.py +2 -0
- tomwer/app/imagekeyeditor.py +2 -1
- tomwer/app/imagekeyupgrader.py +2 -0
- tomwer/app/multicor.py +5 -2
- tomwer/app/multipag.py +16 -5
- tomwer/app/nabuapp.py +2 -1
- tomwer/app/nxtomoeditor.py +17 -12
- tomwer/app/patchrawdarkflat.py +2 -0
- tomwer/app/radiostack.py +3 -2
- tomwer/app/reducedarkflat.py +3 -0
- tomwer/app/samplemoved.py +2 -0
- tomwer/app/scanviewer.py +2 -0
- tomwer/app/sinogramviewer.py +2 -0
- tomwer/app/slicestack.py +11 -13
- tomwer/app/stitching/common.py +431 -0
- tomwer/app/stopdatalistener.py +3 -0
- tomwer/app/ystitching.py +26 -0
- tomwer/app/zstitching.py +8 -363
- tomwer/core/__init__.py +2 -28
- tomwer/core/cluster/__init__.py +3 -0
- tomwer/core/cluster/cluster.py +10 -26
- tomwer/core/futureobject.py +17 -43
- tomwer/core/log/__init__.py +2 -0
- tomwer/core/log/processlog.py +0 -28
- tomwer/core/process/cluster/supervisor.py +52 -34
- tomwer/core/process/conditions/filters.py +3 -28
- tomwer/core/process/control/datalistener/datalistener.py +7 -75
- tomwer/core/process/control/datalistener/rpcserver.py +8 -38
- tomwer/core/process/control/datawatcher/datawatcher.py +11 -40
- tomwer/core/process/control/datawatcher/datawatcherobserver.py +30 -64
- tomwer/core/process/control/datawatcher/datawatcherprocess.py +11 -32
- tomwer/core/process/control/datawatcher/edfdwprocess.py +2 -27
- tomwer/core/process/control/datawatcher/hdf5dwprocess.py +1 -26
- tomwer/core/process/control/datawatcher/status.py +1 -26
- tomwer/core/process/control/emailnotifier.py +11 -23
- tomwer/core/process/control/nxtomoconcatenate.py +20 -18
- tomwer/core/process/control/nxtomomill.py +9 -44
- tomwer/core/process/control/scanlist.py +0 -27
- tomwer/core/process/control/scantransfer.py +15 -13
- tomwer/core/process/control/scanvalidator.py +4 -30
- tomwer/core/process/control/{test → tests}/test_concatenate_nxtomos.py +5 -5
- tomwer/core/process/control/timer.py +1 -27
- tomwer/core/process/control/tomoobjseries.py +12 -0
- tomwer/core/process/drac/binning.py +37 -0
- tomwer/core/process/drac/dracbase.py +170 -0
- tomwer/core/process/drac/gallery.py +109 -0
- tomwer/core/process/drac/output.py +12 -0
- tomwer/core/process/drac/processeddataset.py +147 -0
- tomwer/core/process/drac/publish.py +118 -0
- tomwer/core/process/drac/rawdataset.py +142 -0
- tomwer/core/process/drac/tests/test_gallery.py +71 -0
- tomwer/core/process/drac/tests/test_icat_processed_dataset.py +80 -0
- tomwer/core/process/drac/tests/test_icat_raw_dataset.py +90 -0
- tomwer/core/process/edit/darkflatpatch.py +1 -28
- tomwer/core/process/edit/imagekeyeditor.py +4 -32
- tomwer/core/process/edit/nxtomoeditor.py +307 -0
- tomwer/core/process/edit/tests/test_darkflatpatch.py +243 -0
- tomwer/core/process/edit/tests/test_imagekey_editor.py +99 -0
- tomwer/core/process/output.py +9 -2
- tomwer/core/process/reconstruction/__init__.py +0 -26
- tomwer/core/process/reconstruction/axis/anglemode.py +1 -29
- tomwer/core/process/reconstruction/axis/axis.py +47 -804
- tomwer/core/process/reconstruction/axis/mode.py +89 -25
- tomwer/core/process/reconstruction/axis/params.py +131 -283
- tomwer/core/process/reconstruction/axis/projectiontype.py +0 -28
- tomwer/core/process/reconstruction/axis/side.py +8 -0
- tomwer/core/process/reconstruction/darkref/darkrefs.py +14 -39
- tomwer/core/process/reconstruction/darkref/darkrefscopy.py +7 -39
- tomwer/core/process/reconstruction/darkref/params.py +1 -28
- tomwer/core/process/reconstruction/nabu/castvolume.py +19 -34
- tomwer/core/process/reconstruction/nabu/nabucommon.py +18 -43
- tomwer/core/process/reconstruction/nabu/nabuscores.py +64 -68
- tomwer/core/process/reconstruction/nabu/nabuslices.py +63 -105
- tomwer/core/process/reconstruction/nabu/nabuvolume.py +44 -70
- tomwer/core/process/reconstruction/nabu/plane.py +10 -0
- tomwer/core/process/reconstruction/nabu/settings.py +1 -28
- tomwer/core/process/reconstruction/nabu/target.py +0 -28
- tomwer/core/process/reconstruction/nabu/test/test_castvolume.py +116 -0
- tomwer/core/process/reconstruction/nabu/test/test_nabu_utils.py +277 -0
- tomwer/core/process/reconstruction/nabu/test/test_nabunormalization.py +199 -0
- tomwer/core/process/reconstruction/nabu/utils.py +11 -60
- tomwer/core/process/reconstruction/normalization/normalization.py +2 -32
- tomwer/core/process/reconstruction/normalization/params.py +3 -35
- tomwer/core/process/reconstruction/output.py +14 -19
- tomwer/core/process/reconstruction/paramsbase.py +4 -33
- tomwer/core/process/reconstruction/saaxis/params.py +5 -33
- tomwer/core/process/reconstruction/saaxis/saaxis.py +22 -51
- tomwer/core/process/reconstruction/sadeltabeta/params.py +2 -31
- tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +18 -46
- tomwer/core/process/reconstruction/scores/params.py +9 -39
- tomwer/core/process/reconstruction/scores/scores.py +10 -42
- tomwer/core/process/reconstruction/tests/__init__.py +0 -0
- tomwer/core/process/reconstruction/tests/test_axis.py +46 -0
- tomwer/core/process/reconstruction/tests/test_darkref.py +33 -0
- tomwer/core/process/reconstruction/{test → tests}/test_saaxis.py +1 -27
- tomwer/core/process/reconstruction/tests/test_sadeltabeta.py +48 -0
- tomwer/core/process/reconstruction/{test → tests}/test_utils.py +4 -4
- tomwer/core/process/reconstruction/utils/cor.py +8 -4
- tomwer/core/process/script/python.py +1 -27
- tomwer/core/process/script/tests/test_script.py +41 -0
- tomwer/core/process/stitching/metadataholder.py +5 -4
- tomwer/core/process/stitching/nabustitcher.py +35 -5
- tomwer/core/process/stitching/tests/test_metadataholder.py +17 -0
- tomwer/core/process/task.py +20 -63
- tomwer/core/process/tests/__init__.py +0 -0
- tomwer/core/process/{test → tests}/test_conditions.py +1 -28
- tomwer/core/process/{test → tests}/test_dark_and_flat.py +1 -27
- tomwer/core/process/{test → tests}/test_data_listener.py +1 -27
- tomwer/core/process/{test → tests}/test_data_transfer.py +2 -28
- tomwer/core/process/{test → tests}/test_data_watcher.py +1 -27
- tomwer/core/process/{test → tests}/test_nabu.py +2 -33
- tomwer/core/process/{test → tests}/test_normalization.py +1 -26
- tomwer/core/process/{test → tests}/test_timer.py +1 -27
- tomwer/core/process/utils.py +2 -31
- tomwer/core/process/visualization/dataviewer.py +1 -26
- tomwer/core/process/visualization/diffviewer.py +1 -26
- tomwer/core/process/visualization/imagestackviewer.py +0 -26
- tomwer/core/process/visualization/radiostack.py +0 -26
- tomwer/core/process/visualization/samplemoved.py +0 -28
- tomwer/core/process/visualization/sinogramviewer.py +0 -27
- tomwer/core/process/visualization/slicestack.py +0 -28
- tomwer/core/process/visualization/tests/test_data_viewer.py +12 -0
- tomwer/core/process/visualization/tests/test_diff_viewer.py +12 -0
- tomwer/core/process/visualization/tests/test_image_stack_viewer.py +14 -0
- tomwer/core/process/visualization/tests/test_radio_stack.py +12 -0
- tomwer/core/process/visualization/tests/test_sample_moved.py +14 -0
- tomwer/core/process/visualization/tests/test_sinogram_viewer.py +13 -0
- tomwer/core/process/visualization/tests/test_slice_stack.py +13 -0
- tomwer/core/process/visualization/tests/test_volume_viewer.py +12 -0
- tomwer/core/process/visualization/volumeviewer.py +0 -29
- tomwer/core/scan/__init__.py +3 -27
- tomwer/core/scan/blissscan.py +5 -34
- tomwer/core/scan/edfscan.py +19 -53
- tomwer/core/scan/hdf5scan.py +2 -2
- tomwer/core/scan/nxtomoscan.py +48 -54
- tomwer/core/scan/scanbase.py +107 -203
- tomwer/core/scan/scanfactory.py +11 -41
- tomwer/core/scan/tests/__init__.py +0 -0
- tomwer/core/scan/tests/test_edf.py +25 -0
- tomwer/core/scan/tests/test_future_scan.py +35 -0
- tomwer/core/scan/tests/test_nxtomoscan.py +143 -0
- tomwer/core/scan/tests/test_process_registration.py +64 -0
- tomwer/core/settings.py +18 -40
- tomwer/core/tests/__init__.py +0 -0
- tomwer/core/tests/test_scanutils.py +26 -0
- tomwer/core/{test → tests}/test_utils.py +1 -28
- tomwer/core/tomwer_object.py +4 -0
- tomwer/core/utils/__init__.py +2 -0
- tomwer/core/utils/char.py +0 -28
- tomwer/core/utils/deprecation.py +12 -38
- tomwer/core/utils/dictutils.py +1 -3
- tomwer/core/utils/ftseriesutils.py +1 -27
- tomwer/core/utils/gpu.py +0 -28
- tomwer/core/utils/image.py +8 -39
- tomwer/core/utils/locker.py +1 -28
- tomwer/core/utils/logconfig.py +0 -27
- tomwer/core/utils/normalization.py +4 -31
- tomwer/core/utils/nxtomoutils.py +8 -38
- tomwer/core/utils/resource.py +0 -26
- tomwer/core/utils/scanutils.py +23 -52
- tomwer/core/utils/slurm.py +7 -30
- tomwer/core/utils/spec.py +6 -6
- tomwer/core/utils/tests/__init__.py +0 -0
- tomwer/core/utils/tests/test_image.py +30 -0
- tomwer/core/utils/tests/test_nxtomo.py +38 -0
- tomwer/core/utils/tests/test_scan_utils.py +46 -0
- tomwer/core/utils/tests/test_time.py +6 -0
- tomwer/core/utils/threads.py +0 -26
- tomwer/core/utils/time.py +0 -27
- tomwer/core/volume/__init__.py +4 -0
- tomwer/core/volume/edfvolume.py +1 -28
- tomwer/core/volume/hdf5volume.py +1 -28
- tomwer/core/volume/jp2kvolume.py +1 -27
- tomwer/core/volume/rawvolume.py +1 -28
- tomwer/core/volume/tests/test_volumes.py +21 -0
- tomwer/core/volume/tiffvolume.py +1 -28
- tomwer/core/volume/volumebase.py +5 -0
- tomwer/core/volume/volumefactory.py +7 -33
- tomwer/gui/__init__.py +0 -28
- tomwer/gui/cluster/__init__.py +2 -0
- tomwer/gui/cluster/slurm.py +297 -95
- tomwer/gui/cluster/supervisor.py +1 -27
- tomwer/gui/cluster/tests/__init__.py +0 -0
- tomwer/gui/cluster/{test → tests}/test_cluster.py +21 -26
- tomwer/gui/cluster/{test → tests}/test_supervisor.py +1 -27
- tomwer/gui/conditions/__init__.py +2 -0
- tomwer/gui/conditions/filter.py +1 -26
- tomwer/gui/configuration/__init__.py +2 -0
- tomwer/gui/control/__init__.py +2 -0
- tomwer/gui/control/actions.py +2 -28
- tomwer/gui/control/datadiscovery.py +4 -3
- tomwer/gui/control/datalist.py +64 -69
- tomwer/gui/control/datalistener.py +1 -39
- tomwer/gui/control/datareacheractions.py +1 -28
- tomwer/gui/control/datatransfert.py +2 -29
- tomwer/gui/control/datavalidator.py +3 -37
- tomwer/gui/control/datawatcher/__init__.py +0 -28
- tomwer/gui/control/datawatcher/configuration.py +1 -28
- tomwer/gui/control/datawatcher/datawatcher.py +3 -32
- tomwer/gui/control/datawatcher/datawatcherobserver.py +2 -28
- tomwer/gui/control/history.py +5 -35
- tomwer/gui/control/nxtomomill.py +3 -30
- tomwer/gui/control/observations.py +61 -55
- tomwer/gui/control/reducedarkflatselector.py +24 -20
- tomwer/gui/control/scanselectorwidget.py +2 -28
- tomwer/gui/control/selectorwidgetbase.py +17 -17
- tomwer/gui/control/series/__init__.py +0 -0
- tomwer/gui/control/{serie/seriecreator.py → series/seriescreator.py} +214 -235
- tomwer/gui/control/series/serieswaiter.py +0 -0
- tomwer/gui/control/series/test/test_creator.py +424 -0
- tomwer/gui/control/series/test/test_nxtomo_concatenate.py +21 -0
- tomwer/gui/control/singletomoobj.py +1 -1
- tomwer/gui/control/tests/__init__.py +0 -0
- tomwer/gui/control/tests/test_datalist.py +47 -0
- tomwer/gui/control/{test → tests}/test_datalistener.py +1 -28
- tomwer/gui/control/tests/test_datavalidator.py +27 -0
- tomwer/gui/control/{test → tests}/test_inputwidget.py +1 -27
- tomwer/gui/control/tests/test_process_manager.py +38 -0
- tomwer/gui/control/tests/test_scan_observations.py +23 -0
- tomwer/gui/control/tests/test_scanselector.py +42 -0
- tomwer/gui/control/{test → tests}/test_scanvalidator.py +1 -27
- tomwer/gui/control/{test → tests}/test_volume_dialog.py +2 -30
- tomwer/gui/control/{test → tests}/test_volumeselector.py +1 -27
- tomwer/gui/control/volumeselectorwidget.py +2 -30
- tomwer/gui/dataportal/__init__.py +2 -0
- tomwer/gui/{icat → dataportal}/createscreenshots.py +3 -2
- tomwer/gui/dataportal/gallery.py +133 -0
- tomwer/gui/dataportal/outputformat.py +0 -0
- tomwer/gui/dataportal/publish.py +96 -0
- tomwer/gui/dataportal/tests/test_create_screenshots_gui.py +23 -0
- tomwer/gui/dataportal/tests/test_gallery_gui.py +21 -0
- tomwer/gui/debugtools/__init__.py +2 -0
- tomwer/gui/debugtools/datasetgenerator.py +1 -30
- tomwer/gui/debugtools/objectinspector.py +1 -29
- tomwer/gui/dialog/QDataDialog.py +89 -0
- tomwer/gui/{qfolderdialog.py → dialog/QVolumeDialog.py} +8 -107
- tomwer/gui/dialog/__init__.py +1 -0
- tomwer/gui/edit/__init__.py +2 -0
- tomwer/gui/edit/dkrfpatch.py +52 -87
- tomwer/gui/edit/imagekeyeditor.py +18 -54
- tomwer/gui/edit/nxtomoeditor.py +113 -300
- tomwer/gui/edit/nxtomowarmer.py +3 -2
- tomwer/gui/edit/tests/__init__.py +0 -0
- tomwer/gui/edit/{test → tests}/test_dkrf_patch.py +3 -29
- tomwer/gui/edit/{test → tests}/test_image_key_editor.py +1 -27
- tomwer/gui/edit/{test → tests}/test_nx_editor.py +45 -23
- tomwer/gui/fonts.py +5 -0
- tomwer/gui/icons.py +28 -66
- tomwer/gui/illustrations.py +4 -34
- tomwer/gui/imagefromfile.py +5 -30
- tomwer/gui/metadataloader.py +36 -0
- tomwer/gui/qconfigfile.py +3 -0
- tomwer/gui/qlefilesystem.py +3 -0
- tomwer/gui/reconstruction/__init__.py +2 -0
- tomwer/gui/reconstruction/axis/AxisMainWindow.py +275 -0
- tomwer/gui/reconstruction/axis/AxisOptionsWidget.py +313 -0
- tomwer/gui/reconstruction/axis/AxisSettingsWidget.py +797 -0
- tomwer/gui/reconstruction/axis/AxisWidget.py +534 -0
- tomwer/gui/reconstruction/axis/CalculationWidget.py +218 -0
- tomwer/gui/reconstruction/axis/CompareImages.py +11 -44
- tomwer/gui/reconstruction/axis/ControlWidget.py +285 -0
- tomwer/gui/reconstruction/axis/EstimatedCORWidget.py +394 -0
- tomwer/gui/reconstruction/axis/EstimatedCorComboBox.py +118 -0
- tomwer/gui/reconstruction/axis/InputWidget.py +347 -0
- tomwer/gui/reconstruction/axis/ManualFramesSelection.py +168 -0
- tomwer/gui/reconstruction/axis/__init__.py +2 -2
- tomwer/gui/reconstruction/darkref/__init__.py +0 -27
- tomwer/gui/reconstruction/darkref/darkrefcopywidget.py +5 -34
- tomwer/gui/reconstruction/darkref/darkrefwidget.py +1 -27
- tomwer/gui/reconstruction/nabu/castvolume.py +40 -59
- tomwer/gui/reconstruction/nabu/check.py +7 -33
- tomwer/gui/reconstruction/nabu/nabuconfig/base.py +7 -34
- tomwer/gui/reconstruction/nabu/nabuconfig/ctf.py +6 -5
- tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py +10 -69
- tomwer/gui/reconstruction/nabu/nabuconfig/output.py +3 -47
- tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +54 -36
- tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +103 -54
- tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +116 -65
- tomwer/gui/reconstruction/nabu/nabuflow.py +31 -61
- tomwer/gui/reconstruction/nabu/platform.py +94 -0
- tomwer/gui/reconstruction/nabu/slices.py +81 -45
- tomwer/gui/reconstruction/nabu/slurm.py +1 -27
- tomwer/gui/reconstruction/nabu/test/test_cast_volume.py +82 -0
- tomwer/gui/reconstruction/nabu/test/test_check.py +66 -0
- tomwer/gui/reconstruction/nabu/test/test_ctf.py +46 -0
- tomwer/gui/reconstruction/nabu/test/test_helical.py +21 -0
- tomwer/gui/reconstruction/nabu/test/test_nabu_preprocessing.py +81 -0
- tomwer/gui/reconstruction/nabu/volume.py +62 -90
- tomwer/gui/reconstruction/normalization/intensity.py +5 -32
- tomwer/gui/reconstruction/normalization/test/test_intensity.py +89 -0
- tomwer/gui/reconstruction/saaxis/corrangeselector.py +32 -56
- tomwer/gui/reconstruction/saaxis/dimensionwidget.py +56 -96
- tomwer/gui/reconstruction/saaxis/saaxis.py +17 -38
- tomwer/gui/reconstruction/saaxis/sliceselector.py +8 -39
- tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +19 -37
- tomwer/gui/reconstruction/scores/control.py +2 -30
- tomwer/gui/reconstruction/scores/scoreplot.py +23 -49
- tomwer/gui/reconstruction/tests/__init__.py +0 -0
- tomwer/gui/reconstruction/{test → tests}/test_axis.py +23 -49
- tomwer/gui/reconstruction/{test → tests}/test_nabu.py +16 -31
- tomwer/gui/reconstruction/{test → tests}/test_saaxis.py +10 -37
- tomwer/gui/reconstruction/{test → tests}/test_sadeltabeta.py +1 -26
- tomwer/gui/samplemoved/__init__.py +2 -30
- tomwer/gui/samplemoved/selectiontable.py +3 -33
- tomwer/gui/settings.py +7 -0
- tomwer/gui/stackplot.py +33 -661
- tomwer/gui/stacks.py +261 -135
- tomwer/gui/stitching/SingleAxisStitchingWidget.py +326 -0
- tomwer/gui/stitching/StitchingOptionsWidget.py +438 -0
- tomwer/gui/stitching/StitchingWindow.py +586 -0
- tomwer/gui/stitching/__init__.py +2 -0
- tomwer/gui/stitching/alignment.py +90 -0
- tomwer/gui/stitching/axisorderedlist.py +44 -34
- tomwer/gui/stitching/config/axisparams.py +25 -11
- tomwer/gui/stitching/config/output.py +6 -5
- tomwer/gui/stitching/config/positionoveraxis.py +313 -51
- tomwer/gui/stitching/config/stitchingstrategies.py +22 -16
- tomwer/gui/stitching/config/tests/test_axisparams.py +25 -0
- tomwer/gui/stitching/config/tomoobjdetails.py +3 -5
- tomwer/gui/stitching/normalization.py +1 -0
- tomwer/gui/stitching/preview.py +59 -0
- tomwer/gui/stitching/singleaxis.py +57 -0
- tomwer/gui/stitching/stitchandbackground.py +3 -2
- tomwer/gui/stitching/stitching_preview.py +44 -36
- tomwer/gui/stitching/stitching_raw.py +5 -3
- tomwer/gui/stitching/tests/test_ZStitchingWindow.py +88 -0
- tomwer/gui/stitching/tests/test_axis_ordered_list.py +21 -0
- tomwer/gui/stitching/tests/test_normalization.py +27 -0
- tomwer/gui/stitching/tests/test_preview.py +68 -0
- tomwer/gui/stitching/tests/test_stitching_raw.py +110 -0
- tomwer/gui/stitching/tests/utils.py +92 -0
- tomwer/gui/stitching/utils.py +14 -0
- tomwer/gui/stitching/z_stitching/fineestimation.py +5 -33
- tomwer/gui/stitching/z_stitching/tests/test_fine_estimation.py +35 -0
- tomwer/gui/stitching/z_stitching/tests/test_raw_estimation.py +215 -0
- tomwer/gui/stitching/z_stitching/tests/test_stitching_window.py +51 -0
- tomwer/gui/tests/__init__.py +0 -0
- tomwer/gui/tests/test_axis_gui.py +43 -0
- tomwer/gui/{test → tests}/test_qfolder_dialog.py +1 -1
- tomwer/gui/utils/RangeWidget.py +44 -0
- tomwer/gui/utils/buttons.py +4 -3
- tomwer/gui/utils/completer.py +2 -33
- tomwer/gui/utils/flow.py +11 -40
- tomwer/gui/utils/gpu.py +60 -0
- tomwer/gui/utils/illustrations.py +1 -26
- tomwer/gui/utils/inputwidget.py +35 -73
- tomwer/gui/utils/lineselector/lineselector.py +9 -46
- tomwer/gui/utils/loadingmode.py +81 -0
- tomwer/gui/utils/qt_utils.py +9 -0
- tomwer/gui/utils/sandboxes.py +1 -26
- tomwer/gui/utils/scandescription.py +2 -31
- tomwer/gui/utils/scrollarea.py +6 -55
- tomwer/gui/utils/slider.py +4 -28
- tomwer/gui/utils/splashscreen.py +0 -28
- tomwer/gui/utils/step.py +14 -13
- tomwer/gui/utils/tests/test_completer.py +41 -0
- tomwer/gui/utils/tests/test_line_selector.py +21 -0
- tomwer/gui/utils/tests/test_splashscreen.py +8 -0
- tomwer/gui/utils/tests/test_vignettes.py +68 -0
- tomwer/gui/utils/unitsystem.py +15 -69
- tomwer/gui/utils/utils.py +4 -5
- tomwer/gui/utils/vignettes.py +10 -41
- tomwer/gui/utils/waiterthread.py +0 -26
- tomwer/gui/visualization/__init__.py +2 -0
- tomwer/gui/visualization/dataviewer.py +68 -421
- tomwer/gui/visualization/diffviewer/diffviewer.py +2 -30
- tomwer/gui/visualization/diffviewer/shiftwidget.py +4 -29
- tomwer/gui/visualization/fullscreenplot.py +5 -5
- tomwer/gui/visualization/imagestack.py +403 -0
- tomwer/gui/visualization/nxtomometadata.py +0 -4
- tomwer/gui/visualization/reconstructionparameters.py +14 -32
- tomwer/gui/visualization/scanoverview.py +33 -66
- tomwer/gui/visualization/sinogramviewer.py +2 -28
- tomwer/gui/visualization/test/__init__.py +0 -28
- tomwer/gui/visualization/test/test_dataviewer.py +1 -28
- tomwer/gui/visualization/test/test_diffviewer.py +1 -28
- tomwer/gui/visualization/test/test_nx_tomo_metadata_viewer.py +0 -5
- tomwer/gui/visualization/test/test_reconstruction_parameters.py +1 -27
- tomwer/gui/visualization/test/test_sinogramviewer.py +1 -28
- tomwer/gui/visualization/test/test_stacks.py +184 -115
- tomwer/gui/visualization/test/test_volumeviewer.py +3 -2
- tomwer/gui/visualization/tomoobjoverview.py +2 -2
- tomwer/gui/visualization/volumeoverview.py +3 -2
- tomwer/gui/visualization/volumeviewer.py +47 -43
- tomwer/io/__init__.py +2 -0
- tomwer/io/utils/h5pyutils.py +1 -27
- tomwer/io/utils/test/test_raw_and_processed_data.py +10 -0
- tomwer/io/utils/test/test_utils.py +67 -0
- tomwer/io/utils/utils.py +2 -31
- tomwer/resources/__init__.py +13 -33
- tomwer/resources/gui/icons/edit_downstream.svg +114 -0
- tomwer/resources/gui/icons/edit_upstream.svg +112 -0
- tomwer/resources/gui/icons/free_edition.svg +23 -0
- tomwer/resources/gui/icons/icat_gallery_opts.png +0 -0
- tomwer/resources/gui/icons/icat_gallery_opts.svg +80 -0
- tomwer/resources/gui/icons/search.png +0 -0
- tomwer/resources/gui/icons/search.svg +23 -0
- tomwer/resources/gui/icons/warning.png +0 -0
- tomwer/synctools/__init__.py +2 -0
- tomwer/synctools/axis.py +1 -27
- tomwer/synctools/darkref.py +1 -26
- tomwer/synctools/datalistener.py +1 -27
- tomwer/synctools/datatransfert.py +2 -27
- tomwer/synctools/imageloaderthread.py +1 -28
- tomwer/synctools/rsyncmanager.py +1 -25
- tomwer/synctools/saaxis.py +1 -26
- tomwer/synctools/sadeltabeta.py +1 -26
- tomwer/synctools/stacks/control/datalistener.py +1 -26
- tomwer/synctools/stacks/processingstack.py +4 -33
- tomwer/synctools/stacks/reconstruction/axis.py +6 -53
- tomwer/synctools/stacks/reconstruction/castvolume.py +12 -43
- tomwer/synctools/stacks/reconstruction/dkrefcopy.py +4 -27
- tomwer/synctools/stacks/reconstruction/nabu.py +3 -28
- tomwer/synctools/stacks/reconstruction/normalization.py +2 -27
- tomwer/synctools/stacks/reconstruction/saaxis.py +2 -27
- tomwer/synctools/stacks/reconstruction/sadeltabeta.py +2 -27
- tomwer/synctools/tests/__init__.py +0 -0
- tomwer/synctools/{test → tests}/test_darkRefs.py +16 -40
- tomwer/synctools/{test → tests}/test_foldertransfer.py +2 -33
- tomwer/synctools/utils/scanstages.py +2 -31
- tomwer/tests/__init__.py +1 -0
- tomwer/tests/app/test_stitching.py +95 -0
- tomwer/tests/datasets.py +1 -5
- tomwer/tests/orangecontrib/tomwer/widgets/cluster/tests/test_future_supervisorow.py +48 -0
- tomwer/tests/orangecontrib/tomwer/widgets/cluster/tests/test_slurm_clusterow.py +40 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_advancement.py +8 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_data_validator.py +55 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_datadiscovery.py +129 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_datalistener.py +111 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_dataselector.py +69 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_datawatcher.py +411 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_emailow.py +29 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_notifier.py +24 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_nxtomo_concatenate_ow.py +64 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_nxtomomill.py +133 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_reduce_dark_flat_selector.py +40 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_singletomoobj.py +40 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_timerow.py +25 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_tomoobj_series.py +96 -0
- tomwer/tests/orangecontrib/tomwer/widgets/control/tests/test_volume_selector.py +69 -0
- orangecontrib/tomwer/widgets/edit/test/test_image_key_editor.py → tomwer/tests/orangecontrib/tomwer/widgets/debugtools/tests/test_dataset_generator.py +17 -16
- tomwer/tests/orangecontrib/tomwer/widgets/debugtools/tests/test_object_inspector.py +36 -0
- {orangecontrib/tomwer/widgets/edit/test → tomwer/tests/orangecontrib/tomwer/widgets/edit/tests}/test_dark_flat_patch.py +1 -27
- tomwer/tests/orangecontrib/tomwer/widgets/edit/tests/test_image_key_editor.py +30 -0
- tomwer/tests/orangecontrib/tomwer/widgets/edit/tests/test_nxtomo_editor.py +138 -0
- tomwer/tests/orangecontrib/tomwer/widgets/other/tests/test_pythonscript.py +31 -0
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_axis.py +199 -0
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_cast_volumeow.py +58 -0
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_dark_refs_widget.py +136 -0
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_delta_beta_selector.py +15 -0
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_i_norm.py +200 -0
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_nabu_helical_prepare_weights_double.py +20 -0
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_nabu_volume.py +74 -0
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_nabu_widget.py +107 -0
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_sa_delta_beta.py +194 -0
- tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_saaxis.py +194 -0
- tomwer/tests/orangecontrib/tomwer/widgets/stitching/tests/test_zstitching.py +313 -0
- tomwer/tests/orangecontrib/tomwer/widgets/tests/test_conditions.py +85 -0
- tomwer/tests/orangecontrib/tomwer/widgets/tests/test_darkref.py +225 -0
- tomwer/tests/orangecontrib/tomwer/widgets/tests/test_foldertransfert.py +105 -0
- tomwer/tests/orangecontrib/tomwer/widgets/visualization/tests/test_dataviewerow.py +57 -0
- tomwer/tests/orangecontrib/tomwer/widgets/visualization/tests/test_diffviewerow.py +39 -0
- tomwer/tests/orangecontrib/tomwer/widgets/visualization/tests/test_nxtomo_metadata_viewer.py +29 -0
- tomwer/tests/orangecontrib/tomwer/widgets/visualization/tests/test_radio_stackow.py +31 -0
- tomwer/tests/orangecontrib/tomwer/widgets/visualization/tests/test_sample_movedow.py +46 -0
- tomwer/tests/orangecontrib/tomwer/widgets/visualization/tests/test_sinogram_viewerow.py +31 -0
- tomwer/tests/orangecontrib/tomwer/widgets/visualization/tests/test_slice_stackow.py +31 -0
- tomwer/tests/orangecontrib/tomwer/widgets/visualization/tests/test_volume_viewerow.py +32 -0
- tomwer/tests/test_ewoks/test_conversion.py +104 -0
- tomwer/tests/test_ewoks/test_single_node_execution.py +87 -0
- tomwer/tests/test_ewoks/test_workflows.py +138 -0
- tomwer/utils.py +11 -39
- tomwer/version.py +2 -2
- {tomwer-1.3.26.dist-info → tomwer-1.4.0.dist-info}/LICENSE +3 -3
- tomwer-1.4.0.dist-info/METADATA +337 -0
- tomwer-1.4.0.dist-info/RECORD +912 -0
- {tomwer-1.3.26.dist-info → tomwer-1.4.0.dist-info}/WHEEL +1 -1
- {tomwer-1.3.26.dist-info → tomwer-1.4.0.dist-info}/entry_points.txt +1 -0
- orangecontrib/tomwer/widgets/control/DataListOW.py +0 -129
- orangecontrib/tomwer/widgets/control/TomoObjSerieOW.py +0 -86
- orangecontrib/tomwer/widgets/control/VolumeSymLinkOW.py +0 -182
- orangecontrib/tomwer/widgets/edit/test/test_nxtomo_editor.py +0 -141
- orangecontrib/tomwer/widgets/icat/PublishProcessedDataOW.py +0 -115
- orangecontrib/tomwer/widgets/icat/RawDataScreenshotCreatorOW.py +0 -98
- orangecontrib/tomwer/widgets/icat/SaveToGalleryAndPublishOW.py +0 -129
- orangecontrib/tomwer/widgets/icat/icons/add_gallery.png +0 -0
- orangecontrib/tomwer/widgets/icat/icons/add_gallery.svg +0 -82
- orangecontrib/tomwer/widgets/icat/icons/raw_screenshots.png +0 -0
- orangecontrib/tomwer/widgets/icat/icons/raw_screenshots.svg +0 -143
- orangecontrib/tomwer/widgets/visualization/LivesliceOW.py +0 -87
- orangecontrib/tomwer/widgets/visualization/icons/liveslice.png +0 -0
- orangecontrib/tomwer/widgets/visualization/icons/liveslice.svg +0 -110
- tomwer/core/log/logger.py +0 -130
- tomwer/core/process/control/test/test_volume_link.py +0 -74
- tomwer/core/process/control/tomoobjserie.py +0 -12
- tomwer/core/process/control/volumesymlink.py +0 -200
- tomwer/core/process/icat/createscreenshots.py +0 -100
- tomwer/core/process/icat/gallery.py +0 -377
- tomwer/core/process/icat/icatbase.py +0 -36
- tomwer/core/process/icat/publish.py +0 -228
- tomwer/core/process/icat/screenshots.py +0 -27
- tomwer/core/process/reconstruction/test/test_darkref.py +0 -60
- tomwer/core/process/reconstruction/test/test_sadeltabeta.py +0 -74
- tomwer/core/process/test/test_axis.py +0 -309
- tomwer/core/process/visualization/liveslice.py +0 -6
- tomwer/core/progress.py +0 -100
- tomwer/core/scan/test/test_edf.py +0 -53
- tomwer/core/scan/test/test_future_scan.py +0 -61
- tomwer/core/scan/test/test_h5.py +0 -96
- tomwer/core/scan/test/test_process_registration.py +0 -109
- tomwer/core/test/test_scanutils.py +0 -53
- tomwer/gui/control/emailnotifier.py +0 -174
- tomwer/gui/control/serie/seriewaiter.py +0 -28
- tomwer/gui/control/test/__init__.py +0 -28
- tomwer/gui/control/test/test_datalist.py +0 -96
- tomwer/gui/control/test/test_datavalidator.py +0 -54
- tomwer/gui/control/test/test_email.py +0 -35
- tomwer/gui/control/test/test_process_manager.py +0 -65
- tomwer/gui/control/test/test_scanselector.py +0 -67
- tomwer/gui/edit/test/__init__.py +0 -28
- tomwer/gui/icat/gallery.py +0 -214
- tomwer/gui/icat/publish.py +0 -187
- tomwer/gui/reconstruction/axis/axis.py +0 -733
- tomwer/gui/reconstruction/axis/radioaxis.py +0 -2467
- tomwer/gui/stitching/stitching.py +0 -1392
- tomwer/gui/test/__init__.py +0 -28
- tomwer/gui/test/test_axis_gui.py +0 -34
- tomwer/synctools/stacks/edit/darkflatpatch.py +0 -169
- tomwer/synctools/stacks/edit/imagekeyeditor.py +0 -135
- tomwer/third_part/WaitingOverlay.py +0 -110
- tomwer-1.3.26-py3.11-nspkg.pth +0 -1
- tomwer-1.3.26.dist-info/METADATA +0 -292
- tomwer-1.3.26.dist-info/RECORD +0 -785
- tomwer-1.3.26.dist-info/namespace_packages.txt +0 -1
- /orangecontrib/tomwer/{widgets/edit/test → tests}/__init__.py +0 -0
- {tomwer/core/process/control/test → orangecontrib/tomwer/tutorials/id16b}/__init__.py +0 -0
- {tomwer/core/process/icat → orangecontrib/tomwer/widgets/cluster/tests}/__init__.py +0 -0
- /orangecontrib/tomwer/widgets/control/icons/{tomoobjserie.png → tomoobjseries.png} +0 -0
- {tomwer/core/process/reconstruction/test → orangecontrib/tomwer/widgets/control/tests}/__init__.py +0 -0
- /orangecontrib/tomwer/widgets/{icat → dataportal}/icons/publish_processed_data.png +0 -0
- /orangecontrib/tomwer/widgets/{icat → dataportal}/icons/publish_processed_data.svg +0 -0
- {tomwer/core/process/test → orangecontrib/tomwer/widgets/debugtools/tests}/__init__.py +0 -0
- {tomwer/core/scan/test → orangecontrib/tomwer/widgets/edit/tests}/__init__.py +0 -0
- {tomwer/core/test → orangecontrib/tomwer/widgets/other/tests}/__init__.py +0 -0
- {tomwer/gui/cluster/test → orangecontrib/tomwer/widgets/reconstruction/tests}/__init__.py +0 -0
- {tomwer/gui/control/serie → orangecontrib/tomwer/widgets/stitching/tests}/__init__.py +0 -0
- {tomwer/gui/icat → orangecontrib/tomwer/widgets/tests}/__init__.py +0 -0
- {tomwer/gui/reconstruction/test → orangecontrib/tomwer/widgets/visualization/tests}/__init__.py +0 -0
- /tomwer/{synctools/stacks/edit → app/stitching}/__init__.py +0 -0
- /tomwer/{synctools/test → core/process/control/tests}/__init__.py +0 -0
- /tomwer/core/process/control/{test → tests}/test_email.py +0 -0
- /tomwer/core/process/control/{test → tests}/test_h52nx_process.py +0 -0
- /tomwer/{third_part → core/process/drac}/__init__.py +0 -0
- /tomwer/core/process/reconstruction/{test → tests}/test_axis_params.py +0 -0
- /tomwer/core/process/reconstruction/{test → tests}/test_darkref_copy.py +0 -0
- /tomwer/core/process/reconstruction/{test → tests}/test_paramsbase.py +0 -0
- /tomwer/core/scan/{test → tests}/test_scan.py +0 -0
- /tomwer/gui/control/{serie → series}/nxtomoconcatenate.py +0 -0
- /tomwer/gui/control/{test → tests}/test_datadiscovery.py +0 -0
- /tomwer/gui/control/{test → tests}/test_reducedarkflat_selector.py +0 -0
- /tomwer/gui/control/{test → tests}/test_single_tomo_obj.py +0 -0
- {orangecontrib/tomwer/widgets/edit/test → tomwer/tests/orangecontrib/tomwer/widgets/edit/tests}/test_image_key_upgrader.py +0 -0
- {tomwer-1.3.26.dist-info → tomwer-1.4.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,67 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
"""
|
3
|
+
contains utils for inputs and outputs
|
4
|
+
"""
|
5
|
+
|
6
|
+
from __future__ import annotations
|
7
|
+
|
8
|
+
import os
|
9
|
+
|
10
|
+
import h5py
|
11
|
+
import numpy
|
12
|
+
from silx.io.url import DataUrl
|
13
|
+
from tomoscan.io import HDF5File
|
14
|
+
|
15
|
+
from tomwer.core.utils import scanutils
|
16
|
+
from tomwer.io.utils import (
|
17
|
+
get_default_directory,
|
18
|
+
get_linked_files_with_entry,
|
19
|
+
get_slice_data,
|
20
|
+
)
|
21
|
+
|
22
|
+
|
23
|
+
def test_get_linked_files_with_entry(tmp_path):
|
24
|
+
"""test get_linked_files_with_entry function"""
|
25
|
+
dir_test = tmp_path / "sub"
|
26
|
+
dir_test.mkdir()
|
27
|
+
|
28
|
+
layout = h5py.VirtualLayout(shape=(4, 10, 10), dtype="i4")
|
29
|
+
for i_file in range(4):
|
30
|
+
file_name = os.path.join(dir_test, f"file_{i_file}.hdf5")
|
31
|
+
with HDF5File(file_name, "w") as h5s:
|
32
|
+
h5s.create_dataset("data", (10, 10), "i4", numpy.ones((10, 10)))
|
33
|
+
vsource = h5py.VirtualSource(file_name, "data", shape=(10, 10))
|
34
|
+
layout[i_file] = vsource
|
35
|
+
|
36
|
+
test_with_vds = os.path.join(dir_test, "file_with_vds")
|
37
|
+
with HDF5File(test_with_vds, "w") as h5s:
|
38
|
+
h5s.create_virtual_dataset("vdata", layout, fillvalue=-1)
|
39
|
+
|
40
|
+
assert len(get_linked_files_with_entry(test_with_vds, "vdata")) == 4
|
41
|
+
|
42
|
+
|
43
|
+
def test_get_default_directory():
|
44
|
+
get_default_directory()
|
45
|
+
|
46
|
+
|
47
|
+
def test_get_slice_data_vol(tmp_path):
|
48
|
+
"""test load of a .vol file"""
|
49
|
+
dir_test = tmp_path / "test_vol"
|
50
|
+
dir_test.mkdir()
|
51
|
+
vol_file_path = os.path.join(dir_test, "volume.vol")
|
52
|
+
vol_info_file_path = os.path.join(dir_test, "volume.vol.info")
|
53
|
+
|
54
|
+
shape = (4, 50, 20)
|
55
|
+
data = numpy.ones(shape)
|
56
|
+
data.astype(numpy.float32).tofile(vol_file_path)
|
57
|
+
scanutils.MockEDF._createVolInfoFile(
|
58
|
+
filePath=vol_info_file_path,
|
59
|
+
shape=shape,
|
60
|
+
)
|
61
|
+
|
62
|
+
vol = get_slice_data(DataUrl(file_path=vol_file_path))
|
63
|
+
assert vol is not None
|
64
|
+
assert vol.shape == shape
|
65
|
+
vol = get_slice_data(DataUrl(file_path=vol_info_file_path))
|
66
|
+
assert vol is not None
|
67
|
+
assert vol.shape == shape
|
tomwer/io/utils/utils.py
CHANGED
@@ -1,35 +1,8 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# /*##########################################################################
|
3
|
-
#
|
4
|
-
# Copyright (c) 2016-2017 European Synchrotron Radiation Facility
|
5
|
-
#
|
6
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
-
# of this software and associated documentation files (the "Software"), to deal
|
8
|
-
# in the Software without restriction, including without limitation the rights
|
9
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
-
# copies of the Software, and to permit persons to whom the Software is
|
11
|
-
# furnished to do so, subject to the following conditions:
|
12
|
-
#
|
13
|
-
# The above copyright notice and this permission notice shall be included in
|
14
|
-
# all copies or substantial portions of the Software.
|
15
|
-
#
|
16
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
-
# THE SOFTWARE.
|
23
|
-
#
|
24
|
-
# ###########################################################################*/
|
25
1
|
"""
|
26
2
|
contains utils for inputs and outputs
|
27
3
|
"""
|
28
4
|
|
29
|
-
|
30
|
-
__license__ = "MIT"
|
31
|
-
__date__ = "07/09/2020"
|
32
|
-
|
5
|
+
from __future__ import annotations
|
33
6
|
|
34
7
|
import logging
|
35
8
|
import os
|
@@ -40,7 +13,6 @@ from PIL import Image
|
|
40
13
|
from silx.io.utils import open as open_hdf5
|
41
14
|
from tomoscan.esrf import has_glymur
|
42
15
|
from tomoscan.esrf.scan.utils import get_data as tomoscan_get_data
|
43
|
-
from typing import Union
|
44
16
|
|
45
17
|
from tomwer.core.utils import ftseriesutils
|
46
18
|
|
@@ -155,7 +127,6 @@ def get_default_directory() -> str:
|
|
155
127
|
"""
|
156
128
|
|
157
129
|
:return: default directory where to open a QFolder dialdg for example
|
158
|
-
:rtype: str
|
159
130
|
"""
|
160
131
|
if "TOMWER_DEFAULT_INPUT_DIR" in os.environ and os.path.exists(
|
161
132
|
os.environ["TOMWER_DEFAULT_INPUT_DIR"]
|
@@ -273,7 +244,7 @@ def get_linked_files_with_vds(hdf5_file: str, dataset_path: str) -> set:
|
|
273
244
|
return final_datasets
|
274
245
|
|
275
246
|
|
276
|
-
def str_to_dict(my_str:
|
247
|
+
def str_to_dict(my_str: str | dict):
|
277
248
|
"""convert a string as key_1=value_2;key_2=value_2 to a dict"""
|
278
249
|
if isinstance(my_str, dict):
|
279
250
|
return my_str
|
tomwer/resources/__init__.py
CHANGED
@@ -1,35 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
# Copyright (c) 2016-2017 European Synchrotron Radiation Facility
|
5
|
-
#
|
6
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
-
# of this software and associated documentation files (the "Software"), to deal
|
8
|
-
# in the Software without restriction, including without limitation the rights
|
9
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
-
# copies of the Software, and to permit persons to whom the Software is
|
11
|
-
# furnished to do so, subject to the following conditions:
|
12
|
-
#
|
13
|
-
# The above copyright notice and this permission notice shall be included in
|
14
|
-
# all copies or substantial portions of the Software.
|
15
|
-
#
|
16
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
-
# THE SOFTWARE.
|
23
|
-
#
|
24
|
-
# ###########################################################################*/
|
25
|
-
|
1
|
+
"""
|
2
|
+
project resources (icons... )
|
3
|
+
"""
|
26
4
|
|
27
5
|
from __future__ import annotations
|
6
|
+
|
28
7
|
import os
|
29
8
|
import sys
|
30
9
|
import contextlib
|
31
10
|
import atexit
|
32
|
-
from typing import NamedTuple
|
11
|
+
from typing import NamedTuple
|
33
12
|
import importlib
|
34
13
|
import functools
|
35
14
|
|
@@ -65,7 +44,7 @@ class _ResourceDirectory(NamedTuple):
|
|
65
44
|
"""Store a source of resources"""
|
66
45
|
|
67
46
|
package_name: str
|
68
|
-
forced_path:
|
47
|
+
forced_path: str | None = None
|
69
48
|
|
70
49
|
|
71
50
|
_TOMWER_DIRECTORY = _ResourceDirectory(
|
@@ -77,17 +56,18 @@ _RESOURCE_DIRECTORIES = {}
|
|
77
56
|
_RESOURCE_DIRECTORIES["tomwer"] = _TOMWER_DIRECTORY
|
78
57
|
|
79
58
|
|
80
|
-
def _get_package_and_resource(
|
59
|
+
def _get_package_and_resource(
|
60
|
+
resource, default_directory=None
|
61
|
+
) -> tuple[_ResourceDirectory, str]:
|
81
62
|
"""
|
82
63
|
Return the resource directory class and a cleaned resource name without
|
83
64
|
prefix.
|
84
65
|
|
85
|
-
:param
|
86
|
-
:param
|
66
|
+
:param resource: Name of the resource with resource prefix.
|
67
|
+
:param default_directory: If the resource is not prefixed, the resource
|
87
68
|
will be searched on this default directory of the silx resource
|
88
69
|
directory.
|
89
|
-
:
|
90
|
-
:raises ValueError: If the resource name uses an unregistred resource
|
70
|
+
:raises ValueError: If the resource name uses an unregistered resource
|
91
71
|
directory name
|
92
72
|
"""
|
93
73
|
if ":" in resource:
|
@@ -126,7 +106,7 @@ def _get_resource_filename(package: str, resource: str) -> str:
|
|
126
106
|
return str(path.absolute())
|
127
107
|
|
128
108
|
|
129
|
-
def _resource_filename(resource: str, default_directory:
|
109
|
+
def _resource_filename(resource: str, default_directory: str | None = None) -> str:
|
130
110
|
"""Return filename corresponding to resource.
|
131
111
|
|
132
112
|
The existence of the resource is not checked.
|
@@ -0,0 +1,114 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
id="svg901"
|
6
|
+
width="40"
|
7
|
+
height="40"
|
8
|
+
version="1.1"
|
9
|
+
viewBox="0 0 10.583333 10.583333"
|
10
|
+
sodipodi:docname="edit_downstream.svg"
|
11
|
+
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
14
|
+
xmlns="http://www.w3.org/2000/svg"
|
15
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
16
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
17
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
18
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
19
|
+
<defs
|
20
|
+
id="defs18" />
|
21
|
+
<sodipodi:namedview
|
22
|
+
id="namedview16"
|
23
|
+
pagecolor="#ffffff"
|
24
|
+
bordercolor="#000000"
|
25
|
+
borderopacity="0.25"
|
26
|
+
inkscape:showpageshadow="2"
|
27
|
+
inkscape:pageopacity="0.0"
|
28
|
+
inkscape:pagecheckerboard="0"
|
29
|
+
inkscape:deskcolor="#d1d1d1"
|
30
|
+
showgrid="false"
|
31
|
+
inkscape:zoom="12.359638"
|
32
|
+
inkscape:cx="24.272557"
|
33
|
+
inkscape:cy="30.178879"
|
34
|
+
inkscape:window-width="1920"
|
35
|
+
inkscape:window-height="1043"
|
36
|
+
inkscape:window-x="1920"
|
37
|
+
inkscape:window-y="0"
|
38
|
+
inkscape:window-maximized="1"
|
39
|
+
inkscape:current-layer="layer1" />
|
40
|
+
<metadata
|
41
|
+
id="metadata898">
|
42
|
+
<rdf:RDF>
|
43
|
+
<cc:Work
|
44
|
+
rdf:about="">
|
45
|
+
<dc:format>image/svg+xml</dc:format>
|
46
|
+
<dc:type
|
47
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
48
|
+
</cc:Work>
|
49
|
+
</rdf:RDF>
|
50
|
+
</metadata>
|
51
|
+
<g
|
52
|
+
id="layer1"
|
53
|
+
transform="translate(0,-284.3)">
|
54
|
+
<g
|
55
|
+
id="g2570"
|
56
|
+
transform="matrix(1.1424394,0,0,0.95112633,-4.171521,13.623774)"
|
57
|
+
fill="#808080">
|
58
|
+
<path
|
59
|
+
id="rect3173-9-1"
|
60
|
+
d="m 5.0391,291.01 c -0.41334,0 -0.75391,0.34252 -0.75391,0.75585 v 2.5957 c 0,0.41334 0.34057,0.75586 0.75391,0.75586 h 4.2773 c 0.41334,0 0.75391,-0.34252 0.75391,-0.75586 v -2.5957 c 0,-0.41333 -0.34057,-0.75585 -0.75391,-0.75585 z m 0,0.5664 h 4.2773 c 0.10957,0 0.18945,0.0799 0.18945,0.18945 v 2.5957 c 0,0.10956 -0.079888,0.18945 -0.18945,0.18945 H 5.0391 c -0.10957,0 -0.1875,-0.0799 -0.1875,-0.18945 v -2.5957 c 0,-0.10956 0.077934,-0.18945 0.1875,-0.18945 z"
|
61
|
+
color="#000000"
|
62
|
+
style="-inkscape-stroke:none" />
|
63
|
+
<path
|
64
|
+
id="rect3175-9-7"
|
65
|
+
d="m 7.1777,288.04 c -0.64273,0 -1.2162,0.33605 -1.6055,0.83203 -0.38928,0.49597 -0.61328,1.1569 -0.61328,1.8789 a 0.43082,0.43082 0 0 0 0.42969,0.42969 0.43082,0.43082 0 0 0 0.43164,-0.42969 c 0,-0.54048 0.1724,-1.0198 0.42969,-1.3476 0.25729,-0.3278 0.5796,-0.50196 0.92773,-0.50196 0.34813,0 0.67044,0.17415 0.92773,0.50196 0.25729,0.32781 0.42969,0.80717 0.42969,1.3476 a 0.43082,0.43082 0 0 0 0.43164,0.42969 0.43082,0.43082 0 0 0 0.42969,-0.42969 c 0,-0.72196 -0.224,-1.3829 -0.61328,-1.8789 C 8.39386,288.37605 7.8204,288.04 7.17764,288.04 Z"
|
66
|
+
color="#000000"
|
67
|
+
stroke-linecap="round"
|
68
|
+
style="-inkscape-stroke:none" />
|
69
|
+
</g>
|
70
|
+
<g
|
71
|
+
id="path3647">
|
72
|
+
<path
|
73
|
+
id="path6853"
|
74
|
+
d="m 10.578,284.48 -0.03906,9.4932"
|
75
|
+
color="#000000"
|
76
|
+
stroke-width="0.566"
|
77
|
+
style="-inkscape-stroke:none" />
|
78
|
+
<g
|
79
|
+
id="path241"
|
80
|
+
transform="translate(-1.7954862,-1.0933066)">
|
81
|
+
<g
|
82
|
+
id="g874">
|
83
|
+
<g
|
84
|
+
id="g881"
|
85
|
+
transform="translate(-0.39951108,-0.62417011)">
|
86
|
+
<path
|
87
|
+
id="path1170"
|
88
|
+
d="m 10.48,286.29367 -0.03516,8.1578 0.56641,0.002 0.03516,-8.15781 z"
|
89
|
+
color="#000000"
|
90
|
+
style="stroke-width:0.929059;-inkscape-stroke:none" />
|
91
|
+
<g
|
92
|
+
id="g1160">
|
93
|
+
<g
|
94
|
+
id="path1162"
|
95
|
+
fill-rule="evenodd">
|
96
|
+
<path
|
97
|
+
id="path1166"
|
98
|
+
d="m 10.722,296.08 -1.4055,-2.4531 2.8297,0.0108 z"
|
99
|
+
color="#000000"
|
100
|
+
stroke-width="0.28297pt"
|
101
|
+
style="-inkscape-stroke:none" />
|
102
|
+
<path
|
103
|
+
id="path1168"
|
104
|
+
d="m 8.9902,293.44 1.7305,3.0195 0.16406,-0.28125 1.5879,-2.7266 z m 0.65234,0.3789 2.1758,0.008 -1.0957,1.8789 z"
|
105
|
+
color="#000000"
|
106
|
+
style="-inkscape-stroke:none" />
|
107
|
+
</g>
|
108
|
+
</g>
|
109
|
+
</g>
|
110
|
+
</g>
|
111
|
+
</g>
|
112
|
+
</g>
|
113
|
+
</g>
|
114
|
+
</svg>
|
@@ -0,0 +1,112 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
id="svg901"
|
6
|
+
width="40"
|
7
|
+
height="40"
|
8
|
+
version="1.1"
|
9
|
+
viewBox="0 0 10.583333 10.583333"
|
10
|
+
sodipodi:docname="edit_upstream.svg"
|
11
|
+
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
14
|
+
xmlns="http://www.w3.org/2000/svg"
|
15
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
16
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
17
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
18
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
19
|
+
<defs
|
20
|
+
id="defs17" />
|
21
|
+
<sodipodi:namedview
|
22
|
+
id="namedview15"
|
23
|
+
pagecolor="#ffffff"
|
24
|
+
bordercolor="#000000"
|
25
|
+
borderopacity="0.25"
|
26
|
+
inkscape:showpageshadow="2"
|
27
|
+
inkscape:pageopacity="0.0"
|
28
|
+
inkscape:pagecheckerboard="0"
|
29
|
+
inkscape:deskcolor="#d1d1d1"
|
30
|
+
showgrid="false"
|
31
|
+
inkscape:zoom="17.479167"
|
32
|
+
inkscape:cx="23.799762"
|
33
|
+
inkscape:cy="19.394517"
|
34
|
+
inkscape:window-width="1920"
|
35
|
+
inkscape:window-height="1043"
|
36
|
+
inkscape:window-x="1920"
|
37
|
+
inkscape:window-y="0"
|
38
|
+
inkscape:window-maximized="1"
|
39
|
+
inkscape:current-layer="path241" />
|
40
|
+
<metadata
|
41
|
+
id="metadata898">
|
42
|
+
<rdf:RDF>
|
43
|
+
<cc:Work
|
44
|
+
rdf:about="">
|
45
|
+
<dc:format>image/svg+xml</dc:format>
|
46
|
+
<dc:type
|
47
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
48
|
+
</cc:Work>
|
49
|
+
</rdf:RDF>
|
50
|
+
</metadata>
|
51
|
+
<g
|
52
|
+
id="g2570"
|
53
|
+
transform="matrix(1.1424394,0,0,0.95112633,-4.234266,-270.76951)"
|
54
|
+
fill="#808080">
|
55
|
+
<path
|
56
|
+
id="rect3173-9-1"
|
57
|
+
d="m 5.0391,291.01 c -0.41334,0 -0.75391,0.34252 -0.75391,0.75585 v 2.5957 c 0,0.41334 0.34057,0.75586 0.75391,0.75586 h 4.2773 c 0.41334,0 0.75391,-0.34252 0.75391,-0.75586 v -2.5957 c 0,-0.41333 -0.34057,-0.75585 -0.75391,-0.75585 z m 0,0.5664 h 4.2773 c 0.10957,0 0.18945,0.0799 0.18945,0.18945 v 2.5957 c 0,0.10956 -0.079888,0.18945 -0.18945,0.18945 H 5.0391 c -0.10957,0 -0.1875,-0.0799 -0.1875,-0.18945 v -2.5957 c 0,-0.10956 0.077934,-0.18945 0.1875,-0.18945 z"
|
58
|
+
color="#000000"
|
59
|
+
style="-inkscape-stroke:none" />
|
60
|
+
<path
|
61
|
+
id="rect3175-9-7"
|
62
|
+
d="m 7.1777,288.04 c -0.64273,0 -1.2162,0.33605 -1.6055,0.83203 -0.38928,0.49597 -0.61328,1.1569 -0.61328,1.8789 a 0.43082,0.43082 0 0 0 0.42969,0.42969 0.43082,0.43082 0 0 0 0.43164,-0.42969 c 0,-0.54048 0.1724,-1.0198 0.42969,-1.3476 0.25729,-0.3278 0.5796,-0.50196 0.92773,-0.50196 0.34813,0 0.67044,0.17415 0.92773,0.50196 0.25729,0.32781 0.42969,0.80717 0.42969,1.3476 a 0.43082,0.43082 0 0 0 0.43164,0.42969 0.43082,0.43082 0 0 0 0.42969,-0.42969 c 0,-0.72196 -0.224,-1.3829 -0.61328,-1.8789 C 8.39386,288.37605 7.8204,288.04 7.17764,288.04 Z"
|
63
|
+
color="#000000"
|
64
|
+
stroke-linecap="round"
|
65
|
+
style="-inkscape-stroke:none" />
|
66
|
+
</g>
|
67
|
+
<g
|
68
|
+
id="path3647"
|
69
|
+
transform="rotate(33.207645,485.52817,147.30916)">
|
70
|
+
<path
|
71
|
+
id="path6853"
|
72
|
+
d="m 10.578,284.48 -0.03906,9.4932"
|
73
|
+
color="#000000"
|
74
|
+
stroke-width="0.566"
|
75
|
+
style="-inkscape-stroke:none" />
|
76
|
+
<g
|
77
|
+
id="path241"
|
78
|
+
transform="translate(-1.7954862,-1.0933066)">
|
79
|
+
<g
|
80
|
+
id="g874"
|
81
|
+
transform="rotate(146.86013,10.403259,290.77629)">
|
82
|
+
<g
|
83
|
+
id="g881"
|
84
|
+
transform="translate(-0.39951108,-0.62417011)">
|
85
|
+
<path
|
86
|
+
id="path1170"
|
87
|
+
d="m 10.48,286.29367 -0.03516,8.1578 0.56641,0.002 0.03516,-8.15781 z"
|
88
|
+
color="#000000"
|
89
|
+
style="stroke-width:0.929059;-inkscape-stroke:none" />
|
90
|
+
<g
|
91
|
+
id="g1160">
|
92
|
+
<g
|
93
|
+
id="path1162"
|
94
|
+
fill-rule="evenodd">
|
95
|
+
<path
|
96
|
+
id="path1166"
|
97
|
+
d="m 10.722,296.08 -1.4055,-2.4531 2.8297,0.0108 z"
|
98
|
+
color="#000000"
|
99
|
+
stroke-width="0.28297pt"
|
100
|
+
style="-inkscape-stroke:none" />
|
101
|
+
<path
|
102
|
+
id="path1168"
|
103
|
+
d="m 8.9902,293.44 1.7305,3.0195 0.16406,-0.28125 1.5879,-2.7266 z m 0.65234,0.3789 2.1758,0.008 -1.0957,1.8789 z"
|
104
|
+
color="#000000"
|
105
|
+
style="-inkscape-stroke:none" />
|
106
|
+
</g>
|
107
|
+
</g>
|
108
|
+
</g>
|
109
|
+
</g>
|
110
|
+
</g>
|
111
|
+
</g>
|
112
|
+
</svg>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
<svg id="svg901" width="48" height="48" version="1.1" viewBox="0 0 12.7 12.7" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
4
|
+
<metadata id="metadata898">
|
5
|
+
<rdf:RDF>
|
6
|
+
<cc:Work rdf:about="">
|
7
|
+
<dc:format>image/svg+xml</dc:format>
|
8
|
+
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
9
|
+
</cc:Work>
|
10
|
+
</rdf:RDF>
|
11
|
+
</metadata>
|
12
|
+
<g id="layer1" transform="translate(0,-284.3)">
|
13
|
+
<g id="unlock" transform="matrix(.62119 0 0 .51636 -92.995 237.73)">
|
14
|
+
<rect id="rect3151-6-6-8-0-6" x="151.13" y="94.163" width="17.179" height="17.179" color="#000000" fill="none"/>
|
15
|
+
<g id="g4076" transform="translate(-.0042977 .019021)">
|
16
|
+
<g id="g1010" transform="matrix(1.1919 0 0 1.0849 -31.058 -8.1108)" fill="none" stroke="#808080">
|
17
|
+
<rect id="rect3173-9-1" x="153.66" y="103.86" width="12.122" height="6.8665" ry=".91534" color="#000000" stroke-width="1.2013"/>
|
18
|
+
<path id="rect3175-9-7" d="m156.37 97.922c0-2.4486 1.8522-4.4198 4.153-4.4198s4.153 1.9712 4.153 4.4198v5.5674" color="#000000" stroke-linecap="round" stroke-width="1.8285"/>
|
19
|
+
</g>
|
20
|
+
</g>
|
21
|
+
</g>
|
22
|
+
</g>
|
23
|
+
</svg>
|
Binary file
|
@@ -0,0 +1,80 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
width="48"
|
6
|
+
height="48"
|
7
|
+
viewBox="0 0 12.7 12.7"
|
8
|
+
version="1.1"
|
9
|
+
id="svg5"
|
10
|
+
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
11
|
+
sodipodi:docname="icat_gallery_opts.svg"
|
12
|
+
inkscape:export-filename="publish_processed_data.png"
|
13
|
+
inkscape:export-xdpi="96"
|
14
|
+
inkscape:export-ydpi="96"
|
15
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
16
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
17
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
18
|
+
xmlns="http://www.w3.org/2000/svg"
|
19
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
20
|
+
<sodipodi:namedview
|
21
|
+
id="namedview7"
|
22
|
+
pagecolor="#ffffff"
|
23
|
+
bordercolor="#000000"
|
24
|
+
borderopacity="0.25"
|
25
|
+
inkscape:showpageshadow="2"
|
26
|
+
inkscape:pageopacity="0.0"
|
27
|
+
inkscape:pagecheckerboard="0"
|
28
|
+
inkscape:deskcolor="#d1d1d1"
|
29
|
+
inkscape:document-units="mm"
|
30
|
+
showgrid="false"
|
31
|
+
inkscape:zoom="6.7277216"
|
32
|
+
inkscape:cx="6.1685073"
|
33
|
+
inkscape:cy="19.620312"
|
34
|
+
inkscape:window-width="1920"
|
35
|
+
inkscape:window-height="1131"
|
36
|
+
inkscape:window-x="0"
|
37
|
+
inkscape:window-y="32"
|
38
|
+
inkscape:window-maximized="1"
|
39
|
+
inkscape:current-layer="layer1" />
|
40
|
+
<defs
|
41
|
+
id="defs2" />
|
42
|
+
<g
|
43
|
+
inkscape:label="Layer 1"
|
44
|
+
inkscape:groupmode="layer"
|
45
|
+
id="layer1">
|
46
|
+
<path
|
47
|
+
d="m 10.257118,2.0073763 c -0.07689,-0.00242 -0.151197,0.032223 -0.193532,0.096669 L 9.7110818,2.6389455 c -0.119229,-0.00886 -0.234138,-0.00967 -0.352503,0 L 8.9991628,2.1104896 C 8.9412758,2.0250989 8.8220468,1.9944872 8.7226898,2.0331547 l -0.622066,0.2448941 c -0.09849,0.038667 -0.155517,0.1409752 -0.131325,0.2384495 l 0.15206,0.6122355 c -0.09158,0.07331 -0.177979,0.152253 -0.255738,0.238449 l -0.656625,-0.141781 c -0.107133,-0.02256 -0.208219,0.03545 -0.248826,0.128892 l -0.2557379,0.586457 c -0.040607,0.09264 -0.00778,0.198171 0.082942,0.251339 l 0.5667709,0.328673 c -0.0095,0.111975 -0.0043,0.229588 0.0069,0.341563 l -0.5667706,0.328674 c -0.091582,0.05397 -0.1252769,0.165142 -0.082942,0.257783 l 0.2626496,0.580012 c 0.04147,0.09184 0.144285,0.145809 0.248827,0.122447 l 0.656625,-0.135336 c 0.07776,0.08459 0.163292,0.160309 0.255738,0.232005 l -0.145149,0.612235 c -0.02333,0.09828 0.0311,0.200588 0.131325,0.23845 l 0.628977,0.238449 c 0.02678,0.01047 0.0553,0.01289 0.08294,0.01289 0.0743,0 0.145149,-0.03544 0.18662,-0.09667 l 0.366327,-0.5349 c 0.120094,0.0081 0.241051,0.004 0.359416,-0.0064 l 0.3663282,0.5349 c 0.05875,0.08378 0.171068,0.116003 0.269562,0.07733 l 0.62899,-0.244933 c 0.100222,-0.03947 0.149468,-0.140169 0.124413,-0.238449 l -0.158972,-0.612236 c 0.08899,-0.0717 0.172796,-0.153864 0.248826,-0.238449 l 0.663537,0.135336 c 0.107133,0.02175 0.215131,-0.02981 0.255738,-0.122447 l 0.255738,-0.586457 c 0.04061,-0.09425 0.0026,-0.205421 -0.08985,-0.257783 l -0.580595,-0.328674 c 0.0086,-0.109557 0.01037,-0.219115 0,-0.328673 l 0.566771,-0.348008 c 0.08985,-0.05397 0.131325,-0.159503 0.08985,-0.251338 l -0.269561,-0.580013 c -0.04147,-0.09264 -0.148605,-0.145808 -0.255738,-0.122447 l -0.656625,0.148225 c -0.07776,-0.08459 -0.157244,-0.160309 -0.248826,-0.232004 L 11.093451,2.4971645 C 11.115911,2.3988845 11.061481,2.296577 10.962126,2.258715 L 10.333148,2.0202655 c -0.02506,-0.00967 -0.05011,-0.012084 -0.07603,-0.012889 z M 9.5382858,3.8376378 c 0.117502,-0.0016 0.236731,0.0145 0.352504,0.058 0.4630942,0.175615 0.6860012,0.670236 0.4976532,1.102023 -0.188348,0.431787 -0.7188322,0.639625 -1.1819252,0.46401 -0.463093,-0.175615 -0.686,-0.670236 -0.497652,-1.102023 0.141692,-0.32384 0.476917,-0.517178 0.82942,-0.522011 z m -4.9696124,1.675591 c -0.1079974,0 -0.2038993,0.07411 -0.2211789,0.174003 l -0.1382368,0.812018 c -0.164156,0.04672 -0.3265842,0.106335 -0.476917,0.180448 L 3.0135095,6.2027988 c -0.088126,-0.05881 -0.2064913,-0.05156 -0.2833855,0.01933 l -0.6082419,0.567123 c -0.07603,0.07089 -0.082078,0.182059 -0.020735,0.264227 l 0.5045643,0.676682 c -0.081214,0.14178 -0.1494685,0.290811 -0.2004434,0.444676 l -0.86398,0.128891 c -0.1071335,0.01692 -0.1866196,0.10553 -0.1866196,0.206227 v 0.799128 c 0,0.09989 0.074302,0.188504 0.1797078,0.206227 l 0.8708918,0.14178 c 0.050975,0.153865 0.1192294,0.302896 0.2004434,0.4446762 l -0.5114762,0.670237 c -0.06307,0.08217 -0.056159,0.192532 0.020736,0.264228 l 0.6082419,0.567123 c 0.07603,0.07089 0.1952596,0.07653 0.2833854,0.01933 L 3.7323416,11.15223 c 0.1511967,0.07492 0.3058492,0.133725 0.4700052,0.180448 l 0.1451486,0.812017 c 0.017282,0.09909 0.1131815,0.174004 0.2211789,0.174004 h 0.8570682 c 0.1071336,0 0.2021714,-0.06928 0.2211789,-0.167559 l 0.1520605,-0.824907 c 0.1641562,-0.04753 0.3196727,-0.10553 0.4700049,-0.180448 l 0.732655,0.476899 c 0.08813,0.0572 0.207355,0.05156 0.283386,-0.01933 l 0.608242,-0.567123 c 0.07689,-0.0717 0.08381,-0.188504 0.02074,-0.270673 l -0.518388,-0.670236 c 0.07949,-0.1401702 0.143421,-0.2875892 0.193532,-0.4382322 l 0.884715,-0.14178 c 0.10627,-0.01772 0.179708,-0.106336 0.179708,-0.206227 v -0.799128 c 0,-0.100697 -0.07949,-0.183671 -0.18662,-0.199782 l -0.877803,-0.135336 c -0.05011,-0.150642 -0.114046,-0.298062 -0.193532,-0.438232 l 0.511476,-0.683126 c 0.06134,-0.08217 0.05529,-0.193337 -0.02074,-0.264227 l -0.608242,-0.567123 c -0.07689,-0.0717 -0.195259,-0.07814 -0.283386,-0.01933 L 6.2689859,6.6861418 C 6.1177896,6.6112238 5.9622731,6.5524168 5.798981,6.5056938 L 5.6469205,5.6872318 C 5.6287773,5.5881458 5.5328752,5.5132278 5.4257416,5.5132278 Z m 0.435446,2.339383 c 0.6315693,0 1.1404534,0.474482 1.1404534,1.063356 0,0.588873 -0.509748,1.063355 -1.1404534,1.063355 -0.6307052,0 -1.1404537,-0.474482 -1.1404537,-1.063355 0,-0.588874 0.5088841,-1.063356 1.1404537,-1.063356 z"
|
48
|
+
id="path496"
|
49
|
+
style="stroke-width:0.237713" />
|
50
|
+
<g
|
51
|
+
inkscape:label="Layer 1"
|
52
|
+
id="layer1-36"
|
53
|
+
transform="matrix(0.14920189,0,0,0.16924356,-0.80433675,-1.8392586)">
|
54
|
+
<g
|
55
|
+
inkscape:export-ydpi="200"
|
56
|
+
inkscape:export-xdpi="200"
|
57
|
+
inkscape:export-filename="/nobackup/linazimov/payno/dev/esrf/ID06/id06workflow/resources/gui/icons/parameters.png"
|
58
|
+
transform="matrix(0.91430392,0,0,0.88285849,0.42325717,3.0002197)"
|
59
|
+
id="surface1">
|
60
|
+
<g
|
61
|
+
transform="matrix(2.7869502,0,0,2.6849752,-125.41844,-861.31264)"
|
62
|
+
id="layer1-3"
|
63
|
+
inkscape:label="Layer 1">
|
64
|
+
<g
|
65
|
+
transform="matrix(5.2986592,0,0,3.9918944,42.609171,-787.71546)"
|
66
|
+
id="g872">
|
67
|
+
<image
|
68
|
+
width="4.6438637"
|
69
|
+
height="5.2361312"
|
70
|
+
preserveAspectRatio="none"
|
71
|
+
xlink:href="data:image/png;base64,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 RU5ErkJggg== "
|
72
|
+
id="image23483"
|
73
|
+
x="0.71037143"
|
74
|
+
y="278.56134" />
|
75
|
+
</g>
|
76
|
+
</g>
|
77
|
+
</g>
|
78
|
+
</g>
|
79
|
+
</g>
|
80
|
+
</svg>
|
Binary file
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
<svg id="svg226" width="48" height="48" version="1.1" viewBox="0 0 12.7 12.7" xmlns="http://www.w3.org/2000/svg">
|
4
|
+
<defs id="defs223">
|
5
|
+
<radialGradient id="radialGradient3022" cx="13.792" cy="20.623" r="6.9238" gradientTransform="matrix(-2.3581 0 0 2.2838 40.604 -35.738)" gradientUnits="userSpaceOnUse">
|
6
|
+
<stop id="stop3790" stop-color="#fff" stop-opacity=".69565" offset="0"/>
|
7
|
+
<stop id="stop3792" stop-color="#fff" stop-opacity="0" offset="1"/>
|
8
|
+
</radialGradient>
|
9
|
+
<linearGradient id="linearGradient3024" x1="3.5069" x2="12.781" y1="25.746" y2="25.746" gradientUnits="userSpaceOnUse">
|
10
|
+
<stop id="stop3755" stop-color="#dedde8" offset="0"/>
|
11
|
+
<stop id="stop3757" stop-opacity="0" offset="1"/>
|
12
|
+
</linearGradient>
|
13
|
+
<filter id="filter3815" x="-.13308" y="-.12289" width="1.2662" height="1.2458">
|
14
|
+
<feGaussianBlur id="feGaussianBlur3817" stdDeviation="9.90383e-05"/>
|
15
|
+
</filter>
|
16
|
+
</defs>
|
17
|
+
<g id="layer1">
|
18
|
+
<g id="g3018" transform="matrix(.26458 0 0 .26458 2.9743 1.7705)" stroke="#000">
|
19
|
+
<path id="path3005" d="m-4.9286 11.36c0 7.1123 5.8246 12.878 13.01 12.878 7.185 0 13.01-5.7656 13.01-12.878 0-7.1121-5.8246-12.878-13.01-12.878-7.1784 0-13 5.7552-13.01 12.861" fill="url(#radialGradient3022)" stroke-width="4.4357"/>
|
20
|
+
<path id="path3775" transform="matrix(-2.3581 0 0 2.0859 43.392 -24.807)" d="m11.531 22.221-6.7744 7.0496z" fill="url(#linearGradient3024)" filter="url(#filter3815)" stroke-width="2.5"/>
|
21
|
+
</g>
|
22
|
+
</g>
|
23
|
+
</svg>
|
Binary file
|
tomwer/synctools/__init__.py
CHANGED