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
@@ -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
  )
@@ -27,22 +27,24 @@ __license__ = "MIT"
27
27
  __date__ = "08/06/2021"
28
28
 
29
29
 
30
- from processview.core.manager import ProcessManager
31
- from tomwer.synctools.sadeltabeta import QSADeltaBetaParams
32
- from tomwer.synctools.axis import QAxisRP
33
- from tomwer.core.scan.scanbase import TomwerScanBase
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
+
34
37
  from tomwer.core.process.reconstruction.sadeltabeta.sadeltabeta import (
35
38
  SADeltaBetaProcess,
36
39
  )
40
+ from tomwer.core.scan.scanbase import TomwerScanBase
37
41
  from tomwer.core.settings import get_lbsram_path, isOnLbsram
38
42
  from tomwer.core.utils import isLowOnMemory
39
- from processview.core.manager import DatasetState
40
- from ..processingstack import FIFO, ProcessingThread
41
- from processview.core.superviseprocess import SuperviseProcess
42
43
  from tomwer.io.utils import format_stderr_stdout
43
- from silx.gui import qt
44
- import logging
45
- import functools
44
+ from tomwer.synctools.axis import QAxisRP
45
+ from tomwer.synctools.sadeltabeta import QSADeltaBetaParams
46
+
47
+ from ..processingstack import FIFO, ProcessingThread
46
48
 
47
49
  _logger = logging.getLogger(__name__)
48
50
 
@@ -70,7 +72,7 @@ class SADeltaBetaProcessStack(FIFO, qt.QObject):
70
72
  process=self,
71
73
  state=DatasetState.ON_GOING,
72
74
  )
73
- _logger.processStarted("start sa-delta-beta {}" "".format(str(data)))
75
+ _logger.processStarted(f"start sa-delta-beta {data}")
74
76
  assert isinstance(data, TomwerScanBase)
75
77
  if data.axis_params is None:
76
78
  data.axis_params = QAxisRP()
@@ -80,7 +82,7 @@ class SADeltaBetaProcessStack(FIFO, qt.QObject):
80
82
  sa_delta_beta_params = QSADeltaBetaParams.from_dict(configuration)
81
83
  if isOnLbsram(data) and isLowOnMemory(get_lbsram_path()) is True:
82
84
  # if computer is running into low memory on lbsram skip it
83
- mess = "low memory, skip sa-delta-beta-axis calculation", data.path
85
+ mess = f"low memory, skip sa-delta-beta-axis calculation {data.path}"
84
86
  ProcessManager().notify_dataset_state(
85
87
  dataset=data, process=self._process_id, state=DatasetState.SKIPPED
86
88
  )
@@ -176,10 +178,10 @@ class _ProcessingThread(ProcessingThread, SuperviseProcess):
176
178
  sa_delta_beta.run()
177
179
  except Exception as e:
178
180
  _logger.error(str(e))
179
- mess = "SADeltaBeta computation for {} failed.".format(str(self._scan))
181
+ mess = f"SADeltaBeta computation for {self._scan} failed."
180
182
  state = DatasetState.FAILED
181
183
  else:
182
- mess = "SADeltaBeta computation for {} succeed.".format(str(self._scan))
184
+ mess = f"SADeltaBeta computation for {self._scan} succeed."
183
185
  state = DatasetState.WAIT_USER_VALIDATION
184
186
  self.db_value = self._scan.sa_delta_beta_params.autofocus
185
187
 
@@ -31,14 +31,15 @@ __date__ = "11/12/2017"
31
31
  import os
32
32
  import shutil
33
33
  import tempfile
34
+
34
35
  import fabio
35
36
  import numpy
36
37
  from silx.gui.utils.testutils import TestCaseQt
37
- from tomwer.core.utils.scanutils import MockEDF
38
+
38
39
  from tomwer.core.process.reconstruction.darkref.darkrefs import DarkRefs
39
- from tomwer.core.process.reconstruction.darkref.params import DKRFRP
40
- from tomwer.core.process.reconstruction.darkref.params import ReduceMethod
40
+ from tomwer.core.process.reconstruction.darkref.params import DKRFRP, ReduceMethod
41
41
  from tomwer.core.scan.scanfactory import ScanFactory
