bec-widgets 0.87.0__py3-none-any.whl → 0.88.0__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 (77) hide show
  1. CHANGELOG.md +66 -70
  2. PKG-INFO +1 -1
  3. bec_widgets/assets/designer_icons/BECWaveformWidget.png +0 -0
  4. bec_widgets/assets/designer_icons/colormap_selector.png +0 -0
  5. bec_widgets/assets/toolbar_icons/add.svg +3 -0
  6. bec_widgets/assets/toolbar_icons/auto_range.svg +3 -0
  7. bec_widgets/assets/toolbar_icons/drag_pan_mode.svg +3 -0
  8. bec_widgets/assets/toolbar_icons/export.svg +9 -0
  9. bec_widgets/assets/toolbar_icons/fitting_parameters.svg +3 -0
  10. bec_widgets/assets/toolbar_icons/import.svg +9 -0
  11. bec_widgets/assets/toolbar_icons/line_axis.svg +3 -0
  12. bec_widgets/assets/toolbar_icons/photo_library.svg +3 -0
  13. bec_widgets/assets/toolbar_icons/rectangle_mode.svg +3 -0
  14. bec_widgets/assets/toolbar_icons/remove.svg +5 -0
  15. bec_widgets/assets/toolbar_icons/save.svg +3 -0
  16. bec_widgets/assets/toolbar_icons/settings.svg +4 -0
  17. bec_widgets/cli/client.py +307 -5
  18. bec_widgets/cli/server.py +2 -1
  19. bec_widgets/examples/jupyter_console/jupyter_console_window.py +13 -7
  20. bec_widgets/examples/plugin_example_pyside/tictactoe.py +1 -0
  21. bec_widgets/utils/bec_connector.py +19 -18
  22. bec_widgets/utils/bec_widget.py +19 -4
  23. bec_widgets/widgets/base_classes/device_input_base.py +3 -5
  24. bec_widgets/widgets/bec_queue/bec_queue.py +3 -2
  25. bec_widgets/widgets/bec_status_box/bec_status_box.py +2 -11
  26. bec_widgets/widgets/{color_map_selector/color_map_selector.py → colormap_selector/colormap_selector.py} +3 -1
  27. bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +1 -0
  28. bec_widgets/widgets/{color_map_selector/color_map_selector_plugin.py → colormap_selector/colormap_selector_plugin.py} +8 -6
  29. bec_widgets/widgets/{color_map_selector/register_color_map_selector.py → colormap_selector/register_colormap_selector.py} +1 -1
  30. bec_widgets/widgets/device_box/device_box.py +2 -2
  31. bec_widgets/widgets/device_combobox/device_combobox.py +1 -8
  32. bec_widgets/widgets/device_line_edit/device_line_edit.py +2 -9
  33. bec_widgets/widgets/dock/dock.py +8 -6
  34. bec_widgets/widgets/dock/dock_area.py +4 -2
  35. bec_widgets/widgets/figure/figure.py +16 -8
  36. bec_widgets/widgets/figure/plots/axis_settings.py +38 -11
  37. bec_widgets/widgets/figure/plots/image/image.py +2 -4
  38. bec_widgets/widgets/figure/plots/motor_map/motor_map.py +1 -1
  39. bec_widgets/widgets/figure/plots/plot_base.py +7 -8
  40. bec_widgets/widgets/figure/plots/waveform/waveform.py +49 -53
  41. bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +10 -1
  42. bec_widgets/widgets/jupyter_console/jupyter_console.py +6 -0
  43. bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +1 -1
  44. bec_widgets/widgets/motor_map/motor_map_widget.py +9 -6
  45. bec_widgets/widgets/ring_progress_bar/ring.py +0 -4
  46. bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +8 -8
  47. bec_widgets/widgets/scan_control/scan_control.py +2 -6
  48. bec_widgets/widgets/stop_button/stop_button.py +2 -2
  49. bec_widgets/widgets/text_box/text_box.py +3 -2
  50. bec_widgets/widgets/waveform/__init__.py +0 -0
  51. bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +1 -0
  52. bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +59 -0
  53. bec_widgets/widgets/waveform/register_bec_waveform_widget.py +15 -0
  54. bec_widgets/widgets/waveform/waveform_toolbar/__init__.py +0 -0
  55. bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/__init__.py +0 -0
  56. bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.py +341 -0
  57. bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.ui +358 -0
  58. bec_widgets/widgets/waveform/waveform_toolbar/dap_summary_dialog/__init__.py +0 -0
  59. bec_widgets/widgets/waveform/waveform_toolbar/dap_summary_dialog/dap_summary.ui +127 -0
  60. bec_widgets/widgets/waveform/waveform_toolbar/dap_summary_dialog/dap_summary_dialog.py +69 -0
  61. bec_widgets/widgets/waveform/waveform_toolbar/waveform_toolbar.py +117 -0
  62. bec_widgets/widgets/waveform/waveform_widget.py +571 -0
  63. bec_widgets/widgets/website/website.py +2 -2
  64. {bec_widgets-0.87.0.dist-info → bec_widgets-0.88.0.dist-info}/METADATA +1 -1
  65. {bec_widgets-0.87.0.dist-info → bec_widgets-0.88.0.dist-info}/RECORD +75 -48
  66. pyproject.toml +1 -1
  67. tests/unit_tests/test_color_map_selector.py +1 -1
  68. tests/unit_tests/test_device_input_base.py +10 -4
  69. tests/unit_tests/test_waveform_widget.py +264 -0
  70. bec_widgets/widgets/color_map_selector/assets/color_map_selector_icon.png +0 -0
  71. bec_widgets/widgets/color_map_selector/color_map_selector.pyproject +0 -1
  72. /bec_widgets/assets/{bec_widgets_icon.png → app_icons/bec_widgets_icon.png} +0 -0
  73. /bec_widgets/assets/{terminal_icon.png → app_icons/terminal_icon.png} +0 -0
  74. /bec_widgets/widgets/{color_map_selector → colormap_selector}/__init__.py +0 -0
  75. {bec_widgets-0.87.0.dist-info → bec_widgets-0.88.0.dist-info}/WHEEL +0 -0
  76. {bec_widgets-0.87.0.dist-info → bec_widgets-0.88.0.dist-info}/entry_points.txt +0 -0
  77. {bec_widgets-0.87.0.dist-info → bec_widgets-0.88.0.dist-info}/licenses/LICENSE +0 -0
@@ -2,35 +2,49 @@
2
2
  .gitlab-ci.yml,sha256=zvb4A6QI5lQTsdfI5nPPL-tUNfcrz__SQjxW03QZ5Ek,8204
3
3
  .pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
4
4
  .readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
5
- CHANGELOG.md,sha256=J5sVQm-02kM-VZdTMEXiw7GffeaLehxOfJSeSmf2JEw,7474
5
+ CHANGELOG.md,sha256=Cg7hwqHhrIkyyabuoKi2_GBGf2qCr5D4-41C1-kKuFo,8161
6
6
  LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
7
- PKG-INFO,sha256=zgqysKuGz67anBxMymaso7hUNfkKS04uMlwLVOL5e38,1308
7
+ PKG-INFO,sha256=Q7jSMAX05ltg_SwmOLHmPtuTqoUeD06Z7WdFJnDLIMc,1308
8
8
  README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
9
- pyproject.toml,sha256=j-UQTLL_5Y-jv2eqR7KkbyNjyqJrnoQ6uWGwLEUzkUo,2357
9
+ pyproject.toml,sha256=p3KQpk_Kzo3cOeqBMjLywMn9OO3ygOO9In4jTzXPRfk,2357
10
10
  .git_hooks/pre-commit,sha256=n3RofIZHJl8zfJJIUomcMyYGFi_rwq4CC19z0snz3FI,286
