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
@@ -28,11 +28,13 @@ __author__ = ["H. Payno"]
28
28
  __license__ = "MIT"
29
29
  __date__ = "02/06/2017"
30
30
 
31
- from silx.gui import qt
32
- import numpy.lib.npyio
31
+ import logging
33
32
  import os
33
+
34
+ import numpy.lib.npyio
35
+ from silx.gui import qt
36
+
34
37
  import tomwer.resources
35
- import logging
36
38
  from tomwer.io.utils import get_slice_data
37
39
 
38
40
  logger = logging.getLogger(__name__)
@@ -31,10 +31,11 @@ __license__ = "MIT"
31
31
  __date__ = "11/04/2017"
32
32
 
33
33
 
34
- from rsyncmanager import RSyncManager
34
+ import logging
35
35
  import time
36
+
37
+ from rsyncmanager import RSyncManager
36
38
  from silx.gui import qt
37
- import logging
38
39
 
39
40
  logger = logging.getLogger(__name__)
40
41
 
@@ -27,9 +27,11 @@ __license__ = "MIT"
27
27
  __date__ = "03/05/2019"
28
28
 
29
29
 
30
+ import logging
31
+
30
32
  from silx.gui import qt
33
+
31
34
  from tomwer.core.process.reconstruction.saaxis.params import SAAxisParams
32
- import logging
33
35
 
34
36
  logger = logging.getLogger(__name__)
35
37
 
@@ -27,9 +27,11 @@ __license__ = "MIT"
27
27
  __date__ = "20/05/2021"
28
28
 
29
29
 
30
+ import logging
31
+
30
32
  from silx.gui import qt
33
+
31
34
  from tomwer.core.process.reconstruction.sadeltabeta.params import SADeltaBetaParams
32
- import logging
33
35
 
34
36
  logger = logging.getLogger(__name__)
35
37
 
@@ -28,15 +28,18 @@ __date__ = "16/11/2020"
28
28
 
29
29
 
30
30
  from silx.gui import qt
31
+
31
32
  from tomwer.core.process.control.datalistener import DataListener
32
- from ..processingstack import FIFO, ProcessingThread
33
33
  from tomwer.core.scan.blissscan import BlissScan
34
34
 
35
+ from ..processingstack import FIFO, ProcessingThread
36
+
35
37
  try:
36
38
  # new HDF5Config class
37
39
  from nxtomomill.io.config import TomoHDF5Config as HDF5Config
38
40
  except ImportError:
39
41
  from nxtomomill.io.config import HDF5Config
42
+
40
43
  import logging
41
44
 
42
45
  _logger = logging.getLogger(__name__)
@@ -54,7 +57,7 @@ class DataListenerProcessStack(FIFO, qt.QObject):
54
57
  def _process(self, data, configuration, callback=None):
55
58
  assert isinstance(data, BlissScan)
56
59
  assert isinstance(configuration, HDF5Config)
57
- _logger.info("DataListenerProcessStack is processing {}".format(str(data)))
60
+ _logger.info(f"DataListenerProcessStack is processing {data}")
58
61
  self._data_currently_computed = data
59
62
  self._computationThread.finished.connect(self._end_threaded_computation)
60
63
 
@@ -105,18 +108,14 @@ class _DataListenerConverterThread(ProcessingThread):
105
108
 
106
109
  def init(self, data, configuration):
107
110
  if not isinstance(data, BlissScan):
108
- raise TypeError(
109
- "Only manage BlissScan. {} is not managed" "".format(type(data))
110
- )
111
+ raise TypeError(f"Only manage BlissScan. {type(data)} is not managed")
111
112
  assert isinstance(configuration, HDF5Config)
112
113
  self._scan = data
113
114
  self._configuration = configuration
114
115
 
115
116
  def run(self):
116
117
  self.sigComputationStarted.emit()
117
- _logger.processStarted(
118
- "Start conversion of bliss scan {}".format(str(self._scan))
119
- )
118
+ _logger.processStarted(f"Start conversion of bliss scan {self._scan}")
120
119
 
121
120
  data_listener = DataListener()
122
121
  data_listener.set_configuration(self._configuration or {})
@@ -129,11 +128,9 @@ class _DataListenerConverterThread(ProcessingThread):
129
128
  )
