tomwer 1.1.1__py3-none-any.whl → 1.2.0a0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. orangecontrib/tomwer/__init__.py +1 -0
  2. orangecontrib/tomwer/orange/managedprocess.py +6 -4
  3. orangecontrib/tomwer/state_summary.py +3 -2
  4. orangecontrib/tomwer/widgets/__init__.py +2 -2
  5. orangecontrib/tomwer/widgets/cluster/FutureSupervisorOW.py +9 -7
  6. orangecontrib/tomwer/widgets/cluster/SlurmClusterOW.py +6 -5
  7. orangecontrib/tomwer/widgets/control/AdvancementOW.py +2 -1
  8. orangecontrib/tomwer/widgets/control/DataDiscoveryOW.py +235 -0
  9. orangecontrib/tomwer/widgets/control/DataListOW.py +7 -5
  10. orangecontrib/tomwer/widgets/control/DataListenerOW.py +13 -14
  11. orangecontrib/tomwer/widgets/control/DataSelectorOW.py +8 -6
  12. orangecontrib/tomwer/widgets/control/DataTransfertOW.py +9 -9
  13. orangecontrib/tomwer/widgets/control/DataValidatorOW.py +7 -8
  14. orangecontrib/tomwer/widgets/control/DataWatcherOW.py +25 -17
  15. orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py +8 -8
  16. orangecontrib/tomwer/widgets/control/FilterOW.py +9 -8
  17. orangecontrib/tomwer/widgets/control/NXTomomillMixIn.py +3 -4
  18. orangecontrib/tomwer/widgets/control/NXTomomillOW.py +13 -14
  19. orangecontrib/tomwer/widgets/control/NotifierOW.py +3 -4
  20. orangecontrib/tomwer/widgets/control/SingleTomoObjOW.py +7 -5
  21. orangecontrib/tomwer/widgets/control/TimerOW.py +6 -5
  22. orangecontrib/tomwer/widgets/control/TomoObjSerieOW.py +5 -3
  23. orangecontrib/tomwer/widgets/control/VolumeSelector.py +8 -6
  24. orangecontrib/tomwer/widgets/control/VolumeSymLinkOW.py +10 -9
  25. orangecontrib/tomwer/widgets/control/icons/datadiscover.png +0 -0
  26. orangecontrib/tomwer/widgets/control/icons/datadiscover.svg +137 -0
  27. orangecontrib/tomwer/widgets/control/icons/nxtomomill.png +0 -0
  28. orangecontrib/tomwer/widgets/control/icons/nxtomomill.svg +5 -8
  29. orangecontrib/tomwer/widgets/debugtools/DatasetGeneratorOW.py +13 -15
  30. orangecontrib/tomwer/widgets/debugtools/ObjectInspectorOW.py +3 -2
  31. orangecontrib/tomwer/widgets/edit/DarkFlatPatchOW.py +10 -7
  32. orangecontrib/tomwer/widgets/edit/ImageKeyEditorOW.py +8 -5
  33. orangecontrib/tomwer/widgets/edit/ImageKeyUpgraderOW.py +5 -2
  34. orangecontrib/tomwer/widgets/edit/NXtomoEditorOW.py +6 -3
  35. orangecontrib/tomwer/widgets/edit/test/test_dark_flat_patch.py +8 -6
  36. orangecontrib/tomwer/widgets/edit/test/test_image_key_editor.py +3 -1
  37. orangecontrib/tomwer/widgets/edit/test/test_image_key_upgrader.py +3 -1
  38. orangecontrib/tomwer/widgets/edit/test/test_nxtomo_editor.py +3 -1
  39. orangecontrib/tomwer/widgets/other/PythonScriptOW.py +11 -11
  40. orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +22 -27
  41. orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py +13 -11
  42. orangecontrib/tomwer/widgets/reconstruction/DarkRefAndCopyOW.py +11 -9
  43. orangecontrib/tomwer/widgets/reconstruction/NabuOW.py +16 -14
  44. orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py +27 -32
  45. orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +27 -34
  46. orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +23 -25
  47. orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py +16 -18
  48. orangecontrib/tomwer/widgets/reconstruction/TofuOW.py +9 -7
  49. orangecontrib/tomwer/widgets/reconstruction/icons/nabu_2d.png +0 -0
  50. orangecontrib/tomwer/widgets/reconstruction/icons/nabu_2d.svg +8 -11
  51. orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +8 -8
  52. orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +6 -4
  53. orangecontrib/tomwer/widgets/visualization/LivesliceOW.py +4 -3
  54. orangecontrib/tomwer/widgets/visualization/NXtomoMetadataViewerOW.py +4 -3
  55. orangecontrib/tomwer/widgets/visualization/RadioStackOW.py +6 -4
  56. orangecontrib/tomwer/widgets/visualization/SampleMovedOW.py +8 -6
  57. orangecontrib/tomwer/widgets/visualization/SinogramViewerOW.py +6 -3
  58. orangecontrib/tomwer/widgets/visualization/SliceStackOW.py +7 -5
  59. orangecontrib/tomwer/widgets/visualization/VolumeViewerOW.py +5 -4
  60. tomwer/__init__.py +1 -1
  61. tomwer/__main__.py +2 -1
  62. tomwer/app/axis.py +18 -14
  63. tomwer/app/canvas.py +7 -5
  64. tomwer/app/canvas_launcher/config.py +8 -6
  65. tomwer/app/canvas_launcher/environ.py +1 -2
  66. tomwer/app/canvas_launcher/mainwindow.py +23 -22
  67. tomwer/app/canvas_launcher/splash.py +1 -0
  68. tomwer/app/canvas_launcher/widgetsscheme.py +3 -3
  69. tomwer/app/darkref.py +7 -6
  70. tomwer/app/darkrefpatch.py +8 -6
  71. tomwer/app/diffframe.py +6 -4
  72. tomwer/app/imagekeyeditor.py +10 -10
  73. tomwer/app/imagekeyupgrader.py +8 -6
  74. tomwer/app/intensitynormalization.py +8 -8
  75. tomwer/app/lamino.py +5 -3
  76. tomwer/app/nabuapp.py +8 -6
  77. tomwer/app/nxtomoeditor.py +6 -5
  78. tomwer/app/radiostack.py +8 -6
  79. tomwer/app/rsync.py +3 -3
  80. tomwer/app/saaxis.py +22 -23
  81. tomwer/app/sadeltabeta.py +21 -21
  82. tomwer/app/samplemoved.py +8 -6
  83. tomwer/app/scanviewer.py +7 -6
  84. tomwer/app/sinogramviewer.py +8 -7
  85. tomwer/app/slicestack.py +8 -6
  86. tomwer/app/stopdatalistener.py +2 -1
  87. tomwer/core/futureobject.py +15 -6
  88. tomwer/core/log/logger.py +4 -3
  89. tomwer/core/log/processlog.py +0 -1
  90. tomwer/core/process/conditions/filters.py +3 -3
  91. tomwer/core/process/control/datadiscovery.py +7 -0
  92. tomwer/core/process/control/datalistener/datalistener.py +22 -21
  93. tomwer/core/process/control/datalistener/rpcserver.py +18 -28
  94. tomwer/core/process/control/datawatcher/datawatcher.py +15 -12
  95. tomwer/core/process/control/datawatcher/datawatcherobserver.py +11 -8
  96. tomwer/core/process/control/datawatcher/datawatcherprocess.py +7 -5
  97. tomwer/core/process/control/datawatcher/edfdwprocess.py +5 -15
  98. tomwer/core/process/control/datawatcher/hdf5dwprocess.py +3 -1
  99. tomwer/core/process/control/datawatcher/status.py +2 -0
  100. tomwer/core/process/control/nxtomomill.py +7 -6
  101. tomwer/core/process/control/scanlist.py +2 -1
  102. tomwer/core/process/control/scanselector.py +1 -0
  103. tomwer/core/process/control/scantransfer.py +12 -12
  104. tomwer/core/process/control/scanvalidator.py +7 -6
  105. tomwer/core/process/control/test/test_volume_link.py +5 -4
  106. tomwer/core/process/control/timer.py +4 -4
  107. tomwer/core/process/control/volumeselector.py +1 -0
  108. tomwer/core/process/control/volumesymlink.py +8 -9
  109. tomwer/core/process/edit/darkflatpatch.py +9 -12
  110. tomwer/core/process/edit/imagekeyeditor.py +11 -13
  111. tomwer/core/process/reconstruction/axis/axis.py +36 -38
  112. tomwer/core/process/reconstruction/axis/mode.py +2 -1
  113. tomwer/core/process/reconstruction/axis/params.py +23 -28
  114. tomwer/core/process/reconstruction/darkref/darkrefs.py +23 -27
  115. tomwer/core/process/reconstruction/darkref/darkrefscopy.py +14 -18
  116. tomwer/core/process/reconstruction/darkref/params.py +3 -1
  117. tomwer/core/process/reconstruction/lamino/tofu.py +11 -15
  118. tomwer/core/process/reconstruction/nabu/castvolume.py +15 -18
  119. tomwer/core/process/reconstruction/nabu/nabucommon.py +19 -20
  120. tomwer/core/process/reconstruction/nabu/nabuscores.py +16 -14
  121. tomwer/core/process/reconstruction/nabu/nabuslices.py +27 -22
  122. tomwer/core/process/reconstruction/nabu/nabuvolume.py +20 -22
  123. tomwer/core/process/reconstruction/nabu/utils.py +17 -15
  124. tomwer/core/process/reconstruction/normalization/__init__.py +1 -3
  125. tomwer/core/process/reconstruction/normalization/normalization.py +16 -21
  126. tomwer/core/process/reconstruction/normalization/params.py +2 -2
  127. tomwer/core/process/reconstruction/saaxis/__init__.py +1 -1
  128. tomwer/core/process/reconstruction/saaxis/params.py +6 -7
  129. tomwer/core/process/reconstruction/saaxis/saaxis.py +44 -55
  130. tomwer/core/process/reconstruction/sadeltabeta/__init__.py +1 -1
  131. tomwer/core/process/reconstruction/sadeltabeta/params.py +9 -13
  132. tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +40 -46
  133. tomwer/core/process/reconstruction/scores/__init__.py +2 -2
  134. tomwer/core/process/reconstruction/scores/params.py +6 -9
  135. tomwer/core/process/reconstruction/scores/scores.py +10 -13
  136. tomwer/core/process/reconstruction/test/test_axis_params.py +4 -2
  137. tomwer/core/process/reconstruction/test/test_darkref.py +1 -2
  138. tomwer/core/process/reconstruction/test/test_darkref_copy.py +3 -1
  139. tomwer/core/process/reconstruction/test/test_paramsbase.py +1 -1
  140. tomwer/core/process/reconstruction/test/test_saaxis.py +11 -7
  141. tomwer/core/process/reconstruction/test/test_sadeltabeta.py +5 -4
  142. tomwer/core/process/reconstruction/test/test_utils.py +3 -2
  143. tomwer/core/process/script/python.py +6 -8
  144. tomwer/core/process/task.py +11 -12
  145. tomwer/core/process/test/test_axis.py +12 -9
  146. tomwer/core/process/test/test_conditions.py +8 -8
  147. tomwer/core/process/test/test_dark_and_flat.py +9 -8
  148. tomwer/core/process/test/test_data_listener.py +5 -3
  149. tomwer/core/process/test/test_data_transfer.py +14 -12
  150. tomwer/core/process/test/test_data_watcher.py +3 -1
  151. tomwer/core/process/test/test_lamino.py +3 -1
  152. tomwer/core/process/test/test_nabu.py +13 -12
  153. tomwer/core/process/test/test_normalization.py +7 -5
  154. tomwer/core/process/test/test_timer.py +2 -1
  155. tomwer/core/process/utils.py +9 -9
  156. tomwer/core/progress.py +3 -4
  157. tomwer/core/scan/blissscan.py +4 -2
  158. tomwer/core/scan/edfscan.py +26 -29
  159. tomwer/core/scan/futurescan.py +2 -1
  160. tomwer/core/scan/hdf5scan.py +21 -28
  161. tomwer/core/scan/scanbase.py +18 -18
  162. tomwer/core/scan/scanfactory.py +20 -21
  163. tomwer/core/scan/scantype.py +7 -0
  164. tomwer/core/scan/test/test_edf.py +2 -1
  165. tomwer/core/scan/test/test_future_scan.py +2 -1
  166. tomwer/core/scan/test/test_h5.py +5 -4
  167. tomwer/core/scan/test/test_process_registration.py +5 -3
  168. tomwer/core/scan/test/test_scan.py +11 -9
  169. tomwer/core/settings.py +1 -2
  170. tomwer/core/test/test_lamino.py +3 -2
  171. tomwer/core/test/test_scanutils.py +3 -2
  172. tomwer/core/test/test_utils.py +6 -4
  173. tomwer/core/utils/__init__.py +8 -6
  174. tomwer/core/utils/deprecation.py +2 -2
  175. tomwer/core/utils/image.py +4 -3
  176. tomwer/core/utils/locker.py +1 -1
  177. tomwer/core/utils/normalization.py +1 -0
  178. tomwer/core/utils/nxtomoutils.py +2 -1
  179. tomwer/core/utils/scanutils.py +9 -6
  180. tomwer/core/utils/slurm.py +2 -1
  181. tomwer/core/utils/time.py +2 -4
  182. tomwer/core/utils/volumeutils.py +2 -1
  183. tomwer/core/volume/__init__.py +1 -1
  184. tomwer/core/volume/edfvolume.py +4 -3
  185. tomwer/core/volume/hdf5volume.py +6 -8
  186. tomwer/core/volume/jp2kvolume.py +4 -3
  187. tomwer/core/volume/rawvolume.py +7 -7
  188. tomwer/core/volume/tiffvolume.py +8 -6
  189. tomwer/core/volume/volumebase.py +1 -0
  190. tomwer/core/volume/volumefactory.py +18 -18
  191. tomwer/gui/cluster/slurm.py +2 -0
  192. tomwer/gui/cluster/supervisor.py +4 -2
  193. tomwer/gui/cluster/test/test_cluster.py +5 -4
  194. tomwer/gui/cluster/test/test_supervisor.py +4 -2
  195. tomwer/gui/conditions/filter.py +7 -6
  196. tomwer/gui/control/actions.py +1 -0
  197. tomwer/gui/control/datadiscovery.py +168 -0
  198. tomwer/gui/control/datalist.py +29 -28
  199. tomwer/gui/control/datalistener.py +8 -4
  200. tomwer/gui/control/datareacheractions.py +2 -1
  201. tomwer/gui/control/datatransfert.py +3 -1
  202. tomwer/gui/control/datavalidator.py +11 -12
  203. tomwer/gui/control/datawatcher/configuration.py +12 -1
  204. tomwer/gui/control/datawatcher/controlwidget.py +116 -0
  205. tomwer/gui/control/datawatcher/datawatcher.py +63 -121
  206. tomwer/gui/control/datawatcher/datawatcherobserver.py +7 -9
  207. tomwer/gui/control/history.py +3 -1
  208. tomwer/gui/control/observations.py +7 -7
  209. tomwer/gui/control/scanselectorwidget.py +4 -2
  210. tomwer/gui/control/selectorwidgetbase.py +3 -1
  211. tomwer/gui/control/serie/seriecreator.py +11 -12
  212. tomwer/gui/control/singletomoobj.py +4 -4
  213. tomwer/gui/control/test/test_datadiscovery.py +27 -0
  214. tomwer/gui/control/test/test_datalist.py +7 -6
  215. tomwer/gui/control/test/test_datalistener.py +4 -4
  216. tomwer/gui/control/test/test_datavalidator.py +3 -1
  217. tomwer/gui/control/test/test_inputwidget.py +5 -4
  218. tomwer/gui/control/test/test_process_manager.py +3 -3
  219. tomwer/gui/control/test/test_scanselector.py +6 -4
  220. tomwer/gui/control/test/test_scanvalidator.py +6 -5
  221. tomwer/gui/control/test/test_single_tomo_obj.py +5 -3
  222. tomwer/gui/control/test/test_volume_dialog.py +7 -5
  223. tomwer/gui/control/test/test_volumeselector.py +8 -6
  224. tomwer/gui/control/volumeselectorwidget.py +2 -1
  225. tomwer/gui/debugtools/datasetgenerator.py +2 -1
  226. tomwer/gui/debugtools/objectinspector.py +6 -7
  227. tomwer/gui/edit/dkrfpatch.py +11 -10
  228. tomwer/gui/edit/imagekeyeditor.py +12 -12
  229. tomwer/gui/edit/nxtomoeditor.py +8 -7
  230. tomwer/gui/edit/test/test_dkrf_patch.py +10 -9
  231. tomwer/gui/edit/test/test_image_key_editor.py +8 -6
  232. tomwer/gui/edit/test/test_nx_editor.py +7 -5
  233. tomwer/gui/icons.py +3 -2
  234. tomwer/gui/illustrations.py +3 -2
  235. tomwer/gui/imagefromfile.py +3 -1
  236. tomwer/gui/qfolderdialog.py +14 -12
  237. tomwer/gui/reconstruction/axis/CompareImages.py +9 -8
  238. tomwer/gui/reconstruction/axis/__init__.py +1 -1
  239. tomwer/gui/reconstruction/axis/axis.py +9 -7
  240. tomwer/gui/reconstruction/axis/radioaxis.py +30 -32
  241. tomwer/gui/reconstruction/darkref/darkrefcopywidget.py +6 -5
  242. tomwer/gui/reconstruction/darkref/darkrefwidget.py +4 -2
  243. tomwer/gui/reconstruction/lamino/tofu/misc.py +3 -1
  244. tomwer/gui/reconstruction/lamino/tofu/projections.py +16 -8
  245. tomwer/gui/reconstruction/lamino/tofu/tofu.py +6 -3
  246. tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py +5 -2
  247. tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py +8 -5
  248. tomwer/gui/reconstruction/nabu/action.py +1 -0
  249. tomwer/gui/reconstruction/nabu/castvolume.py +6 -4
  250. tomwer/gui/reconstruction/nabu/check.py +3 -2
  251. tomwer/gui/reconstruction/nabu/nabuconfig/base.py +5 -2
  252. tomwer/gui/reconstruction/nabu/nabuconfig/ctf.py +6 -3
  253. tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py +4 -3
  254. tomwer/gui/reconstruction/nabu/nabuconfig/output.py +7 -5
  255. tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +8 -6
  256. tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +7 -7
  257. tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +40 -33
  258. tomwer/gui/reconstruction/nabu/nabuflow.py +7 -4
  259. tomwer/gui/reconstruction/nabu/slices.py +14 -10
  260. tomwer/gui/reconstruction/nabu/slurm.py +1 -0
  261. tomwer/gui/reconstruction/nabu/volume.py +5 -3
  262. tomwer/gui/reconstruction/normalization/intensity.py +14 -13
  263. tomwer/gui/reconstruction/saaxis/corrangeselector.py +36 -35
  264. tomwer/gui/reconstruction/saaxis/dimensionwidget.py +5 -4
  265. tomwer/gui/reconstruction/saaxis/saaxis.py +17 -17
  266. tomwer/gui/reconstruction/saaxis/sliceselector.py +5 -5
  267. tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +33 -36
  268. tomwer/gui/reconstruction/scores/scoreplot.py +19 -18
  269. tomwer/gui/reconstruction/test/test_axis.py +14 -13
  270. tomwer/gui/reconstruction/test/test_lamino.py +3 -2
  271. tomwer/gui/reconstruction/test/test_nabu.py +8 -6
  272. tomwer/gui/reconstruction/test/test_saaxis.py +17 -15
  273. tomwer/gui/reconstruction/test/test_sadeltabeta.py +15 -13
  274. tomwer/gui/samplemoved/__init__.py +8 -7
  275. tomwer/gui/samplemoved/selectiontable.py +4 -2
  276. tomwer/gui/stackplot.py +14 -13
  277. tomwer/gui/stacks.py +11 -9
  278. tomwer/gui/test/test_axis_gui.py +5 -4
  279. tomwer/gui/test/test_qfolder_dialog.py +2 -1
  280. tomwer/gui/utils/__init__.py +5 -5
  281. tomwer/gui/utils/buttons.py +1 -0
  282. tomwer/gui/utils/completer.py +1 -0
  283. tomwer/gui/utils/flow.py +4 -2
  284. tomwer/gui/utils/illustrations.py +1 -0
  285. tomwer/gui/utils/inputwidget.py +11 -17
  286. tomwer/gui/utils/lineselector/lineselector.py +6 -8
  287. tomwer/gui/utils/qt_utils.py +1 -0
  288. tomwer/gui/utils/scandescription.py +2 -0
  289. tomwer/gui/utils/splashscreen.py +1 -1
  290. tomwer/gui/utils/unitsystem.py +3 -1
  291. tomwer/gui/utils/vignettes.py +8 -8
  292. tomwer/gui/utils/waiterthread.py +2 -1
  293. tomwer/gui/visualization/dataviewer.py +20 -28
  294. tomwer/gui/visualization/diffviewer/diffviewer.py +17 -20
  295. tomwer/gui/visualization/diffviewer/shiftwidget.py +3 -1
  296. tomwer/gui/visualization/nxtomometadata.py +1 -0
  297. tomwer/gui/visualization/reconstructionparameters.py +13 -12
  298. tomwer/gui/visualization/scanoverview.py +5 -3
  299. tomwer/gui/visualization/sinogramviewer.py +3 -2
  300. tomwer/gui/visualization/test/test_dataviewer.py +3 -1
  301. tomwer/gui/visualization/test/test_diffviewer.py +8 -6
  302. tomwer/gui/visualization/test/test_nx_tomo_metadata_viewer.py +5 -3
  303. tomwer/gui/visualization/test/test_reconstruction_parameters.py +5 -3
  304. tomwer/gui/visualization/test/test_sinogramviewer.py +10 -9
  305. tomwer/gui/visualization/test/test_stacks.py +8 -6
  306. tomwer/gui/visualization/test/test_volumeviewer.py +10 -8
  307. tomwer/gui/visualization/tomoobjoverview.py +7 -4
  308. tomwer/gui/visualization/volumeoverview.py +5 -3
  309. tomwer/gui/visualization/volumeviewer.py +15 -14
  310. tomwer/io/utils/__init__.py +3 -3
  311. tomwer/io/utils/h5pyutils.py +2 -1
  312. tomwer/io/utils/utils.py +17 -21
  313. tomwer/resources/__init__.py +1 -1
  314. tomwer/synctools/axis.py +3 -1
  315. tomwer/synctools/darkref.py +3 -2
  316. tomwer/synctools/datalistener.py +10 -6
  317. tomwer/synctools/datatransfert.py +2 -3
  318. tomwer/synctools/imageloaderthread.py +5 -3
  319. tomwer/synctools/rsyncmanager.py +3 -2
  320. tomwer/synctools/saaxis.py +3 -1
  321. tomwer/synctools/sadeltabeta.py +3 -1
  322. tomwer/synctools/stacks/control/datalistener.py +9 -12
  323. tomwer/synctools/stacks/edit/darkflatpatch.py +13 -12
  324. tomwer/synctools/stacks/edit/imagekeyeditor.py +12 -11
  325. tomwer/synctools/stacks/processingstack.py +3 -2
  326. tomwer/synctools/stacks/reconstruction/axis.py +12 -12
  327. tomwer/synctools/stacks/reconstruction/castvolume.py +8 -5
  328. tomwer/synctools/stacks/reconstruction/dkrefcopy.py +10 -9
  329. tomwer/synctools/stacks/reconstruction/lamino.py +9 -7
  330. tomwer/synctools/stacks/reconstruction/nabu.py +18 -17
  331. tomwer/synctools/stacks/reconstruction/normalization.py +12 -16
  332. tomwer/synctools/stacks/reconstruction/saaxis.py +13 -11
  333. tomwer/synctools/stacks/reconstruction/sadeltabeta.py +16 -14
  334. tomwer/synctools/test/test_darkRefs.py +4 -3
  335. tomwer/synctools/test/test_foldertransfer.py +14 -12
  336. tomwer/synctools/test/test_scanstages.py +8 -7
  337. tomwer/synctools/utils/scanstages.py +7 -5
  338. tomwer/tests/conftest.py +4 -4
  339. tomwer/tests/test_scripts.py +3 -2
  340. tomwer/tests/utils/__init__.py +5 -4
  341. tomwer/tests/utils/utilstest.py +5 -6
  342. tomwer/third_party/nabu/preproc/phase.py +7 -5
  343. tomwer/third_party/nabu/utils.py +3 -2
  344. tomwer/utils.py +12 -12
  345. tomwer/version.py +4 -4
  346. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/METADATA +2 -2
  347. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/RECORD +353 -345
  348. /tomwer-1.1.1-py3.8-nspkg.pth → /tomwer-1.2.0a0-py3.8-nspkg.pth +0 -0
  349. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/LICENSE +0 -0
  350. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/WHEEL +0 -0
  351. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/entry_points.txt +0 -0
  352. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/namespace_packages.txt +0 -0
  353. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/top_level.txt +0 -0