11
11
  .gitlab/issue_templates/bug_report_template.md,sha256=gAuyEwl7XlnebBrkiJ9AqffSNOywmr8vygUFWKTuQeI,386
12
12
  .gitlab/issue_templates/documentation_update_template.md,sha256=FHLdb3TS_D9aL4CYZCjyXSulbaW5mrN2CmwTaeLPbNw,860
13
13
  .gitlab/issue_templates/feature_request_template.md,sha256=vjxCnmj53Mp4FPzCrNxhkO-8StRQUZ36PlXu4K8VGaI,1543
14
14
  .gitlab/merge_request_templates/default.md,sha256=tfyFA0hRCsIunbLGSlGbxWBQFeB3USpsA3H7IvwQ5UY,715
15
15
  bec_widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- bec_widgets/assets/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqgdX7a00nM3igZdc20pkYM,1747017
17
- bec_widgets/assets/terminal_icon.png,sha256=bJl7Tft4Fi2uxvuXI8o14uMHnI9eAWKSU2uftXCH9ws,3889
16
+ bec_widgets/assets/app_icons/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqgdX7a00nM3igZdc20pkYM,1747017
17
+ bec_widgets/assets/app_icons/terminal_icon.png,sha256=bJl7Tft4Fi2uxvuXI8o14uMHnI9eAWKSU2uftXCH9ws,3889
18
+ bec_widgets/assets/designer_icons/BECWaveformWidget.png,sha256=QKocOi6e1frT6anrTwIQqQEwkalbl2AoOrTpvN1dr90,3764
19
+ bec_widgets/assets/designer_icons/colormap_selector.png,sha256=KULLUA5T9SLhcSyrdouG07nXHZtE-LNNOn0ghG7T-OQ,6831
20
+ bec_widgets/assets/toolbar_icons/add.svg,sha256=Co1Iueh0sqQ1LMQcvNXPLg6tC6MLtQviH-F79uhM2o0,228
21
+ bec_widgets/assets/toolbar_icons/auto_range.svg,sha256=hq6YMySVWF01SeEXzpF_h7BaqUPdsipTk_Z3nOjD8bg,487
22
+ bec_widgets/assets/toolbar_icons/drag_pan_mode.svg,sha256=ruinkJ0dVEPSH7ll4Pufl9c7oTwVXvcN57oTgiVRY5I,470
23
+ bec_widgets/assets/toolbar_icons/export.svg,sha256=-kDEfxzloR1fOpZ5d4KIkxGH7wS_4Z1uJImtnKA5XxU,371
24
+ bec_widgets/assets/toolbar_icons/fitting_parameters.svg,sha256=k57fFm2xPyYQD0y1K4Mb-7uqDeVA6GBWq_oh4-rQQeE,366
25
+ bec_widgets/assets/toolbar_icons/import.svg,sha256=57-0ahjyIng5d3c0pSVCC2YwEYmQSyVVUdWkQXiVEVY,377
26
+ bec_widgets/assets/toolbar_icons/line_axis.svg,sha256=uguelNycsOl6DmjYfUPnPnkIxfrDHEiLCpHW7iKEyfk,450
27
+ bec_widgets/assets/toolbar_icons/photo_library.svg,sha256=weiDCYiHh9dzcA21D-37zpYts2CyoGAd9x-N_h292Mo,564
28
+ bec_widgets/assets/toolbar_icons/rectangle_mode.svg,sha256=N7AXB3da-RW8OpjLFeOUh1SDKVQ-9SWGPUjkryujyeE,946
29
+ bec_widgets/assets/toolbar_icons/remove.svg,sha256=K1g1KmNyp32WlAZpR9w5HezYhtxbqXo_2goimkxwPaw,357
30
+ bec_widgets/assets/toolbar_icons/save.svg,sha256=rexWzbFExkh-NiAFP1909-1mm1BKU76cxQBwdAVvtHo,621
31
+ bec_widgets/assets/toolbar_icons/settings.svg,sha256=ro30oa9CF1YijOXoUl-hz2DilJcqTy4rlTrMYhggumQ,1473
18
32
  bec_widgets/cli/__init__.py,sha256=d0Q6Fn44e7wFfLabDOBxpcJ1DPKWlFunGYDUBmO-4hA,22
19
33
  bec_widgets/cli/auto_updates.py,sha256=DyBV3HnjMSH-cvVkYNcDiYKVf0Xut4Qy2qGQqkW47Bw,4833
20
- bec_widgets/cli/client.py,sha256=4zUI7gm0J2gdKCvfDuK-47PRZ2x3WRchObhhmt0FMsU,61843
34
+ bec_widgets/cli/client.py,sha256=-fJ0QirirJ4ZGXNgfXLUL1VmuYfYJdp_50o3jpEvY_Q,70291
21
35
  bec_widgets/cli/client_utils.py,sha256=cDhabblwaP88a0jlVpbn_RWWKVbsyjhmmGtMh9gesEw,12388
22
36
  bec_widgets/cli/generate_cli.py,sha256=Ea5px9KblUlcGg-1JbJBTIU7laGg2n8PM7Efw9WVVzM,5889
23
37
  bec_widgets/cli/rpc_register.py,sha256=QxXUZu5XNg00Yf5O3UHWOXg3-f_pzKjjoZYMOa-MOJc,2216
24
38
  bec_widgets/cli/rpc_wigdet_handler.py,sha256=6kQng2DyS6rhLJqSJ7xa0kdgSxp-35A2upcf833dJRE,1483
25
- bec_widgets/cli/server.py,sha256=FZkqsjUHIkCUFMKUFm7ls_eslXvhIFzLpINEYxeWP5s,7722
39
+ bec_widgets/cli/server.py,sha256=y0GrBpDF3bHvYFZM20j2eDlsYxb-hT1ki_zmVI_OEiM,7752
26
40
  bec_widgets/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
41
  bec_widgets/examples/jupyter_console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- bec_widgets/examples/jupyter_console/jupyter_console_window.py,sha256=iBJD3bNE2tH2sxm2gsdzbdHVEyQRGMMTCzh7utG6lPg,6638
42
+ bec_widgets/examples/jupyter_console/jupyter_console_window.py,sha256=a0eTHk91ZTb5RT-e099Isx3q4adYmM7zvKnNIWhJgFw,6849
29
43
  bec_widgets/examples/plugin_example_pyside/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
44
  bec_widgets/examples/plugin_example_pyside/main.py,sha256=xdC6RWSRt1rW8Prj0CsDeCPct6-_j3__oJmdgogB5PI,505
31
45
  bec_widgets/examples/plugin_example_pyside/registertictactoe.py,sha256=VNFkHc5Sc30lRKzOFJbhArCHGkp_wRxOeJjZbmaAHRU,448
32
46
  bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject,sha256=O_PSMFJlXxQuf55gIOfkpfZIZGpX8W1SfUVZ-mvtI_E,119
33
- bec_widgets/examples/plugin_example_pyside/tictactoe.py,sha256=s3rCurXloVcmMdzZiSzDS7Lgj0Qe6x8-wkxCeiXYX80,4904
47
+ bec_widgets/examples/plugin_example_pyside/tictactoe.py,sha256=byR7mTiIXFaA9igPTH04pzm0yfikNB5KgISwvNiRPd8,4940
34
48
  bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py,sha256=BBt3MD8oDLUMCCY3mioJa1QRR0WQdW6DuvVmK1Taovk,1734
35
49
  bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py,sha256=LNwplI6deUdKY6FOhUuWBanotxk9asF2G-6k7lFfA8Y,2301
