tomwer 1.1.1__py3-none-any.whl → 1.2.0a0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. orangecontrib/tomwer/__init__.py +1 -0
  2. orangecontrib/tomwer/orange/managedprocess.py +6 -4
  3. orangecontrib/tomwer/state_summary.py +3 -2
  4. orangecontrib/tomwer/widgets/__init__.py +2 -2
  5. orangecontrib/tomwer/widgets/cluster/FutureSupervisorOW.py +9 -7
  6. orangecontrib/tomwer/widgets/cluster/SlurmClusterOW.py +6 -5
  7. orangecontrib/tomwer/widgets/control/AdvancementOW.py +2 -1
  8. orangecontrib/tomwer/widgets/control/DataDiscoveryOW.py +235 -0
  9. orangecontrib/tomwer/widgets/control/DataListOW.py +7 -5
  10. orangecontrib/tomwer/widgets/control/DataListenerOW.py +13 -14
  11. orangecontrib/tomwer/widgets/control/DataSelectorOW.py +8 -6
  12. orangecontrib/tomwer/widgets/control/DataTransfertOW.py +9 -9
  13. orangecontrib/tomwer/widgets/control/DataValidatorOW.py +7 -8
  14. orangecontrib/tomwer/widgets/control/DataWatcherOW.py +25 -17
  15. orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py +8 -8
  16. orangecontrib/tomwer/widgets/control/FilterOW.py +9 -8
  17. orangecontrib/tomwer/widgets/control/NXTomomillMixIn.py +3 -4
  18. orangecontrib/tomwer/widgets/control/NXTomomillOW.py +13 -14
  19. orangecontrib/tomwer/widgets/control/NotifierOW.py +3 -4
  20. orangecontrib/tomwer/widgets/control/SingleTomoObjOW.py +7 -5
  21. orangecontrib/tomwer/widgets/control/TimerOW.py +6 -5
  22. orangecontrib/tomwer/widgets/control/TomoObjSerieOW.py +5 -3
  23. orangecontrib/tomwer/widgets/control/VolumeSelector.py +8 -6
  24. orangecontrib/tomwer/widgets/control/VolumeSymLinkOW.py +10 -9
  25. orangecontrib/tomwer/widgets/control/icons/datadiscover.png +0 -0
  26. orangecontrib/tomwer/widgets/control/icons/datadiscover.svg +137 -0
  27. orangecontrib/tomwer/widgets/control/icons/nxtomomill.png +0 -0
  28. orangecontrib/tomwer/widgets/control/icons/nxtomomill.svg +5 -8
  29. orangecontrib/tomwer/widgets/debugtools/DatasetGeneratorOW.py +13 -15
  30. orangecontrib/tomwer/widgets/debugtools/ObjectInspectorOW.py +3 -2
  31. orangecontrib/tomwer/widgets/edit/DarkFlatPatchOW.py +10 -7
  32. orangecontrib/tomwer/widgets/edit/ImageKeyEditorOW.py +8 -5
  33. orangecontrib/tomwer/widgets/edit/ImageKeyUpgraderOW.py +5 -2
  34. orangecontrib/tomwer/widgets/edit/NXtomoEditorOW.py +6 -3
  35. orangecontrib/tomwer/widgets/edit/test/test_dark_flat_patch.py +8 -6
  36. orangecontrib/tomwer/widgets/edit/test/test_image_key_editor.py +3 -1
  37. orangecontrib/tomwer/widgets/edit/test/test_image_key_upgrader.py +3 -1
  38. orangecontrib/tomwer/widgets/edit/test/test_nxtomo_editor.py +3 -1
  39. orangecontrib/tomwer/widgets/other/PythonScriptOW.py +11 -11
  40. orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +22 -27
  41. orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py +13 -11
  42. orangecontrib/tomwer/widgets/reconstruction/DarkRefAndCopyOW.py +11 -9
  43. orangecontrib/tomwer/widgets/reconstruction/NabuOW.py +16 -14
  44. orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py +27 -32
  45. orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +27 -34
  46. orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +23 -25
  47. orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py +16 -18
  48. orangecontrib/tomwer/widgets/reconstruction/TofuOW.py +9 -7
  49. orangecontrib/tomwer/widgets/reconstruction/icons/nabu_2d.png +0 -0
  50. orangecontrib/tomwer/widgets/reconstruction/icons/nabu_2d.svg +8 -11
  51. orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +8 -8
  52. orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +6 -4
  53. orangecontrib/tomwer/widgets/visualization/LivesliceOW.py +4 -3
  54. orangecontrib/tomwer/widgets/visualization/NXtomoMetadataViewerOW.py +4 -3
  55. orangecontrib/tomwer/widgets/visualization/RadioStackOW.py +6 -4
  56. orangecontrib/tomwer/widgets/visualization/SampleMovedOW.py +8 -6
  57. orangecontrib/tomwer/widgets/visualization/SinogramViewerOW.py +6 -3
  58. orangecontrib/tomwer/widgets/visualization/SliceStackOW.py +7 -5
  59. orangecontrib/tomwer/widgets/visualization/VolumeViewerOW.py +5 -4
  60. tomwer/__init__.py +1 -1
  61. tomwer/__main__.py +2 -1
  62. tomwer/app/axis.py +18 -14
  63. tomwer/app/canvas.py +7 -5
  64. tomwer/app/canvas_launcher/config.py +8 -6
  65. tomwer/app/canvas_launcher/environ.py +1 -2
  66. tomwer/app/canvas_launcher/mainwindow.py +23 -22
  67. tomwer/app/canvas_launcher/splash.py +1 -0
  68. tomwer/app/canvas_launcher/widgetsscheme.py +3 -3
  69. tomwer/app/darkref.py +7 -6
  70. tomwer/app/darkrefpatch.py +8 -6
  71. tomwer/app/diffframe.py +6 -4
  72. tomwer/app/imagekeyeditor.py +10 -10
  73. tomwer/app/imagekeyupgrader.py +8 -6
  74. tomwer/app/intensitynormalization.py +8 -8
  75. tomwer/app/lamino.py +5 -3
  76. tomwer/app/nabuapp.py +8 -6
  77. tomwer/app/nxtomoeditor.py +6 -5
  78. tomwer/app/radiostack.py +8 -6
  79. tomwer/app/rsync.py +3 -3
  80. tomwer/app/saaxis.py +22 -23
  81. tomwer/app/sadeltabeta.py +21 -21
  82. tomwer/app/samplemoved.py +8 -6
  83. tomwer/app/scanviewer.py +7 -6
  84. tomwer/app/sinogramviewer.py +8 -7
  85. tomwer/app/slicestack.py +8 -6
  86. tomwer/app/stopdatalistener.py +2 -1
  87. tomwer/core/futureobject.py +15 -6
  88. tomwer/core/log/logger.py +4 -3
  89. tomwer/core/log/processlog.py +0 -1
  90. tomwer/core/process/conditions/filters.py +3 -3
  91. tomwer/core/process/control/datadiscovery.py +7 -0
  92. tomwer/core/process/control/datalistener/datalistener.py +22 -21
  93. tomwer/core/process/control/datalistener/rpcserver.py +18 -28
  94. tomwer/core/process/control/datawatcher/datawatcher.py +15 -12
  95. tomwer/core/process/control/datawatcher/datawatcherobserver.py +11 -8
  96. tomwer/core/process/control/datawatcher/datawatcherprocess.py +7 -5
  97. tomwer/core/process/control/datawatcher/edfdwprocess.py +5 -15
  98. tomwer/core/process/control/datawatcher/hdf5dwprocess.py +3 -1
  99. tomwer/core/process/control/datawatcher/status.py +2 -0
  100. tomwer/core/process/control/nxtomomill.py +7 -6
  101. tomwer/core/process/control/scanlist.py +2 -1
  102. tomwer/core/process/control/scanselector.py +1 -0
  103. tomwer/core/process/control/scantransfer.py +12 -12
  104. tomwer/core/process/control/scanvalidator.py +7 -6
  105. tomwer/core/process/control/test/test_volume_link.py +5 -4
  106. tomwer/core/process/control/timer.py +4 -4
  107. tomwer/core/process/control/volumeselector.py +1 -0
  108. tomwer/core/process/control/volumesymlink.py +8 -9
  109. tomwer/core/process/edit/darkflatpatch.py +9 -12
  110. tomwer/core/process/edit/imagekeyeditor.py +11 -13
  111. tomwer/core/process/reconstruction/axis/axis.py +36 -38
  112. tomwer/core/process/reconstruction/axis/mode.py +2 -1
  113. tomwer/core/process/reconstruction/axis/params.py +23 -28
  114. tomwer/core/process/reconstruction/darkref/darkrefs.py +23 -27
  115. tomwer/core/process/reconstruction/darkref/darkrefscopy.py +14 -18
  116. tomwer/core/process/reconstruction/darkref/params.py +3 -1
  117. tomwer/core/process/reconstruction/lamino/tofu.py +11 -15
  118. tomwer/core/process/reconstruction/nabu/castvolume.py +15 -18
  119. tomwer/core/process/reconstruction/nabu/nabucommon.py +19 -20
  120. tomwer/core/process/reconstruction/nabu/nabuscores.py +16 -14
  121. tomwer/core/process/reconstruction/nabu/nabuslices.py +27 -22
  122. tomwer/core/process/reconstruction/nabu/nabuvolume.py +20 -22
  123. tomwer/core/process/reconstruction/nabu/utils.py +17 -15
  124. tomwer/core/process/reconstruction/normalization/__init__.py +1 -3
  125. tomwer/core/process/reconstruction/normalization/normalization.py +16 -21
  126. tomwer/core/process/reconstruction/normalization/params.py +2 -2
  127. tomwer/core/process/reconstruction/saaxis/__init__.py +1 -1
  128. tomwer/core/process/reconstruction/saaxis/params.py +6 -7
  129. tomwer/core/process/reconstruction/saaxis/saaxis.py +44 -55
  130. tomwer/core/process/reconstruction/sadeltabeta/__init__.py +1 -1
  131. tomwer/core/process/reconstruction/sadeltabeta/params.py +9 -13
  132. tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +40 -46
  133. tomwer/core/process/reconstruction/scores/__init__.py +2 -2
  134. tomwer/core/process/reconstruction/scores/params.py +6 -9
  135. tomwer/core/process/reconstruction/scores/scores.py +10 -13
  136. tomwer/core/process/reconstruction/test/test_axis_params.py +4 -2
  137. tomwer/core/process/reconstruction/test/test_darkref.py +1 -2
  138. tomwer/core/process/reconstruction/test/test_darkref_copy.py +3 -1
  139. tomwer/core/process/reconstruction/test/test_paramsbase.py +1 -1
  140. tomwer/core/process/reconstruction/test/test_saaxis.py +11 -7
  141. tomwer/core/process/reconstruction/test/test_sadeltabeta.py +5 -4
  142. tomwer/core/process/reconstruction/test/test_utils.py +3 -2
  143. tomwer/core/process/script/python.py +6 -8
  144. tomwer/core/process/task.py +11 -12
  145. tomwer/core/process/test/test_axis.py +12 -9
  146. tomwer/core/process/test/test_conditions.py +8 -8
  147. tomwer/core/process/test/test_dark_and_flat.py +9 -8
  148. tomwer/core/process/test/test_data_listener.py +5 -3
  149. tomwer/core/process/test/test_data_transfer.py +14 -12
  150. tomwer/core/process/test/test_data_watcher.py +3 -1
  151. tomwer/core/process/test/test_lamino.py +3 -1
  152. tomwer/core/process/test/test_nabu.py +13 -12
  153. tomwer/core/process/test/test_normalization.py +7 -5
  154. tomwer/core/process/test/test_timer.py +2 -1
  155. tomwer/core/process/utils.py +9 -9
  156. tomwer/core/progress.py +3 -4
  157. tomwer/core/scan/blissscan.py +4 -2
  158. tomwer/core/scan/edfscan.py +26 -29
  159. tomwer/core/scan/futurescan.py +2 -1
  160. tomwer/core/scan/hdf5scan.py +21 -28
  161. tomwer/core/scan/scanbase.py +18 -18
  162. tomwer/core/scan/scanfactory.py +20 -21
  163. tomwer/core/scan/scantype.py +7 -0
  164. tomwer/core/scan/test/test_edf.py +2 -1
  165. tomwer/core/scan/test/test_future_scan.py +2 -1
  166. tomwer/core/scan/test/test_h5.py +5 -4
  167. tomwer/core/scan/test/test_process_registration.py +5 -3
  168. tomwer/core/scan/test/test_scan.py +11 -9
  169. tomwer/core/settings.py +1 -2
  170. tomwer/core/test/test_lamino.py +3 -2
  171. tomwer/core/test/test_scanutils.py +3 -2
  172. tomwer/core/test/test_utils.py +6 -4
  173. tomwer/core/utils/__init__.py +8 -6
  174. tomwer/core/utils/deprecation.py +2 -2
  175. tomwer/core/utils/image.py +4 -3
  176. tomwer/core/utils/locker.py +1 -1
  177. tomwer/core/utils/normalization.py +1 -0
  178. tomwer/core/utils/nxtomoutils.py +2 -1
  179. tomwer/core/utils/scanutils.py +9 -6
  180. tomwer/core/utils/slurm.py +2 -1
  181. tomwer/core/utils/time.py +2 -4
  182. tomwer/core/utils/volumeutils.py +2 -1
  183. tomwer/core/volume/__init__.py +1 -1
  184. tomwer/core/volume/edfvolume.py +4 -3
  185. tomwer/core/volume/hdf5volume.py +6 -8
  186. tomwer/core/volume/jp2kvolume.py +4 -3
  187. tomwer/core/volume/rawvolume.py +7 -7
  188. tomwer/core/volume/tiffvolume.py +8 -6
  189. tomwer/core/volume/volumebase.py +1 -0
  190. tomwer/core/volume/volumefactory.py +18 -18
  191. tomwer/gui/cluster/slurm.py +2 -0
  192. tomwer/gui/cluster/supervisor.py +4 -2
  193. tomwer/gui/cluster/test/test_cluster.py +5 -4
  194. tomwer/gui/cluster/test/test_supervisor.py +4 -2
  195. tomwer/gui/conditions/filter.py +7 -6
  196. tomwer/gui/control/actions.py +1 -0
  197. tomwer/gui/control/datadiscovery.py +168 -0
  198. tomwer/gui/control/datalist.py +29 -28
  199. tomwer/gui/control/datalistener.py +8 -4
  200. tomwer/gui/control/datareacheractions.py +2 -1
  201. tomwer/gui/control/datatransfert.py +3 -1
  202. tomwer/gui/control/datavalidator.py +11 -12
  203. tomwer/gui/control/datawatcher/configuration.py +12 -1
  204. tomwer/gui/control/datawatcher/controlwidget.py +116 -0
  205. tomwer/gui/control/datawatcher/datawatcher.py +63 -121
  206. tomwer/gui/control/datawatcher/datawatcherobserver.py +7 -9
  207. tomwer/gui/control/history.py +3 -1
  208. tomwer/gui/control/observations.py +7 -7
  209. tomwer/gui/control/scanselectorwidget.py +4 -2
  210. tomwer/gui/control/selectorwidgetbase.py +3 -1
  211. tomwer/gui/control/serie/seriecreator.py +11 -12
  212. tomwer/gui/control/singletomoobj.py +4 -4
  213. tomwer/gui/control/test/test_datadiscovery.py +27 -0
  214. tomwer/gui/control/test/test_datalist.py +7 -6
  215. tomwer/gui/control/test/test_datalistener.py +4 -4
  216. tomwer/gui/control/test/test_datavalidator.py +3 -1
  217. tomwer/gui/control/test/test_inputwidget.py +5 -4
  218. tomwer/gui/control/test/test_process_manager.py +3 -3
  219. tomwer/gui/control/test/test_scanselector.py +6 -4
  220. tomwer/gui/control/test/test_scanvalidator.py +6 -5
  221. tomwer/gui/control/test/test_single_tomo_obj.py +5 -3
  222. tomwer/gui/control/test/test_volume_dialog.py +7 -5
  223. tomwer/gui/control/test/test_volumeselector.py +8 -6
  224. tomwer/gui/control/volumeselectorwidget.py +2 -1
  225. tomwer/gui/debugtools/datasetgenerator.py +2 -1
  226. tomwer/gui/debugtools/objectinspector.py +6 -7
  227. tomwer/gui/edit/dkrfpatch.py +11 -10
  228. tomwer/gui/edit/imagekeyeditor.py +12 -12
  229. tomwer/gui/edit/nxtomoeditor.py +8 -7
  230. tomwer/gui/edit/test/test_dkrf_patch.py +10 -9
  231. tomwer/gui/edit/test/test_image_key_editor.py +8 -6
  232. tomwer/gui/edit/test/test_nx_editor.py +7 -5
  233. tomwer/gui/icons.py +3 -2
  234. tomwer/gui/illustrations.py +3 -2
  235. tomwer/gui/imagefromfile.py +3 -1
  236. tomwer/gui/qfolderdialog.py +14 -12
  237. tomwer/gui/reconstruction/axis/CompareImages.py +9 -8
  238. tomwer/gui/reconstruction/axis/__init__.py +1 -1
  239. tomwer/gui/reconstruction/axis/axis.py +9 -7
  240. tomwer/gui/reconstruction/axis/radioaxis.py +30 -32
  241. tomwer/gui/reconstruction/darkref/darkrefcopywidget.py +6 -5
  242. tomwer/gui/reconstruction/darkref/darkrefwidget.py +4 -2
  243. tomwer/gui/reconstruction/lamino/tofu/misc.py +3 -1
  244. tomwer/gui/reconstruction/lamino/tofu/projections.py +16 -8
  245. tomwer/gui/reconstruction/lamino/tofu/tofu.py +6 -3
  246. tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py +5 -2
  247. tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py +8 -5
  248. tomwer/gui/reconstruction/nabu/action.py +1 -0
  249. tomwer/gui/reconstruction/nabu/castvolume.py +6 -4
  250. tomwer/gui/reconstruction/nabu/check.py +3 -2
  251. tomwer/gui/reconstruction/nabu/nabuconfig/base.py +5 -2
  252. tomwer/gui/reconstruction/nabu/nabuconfig/ctf.py +6 -3
  253. tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py +4 -3
  254. tomwer/gui/reconstruction/nabu/nabuconfig/output.py +7 -5
  255. tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +8 -6
  256. tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +7 -7
  257. tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +40 -33
  258. tomwer/gui/reconstruction/nabu/nabuflow.py +7 -4
  259. tomwer/gui/reconstruction/nabu/slices.py +14 -10
  260. tomwer/gui/reconstruction/nabu/slurm.py +1 -0
  261. tomwer/gui/reconstruction/nabu/volume.py +5 -3
  262. tomwer/gui/reconstruction/normalization/intensity.py +14 -13
  263. tomwer/gui/reconstruction/saaxis/corrangeselector.py +36 -35
  264. tomwer/gui/reconstruction/saaxis/dimensionwidget.py +5 -4
  265. tomwer/gui/reconstruction/saaxis/saaxis.py +17 -17
  266. tomwer/gui/reconstruction/saaxis/sliceselector.py +5 -5
  267. tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +33 -36
  268. tomwer/gui/reconstruction/scores/scoreplot.py +19 -18
  269. tomwer/gui/reconstruction/test/test_axis.py +14 -13
  270. tomwer/gui/reconstruction/test/test_lamino.py +3 -2
  271. tomwer/gui/reconstruction/test/test_nabu.py +8 -6
  272. tomwer/gui/reconstruction/test/test_saaxis.py +17 -15
  273. tomwer/gui/reconstruction/test/test_sadeltabeta.py +15 -13
  274. tomwer/gui/samplemoved/__init__.py +8 -7
  275. tomwer/gui/samplemoved/selectiontable.py +4 -2
  276. tomwer/gui/stackplot.py +14 -13
  277. tomwer/gui/stacks.py +11 -9
  278. tomwer/gui/test/test_axis_gui.py +5 -4
  279. tomwer/gui/test/test_qfolder_dialog.py +2 -1
  280. tomwer/gui/utils/__init__.py +5 -5
  281. tomwer/gui/utils/buttons.py +1 -0
  282. tomwer/gui/utils/completer.py +1 -0
  283. tomwer/gui/utils/flow.py +4 -2
  284. tomwer/gui/utils/illustrations.py +1 -0
  285. tomwer/gui/utils/inputwidget.py +11 -17
  286. tomwer/gui/utils/lineselector/lineselector.py +6 -8
  287. tomwer/gui/utils/qt_utils.py +1 -0
  288. tomwer/gui/utils/scandescription.py +2 -0
  289. tomwer/gui/utils/splashscreen.py +1 -1
  290. tomwer/gui/utils/unitsystem.py +3 -1
  291. tomwer/gui/utils/vignettes.py +8 -8
  292. tomwer/gui/utils/waiterthread.py +2 -1
  293. tomwer/gui/visualization/dataviewer.py +20 -28
  294. tomwer/gui/visualization/diffviewer/diffviewer.py +17 -20
  295. tomwer/gui/visualization/diffviewer/shiftwidget.py +3 -1
  296. tomwer/gui/visualization/nxtomometadata.py +1 -0
  297. tomwer/gui/visualization/reconstructionparameters.py +13 -12
  298. tomwer/gui/visualization/scanoverview.py +5 -3
  299. tomwer/gui/visualization/sinogramviewer.py +3 -2
  300. tomwer/gui/visualization/test/test_dataviewer.py +3 -1
  301. tomwer/gui/visualization/test/test_diffviewer.py +8 -6
  302. tomwer/gui/visualization/test/test_nx_tomo_metadata_viewer.py +5 -3
  303. tomwer/gui/visualization/test/test_reconstruction_parameters.py +5 -3
  304. tomwer/gui/visualization/test/test_sinogramviewer.py +10 -9
  305. tomwer/gui/visualization/test/test_stacks.py +8 -6
  306. tomwer/gui/visualization/test/test_volumeviewer.py +10 -8
  307. tomwer/gui/visualization/tomoobjoverview.py +7 -4
  308. tomwer/gui/visualization/volumeoverview.py +5 -3
  309. tomwer/gui/visualization/volumeviewer.py +15 -14
  310. tomwer/io/utils/__init__.py +3 -3
  311. tomwer/io/utils/h5pyutils.py +2 -1
  312. tomwer/io/utils/utils.py +17 -21
  313. tomwer/resources/__init__.py +1 -1
  314. tomwer/synctools/axis.py +3 -1
  315. tomwer/synctools/darkref.py +3 -2
  316. tomwer/synctools/datalistener.py +10 -6
  317. tomwer/synctools/datatransfert.py +2 -3
  318. tomwer/synctools/imageloaderthread.py +5 -3
  319. tomwer/synctools/rsyncmanager.py +3 -2
  320. tomwer/synctools/saaxis.py +3 -1
  321. tomwer/synctools/sadeltabeta.py +3 -1
  322. tomwer/synctools/stacks/control/datalistener.py +9 -12
  323. tomwer/synctools/stacks/edit/darkflatpatch.py +13 -12
  324. tomwer/synctools/stacks/edit/imagekeyeditor.py +12 -11
  325. tomwer/synctools/stacks/processingstack.py +3 -2
  326. tomwer/synctools/stacks/reconstruction/axis.py +12 -12
  327. tomwer/synctools/stacks/reconstruction/castvolume.py +8 -5
  328. tomwer/synctools/stacks/reconstruction/dkrefcopy.py +10 -9
  329. tomwer/synctools/stacks/reconstruction/lamino.py +9 -7
  330. tomwer/synctools/stacks/reconstruction/nabu.py +18 -17
  331. tomwer/synctools/stacks/reconstruction/normalization.py +12 -16
  332. tomwer/synctools/stacks/reconstruction/saaxis.py +13 -11
  333. tomwer/synctools/stacks/reconstruction/sadeltabeta.py +16 -14
  334. tomwer/synctools/test/test_darkRefs.py +4 -3
  335. tomwer/synctools/test/test_foldertransfer.py +14 -12
  336. tomwer/synctools/test/test_scanstages.py +8 -7
  337. tomwer/synctools/utils/scanstages.py +7 -5
  338. tomwer/tests/conftest.py +4 -4
  339. tomwer/tests/test_scripts.py +3 -2
  340. tomwer/tests/utils/__init__.py +5 -4
  341. tomwer/tests/utils/utilstest.py +5 -6
  342. tomwer/third_party/nabu/preproc/phase.py +7 -5
  343. tomwer/third_party/nabu/utils.py +3 -2
  344. tomwer/utils.py +12 -12
  345. tomwer/version.py +4 -4
  346. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/METADATA +2 -2
  347. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/RECORD +353 -345
  348. /tomwer-1.1.1-py3.8-nspkg.pth → /tomwer-1.2.0a0-py3.8-nspkg.pth +0 -0
  349. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/LICENSE +0 -0
  350. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/WHEEL +0 -0
  351. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/entry_points.txt +0 -0
  352. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/namespace_packages.txt +0 -0
  353. {tomwer-1.1.1.dist-info → tomwer-1.2.0a0.dist-info}/top_level.txt +0 -0