130
129
  except Exception as e:
131
130
  _logger.processFailed(
132
- "Conversion of bliss scan {}." "Reason is {}".format(str(self._scan), e)
131
+ f"Conversion of bliss scan {self._scan}. Reason is {e}"
133
132
  )
134
133
  scans = None
135
134
  else:
136
- _logger.processSucceed(
137
- "Conversion of bliss scan {}." "".format(str(self._scan))
138
- )
135
+ _logger.processSucceed(f"Conversion of bliss scan {self._scan}.")
139
136
  self.parent().register_result(self._scan, scans)
@@ -27,17 +27,20 @@ __license__ = "MIT"
27
27
  __date__ = "28/08/2020"
28
28
 
29
29
 
30
+ import logging
31
+
32
+ from processview.core.manager import DatasetState, ProcessManager
33
+ from processview.core.superviseprocess import SuperviseProcess
30
34
  from silx.gui import qt
31
- from tomwer.core.scan.scanbase import TomwerScanBase
35
+ from silx.io.url import DataUrl
36
+
37
+ from tomwer.core.process.edit import darkflatpatch
32
38
  from tomwer.core.scan.edfscan import EDFTomoScan
39
+ from tomwer.core.scan.scanbase import TomwerScanBase
33
40
  from tomwer.core.settings import get_lbsram_path, isOnLbsram
34
41
  from tomwer.core.utils import isLowOnMemory
42
+
35
43
  from ..processingstack import FIFO, ProcessingThread
36
- from tomwer.core.process.edit import darkflatpatch
37
- from processview.core.superviseprocess import SuperviseProcess
38
- from processview.core.manager import ProcessManager, DatasetState
39
- from silx.io.url import DataUrl
40
- import logging
41
44
 
42
45
  _logger = logging.getLogger(__name__)
43
46
 
@@ -52,7 +55,7 @@ class DarkFlatPatchProcessStack(FIFO, qt.QObject):
52
55
  self._dry_run = False
53
56
 
54
57
  def _process(self, data, configuration, callback=None):
55
- _logger.info("dark-flat patch stack is processing {}".format(str(data)))
58
+ _logger.info(f"dark-flat patch stack is processing {data}")
56
59
  self._data_currently_computed = data
57
60
  assert isinstance(data, TomwerScanBase)
58
61
  self._computationThread.finished.connect(self._end_threaded_computation)
@@ -107,15 +110,13 @@ class _DarkFlatPatchProcessingThread(ProcessingThread, SuperviseProcess):
107
110
 
108
111
  def run(self):
109
112
  self.sigComputationStarted.emit()
110
- _logger.processStarted("{} Start dark-flat patch".format(str(self._scan)))
113
+ _logger.processStarted(f"{self._scan} Start dark-flat patch")
111
114
  try:
112
115
  darkflatpatch.apply_dark_flat_patch(
113
116
  config=self._configuration, scan=self._scan
114
117
  )
115
118
  except Exception as e:
116
- info = "Fail to patch dark-flat for {}. Reason is " "{}".format(
117
- str(self._scan), e
118
- )
119
+ info = f"Fail to patch dark-flat for {self._scan}. Reason is {e}"
119
120
  _logger.processFailed(info)