36
50
  bec_widgets/qt_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -38,11 +52,11 @@ bec_widgets/qt_utils/error_popups.py,sha256=WAN3Qtccy9Yww29kZ3HbLt9VyipgrIamJ6y4
38
52
  bec_widgets/qt_utils/settings_dialog.py,sha256=rR_Zk4RGTnI4dz5OEzCc13lVpxlOKuwOf4_7wqXSbRw,3373
39
53
  bec_widgets/qt_utils/toolbar.py,sha256=yzxCmZ7c00B2JD1TkUpPeQgM_-v7zuTYe38Qkw_yvrc,2430
40
54
  bec_widgets/utils/__init__.py,sha256=1930ji1Jj6dVuY81Wd2kYBhHYNV-2R0bN_L4o9zBj1U,533
41
- bec_widgets/utils/bec_connector.py,sha256=5FHeoN-2cwBJvei-5CIWYSJm1p06N6ZIqbN5GZxPRhM,9741
55
+ bec_widgets/utils/bec_connector.py,sha256=UK0GIWgcC_JTwgKCOmmuXnQvSwD3wiPsJQw6NBW3p74,9961
42
56
  bec_widgets/utils/bec_designer.py,sha256=ak3G8FdojUPjVBBwdPXw7tN5P2Uxr-SSoQt394jXeAA,4308
43
57
  bec_widgets/utils/bec_dispatcher.py,sha256=fhI7_X0kSZCtXyR55Qn-w7BfNdk2Roc1Tyx0bx3bjoE,6195
44
58
  bec_widgets/utils/bec_table.py,sha256=nA2b8ukSeUfquFMAxGrUVOqdrzMoDYD6O_4EYbOG2zk,717
45
- bec_widgets/utils/bec_widget.py,sha256=eC7jhCqyABDf_wGbM6cCdtSF4__rpnVs2Ir1XzGHrCs,238
59
+ bec_widgets/utils/bec_widget.py,sha256=Bo2v1aP7rgSAQajW8GBJbI3iovTn_hGCsmeFMo7bT10,707
46
60
  bec_widgets/utils/colors.py,sha256=RAGaA4jdvsFSxGlbhSBYL5mdlwS-9rq45tJM7U-7xXs,10587
47
61
  bec_widgets/utils/container_utils.py,sha256=m3VUyAYmSWkEwApP9tBvKxPYVtc2kHw4toxIpMryJy4,1495
48
62
  bec_widgets/utils/crosshair.py,sha256=SubY4FQCI6vUKsmMYGKHR7uYdGQJ6vhoYLuC1XlKS9I,9626
@@ -61,14 +75,14 @@ bec_widgets/utils/plugin_templates/plugin.template,sha256=JHkUvYegesW-xEhZuY4FQV
61
75
  bec_widgets/utils/plugin_templates/register.template,sha256=XyL3OZPT_FTArLAM8tHd5qMqv2ZuAbJAZLsNNnHcagU,417
62
76
  bec_widgets/widgets/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
63
77
  bec_widgets/widgets/base_classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
- bec_widgets/widgets/base_classes/device_input_base.py,sha256=k7-hIJBvoh1xPCnMCdJ-hdVvtqG1QMtk4sF3EZwvdCU,3918
78
+ bec_widgets/widgets/base_classes/device_input_base.py,sha256=thCOHOa9Z0b3-vlNFWK6PT_DdPTANnfj0_DLES_K-eE,3902
65
79
  bec_widgets/widgets/bec_queue/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
- bec_widgets/widgets/bec_queue/bec_queue.py,sha256=voIsj599a5t-u-H15tpSqjGBmy5ra6LsHpZnqEZFrI8,3551
80
+ bec_widgets/widgets/bec_queue/bec_queue.py,sha256=n3WMmHvKt4VB2dOud6EIiTYlXpnNUUHh1dXgvR7lYyc,3585
67
81
  bec_widgets/widgets/bec_queue/bec_queue.pyproject,sha256=VhoNmAv1DQUl9dg7dELyf5i4pZ5k65N3GnqOYiSwbQo,27
68
82
  bec_widgets/widgets/bec_queue/bec_queue_plugin.py,sha256=hDJm8Zd_GIDw2R8VYn4ytwrHVCmJUjC9dGDMae2omU0,1175
69
83
  bec_widgets/widgets/bec_queue/register_bec_queue.py,sha256=XnwtUSa1asK1b80knKWodcyX9qJy4DnKsQL_FoDfZy4,463
70
84
  bec_widgets/widgets/bec_status_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- bec_widgets/widgets/bec_status_box/bec_status_box.py,sha256=3EunaSYlVemrrFsILfAacqTqaFIuNxnTd7mb_xrfi3k,13043
85
+ bec_widgets/widgets/bec_status_box/bec_status_box.py,sha256=3oWNoP7HJaJ-qNeMersoL2dbLcYaLW-PX-7r-d8LK80,12798
72
86
  bec_widgets/widgets/bec_status_box/bec_status_box.pyproject,sha256=JWtx3Csfn2h7ODtk10HtyBNLf6tFIqyU6g04rMWOO1U,32
73
87
  bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py,sha256=CNFIETpkORLQ9J3l91jefiRLJs5Ru3nsWIPoUwaRbB0,1242
74
88
  bec_widgets/widgets/bec_status_box/register_bec_status_box.py,sha256=EiQITnkNw7IU7hE776wAeXro97eZd9XlsB9essgCebE,481
@@ -79,55 +93,54 @@ bec_widgets/widgets/color_button/color_button.pyproject,sha256=LUYF4VkDOB4ttVe7Y
79
93
  bec_widgets/widgets/color_button/color_button_plugin.py,sha256=CvO3L6r8pBd-0DNuqjQ7uKF9u1mU6xFs23sS_dsj4tw,1256
80
94
  bec_widgets/widgets/color_button/register_color_button.py,sha256=ZAx3t7G2VI2S-1qcEof31Xi9O0X8deLeZNgS651L1JI,475
81
95
  bec_widgets/widgets/color_button/assets/color_button.png,sha256=dkjgGHSdxu98nM68O16fGpxBjxkkeLN8iu9M_8i5-NY,5618
82
- bec_widgets/widgets/color_map_selector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- bec_widgets/widgets/color_map_selector/color_map_selector.py,sha256=V0nmY2_X76xJmLXOfjW6rG7ipJKFT8swo3bkJZDXBGE,3751
84
- bec_widgets/widgets/color_map_selector/color_map_selector.pyproject,sha256=sGQE4s6gia1PIz9p6c2mZX12geCk8G384gjL2PE_qEc,36
85
- bec_widgets/widgets/color_map_selector/color_map_selector_plugin.py,sha256=9V7xvq2SB_YZU7W1E6aEKx38REOTspFNc7x57Fyd9mY,1436
86
- bec_widgets/widgets/color_map_selector/register_color_map_selector.py,sha256=crZsJcH4z1DHfsfA7iHiQFDggslNyzfuHfo-YdAoca4,514
87
- bec_widgets/widgets/color_map_selector/assets/color_map_selector_icon.png,sha256=o8zRmMvXhGhMyBklH_Vfjn-jpDL4Nw03fLqDk_wx_JI,11975
96
+ bec_widgets/widgets/colormap_selector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
+ bec_widgets/widgets/colormap_selector/colormap_selector.py,sha256=4BqV11XMZVmcwzHiKgwUVFtg_bg4Nz7CQznkL4hHRYU,3794
98
+ bec_widgets/widgets/colormap_selector/colormap_selector.pyproject,sha256=lHl9qmlMCB6BKB2orqctKwLcKK3Swc0THsyr-5O_vXM,35
99
+ bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py,sha256=NWTldO9XMyyOVL0No-Bmr-tvWrinmU7LkDxB5LkIQtA,1416
100
+ bec_widgets/widgets/colormap_selector/register_colormap_selector.py,sha256=bfw7RWmTmMLTLxGT-izSwcGtxGLKvL3jdivJw2z8oN4,512
88
101
  bec_widgets/widgets/console/console.py,sha256=IW1OerycmS-cm8CKGFig44Qye8mxsmVcKvLHAc3lXco,17845
