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
@@ -30,33 +30,35 @@ __authors__ = ["C. Nemoz", "H. Payno"]
30
30
  __license__ = "MIT"
31
31
  __date__ = "25/02/2019"
32
32
 
33
- from bisect import bisect_left
34
- from silx.gui import qt
35
- import logging
36
- from tomwer.core.utils import image
37
- import numpy
38
33
  import enum
34
+ import logging
39
35
  import os
40
- from tomwer.core.scan.scanbase import TomwerScanBase
41
- from tomwer.core.scan.scanfactory import ScanFactory
42
- from tomwer.gui.utils.qt_utils import block_signals
43
- from tomwer.synctools.axis import QAxisRP
36
+ from bisect import bisect_left
37
+ from typing import Optional, Union
38
+
39
+ import numpy
40
+ import scipy.signal
41
+ from silx.gui import qt
42
+ from silx.io.url import DataUrl
43
+ from silx.utils.deprecation import deprecated
44
+
44
45
  from tomwer.core.process.reconstruction.axis import mode as axis_mode
45
46
  from tomwer.core.process.reconstruction.axis.anglemode import CorAngleMode
46
47
  from tomwer.core.process.reconstruction.axis.params import (
47
- AxisCalculationInput,
48
- DEFAULT_CMP_THETA,
49
48
  DEFAULT_CMP_N_SUBSAMPLING_Y,
50
49
  DEFAULT_CMP_OVERSAMPLING,
51
50
  DEFAULT_CMP_TAKE_LOG,
51
+ DEFAULT_CMP_THETA,
52
+ AxisCalculationInput,
52
53
  )
53
- from silx.io.url import DataUrl
54
- import scipy.signal
55
- from .CompareImages import CompareImages
54
+ from tomwer.core.scan.scanbase import TomwerScanBase
55
+ from tomwer.core.scan.scanfactory import ScanFactory
56
+ from tomwer.core.utils import image
56
57
  from tomwer.gui.utils.buttons import PadlockButton
57
- from silx.utils.deprecation import deprecated
58
- from typing import Union
59
- from typing import Optional
58
+ from tomwer.gui.utils.qt_utils import block_signals
59
+ from tomwer.synctools.axis import QAxisRP
60
+
61
+ from .CompareImages import CompareImages
60
62
 
61
63
  _logger = logging.getLogger(__name__)
62
64
 
@@ -283,8 +285,7 @@ class RadioAxisWindow(qt.QMainWindow):
283
285
  raise ValueError("Fail to discover a valid scan in %s" % scan)
284
286
  elif not isinstance(_scan, TomwerScanBase):
285
287
  raise ValueError(
286
- "type of %s (%s) is invalid, scan should be a "
287
- "file/dir path or an instance of ScanBase" % (scan, type(scan))
288
+ f"type of {scan} ({type(scan)}) is invalid, scan should be a file/dir path or an instance of ScanBase"
288
289
  )
289
290
  assert isinstance(_scan, TomwerScanBase)
290
291
 
@@ -376,7 +377,7 @@ class RadioAxisWindow(qt.QMainWindow):
376
377
  if _imgA.shape != _imgB.shape:
377
378
  _logger.error(
378
379
  "The two provided images have incoherent shapes "
379
- "(%s vs %s)" % (_imgA.shape, _imgB.shape)
380
+ f"({_imgA.shape} vs {_imgB.shape})"
380
381
  )
381
382
  elif _imgA.ndim != 2:
382
383
  _logger.error("Image shape are not 2 dimensional")
@@ -1038,7 +1039,7 @@ class _ROIDefinition(qt.QWidget):
1038
1039
  self._xOriginSB.setValue(x_origin)
1039
1040
  self._yOriginSB.setValue(y_origin)
1040
1041
  except Exception:
1041
- _logger.warning("unable to determine origin for {}".format(str(scan)))
1042
+ _logger.warning(f"unable to determine origin for {scan}")
1042
1043
 
1043
1044
 
1044
1045
  @enum.unique
@@ -1547,8 +1548,7 @@ class AxisTabWidget(qt.QTabWidget):
1547
1548
  current_mode = self.getMode()
1548
1549
  if current_mode not in axis_mode._VALID_INPUTS:
