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
@@ -1,18 +1,20 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
+ import argparse
4
5
  import logging
6
+ import signal
5
7
  import sys
8
+
9
+ from nxtomomill.utils import change_image_key_control
6
10
  from silx.gui import qt
7
- import argparse
8
- from tomwer.gui import icons
9
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
10
- from tomwer.core.scan.hdf5scan import HDF5TomoScan
11
11
  from tomoscan.esrf.scan.hdf5scan import ImageKey
12
- from tomwer.gui.edit.imagekeyeditor import ImageKeyDialog as _ImageKeyDialog
13
- from nxtomomill.utils import change_image_key_control
12
+
13
+ from tomwer.core.scan.hdf5scan import HDF5TomoScan
14
14
  from tomwer.core.utils.resource import increase_max_number_file
15
- import signal
15
+ from tomwer.gui import icons
16
+ from tomwer.gui.edit.imagekeyeditor import ImageKeyDialog as _ImageKeyDialog
17
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
16
18
 
17
19
  logging.basicConfig(level=logging.WARNING)
18
20
  _logger = logging.getLogger(__name__)
@@ -43,9 +45,7 @@ class ImageKeyDialog(_ImageKeyDialog):
43
45
  filter(lambda item: item[1] is image_key_type, modifications.items())
44
46
  )
45
47
  frame_indexes = tuple(frame_indexes_dict.keys())