42
+ from tomwer.core.utils.scanutils import MockEDF
42
43
  from tomwer.tests.utils import UtilsTest
43
44
 
44
45
 
@@ -28,22 +28,24 @@ __license__ = "MIT"
28
28
  __date__ = "24/01/2017"
29
29
 
30
30
 
31
- from tomwer.synctools.datatransfert import ScanTransfer
31
+ import logging
32
+ import os
33
+ import shutil
34
+ import tempfile
35
+ import unittest
36
+ from glob import glob
37
+
38
+ import pytest
39
+ from nxtomomill.converter import from_h5_to_nx
40
+ from nxtomomill.io.config.hdf5config import TomoHDF5Config
41
+ from silx.gui.utils.testutils import TestCaseQt
42
+
43
+ from tomwer.core.scan.hdf5scan import HDF5TomoScan
32
44
  from tomwer.core.scan.scanfactory import ScanFactory
33
45
  from tomwer.core.utils import rebaseParFile
34
46
  from tomwer.core.utils.scanutils import MockEDF
47
+ from tomwer.synctools.datatransfert import ScanTransfer
35
48
  from tomwer.tests.utils import UtilsTest
36
- from tomwer.core.scan.hdf5scan import HDF5TomoScan
37
- from nxtomomill.converter import from_h5_to_nx
38
- from nxtomomill.io.config.hdf5config import TomoHDF5Config
39
- from silx.gui.utils.testutils import TestCaseQt
40
- from glob import glob
41
- import unittest
42
- import os
43
- import tempfile
44
- import shutil
45
- import logging
46
- import pytest
47
49
 
48
50
  try:
49
51
  from tomwer.synctools.rsyncmanager import RSyncManager
@@ -28,18 +28,19 @@ __license__ = "MIT"
28
28
  __date__ = "30/09/2019"
29
29
 
30
30
 
31
- import unittest
32
- import tempfile
31
+ import glob
33
32
  import os
34
33
  import shutil
35
- import glob
34
+ import tempfile
35
+ import unittest
36
36
  from collections import namedtuple
37
- from tomwer.tests.utils import UtilsTest
38
- from tomwer.synctools.utils.scanstages import ScanStages
39
- from tomwer.core.scan.scanfactory import ScanFactory
40
- from tomwer.tests.utils import skip_gui_test
37
+
41
38
  import pytest
42
39
 
40
+ from tomwer.core.scan.scanfactory import ScanFactory
41
+ from tomwer.synctools.utils.scanstages import ScanStages
42
+ from tomwer.tests.utils import UtilsTest, skip_gui_test
43
+
43
44
  if skip_gui_test() is False:
44
45
  from tomwer.synctools.rsyncmanager import RSyncManager
45
46
 
@@ -30,14 +30,16 @@ __license__ = "MIT"
30
30
  __date__ = "09/01/2020"
31
31
 
32
32
 
33
- import shutil
34
33
  import glob
35
- from tomwer.core.scan.scanbase import TomwerScanBase
34
+ import os
35
+ import shutil
36
+
37
+ from silx.io.url import DataUrl
38
+ from silx.utils.enum import Enum as _Enum
39
+
36
40
  from tomwer.core.scan.edfscan import EDFTomoScan
37
41
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
38
- from silx.utils.enum import Enum as _Enum
39
- from silx.io.url import DataUrl
40
- import os
42
+ from tomwer.core.scan.scanbase import TomwerScanBase
41
43
  from tomwer.synctools.rsyncmanager import RSyncManager
42
44
 
43
45
 
tomwer/tests/conftest.py CHANGED
@@ -1,8 +1,8 @@
1
- import pytest
2
- from ewoksorange.bindings.qtapp import qtapp_context
3
- from ewoksorange.bindings.qtapp import get_all_qtwidgets
4
- import logging
5
1
  import gc
2
+ import logging
3
+
4
+ import pytest
5
+ from ewoksorange.bindings.qtapp import get_all_qtwidgets, qtapp_context
6
6
 
7
7
  _logger = logging.getLogger(__name__)
8
8
 