1549
1550
  raise ValueError(
1550
- "valid input should have been defined for the "
1551
- "mode {}".format(current_mode.value)
1551
+ f"valid input should have been defined for the mode {current_mode.value}"
1552
1552
  )
1553
1553
  else:
1554
1554
  valid_inputs = axis_mode._VALID_INPUTS[current_mode]
@@ -2017,16 +2017,16 @@ class _SliceSelector(qt.QWidget):
2017
2017
  else:
2018
2018
  return self._otherSB.value()
2019
2019
 
2020
- def setSlice(self, slice):
2021
- if slice is None:
2020
+ def setSlice(self, slice_):
2021
+ if slice_ is None:
2022
2022
  return
2023
- if slice == "middle":
2023
+ if slice_ == "middle":
2024
2024
  idx = self._modeCB.findText("middle")
2025
2025
  self._modeCB.setCurrentIndex(idx)
2026
2026
  else:
2027
2027
  idx = self._modeCB.findText("other")
2028
2028
  self._modeCB.setCurrentIndex(idx)
2029
- self._otherSB.setValue(slice)
2029
+ self._otherSB.setValue(slice_)
2030
2030
  self.sigChanged.emit()
2031
2031
 
2032
2032
  def getMode(self):
@@ -2236,15 +2236,13 @@ class _InputWidget(qt.QWidget):
2236
2236
  axis_mode._InputType.from_value(mode)
2237
2237
  except Exception:
2238
2238
  raise ValueError(
2239
- "mode {} should be an instance of {}".format(
2240
- mode, axis_mode._InputType
2241
- )
2239
+ f"mode {mode} should be an instance of {axis_mode._InputType}"
2242
2240
  )
2243
2241
  if len(modes) == 2:
2244
2242
  self._sinogramGB.setEnabled(True)
2245
2243
  self._radioGB.setEnabled(True)
2246
2244
  elif len(modes) > 2:
2247
- raise ValueError("invalid input {}".format(modes))
2245
+ raise ValueError(f"invalid input {modes}")
2248
2246
  elif len(modes) < 0:
2249
2247
  raise ValueError("modes is empty")
2250
2248
  else:
@@ -2537,7 +2535,7 @@ class _ManualFramesSelection(qt.QWidget):
2537
2535
 
2538
2536
  @staticmethod
2539
2537
  def _angleToStr(angle: float) -> str:
2540
- return "{:0.3f}".format(float(angle))
2538
+ return f"{float(angle):0.3f}"
2541
2539
 
2542
2540
  def setScan(self, scan: Union[TomwerScanBase, None]) -> None:
2543
2541
  self._anglesAvailable.clear()
@@ -31,14 +31,15 @@ __date__ = "13/08/2021"
31
31
  import logging
32
32
  import shutil
33
33
  from typing import Union
34
+
34
35
  from silx.gui import qt
36
+ from silx.gui.dialog.DataFileDialog import DataFileDialog
37
+ from silx.io.url import DataUrl
38
+
39
+ from tomwer.core import settings, utils
35
40
  from tomwer.core.process.reconstruction.darkref.darkrefscopy import DarkRefsCopy
36
- from tomwer.io.utils import get_default_directory
37
- from tomwer.core import settings
38
- from tomwer.core import utils
39
41
  from tomwer.gui.reconstruction.darkref.darkrefwidget import DarkRefWidget
40
- from silx.io.url import DataUrl
41
- from silx.gui.dialog.DataFileDialog import DataFileDialog
42
+ from tomwer.io.utils import get_default_directory
42
43
 
43
44
  _logger = logging.getLogger(__name__)
44
45
 
@@ -28,10 +28,12 @@ __license__ = "MIT"
28
28
  __date__ = "10/01/2018"
29
29
 
30
30
 
31
- from silx.gui import qt
32
31
  import logging
33
- from tomwer.core.process.reconstruction.darkref.darkrefs import DarkRefs
32
+
33
+ from silx.gui import qt
34
+
34
35
  from tomwer.core.process.reconstruction.darkref import params as dkrf
36
+ from tomwer.core.process.reconstruction.darkref.darkrefs import DarkRefs
35
37
  from tomwer.core.scan.scanbase import TomwerScanBase