@@ -27,21 +27,23 @@ __authors__ = ["H. Payno"]
27
27
  __license__ = "MIT"
28
28
  __date__ = "24/01/2017"
29
29
 
30
- import unittest
30
+ import contextlib
31
31
  import logging
32
+ import os
33
+ import shutil
32
34
  import tempfile
33
- import numpy
35
+ import unittest
36
+ from multiprocessing import Process
37
+
34
38
  import fabio.edfimage
35
- import contextlib
39
+ import numpy
40
+
41
+ from tomwer.core.process.reconstruction.nabu import nabuslices
42
+ from tomwer.core.process.task import Task
36
43
  from tomwer.core.scan.edfscan import EDFTomoScan
37
44
  from tomwer.core.scan.scanfactory import ScanFactory
38
- from tomwer.core.process.task import Task
39
- from tomwer.tests.utils import UtilsTest
40
45
  from tomwer.core.utils.scanutils import MockEDF
41
- from tomwer.core.process.reconstruction.nabu import nabuslices
42
- import shutil
43
- import os
44
- from multiprocessing import Process
46
+ from tomwer.tests.utils import UtilsTest
45
47
 
46
48
  logging.disable(logging.INFO)
47
49
 
tomwer/core/settings.py CHANGED
@@ -30,7 +30,6 @@ __date__ = "02/06/2017"
30
30
 