@@ -33,10 +33,11 @@ __copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
33
33
  __date__ = "21/02/2018"
34
34
 
35
35
 
36
- import sys
37
- import unittest
38
36
  import logging
39
37
  import subprocess
38
+ import sys
39
+ import unittest
40
+
40
41
  from tomwer.tests.utils.utilstest import UtilsTest
41
42
 
42
43
  _logger = logging.getLogger(__name__)
@@ -33,11 +33,12 @@ __license__ = "MIT"
33
33
  __copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
34
34
  __date__ = "07/02/2017"
35
35
 
36
+ import fileinput
37
+ import logging
36
38
  import os
37
39
  import shutil
38
- import fileinput
40
+
39
41
  from tomwer.core.utils import DownloadDataset, url_base
40
- import logging
41
42
 
42
43
  logger = logging.getLogger(__name__)
43
44
  logger.setLevel(logging.DEBUG)
@@ -186,8 +187,8 @@ class UtilsTest(object):
186
187
  if "TOMWER_ADDITIONAL_TESTS_DIR" not in os.environ:
187
188
  return False
188
189
  else:
189
- dir = os.path.join(os.environ["TOMWER_ADDITIONAL_TESTS_DIR"], dataset)
190
- return os.path.isdir(dir)
190
+ dir_ = os.path.join(os.environ["TOMWER_ADDITIONAL_TESTS_DIR"], dataset)
191
+ return os.path.isdir(dir_)
191
192
 
192
193
  @classmethod
193
194
  def getInternalTestDir(cls, dataset):
@@ -30,17 +30,16 @@ __license__ = "MIT"
30
30
  __copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
31
31
  __date__ = "24/01/2018"
32
32
 
33
+ import getpass
34
+ import logging
33
35
  import os
36
+ import shutil
34
37
  import sys
38
+ import tempfile
35
39
  import threading
36
40
  import unittest
37
- import logging
38
- import shutil
39
- import tempfile
40
- import getpass
41
-
42
-
43
41
  from argparse import ArgumentParser
42
+
44
43
  from silx.resources import ExternalResources
45
44
 
46
45
  PACKAGE = "pyFAI"
@@ -1,12 +1,14 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
- import numpy as np
5
- from math import pi
6
4
  from bisect import bisect
7
- from ..utils import generate_powers
5
+ from math import pi
6
+
7
+ import numpy as np
8
8
  from silx.utils.enum import Enum as _Enum
9
9
 
10
+ from ..utils import generate_powers
11
+
10
12
 
11
13
  def lmicron_to_db(Lmicron, energy, distance):
12
14
  """
@@ -359,9 +361,9 @@ class PaganinPhaseRetrieval(object):
359
361
  padding_method = padding_method or self.padding
360
362
  padding_method = PaddingMode.from_value(padding_method)
361
363
  if padding_method not in self.padding_methods:
364
+ valid_padding_modes = list(self.padding_methods.keys())
362
365
  raise ValueError(
363
- "Unknown padding method %s. Available are: %s"
364
- % (padding_method, str(list(self.padding_methods.keys())))
366
+ f"Unknown padding method {padding_method}. Available are: {valid_padding_modes}"
365
367
  )
366
368
  pad_func = self.padding_methods[padding_method]
367
369
  pad_func(data)
@@ -1,7 +1,8 @@
1
1
  import os
2
- import numpy as np
3
- from time import time
4
2
  from itertools import product
3
+ from time import time
4
+
5
+ import numpy as np
5
6
 
6
7
  _warnings = {}
7
8
 
tomwer/utils.py CHANGED
@@ -22,6 +22,9 @@
22
22
  # THE SOFTWARE.
23
23
  #
24
24
  # ###########################################################################*/
25
+ """
26
+ some project general utils functions
27
+ """
25
28
 
26
29
  __authors__ = ["H. Payno", "T. Vincent"]
27
30
  __license__ = "MIT"
@@ -30,19 +33,16 @@ __date__ = "04/01/2018"
30
33
 
31
34
  import argparse
32
35
  import functools
36
+ import importlib
37
+ import logging
38
+ import sys
39
+
33
40
  from silx.utils.launcher import Launcher as _Launcher
34
41
  from silx.utils.launcher import LauncherCommand as _LauncherCommand
35
- import sys
36
- import logging
37
- import importlib
38
42
 
39
43
  _logger = logging.getLogger(__file__)
40
44
 
41
45
 
42
- def addHTMLLine(txt):
43
- return "<li>" + txt + "</li>"
44
-
45
-
46
46
  def _docstring(dest, origin):
47
47
  """Implementation of docstring decorator.