36
38
  from tomwer.gui.utils.sandboxes import RegularExpressionSandBox
37
39
  from tomwer.synctools.darkref import QDKRFRP
@@ -28,10 +28,12 @@ __license__ = "MIT"
28
28
  __date__ = "01/06/2018"
29
29
 
30
30
 
31
+ import logging
32
+
31
33
  from silx.gui import qt
34
+
32
35
  from tomwer.gui import icons
33
36
  from tomwer.gui.utils.buttons import PadlockButton
34
- import logging
35
37
 
36
38
  _logger = logging.getLogger()
37
39
 
@@ -28,19 +28,27 @@ __license__ = "MIT"
28
28
  __date__ = "01/06/2018"
29
29
 
30
30
 
31
+ import logging
31
32
  import os
33
+
32
34
  from silx.gui import qt
33
- import logging
34
- from tomwer.core.process.reconstruction.lamino.tofu import getDark, getFlats, FFCWhen
35
- from tomwer.core.utils import getDARK_N, getDim1Dim2
36
- from tomwer.core.utils import getParametersFromParOrInfo
37
- from tomwer.core.utils import getTomo_N, getPixelSize, getClosestEnergy
35
+
36
+ from tomwer.core.process.reconstruction.lamino.tofu import FFCWhen, getDark, getFlats
37
+ from tomwer.core.utils import (
38
+ getClosestEnergy,
39
+ getDARK_N,
40
+ getDim1Dim2,
41
+ getParametersFromParOrInfo,
42
+ getPixelSize,
43
+ getTomo_N,
44
+ )
38
45
  from tomwer.core.utils.char import PSI_CHAR, THETA_CHAR
39
46
  from tomwer.gui import icons
40
- from tomwer.gui.utils.illustrations import _IllustrationWidget, _IllustrationDialog
47
+ from tomwer.gui.utils.illustrations import _IllustrationDialog, _IllustrationWidget
41
48
  from tomwer.gui.utils.unitsystem import MetricEntry
42
- from .TofuOptionLoader import _TofuOptionLoader, _getterSetter
43
- from .misc import _AngleWidget, PadlockButton
49
+
50
+ from .misc import PadlockButton, _AngleWidget
51
+ from .TofuOptionLoader import _getterSetter, _TofuOptionLoader
44
52
 
45
53
  _logger = logging.getLogger(__name__)
46
54
 
@@ -30,21 +30,24 @@ __license__ = "MIT"
30
30
  __date__ = "01/06/2018"
31
31
 
32
32
 
33
+ import logging
34
+
33
35
  from silx.gui import qt
34
36
  from silx.io import dictdump
35
- import logging
37
+
36
38
  from tomwer.core.process.reconstruction.lamino.tofu import (
37
39
  SCAN_TYPES,
38
40
  SCAN_TYPES_I,
39
41
  FFCWhen,
42
+ _retrieve_opts_recons_cmd,
40
43
  )
41
- from tomwer.core.process.reconstruction.lamino.tofu import _retrieve_opts_recons_cmd
42
44
  from tomwer.core.utils.char import PSI_CHAR
43
45
  from tomwer.gui import icons
44
46
  from tomwer.gui.reconstruction.lamino.tofu import settings
45
- from .TofuOptionLoader import _TofuOptionLoader, _getterSetter
47
+
46
48
  from .projections import InputProjectionsScrollArea
47
49
  from .tofuexpert import ExpertTofuWidget
50
+ from .TofuOptionLoader import _getterSetter, _TofuOptionLoader
48
51
  from .tofuoutput import OutputTofuWidget
49
52
 
50
53
  _logger = logging.getLogger(__name__)
@@ -28,12 +28,15 @@ __license__ = "MIT"
28
28
  __date__ = "01/06/2018"
29
29
 
30
30
 
31
+ import logging
31
32
  import subprocess
33
+
32
34
  from silx.gui import qt
35
+
33
36
  import tomwer.core.utils.gpu
34
37
  from tomwer.core.process.reconstruction.lamino.tofu import has_tofu
35
- import logging
36
- from .TofuOptionLoader import _TofuOptionLoader, _getterSetter
38
+
39
+ from .TofuOptionLoader import _getterSetter, _TofuOptionLoader
37
40
 
38
41
  _logger = logging.getLogger(__name__)