89
102
  bec_widgets/widgets/device_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- bec_widgets/widgets/device_box/device_box.py,sha256=ofYQJLY02pitmAJG0Y3GWBg8txNmaJDWhQVe9KFQDYA,6938
103
+ bec_widgets/widgets/device_box/device_box.py,sha256=2hWCbDaBvYnWK4-HDqeYetzb5KR4DBk7UPQJMLhT4w0,6929
91
104
  bec_widgets/widgets/device_box/device_box.pyproject,sha256=jtwvhaySJRdnuV99mEZT3htmWKVLphFeetEW4al7s-o,28
92
105
  bec_widgets/widgets/device_box/device_box.ui,sha256=z7j60J4ZKYjH9eyHl6FnZ_Z8lkdq1LQftxveSZQ6g_w,4865
93
106
  bec_widgets/widgets/device_box/device_box_plugin.py,sha256=n7l3OIKqtQGsL86ygDekb0wb4bBySJXMUo58eTtKIdQ,1212
94
107
  bec_widgets/widgets/device_box/register_device_box.py,sha256=K7Hx4FIQDXasejaw6njwkFkkkwk63Smm6pHoOEdLWPw,467
95
108
  bec_widgets/widgets/device_combobox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
- bec_widgets/widgets/device_combobox/device_combobox.py,sha256=L6hPOk3LkTy9U_HRdU7bvqCH1L1Y_BuPYTTfl1eqShg,2824
109
+ bec_widgets/widgets/device_combobox/device_combobox.py,sha256=9tuutN5yp0Kv6Jl6QPKO3OcMI1HBYSZhD2mlNI8rH4s,2682
97
110
  bec_widgets/widgets/device_combobox/device_combobox.pyproject,sha256=wI2eXR5ky_IM9-BCHJnH_9CEqYcZwIuLcgitSEr8OJU,40
98
111
  bec_widgets/widgets/device_combobox/device_combobox_plugin.py,sha256=CQszPKVXoa4wRxucQjVIqblP5rtGvwWn8FZOR_OE_-o,1406
99
112
  bec_widgets/widgets/device_combobox/register_device_combobox.py,sha256=xzz2qM82cgFIrj77c9zyUpJ-1QHZRMrLkyeq8uGNsmE,487
100
113
  bec_widgets/widgets/device_combobox/assets/device_combobox_icon.png,sha256=ydC7WZmoU-UjjIOGFuUIDjQ30p4L66si2emHawc_inU,2592
101
114
  bec_widgets/widgets/device_line_edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
- bec_widgets/widgets/device_line_edit/device_line_edit.py,sha256=SnNWR_DrXwe3-FvaDosfIaSOqXiDy8_UcfRrPGwdKm0,3377
115
+ bec_widgets/widgets/device_line_edit/device_line_edit.py,sha256=iKK2NrVu4okWP8kxPU5whmo_y5VHtrD7Fd_q3ZgXN1Y,3221
103
116
  bec_widgets/widgets/device_line_edit/device_line_edit.pyproject,sha256=tqAYXRbxsHR41MwqmAxvfq1CFeZ1IRv84whUG67HjjE,41
104
117
  bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py,sha256=7aJR2jsEdbq2UuH9p-7lqKzndkrtY4ZcqnNLIVc7rzk,1423
105
118
  bec_widgets/widgets/device_line_edit/register_device_line_edit.py,sha256=8gEPnC8djYCw-idoZAENNB3bPOxM6pbzEp9A366EAGg,489
106
119
  bec_widgets/widgets/device_line_edit/assets/line_edit_icon.png,sha256=nxVykqQY4kgMJP7GELzv6N_dghqIzBJb2MWqxs4B-Ug,3391
107
120
  bec_widgets/widgets/dock/__init__.py,sha256=B7foHt02gnhM7mFksa7GJVwT7n0j_JvYDCt6wc6XR5g,61
108
- bec_widgets/widgets/dock/dock.py,sha256=joymi8NRoIuzuugUj9ccF9e1m57HwLQhhMmjaWiwTnM,7597
109
- bec_widgets/widgets/dock/dock_area.py,sha256=WKIt61v7w2YXahfIL4nddWHPfpTpw52uphX4QCbS3q0,7913
121
+ bec_widgets/widgets/dock/dock.py,sha256=2KJCLGIqmuMBOYVZCfJMFfYW3IXsIO0SuyebI_ktZKg,7648
122
+ bec_widgets/widgets/dock/dock_area.py,sha256=Sv4SEntiJ67VNnup5XfZpBIIHBxyuRvYZigUXKf9E3E,7974
110
123
  bec_widgets/widgets/figure/__init__.py,sha256=3hGx_KOV7QHCYAV06aNuUgKq4QIYCjUTad-DrwkUaBM,44
111
- bec_widgets/widgets/figure/figure.py,sha256=vuaeAT6XZaK37cLQh_KXX0pE-z6dLkmc_QNe4eydQpk,28520
124
+ bec_widgets/widgets/figure/figure.py,sha256=IP8Kr8mWOBRSeWsB17UYoU5bpE4WcrOCuN5HpJOdzfk,28768
112
125
  bec_widgets/widgets/figure/plots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
- bec_widgets/widgets/figure/plots/axis_settings.py,sha256=CCvJwo1RjpnLJG9TmGqf9fyPpUNyLT8k7pPEnqVuaGM,2281
126
+ bec_widgets/widgets/figure/plots/axis_settings.py,sha256=_z20SrMu5iRM0eqhQjsCV1MDOY80hN2dqtvkeofXs0w,3510
114
127
  bec_widgets/widgets/figure/plots/axis_settings.ui,sha256=zMKZK6lH_3KJGO4RA_paXAH7UzZJ4Snlil3MK4pK3L8,11589
115
- bec_widgets/widgets/figure/plots/plot_base.py,sha256=7kPcUfC_Ub795DfUHdnIWccqjkrRSuE0AJ53wodbg-U,10420
128
+ bec_widgets/widgets/figure/plots/plot_base.py,sha256=xU2aRfSOdGNsIl-fJ1PZDNm5b4h70akFbtHq7h38ydk,10419
116
129
  bec_widgets/widgets/figure/plots/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
- bec_widgets/widgets/figure/plots/image/image.py,sha256=8J-20r12FD9_Wtv-YSzJsWdq3cXipJSOyX4S66_AVSc,21337
130
+ bec_widgets/widgets/figure/plots/image/image.py,sha256=CoD1ODroBL0M-9xCyAyELz-UBSHGMoXqe_1GqhGrRN0,21294
118
131
  bec_widgets/widgets/figure/plots/image/image_item.py,sha256=TyarahdWEn0jgalj5fqSAmcznXSbENkqHrrlL2GVdU4,10558
119
132
  bec_widgets/widgets/figure/plots/image/image_processor.py,sha256=GeTtWjbldy6VejMwPGQgM-o3d6bmLglCjdoktu19xfA,5262
120
133
  bec_widgets/widgets/figure/plots/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