46
- _logger.warning(
47
- "will modify {} to {}".format(frame_indexes, image_key_type)
48
- )
48
+ _logger.warning(f"will modify {frame_indexes} to {image_key_type}")
49
49
  change_image_key_control(
50
50
  file_path=self._scan.master_file,
51
51
  entry=self._scan.entry,
@@ -1,19 +1,21 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
+ import argparse
4
5
  import logging
6
+ import signal
5
7
  import sys
8
+
6
9
  from silx.gui import qt
7
- import argparse
8
- from tomwer.gui import icons
9
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
10
+
11
+ from tomwer.core.process.edit.imagekeyeditor import ImageKeyUpgraderTask
10
12
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
13
+ from tomwer.core.utils.resource import increase_max_number_file
14
+ from tomwer.gui import icons
11
15
  from tomwer.gui.edit.imagekeyeditor import (
12
16
  ImageKeyUpgraderWidget as _ImageKeyUpgraderWidget,
13
17
  )
14
- from tomwer.core.process.edit.imagekeyeditor import ImageKeyUpgraderTask
15
- from tomwer.core.utils.resource import increase_max_number_file
16
- import signal
18
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
17
19
 
18
20
  logging.basicConfig(level=logging.WARNING)
19
21
  _logger = logging.getLogger(__name__)
@@ -1,23 +1,23 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
+ import argparse
4
5
  import logging
5
- import sys
6
6
  import os
7
- import argparse
8
7
  import signal
9
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
8
+ import sys
9
+
10
10
  from silx.gui import qt
11
- from tomwer.gui import icons
12
- from tomwer.core.scan.scanfactory import ScanFactory
11
+
12
+ from tomwer.core.process.reconstruction.normalization import SinoNormalizationTask
13
13
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
14
14
  from tomwer.core.scan.scanbase import TomwerScanBase
15
+ from tomwer.core.scan.scanfactory import ScanFactory
16
+ from tomwer.gui import icons
15
17
  from tomwer.gui.reconstruction.normalization.intensity import (
16
18
  SinoNormWindow as _SinoNormWindow,
17
19
  )
18
- from tomwer.core.process.reconstruction.normalization import (
19
- SinoNormalizationTask,
20
- )
20
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
21
21
 
22
22
  logging.basicConfig(level=logging.INFO)
23
23
  _logger = logging.getLogger(__name__)
tomwer/app/lamino.py CHANGED
@@ -6,14 +6,16 @@ import logging
6
6
  import os
7
7
  import signal
8
8
  import sys
9
+
9
10
  from silx.gui import qt
11
+
10
12
  from tomwer.core.process.reconstruction.lamino.tofu import LaminoReconstruction
11
- from tomwer.gui.reconstruction.lamino.tofu import TofuWindow
12
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
13
- from tomwer.gui import icons
14
13
  from tomwer.core.scan.scanbase import TomwerScanBase
15
14
  from tomwer.core.scan.scanfactory import ScanFactory
16
15
  from tomwer.core.utils.resource import increase_max_number_file
16
+ from tomwer.gui import icons
17
+ from tomwer.gui.reconstruction.lamino.tofu import TofuWindow
18
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
17
19
 
18
20
  _logger = logging.getLogger(__name__)
19
21
  # logging.getLogger().setLevel(logging.INFO)
tomwer/app/nabuapp.py CHANGED
@@ -1,19 +1,21 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
+ import argparse
4
5
  import logging
6
+ import signal
5
7
  import sys
8
+
6
9
  from silx.gui import qt
7
- import argparse
10
+
11
+ from tomwer.core.process.reconstruction.nabu.nabuslices import run_slices_reconstruction
8
12
  from tomwer.core.process.reconstruction.utils.cor import relative_pos_to_absolute
13
+ from tomwer.core.scan.scanfactory import ScanFactory
14
+ from tomwer.core.utils.resource import increase_max_number_file
9
15
  from tomwer.gui import icons
10
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
11
16
  from tomwer.gui.reconstruction.nabu.slices import NabuDialog
12
- from tomwer.core.scan.scanfactory import ScanFactory
13
- from tomwer.core.process.reconstruction.nabu.nabuslices import run_slices_reconstruction
17
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
14
18
  from tomwer.gui.visualization.dataviewer import DataViewer as _DataViewer
15
- from tomwer.core.utils.resource import increase_max_number_file
16
- import signal
17
19
 
18
20
  logging.basicConfig(level=logging.WARNING)
19
21
  _logger = logging.getLogger(__name__)
@@ -1,15 +1,16 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
- import sys
5
4
  import argparse
6
- from silx.gui import qt
5
+ import logging
7
6
  import signal
8
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
7
+ import sys
8
+
9
+ from silx.gui import qt
10
+
9
11
  from tomwer.core.scan.scanfactory import ScanFactory
10
12
  from tomwer.gui.edit.nxtomoeditor import NXtomoEditorDialog as _NXtomoEditorDialog
11
- import logging
12
-
13
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
13
14
 
14
15
  logging.basicConfig(level=logging.WARNING)
15
16
  _logger = logging.getLogger(__name__)
tomwer/app/radiostack.py CHANGED
@@ -1,17 +1,19 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
+ import argparse
4
5
  import logging
5
- import sys
6
6
  import os
7
+ import signal
8
+ import sys
9
+
7
10
  from silx.gui import qt
8
- import argparse
9
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
10
- from tomwer.gui.stacks import RadioStack
11
- from tomwer.gui import icons
11
+
12
12
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
13
13
  from tomwer.core.utils.resource import increase_max_number_file
14
- import signal
14
+ from tomwer.gui import icons
15
+ from tomwer.gui.stacks import RadioStack
16
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
15
17
 
16
18
  logging.basicConfig(level=logging.WARNING)
17
19
  _logger = logging.getLogger(__name__)
tomwer/app/rsync.py CHANGED
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
- import logging
5
- import sys
6
4
  import argparse
7
5
  import glob
6
+ import logging
8
7
  import os
9
8
  import shutil
9
+ import sys
10
+
10
11
  from tomwer.core.scan.scanfactory import ScanFactory
11
12
  from tomwer.synctools.utils.scanstages import ScanStages
12
13
 
13
-
14
14
  logging.basicConfig(level=logging.WARNING)
15
15
  logger = logging.getLogger(__name__)
16
16
 
tomwer/app/saaxis.py CHANGED
@@ -1,30 +1,31 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
- import sys
5
4
  import argparse
6
- from silx.gui import qt
7
- from silx.io.utils import h5py_read_dataset
5
+ import logging
8
6
  import signal
7
+ import sys
8
+ import time
9
9
  from typing import Union
10
- from tomwer.gui import icons
11
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
12
- from tomwer.core.scan.scanfactory import ScanFactory
13
- from tomwer.gui.reconstruction.saaxis.saaxis import SAAxisWindow as _SAAxisWindow
14
- from tomwer.core.process.reconstruction.axis.axis import AxisProcess, NoAxisUrl
15
- from tomwer.core.process.reconstruction.saaxis.saaxis import SAAxisProcess
16
- from tomwer.synctools.axis import QAxisRP
17
- from tomwer.synctools.saaxis import QSAAxisParams
18
- from tomwer.core.process.task import Task
19
- from tomwer.io.utils.h5pyutils import EntryReader
10
+
11
+ from silx.gui import qt
12
+ from silx.io.utils import h5py_read_dataset
13
+
20
14
  from tomwer.core.process import utils as core_utils
15
+ from tomwer.core.process.reconstruction.axis.axis import AxisProcess, NoAxisUrl
21
16
  from tomwer.core.process.reconstruction.darkref.darkrefs import (
22
17
  requires_reduced_dark_and_flat,
23
18
  )
19
+ from tomwer.core.process.reconstruction.saaxis.saaxis import SAAxisProcess
20
+ from tomwer.core.process.task import Task
21
+ from tomwer.core.scan.scanfactory import ScanFactory
24
22
  from tomwer.core.utils.resource import increase_max_number_file
25
- import logging
26
- import time
27
-
23
+ from tomwer.gui import icons
24
+ from tomwer.gui.reconstruction.saaxis.saaxis import SAAxisWindow as _SAAxisWindow
25
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
26
+ from tomwer.io.utils.h5pyutils import EntryReader
27
+ from tomwer.synctools.axis import QAxisRP
28
+ from tomwer.synctools.saaxis import QSAAxisParams
28
29
 
29
30
  logging.basicConfig(level=logging.WARNING)
30
31
  _logger = logging.getLogger(__name__)
@@ -46,7 +47,7 @@ class SAAxisThread(qt.QThread):
46
47
  process.dump_roi = self._dump_roi
47
48
  t0 = time.time()
48
49
  process.run()
49
- print("execution time is {}".format(time.time() - t0))
50
+ print(f"execution time is {time.time() - t0}")
50
51
 
51
52
 
52
53
  class SAAxisWindow(_SAAxisWindow):
@@ -96,12 +97,10 @@ class SAAxisWindow(_SAAxisWindow):
96
97
  qt.QApplication.restoreOverrideCursor()
97
98
 
98
99
  def _callbackStartLoadSinogram(self):
99
- print(
100
- "start loading sinogram for {}. Can take some time".format(self.getScan())
101
- )
100
+ print(f"start loading sinogram for {self.getScan()}. Can take some time")
102
101
 
103
102
  def _callbackEndLoadSinogram(self):
104
- print("sinogram loaded for {} loaded.".format(self.getScan()))
103
+ print(f"sinogram loaded for {self.getScan()} loaded.")
105
104
 
106
105
  def close(self) -> None:
107
106
  self._stopProcessingThread()
@@ -128,7 +127,7 @@ class SAAxisWindow(_SAAxisWindow):
128
127
  }