48
48
 
@@ -202,12 +202,12 @@ class Launcher(_Launcher):
202
202
  return 0
203
203
 
204
204
  if command_name not in self._commands:
205
- print("Unknown command: %s", command_name)
205
+ print(f"Unknown command: {command_name}")
206
206
  self.print_help()
207
207
  return -1
208
208
 
209
209
  command = self._commands[command_name]
210
- prog = "%s %s" % (self.prog, command.name)
210
+ prog = f"{self.prog} {command.name}"
211
211
  return command.execute([prog, "--help"])
212
212
 
213
213
  def execute(self, argv=None):
@@ -228,7 +228,7 @@ class Launcher(_Launcher):
228
228
  command_name = argv[1]
229
229
 
230
230
  if command_name == "--version":
231
- print("%s version %s" % (self.prog, str(self.version)))
231
+ print(f"{self.prog} version {str(self.version)}")
232
232
  return 0
233
233
 
234
234
  if command_name in ["--help", "-h"]:
@@ -239,10 +239,10 @@ class Launcher(_Launcher):
239
239
  else:
240
240
  command_name = argv[2]
241
241
  command_argv = argv[2:] + ["--help"]
242
- command_argv[0] = "%s %s" % (self.prog, command_argv[0])
242
+ command_argv[0] = f"{self.prog} {command_argv[0]}"
243
243
  else:
244
244
  command_argv = argv[1:]
245
- command_argv[0] = "%s %s" % (self.prog, command_argv[0])
245
+ command_argv[0] = f"{self.prog} {command_argv[0]}"
246
246
 
247
247
  if command_name not in self._commands:
248
248
  print("Unknown command: %s" % command_name)
tomwer/version.py CHANGED
@@ -76,10 +76,10 @@ RELEASE_LEVEL_VALUE = {
76
76
  }
77
77
 
78
78
  MAJOR = 1
79
- MINOR = 1
79
+ MINOR = 2
80
80
  MICRO = 0
81
- RELEV = "rc" # <16
82
- SERIAL = 7 # <16
81
+ RELEV = "alpha" # <16
82
+ SERIAL = 0 # <16
83
83
 
84
84
  date = __date__
85
85
 
tomwer/web/__init__.py ADDED
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ # /*##########################################################################
3
+ # Copyright (C) 2016 European Synchrotron Radiation Facility
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in
13
+ # all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ # THE SOFTWARE.
22
+ #
23
+ #############################################################################*/
24
+ """Module containing process relative to the web (like classes used to link
25
+ with graylog)
26
+ """
27
+
28
+ __authors__ = ["H.Payno"]
29
+ __license__ = "MIT"
30
+ __date__ = "15/05/2017"
tomwer/web/client.py ADDED
@@ -0,0 +1,43 @@
1
+ # coding: utf-8
2
+ # /*##########################################################################
3
+ # Copyright (C) 2016 European Synchrotron Radiation Facility
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in
13
+ # all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ # THE SOFTWARE.
22
+ #
23
+ #############################################################################*/
24
+ """module defining functions and class to communicate a status to the
25
+ orange-server.
26
+ The orange-server is used to display the advancement of the workflow.
27
+ """
28
+
29
+ __authors__ = ["H.Payno"]
30
+ __license__ = "MIT"
31
+ __date__ = "28/04/2017"
32
+
33
+
34
+ import logging
35
+
36
+ _logger = logging.getLogger(__name__)
37
+
38
+
39
+ class OWClient(object):
40
+ """Orange widget Client can emit information about his advancement"""
41
+
42
+ WORKFLOW_INFO = "workflow" # general information about a workflow
43
+ SCAN_INFO = "scan" # information focus on a scan