39
42
 
@@ -28,21 +28,24 @@ __license__ = "MIT"
28
28
  __date__ = "01/06/2018"
29
29
 
30
30
 
31
+ import logging
31
32
  import os
33
+
32
34
  from silx.gui import qt
33
- import logging
35
+
34
36
  from tomwer.core.process.reconstruction.lamino.tofu import (
35
- SLICE_STACK_TYPE,
36
- ROTATION_CENTER_TYPE,
37
37
  LAMINO_ANGLE_TYPE,
38
38
  PSI_ANGLE_TYPE,
39
+ ROTATION_CENTER_TYPE,
40
+ SLICE_STACK_TYPE,
39
41
  )
40
42
  from tomwer.core.settings import get_lbsram_path
41
43
  from tomwer.core.utils.char import DELTA_CHAR
42
44
  from tomwer.gui.reconstruction.lamino.tofu import settings
43
45
  from tomwer.gui.utils.illustrations import _IllustrationWidget
44
- from .TofuOptionLoader import _TofuOptionLoader, _getterSetter
45
- from .misc import _AngleWidget, _RegionLE, PadlockButton
46
+
47
+ from .misc import PadlockButton, _AngleWidget, _RegionLE
48
+ from .TofuOptionLoader import _getterSetter, _TofuOptionLoader
46
49
 
47
50
  _logger = logging.getLogger(__name__)
48
51
 
@@ -29,6 +29,7 @@ __date__ = "04/08/2020"
29
29
 
30
30
 
31
31
  from silx.gui import qt
32
+
32
33
  from tomwer.gui import icons as tomwer_icons
33
34
 
34
35
 
@@ -28,18 +28,20 @@ __license__ = "MIT"
28
28
  __date__ = "15/12/2021"
29
29
 
30
30
 
31
+ import logging
32
+ from typing import Optional
33
+
31
34
  from silx.gui import qt
35
+ from silx.gui.utils import blockSignals
36
+
32
37
  from tomwer.core.process.reconstruction.nabu.castvolume import (
38
+ DEFAULT_OUTPUT_DIR,
33
39
  RESCALE_MAX_PERCENTILE,
34
40
  RESCALE_MIN_PERCENTILE,
35
- DEFAULT_OUTPUT_DIR,
36
41
  )
37
42
  from tomwer.core.process.reconstruction.nabu.nabucommon import NabuOutputFileFormat
38
43
  from tomwer.gui.qlefilesystem import QLFileSystem
39
44
  from tomwer.gui.reconstruction.nabu.nabuconfig.output import QNabuFileFormatComboBox
40
- from silx.gui.utils import blockSignals
41
- import logging
42
- from typing import Optional
43
45
 
44
46
  _logger = logging.getLogger(__name__)
45
47
 
@@ -28,10 +28,11 @@ __license__ = "MIT"
28
28
  __date__ = "02/12/2021"
29
29
 
30
30
 
31
+ from silx.gui import qt
32
+ from tomoscan.esrf.scan.hdf5scan import ImageKey
33
+
31
34
  from tomwer.core.scan.hdf5scan import HDF5TomoScan
32
35
  from tomwer.core.utils.nxtomoutils import get_n_series
33
- from tomoscan.esrf.scan.hdf5scan import ImageKey
34
- from silx.gui import qt
35
36
 
36
37
 
37
38
  def check_dark_series(scan: HDF5TomoScan, logger=None, user_input: bool = True) -> bool:
@@ -29,8 +29,11 @@ __date__ = "11/02/2020"
29
29
 
30
30
 
31
31
  from typing import Union
32
- from tomwer.core.process.reconstruction.nabu.utils import _NabuStages
33
- from tomwer.core.process.reconstruction.nabu.utils import ConfigurationLevel
32
+
33
+ from tomwer.core.process.reconstruction.nabu.utils import (
34
+ ConfigurationLevel,
35
+ _NabuStages,
36
+ )
34
37
 
35
38
 
36
39
  class _FilteringObject:
@@ -1,10 +1,13 @@
1
- from silx.gui import qt
2
1
  from typing import Optional, Union
