tomwer 1.1.0rc7__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 (361) 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 +32 -38
  46. orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +26 -26
  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/slurm.py +36 -0
  124. tomwer/core/process/reconstruction/nabu/utils.py +18 -15
  125. tomwer/core/process/reconstruction/normalization/__init__.py +1 -3
  126. tomwer/core/process/reconstruction/normalization/normalization.py +16 -21
  127. tomwer/core/process/reconstruction/normalization/params.py +2 -2
  128. tomwer/core/process/reconstruction/saaxis/__init__.py +1 -1
  129. tomwer/core/process/reconstruction/saaxis/params.py +6 -7
  130. tomwer/core/process/reconstruction/saaxis/saaxis.py +44 -55
  131. tomwer/core/process/reconstruction/sadeltabeta/__init__.py +1 -1
  132. tomwer/core/process/reconstruction/sadeltabeta/params.py +9 -13
  133. tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +40 -46
  134. tomwer/core/process/reconstruction/scores/__init__.py +2 -2
  135. tomwer/core/process/reconstruction/scores/params.py +6 -9
  136. tomwer/core/process/reconstruction/scores/scores.py +10 -13
  137. tomwer/core/process/reconstruction/test/test_axis_params.py +4 -2
  138. tomwer/core/process/reconstruction/test/test_darkref.py +1 -2
  139. tomwer/core/process/reconstruction/test/test_darkref_copy.py +3 -1
  140. tomwer/core/process/reconstruction/test/test_paramsbase.py +1 -1
  141. tomwer/core/process/reconstruction/test/test_saaxis.py +11 -7
  142. tomwer/core/process/reconstruction/test/test_sadeltabeta.py +5 -4
  143. tomwer/core/process/reconstruction/test/test_utils.py +3 -2
  144. tomwer/core/process/script/python.py +6 -8
  145. tomwer/core/process/task.py +11 -12
  146. tomwer/core/process/test/test_axis.py +12 -9
  147. tomwer/core/process/test/test_conditions.py +8 -8
  148. tomwer/core/process/test/test_dark_and_flat.py +9 -8
  149. tomwer/core/process/test/test_data_listener.py +5 -3
  150. tomwer/core/process/test/test_data_transfer.py +14 -12
  151. tomwer/core/process/test/test_data_watcher.py +3 -1
  152. tomwer/core/process/test/test_lamino.py +3 -1
  153. tomwer/core/process/test/test_nabu.py +13 -12
  154. tomwer/core/process/test/test_normalization.py +7 -5
  155. tomwer/core/process/test/test_timer.py +2 -1
  156. tomwer/core/process/utils.py +9 -9
  157. tomwer/core/progress.py +3 -4
  158. tomwer/core/scan/blissscan.py +4 -2
  159. tomwer/core/scan/edfscan.py +26 -29
  160. tomwer/core/scan/futurescan.py +2 -1
  161. tomwer/core/scan/hdf5scan.py +21 -28
  162. tomwer/core/scan/scanbase.py +18 -18
  163. tomwer/core/scan/scanfactory.py +20 -21
  164. tomwer/core/scan/scantype.py +7 -0
  165. tomwer/core/scan/test/test_edf.py +2 -1
  166. tomwer/core/scan/test/test_future_scan.py +2 -1
  167. tomwer/core/scan/test/test_h5.py +5 -4
  168. tomwer/core/scan/test/test_process_registration.py +5 -3
  169. tomwer/core/scan/test/test_scan.py +11 -9
  170. tomwer/core/settings.py +1 -2
  171. tomwer/core/test/test_lamino.py +3 -2
  172. tomwer/core/test/test_scanutils.py +3 -2
  173. tomwer/core/test/test_utils.py +6 -4
  174. tomwer/core/utils/__init__.py +8 -6
  175. tomwer/core/utils/deprecation.py +2 -2
  176. tomwer/core/utils/image.py +4 -3
  177. tomwer/core/utils/laminoutils.py +80 -0
  178. tomwer/core/utils/locker.py +1 -1
  179. tomwer/core/utils/normalization.py +1 -0
  180. tomwer/core/utils/nxtomoutils.py +2 -1
  181. tomwer/core/utils/scanutils.py +9 -6
  182. tomwer/core/utils/slurm.py +2 -1
  183. tomwer/core/utils/time.py +2 -4
  184. tomwer/core/utils/volumeutils.py +2 -1
  185. tomwer/core/volume/__init__.py +1 -1
  186. tomwer/core/volume/edfvolume.py +4 -3
  187. tomwer/core/volume/hdf5volume.py +6 -8
  188. tomwer/core/volume/jp2kvolume.py +4 -3
  189. tomwer/core/volume/rawvolume.py +7 -7
  190. tomwer/core/volume/tiffvolume.py +8 -6
  191. tomwer/core/volume/volumebase.py +1 -0
  192. tomwer/core/volume/volumefactory.py +18 -18
  193. tomwer/gui/cluster/slurm.py +2 -0
  194. tomwer/gui/cluster/supervisor.py +4 -2
  195. tomwer/gui/cluster/test/test_cluster.py +5 -4
  196. tomwer/gui/cluster/test/test_supervisor.py +4 -2
  197. tomwer/gui/conditions/filter.py +7 -6
  198. tomwer/gui/control/actions.py +1 -0
  199. tomwer/gui/control/datadiscovery.py +168 -0
  200. tomwer/gui/control/datalist.py +29 -28
  201. tomwer/gui/control/datalistener.py +8 -4
  202. tomwer/gui/control/datareacheractions.py +2 -1
  203. tomwer/gui/control/datatransfert.py +3 -1
  204. tomwer/gui/control/datavalidator.py +11 -12
  205. tomwer/gui/control/datawatcher/configuration.py +12 -1
  206. tomwer/gui/control/datawatcher/controlwidget.py +116 -0
  207. tomwer/gui/control/datawatcher/datawatcher.py +63 -121
  208. tomwer/gui/control/datawatcher/datawatcherobserver.py +7 -9
  209. tomwer/gui/control/history.py +3 -1
  210. tomwer/gui/control/observations.py +7 -7
  211. tomwer/gui/control/scanselectorwidget.py +4 -2
  212. tomwer/gui/control/selectorwidgetbase.py +3 -1
  213. tomwer/gui/control/serie/seriecreator.py +11 -12
  214. tomwer/gui/control/singletomoobj.py +4 -4
  215. tomwer/gui/control/test/test_datadiscovery.py +27 -0
  216. tomwer/gui/control/test/test_datalist.py +7 -6
  217. tomwer/gui/control/test/test_datalistener.py +4 -4
  218. tomwer/gui/control/test/test_datavalidator.py +3 -1
  219. tomwer/gui/control/test/test_inputwidget.py +5 -4
  220. tomwer/gui/control/test/test_process_manager.py +3 -3
  221. tomwer/gui/control/test/test_scanselector.py +6 -4
  222. tomwer/gui/control/test/test_scanvalidator.py +6 -5
  223. tomwer/gui/control/test/test_single_tomo_obj.py +5 -3
  224. tomwer/gui/control/test/test_volume_dialog.py +7 -5
  225. tomwer/gui/control/test/test_volumeselector.py +8 -6
  226. tomwer/gui/control/volumeselectorwidget.py +2 -1
  227. tomwer/gui/debugtools/datasetgenerator.py +2 -1
  228. tomwer/gui/debugtools/objectinspector.py +6 -7
  229. tomwer/gui/edit/dkrfpatch.py +11 -10
  230. tomwer/gui/edit/imagekeyeditor.py +12 -12
  231. tomwer/gui/edit/nxtomoeditor.py +8 -7
  232. tomwer/gui/edit/test/test_dkrf_patch.py +10 -9
  233. tomwer/gui/edit/test/test_image_key_editor.py +8 -6
  234. tomwer/gui/edit/test/test_nx_editor.py +7 -5
  235. tomwer/gui/icons.py +3 -2
  236. tomwer/gui/illustrations.py +3 -2
  237. tomwer/gui/imagefromfile.py +3 -1
  238. tomwer/gui/qfolderdialog.py +14 -12
  239. tomwer/gui/reconstruction/axis/CompareImages.py +9 -8
  240. tomwer/gui/reconstruction/axis/__init__.py +1 -1
  241. tomwer/gui/reconstruction/axis/axis.py +9 -7
  242. tomwer/gui/reconstruction/axis/radioaxis.py +30 -32
  243. tomwer/gui/reconstruction/darkref/darkrefcopywidget.py +6 -5
  244. tomwer/gui/reconstruction/darkref/darkrefwidget.py +4 -2
  245. tomwer/gui/reconstruction/lamino/tofu/misc.py +3 -1
  246. tomwer/gui/reconstruction/lamino/tofu/projections.py +16 -8
  247. tomwer/gui/reconstruction/lamino/tofu/tofu.py +6 -3
  248. tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py +5 -2
  249. tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py +8 -5
  250. tomwer/gui/reconstruction/nabu/action.py +1 -0
  251. tomwer/gui/reconstruction/nabu/castvolume.py +6 -4
  252. tomwer/gui/reconstruction/nabu/check.py +3 -2
  253. tomwer/gui/reconstruction/nabu/nabuconfig/base.py +5 -2
  254. tomwer/gui/reconstruction/nabu/nabuconfig/ctf.py +6 -3
  255. tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py +4 -3
  256. tomwer/gui/reconstruction/nabu/nabuconfig/output.py +7 -5
  257. tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +8 -6
  258. tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +7 -7
  259. tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +40 -33
  260. tomwer/gui/reconstruction/nabu/nabuflow.py +7 -4
  261. tomwer/gui/reconstruction/nabu/slices.py +14 -10
  262. tomwer/gui/reconstruction/nabu/slurm.py +1 -0
  263. tomwer/gui/reconstruction/nabu/volume.py +5 -3
  264. tomwer/gui/reconstruction/normalization/intensity.py +14 -13
  265. tomwer/gui/reconstruction/saaxis/corrangeselector.py +36 -35
  266. tomwer/gui/reconstruction/saaxis/dimensionwidget.py +5 -4
  267. tomwer/gui/reconstruction/saaxis/saaxis.py +17 -17
  268. tomwer/gui/reconstruction/saaxis/sliceselector.py +5 -5
  269. tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +33 -36
  270. tomwer/gui/reconstruction/scores/scoreplot.py +19 -18
  271. tomwer/gui/reconstruction/test/test_axis.py +14 -13
  272. tomwer/gui/reconstruction/test/test_lamino.py +3 -2
  273. tomwer/gui/reconstruction/test/test_nabu.py +8 -6
  274. tomwer/gui/reconstruction/test/test_saaxis.py +17 -15
  275. tomwer/gui/reconstruction/test/test_sadeltabeta.py +15 -13
  276. tomwer/gui/samplemoved/__init__.py +8 -7
  277. tomwer/gui/samplemoved/selectiontable.py +4 -2
  278. tomwer/gui/stackplot.py +14 -13
  279. tomwer/gui/stacks.py +11 -9
  280. tomwer/gui/test/test_axis_gui.py +5 -4
  281. tomwer/gui/test/test_qfolder_dialog.py +2 -1
  282. tomwer/gui/utils/__init__.py +5 -5
  283. tomwer/gui/utils/buttons.py +1 -0
  284. tomwer/gui/utils/completer.py +1 -0
  285. tomwer/gui/utils/flow.py +4 -2
  286. tomwer/gui/utils/illustrations.py +1 -0
  287. tomwer/gui/utils/inputwidget.py +11 -17
  288. tomwer/gui/utils/lineselector/lineselection.py +76 -0
  289. tomwer/gui/utils/lineselector/lineselector.py +6 -8
  290. tomwer/gui/utils/qt_utils.py +1 -0
  291. tomwer/gui/utils/scandescription.py +2 -0
  292. tomwer/gui/utils/splashscreen.py +1 -1
  293. tomwer/gui/utils/unitsystem.py +3 -1
  294. tomwer/gui/utils/vignettes.py +8 -8
  295. tomwer/gui/utils/waiterthread.py +2 -1
  296. tomwer/gui/visualization/dataviewer.py +20 -28
  297. tomwer/gui/visualization/diffviewer/diffviewer.py +17 -20
  298. tomwer/gui/visualization/diffviewer/shiftwidget.py +3 -1
  299. tomwer/gui/visualization/nxtomometadata.py +1 -0
  300. tomwer/gui/visualization/reconstructionparameters.py +13 -12
  301. tomwer/gui/visualization/scanoverview.py +5 -3
  302. tomwer/gui/visualization/sinogramviewer.py +3 -2
  303. tomwer/gui/visualization/test/test_dataviewer.py +3 -1
  304. tomwer/gui/visualization/test/test_diffviewer.py +8 -6
  305. tomwer/gui/visualization/test/test_nx_tomo_metadata_viewer.py +5 -3
  306. tomwer/gui/visualization/test/test_reconstruction_parameters.py +5 -3
  307. tomwer/gui/visualization/test/test_sinogramviewer.py +10 -9
  308. tomwer/gui/visualization/test/test_stacks.py +8 -6
  309. tomwer/gui/visualization/test/test_volumeviewer.py +10 -8
  310. tomwer/gui/visualization/tomoobjoverview.py +7 -4
  311. tomwer/gui/visualization/volumeoverview.py +5 -3
  312. tomwer/gui/visualization/volumeviewer.py +15 -14
  313. tomwer/io/utils/__init__.py +3 -3
  314. tomwer/io/utils/h5pyutils.py +2 -1
  315. tomwer/io/utils/utils.py +17 -21
  316. tomwer/resources/__init__.py +1 -1
  317. tomwer/synctools/axis.py +3 -1
  318. tomwer/synctools/darkref.py +3 -2
  319. tomwer/synctools/datalistener.py +10 -6
  320. tomwer/synctools/datatransfert.py +2 -3
  321. tomwer/synctools/imageloaderthread.py +5 -3
  322. tomwer/synctools/rsyncmanager.py +3 -2
  323. tomwer/synctools/saaxis.py +3 -1
  324. tomwer/synctools/sadeltabeta.py +3 -1
  325. tomwer/synctools/stacks/control/datalistener.py +9 -12
  326. tomwer/synctools/stacks/edit/darkflatpatch.py +13 -12
  327. tomwer/synctools/stacks/edit/imagekeyeditor.py +12 -11
  328. tomwer/synctools/stacks/processingstack.py +3 -2
  329. tomwer/synctools/stacks/reconstruction/axis.py +12 -12
  330. tomwer/synctools/stacks/reconstruction/castvolume.py +8 -5
  331. tomwer/synctools/stacks/reconstruction/dkrefcopy.py +10 -9
  332. tomwer/synctools/stacks/reconstruction/lamino.py +9 -7
  333. tomwer/synctools/stacks/reconstruction/nabu.py +18 -17
  334. tomwer/synctools/stacks/reconstruction/normalization.py +12 -16
  335. tomwer/synctools/stacks/reconstruction/saaxis.py +13 -11
  336. tomwer/synctools/stacks/reconstruction/sadeltabeta.py +16 -14
  337. tomwer/synctools/test/test_darkRefs.py +4 -3
  338. tomwer/synctools/test/test_foldertransfer.py +14 -12
  339. tomwer/synctools/test/test_scanstages.py +8 -7
  340. tomwer/synctools/utils/scanstages.py +7 -5
  341. tomwer/tests/conftest.py +4 -4
  342. tomwer/tests/test_scripts.py +3 -2
  343. tomwer/tests/utils/__init__.py +5 -4
  344. tomwer/tests/utils/utilstest.py +5 -6
  345. tomwer/third_party/nabu/preproc/phase.py +7 -5
  346. tomwer/third_party/nabu/utils.py +3 -2
  347. tomwer/utils.py +12 -12
  348. tomwer/version.py +3 -3
  349. tomwer/web/__init__.py +30 -0
  350. tomwer/web/client.py +43 -0
  351. tomwer/web/config.py +36 -0
  352. tomwer/web/test/__init__.py +0 -0
  353. tomwer/web/test/test_graylog_connection.py +59 -0
  354. {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/METADATA +2 -2
  355. {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/RECORD +361 -345
  356. {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/WHEEL +1 -1
  357. /tomwer-1.1.0rc7-py3.9-nspkg.pth → /tomwer-1.2.0a0-py3.8-nspkg.pth +0 -0
  358. {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/LICENSE +0 -0
  359. {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/entry_points.txt +0 -0
  360. {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/namespace_packages.txt +0 -0
  361. {tomwer-1.1.0rc7.dist-info → tomwer-1.2.0a0.dist-info}/top_level.txt +0 -0
tomwer/io/utils/utils.py CHANGED
@@ -31,15 +31,17 @@ __license__ = "MIT"
31
31
  __date__ = "07/09/2020"
32
32
 
33
33
 
34
- import numpy.lib.npyio
34
+ import logging
35
35
  import os
36
+
37
+ import h5py
38
+ import numpy.lib.npyio
39
+ from PIL import Image
40
+ from tomoscan.esrf import has_glymur
36
41
  from tomoscan.esrf.scan.utils import get_data as tomoscan_get_data
37
42
  from tomoscan.io import HDF5File
43
+
38
44
  from tomwer.core.utils import ftseriesutils
39
- from PIL import Image
40
- import logging
41
- import h5py
42
- from tomoscan.esrf import has_glymur
43
45
 
44
46
  try:
45
47
  import tifffile # noqa #F401 needed for later possible lazy loading
@@ -106,47 +108,41 @@ def _loadVol(url):
106
108
 
107
109
  if not os.path.exists(rawFile):
108
110
  data = None
109
- mess = "Can't find raw data file %s associated with %s" % (rawFile, infoFile)
111
+ mess = f"Can't find raw data file {rawFile} associated with {infoFile}"
110
112
  _logger.warning(mess)
111
113
  elif not os.path.exists(infoFile):
112
- mess = "Can't find info file %s associated with %s" % (infoFile, rawFile)
114
+ mess = f"Can't find info file {infoFile} associated with {rawFile}"
113
115
  _logger.warning(mess)
114
116
  data = None
115
117
  else:
116
118
  shape = ftseriesutils.get_vol_file_shape(infoFile)
117
119
  if None in shape:
118
- _logger.warning("Fail to retrieve data shape for %s." % infoFile)
120
+ _logger.warning(f"Fail to retrieve data shape for {infoFile}.")
119
121
  data = None
120
122
  else:
121
123
  try:
122
124
  numpy.zeros(shape)
123
125
  except MemoryError:
124
126
  data = None
125
- _logger.warning(
126
- "Raw file %s is to large for being " "readed %s" % rawFile
127
- )
127
+ _logger.warning(f"Raw file {rawFile} is to large for being readed")
128
128
  else:
129
129
  data = numpy.fromfile(rawFile, dtype=numpy.float32, count=-1, sep="")
130
130
  try:
131
131
  data = data.reshape(shape)
132
132
  except ValueError:
133
133
  _logger.warning(
134
- "unable to fix shape for raw file %s. "
135
- "Look for information in %s"
136
- "" % (rawFile, infoFile)
134
+ f"unable to fix shape for raw file {rawFile}. Look for information in {infoFile}"
137
135
  )
138
136
  try:
139
137
  sqr = int(numpy.sqrt(len(data)))
140
138
  shape = (1, sqr, sqr)
141
139
  data = data.reshape(shape)
142
140
  except ValueError:
143
- _logger.info("deduction of shape size for %s failed" % rawFile)
141
+ _logger.info(f"deduction of shape size for {rawFile} failed")
144
142
  data = None
145
143
  else:
146
144
  _logger.warning(
147
- "try deducing shape size for %s "
148
- "might be an incorrect "
149
- "interpretation" % rawFile
145
+ f"try deducing shape size for {rawFile} might be an incorrect interpretation"
150
146
  )
151
147
  if url.data_slice() is None:
152
148
  return data
@@ -179,9 +175,9 @@ def format_stderr_stdout(stdout, stderr, config=None):
179
175
  else:
180
176
  assert isinstance(config, dict)
181
177
  return (
182
- "############# nabu ############## \nconfig: {}\n"
183
- "------------- stderr -------------\n{}\n"
184
- "------------- stdout -------------\n{}\n".format(config, s_err, s_out)
178
+ f"############# nabu ############## \nconfig: {config}\n"
179
+ f"------------- stderr -------------\n{s_err}\n"
180
+ f"------------- stdout -------------\n{s_out}\n"
185
181
  )
186
182
 
187
183
 
@@ -24,8 +24,8 @@
24
24
  # ###########################################################################*/
25
25
 
26
26
 
27
- import os
28
27
  import importlib
28
+ import os
29
29
  import sys
30
30
 
31
31
  # pkg_resources is useful when this package is stored in a zip
tomwer/synctools/axis.py CHANGED
@@ -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.axis.params import AxisRP
32
- import logging
33
35
 
34
36
  logger = logging.getLogger(__name__)
35
37
 
@@ -27,10 +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
31
- from tomwer.core.process.reconstruction.darkref import params as dkrf
32
33
 
33
- import logging
34
+ from tomwer.core.process.reconstruction.darkref import params as dkrf
34
35
 
35
36
  logger = logging.getLogger(__name__)
36
37
 
@@ -28,16 +28,20 @@ __license__ = "MIT"
28
28
  __date__ = "16/03/2020"
29
29
 
30
30
 
31
- from tomwer.core.process.control.datalistener.rpcserver import _BaseDataListenerThread
32
- from tomwer.core.process.control.datalistener.rpcserver import BlissAcquisition
33
- from tomwer.core.process.control.datalistener.rpcserver import TangoAcquisitionStatus
31
+ import logging
32
+ import time
34
33
  from collections import namedtuple
35
34
  from datetime import datetime
35
+ from multiprocessing import Lock, Manager
36
+
36
37
  from silx.gui import qt
38
+
39
+ from tomwer.core.process.control.datalistener.rpcserver import (
40
+ BlissAcquisition,
41
+ TangoAcquisitionStatus,
42
+ _BaseDataListenerThread,
43
+ )
37
44
  from tomwer.utils import docstring
38
- import time
39
- from multiprocessing import Manager, Lock
40
- import logging
41
45
 
42
46
  _logger = logging.getLogger(__name__)
43
47
 
@@ -29,9 +29,8 @@ __date__ = "28/01/2019"
29
29
 
30
30
 
31
31
  from silx.gui import qt
32
- from tomwer.core.process.control.scantransfer import (
33
- ScanTransfer as FolderTransfertP,
34
- )
32
+
33
+ from tomwer.core.process.control.scantransfer import ScanTransfer as FolderTransfertP
35
34
  from tomwer.core.scan.scanbase import TomwerScanBase
36
35
 
37
36
 
@@ -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()