@@ -34,21 +34,23 @@ __date__ = "23/03/2022"
34
34
  import functools
35
35
  import logging
36
36
  import os
37
+
37
38
  import numpy
38
39
  from processview.core.dataset import DatasetIdentifier
40
+ from silx.gui import icons as silx_icons
41
+ from silx.gui import qt
42
+ from silx.io.url import DataUrl
43
+ from silx.utils.enum import Enum as _Enum
44
+
39
45
  from tomwer.core.scan.scanbase import TomwerScanBase
40
46
  from tomwer.core.scan.scanfactory import ScanFactory
41
47
  from tomwer.core.utils.image import shift_img
42
- from tomwer.gui.settings import Y_AXIS_DOWNWARD
43
- from tomwer.gui.utils.completer import UrlCompleterDialog
44
- from tomwer.io.utils import get_slice_data
45
48
  from tomwer.gui.qfolderdialog import QDataDialog
46
49
  from tomwer.gui.reconstruction.axis.CompareImages import CompareImages as _CompareImages
50
+ from tomwer.gui.settings import Y_AXIS_DOWNWARD
51
+ from tomwer.gui.utils.completer import UrlCompleterDialog
47
52
  from tomwer.gui.visualization.diffviewer.shiftwidget import TwoFramesShiftTab