2
+
3
+ from silx.gui import qt
4
+ from silx.gui.utils import blockSignals
5
+ from silx.utils.enum import Enum as _Enum
6
+
3
7
  from tomwer.core.process.reconstruction.nabu.utils import _NabuStages
4
8
  from tomwer.gui.reconstruction.nabu.nabuconfig import base
5
9
  from tomwer.gui.utils.illustrations import _IllustrationWidget
6
- from silx.gui.utils import blockSignals
7
- from silx.utils.enum import Enum as _Enum
10
+
8
11
  from .reconstruction import AnglesFileWidget as Filewidget
9
12
 
10
13
 
@@ -29,15 +29,16 @@ __date__ = "11/02/2020"
29
29
 
30
30
 
31
31
  from silx.gui import qt
32
+
33
+ from tomwer.core.process.reconstruction.nabu.utils import _NabuStages
34
+ from tomwer.gui.reconstruction.nabu.nabuconfig.output import _NabuOutputConfig
35
+ from tomwer.gui.reconstruction.nabu.nabuconfig.phase import _NabuPhaseConfig
32
36
  from tomwer.gui.reconstruction.nabu.nabuconfig.preprocessing import (
33
37
  _NabuPreProcessingConfig,
34
38
  )
35
- from tomwer.gui.reconstruction.nabu.nabuconfig.phase import _NabuPhaseConfig
36
39
  from tomwer.gui.reconstruction.nabu.nabuconfig.reconstruction import (
37
40
  _NabuReconstructionConfig,
38
41
  )
39
- from tomwer.gui.reconstruction.nabu.nabuconfig.output import _NabuOutputConfig
40
- from tomwer.core.process.reconstruction.nabu.utils import _NabuStages
41
42
 
42
43
 
43
44
  class NabuConfiguration(qt.QWidget):
@@ -28,14 +28,16 @@ __license__ = "MIT"
28
28
  __date__ = "11/02/2020"
29
29
 
30
30
 
31
+ import logging
31
32
  import os
32
33
  import typing
34
+
33
35
  from silx.gui import qt
36
+
34
37
  from tomwer.core.process.reconstruction.nabu.nabucommon import NabuOutputFileFormat
38
+ from tomwer.core.process.reconstruction.nabu.utils import _NabuStages
35
39
  from tomwer.gui.qlefilesystem import QLFileSystem
36
40
  from tomwer.gui.reconstruction.nabu.nabuconfig.base import _NabuStageConfigBase
37
- from tomwer.core.process.reconstruction.nabu.utils import _NabuStages
38
- import logging
39
41
  from tomwer.io.utils import get_default_directory
40
42
 
41
43
  try:
@@ -145,12 +147,12 @@ class NabuOutputLocationWidget(qt.QWidget):
145
147
  else:
146
148
  return self._outputDirQLE.text()
147
149
 
148
- def setOutputDir(self, dir):
149
- if dir in (None, ""):
150
+ def setOutputDir(self, output_dir):
151
+ if output_dir in (None, ""):
150
152
  self._defaultOutput.setChecked(True)
151
153
  else:
152
154
  self._defaultOutput.setChecked(False)
153
- self._outputDirQLE.setText(dir)
155
+ self._outputDirQLE.setText(output_dir)
154
156
 
155
157
 
156
158
  class _NabuOutputConfig(_NabuStageConfigBase, qt.QWidget):
@@ -28,17 +28,19 @@ __license__ = "MIT"
28
28
  __date__ = "11/02/2020"
29
29
 
30
30
 
31
+ import logging
31
32
  import typing
32
- from tomwer.utils import docstring
33
+
33
34
  from silx.gui import qt
34
- from tomwer.gui.utils.scrollarea import QComboBoxIgnoreWheel as QComboBox
35
+ from silx.utils.enum import Enum as _Enum
36
+
37
+ from tomwer.core.process.reconstruction.nabu.utils import _NabuPhaseMethod, _NabuStages
38
+ from tomwer.core.utils.char import BETA_CHAR, DELTA_CHAR
35
39
  from tomwer.gui.reconstruction.nabu.nabuconfig import base
36
40
  from tomwer.gui.reconstruction.nabu.nabuconfig.ctf import CTFConfig
37
41
  from tomwer.gui.utils.inputwidget import SelectionLineEdit