129
128
  )
130
129
 
131
- _logger.info("{} - start cor estimation for".format(scan))
130
+ _logger.info(f"{scan} - start cor estimation for")
132
131
  qt.QApplication.setOverrideCursor(qt.Qt.WaitCursor)
133
132
  try:
134
133
  _cor_estimation_process.compute(scan=scan, wait=True)
@@ -270,7 +269,7 @@ def _load_latest_scores(scan) -> tuple:
270
269
  latest_saaxis_node["results"]["center_of_rotation"]
271
270
  )
272
271
  else:
273
- _logger.warning("no results found for {}".format(scan))
272
+ _logger.warning(f"no results found for {scan}")
274
273
  return scores, selected
275
274
 
276
275
 
tomwer/app/sadeltabeta.py CHANGED
@@ -1,36 +1,36 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
- import sys
5
4
  import argparse
6
- from silx.gui import qt
5
+ import logging
7
6
  import signal
7
+ import sys
8
+ import time
8
9
  from typing import Union
9
- from tomwer.gui import icons
10
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
11
- from tomwer.core.scan.scanfactory import ScanFactory
10
+
11
+ from silx.gui import qt
12
12
  from silx.io.utils import h5py_read_dataset
13
+
14
+ from tomwer.core.process import utils as core_utils
15
+ from tomwer.core.process.reconstruction.axis.axis import AxisProcess, NoAxisUrl
16
+ from tomwer.core.process.reconstruction.darkref.darkrefs import (
17
+ requires_reduced_dark_and_flat,
18
+ )
13
19
  from tomwer.core.process.reconstruction.sadeltabeta.sadeltabeta import (
14
20
  SADeltaBetaProcess,
15
21
  )