48
- from silx.gui import qt
49
- from silx.io.url import DataUrl
50
- from silx.utils.enum import Enum as _Enum
51
- from silx.gui import icons as silx_icons
53
+ from tomwer.io.utils import get_slice_data
52
54
 
53
55
  _logger = logging.getLogger(__name__)
54
56
 
@@ -60,14 +62,14 @@ class CompareImages(_CompareImages):
60
62
  self.getPlot().setPanWithArrowKeys(False)
61
63
  self._firstVisible = True
62
64
 
63
- def setVisible(self, bool):
65
+ def setVisible(self, visible):
64
66
  if self._firstVisible:
65
67
  # hack to enforce matplotlib to replot the widget.
66
68
  # because it looks like it is missing to find the correct viewport
67
69
  # when not visible
68
70
  self.getPlot().resetZoom()
69
71
  self._firstVisible = False
70
- super().setVisible(bool)
72
+ super().setVisible(visible)
71
73
 
72
74
 
73
75
  class _FrameSelector(qt.QWidget):
@@ -166,7 +168,7 @@ class _FrameSelector(qt.QWidget):
166
168
  elif type_selected == self.FrameType.RECON_SLICES:
167
169
  urls = self._scan.get_reconstructions_urls()
168
170
  else:
169
- raise ValueError("Type {} not managed".format(type_selected))
171
+ raise ValueError(f"Type {type_selected} not managed")
170
172
  urls = sorted(urls, key=lambda url: url.path())
