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
@@ -28,29 +28,30 @@ __license__ = "MIT"
28
28
  __date__ = "09/08/2018"
29
29
 
30
30
 
31
- import numpy
32
- import logging
33
- import typing
34
- import json
35
31
  import io
32
+ import json
33
+ import logging
36
34
  import os
35
+ import typing
37
36
  from glob import glob
37
+ from typing import Optional
38
+
39
+ import numpy
38
40
  from silx.io.url import DataUrl
39
- from tomwer.core.tomwer_object import TomwerObject
40
- from tomwer.core.utils.locker import FileLockerManager, FileLockerContext
41
- from tomwer.core.utils.ftseriesutils import orderFileByLastLastModification
42
- from tomoscan.normalization import IntensityNormalization
43
- from tomoscan.io import HDF5File
41
+ from silx.utils.enum import Enum as _Enum
44
42
  from tomoscan.identifier import VolumeIdentifier
43
+ from tomoscan.io import HDF5File
44
+ from tomoscan.normalization import IntensityNormalization
45
45
  from tomoscan.volumebase import VolumeBase
46
- from typing import Optional
47
- from silx.utils.enum import Enum as _Enum
48
- from tomwer.core.volume.hdf5volume import HDF5Volume
46
+
47
+ from tomwer.core.tomwer_object import TomwerObject
48
+ from tomwer.core.utils.ftseriesutils import orderFileByLastLastModification
49
+ from tomwer.core.utils.locker import FileLockerContext, FileLockerManager
49
50
  from tomwer.core.volume.edfvolume import EDFVolume
51
+ from tomwer.core.volume.hdf5volume import HDF5Volume
50
52
  from tomwer.core.volume.jp2kvolume import JP2KVolume
51
53
  from tomwer.core.volume.tiffvolume import MultiTIFFVolume
52
54
 
53
-
54
55
  logger = logging.getLogger(__name__)
55
56
 
56
57
 
@@ -327,10 +328,10 @@ class TomwerScanBase(TomwerObject):
327
328
  del self._cache_radio_axis[(mode, nearest)]
328
329
 
329
330
  def compute():
331
+ from ..process.reconstruction.axis.anglemode import CorAngleMode
330
332
  from ..process.reconstruction.axis.params import (
331
333
  AxisResource,
332
334
  ) # avoid cyclic import
333
- from ..process.reconstruction.axis.anglemode import CorAngleMode
334
335
 
335
336
  _mode = CorAngleMode.from_value(mode)
336
337
  if self.path is None: # pylint: disable=E1101
@@ -759,8 +760,7 @@ class TomwerScanBase(TomwerObject):
759
760
  if len(indexes) > 0:
760
761
  self._process_index = max(indexes) + 1
761
762
  logger.debug(
762
- "set process_index from tomwer process file"
763
- "to {}".format(self._process_index)
763
+ f"set process_index from tomwer process file to {self._process_index}"
764
764
  )
765
765
 
766
766
  def get_nabu_dataset_info(self, binning=1, binning_z=1, proj_subsampling=1):
@@ -790,8 +790,8 @@ class _TomwerBaseDock(object):
790
790
  return self.__instance
791
791
 
792
792
 
793
- def _containsDigits(input):
794
- return any(char.isdigit() for char in input)
793
+ def _containsDigits(input_):
794
+ return any(char.isdigit() for char in input_)
795
795
 
796
796
 