22
+ from tomwer.core.process.task import Task
23
+ from tomwer.core.scan.scanfactory import ScanFactory
24
+ from tomwer.core.utils.resource import increase_max_number_file
25
+ from tomwer.gui import icons
26
+ from tomwer.gui.reconstruction.saaxis.saaxis import NabuAutoCorDiag
16
27
  from tomwer.gui.reconstruction.sadeltabeta.saadeltabeta import (
17
28
  SADeltaBetaWindow as _SADeltaBetaWindow,
18
29
  )
30
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
31
+ from tomwer.io.utils.h5pyutils import EntryReader
19
32
  from tomwer.synctools.axis import QAxisRP
20
- from tomwer.gui.reconstruction.saaxis.saaxis import NabuAutoCorDiag
21
- from tomwer.core.process.reconstruction.axis.axis import AxisProcess
22
- from tomwer.core.process.reconstruction.axis.axis import NoAxisUrl
23
33
  from tomwer.synctools.sadeltabeta import QSADeltaBetaParams
24
- from tomwer.core.process.task import Task
25
- from tomwer.io.utils.h5pyutils import EntryReader
26
- from tomwer.core.process import utils as core_utils
27
- from tomwer.core.process.reconstruction.darkref.darkrefs import (
28
- requires_reduced_dark_and_flat,
29
- )
30
- from tomwer.core.utils.resource import increase_max_number_file
31
- import logging
32
- import time
33
-
34
34
 
35
35
  logging.basicConfig(level=logging.WARNING)
36
36
  _logger = logging.getLogger(__name__)
@@ -52,7 +52,7 @@ class SADeltaBetaThread(qt.QThread):
52
52
  process.dump_roi = self._dump_roi
53
53
  t0 = time.time()
54
54
  process.run()
55
- print("execution time is {}".format(time.time() - t0))
55
+ print(f"execution time is {time.time() - t0}")
56
56
 
57
57
 
58
58
  class SADeltaBetaWindow(_SADeltaBetaWindow):
@@ -202,7 +202,7 @@ class SADeltaBetaWindow(_SADeltaBetaWindow):
202
202
  inputs={"data": scan, "axis_params": self._qaxis_rp}
203
203
  )
204
204
 
205
- _logger.info("{} - start cor estimation for".format(scan))
205
+ _logger.info(f"{scan} - start cor estimation for")
206
206
  qt.QApplication.setOverrideCursor(qt.Qt.WaitCursor)
207
207
  try:
208
208
  _cor_estimation_process.compute(scan=scan, wait=True)
@@ -340,7 +340,7 @@ def _load_latest_scores(scan) -> tuple:
340
340
  if "delta_beta" in latest_sa_db_node["results"]:
341
341
  selected = h5py_read_dataset(latest_sa_db_node["results"]["delta_beta"])
342
342
  else:
343
- _logger.warning("no results found for {}".format(scan))
343
+ _logger.warning(f"no results found for {scan}")
344
344
  return scores, selected
345
345
 
346
346
 