31
31
  import os
32
32
 
33
-
34
33
  __LBSRAM_PATH = '/lbsram'
35
34
 
36
35
  __DEST_PATH = ''
@@ -104,7 +103,7 @@ class SlurmSettings:
104
103
  N_GPUS_PER_WORKER = 1
105
104
  """number of gpu per worker"""
106
105
 
107
- PYTHON_VENV = "/scisoft/tomotools/activate.sh stable"
106
+ PYTHON_VENV = "/scisoft/tomotools/activate stable"
108
107
  """Python executable to take. Useful if compute nodes have a different environment from the front end.
109
108
  """
110
109
 
@@ -27,9 +27,10 @@ __authors__ = ["H. Payno"]
27
27
  __license__ = "MIT"
28
28
  __date__ = "19/07/2018"
29
29
 
30
- import unittest
31
- import tempfile
32
30
  import shutil
31
+ import tempfile
32
+ import unittest
33
+
33
34
  from tomwer.core.process.reconstruction.lamino import tofu
34
35
  from tomwer.core.scan.edfscan import EDFTomoScan
35
36
 
@@ -27,11 +27,12 @@ __authors__ = ["H. Payno"]
27
27
  __license__ = "MIT"
28
28
  __date__ = "30/09/2019"
29
29
 
30
- import unittest
31
30
  import os