797
797
  def _get_reconstructed_single_file_volume(
@@ -28,22 +28,25 @@ __license__ = "MIT"
28
28
  __date__ = "27/02/2019"
29
29
 
30
30
 
31
+ import glob
32
+ import logging
33
+ import os
34
+ from typing import Union
35
+ from urllib.parse import urlparse
36
+
31
37
  import h5py
32
- from tomoscan.scanbase import TomoScanBase
33
- from tomoscan.factory import Factory as _oScanFactory
38
+ from tomoscan.esrf.identifier.url_utils import split_path
34
39
  from tomoscan.esrf.scan.hdf5scan import HDF5TomoScan as _oHDF5TomoScan
40
+ from tomoscan.factory import Factory as _oScanFactory
35
41
  from tomoscan.identifier import BaseIdentifier, ScanIdentifier, VolumeIdentifier
42
+ from tomoscan.scanbase import TomoScanBase
36
43
  from tomoscan.tomoobject import TomoObject
44
+
37
45
  from tomwer.utils import docstring
38
- from typing import Union
46
+
47
+ from .blissscan import BlissScan
39
48
  from .edfscan import EDFTomoScan, EDFTomoScanIdentifier
40
49
  from .hdf5scan import HDF5TomoScan, HDF5TomoScanIdentifier
41
- from .blissscan import BlissScan
42
- import os
43
- import glob
44
- import logging
45
- from urllib.parse import urlparse
46
- from tomoscan.esrf.identifier.url_utils import split_path
47
50
 
48
51
  _logger = logging.getLogger(__name__)
49
52
 
@@ -140,9 +143,8 @@ class ScanFactory(object):
140
143
  entry = valid_entries[-1]
141
144
  elif entry not in valid_entries:
142
145
  raise ValueError(
143
- "entry {} is invalid. Does it exists ? Is the "
144
- "file NXTomo compliant ?. Valid entry are {}"
145
- "".format(entry, valid_entries)
146
+ f"entry {entry} is invalid. Does it exists ? Is the "
147
+ f"file NXTomo compliant ?. Valid entry are {valid_entries}"
146
148
  )
147
149
  return HDF5TomoScan(scan=scan_path, entry=entry)
148
150
  elif ScanFactory.is_edf_tomo(scan_path):
@@ -152,13 +154,12 @@ class ScanFactory(object):
152
154
  valid_entries = BlissScan.get_valid_entries(scan_path)
153
155
  if len(valid_entries) > 1:
154
156
  _logger.warning(
155
- "more than one entry found for %s."
156
- "Pick the last entry" % scan_path
157
+ f"more than one entry found for {scan_path}. Pick the last entry"
157
158
  )
158
159
  entry = valid_entries[-1]
159
160
  return BlissScan(master_file=scan_path, entry=entry, proposal_file=None)
160
161
 
161
- raise ValueError("Unable to generate a scan object from %s" % scan_path)
162
+ raise ValueError(f"Unable to generate a scan object from {scan_path}")
162
163
 
163
164
  @docstring(_oScanFactory.create_scan_objects)
164
165
  @staticmethod
@@ -183,9 +184,9 @@ class ScanFactory(object):
183
184
  return tuple()
184
185
 
185
186
  @staticmethod
186
- def mock_scan(type="edf"):
187
+ def mock_scan(type_="edf"):
187
188
  """Mock a scan structure which is not associated to any real acquistion"""
188
- if type == "edf":
189
+ if type_ == "edf":
189
190
  return EDFTomoScan(scan=None)
190
191
  else:
191
192
  raise NotImplementedError("Other TomoScan are not defined yet")
@@ -194,9 +195,7 @@ class ScanFactory(object):
194
195
  def create_scan_object_frm_dict(_dict):
195
196
  if TomoScanBase.DICT_TYPE_KEY not in _dict:
196
197
  raise ValueError(
197
- "given dict is not recognized. Cannot find {}".format(
198
- TomoScanBase.DICT_TYPE_KEY
199
- )
198
+ f"given dict is not recognized. Cannot find {TomoScanBase.DICT_TYPE_KEY}"
200
199
  )
201
200
  elif _dict[TomoScanBase.DICT_TYPE_KEY] == EDFTomoScan._TYPE:
202
201
  return EDFTomoScan(scan=None).load_from_dict(_dict)
@@ -204,7 +203,7 @@ class ScanFactory(object):
204
203
  return HDF5TomoScan.from_dict(_dict)
205
204
  else:
206
205
  raise ValueError(
207
- "Scan type {} is not managed".format(_dict[TomoScanBase.DICT_TYPE_KEY])
206
+ f"Scan type {_dict[TomoScanBase.DICT_TYPE_KEY]} is not managed"
208
207
  )
209
208
 
210
209
  @staticmethod
@@ -0,0 +1,7 @@
1
+ from silx.utils.enum import Enum as _Enum
2
+
3
+
4
+ class ScanType(_Enum):
5
+ BLISS = "bliss-hdf5"
6
+ SPEC = "spec-edf"
7
+ NX_TOMO = "NXtomo"
@@ -29,9 +29,10 @@ __license__ = "MIT"
29
29
  __date__ = "23/11/2021"
30
30
 
31
31
 
32
+ import os
33
+
32
34
  from tomwer.core.scan.edfscan import EDFTomoScan
33
35
  from tomwer.core.utils.scanutils import MockEDF
34
- import os
35
36
 
36
37
 
37
38
  def test_scan_dir(tmpdir):
@@ -30,9 +30,10 @@ __date__ = "04/11/2021"
30
30
 
31
31
 
32
32
  import asyncio
33
+ import os
34
+
33
35
  from tomwer.core.futureobject import FutureTomwerObject
34
36
  from tomwer.core.utils.scanutils import MockHDF5
35
- import os
36
37
 
37
38
 
38
39
  def test_simple_future_tomo_obj(tmpdir):
@@ -28,14 +28,15 @@ __authors__ = ["H. Payno"]
28
28
  __license__ = "MIT"
29
29
  __date__ = "16/09/2019"
30
30
 
31
- import unittest
32
- import shutil
33
31
  import os
32
+ import shutil
34
33
  import tempfile
35
- from tomwer.tests.utils import UtilsTest
36
- from tomwer.core.scan.hdf5scan import HDF5TomoScan
34
+ import unittest
35
+
37
36
  from tomwer.core.process.reconstruction.darkref.darkrefs import DarkRefs
37
+ from tomwer.core.scan.hdf5scan import HDF5TomoScan
38
38
  from tomwer.core.utils.scanutils import MockHDF5
39
+ from tomwer.tests.utils import UtilsTest
39
40
 
40
41
 
41
42
  class TestHDF5Scan(unittest.TestCase):
@@ -28,12 +28,14 @@ __license__ = "MIT"
28
28
  __date__ = "02/09/2020"
29
29
 
30
30
 
31
+ import shutil
32
+ import tempfile
31
33
  import unittest
34
+
35
+ from tomoscan.io import HDF5File
36
+
32
37
  from tomwer.core.process.task import Task
33
38
  from tomwer.core.utils.scanutils import MockHDF5
34
- import tempfile
35
- import shutil
36
- from tomoscan.io import HDF5File
37
39
 
38
40
 
39
41
  class TestProcessRegistration(unittest.TestCase):
@@ -27,21 +27,23 @@ __authors__ = ["H. Payno"]
27
27
  __license__ = "MIT"
28
28
  __date__ = "24/01/2017"
29
29
 
30
- import unittest
30
+ import contextlib
31
31
  import logging
32
+ import os
33
+ import shutil
32
34
  import tempfile
33
- import numpy
35
+ import unittest
36
+ from multiprocessing import Process
37
+
34
38
  import fabio.edfimage
35
- import contextlib
39
+ import numpy
40
+
41
+ from tomwer.core.process.reconstruction.nabu import nabuslices
42
+ from tomwer.core.process.task import Task
36
43
  from tomwer.core.scan.edfscan import EDFTomoScan
37
44
  from tomwer.core.scan.scanfactory import ScanFactory
38
- from tomwer.core.process.task import Task
39
- from tomwer.tests.utils import UtilsTest
40
45
  from tomwer.core.utils.scanutils import MockEDF
41
- from tomwer.core.process.reconstruction.nabu import nabuslices
42
- import shutil
43
- import os
44
- from multiprocessing import Process
46
+ from tomwer.tests.utils import UtilsTest
45
47
 
46
48
  logging.disable(logging.INFO)
47
49
 
tomwer/core/settings.py CHANGED
@@ -30,7 +30,6 @@ __date__ = "02/06/2017"
30
30
 
31
31
  import os
32
32
 
33
-
34
33
  __LBSRAM_PATH = '/lbsram'
35
34
 
36
35
  __DEST_PATH = ''
@@ -104,7 +103,7 @@ class SlurmSettings:
104
103
  N_GPUS_PER_WORKER = 1
105
104
  """number of gpu per worker"""
106
105
 
107
- PYTHON_VENV = "/scisoft/tomotools/activate.sh stable"
106
+ PYTHON_VENV = "/scisoft/tomotools/activate stable"
108
107
  """Python executable to take. Useful if compute nodes have a different environment from the front end.
109
108
  """
110
109
 
@@ -27,9 +27,10 @@ __authors__ = ["H. Payno"]
27
27
  __license__ = "MIT"
28
28
  __date__ = "19/07/2018"
29
29
 
30
- import unittest
31
- import tempfile
32
30
  import shutil
31
+ import tempfile
32
+ import unittest
33
+
33
34
  from tomwer.core.process.reconstruction.lamino import tofu
34
35
  from tomwer.core.scan.edfscan import EDFTomoScan
35
36
 
@@ -27,11 +27,12 @@ __authors__ = ["H. Payno"]
27
27
  __license__ = "MIT"
28
28
  __date__ = "30/09/2019"
29
29
 
30
- import unittest
31
30
  import os
32
31
  import tempfile
33
- from tomwer.core.utils.scanutils import MockHDF5
32
+ import unittest
33
+
34
34
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
35
+ from tomwer.core.utils.scanutils import MockHDF5
35
36
 
36
37
 
37
38
  class TestMockHDF5(unittest.TestCase):
@@ -28,15 +28,17 @@ __license__ = "MIT"
28
28
  __date__ = "02/08/2017"
29
29
 
30
30
 
31
- import unittest
32
- import tempfile
33
31
  import os
34
32
  import shutil
33
+ import tempfile
34
+ import unittest
35
+
36
+ import numpy
37
+
35
38
  from tomwer.core import utils
39
+ from tomwer.core.utils.normalization import flatFieldCorrection
36
40
  from tomwer.core.utils.scanutils import MockEDF, MockHDF5
37
41
  from tomwer.tests.utils import UtilsTest
38
- from tomwer.core.utils.normalization import flatFieldCorrection
39
- import numpy
40
42
 
41
43
 
42
44
  class TestGetClosestEnergy(unittest.TestCase):
@@ -27,16 +27,18 @@ __authors__ = ["H. Payno"]
27
27
  __license__ = "MIT"
28
28
  __date__ = "17/05/2017"
29
29
 
30
- import fabio.edfimage
31
- import os
32
- import psutil
30
+ import fileinput
33
31
  import logging
32
+ import os
34
33
  import shutil
35
- from tomwer.core import settings
36
- from tomoscan.unitsystem import metricsystem
37
34
  from urllib.request import urlopen
38
- import fileinput
35
+
36
+ import fabio.edfimage
37
+ import psutil
39
38
  from lxml import etree
39
+ from tomoscan.unitsystem import metricsystem
40
+
41
+ from tomwer.core import settings
40
42
 
41
43
  logger = logging.getLogger(__name__)
42
44
 
@@ -28,9 +28,9 @@ __authors__ = ["Jerome Kieffer", "H. Payno", "P. Knobel"]
28
28
  __license__ = "MIT"
29
29
  __date__ = "26/02/2018"
30
30
 
31
- import sys
32
- import logging
33
31
  import functools
32
+ import logging
33
+ import sys
34
34
  import traceback
35
35
 
36
36
  depreclog = logging.getLogger("silx.DEPRECATION")
@@ -28,9 +28,10 @@ __license__ = "MIT"
28
28
  __date__ = "25/02/2019"
29
29
 
30
30
 
31
- import numpy
32
- import logging
33
31
  import enum
32
+ import logging
33
+
34
+ import numpy
34
35
  from numpy.linalg import inv
35
36
 
36
37
  _logger = logging.getLogger(__file__)
@@ -67,7 +68,7 @@ def shift_img(
67
68
  assert data.ndim == 2
68
69
  assert dx is not None
69
70
  assert dy is not None
70
- _logger.debug("apply shift dx=%s, dy=%s " % (dx, dy))
71
+ _logger.debug(f"apply shift dx={dx}, dy={dy} ")
71
72
 
72
73
  if use_scipy and has_scipy_shift:
73
74
  return shift_scipy(
@@ -0,0 +1,80 @@
1
+ # coding: utf-8
2
+ # /*##########################################################################
3
+ #
4
+ # Copyright (c) 2017 European Synchrotron Radiation Facility
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ # THE SOFTWARE.
23
+ #
24
+ # ###########################################################################*/
25
+
26
+ __authors__ = ["H. Payno"]
27
+ __license__ = "MIT"
28
+ __date__ = "22/06/2018"
29
+
30
+
31
+ import fabio
32
+ import os
33
+ import logging
34
+
35
+ logger = logging.getLogger(__name__)
36
+
37
+
38
+ def getMotorInformationFromEDfFile(_file):
39
+ """
40
+
41
+ :param _file: file to the edf file containing header with information
42
+ :return: dictionary with motor name as key and motor position as value
43
+ :rtype: dict
44
+ """
45
+ assert type(_file) is str
46
+ assert _file.endswith(".edf")
47
+ if not os.path.isfile(_file):
48
+ warn = "%s is not a valid file. Cannot retrieve motor information" % _file
49
+ logger.warning(warn)
50
+ return None
51
+ else:
52
+ with fabio.open(_file) as dsc:
53
+ header = dsc.header
54
+
55
+ if "motor_mne" not in header:
56
+ logger.warning(
57
+ 'key "motor_mne" not found in the file header.'
58
+ "Cannot retrieve motor information"
59
+ )
60
+ return None
61
+
62
+ if "motor_pos" not in header:
63
+ logger.warning(
64
+ 'key "motor_pos" not found in the file header.'
65
+ "Cannot retrieve motor information"
66
+ )
67
+ return None
68
+
69
+ motor_mne_lst = header["motor_mne"].split(" ")
70
+ motor_pos_lst = header["motor_pos"].split(" ")
71
+ if len(motor_mne_lst) != len(motor_pos_lst):
72
+ logger.warning(
73
+ "Incoherent number of motor_mne and motor_pos."
74
+ "Cannot retrieve motor information"
75
+ )
76
+ return None
77
+ res = {}
78
+ for mne, pos in zip(motor_mne_lst, motor_pos_lst):
79
+ res[mne] = pos
80
+ return res
@@ -30,8 +30,8 @@ __date__ = "20/04/2020"
30
30
 
31
31
  import os
32
32
  import threading
33
-
34
33
  from contextlib import AbstractContextManager
34
+
35
35
  from tomwer.core.utils.Singleton import singleton
36
36
 
37
37
 
@@ -29,6 +29,7 @@ __date__ = "30/05/2018"
29
29
 
30
30
 
31
31
  import logging
32
+
32
33
  import fabio
33
34
 
34
35
  _logger = logging.getLogger(__name__)
@@ -29,8 +29,9 @@ __date__ = "02/12/2021"
29
29
 
30
30
 
31
31
  from typing import Union
32
- from tomoscan.esrf.scan.hdf5scan import ImageKey
32
+
33
33
  import numpy
34
+ from tomoscan.esrf.scan.hdf5scan import ImageKey
34
35
 
35
36
 
36
37
  def get_n_series(image_key_values: Union[tuple, list], image_key_type: ImageKey) -> int:
@@ -30,18 +30,21 @@ __license__ = "MIT"
30
30
  __date__ = "11/08/2022"
31
31
 
32
32
  import logging
33
- import h5py
34
- import numpy
35
- import time
36
33
  import os
34
+ import time
37
35
  from typing import Any
36
+
37
+ import h5py
38
+ import numpy
39
+ from silx.io.utils import h5py_read_dataset
40
+ from tomoscan.esrf.scan.mock import MockEDF as _MockEDF
41
+ from tomoscan.esrf.scan.mock import MockHDF5 as _MockHDF5
38
42
  from tomoscan.io import HDF5File
39
- from tomoscan.esrf.scan.mock import MockEDF as _MockEDF, MockHDF5 as _MockHDF5
40
43
  from tomoscan.test.utils import MockContext
44
+
41
45
  from tomwer.core.scan.blissscan import BlissScan
42
46
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
43
47
  from tomwer.core.scan.scanfactory import ScanFactory
44
- from silx.io.utils import h5py_read_dataset
45
48
 
46
49
  _logger = logging.getLogger(__name__)
47
50
 
@@ -273,7 +276,7 @@ class _BlissSample:
273
276
  h5f["/".join((str(seq_ini_index) + ".1", "end_time"))] = str(time.ctime())
274
277
 
275
278
  if self.__with_nx:
276
- nx_file = "sample_{}.nx".format(str(seq_ini_index).zfill(4))
279
+ nx_file = f"sample_{seq_ini_index:04}.nx"
277
280
  nx_file = os.path.join(self.path, nx_file)
278
281
  with h5py.File(nx_file, "a") as h5f:
279
282
  pass
@@ -30,8 +30,9 @@ __license__ = "MIT"
30
30
  __date__ = "11/10/2021"
31
31
 
32
32
 
33
- from datetime import datetime
34
33
  import uuid
34
+ from datetime import datetime
35
+
35
36
  from sluurp.utils import has_sbatch_available
36
37
 
37
38
 
tomwer/core/utils/time.py CHANGED
@@ -44,7 +44,5 @@ class Timer:
44
44
  self._start_time = time()
45
45
 
46
46
  def __exit__(self, type, value, traceback):
47
- print(
48
- "{title} exec time: {exec_time} s"
49
- "".format(title=self.title, exec_time=(time() - self._start_time))
50
- )
47
+ exec_time = time() - self._start_time
48
+ print(f"{self.title} exec time: {exec_time} s")
@@ -1,6 +1,7 @@
1
- from tomwer.core.volume.volumefactory import VolumeFactory
2
1
  from typing import Any
3
2
 
3
+ from tomwer.core.volume.volumefactory import VolumeFactory
4
+
4
5
 
5
6
  def volume_identifier_to_volume(volume_identifier: Any):
6
7
  """
@@ -1,5 +1,5 @@
1
1
  from .edfvolume import EDFVolume # noqa F401
2
2
  from .hdf5volume import HDF5Volume # noqa F401
3
3
  from .jp2kvolume import JP2KVolume # noqa F401
4
- from .tiffvolume import TIFFVolume, MultiTIFFVolume # noqa F401
5
4
  from .rawvolume import RawVolume # noqa F401
5
+ from .tiffvolume import MultiTIFFVolume, TIFFVolume # noqa F401
@@ -28,12 +28,13 @@ __license__ = "MIT"
28
28
  __date__ = "05/07/2022"
29
29
 
30
30
 
31
- from tomoscan.esrf.volume.edfvolume import EDFVolume as _EDFVolume
32
- from tomwer.core.volume.volumebase import TomwerVolumeBase
31
+ from processview.core.dataset import Dataset, DatasetIdentifier
33
32
  from tomoscan.esrf.identifier.edfidentifier import (
34
33
  EDFVolumeIdentifier as _EDFVolumeIdentifier,
35
34
  )
36
- from processview.core.dataset import DatasetIdentifier, Dataset
35
+ from tomoscan.esrf.volume.edfvolume import EDFVolume as _EDFVolume
36
+
37
+ from tomwer.core.volume.volumebase import TomwerVolumeBase
37
38
 
38
39
 
39
40
  class EDFVolumeIdentifier(_EDFVolumeIdentifier, DatasetIdentifier):
@@ -28,18 +28,16 @@ __license__ = "MIT"
28
28
  __date__ = "05/07/2022"
29
29
 
30
30
 
31
- from tomoscan.esrf.volume.hdf5volume import HDF5Volume as _HDF5Volume
31
+ from urllib.parse import urlparse
32
+
33
+ from processview.core.dataset import Dataset, DatasetIdentifier
32
34
  from tomoscan.esrf.identifier.hdf5Identifier import (
33
35
  HDF5VolumeIdentifier as _HDF5VolumeIdentifier,
34
36
  )
37
+ from tomoscan.esrf.identifier.url_utils import UrlSettings, split_path, split_query
38
+ from tomoscan.esrf.volume.hdf5volume import HDF5Volume as _HDF5Volume
39
+
35
40
  from tomwer.core.volume.volumebase import TomwerVolumeBase
36
- from processview.core.dataset import DatasetIdentifier, Dataset
37
- from urllib.parse import urlparse
38
- from tomoscan.esrf.identifier.url_utils import (
39
- UrlSettings,
40
- split_path,
41
- split_query,
42
- )
43
41
 
44
42
 
45
43
  class HDF5VolumeIdentifier(_HDF5VolumeIdentifier, DatasetIdentifier):
@@ -28,12 +28,13 @@ __license__ = "MIT"
28
28
  __date__ = "05/07/2022"
29
29
 
30
30
 
31
- from tomoscan.esrf.volume.jp2kvolume import JP2KVolume as _JP2KVolume
32
- from tomwer.core.volume.volumebase import TomwerVolumeBase
31
+ from processview.core.dataset import Dataset, DatasetIdentifier
33
32
  from tomoscan.esrf.identifier.jp2kidentifier import (
34
33
  JP2KVolumeIdentifier as _JP2KVolumeIdentifier,
35
34
  )
36
- from processview.core.dataset import DatasetIdentifier, Dataset
35
+ from tomoscan.esrf.volume.jp2kvolume import JP2KVolume as _JP2KVolume
36
+
37
+ from tomwer.core.volume.volumebase import TomwerVolumeBase
37
38
 
38
39
 
39
40
  class JP2KVolumeIdentifier(_JP2KVolumeIdentifier, DatasetIdentifier):