bec-widgets 0.87.1__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 (59) hide show
  1. CHANGELOG.md +58 -62
  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 +12 -5
  20. bec_widgets/examples/plugin_example_pyside/tictactoe.py +1 -0
  21. bec_widgets/widgets/{color_map_selector/color_map_selector.py → colormap_selector/colormap_selector.py} +3 -1
  22. bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +1 -0
  23. bec_widgets/widgets/{color_map_selector/color_map_selector_plugin.py → colormap_selector/colormap_selector_plugin.py} +8 -6
  24. bec_widgets/widgets/{color_map_selector/register_color_map_selector.py → colormap_selector/register_colormap_selector.py} +1 -1
  25. bec_widgets/widgets/figure/figure.py +12 -0
  26. bec_widgets/widgets/figure/plots/axis_settings.py +38 -11
  27. bec_widgets/widgets/figure/plots/image/image.py +1 -0
  28. bec_widgets/widgets/figure/plots/motor_map/motor_map.py +1 -0
  29. bec_widgets/widgets/figure/plots/plot_base.py +7 -3
  30. bec_widgets/widgets/figure/plots/waveform/waveform.py +48 -50
  31. bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +9 -0
  32. bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +1 -1
  33. bec_widgets/widgets/motor_map/motor_map_widget.py +7 -0
  34. bec_widgets/widgets/waveform/__init__.py +0 -0
  35. bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +1 -0
  36. bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +59 -0
  37. bec_widgets/widgets/waveform/register_bec_waveform_widget.py +15 -0
  38. bec_widgets/widgets/waveform/waveform_toolbar/__init__.py +0 -0
  39. bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/__init__.py +0 -0
  40. bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.py +341 -0
  41. bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.ui +358 -0
  42. bec_widgets/widgets/waveform/waveform_toolbar/dap_summary_dialog/__init__.py +0 -0
  43. bec_widgets/widgets/waveform/waveform_toolbar/dap_summary_dialog/dap_summary.ui +127 -0
  44. bec_widgets/widgets/waveform/waveform_toolbar/dap_summary_dialog/dap_summary_dialog.py +69 -0
  45. bec_widgets/widgets/waveform/waveform_toolbar/waveform_toolbar.py +117 -0
  46. bec_widgets/widgets/waveform/waveform_widget.py +571 -0
  47. {bec_widgets-0.87.1.dist-info → bec_widgets-0.88.0.dist-info}/METADATA +1 -1
  48. {bec_widgets-0.87.1.dist-info → bec_widgets-0.88.0.dist-info}/RECORD +57 -30
  49. pyproject.toml +1 -1
  50. tests/unit_tests/test_color_map_selector.py +1 -1
  51. tests/unit_tests/test_waveform_widget.py +264 -0
  52. bec_widgets/widgets/color_map_selector/assets/color_map_selector_icon.png +0 -0
  53. bec_widgets/widgets/color_map_selector/color_map_selector.pyproject +0 -1
  54. /bec_widgets/assets/{bec_widgets_icon.png → app_icons/bec_widgets_icon.png} +0 -0
  55. /bec_widgets/assets/{terminal_icon.png → app_icons/terminal_icon.png} +0 -0
  56. /bec_widgets/widgets/{color_map_selector → colormap_selector}/__init__.py +0 -0
  57. {bec_widgets-0.87.1.dist-info → bec_widgets-0.88.0.dist-info}/WHEEL +0 -0
  58. {bec_widgets-0.87.1.dist-info → bec_widgets-0.88.0.dist-info}/entry_points.txt +0 -0
  59. {bec_widgets-0.87.1.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=DHDSoGZOCoZjI-CEp37DLRfeLqF_bTk0Yv7-iwOMO7w,7594
5
+ CHANGELOG.md,sha256=Cg7hwqHhrIkyyabuoKi2_GBGf2qCr5D4-41C1-kKuFo,8161
6
6
  LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
7
- PKG-INFO,sha256=uf6VZhm8oYlix039uTAh7h25FVrbcp-7tyKsdhkzBWQ,1308
7
+ PKG-INFO,sha256=Q7jSMAX05ltg_SwmOLHmPtuTqoUeD06Z7WdFJnDLIMc,1308
8
8
  README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
9
- pyproject.toml,sha256=yigjcoxWR_c6n-pJRnrcIkOqYVZO4Shu2aX6jvEGwOo,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=MgIw-2l6vxOjN5qR-jOkWaWsaqi-SRFoIxI52Wt9cXg,6605
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
@@ -79,12 +93,11 @@ 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
103
  bec_widgets/widgets/device_box/device_box.py,sha256=2hWCbDaBvYnWK4-HDqeYetzb5KR4DBk7UPQJMLhT4w0,6929
@@ -108,26 +121,26 @@ bec_widgets/widgets/dock/__init__.py,sha256=B7foHt02gnhM7mFksa7GJVwT7n0j_JvYDCt6
108
121
  bec_widgets/widgets/dock/dock.py,sha256=2KJCLGIqmuMBOYVZCfJMFfYW3IXsIO0SuyebI_ktZKg,7648
109
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=hQFru88kvzW-MWSrcdrfglwaOXDxUAPaMSQxr4G1w2E,28438
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=TmXUO4445xjl-jwJh3t0FoFp01yThEg7eTRdPnwdrOw,10304
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=xJJsfKJL7wBv_3U4-aT5ApX84t4-_8LLGARepQEnI2U,21276
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=ZOF5-ZT61kHR_yXJVFSm76bObd_2Fe4kxycO3Lbh6_Q,18184
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=CdhkIpJyy70L_PjuQ7GWLwWIFg0QkQkvn1AIgIZWiT4,52308
124
- bec_widgets/widgets/figure/plots/waveform/waveform_curve.py,sha256=1E0ytu_K_d-LohRWe3osz2vzh_rzk0SaujFHfzca4zM,8456
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
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=m-cMo8h5WzLgr64AN5f5eYxaQf7oF1NiE4omPW2T5Go,7155
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
@@ -167,6 +180,19 @@ 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
197
  bec_widgets/widgets/website/website.py,sha256=FmhVaasAU3ZSdKP-HHSnJHFbG8lIsNAPH9pZq55fhic,1731
172
198
  docs/Makefile,sha256=i2WHuFlgfyAPEW4ssEP8NY4cOibDJrVjvzSEU8_Ggwc,634
@@ -240,7 +266,7 @@ 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
@@ -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.1.dist-info/METADATA,sha256=uf6VZhm8oYlix039uTAh7h25FVrbcp-7tyKsdhkzBWQ,1308
277
- bec_widgets-0.87.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
278
- bec_widgets-0.87.1.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
279
- bec_widgets-0.87.1.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
280
- bec_widgets-0.87.1.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.1"
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
@@ -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']}