171
173
  for url in urls:
172
174
  if url.data_slice() is not None:
@@ -269,7 +271,7 @@ class _FramesSelector(qt.QWidget):
269
271
 
270
272
  def addScan(self, scan):
271
273
  if not isinstance(scan, TomwerScanBase):
272
- raise TypeError("scan should be an instance of {}".format(TomwerScanBase))
274
+ raise TypeError(f"scan should be an instance of {TomwerScanBase}")
273
275
  self._leftScanCB.addScan(scan.get_identifier())
274
276
  self._rightScanCB.addScan(scan.get_identifier())
275
277
 
@@ -319,9 +321,7 @@ class _FramesSelector(qt.QWidget):
319
321
  scans = ScanFactory.create_scan_objects(scan_path=folder)
320
322
  except Exception as e:
321
323
  _logger.error(
322
- "cannot create scan instances from {}. Error is {}".format(
323
- folder, e
324
- )
324
+ f"cannot create scan instances from {folder}. Error is {e}"
325
325
  )
326
326
  else:
327
327
  for scan in scans:
@@ -445,7 +445,7 @@ class DiffFrameViewer(qt.QMainWindow):
445
445
  if data.ndim == 3 and data.shape[0] == 1:
446
446
  data = data.reshape((data.shape[1], data.shape[2]))
