tomwer 1.3.0a2__tar.gz → 1.3.0a4__tar.gz
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.
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/PKG-INFO +1 -1
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/nabu/nabucommon.py +23 -4
- tomwer-1.3.0a4/tomwer/gui/visualization/test/test_volumeviewer.py +82 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/volumeviewer.py +110 -111
- tomwer-1.3.0a4/tomwer/third_part/WaitingOverlay.py +110 -0
- tomwer-1.3.0a4/tomwer/third_part/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/version.py +1 -1
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer.egg-info/PKG-INFO +1 -1
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer.egg-info/SOURCES.txt +3 -1
- tomwer-1.3.0a2/tomwer/gui/visualization/test/test_volumeviewer.py +0 -84
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/LICENSE +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/MANIFEST.in +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/README.rst +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/orange/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/orange/managedprocess.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/orange/settings.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/state_summary.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/EBS_tomo_listener.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/append_raw_darks_and_flats_frames_to_NXtomos.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/cast_volume.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/copy_reduced_darks_and_flats_meth1.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/copy_reduced_darks_and_flats_meth2.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/default_cor_search.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/hello_world_python_script.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/icat_publication.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/simple_slice_reconstruction.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/simple_slice_reconstruction_on_slurm.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/simple_volume_local_reconstruction.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/simple_volume_to_slurm_reconstruction.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/tutorials/using_saaxis_to_find_cor.ows +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/cluster/FutureSupervisorOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/cluster/SlurmClusterOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/cluster/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/cluster/icons/slurm.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/cluster/icons/slurm.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/cluster/icons/slurmobserver.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/cluster/icons/slurmobserver.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/AdvancementOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/DataDiscoveryOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/DataListOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/DataListenerOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/DataSelectorOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/DataTransfertOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/DataValidatorOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/DataWatcherOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/EmailOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/FilterOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/NXTomomillMixIn.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/NXTomomillOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/NXtomoConcatenate.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/NotifierOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/ReduceDarkFlatSelectorOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/SingleTomoObjOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/TimerOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/TomoObjSerieOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/VolumeSelector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/VolumeSymLinkOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/advancement.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/advancement.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/concatenate_nxtomos.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/concatenate_nxtomos.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/datadiscover.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/datadiscover.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/datalistener.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/datalistener.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/datawatcher.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/edf2nx.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/edf2nx.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/email.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/email.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/esrf.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/folder-transfert.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/image_key_upgrader.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/namefilter.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/namefilter.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/notification.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/notification.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/nxtomomill.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/nxtomomill.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/progress.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/reduced_darkflat_selector.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/reduced_darkflat_selector.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/scanlist.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/scanselector.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/scanselector.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/single_tomo_obj.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/single_tomo_obj.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/time.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/tomoobjserie.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/tomoobjserie.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/tomwer.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/validator.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/validatorcrack.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/volumeselector.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/volumeselector.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/volumesymlink.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/control/icons/volumesymlink.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/debugtools/DatasetGeneratorOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/debugtools/ObjectInspectorOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/debugtools/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/debugtools/icons/hammer.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/debugtools/icons/hammer.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/debugtools/icons/inspector.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/debugtools/icons/inspector.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/DarkFlatPatchOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/ImageKeyEditorOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/ImageKeyUpgraderOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/NXtomoEditorOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/icons/image_key_editor.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/icons/image_key_editor.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/icons/image_key_upgrader.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/icons/image_key_upgrader.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/icons/nx_tomo_editor.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/icons/nx_tomo_editor.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/icons/patch_dark_flat.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/icons/patch_dark_flat.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/test/test_dark_flat_patch.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/test/test_image_key_editor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/test/test_image_key_upgrader.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/edit/test/test_nxtomo_editor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icat/PublishProcessedDataOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icat/RawDataScreenshotCreatorOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icat/SaveToGalleryAndPublishOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icat/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icat/icons/add_gallery.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icat/icons/add_gallery.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icat/icons/publish_processed_data.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icat/icons/publish_processed_data.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icat/icons/raw_screenshots.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icat/icons/raw_screenshots.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_build.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_build.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_cluster.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_cluster.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_control.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_control.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_data_portal.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_data_portal.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_debug_tools.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_debug_tools.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_edit.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_edit.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_other.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_other.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_stitching.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_stitching.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_visu.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/icons/tomwer_visu.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/other/PythonScriptOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/other/TomoObjsHub.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/other/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/other/icons/PythonScript.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/other/icons/hub.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/other/icons/hub.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/DarkRefAndCopyOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/NabuHelicalPrepareWeightsDoubleOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/NabuOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/TofuOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/XY_lamino.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/XZ_lamino.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/YZ_lamino.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/axis.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/axis.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/bricks.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/darkref.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/darkref.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/delta_beta_range.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/delta_beta_range.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/esrf.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/nabu_2d.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/nabu_2d.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/nabu_3d.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/nabu_3d.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/nabu_cast.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/nabu_cast.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/nabu_prepare_weights_double.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/nabu_prepare_weights_double.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/norm_I.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/norm_I.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/refCopy.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/refCopy.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/saaxis.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/saaxis.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/sadeltabeta.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/sadeltabeta.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/tomogui.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/reconstruction/icons/tomwer.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/stitching/StitcherOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/stitching/ZStitchingConfigOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/stitching/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/LivesliceOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/NXtomoMetadataViewerOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/RadioStackOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/SampleMovedOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/SinogramViewerOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/SliceStackOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/VolumeViewerOW.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/diff.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/diff.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/esrf.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/eye.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/eyecrack.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/liveslice.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/liveslice.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/nx_tomo_metadata_viewer.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/nx_tomo_metadata_viewer.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/radiosstack.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/radiosstack.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/sampleMoved.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/sampleMoved.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/sinogramviewer.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/slicesstack.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/slicesstack.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/tomwer.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/volumeviewer.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/orangecontrib/tomwer/widgets/visualization/icons/volumeviewer.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/setup.cfg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/setup.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/__main__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/axis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/canvas.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/canvas_launcher/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/canvas_launcher/config.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/canvas_launcher/environ.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/canvas_launcher/mainwindow.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/canvas_launcher/splash.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/canvas_launcher/widgetsscheme.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/darkref.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/darkrefpatch.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/diffframe.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/imagekeyeditor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/imagekeyupgrader.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/intensitynormalization.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/lamino.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/multicor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/multipag.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/nabuapp.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/nxtomoeditor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/patchrawdarkflat.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/radiostack.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/reducedarkflat.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/rsync.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/samplemoved.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/scanviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/sinogramviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/slicestack.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/stopdatalistener.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/app/zstitching.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/cluster/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/cluster/cluster.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/futureobject.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/log/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/log/logger.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/log/processlog.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/cluster/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/cluster/supervisor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/conditions/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/conditions/filters.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datadiscovery.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datalistener/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datalistener/datalistener.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datalistener/rpcserver.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datawatcher/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datawatcher/datawatcher.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datawatcher/datawatcherobserver.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datawatcher/datawatcherprocess.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datawatcher/edfdwprocess.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datawatcher/hdf5dwprocess.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/datawatcher/status.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/emailnotifier.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/nxtomoconcatenate.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/nxtomomill.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/scanlist.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/scanselector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/scantransfer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/scanvalidator.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/singletomoobj.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/test/test_concatenate_nxtomos.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/test/test_email.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/test/test_h52nx_process.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/test/test_volume_link.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/timer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/tomoobjserie.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/volumeselector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/control/volumesymlink.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/edit/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/edit/darkflatpatch.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/edit/imagekeyeditor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/icat/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/icat/createscreenshots.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/icat/gallery.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/icat/icatbase.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/icat/publish.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/icat/screenshots.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/output.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/axis/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/axis/anglemode.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/axis/axis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/axis/mode.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/axis/params.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/axis/projectiontype.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/darkref/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/darkref/darkrefs.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/darkref/darkrefscopy.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/darkref/params.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/darkref/settings.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/lamino/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/lamino/tofu.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/nabu/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/nabu/castvolume.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/nabu/helical.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/nabu/nabuscores.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/nabu/nabuslices.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/nabu/nabuvolume.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/nabu/settings.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/nabu/target.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/nabu/utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/normalization/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/normalization/normalization.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/normalization/params.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/output.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/paramsbase.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/saaxis/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/saaxis/params.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/saaxis/saaxis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/sadeltabeta/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/sadeltabeta/params.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/scores/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/scores/params.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/scores/scores.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/test/test_axis_params.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/test/test_darkref.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/test/test_darkref_copy.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/test/test_paramsbase.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/test/test_saaxis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/test/test_sadeltabeta.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/test/test_utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/utils/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/reconstruction/utils/cor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/script/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/script/python.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/stitching/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/stitching/metadataholder.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/stitching/nabustitcher.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/task.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/test_axis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/test_conditions.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/test_dark_and_flat.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/test_data_listener.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/test_data_transfer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/test_data_watcher.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/test_lamino.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/test_nabu.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/test_normalization.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/test/test_timer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/visualization/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/visualization/dataviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/visualization/diffviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/visualization/imagestackviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/visualization/liveslice.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/visualization/radiostack.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/visualization/samplemoved.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/visualization/sinogramviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/visualization/slicestack.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/process/visualization/volumeviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/progress.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/blissscan.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/edfscan.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/futurescan.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/hdf5scan.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/helicalmetadata.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/nxtomoscan.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/scanbase.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/scanfactory.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/scantype.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/test/test_edf.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/test/test_future_scan.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/test/test_h5.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/test/test_process_registration.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/scan/test/test_scan.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/settings.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/signal.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/test/test_lamino.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/test/test_scanutils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/test/test_utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/tomwer_object.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/Singleton.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/char.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/deprecation.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/dictutils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/ftseriesutils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/gpu.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/image.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/lbsram.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/locker.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/logconfig.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/normalization.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/nxtomoutils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/resource.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/scanutils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/slurm.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/spec.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/threads.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/time.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/utils/volumeutils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/volume/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/volume/edfvolume.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/volume/hdf5volume.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/volume/jp2kvolume.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/volume/rawvolume.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/volume/tiffvolume.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/volume/volumebase.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/core/volume/volumefactory.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/cluster/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/cluster/slurm.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/cluster/supervisor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/cluster/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/cluster/test/test_cluster.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/cluster/test/test_supervisor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/conditions/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/conditions/filter.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/configuration/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/configuration/action.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/configuration/level.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/actions.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datadiscovery.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datalist.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datalistener.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datareacheractions.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datatransfert.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datavalidator.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datawatcher/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datawatcher/configuration.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datawatcher/controlwidget.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datawatcher/datawatcher.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/datawatcher/datawatcherobserver.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/emailnotifier.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/history.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/nxtomomill.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/observations.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/reducedarkflatselector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/scanselectorwidget.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/selectorwidgetbase.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/serie/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/serie/nxtomoconcatenate.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/serie/seriecreator.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/serie/seriewaiter.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/singletomoobj.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_datadiscovery.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_datalist.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_datalistener.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_datavalidator.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_email.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_inputwidget.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_process_manager.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_reducedarkflat_selector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_scanselector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_scanvalidator.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_single_tomo_obj.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_volume_dialog.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/test/test_volumeselector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/tomoobjdisplaymode.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/control/volumeselectorwidget.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/debugtools/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/debugtools/datasetgenerator.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/debugtools/objectinspector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/edit/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/edit/dkrfpatch.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/edit/imagekeyeditor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/edit/nxtomoeditor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/edit/nxtomowarmer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/edit/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/edit/test/test_dkrf_patch.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/edit/test/test_image_key_editor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/edit/test/test_nx_editor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/icat/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/icat/createscreenshots.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/icat/gallery.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/icat/publish.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/icons.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/illustrations.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/imagefromfile.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/qconfigfile.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/qfolderdialog.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/qlefilesystem.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/axis/CompareImages.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/axis/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/axis/axis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/axis/radioaxis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/darkref/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/darkref/darkrefcopywidget.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/darkref/darkrefwidget.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/lamino/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/lamino/tofu/TofuOptionLoader.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/lamino/tofu/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/lamino/tofu/misc.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/lamino/tofu/projections.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/lamino/tofu/settings.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/lamino/tofu/tofu.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/castvolume.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/check.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/helical.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/nabuconfig/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/nabuconfig/base.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/nabuconfig/ctf.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/nabuconfig/output.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/nabuflow.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/slices.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/slurm.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/nabu/volume.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/normalization/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/normalization/intensity.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/saaxis/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/saaxis/corrangeselector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/saaxis/dimensionwidget.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/saaxis/saaxis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/saaxis/sliceselector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/sadeltabeta/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/scores/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/scores/control.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/scores/scoreplot.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/test/test_axis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/test/test_lamino.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/test/test_nabu.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/test/test_saaxis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/reconstruction/test/test_sadeltabeta.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/samplemoved/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/samplemoved/selectiontable.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/settings.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stackplot.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stacks.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/action.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/axisorderedlist.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/config/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/config/axisparams.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/config/output.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/config/positionoveraxis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/config/stitchingstrategies.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/config/tomoobjdetails.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/metadataholder.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/normalization.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/stitchandbackground.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/stitching.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/stitching_preview.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/stitching_raw.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/z_stitching/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/stitching/z_stitching/fineestimation.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/test/test_axis_gui.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/test/test_qfolder_dialog.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/buttons.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/completer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/flow.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/illustrations.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/inputwidget.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/lineselector/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/lineselector/lineselector.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/qt_utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/sandboxes.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/scandescription.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/scrollarea.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/slider.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/splashscreen.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/step.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/unitsystem.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/vignettes.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/utils/waiterthread.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/dataviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/diffviewer/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/diffviewer/diffviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/diffviewer/shiftwidget.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/fullscreenplot.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/nxtomometadata.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/reconstructionparameters.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/scanoverview.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/sinogramviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/test/test_dataviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/test/test_diffviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/test/test_nx_tomo_metadata_viewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/test/test_reconstruction_parameters.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/test/test_sinogramviewer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/test/test_stacks.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/tomoobjoverview.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/gui/visualization/volumeoverview.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/io/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/io/utils/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/io/utils/h5pyutils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/io/utils/raw_and_processed_data.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/io/utils/tomoobj.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/io/utils/utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/Imagej_icon.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/a.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/a.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/add.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/add.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/advanced_user.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/advanced_user.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/axis.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/axis.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/background.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/background.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/basic_user.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/basic_user.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/cfg_file_active.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/cfg_file_active.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/cfg_file_inactive.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/cfg_file_inactive.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/compare_mode_a_minus_b.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/compare_mode_a_minus_b.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/compose.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/compose.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/datalistener_activate.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/datalistener_activate.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/datalistener_deactivate.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/datalistener_deactivate.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/delta_beta.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/delta_beta.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/exit.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/exit.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/full_screen.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/full_screen.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/hammer.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/hammer.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/health.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/health.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/high_speed.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/high_speed.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/history.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/hourglass.npy +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/imageNotFound.npy +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/information.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/information.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/input.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/input.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/invisible.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/invisible.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/lamino_parameters.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/lineselection.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/lineselection.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/list_selection.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/list_selection.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/locked.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/locked.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/log.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/log.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/loop.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/low_speed.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/low_speed.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/medium_low_speed.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/medium_low_speed.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/minimalistic_user.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/minimalistic_user.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/multi-document-save.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/multi-document-save.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/nabu.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/nabu.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/output.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/output.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/parameters.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/parameters.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/plot-xleft.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/plot-xleft.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/plot-xright.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/plot-xright.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/range_selection.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/range_selection.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/results.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/results.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/rm.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/rm.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/roman_four.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/roman_four.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/roman_one.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/roman_one.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/roman_three.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/roman_three.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/roman_two.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/roman_two.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/ruler.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/ruler.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/short_description.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/short_description.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/single_selection.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/single_selection.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/sinogram.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/slurm.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/slurm_active.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/slurm_active.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/slurm_deactive.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/slurm_deactive.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/stitching_modeRaw.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/stitching_modeRaw.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/stitching_modeRefine.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/stitching_modeRefine.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/switch.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/tomwer.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/tomwer_large.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/unlocked.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/unlocked.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/unsharp_mask.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/update_stitching_preview.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/url.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/url.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/vignettes.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/vignettes.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/visible.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/visible.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/warning.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/icons/warning.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/ctf_z1.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/ctf_z1.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/flow_down.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/flow_down.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/flow_right.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/flow_right.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/lamino_angle.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/lamino_angle.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/lamino_beta_angle.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/lamino_beta_angle.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/lamino_theta_angle.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/lamino_theta_angle.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/manual_slice.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/manual_slice.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/no_rot.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/psi_angle.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/psi_angle.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/rotation_center.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/rotation_center.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/slice_stack.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/slice_stack.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/xy_slice.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/xy_slice.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/xz_slice.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/xz_slice.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/yz_slice.png +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/resources/gui/illustrations/yz_slice.svg +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/axis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/darkref.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/datalistener.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/datatransfert.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/imageloaderthread.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/rsyncmanager.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/saaxis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/sadeltabeta.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/control/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/control/datalistener.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/edit/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/edit/darkflatpatch.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/edit/imagekeyeditor.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/processingstack.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/reconstruction/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/reconstruction/axis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/reconstruction/castvolume.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/reconstruction/dkrefcopy.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/reconstruction/lamino.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/reconstruction/nabu.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/reconstruction/normalization.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/reconstruction/saaxis.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/stacks/reconstruction/sadeltabeta.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/test/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/test/test_darkRefs.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/test/test_foldertransfer.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/utils/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/synctools/utils/scanstages.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/tests/__init__.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/tests/conftest.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/tests/datasets.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/tests/test_scripts.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/tests/test_utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/tests/utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer/utils.py +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer.egg-info/dependency_links.txt +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer.egg-info/entry_points.txt +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer.egg-info/namespace_packages.txt +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer.egg-info/requires.txt +0 -0
- {tomwer-1.3.0a2 → tomwer-1.3.0a4}/tomwer.egg-info/top_level.txt +0 -0
@@ -147,10 +147,29 @@ class ResultsLocalRun(ResultsWithStd):
|
|
147
147
|
raise TypeError(
|
148
148
|
f"results_urls is expected to be an Iterable not {type(results_identifiers)}"
|
149
149
|
)
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
150
|
+
|
151
|
+
# check all identifiers
|
152
|
+
from tomwer.core.volume.volumefactory import VolumeFactory
|
153
|
+
|
154
|
+
def check_identifier(identifier):
|
155
|
+
if isinstance(identifier, str):
|
156
|
+
vol = VolumeFactory.create_tomo_object_from_identifier(
|
157
|
+
identifier=identifier
|
158
|
+
)
|
159
|
+
return vol.get_identifier()
|
160
|
+
elif not isinstance(identifier, VolumeIdentifier):
|
161
|
+
raise TypeError(
|
162
|
+
f"identifiers are expected to be VolumeIdentifier. Get {type(identifier)} instead."
|
163
|
+
)
|
164
|
+
else:
|
165
|
+
return identifier
|
166
|
+
|
167
|
+
self.__results_identifiers = tuple(
|
168
|
+
[
|
169
|
+
check_identifier(identifier=identifier)
|
170
|
+
for identifier in results_identifiers
|
171
|
+
]
|
172
|
+
)
|
154
173
|
|
155
174
|
@property
|
156
175
|
def results_identifiers(self) -> tuple:
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import logging
|
2
|
+
import os
|
3
|
+
import pytest
|
4
|
+
import numpy
|
5
|
+
from time import sleep
|
6
|
+
|
7
|
+
from silx.gui import qt
|
8
|
+
from tomoscan.esrf.volume.hdf5volume import HDF5Volume
|
9
|
+
from tomoscan.esrf.volume.tiffvolume import TIFFVolume, has_tifffile
|
10
|
+
|
11
|
+
from tomwer.tests.conftest import qtapp # noqa F401
|
12
|
+
from tomwer.core.utils.scanutils import MockNXtomo
|
13
|
+
from tomwer.gui.visualization.volumeviewer import VolumeViewer
|
14
|
+
|
15
|
+
logging.disable(logging.INFO)
|
16
|
+
|
17
|
+
|
18
|
+
@pytest.mark.skipif(not has_tifffile, reason="tifffile not available")
|
19
|
+
def test_volume_viewer(
|
20
|
+
qtapp, # noqa F811
|
21
|
+
tmp_path,
|
22
|
+
):
|
23
|
+
"""
|
24
|
+
test the volume viewer setting a scan having an HDF5 volume linked to it
|
25
|
+
"""
|
26
|
+
|
27
|
+
widget = VolumeViewer(parent=None)
|
28
|
+
widget.setAttribute(qt.Qt.WA_DeleteOnClose)
|
29
|
+
|
30
|
+
tmp_dir = tmp_path / "test_volume_viewer"
|
31
|
+
tmp_dir.mkdir()
|
32
|
+
|
33
|
+
# step 1 - test setting a scan containing a HDF5Volume
|
34
|
+
scan = MockNXtomo(
|
35
|
+
scan_path=os.path.join(str(tmp_dir), "myscan"),
|
36
|
+
n_proj=20,
|
37
|
+
n_ini_proj=20,
|
38
|
+
dim=10,
|
39
|
+
).scan
|
40
|
+
volume = HDF5Volume(
|
41
|
+
file_path=os.path.join(scan.path, "volume.hdf5"),
|
42
|
+
data_path="entry",
|
43
|
+
data=numpy.random.random(60 * 10 * 10).reshape(60, 10, 10),
|
44
|
+
)
|
45
|
+
volume.save()
|
46
|
+
|
47
|
+
scan.set_latest_vol_reconstructions(
|
48
|
+
[
|
49
|
+
volume,
|
50
|
+
]
|
51
|
+
)
|
52
|
+
|
53
|
+
widget.setScan(scan)
|
54
|
+
assert widget._centralWidget.data() is not None
|
55
|
+
widget.clear()
|
56
|
+
assert widget._centralWidget.data() is None
|
57
|
+
|
58
|
+
# step 2: test setting a a tiff volume dirrectly
|
59
|
+
volume = TIFFVolume(
|
60
|
+
folder=os.path.join(tmp_dir, "my_tiff_vol"),
|
61
|
+
data=numpy.random.random(60 * 100 * 100).reshape(60, 100, 100),
|
62
|
+
)
|
63
|
+
volume.save()
|
64
|
+
|
65
|
+
# 2.1 test with the data being in cache
|
66
|
+
widget.setVolume(volume=volume)
|
67
|
+
assert widget._centralWidget.data() is not None
|
68
|
+
widget.clear()
|
69
|
+
assert widget._centralWidget.data() is None
|
70
|
+
|
71
|
+
# 2.2 test with the data not being in cache anymore
|
72
|
+
volume.clear_cache()
|
73
|
+
|
74
|
+
widget.setVolume(volume=volume)
|
75
|
+
# wait_for_processing_finished
|
76
|
+
while qt.QApplication.instance().hasPendingEvents():
|
77
|
+
qt.QApplication.instance().processEvents()
|
78
|
+
sleep(1.2) # wait for the thread to be processed
|
79
|
+
while qt.QApplication.instance().hasPendingEvents():
|
80
|
+
qt.QApplication.instance().processEvents()
|
81
|
+
# end waiting
|
82
|
+
assert widget._centralWidget.data() is not None
|
@@ -1,35 +1,4 @@
|
|
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
|
-
|
26
|
-
__authors__ = ["H. Payno"]
|
27
|
-
__license__ = "MIT"
|
28
|
-
__date__ = "05/08/2020"
|
29
|
-
|
30
|
-
|
31
1
|
import logging
|
32
|
-
import os
|
33
2
|
import weakref
|
34
3
|
import h5py
|
35
4
|
from typing import Union
|
@@ -49,9 +18,13 @@ from tomoscan.volumebase import VolumeBase
|
|
49
18
|
from tomoscan.io import HDF5File
|
50
19
|
|
51
20
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
52
|
-
from tomwer.core.utils.ftseriesutils import get_vol_file_shape
|
53
21
|
from tomwer.gui.visualization.reconstructionparameters import ReconstructionParameters
|
54
22
|
|
23
|
+
try:
|
24
|
+
from silx.gui.widgets.WaitingOverlay import WaitingOverlay
|
25
|
+
except ImportError:
|
26
|
+
from tomwer.third_part.WaitingOverlay import WaitingOverlay
|
27
|
+
|
55
28
|
_logger = logging.getLogger(__name__)
|
56
29
|
|
57
30
|
|
@@ -247,6 +220,9 @@ class _TomoApplicationContext(DataViewHooks):
|
|
247
220
|
class VolumeViewer(qt.QMainWindow):
|
248
221
|
def __init__(self, parent):
|
249
222
|
qt.QMainWindow.__init__(self, parent)
|
223
|
+
|
224
|
+
self._volume_loaded_in_background = (None, None)
|
225
|
+
# store the volume loaded in the background and the thread used for it as (volume_identifier, thread)
|
250
226
|
self._centralWidget = DataViewerFrame(parent=self)
|
251
227
|
self.__context = _TomoApplicationContext(self)
|
252
228
|
self._centralWidget.setGlobalHooks(self.__context)
|
@@ -254,6 +230,11 @@ class VolumeViewer(qt.QMainWindow):
|
|
254
230
|
qt.QSizePolicy.Expanding, qt.QSizePolicy.Expanding
|
255
231
|
)
|
256
232
|
self.setCentralWidget(self._centralWidget)
|
233
|
+
# waiter overlay to notify user loading is on-going
|
234
|
+
self._waitingOverlay = WaitingOverlay(self._centralWidget)
|
235
|
+
self._waitingOverlay.setIconSize(qt.QSize(30, 30))
|
236
|
+
|
237
|
+
# display scan information when possible
|
257
238
|
self._infoWidget = _ScanInfo(parent=self)
|
258
239
|
|
259
240
|
# top level dock widget to display information regarding the scan
|
@@ -308,9 +289,12 @@ class VolumeViewer(qt.QMainWindow):
|
|
308
289
|
if volume is None:
|
309
290
|
return
|
310
291
|
self._set_volumes(volumes=(volume,))
|
311
|
-
# TODO in the future: do the equivalent of setScan from the volume metadata
|
312
292
|
|
313
293
|
def _get_data_volume(self, volume: VolumeBase):
|
294
|
+
"""
|
295
|
+
load the data of the requested volume.
|
296
|
+
:return: (data: Optional[str], state: str) state can be "loaded", "loading" or "failed"
|
297
|
+
"""
|
314
298
|
if not isinstance(volume, VolumeBase):
|
315
299
|
raise TypeError(
|
316
300
|
f"volume is expected to be an instance of {VolumeBase}. Not {type(volume)}"
|
@@ -321,15 +305,61 @@ class VolumeViewer(qt.QMainWindow):
|
|
321
305
|
self._h5_file = HDF5File(filename=volume.data_url.file_path(), mode="r")
|
322
306
|
if volume.data_url.data_path() in self._h5_file:
|
323
307
|
data = self._h5_file[volume.data_url.data_path()]
|
308
|
+
state = "loaded"
|
324
309
|
else:
|
325
310
|
data = None
|
311
|
+
state = "failed"
|
312
|
+
elif volume.data is not None:
|
313
|
+
data = volume.data
|
314
|
+
state = "loaded"
|
326
315
|
else:
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
316
|
+
volume_id, _ = self._volume_loaded_in_background
|
317
|
+
if volume_id == volume.get_identifier().to_str():
|
318
|
+
# special case if the user send several time the volume which is currently loading
|
319
|
+
# in this case we just want to ignore the request to avoid reloading the volume
|
320
|
+
# can happen in the case of a large volume that take some time to be loaded.
|
321
|
+
pass
|
322
|
+
else:
|
323
|
+
_logger.warning(
|
324
|
+
"Attempt to set a non HDF5 volume to the viewer. This requires to load all the data in memory. This can take a while"
|
325
|
+
)
|
326
|
+
self._stopExistingLoaderThread()
|
327
|
+
self._loadAndDisplay(volume)
|
328
|
+
state = "loading"
|
329
|
+
data = None
|
330
|
+
|
331
|
+
return data, state
|
332
|
+
|
333
|
+
def _loaderThreadFinished(self):
|
334
|
+
"""Callback activated when a VolumeLoader thread is finished"""
|
335
|
+
sender = self.sender()
|
336
|
+
if not isinstance(sender, VolumeLoader):
|
337
|
+
raise TypeError("sender is expected to be a VolumeLoader")
|
338
|
+
|
339
|
+
if sender.volume.data is None:
|
340
|
+
_logger.error(f"Failed to load volume {sender.volume.get_identifier()}")
|
331
341
|
|
332
|
-
|
342
|
+
self._stopExistingLoaderThread()
|
343
|
+
self.setVolume(sender.volume)
|
344
|
+
|
345
|
+
def _loadAndDisplay(self, volume):
|
346
|
+
"""Load a thread and add a callback when loading is done"""
|
347
|
+
loader_thread = VolumeLoader(volume=volume)
|
348
|
+
self._volume_loaded_in_background = (
|
349
|
+
volume.get_identifier().to_str(),
|
350
|
+
loader_thread,
|
351
|
+
)
|
352
|
+
loader_thread.finished.connect(self._loaderThreadFinished)
|
353
|
+
loader_thread.start()
|
354
|
+
|
355
|
+
def _stopExistingLoaderThread(self):
|
356
|
+
"""Will stop any existing loader thread. Make sure we load one volume at most at the time"""
|
357
|
+
_, loader_thread = self._volume_loaded_in_background
|
358
|
+
if loader_thread is not None:
|
359
|
+
loader_thread.finished.disconnect(self._loaderThreadFinished)
|
360
|
+
if loader_thread.isRunning():
|
361
|
+
loader_thread.quit()
|
362
|
+
self._volume_loaded_in_background = (None, None)
|
333
363
|
|
334
364
|
def _set_volumes(self, volumes: tuple):
|
335
365
|
self.clear()
|
@@ -351,21 +381,30 @@ class VolumeViewer(qt.QMainWindow):
|
|
351
381
|
f"Volume should be an instance of a Volume, a VolumeIdentifier or a string refering to a VolumeIdentifier. {type(volume)} provided"
|
352
382
|
)
|
353
383
|
|
354
|
-
data = self._get_data_volume(volume)
|
384
|
+
data, state = self._get_data_volume(volume)
|
355
385
|
# set volume dataset
|
356
|
-
if
|
357
|
-
self.
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
_logger.info(
|
367
|
-
f"Unable to set reconstruction parameters from {volume.data_url}. Not handled for pyhst reconstructions. Error is {e}"
|
386
|
+
if state == "loading":
|
387
|
+
self._waitingOverlay.show()
|
388
|
+
pass
|
389
|
+
elif state == "loaded":
|
390
|
+
self._waitingOverlay.hide()
|
391
|
+
if data is not None:
|
392
|
+
self._set_volume(data)
|
393
|
+
elif state == "failed":
|
394
|
+
_logger.warning(
|
395
|
+
f"Failed to load data from {volume.get_identifier().to_str()}"
|
368
396
|
)
|
397
|
+
# set reconstruction parameters
|
398
|
+
try:
|
399
|
+
# warning: limitation expected for .vol as it gets two configuration file. The default one is vol.info and does not contains
|
400
|
+
# any of the metadata 'distance', 'pixel size'... but it is here for backward compatiblity
|
401
|
+
self._reconsWidget.setVolumeMetadata(
|
402
|
+
volume.metadata or volume.load_metadata()
|
403
|
+
)
|
404
|
+
except Exception as e:
|
405
|
+
_logger.info(
|
406
|
+
f"Unable to set reconstruction parameters from {volume.data_url}. Not handled for pyhst reconstructions. Error is {e}"
|
407
|
+
)
|
369
408
|
|
370
409
|
def _set_volume(self, volume: Union[numpy.ndarray, h5py.Dataset]):
|
371
410
|
self._centralWidget.setData(volume)
|
@@ -380,68 +419,28 @@ class VolumeViewer(qt.QMainWindow):
|
|
380
419
|
self._close_h5_file()
|
381
420
|
# self._centralWidget.setData(None)
|
382
421
|
self._infoWidget.clear()
|
422
|
+
self._centralWidget.setData(None)
|
423
|
+
# if clear stop loading any volume
|
424
|
+
self._stopExistingLoaderThread()
|
383
425
|
|
384
426
|
def sizeHint(self):
|
385
427
|
return qt.QSize(600, 600)
|
386
428
|
|
387
|
-
# TODO: should be merged with dataviewer._load_vol function ?
|
388
|
-
def _load_vol(self, url):
|
389
|
-
"""
|
390
|
-
load a .vol file
|
391
|
-
"""
|
392
|
-
if url.file_path().lower().endswith(".vol.info"):
|
393
|
-
info_file = url.file_path()
|
394
|
-
raw_file = url.file_path().replace(".vol.info", ".vol")
|
395
|
-
else:
|
396
|
-
assert url.file_path().lower().endswith(".vol")
|
397
|
-
raw_file = url.file_path()
|
398
|
-
info_file = url.file_path().replace(".vol", ".vol.info")
|
399
429
|
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
data = None
|
418
|
-
_logger.warning(f"Raw file {raw_file} is too large for being read")
|
419
|
-
else:
|
420
|
-
data = numpy.fromfile(
|
421
|
-
raw_file, dtype=numpy.float32, count=-1, sep=""
|
422
|
-
)
|
423
|
-
try:
|
424
|
-
data = data.reshape(shape)
|
425
|
-
except ValueError:
|
426
|
-
_logger.warning(
|
427
|
-
f"unable to fix shape for raw file {raw_file}. "
|
428
|
-
"Look for information in {info_file}"
|
429
|
-
)
|
430
|
-
try:
|
431
|
-
sqr = int(numpy.sqrt(len(data)))
|
432
|
-
shape = (1, sqr, sqr)
|
433
|
-
data = data.reshape(shape)
|
434
|
-
except ValueError:
|
435
|
-
_logger.info(
|
436
|
-
f"deduction of shape size for {raw_file} " "failed"
|
437
|
-
)
|
438
|
-
data = None
|
439
|
-
else:
|
440
|
-
_logger.warning(
|
441
|
-
f"try deducing shape size for {raw_file} "
|
442
|
-
"might be an incorrect interpretation"
|
443
|
-
)
|
444
|
-
if url.data_slice() is None:
|
445
|
-
return data
|
446
|
-
else:
|
447
|
-
return data[url.data_slice()]
|
430
|
+
class VolumeLoader(qt.QThread):
|
431
|
+
"""
|
432
|
+
simple thread that load a volume in memory
|
433
|
+
"""
|
434
|
+
|
435
|
+
def __init__(self, volume: VolumeBase) -> None:
|
436
|
+
super().__init__()
|
437
|
+
if not isinstance(volume, VolumeBase):
|
438
|
+
raise TypeError()
|
439
|
+
self.__volume = volume
|
440
|
+
|
441
|
+
def run(self):
|
442
|
+
self.__volume.load_data(store=True)
|
443
|
+
|
444
|
+
@property
|
445
|
+
def volume(self):
|
446
|
+
return self.__volume
|
@@ -0,0 +1,110 @@
|
|
1
|
+
from typing import Optional
|
2
|
+
from silx.gui.widgets.WaitingPushButton import WaitingPushButton
|
3
|
+
from silx.gui import qt
|
4
|
+
from silx.gui.qt import inspect as qt_inspect
|
5
|
+
from silx.gui.plot import PlotWidget
|
6
|
+
|
7
|
+
|
8
|
+
class WaitingOverlay(qt.QWidget):
|
9
|
+
"""Widget overlaying another widget with a processing wheel icon.
|
10
|
+
|
11
|
+
:param parent: widget on top of which to display the "processing/waiting wheel"
|
12
|
+
"""
|
13
|
+
|
14
|
+
def __init__(self, parent: qt.QWidget) -> None:
|
15
|
+
super().__init__(parent)
|
16
|
+
self.setContentsMargins(0, 0, 0, 0)
|
17
|
+
|
18
|
+
self._waitingButton = WaitingPushButton(self)
|
19
|
+
self._waitingButton.setDown(True)
|
20
|
+
self._waitingButton.setWaiting(True)
|
21
|
+
self._waitingButton.setStyleSheet(
|
22
|
+
"QPushButton { background-color: rgba(150, 150, 150, 40); border: 0px; border-radius: 10px; }"
|
23
|
+
)
|
24
|
+
self._registerParent(parent)
|
25
|
+
|
26
|
+
def text(self) -> str:
|
27
|
+
"""Returns displayed text"""
|
28
|
+
return self._waitingButton.text()
|
29
|
+
|
30
|
+
def setText(self, text: str):
|
31
|
+
"""Set displayed text"""
|
32
|
+
self._waitingButton.setText(text)
|
33
|
+
self._resize()
|
34
|
+
|
35
|
+
def _listenedWidget(self, parent: qt.QWidget) -> qt.QWidget:
|
36
|
+
"""Returns widget to register event filter to according to parent"""
|
37
|
+
if isinstance(parent, PlotWidget):
|
38
|
+
return parent.getWidgetHandle()
|
39
|
+
return parent
|
40
|
+
|
41
|
+
def _backendChanged(self):
|
42
|
+
self._listenedWidget(self.parent()).installEventFilter(self)
|
43
|
+
self._resizeLater()
|
44
|
+
|
45
|
+
def _registerParent(self, parent: Optional[qt.QWidget]):
|
46
|
+
if parent is None:
|
47
|
+
return
|
48
|
+
self._listenedWidget(parent).installEventFilter(self)
|
49
|
+
if isinstance(parent, PlotWidget):
|
50
|
+
parent.sigBackendChanged.connect(self._backendChanged)
|
51
|
+
self._resize()
|
52
|
+
|
53
|
+
def _unregisterParent(self, parent: Optional[qt.QWidget]):
|
54
|
+
if parent is None:
|
55
|
+
return
|
56
|
+
if isinstance(parent, PlotWidget):
|
57
|
+
parent.sigBackendChanged.disconnect(self._backendChanged)
|
58
|
+
self._listenedWidget(parent).removeEventFilter(self)
|
59
|
+
|
60
|
+
def setParent(self, parent: qt.QWidget):
|
61
|
+
self._unregisterParent(self.parent())
|
62
|
+
super().setParent(parent)
|
63
|
+
self._registerParent(parent)
|
64
|
+
|
65
|
+
def showEvent(self, event: qt.QShowEvent):
|
66
|
+
super().showEvent(event)
|
67
|
+
self._waitingButton.setVisible(True)
|
68
|
+
|
69
|
+
def hideEvent(self, event: qt.QHideEvent):
|
70
|
+
super().hideEvent(event)
|
71
|
+
self._waitingButton.setVisible(False)
|
72
|
+
|
73
|
+
def _resize(self):
|
74
|
+
if not qt_inspect.isValid(self):
|
75
|
+
return # For _resizeLater in case the widget has been deleted
|
76
|
+
|
77
|
+
parent = self.parent()
|
78
|
+
if parent is None:
|
79
|
+
return
|
80
|
+
|
81
|
+
size = self._waitingButton.sizeHint()
|
82
|
+
if isinstance(parent, PlotWidget):
|
83
|
+
offset = parent.getWidgetHandle().mapTo(parent, qt.QPoint(0, 0))
|
84
|
+
left, top, width, height = parent.getPlotBoundsInPixels()
|
85
|
+
rect = qt.QRect(
|
86
|
+
qt.QPoint(
|
87
|
+
int(offset.x() + left + width / 2 - size.width() / 2),
|
88
|
+
int(offset.y() + top + height / 2 - size.height() / 2),
|
89
|
+
),
|
90
|
+
size,
|
91
|
+
)
|
92
|
+
else:
|
93
|
+
position = parent.size()
|
94
|
+
position = (position - size) / 2
|
95
|
+
rect = qt.QRect(qt.QPoint(position.width(), position.height()), size)
|
96
|
+
self.setGeometry(rect)
|
97
|
+
self.raise_()
|
98
|
+
|
99
|
+
def _resizeLater(self):
|
100
|
+
qt.QTimer.singleShot(0, self._resize)
|
101
|
+
|
102
|
+
def eventFilter(self, watched: qt.QWidget, event: qt.QEvent):
|
103
|
+
if event.type() == qt.QEvent.Resize:
|
104
|
+
self._resize()
|
105
|
+
self._resizeLater() # Defer resize for the receiver to have handled it
|
106
|
+
return super().eventFilter(watched, event)
|
107
|
+
|
108
|
+
# expose Waiting push button API
|
109
|
+
def setIconSize(self, size):
|
110
|
+
self._waitingButton.setIconSize(size)
|
File without changes
|
@@ -1,84 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# /*##########################################################################
|
3
|
-
# Copyright (C) 2016 European Synchrotron Radiation Facility
|
4
|
-
#
|
5
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
# of this software and associated documentation files (the "Software"), to deal
|
7
|
-
# in the Software without restriction, including without limitation the rights
|
8
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
# copies of the Software, and to permit persons to whom the Software is
|
10
|
-
# furnished to do so, subject to the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be included in
|
13
|
-
# all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
-
# THE SOFTWARE.
|
22
|
-
#
|
23
|
-
#############################################################################*/
|
24
|
-
|
25
|
-
|
26
|
-
__authors__ = ["H. Payno"]
|
27
|
-
__license__ = "MIT"
|
28
|
-
__date__ = "21/06/2021"
|
29
|
-
|
30
|
-
|
31
|
-
import logging
|
32
|
-
import os
|
33
|
-
import shutil
|
34
|
-
import tempfile
|
35
|
-
import unittest
|
36
|
-
|
37
|
-
import numpy
|
38
|
-
from silx.gui import qt
|
39
|
-
from silx.gui.utils.testutils import TestCaseQt
|
40
|
-
from tomoscan.esrf.volume.hdf5volume import HDF5Volume
|
41
|
-
|
42
|
-
from tomwer.core.utils.scanutils import MockNXtomo
|
43
|
-
from tomwer.gui.visualization.volumeviewer import VolumeViewer
|
44
|
-
|
45
|
-
logging.disable(logging.INFO)
|
46
|
-
|
47
|
-
|
48
|
-
class TestDiffViewer(TestCaseQt):
|
49
|
-
"""unit test for the :class:_ImageStack widget"""
|
50
|
-
|
51
|
-
def setUp(self):
|
52
|
-
TestCaseQt.setUp(self)
|
53
|
-
self._widget = VolumeViewer(parent=None)
|
54
|
-
self._widget.setAttribute(qt.Qt.WA_DeleteOnClose)
|
55
|
-
|
56
|
-
self.tmp_dir = tempfile.mkdtemp()
|
57
|
-
|
58
|
-
self.scan = MockNXtomo(
|
59
|
-
scan_path=os.path.join(self.tmp_dir, "myscan"),
|
60
|
-
n_proj=20,
|
61
|
-
n_ini_proj=20,
|
62
|
-
dim=10,
|
63
|
-
).scan
|
64
|
-
volume = HDF5Volume(
|
65
|
-
file_path=os.path.join(self.scan.path, "volume.hdf5"),
|
66
|
-
data_path="entry",
|
67
|
-
data=numpy.random.random(60 * 10 * 10).reshape(60, 10, 10),
|
68
|
-
)
|
69
|
-
volume.save()
|
70
|
-
|
71
|
-
self.scan.set_latest_vol_reconstructions(
|
72
|
-
[
|
73
|
-
volume,
|
74
|
-
]
|
75
|
-
)
|
76
|
-
|
77
|
-
def tearDown(self):
|
78
|
-
shutil.rmtree(self.tmp_dir)
|
79
|
-
self._widget.close()
|
80
|
-
self._widget = None
|
81
|
-
unittest.TestCase.tearDown(self)
|
82
|
-
|
83
|
-
def test(self):
|
84
|
-
self._widget.setScan(self.scan)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|