120
121
  ProcessManager().notify_dataset_state(
121
122
  dataset=self._scan,
@@ -148,7 +149,7 @@ class _DarkFlatPatchProcessingThread(ProcessingThread, SuperviseProcess):
148
149
  _logger.warning(
149
150
  f"Fail to register DarkFlatPatch process. Reason is {e}"
150
151
  )
151
- info = "Dark-flat patched for {}." "".format(str(self._scan))
152
+ info = f"Dark-flat patched for {self._scan}."
152
153
  _logger.processSucceed(info)
153
154
  ProcessManager().notify_dataset_state(
154
155
  dataset=self._scan,
@@ -27,16 +27,19 @@ __license__ = "MIT"
27
27
  __date__ = "28/08/2020"
28
28
 
29
29
 
30
+ import logging
31
+
32
+ from processview.core.manager import DatasetState, ProcessManager
33
+ from processview.core.superviseprocess import SuperviseProcess
30
34
  from silx.gui import qt
35
+ from tomoscan.esrf.scan.hdf5scan import ImageKey
36
+
37
+ from tomwer.core.process.edit import imagekeyeditor
31
38
  from tomwer.core.scan.scanbase import TomwerScanBase
32
39
  from tomwer.core.settings import get_lbsram_path, isOnLbsram
33
40
  from tomwer.core.utils import isLowOnMemory
41
+
34
42
  from ..processingstack import FIFO, ProcessingThread
35
- from tomwer.core.process.edit import imagekeyeditor
36
- from tomoscan.esrf.scan.hdf5scan import ImageKey
37
- from processview.core.superviseprocess import SuperviseProcess
38
- from processview.core.manager import ProcessManager, DatasetState
39
- import logging
40
43
 
41
44
  _logger = logging.getLogger(__name__)
42
45
 
@@ -50,14 +53,14 @@ class ImageKeyEditorProcessStack(FIFO, qt.QObject):
50
53
  self._dry_run = False
51
54
 
52
55
  def _process(self, data, configuration, callback=None):
53
- _logger.info("image-key edition is processing {}".format(str(data)))
56
+ _logger.info(f"image-key edition is processing {data}")
54
57
  self._data_currently_computed = data
55
58
  assert isinstance(data, TomwerScanBase)
56
59
  self._computationThread.finished.connect(self._end_threaded_computation)
57
60
 
58
61
  if isOnLbsram(data) and isLowOnMemory(get_lbsram_path()) is True:
59
62
  # if computer is running into low memory on lbsram skip it
60
- mess = "low memory, skip image-key-edition for", data.path
63
+ mess = f"low memory, skip image-key-edition for {data.path}"
61
64
  _logger.processSkipped(mess)
62
65
  ProcessManager().notify_dataset_state(
63
66
  dataset=data,
@@ -103,15 +106,13 @@ class _ImageKeyEditorProcessingThread(ProcessingThread, SuperviseProcess):
103
106
 
104
107
  def run(self):
105
108
  self.sigComputationStarted.emit()
106
- _logger.processStarted("Start image key edition of {}".format(str(self._scan)))
109
+ _logger.processStarted(f"Start image key edition of {self._scan}")
107
110
  try:
108
111
  imagekeyeditor.change_image_key_control(
109
112
  config=self._configuration, scan=self._scan
110
113
  )
111
114
  except Exception as e:
112
- info = "Fail to edit image keys for {}. Reason is {}".format(
113
- str(self._scan), e
114
- )
115
+ info = f"Fail to edit image keys for {self._scan}. Reason is {e}"
115
116
  _logger.processFailed(info)
116
117
  ProcessManager().notify_dataset_state(
117
118
  dataset=self._scan,
@@ -29,9 +29,10 @@ __date__ = "08/01/2020"
29
29
 
30
30
 
31
31
  from queue import Queue
32
- from silx.gui import qt
33
- from processview.core.manager import ProcessManager, DatasetState
32
+
33
+ from processview.core.manager import DatasetState, ProcessManager
34
34
  from processview.core.superviseprocess import SuperviseProcess
35
+ from silx.gui import qt
35
36
 
36
37
 
37
38
  class ProcessingThread(qt.QThread):
@@ -27,21 +27,23 @@ __license__ = "MIT"
27
27
  __date__ = "03/05/2019"
28
28
 
29
29
 
30
+ import functools
31
+ import logging
32
+
33
+ from processview.core.manager import DatasetState, ProcessManager
34
+ from processview.core.superviseprocess import SuperviseProcess
35
+ from silx.gui import qt
36
+
30
37
  from tomwer.core.process.reconstruction.axis import AxisProcess
31
38
  from tomwer.core.process.reconstruction.axis.axis import NoAxisUrl
32
39
  from tomwer.core.process.reconstruction.axis.mode import AxisMode
33
- from processview.core.manager import ProcessManager
34
- from tomwer.synctools.axis import QAxisRP
35
- from tomwer.core.scan.scanbase import TomwerScanBase
36
40
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
41
+ from tomwer.core.scan.scanbase import TomwerScanBase
37
42
  from tomwer.core.settings import get_lbsram_path, isOnLbsram
38
43
  from tomwer.core.utils import isLowOnMemory
39
- from processview.core.manager import DatasetState
44
+ from tomwer.synctools.axis import QAxisRP
45
+
40
46
  from ..processingstack import FIFO, ProcessingThread
41
- from processview.core.superviseprocess import SuperviseProcess
42
- from silx.gui import qt
43
- import logging
44
- import functools
45
47
 
46
48
  _logger = logging.getLogger(__name__)
47
49
 
@@ -115,15 +117,13 @@ class AxisProcessStack(FIFO, qt.QObject):
115
117
  not self._axis_params.use_sinogram
116
118
  and mode not in AxisProcess._CALCULATIONS_METHODS
117
119
  ):
118
- _logger.warning("no method defined to compute {}".format(mode))
120
+ _logger.warning(f"no method defined to compute {mode}")
119
121
  if callback is not None:
120
122
  callback()
121
123
  self._process_next()
122
124
  else:
123
125
  _logger.processStarted(
124
- "Start cor calculation on {} ({})".format(
125
- str(data), self._axis_params.get_simple_str()
126
- )
126
+ f"Start cor calculation on {data} ({self._axis_params.get_simple_str()})"
127
127
  )
128
128
  data.axis_params.set_relative_value("...")
129
129
  self._axis_params.set_relative_value("...")
@@ -27,6 +27,13 @@ __license__ = "MIT"
27
27
  __date__ = "15/21/2021"
28
28
 
29
29
 
30
+ import functools
31
+ import logging
32
+
33
+ from processview.core.manager import DatasetState, ProcessManager
34
+ from processview.core.superviseprocess import SuperviseProcess
35
+ from silx.gui import qt
36
+
30
37
  from tomwer.core.process.reconstruction.nabu.castvolume import CastVolumeTask
31
38
  from tomwer.core.scan.scanbase import TomwerScanBase
32
39
  from tomwer.core.settings import get_lbsram_path, isOnLbsram
@@ -34,12 +41,8 @@ from tomwer.core.tomwer_object import TomwerObject
34
41
  from tomwer.core.utils import isLowOnMemory
35
42
  from tomwer.core.volume.volumebase import TomwerVolumeBase
36
43
  from tomwer.core.volume.volumefactory import VolumeFactory
44
+
37
45
  from ..processingstack import FIFO, ProcessingThread
38
- from processview.core.superviseprocess import SuperviseProcess
39
- from processview.core.manager import ProcessManager, DatasetState
40
- from silx.gui import qt
41
- import logging
42
- import functools
43
46
 
44
47
  _logger = logging.getLogger(__name__)
45
48
 
@@ -26,20 +26,21 @@ __authors__ = ["H.Payno"]
26
26
  __license__ = "MIT"
27
27
  __date__ = "13/08/2021"
28
28
 
29
+ import functools
30
+ import logging
29
31
  import shutil
32
+ import tempfile
30
33
 
31
- from processview.core.manager import ProcessManager
34
+ from processview.core.manager import DatasetState, ProcessManager
35
+ from processview.core.superviseprocess import SuperviseProcess
36
+ from silx.gui import qt
37
+
38
+ from tomwer.core.process.reconstruction.darkref.darkrefscopy import DarkRefsCopy
32
39
  from tomwer.core.scan.scanbase import TomwerScanBase
33
40
  from tomwer.core.settings import get_lbsram_path, isOnLbsram
34
41
  from tomwer.core.utils import isLowOnMemory
35
- from processview.core.manager import DatasetState
42
+
36
43
  from ..processingstack import FIFO, ProcessingThread
37
- from processview.core.superviseprocess import SuperviseProcess
38
- from tomwer.core.process.reconstruction.darkref.darkrefscopy import DarkRefsCopy
39
- from silx.gui import qt
40
- import logging
41
- import functools
42
- import tempfile
43
44
 
44
45
  _logger = logging.getLogger(__name__)
45
46
 
@@ -76,7 +77,7 @@ class DarkRefCopyProcessStack(FIFO, qt.QObject):
76
77
  process=self,
77
78
  state=DatasetState.ON_GOING,
78
79
  )
79
- _logger.processStarted("dk-ref-copy {}" "".format(str(data)))
80
+ _logger.processStarted(f"dk-ref-copy {data}")
80
81
  assert isinstance(data, TomwerScanBase)
81
82
  self._data_currently_computed = data
82
83
  if isOnLbsram(data) and isLowOnMemory(get_lbsram_path()) is True:
@@ -30,13 +30,15 @@ __license__ = "MIT"
30
30
  __date__ = "01/10/2018"
31
31
 
32
32
 
33
- from queue import Queue
34
- from silx.gui import qt
33
+ import copy
35
34
  import logging
36
- from tomwer.core.scan.scanbase import TomwerScanBase
35
+ from queue import Queue
36
+
37
37
  from processview.core.superviseprocess import SuperviseProcess
38
- import copy
38
+ from silx.gui import qt
39
+
39
40
  from tomwer.core.process.reconstruction.lamino.tofu import LaminoReconstruction
41
+ from tomwer.core.scan.scanbase import TomwerScanBase
40
42
  from tomwer.core.utils.Singleton import singleton
41
43
 
42
44
  logger = logging.getLogger(__name__)
@@ -122,7 +124,7 @@ class LaminoReconstructionStack(qt.QObject, Queue):
122
124
  callback,
123
125
  ) = Queue.get(self)
124
126
  self.sigReconsStarted.emit(scan)
125
- info = "start lamino reconstuction of {}".format(str(scan))
127
+ info = f"start lamino reconstuction of {scan}"
126
128
  logger.processStarted(info)
127
129
  self.reconsThread.init(
128
130
  recons_obj=recons_obj,
@@ -147,7 +149,7 @@ class LaminoReconstructionStack(qt.QObject, Queue):
147
149
 
148
150
  def _dealWithFinishedRecons(self, scan):
149
151
  assert isinstance(scan, TomwerScanBase)
150
- info = "lamino reconstruction of {} finished".format(str(scan))
152
+ info = f"lamino reconstruction of {scan} finished"
151
153
  logger.processSucceed(info)
152
154
  self.sigReconsFinished.emit(scan)
153
155
  self.execNext()
@@ -159,7 +161,7 @@ class LaminoReconstructionStack(qt.QObject, Queue):
159
161
 
160
162
  def _dealWithFailedRecons(self, scan):
161
163
  assert isinstance(scan, TomwerScanBase)
162
- info = "reconstruction of {} failed".format(str(scan))
164
+ info = f"reconstruction of {scan} failed"
163
165
  logger.processFailed(info)
164
166
  self.sigReconsFailed.emit(scan)
165
167
  self.execNext()
@@ -27,18 +27,21 @@ __license__ = "MIT"
27
27
  __date__ = "28/08/2020"
28
28
 
29
29
 
30
+ import gc
31
+ import logging
32
+
33
+ from processview.core.manager import DatasetState, ProcessManager
34
+ from processview.core.superviseprocess import SuperviseProcess
30
35
  from silx.gui import qt
31
- from tomwer.core.scan.scanbase import TomwerScanBase
32
- from tomwer.core.scan.edfscan import EDFTomoScan
36
+
33
37
  from tomwer.core.process.reconstruction.nabu import nabuslices, nabuvolume
38
+ from tomwer.core.scan.edfscan import EDFTomoScan
39
+ from tomwer.core.scan.scanbase import TomwerScanBase
34
40
  from tomwer.core.settings import get_lbsram_path, isOnLbsram
35
41
  from tomwer.core.utils import isLowOnMemory
36
42
  from tomwer.io.utils import format_stderr_stdout
43
+
37
44
  from ..processingstack import FIFO, ProcessingThread
38
- from processview.core.superviseprocess import SuperviseProcess
39
- from processview.core.manager import ProcessManager, DatasetState
40
- import gc
41
- import logging
42
45
 
43
46
  _logger = logging.getLogger(__name__)
44
47
 
@@ -53,7 +56,7 @@ class NabuSliceProcessStack(FIFO, qt.QObject):
53
56
  self._dry_run = False
54
57
 
55
58
  def _process(self, data, configuration, callback=None):
56
- _logger.info("Nabu slice stack is processing {}".format(str(data)))
59
+ _logger.info(f"Nabu slice stack is processing {data}")
57
60
  ProcessManager().notify_dataset_state(
58
61
  dataset=data,
59
62
  process=self,
@@ -66,7 +69,7 @@ class NabuSliceProcessStack(FIFO, qt.QObject):
66
69
 
67
70
  if isOnLbsram(data) and isLowOnMemory(get_lbsram_path()) is True:
68
71
  # if computer is running into low memory on lbsram skip it
69
- mess = "low memory, skip nabu reconstruction for", data.path
72
+ mess = f"low memory, skip nabu reconstruction for {data.path}"
70
73
  _logger.processSkipped(mess)
71
74
  ProcessManager().notify_dataset_state(
72
75
  dataset=data,
@@ -128,7 +131,7 @@ class _SliceProcessingThread(ProcessingThread, SuperviseProcess):
128
131
 
129
132
  def run(self):
130
133
  self.sigComputationStarted.emit()
131
- mess = "Start nabu slice(s) reconstruction of {}".format(str(self._scan))
134
+ mess = f"Start nabu slice(s) reconstruction of {self._scan}"
132
135
  _logger.processStarted(mess)
133
136
  ProcessManager().notify_dataset_state(
134
137
  dataset=self._scan,
@@ -187,12 +190,12 @@ class _SliceProcessingThread(ProcessingThread, SuperviseProcess):
187
190
 
188
191
  # TODO: check output files with the tomoscan validator ?
189
192
  if not succeed:
190
- mess = "Slices computation for {} failed.".format(str(self._scan))
193
+ mess = f"Slices computation for {self._scan} failed."
191
194
  state = DatasetState.FAILED
192
195
  _logger.processFailed(mess)
193
196
  else:
194
197
  state = DatasetState.SUCCEED
195
- mess = "Slices computed for {}.".format(str(self._scan))
198
+ mess = f"Slices computed for {self._scan}."
196
199
  _logger.processSucceed(mess)
197
200
  elmts = [
198
201
  format_stderr_stdout(stderr=stderr, stdout=stdout)
@@ -216,7 +219,7 @@ class _VolumeProcessingThread(_SliceProcessingThread):
216
219
 
217
220
  def run(self):
218
221
  self.sigComputationStarted.emit()
219
- mess = "Start nabu volume reconstruction of {}".format(str(self._scan))
222
+ mess = f"Start nabu volume reconstruction of {self._scan}"
220
223
  _logger.processStarted(mess)
221
224
  ProcessManager().notify_dataset_state(
222
225
  dataset=self._scan,
@@ -241,9 +244,7 @@ class _VolumeProcessingThread(_SliceProcessingThread):
241
244
  )
242
245
  except Exception as e:
243
246
  self._future_tomo_obj = None
244
- mess = "Fail to compute volume for {}. Reason is {}".format(
245
- str(self._scan), e
246
- )
247
+ mess = f"Fail to compute volume for {e}. Reason is {e}"
247
248
  _logger.processFailed(mess)
248
249
  ProcessManager().notify_dataset_state(
249
250
  dataset=self._scan,
@@ -276,11 +277,11 @@ class _VolumeProcessingThread(_SliceProcessingThread):
276
277
  ]
277
278
 
278
279
  if not succeed:
279
- mess = "Volume computed for {} failed.".format(str(self._scan))
280
+ mess = f"Volume computed for {self._scan} failed."
280
281
  _logger.processFailed(mess)
281
282
  state = DatasetState.FAILED
282
283
  else:
283
- mess = "Volume computed for {}.".format(str(self._scan))
284
+ mess = f"Volume computed for {self._scan}."
284
285
  _logger.processSucceed(mess)
285
286
  state = DatasetState.SUCCEED
286
287
 
@@ -27,19 +27,19 @@ __license__ = "MIT"
27
27
  __date__ = "19/07/2021"
28
28
 
29
29
 
30
- from tomwer.core.process.reconstruction.normalization import (
31
- SinoNormalizationTask,
32
- )
33
- from processview.core.manager import ProcessManager
30
+ import functools
31
+ import logging
32
+
33
+ from processview.core.manager import DatasetState, ProcessManager
34
+ from processview.core.superviseprocess import SuperviseProcess
35
+ from silx.gui import qt
36
+
37
+ from tomwer.core.process.reconstruction.normalization import SinoNormalizationTask
34
38
  from tomwer.core.scan.scanbase import TomwerScanBase
35
39
  from tomwer.core.settings import get_lbsram_path, isOnLbsram
36
40
  from tomwer.core.utils import isLowOnMemory
37
- from processview.core.manager import DatasetState
41
+
38
42
  from ..processingstack import FIFO, ProcessingThread
39
- from processview.core.superviseprocess import SuperviseProcess
40
- from silx.gui import qt
41
- import functools
42
- import logging
43
43
 
44
44
  _logger = logging.getLogger(__name__)
45
45
 
@@ -58,7 +58,7 @@ class INormalizationProcessStack(FIFO, qt.QObject):
58
58
  process=self,
59
59
  state=DatasetState.ON_GOING,
60
60
  )
61
- _logger.processStarted("start intensity normalization {}".format(str(data)))
61
+ _logger.processStarted(f"start intensity normalization {data}")
62
62
  assert isinstance(data, TomwerScanBase)
63
63
  if isOnLbsram(data) and isLowOnMemory(get_lbsram_path()) is True:
64
64
  # if computer is running into low memory on lbsram skip it
@@ -121,14 +121,10 @@ class _ProcessingThread(ProcessingThread, SuperviseProcess):
121
121
  norm_process.run()
122
122
  except Exception as e:
123
123
  _logger.error(str(e))
124
- mess = "Intensity normalization computation for {} failed.".format(
125
- str(self._scan)
126
- )
124
+ mess = f"Intensity normalization computation for {self._scan} failed."
127
125
  state = DatasetState.FAILED
128
126
  else:
129
- mess = "Intensity normalization computation for {} succeed.".format(
130
- str(self._scan)
131
- )
127
+ mess = f"Intensity normalization computation for {self._scan} succeed."
132
128
  state = DatasetState.WAIT_USER_VALIDATION
133
129
 
134
130
  ProcessManager().notify_dataset_state(
@@ -27,20 +27,22 @@ __license__ = "MIT"
27
27
  __date__ = "03/05/2019"
28
28
 
29
29
 
30
+ import functools
31
+ import logging
32
+
33
+ from processview.core.manager import DatasetState, ProcessManager
34
+ from processview.core.superviseprocess import SuperviseProcess
35
+ from silx.gui import qt
36
+
30
37
  from tomwer.core.process.reconstruction.saaxis import SAAxisProcess
31
- from processview.core.manager import ProcessManager
32
- from tomwer.synctools.saaxis import QSAAxisParams
33
- from tomwer.synctools.axis import QAxisRP
34
38
  from tomwer.core.scan.scanbase import TomwerScanBase
35
39
  from tomwer.core.settings import get_lbsram_path, isOnLbsram
36
40
  from tomwer.core.utils import isLowOnMemory
37
- from processview.core.manager import DatasetState
38
- from ..processingstack import FIFO, ProcessingThread
39
- from processview.core.superviseprocess import SuperviseProcess
40
41
  from tomwer.io.utils import format_stderr_stdout
41
- from silx.gui import qt
42
- import logging
43
- import functools
42
+ from tomwer.synctools.axis import QAxisRP
43
+ from tomwer.synctools.saaxis import QSAAxisParams
44
+
45
+ from ..processingstack import FIFO, ProcessingThread
44
46
 
45
47
  _logger = logging.getLogger(__name__)
46
48
 
@@ -68,7 +70,7 @@ class SAAxisProcessStack(FIFO, qt.QObject):
68
70
  process=self,
69
71
  state=DatasetState.ON_GOING,
70
72
  )
71
- _logger.processStarted("start saaxis {}" "".format(str(data)))
73
+ _logger.processStarted(f"start saaxis {data}")
72
74
  assert isinstance(data, TomwerScanBase)
73
75
  if data.axis_params is None:
74
76
  data.axis_params = QAxisRP()
@@ -79,7 +81,7 @@ class SAAxisProcessStack(FIFO, qt.QObject):
79
81
  saaxis_params.frame_width = data.dim_1
80
82
  if isOnLbsram(data) and isLowOnMemory(get_lbsram_path()) is True:
81
83
  # if computer is running into low memory on lbsram skip it
82
- mess = "low memory, skip saaxis calculation", data.path
84
+ mess = f"low memory, skip saaxis calculation {data.path}"
83
85
  ProcessManager().notify_dataset_state(
84
86
  dataset=data, process=self._process_id, state=DatasetState.SKIPPED
85
87
  )