447
447
  else:
448
- _logger.error("Cannot display {}. Should be 2D".format(url.path()))
448
+ _logger.error(f"Cannot display {url.path()}. Should be 2D")
449
449
  return
450
450
 
451
451
  if self.isFrameALRFlip():
@@ -478,7 +478,7 @@ class DiffFrameViewer(qt.QMainWindow):
478
478
  if data.ndim == 3 and data.shape[0] == 1:
479
479
  data = data.reshape((data.shape[1], data.shape[2]))
480
480
  else:
481
- _logger.error("Cannot display {}. Should be 2D".format(url.path()))
481
+ _logger.error(f"Cannot display {url.path()}. Should be 2D")
482
482
  return
483
483
  if self.isFrameBLRFlip():
484
484
  data = numpy.fliplr(data)
@@ -548,10 +548,7 @@ class _ScanComboBox(qt.QWidget):
548
548
  try:
549
549
  scan = DatasetIdentifier.recreate_dataset(dataset_id)
550
550
  except Exception as e:
551
- _logger.error(
552
- "Fail to recreate dataset from {}. Reason is {}."
553
- "".format(str(dataset_id), e)
554
- )
551
+ _logger.error(f"Fail to recreate dataset from {dataset_id}. Reason is {e}.")
555
552
  return None
556
553
  else:
557
554
  return scan
@@ -31,9 +31,11 @@ __license__ = "MIT"
31
31
  __date__ = "07/12/2021"
32
32
 
33
33
 
34
+ import sys
35
+
34
36
  from silx.gui import qt
35
37
  from silx.utils.enum import Enum as _Enum
36
- import sys
38
+
37
39
  from tomwer.utils import docstring
38
40
 
39
41
 
@@ -1,4 +1,5 @@
1
1
  from silx.gui import qt
2
+
2
3
  from tomwer.gui.edit.nxtomoeditor import NXtomoEditor as _NXtomoEditor
3
4
 
4
5
 
@@ -28,12 +28,14 @@ __license__ = "MIT"
28
28
  __date__ = "31/03/2021"
29
29
 
30
30
 
31
+ import os
32
+
31
33
  from silx.gui import qt
32
34
  from silx.io.url import DataUrl
33
35
  from silx.io.utils import h5py_read_dataset
34
- from tomwer.core.utils.char import BETA_CHAR, DELTA_CHAR
35
36
  from tomoscan.io import HDF5File
36
- import os
37
+
38
+ from tomwer.core.utils.char import BETA_CHAR, DELTA_CHAR
37
39
 
38
40
 
39
41
  class ReconstructionParameters(qt.QWidget):
@@ -99,8 +101,7 @@ class ReconstructionParameters(qt.QWidget):
99
101
  url = DataUrl(path=url)
100
102
  else:
101
103
  raise TypeError(
102
- "url should be a DataUrl or a str representing"
103
- "an url and not {}".format(type(url))
104
+ f"url should be a DataUrl or a str representing an url and not {type(url)}"
104
105
  )