38
- from tomwer.core.utils.char import BETA_CHAR, DELTA_CHAR
39
- from tomwer.core.process.reconstruction.nabu.utils import _NabuStages, _NabuPhaseMethod
40
- import logging
41
- from silx.utils.enum import Enum as _Enum
42
+ from tomwer.gui.utils.scrollarea import QComboBoxIgnoreWheel as QComboBox
43
+ from tomwer.utils import docstring
42
44
 
43
45
  _logger = logging.getLogger(__name__)
44
46
 
@@ -28,19 +28,19 @@ __license__ = "MIT"
28
28
  __date__ = "06/12/2021"
29
29
 
30
30
 
31
+ import logging
31
32
  from typing import Optional
33
+
32
34
  from silx.gui import qt
33
- from tomwer.gui.reconstruction.nabu.nabuconfig.base import _NabuStageConfigBase
34
- from tomwer.utils import docstring
35
+
35
36
  from tomwer.core.process.reconstruction.nabu.utils import (
36
37
  _NabuStages,
37
38
  _RingCorrectionMethod,
38
39
  )
39
- from tomwer.gui.utils.scrollarea import (
40
- QComboBoxIgnoreWheel as QComboBox,
41
- QDoubleSpinBoxIgnoreWheel as QDoubleSpinBox,
42
- )
43
- import logging
40
+ from tomwer.gui.reconstruction.nabu.nabuconfig.base import _NabuStageConfigBase
41
+ from tomwer.gui.utils.scrollarea import QComboBoxIgnoreWheel as QComboBox
42
+ from tomwer.gui.utils.scrollarea import QDoubleSpinBoxIgnoreWheel as QDoubleSpinBox
43
+ from tomwer.utils import docstring
44
44
 
45
45
  _logger = logging.getLogger(__name__)
46
46
 
@@ -27,26 +27,29 @@ __authors__ = ["H. Payno"]
27
27
  __license__ = "MIT"
28
28
  __date__ = "12/02/2020"
29
29
 
30
- import typing
31
30
  import functools
32
- from tomwer.utils import docstring
31
+ import logging
32
+ import typing
33
+
33
34
  from silx.gui import qt
35
+ from silx.gui.dialog.DataFileDialog import DataFileDialog
36
+ from silx.utils.enum import Enum as _Enum
37
+
38
+ from tomwer.core.process.reconstruction.nabu.nabuslices import NabuSliceMode
34
39
  from tomwer.core.process.reconstruction.nabu.utils import (
35
- _NabuStages,
36
- _NabuReconstructionMethods,
37
40
  _NabuFBPFilterType,
38
41
  _NabuPaddingType,
42
+ _NabuReconstructionMethods,
43
+ _NabuStages,
39
44
  )
40
- from tomwer.core.process.reconstruction.nabu.nabuslices import NabuSliceMode
41
45
  from tomwer.gui.reconstruction.nabu.nabuconfig.base import _NabuStageConfigBase
42
46
  from tomwer.gui.utils.inputwidget import SelectionLineEdit
43
- from tomwer.gui.utils.scrollarea import QComboBoxIgnoreWheel
44
- from tomwer.gui.utils.scrollarea import QDoubleSpinBoxIgnoreWheel
45
- from tomwer.gui.utils.scrollarea import QSpinBoxIgnoreWheel
46
- from silx.utils.enum import Enum as _Enum
47
- from silx.gui.dialog.DataFileDialog import DataFileDialog
48
-
49
- import logging
47
+ from tomwer.gui.utils.scrollarea import (
48
+ QComboBoxIgnoreWheel,
49
+ QDoubleSpinBoxIgnoreWheel,
50
+ QSpinBoxIgnoreWheel,
51
+ )
52
+ from tomwer.utils import docstring
50
53
 
51
54
  _logger = logging.getLogger(__name__)
52
55
 
@@ -543,15 +546,15 @@ class _NabuReconstructionConfig(qt.QWidget, _NabuStageConfigBase):
543
546
  else:
544
547
  return None
545
548
 
546
- def setFBPFilterType(self, filter):
547
- if type(filter) is str and filter.lower() == "none":
548
- filter = None
549
- if filter is None:
549
+ def setFBPFilterType(self, filter_type):
550
+ if type(filter_type) is str and filter_type.lower() == "none":
551
+ filter_type = None
552
+ if filter_type is None:
550
553
  self._fbpFilterCB.setChecked(False)