- bec_widgets/widgets/figure/plots/motor_map/motor_map.py,sha256=FH3ZSYThGco98jS29r9EGcIh5fYx8e5eOs_nYJNrr48,18210
134
+ bec_widgets/widgets/figure/plots/motor_map/motor_map.py,sha256=IjCwVNb9DlujIDF9rlI7fOAM7udKpt0wL5hAGo2-MUw,18202
122
135
  bec_widgets/widgets/figure/plots/waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
- bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=ZDG5Pw9drzKrNW8-TIwJKC9ViW-wNnTIiPCoDQR4ehM,52368
124
- bec_widgets/widgets/figure/plots/waveform/waveform_curve.py,sha256=rQow0EkMtoETJ4xNRRtHbpPuJ4AmNjtn9fx4IM5enh4,8436
136
+ bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=HRU3d6nhr6DnfDc2N4VTTSABk9veTnnsBOnfc1UbamQ,51720
137
+ bec_widgets/widgets/figure/plots/waveform/waveform_curve.py,sha256=ZwRxSfPHbMWEvgUC-mL2orpZvtxR-DcrYAFikkdWEzk,8654
125
138
  bec_widgets/widgets/jupyter_console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- bec_widgets/widgets/jupyter_console/jupyter_console.py,sha256=ioLYJL31RdBoAOGFSS8PVSnUhkWPWmLC3tiKp7CouO8,2251
139
+ bec_widgets/widgets/jupyter_console/jupyter_console.py,sha256=mBKM89H6SuHuFy1lQg1n8s1gQiN5QEkZf0xua8aPDns,2402
127
140
  bec_widgets/widgets/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
141
  bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject,sha256=NAI8s5gRKz80ED4KY7OgD2OgSH5HEsjt2ux2BYp66yg,63
129
- bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py,sha256=PIfDE78Zqvsu7-xwoh9DdYkH8a7eOUFSaEl0bNrHYHc,1292
130
- bec_widgets/widgets/motor_map/motor_map_widget.py,sha256=92v90z6IrxORzxYrPIt1dFXZL8cJg9viFcGzNHGOeBw,7243
142
+ bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py,sha256=TpRrkyUpdsDhzn7yZnbqk2FktXH98Gjo-gH8UN4Dis0,1276
143
+ bec_widgets/widgets/motor_map/motor_map_widget.py,sha256=HoGS9mbaNG0pPIMQ7Xm0LB3p2trtINj1wq9_oLJEQ3w,7296
131
144
  bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py,sha256=qRG8PtWGjso0pWbvj_DXKnbUfmQzfGqPSrnAozXfM7o,492
132
145
  bec_widgets/widgets/motor_map/assets/connection.svg,sha256=czIb1BnshmxJnER8ssU3WcLENrFSIUfMwberajWOGAk,341
133
146
  bec_widgets/widgets/motor_map/assets/history.svg,sha256=bd6p5saxRiNRpd5OsSwIOvRWvel0WFEHul9zw4y9vH0,392
@@ -142,10 +155,10 @@ bec_widgets/widgets/position_indicator/position_indicator.pyproject,sha256=s0JEf
142
155
  bec_widgets/widgets/position_indicator/position_indicator_plugin.py,sha256=h9EQU4t6KdKVAZh5ILalpl1K8b7JMHf-2AFYREej2-w,1241
143
156
  bec_widgets/widgets/position_indicator/register_position_indicator.py,sha256=OZNiMgM_80TPSAXK_0hXAkne4vUh8DGvh_OdpOiMpwI,516
144
157
  bec_widgets/widgets/ring_progress_bar/__init__.py,sha256=_uoJKnDM2YAeUBfwc5WLbIHSJj7zm_FAurSKP3WRaCw,47
145
- bec_widgets/widgets/ring_progress_bar/ring.py,sha256=19zFj-6ZrIPLXYqvs5EPcrmDWnfnSLlEOmzJffL4d3A,11241
146
- bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py,sha256=sU4Dur2XzBVfDYAYazI6pjOZOhzggoQIuc9VD3PWgac,24073
158
+ bec_widgets/widgets/ring_progress_bar/ring.py,sha256=2pdEzETaJpvx4Dzyosq2YhnvDOEUvFnj_f9GfFKpG5Q,11159
159
+ bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py,sha256=F7z6BbY7BYSKivpCus6T8pXIwzqHOsDlaIV5fGRIboQ,24119
147
160
  bec_widgets/widgets/scan_control/__init__.py,sha256=IOfHl15vxb_uC6KN62-PeUzbBha_vQyqkkXbJ2HU674,38
148
- bec_widgets/widgets/scan_control/scan_control.py,sha256=Jhr3kUaA_pd_80YK8UlPqoYk0MI-N4RfWXZM3J6uT-8,7709
161
+ bec_widgets/widgets/scan_control/scan_control.py,sha256=YT3Vvy27_FY3UY7IXvy87o9ZB_syauuEKzkJFOpbP4s,7610
149
162
  bec_widgets/widgets/scan_control/scan_group_box.py,sha256=wrrJLfI0apfll0NKpqM8ymlbl5NaqA9cKNgyfVdYR00,7420
150
163
  bec_widgets/widgets/spinner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
164
  bec_widgets/widgets/spinner/register_spinner_widget.py,sha256=_zCPjLh4M7NTSHP1Atdn6yu33zJ3LJkcBy3KOJ5eSVY,476
@@ -154,12 +167,12 @@ bec_widgets/widgets/spinner/spinner_widget.pyproject,sha256=zzLajGB3DTgVnrSqMey2
154
167
  bec_widgets/widgets/spinner/spinner_widget_plugin.py,sha256=ZcG1QIwpbriapM5ZrR4gQ-WA2a7ARhsstk8EIY-OGTU,1187
155
168
  bec_widgets/widgets/stop_button/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
169
  bec_widgets/widgets/stop_button/register_stop_button.py,sha256=U7r3fEOH-uPhAQI-nTituHXDDXDWR4JQZ7_vD6b_dfM,471
157
- bec_widgets/widgets/stop_button/stop_button.py,sha256=icJQT1k5G_nvdHWZZkGEZVQupt-mWd2viK8zYg5B5dI,793
170
+ bec_widgets/widgets/stop_button/stop_button.py,sha256=_2vNytWjf-pKqyv5wT8j5NSA_4z9Zyk4aBnkEvU8_dA,798
158
171
  bec_widgets/widgets/stop_button/stop_button.pyproject,sha256=Cc_xbv-zfzNVpsdg_1QyzuTlrJaM9_BkIjes70umrx0,29
159
172
  bec_widgets/widgets/stop_button/stop_button_plugin.py,sha256=-90MqPp1cFumsrHGaFgc_nahdCoew98M5bS1oqSRhDk,1346
160
173
  bec_widgets/widgets/stop_button/assets/stop.png,sha256=9nGdvR-qwOz1YP4xYoBjmDnnj9ns2cLLhfvTz9amyKc,8424
161
174
  bec_widgets/widgets/text_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
- bec_widgets/widgets/text_box/text_box.py,sha256=dg2gpOqdBZNKD08mygb40twweFBiG-xsXz0GlIhfXV0,4240
175
+ bec_widgets/widgets/text_box/text_box.py,sha256=3OWC6L3CWsH_uh8X11WnifYjhO8ruDe2FWFhE8cn5lY,4274
163
176
  bec_widgets/widgets/toggle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
177
  bec_widgets/widgets/toggle/register_toggle_switch.py,sha256=8pVtkeEeiDOjV4OPoZq1I30F9JDzl4nQE7e7xoWyWBs,472