32
31
  import tempfile
33
- from tomwer.core.utils.scanutils import MockHDF5
32
+ import unittest
33
+
34
34
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
35
+ from tomwer.core.utils.scanutils import MockHDF5
35
36
 
36
37
 
37
38
  class TestMockHDF5(unittest.TestCase):
@@ -28,15 +28,17 @@ __license__ = "MIT"
28
28
  __date__ = "02/08/2017"
29
29
 
30
30
 
31
- import unittest
32
- import tempfile
33
31
  import os
34
32
  import shutil
33
+ import tempfile
34
+ import unittest
35
+
36
+ import numpy
37
+
35
38
  from tomwer.core import utils
39
+ from tomwer.core.utils.normalization import flatFieldCorrection
36
40
  from tomwer.core.utils.scanutils import MockEDF, MockHDF5
37
41
  from tomwer.tests.utils import UtilsTest
38
- from tomwer.core.utils.normalization import flatFieldCorrection
39
- import numpy
40
42
 
41
43
 
42
44
  class TestGetClosestEnergy(unittest.TestCase):
@@ -27,16 +27,18 @@ __authors__ = ["H. Payno"]
27
27
  __license__ = "MIT"
28
28
  __date__ = "17/05/2017"
29
29
 
30
- import fabio.edfimage
31
- import os
32
- import psutil
30
+ import fileinput
33
31
  import logging