tomwer/app/samplemoved.py CHANGED
@@ -1,17 +1,19 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
+ import argparse
4
5
  import logging
6
+ import os
7
+ import signal
5
8
  import sys
9
+
6
10
  from silx.gui import qt
7
- import argparse
8
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
9
- from tomwer.gui import icons
11
+
10
12
  from tomwer.core.scan.scanfactory import ScanFactory
11
- from tomwer.gui.samplemoved import SampleMovedWidget
12
13
  from tomwer.core.utils.resource import increase_max_number_file
13
- import os
14
- import signal
14
+ from tomwer.gui import icons
15
+ from tomwer.gui.samplemoved import SampleMovedWidget
16
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
15
17
 
16
18
  logging.basicConfig(level=logging.WARNING)
17
19
  _logger = logging.getLogger(__name__)
tomwer/app/scanviewer.py CHANGED
@@ -1,17 +1,18 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
- import sys
5
4
  import argparse
6
- from silx.gui import qt
5
+ import logging
7
6
  import signal
7
+ import sys
8
+
9
+ from silx.gui import qt
10
+
11
+ from tomwer.core.scan.scanfactory import ScanFactory
12
+ from tomwer.core.utils.resource import increase_max_number_file
8
13
  from tomwer.gui import icons
9
14
  from tomwer.gui.utils.splashscreen import getMainSplashScreen
10
- from tomwer.core.scan.scanfactory import ScanFactory
11
15
  from tomwer.gui.visualization.dataviewer import DataViewer
12
- from tomwer.core.utils.resource import increase_max_number_file
13
- import logging
14
-
15
16
 
16
17
  logging.basicConfig(level=logging.WARNING)
17
18
  _logger = logging.getLogger(__name__)
@@ -1,17 +1,19 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
+ import argparse
4
5
  import logging
6
+ import signal
5
7
  import sys
8
+ import weakref
9
+
6
10
  from silx.gui import qt
7
- import argparse
11
+
12
+ from tomwer.core.scan.scanfactory import ScanFactory
13
+ from tomwer.core.utils.resource import increase_max_number_file
8
14
  from tomwer.gui import icons
9
15
  from tomwer.gui.utils.splashscreen import getMainSplashScreen
10
- from tomwer.core.scan.scanfactory import ScanFactory
11
16
  from tomwer.gui.visualization.sinogramviewer import SinogramViewer as _SinogramViewer
12
- from tomwer.core.utils.resource import increase_max_number_file
13
- import signal
14
- import weakref
15
17
 
16
18
  logging.basicConfig(level=logging.WARNING)
17
19
  _logger = logging.getLogger(__name__)
@@ -91,8 +93,7 @@ def main(argv):
91
93
  raise ValueError("Line value should be at least 0")
92
94
  if options.line > scan.dim_2:
93
95
  raise ValueError(
94
- "Line value is outside frame dimension."
95
- "Should be at most {}".format(scan.dim_2)
96
+ f"Line value is outside frame dimension. Should be at most {scan.dim_2}"
96
97
  )
97
98
 
98
99
  widget = SinogramViewer(parent=None)
tomwer/app/slicestack.py CHANGED
@@ -1,16 +1,18 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
+ import argparse
4
5
  import logging
5
- import sys
6
6
  import os
7
+ import signal
8
+ import sys
9
+
7
10
  from silx.gui import qt
8
- import argparse
9
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
10
- from tomwer.gui.stacks import SliceStack
11
- from tomwer.gui import icons
11
+
12
12
  from tomwer.core.utils.resource import increase_max_number_file
13
- import signal
13
+ from tomwer.gui import icons
14
+ from tomwer.gui.stacks import SliceStack
15
+ from tomwer.gui.utils.splashscreen import getMainSplashScreen
14
16
 
15
17
  logging.basicConfig(level=logging.WARNING)
16
18
  _logger = logging.getLogger(__name__)
@@ -3,11 +3,12 @@
3
3
 
4
4
  import argparse
5
5
  import sys