165
178
  bec_widgets/widgets/toggle/toggle.py,sha256=JzCGYoyHBrlBWCoyL94QX4zSLyEwWbCNHMegjlnSy2E,4442
@@ -167,8 +180,21 @@ bec_widgets/widgets/toggle/toggle_switch.pyproject,sha256=Msa-AS5H5XlqW65r8GlX2A
167
180
  bec_widgets/widgets/toggle/toggle_switch_plugin.py,sha256=8e8JjUx6T5CIx7ixWLwVdT9JOJTbQ8aWwd3_9VAc_Mw,1177
168
181
  bec_widgets/widgets/vscode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
182
  bec_widgets/widgets/vscode/vscode.py,sha256=yV1D9PK2IYomq9yYfwqUOrZGIeBwMnNuBfXxBc2M8Qc,2231
183
+ bec_widgets/widgets/waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
+ bec_widgets/widgets/waveform/bec_waveform_widget.pyproject,sha256=GLD8GN9dXx9wNbtnevrxqqcwk7vKV-Uv8QYSycdaoaI,33
185
+ bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py,sha256=LjJJoRFlkcQWs7SUIPX859AeCiqVRsjgRWMNKE596uY,1429
186
+ bec_widgets/widgets/waveform/register_bec_waveform_widget.py,sha256=qZHVZH_lP2hvzkG1Ra0EyrXlMeLkRCy0aceH-bfJ1cs,490
187
+ bec_widgets/widgets/waveform/waveform_widget.py,sha256=ZRhwyxhrCwQxQJIusHy8oMi-PKmDzebP0GPiQawP-Sg,18636
188
+ bec_widgets/widgets/waveform/waveform_toolbar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
189
+ bec_widgets/widgets/waveform/waveform_toolbar/waveform_toolbar.py,sha256=n3hwAzLCQul-FviDn0ikhDsYvza7JOb30ekTmbhu9JY,3896
190
+ bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
191
+ bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.py,sha256=jCtWjNxsdOW7fA9BLdMAMrlCKHr2tFMHcVMxpeJ6YZE,13107
192
+ bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.ui,sha256=OaQE5HlyBQ3RQoHqxOFHiUoNcx8SDZP5sHJ9NNGhsPI,10404
193
+ bec_widgets/widgets/waveform/waveform_toolbar/dap_summary_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
+ bec_widgets/widgets/waveform/waveform_toolbar/dap_summary_dialog/dap_summary.ui,sha256=PFEKro61UXd-jmx65U4pqJ5D29DXtVnhQRnsnDvN-wM,6138
195
+ bec_widgets/widgets/waveform/waveform_toolbar/dap_summary_dialog/dap_summary_dialog.py,sha256=a5n_gBebETdj80TU7Dgy1cnazPFyxLlWk_lRdvy3qA4,2403
170
196
  bec_widgets/widgets/website/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
- bec_widgets/widgets/website/website.py,sha256=-5JG2dh7Ftw9xv8I4p08TxjaRzaql9XZDiv1iQOIFsU,1726
197
+ bec_widgets/widgets/website/website.py,sha256=FmhVaasAU3ZSdKP-HHSnJHFbG8lIsNAPH9pZq55fhic,1731
172
198
  docs/Makefile,sha256=i2WHuFlgfyAPEW4ssEP8NY4cOibDJrVjvzSEU8_Ggwc,634
173
199
  docs/conf.py,sha256=HxLxupNGu0Smhwn57g1kFdjZzFuaWVREgRJKhT1zi2k,2464
174
200
  docs/index.md,sha256=8ZCgaLIbJsYvt-jwi--QxsNwnK4-k3rejIeOOLclG40,1101
@@ -240,11 +266,11 @@ tests/unit_tests/test_bec_motor_map.py,sha256=dSYopbZS8lGD9cB26Kwmqw5zBoKCZs8t7D
240
266
  tests/unit_tests/test_bec_queue.py,sha256=u-uc-iZeGAS8P90o6Cxy5oz_60zHpirGAu04OgQPDXw,4598
241
267
  tests/unit_tests/test_bec_status_box.py,sha256=gZdjyy9DNuUP9UwleTLj2Dp5HUImiqnkHjXWiqL0Q-o,4868
242
268
  tests/unit_tests/test_client_utils.py,sha256=CBdWIVJ_UiyFzTJnX3XJm4PGw2uXhFvRCP_Y9ifckbw,2630
243
- tests/unit_tests/test_color_map_selector.py,sha256=NVnKrz5kFUKgljm7HslIpMII-IpzPAKHIX_KeqpNUew,1518
269
+ tests/unit_tests/test_color_map_selector.py,sha256=tsfCwHnEQoQhzA1ZpLhbGCMPqDX5hmH_YIzYTmBwnoM,1516
244
270
  tests/unit_tests/test_color_validation.py,sha256=xbFbtFDia36XLgaNrX2IwvAX3IDC_Odpj5BGoJSgiIE,2389
245
271
  tests/unit_tests/test_crosshair.py,sha256=3OMAJ2ZaISYXMOtkXf1rPdy94vCr8njeLi6uHblBL9Q,5045
246
272
  tests/unit_tests/test_device_box.py,sha256=q9IVFpt1NF3TBF0Jhk-I-LRiuvvHG3FGUalw4jEYwVo,3431
247
- tests/unit_tests/test_device_input_base.py,sha256=r1tI7BFAhpv7V7gf_n5gjusyrBFOfuCqIkdVg7YA7vY,2444
273
+ tests/unit_tests/test_device_input_base.py,sha256=Unw-CdRwXYdHBKRDWOEYoenLBjtFktbrzpjUx3lFIkM,2601
248
274
  tests/unit_tests/test_device_input_widgets.py,sha256=39MtgF-Q67UWz6qapyYP4ukDEUOD81iEJ_jhATyG7dM,5889
249
275
  tests/unit_tests/test_error_utils.py,sha256=LQOxz29WCGOe0qwFkaPDixjUmdnF3qeAGxD4A3t9IKg,2108
250
276
  tests/unit_tests/test_generate_cli_client.py,sha256=ng-eV5iF7Dhm-6YpxYo99CMY0KgqoaZBQNkMeKULDBU,3355
@@ -265,6 +291,7 @@ tests/unit_tests/test_text_box_widget.py,sha256=cT0uEHt_6d-FwST0A_wE9sFW9E3F_nJb
265
291
  tests/unit_tests/test_toggle.py,sha256=Amzgres7te0tTQIDR2WMKSx9Kce44TxMpIPR6HZygXQ,832
266
292
  tests/unit_tests/test_vscode_widget.py,sha256=G1G7nCQGXFUn0BnMECE7mHmAm0C6pYx1JpEi_XEhodY,2682
267
293
  tests/unit_tests/test_waveform1d.py,sha256=ZuHCvGubMuaLIzaMWDvmBUhgzUHCDLdvTZqIOfBKaZg,22713
294
+ tests/unit_tests/test_waveform_widget.py,sha256=6jNmJJXCm28Owrs8vEYzP0OX8lFE6T5c7OUNjV6CiB4,8592
268
295
  tests/unit_tests/test_website_widget.py,sha256=fBADIJJBAHU4Ro7u95kdemFVNv196UOcuO9oLHuHt8A,761
269
296
  tests/unit_tests/test_widget_io.py,sha256=FeL3ZYSBQnRt6jxj8VGYw1cmcicRQyHKleahw7XIyR0,3475
270
297
  tests/unit_tests/test_yaml_dialog.py,sha256=SEvUgC_poWC6fAoHVWolaORpgMFc7c0Xqqk9cFvHSvo,5826