105
106
  for func in (
106
107
  self._setMethod,
@@ -120,10 +121,10 @@ class ReconstructionParameters(qt.QWidget):
120
121
  func(url)
121
122
 
122
123
  @staticmethod
123
- def _decode_nabu_str(input):
124
- if hasattr(input, "decode"):
125
- input = input.decode("UTF-8")
126
- return input
124
+ def _decode_nabu_str(input_str):
125
+ if hasattr(input_str, "decode"):
126
+ input_str = input_str.decode("UTF-8")
127
+ return input_str
127
128
 
128
129
  def _setMethod(self, url):
129
130
  def get_method_value():
@@ -186,7 +187,7 @@ class ReconstructionParameters(qt.QWidget):
186
187
 
187
188
  value = self._decode_nabu_str(get_distance_value())
188
189
  if value is not None:
189
- value = "{:.2}".format(float(value))
190
+ value = f"{value:.2}"
190
191
  self._distanceQLE.setText(value if value is not None else "")
191
192
 
192
193
  def _setPixelSize(self, url):
@@ -206,7 +207,7 @@ class ReconstructionParameters(qt.QWidget):
206
207
 
207
208
  value = self._decode_nabu_str(get_pixel_size_value())
208
209
  if value is not None:
209
- value = "{:.8}".format(float(value))
210
+ value = f"{float(value):.8}"
210
211
  self._pixelSizeQLE.setText(value if value is not None else "")
211
212
 
212
213
  def _setCor(self, url):
@@ -222,7 +223,7 @@ class ReconstructionParameters(qt.QWidget):
222
223
 
223
224
  value = self._decode_nabu_str(get_cor_value())
224
225
  if value not in (None, "None", "none"):
225
- value = "{:.4f}".format(float(value))
226
+ value = f"{float(value):.4f}"
226
227
  self._corQLE.setText(value if value is not None else "")
227
228
 
228
229
  def _setPaddingType(self, url):
@@ -369,4 +370,4 @@ class ReconstructionParameters(qt.QWidget):
369
370
  if nabu_version is not None:
370
371
  software = "nabu"
371
372
  software_version = nabu_version
372
- self._softwareVersionQLE.setText("{} ({})".format(software, software_version))
373
+ self._softwareVersionQLE.setText(f"{software} ({software_version})")
@@ -28,11 +28,13 @@ __license__ = "MIT"
28
28
  __date__ = "31/03/2021"
29
29
 
30
30
 
31
- from silx.gui import qt
32
- from tomwer.core.scan.scanbase import TomwerScanBase
33
- import weakref
34
31
  import logging
32
+ import weakref
33
+
34
+ from silx.gui import qt
35
+
35
36
  from tomwer.core.scan.edfscan import EDFTomoScan
37
+ from tomwer.core.scan.scanbase import TomwerScanBase
36
38
 
37
39
  _logger = logging.getLogger(__name__)
38
40
 
@@ -31,11 +31,12 @@ __license__ = "MIT"
31
31
  __date__ = "26/03/2020"
32
32
 
33
33
 
34
- from silx.gui import qt
35
- from silx.gui.plot.ImageStack import _PlotWithWaitingLabel
36
34
  import logging
37
35
  import weakref
38
36
 
37
+ from silx.gui import qt
38
+ from silx.gui.plot.ImageStack import _PlotWithWaitingLabel
39
+
39
40
  from tomwer.gui.settings import Y_AXIS_DOWNWARD
40
41
 
41
42
  _logger = logging.getLogger(__name__)
@@ -29,8 +29,10 @@ __date__ = "30/07/2020"
29
29
 
30
30
 
31
31
  import unittest
32
- from silx.gui.utils.testutils import TestCaseQt
32
+
33
33
  from silx.gui import qt
34
+ from silx.gui.utils.testutils import TestCaseQt
35
+
34
36
  from tomwer.gui.visualization.dataviewer import DataViewer, ImageStack
35
37
 
36
38
 
@@ -28,15 +28,17 @@ __license__ = "MIT"
28
28
  __date__ = "21/06/2021"
29
29
 
30
30
 
31
+ import logging
32
+ import os
33
+ import shutil
34
+ import tempfile
35
+ import unittest
36
+
31
37
  from silx.gui import qt
32
- from tomwer.core.utils.scanutils import MockHDF5
33
38
  from silx.gui.utils.testutils import TestCaseQt
39
+
40
+ from tomwer.core.utils.scanutils import MockHDF5
34
41
  from tomwer.gui.visualization.diffviewer import DiffFrameViewer
35
- import unittest
36
- import logging
37
- import tempfile
38
- import shutil
39
- import os
40
42
 
41
43
  logging.disable(logging.INFO)
42
44
 
@@ -1,12 +1,14 @@
1
1
  import os
2
- import pytest
2
+
3
3
  import numpy
4
+ import pytest
5
+ from nxtomomill.nexus.nxtomo import NXtomo
6
+ from silx.gui import qt
4
7
  from tomoscan.esrf.scan.hdf5scan import ImageKey
8
+
5
9
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
6
10
  from tomwer.gui.visualization.nxtomometadata import NXtomoMetadataViewer
7
- from nxtomomill.nexus.nxtomo import NXtomo
8
11
  from tomwer.tests.conftest import qtapp # noqa F401
9
- from silx.gui import qt
10
12
 
11
13
 
12
14
  def test_nx_editor(
@@ -28,12 +28,14 @@ __license__ = "MIT"
28
28
  __date__ = "15/12/2021"
29
29
 
30
30
 
31
+ import os
32
+ import shutil
31
33
  import tempfile
32
- from silx.gui.utils.testutils import TestCaseQt
34
+
33
35
  from silx.gui import qt
36
+ from silx.gui.utils.testutils import TestCaseQt
34
37
  from silx.io.url import DataUrl
35
- import shutil
36
- import os
38
+
37
39
  from tomwer.core.utils import scanutils
38
40
  from tomwer.gui.visualization.reconstructionparameters import ReconstructionParameters
39
41
 
@@ -28,17 +28,18 @@ __license__ = "MIT"
28
28
  __date__ = "22/01/2017"
29
29
 
30
30
 
31
- from silx.gui.utils.testutils import SignalListener
32
- from tomwer.gui.visualization import sinogramviewer
33
- from silx.gui import qt
34
- from tomwer.core.utils.scanutils import MockHDF5
35
- from silx.gui.utils.testutils import TestCaseQt
36
- import unittest
37
31
  import logging
38
- import time
39
- import tempfile
40
- import shutil
41
32
  import os
33
+ import shutil
34
+ import tempfile
35
+ import time
36
+ import unittest
37
+
38
+ from silx.gui import qt
39
+ from silx.gui.utils.testutils import SignalListener, TestCaseQt
40
+
41
+ from tomwer.core.utils.scanutils import MockHDF5
42
+ from tomwer.gui.visualization import sinogramviewer
42
43
 
43
44
  logging.disable(logging.INFO)
44
45
 
@@ -26,20 +26,22 @@ __authors__ = ["H. Payno"]
26
26
  __license__ = "MIT"
27
27
  __date__ = "16/06/2021"
28
28
 
29
+ import logging
29
30
  import os
30
31
  import shutil
31
32
  import tempfile
33
+ import time
34
+ import weakref
35
+
32
36
  import numpy
33
- from tomwer.core.utils.scanutils import MockHDF5
34
- from tomwer.gui.stacks import SliceStack, RadioStack
37
+ import pytest
35
38
  from silx.gui import qt
36
39
  from silx.gui.utils.testutils import TestCaseQt
37
- import logging
38
- import time
39
- import pytest
40
40
  from tomoscan.esrf.volume.edfvolume import EDFVolume
41
+
42
+ from tomwer.core.utils.scanutils import MockHDF5
43
+ from tomwer.gui.stacks import RadioStack, SliceStack
41
44
  from tomwer.tests.utils import skip_gui_test
42
- import weakref
43
45
 
44
46
  logging.disable(logging.INFO)
45
47
 
@@ -28,17 +28,19 @@ __license__ = "MIT"
28
28
  __date__ = "21/06/2021"
29
29
 
30
30
 
31
+ import logging
32
+ import os
33
+ import shutil
34
+ import tempfile
35
+ import unittest
36
+
37
+ import numpy
31
38
  from silx.gui import qt
32
- from tomwer.core.utils.scanutils import MockHDF5
33
39
  from silx.gui.utils.testutils import TestCaseQt
34
- from tomwer.gui.visualization.volumeviewer import VolumeViewer
35
40
  from tomoscan.esrf.volume.hdf5volume import HDF5Volume
36
- import numpy
37
- import unittest
38
- import logging
39
- import tempfile
40
- import shutil
41
- import os
41
+
42
+ from tomwer.core.utils.scanutils import MockHDF5
43
+ from tomwer.gui.visualization.volumeviewer import VolumeViewer
42
44
 
43
45
  logging.disable(logging.INFO)
44
46
 
@@ -1,10 +1,13 @@
1
- from .volumeoverview import VolumeOverviewWidget
2
- from .scanoverview import ScanOverviewWidget
1
+ from typing import Optional
2
+
3
3
  from silx.gui import qt
4
+
5
+ from tomwer.core.scan.scanbase import TomwerScanBase
4
6
  from tomwer.core.tomwer_object import TomwerObject
5
7
  from tomwer.core.volume.volumebase import TomwerVolumeBase
6
- from tomwer.core.scan.scanbase import TomwerScanBase
7
- from typing import Optional
8
+
9
+ from .scanoverview import ScanOverviewWidget
10
+ from .volumeoverview import VolumeOverviewWidget
8
11
 
9
12
 
10
13
  class TomoObjOverview(qt.QWidget):
@@ -1,8 +1,10 @@
1
+ import logging
2
+ from typing import Optional
3
+
1
4
  from silx.gui import qt
2
- from tomwer.core.volume.volumebase import TomwerVolumeBase
3
5
  from tomoscan.identifier import VolumeIdentifier
4
- from typing import Optional
5
- import logging
6
+
7
+ from tomwer.core.volume.volumebase import TomwerVolumeBase
6
8
 
7
9
  _logger = logging.getLogger(__name__)
8
10
 
@@ -28,25 +28,26 @@ __license__ = "MIT"
28
28
  __date__ = "05/08/2020"
29
29
 
30
30
 
31
+ import logging
32
+ import os
33
+ import weakref
34
+
35
+ import numpy
36
+ import numpy.lib.npyio
37
+ import silx
31
38
  from silx.gui import qt
32
- from tomoscan.volumebase import VolumeBase
33
- from tomoscan.identifier import VolumeIdentifier
34
- from tomoscan.esrf.volume.hdf5volume import HDF5Volume
35
- from tomoscan.factory import Factory
39
+ from silx.gui.colors import Colormap
36
40
  from silx.gui.data.DataViewerFrame import DataViewerFrame
41
+ from silx.gui.data.DataViews import IMAGE_MODE, DataViewHooks
37
42
  from silx.gui.dialog.ColormapDialog import ColormapDialog
38
- from silx.gui.data.DataViews import DataViewHooks
39
- from silx.gui.data.DataViews import IMAGE_MODE
40
- import os
43
+ from tomoscan.esrf.volume.hdf5volume import HDF5Volume
44
+ from tomoscan.factory import Factory
45
+ from tomoscan.identifier import VolumeIdentifier
46
+ from tomoscan.volumebase import VolumeBase
47
+
41
48
  from tomwer.core.scan.scanbase import TomwerScanBase
42
- import logging
43
49
  from tomwer.core.utils.ftseriesutils import get_vol_file_shape
44
- import weakref
45
50
  from tomwer.gui.visualization.reconstructionparameters import ReconstructionParameters
46
- import silx
47
- from silx.gui.colors import Colormap
48
- import numpy
49
- import numpy.lib.npyio
50
51
 
51
52
  _logger = logging.getLogger(__name__)
52
53
 
@@ -292,7 +293,7 @@ class VolumeViewer(qt.QMainWindow):
292
293
  return
293
294
 
294
295
  elif len(scan.latest_vol_reconstructions) == 0:
295
- _logger.warning("No reconstructed volume for {}".format(scan))
296
+ _logger.warning(f"No reconstructed volume for {scan}")
296
297
  self.clear()
297
298
  self._infoWidget.setScan(scan)
298
299
  else:
@@ -1,5 +1,5 @@
1
- from .utils import get_slice_data # noqa F401
2
- from .utils import get_default_directory # noqa F401
3
1
  from .utils import format_stderr_stdout # noqa F401
4
- from .utils import get_linked_files_with_vds # noqa F401
2
+ from .utils import get_default_directory # noqa F401
5
3
  from .utils import get_linked_files_with_entry # noqa F401
4
+ from .utils import get_linked_files_with_vds # noqa F401
5
+ from .utils import get_slice_data # noqa F401
@@ -32,9 +32,10 @@ __date__ = "22/04/2021"
32
32
 
33
33
 
34
34
  import contextlib
35
+
36
+ import h5py
35
37
  from silx.io.url import DataUrl
36
38
  from tomoscan.io import HDF5File
37
- import h5py
38
39
 
39
40
 
40
41
  class _BaseReader(contextlib.AbstractContextManager):
tomwer/io/utils/utils.py CHANGED
@@ -31,15 +31,17 @@ __license__ = "MIT"
31
31
  __date__ = "07/09/2020"
32
32
 
33
33
 
34
- import numpy.lib.npyio
34
+ import logging
35
35
  import os
36
+
37
+ import h5py
38
+ import numpy.lib.npyio
39
+ from PIL import Image
40
+ from tomoscan.esrf import has_glymur
36
41
  from tomoscan.esrf.scan.utils import get_data as tomoscan_get_data
37
42
  from tomoscan.io import HDF5File
43
+
38
44
  from tomwer.core.utils import ftseriesutils
39
- from PIL import Image
40
- import logging
41
- import h5py
42
- from tomoscan.esrf import has_glymur
43
45
 
44
46
  try:
45
47
  import tifffile # noqa #F401 needed for later possible lazy loading
@@ -106,47 +108,41 @@ def _loadVol(url):
106
108
 
107
109
  if not os.path.exists(rawFile):
108
110
  data = None
109
- mess = "Can't find raw data file %s associated with %s" % (rawFile, infoFile)
111
+ mess = f"Can't find raw data file {rawFile} associated with {infoFile}"
110
112
  _logger.warning(mess)
111
113
  elif not os.path.exists(infoFile):
112
- mess = "Can't find info file %s associated with %s" % (infoFile, rawFile)
114
+ mess = f"Can't find info file {infoFile} associated with {rawFile}"
113
115
  _logger.warning(mess)
114
116
  data = None
115
117
  else:
116
118
  shape = ftseriesutils.get_vol_file_shape(infoFile)
117
119
  if None in shape:
118
- _logger.warning("Fail to retrieve data shape for %s." % infoFile)
120
+ _logger.warning(f"Fail to retrieve data shape for {infoFile}.")
119
121
  data = None
120
122
  else:
121
123
  try:
122
124
  numpy.zeros(shape)
123
125
  except MemoryError:
124
126
  data = None
125
- _logger.warning(
126
- "Raw file %s is to large for being " "readed %s" % rawFile
127
- )
127
+ _logger.warning(f"Raw file {rawFile} is to large for being readed")
128
128
  else:
129
129
  data = numpy.fromfile(rawFile, dtype=numpy.float32, count=-1, sep="")
130
130
  try:
131
131
  data = data.reshape(shape)
132
132
  except ValueError:
133
133
  _logger.warning(
134
- "unable to fix shape for raw file %s. "
135
- "Look for information in %s"
136
- "" % (rawFile, infoFile)
134
+ f"unable to fix shape for raw file {rawFile}. Look for information in {infoFile}"
137
135
  )
138
136
  try:
139
137
  sqr = int(numpy.sqrt(len(data)))
140
138
  shape = (1, sqr, sqr)
141
139
  data = data.reshape(shape)
142
140
  except ValueError:
143
- _logger.info("deduction of shape size for %s failed" % rawFile)
141
+ _logger.info(f"deduction of shape size for {rawFile} failed")
144
142
  data = None
145
143
  else:
146
144
  _logger.warning(
147
- "try deducing shape size for %s "
148
- "might be an incorrect "
149
- "interpretation" % rawFile
145
+ f"try deducing shape size for {rawFile} might be an incorrect interpretation"
150
146
  )
151
147
  if url.data_slice() is None:
152
148
  return data
@@ -179,9 +175,9 @@ def format_stderr_stdout(stdout, stderr, config=None):
179
175
  else:
180
176
  assert isinstance(config, dict)
181
177
  return (
182
- "############# nabu ############## \nconfig: {}\n"
183
- "------------- stderr -------------\n{}\n"
184
- "------------- stdout -------------\n{}\n".format(config, s_err, s_out)
178
+ f"############# nabu ############## \nconfig: {config}\n"
179
+ f"------------- stderr -------------\n{s_err}\n"
180
+ f"------------- stdout -------------\n{s_out}\n"
185
181
  )
186
182
 
187
183
 
@@ -24,8 +24,8 @@
24
24
  # ###########################################################################*/
25
25
 
26
26
 
27
- import os
28
27
  import importlib
28
+ import os
29
29
  import sys
30
30
 
31
31
  # pkg_resources is useful when this package is stored in a zip
tomwer/synctools/axis.py CHANGED
@@ -27,9 +27,11 @@ __license__ = "MIT"
27
27
  __date__ = "03/05/2019"
28
28
 
29
29
 
30
+ import logging
31
+
30
32
  from silx.gui import qt
33
+
31
34
  from tomwer.core.process.reconstruction.axis.params import AxisRP
32
- import logging
33
35
 
34
36
  logger = logging.getLogger(__name__)
35
37
 
@@ -27,10 +27,11 @@ __license__ = "MIT"
27
27
  __date__ = "03/05/2019"
28
28
 
29
29
 
30
+ import logging
31
+
30
32
  from silx.gui import qt
31
- from tomwer.core.process.reconstruction.darkref import params as dkrf
32
33
 
33
- import logging
34
+ from tomwer.core.process.reconstruction.darkref import params as dkrf
34
35
 
35
36
  logger = logging.getLogger(__name__)
36
37
 
@@ -28,16 +28,20 @@ __license__ = "MIT"
28
28
  __date__ = "16/03/2020"
29
29
 
30
30
 
31
- from tomwer.core.process.control.datalistener.rpcserver import _BaseDataListenerThread
32
- from tomwer.core.process.control.datalistener.rpcserver import BlissAcquisition
33
- from tomwer.core.process.control.datalistener.rpcserver import TangoAcquisitionStatus
31
+ import logging
32
+ import time
34
33
  from collections import namedtuple
35
34
  from datetime import datetime
35
+ from multiprocessing import Lock, Manager
36
+
36
37
  from silx.gui import qt
38
+
39
+ from tomwer.core.process.control.datalistener.rpcserver import (
40
+ BlissAcquisition,
41
+ TangoAcquisitionStatus,
42
+ _BaseDataListenerThread,
43
+ )
37
44
  from tomwer.utils import docstring
38
- import time
39
- from multiprocessing import Manager, Lock
40
- import logging
41
45
 
42
46
  _logger = logging.getLogger(__name__)
43
47
 
@@ -29,9 +29,8 @@ __date__ = "28/01/2019"
29
29
 
30
30
 
31
31
  from silx.gui import qt
32
- from tomwer.core.process.control.scantransfer import (
33
- ScanTransfer as FolderTransfertP,
34
- )
32
+
33
+ from tomwer.core.process.control.scantransfer import ScanTransfer as FolderTransfertP
35
34
  from tomwer.core.scan.scanbase import TomwerScanBase
36
35
 
37
36