32
+ import os
34
33
  import shutil
35
- from tomwer.core import settings
36
- from tomoscan.unitsystem import metricsystem
37
34
  from urllib.request import urlopen
38
- import fileinput
35
+
36
+ import fabio.edfimage
37
+ import psutil
39
38
  from lxml import etree
39
+ from tomoscan.unitsystem import metricsystem
40
+
41
+ from tomwer.core import settings
40
42
 
41
43
  logger = logging.getLogger(__name__)
42
44
 
@@ -28,9 +28,9 @@ __authors__ = ["Jerome Kieffer", "H. Payno", "P. Knobel"]
28
28
  __license__ = "MIT"
29
29
  __date__ = "26/02/2018"
30
30
 
31
- import sys
32
- import logging
33
31
  import functools
32
+ import logging
33
+ import sys
34
34
  import traceback
35
35
 
36
36
  depreclog = logging.getLogger("silx.DEPRECATION")
@@ -28,9 +28,10 @@ __license__ = "MIT"
28
28
  __date__ = "25/02/2019"
29
29
 
30
30
 
31
- import numpy
32
- import logging
33
31
  import enum
32
+ import logging
33
+
34
+ import numpy
34
35
  from numpy.linalg import inv
35
36
 
36
37
  _logger = logging.getLogger(__file__)