@@ -273,8 +300,8 @@ tests/unit_tests/test_configs/config_device_no_entry.yaml,sha256=hdvue9KLc_kfNzG
273
300
  tests/unit_tests/test_configs/config_scan.yaml,sha256=vo484BbWOjA_e-h6bTjSV9k7QaQHrlAvx-z8wtY-P4E,1915
274
301
  tests/unit_tests/test_msgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
275
302
  tests/unit_tests/test_msgs/available_scans_message.py,sha256=m_z97hIrjHXXMa2Ex-UvsPmTxOYXfjxyJaGkIY6StTY,46532
276
- bec_widgets-0.87.0.dist-info/METADATA,sha256=zgqysKuGz67anBxMymaso7hUNfkKS04uMlwLVOL5e38,1308
277
- bec_widgets-0.87.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
278
- bec_widgets-0.87.0.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
279
- bec_widgets-0.87.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
280
- bec_widgets-0.87.0.dist-info/RECORD,,
303
+ bec_widgets-0.88.0.dist-info/METADATA,sha256=Q7jSMAX05ltg_SwmOLHmPtuTqoUeD06Z7WdFJnDLIMc,1308
304
+ bec_widgets-0.88.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
305
+ bec_widgets-0.88.0.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
306
+ bec_widgets-0.88.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
307
+ bec_widgets-0.88.0.dist-info/RECORD,,
pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.87.0"
7
+ version = "0.88.0"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -1,7 +1,7 @@
1
1
  import pyqtgraph as pg
2
2
  import pytest
3
3
 
4
- from bec_widgets.widgets.color_map_selector.color_map_selector import ColormapSelector
4
+ from bec_widgets.widgets.colormap_selector.colormap_selector import ColormapSelector
5
5
 
6
6
 
7
7
  @pytest.fixture
@@ -1,13 +1,19 @@
1
1
  import pytest
2
+ from qtpy.QtWidgets import QWidget
2
3
 
3
4
  from bec_widgets.widgets.base_classes.device_input_base import DeviceInputBase
4
5
 
5
6
  from .client_mocks import mocked_client
6
7
 
7
8
 
9
+ # DeviceInputBase is meant to be mixed in a QWidget
10
+ class DeviceInputWidget(DeviceInputBase, QWidget):
11
+ pass
12
+
13
+
8
14
  @pytest.fixture
9
15
  def device_input_base(mocked_client):
10
- widget = DeviceInputBase(client=mocked_client)
16
+ widget = DeviceInputWidget(client=mocked_client)
11
17
  yield widget
12
18
 
13
19
 
@@ -15,7 +21,7 @@ def test_device_input_base_init(device_input_base):
15
21
  assert device_input_base is not None
16
22
  assert device_input_base.client is not None
17
23
  assert isinstance(device_input_base, DeviceInputBase)
18
- assert device_input_base.config.widget_class == "DeviceInputBase"
24
+ assert device_input_base.config.widget_class == "DeviceInputWidget"
19
25
  assert device_input_base.config.device_filter is None
20
26
  assert device_input_base.config.default is None
21
27
  assert device_input_base.devices == []
@@ -23,12 +29,12 @@ def test_device_input_base_init(device_input_base):
23
29
 
24
30
  def test_device_input_base_init_with_config(mocked_client):
25
31
  config = {
26
- "widget_class": "DeviceInputBase",
32
+ "widget_class": "DeviceInputWidget",
27
33
  "gui_id": "test_gui_id",
28
34
  "device_filter": "FakePositioner",
29
35
  "default": "samx",
30
36
  }
31
- widget = DeviceInputBase(client=mocked_client, config=config)
37
+ widget = DeviceInputWidget(client=mocked_client, config=config)
32
38
  assert widget.config.gui_id == "test_gui_id"
33
39
  assert widget.config.device_filter == "FakePositioner"
34
40
  assert widget.config.default == "samx"