6
+ from signal import SIGKILL, SIGTERM
7
+
6
8
  from tomwer.core.process.control.datalistener.rpcserver import (
7
9
  send_signal_to_local_rpc_servers,
8
10
  )
9
11
  from tomwer.core.settings import JSON_RPC_PORT
10
- from signal import SIGTERM, SIGKILL
11
12
 
12
13
 
13
14
  def getinputinfo():
@@ -28,16 +28,15 @@ __license__ = "MIT"
28
28
  __date__ = "09/10/2021"
29
29
 
30
30
 
31
- import logging
32
- from tomwer.core.scan.scanbase import TomwerScanBase
33
- from typing import Optional
34
- from typing import Iterable
35
- from typing import Union
36
31
  import datetime
32
+ import logging
33
+ from typing import Iterable, Optional, Union
37
34
 
38
- from tomwer.core.tomwer_object import TomwerObject
39
35
  from sluurp.job import get_job_status
40
36
 
37
+ from tomwer.core.scan.scanbase import TomwerScanBase
38
+ from tomwer.core.tomwer_object import TomwerObject
39
+
41
40
  _logger = logging.getLogger(__name__)
42
41
 
43
42
 
@@ -110,6 +109,16 @@ class FutureTomwerObject:
110
109
  return status
111
110
  return "finished"
112
111
 
112
+ @property
113
+ def logs(self) -> str:
114
+ new_line = "\n"
115
+ return "\n".join(
116
+ [
117
+ f"~~~~~~ job id = {fut.job_id} ~~~~~{new_line}{f'{new_line}'.join(fut.collect_logs() or ['',])}"
118
+ for fut in self._futures
119
+ ]
120
+ )
121
+
113
122
  @property
114
123
  def start_time(self) -> Optional[datetime.time]:
115
124
  return self._start_time
tomwer/core/log/logger.py CHANGED
@@ -34,16 +34,17 @@ __license__ = "MIT"
34
34
  __date__ = "22/09/2017"
35
35
 
36
36
  import logging
37
+ import os
37
38
  from sys import platform
39
+
38
40
  from tomwer.core.log.processlog import (
39
41
  PROCESS_ENDED_NAME,
40
- PROCESS_SKIPPED_NAME,
42
+ PROCESS_FAILED_NAME,
41
43
  PROCESS_INFORM_NAME,
44
+ PROCESS_SKIPPED_NAME,
42
45
  PROCESS_STARTED_NAME,
43
- PROCESS_FAILED_NAME,
44
46
  PROCESS_SUCCEED_NAME,
45
47
  )
46
- import os
47
48
 
48
49
  # The background is set with 40 plus the number of the color, and the
49
50
  # foreground with 30
@@ -33,7 +33,6 @@ __date__ = "02/10/2020"
33
33
 
34
34
  import logging
35
35
 
36
-
37
36
  PROCESS_STARTED_NAME = "PROCESS_STARTED"
38
37
  PROCESS_STARTED_LEVEL = 32
39
38
 
@@ -33,13 +33,13 @@ __date__ = "19/07/2018"
33
33
 
34
34
  import fnmatch
35
35
  import logging
36
- from tomwer.core.scan.scanbase import TomwerScanBase
37
- from tomwer.core.scan.scanfactory import ScanFactory
38
- import tomwer.version
39
36
  import os
40
37
  import re
41
38
 
39
+ import tomwer.version
42
40
  from tomwer.core.process.task import Task
41
+ from tomwer.core.scan.scanbase import TomwerScanBase
42
+ from tomwer.core.scan.scanfactory import ScanFactory
43
43
 
44
44
  _logger = logging.getLogger(__name__)
45
45
 
@@ -0,0 +1,7 @@
1
+ from ewokscore.task import Task as EwoksTask
2
+ from tomwer.core.utils.scanutils import data_identifier_to_scan
3
+
4
+
5
+ class _DataDiscoveryPlaceHolder(EwoksTask, input_names=["data"], output_names=["data"]):
6
+ def run(self):
7
+ self.outputs.data = data_identifier_to_scan(self.inputs.data)