551
554
  else:
552
555
  self._fbpFilterCB.setChecked(True)
553
- filter = _NabuFBPFilterType(filter)
554
- filter_index = self._fbpFilterType.findText(filter.value)
556
+ filter_type = _NabuFBPFilterType(filter_type)
557
+ filter_index = self._fbpFilterType.findText(filter_type.value)
555
558
  self._fbpFilterType.setCurrentIndex(filter_index)
556
559
 
557
560
  def getFBPPaddingType(self) -> _NabuPaddingType:
@@ -778,33 +781,33 @@ class _SubRegionEditor(qt.QObject):
778
781
  else:
779
782
  return None
780
783
 
781
- def setSubRegionMin(self, min: typing.Union[None, int]) -> None:
784
+ def setSubRegionMin(self, sub_region_min: typing.Union[None, int]) -> None:
782
785
  """
783
786
 
784
787
  :param min: if min is None or -1 wr will expand it to - infinity
785
788
  """
786
- if min in (-1, 0):
787
- min = None
788
- if min is None:
789
+ if sub_region_min in (-1, 0):
790
+ sub_region_min = None
791
+ if sub_region_min is None:
789
792
  self._minCB.setChecked(False)
790
793
  else:
791
794
  self._minCB.setChecked(True)
792
- self._minQLE.setText(str(min))
795
+ self._minQLE.setText(str(sub_region_min))
793
796
 
794
- def setSubRegionMax(self, max) -> None:
797
+ def setSubRegionMax(self, sub_region_max) -> None:
795
798
  """
796
799
 
797
800
  :param max: if max is None or -1 wr will expand it to infinity
798
801
  """
799
- if type(max) is str:
800
- max = int(max)
801
- if max == -1:
802
- max = None
803
- if max is None:
802
+ if type(sub_region_max) is str:
803
+ sub_region_max = int(sub_region_max)
804
+ if sub_region_max == -1:
805
+ sub_region_max = None
806
+ if sub_region_max is None:
804
807
  self._maxCB.setChecked(False)
805
808
  else:
806
809
  self._maxCB.setChecked(True)
807
- self._maxQLE.setText(str(max))
810
+ self._maxQLE.setText(str(sub_region_max))
808
811
 
809
812
  def getSubRegion(self) -> tuple:
810
813
  """
@@ -814,14 +817,18 @@ class _SubRegionEditor(qt.QObject):
814
817
  """
815
818
  return self.getSubRegionMin(), self.getSubRegionMax()
816
819
 
817
- def setSubRegion(self, min: typing.Union[None, int], max: typing.Union[None, int]):
820
+ def setSubRegion(
821
+ self,
822
+ sub_region_min: typing.Union[None, int],
823
+ sub_region_max: typing.Union[None, int],
824
+ ):
818
825
  """
819
826
 
820
827
  :param tuple min:
821
828
  :param tuple max:
822
829
  """
823
- self.setSubRegionMin(min)
824
- self.setSubRegionMax(max)
830
+ self.setSubRegionMin(sub_region_min)
831
+ self.setSubRegionMax(sub_region_max)
825
832
 
826
833
  def _signalConfChanged(self, param):
827
834
  self.sigConfChanged.emit(param)
@@ -27,14 +27,17 @@ __authors__ = ["H. Payno"]
27
27
  __license__ = "MIT"
28
28
  __date__ = "04/03/2019"
29
29
 
30
+ import functools
31
+ import typing
32
+
30
33
  from silx.gui import qt
34
+
35
+ from tomwer.core.process.reconstruction.nabu.utils import _NabuStages
31
36
  from tomwer.gui import icons
32
- from ...utils.flow import FlowDirection, FlowCanvas
33
37
  from tomwer.gui.utils.illustrations import _IllustrationWidget
34
38
  from tomwer.utils import docstring
35
- from tomwer.core.process.reconstruction.nabu.utils import _NabuStages
36
- import functools
37
- import typing
39
+
40
+ from ...utils.flow import FlowCanvas, FlowDirection
38
41
 
39
42
 
40
43
  class NabuFlowControl(qt.QWidget):