@@ -67,7 +68,7 @@ def shift_img(
67
68
  assert data.ndim == 2
68
69
  assert dx is not None
69
70
  assert dy is not None
70
- _logger.debug("apply shift dx=%s, dy=%s " % (dx, dy))
71
+ _logger.debug(f"apply shift dx={dx}, dy={dy} ")
71
72
 
72
73
  if use_scipy and has_scipy_shift:
73
74
  return shift_scipy(
@@ -30,8 +30,8 @@ __date__ = "20/04/2020"
30
30
 
31
31
  import os
32
32
  import threading
33
-
34
33
  from contextlib import AbstractContextManager
34
+
35
35
  from tomwer.core.utils.Singleton import singleton
36
36
 
37
37
 
@@ -29,6 +29,7 @@ __date__ = "30/05/2018"
29
29
 
30
30
 
31
31
  import logging
32
+
32
33
  import fabio
33
34
 
34
35
  _logger = logging.getLogger(__name__)
@@ -29,8 +29,9 @@ __date__ = "02/12/2021"
29
29
 
30
30
 
31
31
  from typing import Union
32
- from tomoscan.esrf.scan.hdf5scan import ImageKey
32
+
33
33
  import numpy
34
+ from tomoscan.esrf.scan.hdf5scan import ImageKey
34
35
 
35
36
 
36
37
  def get_n_series(image_key_values: Union[tuple, list], image_key_type: ImageKey) -> int:
@@ -30,18 +30,21 @@ __license__ = "MIT"
30
30
  __date__ = "11/08/2022"
31
31
 
32
32
  import logging
33
- import h5py
34
- import numpy
35
- import time
36
33
  import os
34
+ import time
37
35
  from typing import Any
36
+
37
+ import h5py
38
+ import numpy
39
+ from silx.io.utils import h5py_read_dataset
40
+ from tomoscan.esrf.scan.mock import MockEDF as _MockEDF
41
+ from tomoscan.esrf.scan.mock import MockHDF5 as _MockHDF5
38
42
  from tomoscan.io import HDF5File
39
- from tomoscan.esrf.scan.mock import MockEDF as _MockEDF, MockHDF5 as _MockHDF5
40
43
  from tomoscan.test.utils import MockContext
44
+
41
45
  from tomwer.core.scan.blissscan import BlissScan
42
46
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
43
47
  from tomwer.core.scan.scanfactory import ScanFactory
44
- from silx.io.utils import h5py_read_dataset
45
48
 
46
49
  _logger = logging.getLogger(__name__)
47
50
 
@@ -273,7 +276,7 @@ class _BlissSample:
273
276
  h5f["/".join((str(seq_ini_index) + ".1", "end_time"))] = str(time.ctime())
274
277
 
275
278
  if self.__with_nx:
276
- nx_file = "sample_{}.nx".format(str(seq_ini_index).zfill(4))
279
+ nx_file = f"sample_{seq_ini_index:04}.nx"
277
280
  nx_file = os.path.join(self.path, nx_file)
278
281
  with h5py.File(nx_file, "a") as h5f:
279
282
  pass
@@ -30,8 +30,9 @@ __license__ = "MIT"
30
30
  __date__ = "11/10/2021"
31
31
 
32
32
 
33
- from datetime import datetime
34
33
  import uuid
34
+ from datetime import datetime
35
+
35
36
  from sluurp.utils import has_sbatch_available
36
37
 
37
38
 
tomwer/core/utils/time.py CHANGED
@@ -44,7 +44,5 @@ class Timer:
44
44
  self._start_time = time()
45
45
 
46
46
  def __exit__(self, type, value, traceback):
47
- print(
48
- "{title} exec time: {exec_time} s"
49
- "".format(title=self.title, exec_time=(time() - self._start_time))
50
- )
47
+ exec_time = time() - self._start_time
48
+ print(f"{self.title} exec time: {exec_time} s")
@@ -1,6 +1,7 @@
1
- from tomwer.core.volume.volumefactory import VolumeFactory
2
1
  from typing import Any
3
2
 
3
+ from tomwer.core.volume.volumefactory import VolumeFactory
4
+
4
5
 
5
6
  def volume_identifier_to_volume(volume_identifier: Any):
6
7
  """
@@ -1,5 +1,5 @@
1
1
  from .edfvolume import EDFVolume # noqa F401
2
2
  from .hdf5volume import HDF5Volume # noqa F401
3
3
  from .jp2kvolume import JP2KVolume # noqa F401
4
- from .tiffvolume import TIFFVolume, MultiTIFFVolume # noqa F401
5
4
  from .rawvolume import RawVolume # noqa F401
5
+ from .tiffvolume import MultiTIFFVolume, TIFFVolume # noqa F401
@@ -28,12 +28,13 @@ __license__ = "MIT"
28
28
  __date__ = "05/07/2022"
29
29
 
30
30
 
31
- from tomoscan.esrf.volume.edfvolume import EDFVolume as _EDFVolume
32
- from tomwer.core.volume.volumebase import TomwerVolumeBase
31
+ from processview.core.dataset import Dataset, DatasetIdentifier
33
32
  from tomoscan.esrf.identifier.edfidentifier import (
34
33
  EDFVolumeIdentifier as _EDFVolumeIdentifier,
35
34
  )
36
- from processview.core.dataset import DatasetIdentifier, Dataset
35
+ from tomoscan.esrf.volume.edfvolume import EDFVolume as _EDFVolume
36
+
37
+ from tomwer.core.volume.volumebase import TomwerVolumeBase
37
38
 
38
39
 
39
40
  class EDFVolumeIdentifier(_EDFVolumeIdentifier, DatasetIdentifier):
@@ -28,18 +28,16 @@ __license__ = "MIT"
28
28
  __date__ = "05/07/2022"
29
29
 
30
30
 
31
- from tomoscan.esrf.volume.hdf5volume import HDF5Volume as _HDF5Volume
31
+ from urllib.parse import urlparse
32
+
33
+ from processview.core.dataset import Dataset, DatasetIdentifier
32
34
  from tomoscan.esrf.identifier.hdf5Identifier import (
33
35
  HDF5VolumeIdentifier as _HDF5VolumeIdentifier,
34
36
  )
37
+ from tomoscan.esrf.identifier.url_utils import UrlSettings, split_path, split_query
38
+ from tomoscan.esrf.volume.hdf5volume import HDF5Volume as _HDF5Volume
39
+
35
40
  from tomwer.core.volume.volumebase import TomwerVolumeBase
36
- from processview.core.dataset import DatasetIdentifier, Dataset
37
- from urllib.parse import urlparse
38
- from tomoscan.esrf.identifier.url_utils import (
39
- UrlSettings,
40
- split_path,
41
- split_query,
42
- )
43
41
 
44
42
 
45
43
  class HDF5VolumeIdentifier(_HDF5VolumeIdentifier, DatasetIdentifier):
@@ -28,12 +28,13 @@ __license__ = "MIT"
28
28
  __date__ = "05/07/2022"
29
29
 
30
30
 
31
- from tomoscan.esrf.volume.jp2kvolume import JP2KVolume as _JP2KVolume
32
- from tomwer.core.volume.volumebase import TomwerVolumeBase
31
+ from processview.core.dataset import Dataset, DatasetIdentifier
33
32
  from tomoscan.esrf.identifier.jp2kidentifier import (
34
33
  JP2KVolumeIdentifier as _JP2KVolumeIdentifier,
35
34
  )
36
- from processview.core.dataset import DatasetIdentifier, Dataset
35
+ from tomoscan.esrf.volume.jp2kvolume import JP2KVolume as _JP2KVolume
36
+
37
+ from tomwer.core.volume.volumebase import TomwerVolumeBase
37
38
 
38
39
 
39
40
  class JP2KVolumeIdentifier(_JP2KVolumeIdentifier, DatasetIdentifier):
@@ -28,16 +28,16 @@ __license__ = "MIT"
28
28
  __date__ = "11/01/2023"
29
29
 
30
30
 
31
- from tomoscan.esrf.volume.rawvolume import RawVolume as _RawVolume
32
- from tomwer.core.volume.volumebase import TomwerVolumeBase
31
+ from urllib.parse import urlparse
32
+
33
+ from processview.core.dataset import Dataset, DatasetIdentifier
33
34
  from tomoscan.esrf.identifier.rawidentifier import (
34
35
  RawVolumeIdentifier as _RawVolumeIdentifier,
35
36
  )
36
- from processview.core.dataset import DatasetIdentifier, Dataset
37
- from urllib.parse import urlparse
38
- from tomoscan.esrf.identifier.url_utils import (
39
- split_path,
40
- )
37
+ from tomoscan.esrf.identifier.url_utils import split_path
38
+ from tomoscan.esrf.volume.rawvolume import RawVolume as _RawVolume
39
+
40
+ from tomwer.core.volume.volumebase import TomwerVolumeBase
41
41
 
42
42
 
43
43
  class RawVolumeIdentifier(_RawVolumeIdentifier, DatasetIdentifier):
@@ -29,16 +29,18 @@ __date__ = "05/07/2022"
29
29
 
30
30
 
31
31
  import os
32
- from tomoscan.esrf.volume.tiffvolume import (
33
- TIFFVolume as _TIFFVolume,
34
- MultiTIFFVolume as _MultiTIFFVolume,
35
- )
36
- from tomwer.core.volume.volumebase import TomwerVolumeBase
32
+
33
+ from processview.core.dataset import Dataset, DatasetIdentifier
37
34
  from tomoscan.esrf.identifier.tiffidentifier import (
38
35
  MultiTiffVolumeIdentifier as _MultiTiffVolumeIdentifier,
36
+ )
37
+ from tomoscan.esrf.identifier.tiffidentifier import (
39
38
  TIFFVolumeIdentifier as _TIFFVolumeIdentifier,
40
39
  )
41
- from processview.core.dataset import DatasetIdentifier, Dataset
40
+ from tomoscan.esrf.volume.tiffvolume import MultiTIFFVolume as _MultiTIFFVolume
41
+ from tomoscan.esrf.volume.tiffvolume import TIFFVolume as _TIFFVolume
42
+
43
+ from tomwer.core.volume.volumebase import TomwerVolumeBase
42
44
 
43
45
 
44
46
  class TIFFVolumeIdentifier(_TIFFVolumeIdentifier, DatasetIdentifier):
@@ -1,4 +1,5 @@
1
1
  import os
2
+
2
3
  from tomwer.core.tomwer_object import TomwerObject
3
4
 
4
5
 
@@ -28,34 +28,34 @@ __license__ = "MIT"
28
28
  __date__ = "13/07/2022"
29
29
 
30
30
 
31
- from typing import Optional
31
+ import logging
32
+ from typing import Optional, Union
32
33
  from urllib.parse import urlparse
33
- from typing import Union
34
- from tomoscan.factory import Factory as _oVolumeFactory
34
+
35
+ from tomoscan import identifier as _identifier_mod
35
36
  from tomoscan.esrf.identifier.url_utils import split_path
37
+ from tomoscan.factory import Factory as _oVolumeFactory
36
38
  from tomoscan.identifier import BaseIdentifier, ScanIdentifier, VolumeIdentifier
37
- from tomoscan import identifier as _identifier_mod
39
+
40
+ from tomwer.core.scan.edfscan import EDFTomoScan, EDFTomoScanIdentifier
41
+ from tomwer.core.scan.hdf5scan import HDF5TomoScan
42
+ from tomwer.core.volume import (
43
+ EDFVolume,
44
+ HDF5Volume,
45
+ JP2KVolume,
46
+ MultiTIFFVolume,
47
+ RawVolume,
48
+ TIFFVolume,
49
+ )
38
50
  from tomwer.core.volume.edfvolume import EDFVolumeIdentifier
39
- from tomwer.core.scan.edfscan import EDFTomoScanIdentifier
40
51
  from tomwer.core.volume.hdf5volume import HDF5VolumeIdentifier
41
52
  from tomwer.core.volume.jp2kvolume import JP2KVolumeIdentifier
53
+ from tomwer.core.volume.rawvolume import RawVolumeIdentifier
42
54
  from tomwer.core.volume.tiffvolume import (
43
- TIFFVolumeIdentifier,
44
55
  MultiTiffVolumeIdentifier,
56
+ TIFFVolumeIdentifier,
45
57
  )
46
- from tomwer.core.volume.rawvolume import RawVolumeIdentifier
47
- from tomwer.core.volume import (
48
- HDF5Volume,
49
- EDFVolume,
50
- MultiTIFFVolume,
51
- TIFFVolume,
52
- JP2KVolume,
53
- RawVolume,
54
- )
55
- from tomwer.core.scan.edfscan import EDFTomoScan
56
- from tomwer.core.scan.hdf5scan import HDF5TomoScan
57
58
  from tomwer.utils import docstring
58
- import logging
59
59
 
60
60
  _logger = logging.getLogger(__name__)
61
61
 
@@ -29,7 +29,9 @@ __date__ = "11/10/2021"
29
29
 
30
30
 
31
31
  from typing import Optional
32
+
32
33
  from silx.gui import qt
34
+
33
35
  from tomwer.core.settings import SlurmSettings
34
36
 
35
37
 
@@ -28,10 +28,12 @@ __license__ = "MIT"
28
28
  __date__ = "14/10/2021"
29
29
 
30
30
 
31
+ import functools
32
+ from collections import OrderedDict
33
+
31
34
  from silx.gui import qt
35
+
32
36
  from tomwer.core.futureobject import FutureTomwerObject
33
- from collections import OrderedDict
34
- import functools
35
37
 
36
38
 
37
39
  class FutureTomwerScanObserverWidget(qt.QWidget):
@@ -27,12 +27,13 @@ __license__ = "MIT"
27
27
  __date__ = "19/10/2021"
28
28
 
29
29
 
30
- from tomwer.gui.reconstruction.nabu.slurm import SlurmSettingsWidget
31
- from tomwer.core.settings import SlurmSettings
32
- from silx.gui.utils.testutils import TestCaseQt
30
+ import pytest
33
31
  from silx.gui import qt
32
+ from silx.gui.utils.testutils import TestCaseQt
33
+
34
+ from tomwer.core.settings import SlurmSettings
35
+ from tomwer.gui.reconstruction.nabu.slurm import SlurmSettingsWidget
34
36
  from tomwer.tests.utils import skip_gui_test
35
- import pytest
36
37
 
37
38
 
38
39
  @pytest.mark.skipif(skip_gui_test(), reason="skip gui test")
@@ -30,11 +30,13 @@ __date__ = "08/11/2021"
30
30
  import asyncio
31
31
  import os
32
32
  import shutil
33
+ import tempfile
34
+
33
35
  from silx.gui import qt
34
36
  from silx.gui.utils.testutils import TestCaseQt
35
- import tempfile
36
- from tomwer.core.utils.scanutils import MockHDF5
37
+
37
38
  from tomwer.core.futureobject import FutureTomwerObject
39
+ from tomwer.core.utils.scanutils import MockHDF5
38
40
  from tomwer.gui.cluster.supervisor import FutureTomwerScanObserverWidget
39
41
 
40
42
 
@@ -33,12 +33,13 @@ __date__ = "19/07/2018"
33
33
 
34
34
 
35
35
  from silx.gui import qt
36
+
37
+ from tomwer.core.process.conditions.filters import FileNameFilter
36
38
  from tomwer.gui import icons
37
39
  from tomwer.gui.utils.sandboxes import (
38
40
  RegularExpressionSandBox,
39
41
  RegularExpressionSandBoxDialog,
40
42
  )
41
- from tomwer.core.process.conditions.filters import FileNameFilter
42
43
 
43
44
 
44
45
  class FileNameFilterWidget(qt.QWidget):
@@ -126,14 +127,14 @@ class FileNameFilterWidget(qt.QWidget):
126
127
  mess.setModal(False)
127
128
  mess.show()
128
129
 
129
- def setActiveFilter(self, filter):
130
+ def setActiveFilter(self, filter_):
130
131
  valid_fiters = ("regular expression", "unix file name pattern")
131
- if filter not in valid_fiters:
132
+ if filter_ not in valid_fiters:
132
133
  raise ValueError(
133
- f"filter is expected to be one of {valid_fiters}. Not {filter}"
134
+ f"filter is expected to be one of {valid_fiters}. Not {filter_}"
134
135
  )
135
- self._sandBoxPB.setVisible(filter == "regular expression")
136
- self._filterTypeCB.setCurrentText(filter)
136
+ self._sandBoxPB.setVisible(filter_ == "regular expression")
137
+ self._filterTypeCB.setCurrentText(filter_)
137
138
 
138
139
  def getActiveFilter(self):
139
140
  return self._filterTypeCB.currentText()
@@ -29,6 +29,7 @@ __date__ = "23/03/2021"
29
29
 
30
30
 
31
31
  from silx.gui import qt
32
+
32
33
  from tomwer.gui import icons as tomwer_icons
33
34
 
34
35