@@ -0,0 +1,264 @@
1
+ from unittest.mock import MagicMock, patch
2
+
3
+ import pyqtgraph as pg
4
+ import pytest
5
+
6
+ from bec_widgets.widgets.waveform.waveform_widget import BECWaveformWidget
7
+
8
+ from .client_mocks import mocked_client
9
+
10
+
11
+ @pytest.fixture
12
+ def waveform_widget(qtbot, mocked_client):
13
+ widget = BECWaveformWidget(client=mocked_client())
14
+ qtbot.addWidget(widget)
15
+ qtbot.waitExposed(widget)
16
+ yield widget
17
+ widget.close()
18
+
19
+
20
+ @pytest.fixture
21
+ def mock_waveform(waveform_widget):
22
+ waveform_mock = MagicMock()
23
+ waveform_widget.waveform = waveform_mock
24
+ return waveform_mock
25
+
26
+
27
+ def test_waveform_widget_inti(waveform_widget):
28
+ assert waveform_widget is not None
29
+ assert waveform_widget.client is not None
30
+ assert isinstance(waveform_widget, BECWaveformWidget)
31
+ assert waveform_widget.config.widget_class == "BECWaveformWidget"
32
+
33
+
34
+ ###################################
35
+ # Wrapper methods for Waveform
36
+ ###################################
37
+
38
+
39
+ def test_waveform_widget_get_curve(waveform_widget, mock_waveform):
40
+ waveform_widget.get_curve("curve_id")
41
+ waveform_widget.waveform.get_curve.assert_called_once_with("curve_id")
42
+
43
+
44
+ def test_waveform_widget_set_colormap(waveform_widget, mock_waveform):
45
+ waveform_widget.set_colormap("colormap")
46
+ waveform_widget.waveform.set_colormap.assert_called_once_with("colormap")
47
+
48
+
49
+ def test_waveform_widget_set_x(waveform_widget, mock_waveform):
50
+ waveform_widget.set_x("samx", "samx")
51
+ waveform_widget.waveform.set_x.assert_called_once_with("samx", "samx")
52
+
53
+
54
+ def test_waveform_plot_data(waveform_widget, mock_waveform):
55
+ waveform_widget.plot(x=[1, 2, 3], y=[1, 2, 3])
56
+ waveform_widget.waveform.plot.assert_called_once_with(
57
+ arg1=None,
58
+ x=[1, 2, 3],
59
+ y=[1, 2, 3],
60
+ x_name=None,
61
+ y_name=None,
62
+ z_name=None,
63
+ x_entry=None,
64
+ y_entry=None,
65
+ z_entry=None,
66
+ color=None,
67
+ color_map_z="plasma",
68
+ label=None,
69
+ validate=True,
70
+ dap=None,
71
+ )
72
+
73
+
74
+ def test_waveform_plot_scan_curves(waveform_widget, mock_waveform):
75
+ waveform_widget.plot(x_name="samx", y_name="samy", dap="GaussianModel")
76
+ waveform_widget.waveform.plot.assert_called_once_with(
77
+ arg1=None,
78
+ x=None,
79
+ y=None,
80
+ x_name="samx",
81
+ y_name="samy",
82
+ z_name=None,
83
+ x_entry=None,
84
+ y_entry=None,
85
+ z_entry=None,
86
+ color=None,
87
+ color_map_z="plasma",
88
+ label=None,
89
+ validate=True,
90
+ dap="GaussianModel",
91
+ )
92
+
93
+
94
+ def test_waveform_widget_add_dap(waveform_widget, mock_waveform):
95
+ waveform_widget.add_dap(x_name="samx", y_name="bpm4i")
96
+ waveform_widget.waveform.add_dap.assert_called_once_with(
97
+ x_name="samx",
98
+ y_name="bpm4i",
99
+ x_entry=None,
100
+ y_entry=None,
101
+ color=None,
102
+ dap="GaussianModel",
103
+ validate_bec=True,
104
+ )
105
+
106
+
107
+ def test_waveform_widget_get_dap_params(waveform_widget, mock_waveform):
108
+ waveform_widget.get_dap_params()
109
+ waveform_widget.waveform.get_dap_params.assert_called_once()
110
+
111
+
112
+ def test_waveform_widget_get_dap_summary(waveform_widget, mock_waveform):
113
+ waveform_widget.get_dap_summary()
114
+ waveform_widget.waveform.get_dap_summary.assert_called_once()
115
+
116
+
117
+ def test_waveform_widget_remove_curve(waveform_widget, mock_waveform):
118
+ waveform_widget.remove_curve("curve_id")
119
+ waveform_widget.waveform.remove_curve.assert_called_once_with("curve_id")
120
+
121
+
122
+ def test_waveform_widget_scan_history(waveform_widget, mock_waveform):
123
+ waveform_widget.scan_history(0)
124
+ waveform_widget.waveform.scan_history.assert_called_once_with(0, None)
125
+
126
+
127
+ def test_waveform_widget_get_all_data(waveform_widget, mock_waveform):
128
+ waveform_widget.get_all_data()
129
+ waveform_widget.waveform.get_all_data.assert_called_once()
130
+
131
+
132
+ def test_waveform_widget_set_title(waveform_widget, mock_waveform):
133
+ waveform_widget.set_title("Title")
134
+ waveform_widget.waveform.set_title.assert_called_once_with("Title")
135
+
136
+
137
+ def test_waveform_widget_set_base(waveform_widget, mock_waveform):
138
+ waveform_widget.set(
139
+ title="Test Title",
140
+ x_label="X Label",
141
+ y_label="Y Label",
142
+ x_scale="linear",
143
+ y_scale="log",
144
+ x_lim=(0, 10),
145
+ y_lim=(0, 10),
146
+ legend_label_size=12,
147
+ )
148
+ waveform_widget.waveform.set.assert_called_once_with(
149
+ title="Test Title",
150
+ x_label="X Label",
151
+ y_label="Y Label",
152
+ x_scale="linear",
153
+ y_scale="log",
154
+ x_lim=(0, 10),
155
+ y_lim=(0, 10),
156
+ legend_label_size=12,
157
+ )
158
+
159
+
160
+ def test_waveform_widget_set_x_label(waveform_widget, mock_waveform):
161
+ waveform_widget.set_x_label("X Label")
162
+ waveform_widget.waveform.set_x_label.assert_called_once_with("X Label")
163
+
164
+
165
+ def test_waveform_widget_set_y_label(waveform_widget, mock_waveform):
166
+ waveform_widget.set_y_label("Y Label")
167
+ waveform_widget.waveform.set_y_label.assert_called_once_with("Y Label")
168
+
169
+
170
+ def test_waveform_widget_set_x_scale(waveform_widget, mock_waveform):
171
+ waveform_widget.set_x_scale("linear")
172
+ waveform_widget.waveform.set_x_scale.assert_called_once_with("linear")
173
+
174
+
175
+ def test_waveform_widget_set_y_scale(waveform_widget, mock_waveform):
176
+ waveform_widget.set_y_scale("log")
177
+ waveform_widget.waveform.set_y_scale.assert_called_once_with("log")
178
+
179
+
180
+ def test_waveform_widget_set_x_lim(waveform_widget, mock_waveform):
181
+ waveform_widget.set_x_lim((0, 10))
182
+ waveform_widget.waveform.set_x_lim.assert_called_once_with((0, 10))
183
+
184
+
185
+ def test_waveform_widget_set_y_lim(waveform_widget, mock_waveform):
186
+ waveform_widget.set_y_lim((0, 10))
187
+ waveform_widget.waveform.set_y_lim.assert_called_once_with((0, 10))
188
+
189
+
190
+ def test_waveform_widget_set_legend_label_size(waveform_widget, mock_waveform):
191
+ waveform_widget.set_legend_label_size(12)
192
+ waveform_widget.waveform.set_legend_label_size.assert_called_once_with(12)
193
+
194
+
195
+ def test_waveform_widget_set_auto_range(waveform_widget, mock_waveform):
196
+ waveform_widget.set_auto_range(True, "xy")
197
+ waveform_widget.waveform.set_auto_range.assert_called_once_with(True, "xy")
198
+
199
+
200
+ def test_waveform_widget_set_grid(waveform_widget, mock_waveform):
201
+ waveform_widget.set_grid(True, False)
202
+ waveform_widget.waveform.set_grid.assert_called_once_with(True, False)
203
+
204
+
205
+ def test_waveform_widget_lock_aspect_ratio(waveform_widget, mock_waveform):
206
+ waveform_widget.lock_aspect_ratio(True)
207
+ waveform_widget.waveform.lock_aspect_ratio.assert_called_once_with(True)
208
+
209
+
210
+ def test_waveform_widget_export(waveform_widget, mock_waveform):
211
+ waveform_widget.export()
212
+ waveform_widget.waveform.export.assert_called_once()
213
+
214
+
215
+ ###################################
216
+ # ToolBar interactions
217
+ ###################################
218
+
219
+
220
+ def test_toolbar_drag_mode_action_triggered(waveform_widget, qtbot):
221
+ action_drag = waveform_widget.toolbar.widgets["drag_mode"].action
222
+ action_rectangle = waveform_widget.toolbar.widgets["rectangle_mode"].action
223
+ action_drag.trigger()
224
+ assert action_drag.isChecked() == True
225
+ assert action_rectangle.isChecked() == False
226
+
227
+
228
+ def test_toolbar_rectangle_mode_action_triggered(waveform_widget, qtbot):
229
+ action_drag = waveform_widget.toolbar.widgets["drag_mode"].action
230
+ action_rectangle = waveform_widget.toolbar.widgets["rectangle_mode"].action
231
+ action_rectangle.trigger()
232
+ assert action_drag.isChecked() == False
233
+ assert action_rectangle.isChecked() == True
234
+
235
+
236
+ def test_toolbar_auto_range_action_triggered(waveform_widget, mock_waveform, qtbot):
237
+ action = waveform_widget.toolbar.widgets["auto_range"].action
238
+ action.trigger()
239
+ qtbot.wait(200)
240
+ waveform_widget.waveform.set_auto_range.assert_called_once_with(True, "xy")
241
+
242
+
243
+ def test_toolbar_fit_params_action_triggered(qtbot, waveform_widget):
244
+ action = waveform_widget.toolbar.widgets["fit_params"].action
245
+ with patch(
246
+ "bec_widgets.widgets.waveform.waveform_widget.FitSummaryWidget"
247
+ ) as MockFitSummaryWidget:
248
+ mock_dialog_instance = MockFitSummaryWidget.return_value
249
+ action.trigger()
250
+ mock_dialog_instance.show.assert_called_once()
251
+
252
+
253
+ def test_enable_mouse_pan_mode(qtbot, waveform_widget):
254
+ action_drag = waveform_widget.toolbar.widgets["drag_mode"].action
255
+ action_rectangle = waveform_widget.toolbar.widgets["rectangle_mode"].action
256
+
257
+ mock_view_box = MagicMock()
258
+ waveform_widget.waveform.plot_item.getViewBox = MagicMock(return_value=mock_view_box)
259
+
260
+ waveform_widget.enable_mouse_pan_mode()
261
+
262
+ assert action_drag.isChecked() == True
263
+ assert action_rectangle.isChecked() == False
264
+ mock_view_box.setMouseMode.assert_called_once_with(pg.ViewBox.PanMode)
@@ -1 +0,0 @@
1
- {'files': ['color_map_selector.py']}