bec-widgets 0.52.0__py3-none-any.whl → 0.53.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 (85) hide show
  1. .git_hooks/pre-commit +3 -0
  2. .gitignore +177 -0
  3. .gitlab/issue_templates/bug_report_template.md +17 -0
  4. .gitlab/issue_templates/documentation_update_template.md +27 -0
  5. .gitlab/issue_templates/feature_request_template.md +40 -0
  6. .gitlab/merge_request_templates/default.md +28 -0
  7. .gitlab-ci.yml +225 -0
  8. .pylintrc +581 -0
  9. .readthedocs.yaml +25 -0
  10. CHANGELOG.md +176 -0
  11. PKG-INFO +33 -0
  12. bec_widgets-0.52.0.dist-info/METADATA → README.md +6 -42
  13. bec_widgets/cli/client.py +132 -17
  14. bec_widgets/cli/client_utils.py +1 -0
  15. bec_widgets/cli/generate_cli.py +1 -0
  16. bec_widgets/cli/rpc_register.py +4 -0
  17. bec_widgets/cli/rpc_wigdet_handler.py +2 -3
  18. bec_widgets/examples/modular_app/modular.ui +92 -0
  19. bec_widgets/examples/modular_app/modular_app.py +197 -0
  20. bec_widgets/examples/motor_movement/motor_control_compilations.py +1 -1
  21. bec_widgets/examples/motor_movement/motor_example.py +3 -12
  22. bec_widgets/utils/bec_connector.py +7 -0
  23. bec_widgets/utils/bec_dispatcher.py +1 -3
  24. bec_widgets/utils/bec_table.py +1 -0
  25. bec_widgets/utils/container_utils.py +3 -0
  26. bec_widgets/utils/crosshair.py +1 -0
  27. bec_widgets/utils/entry_validator.py +2 -0
  28. bec_widgets/utils/layout_manager.py +4 -0
  29. bec_widgets/utils/widget_io.py +5 -0
  30. bec_widgets/utils/yaml_dialog.py +2 -0
  31. bec_widgets/validation/monitor_config_validator.py +2 -1
  32. bec_widgets/widgets/dock/dock_area.py +6 -4
  33. bec_widgets/widgets/figure/figure.py +15 -15
  34. bec_widgets/widgets/monitor/config_dialog.py +3 -19
  35. bec_widgets/widgets/monitor/example_configs/config_device.yaml +60 -0
  36. bec_widgets/widgets/monitor/example_configs/config_scans.yaml +92 -0
  37. bec_widgets/widgets/motor_map/motor_map.py +3 -14
  38. bec_widgets/widgets/plots/image.py +41 -0
  39. bec_widgets/widgets/plots/motor_map.py +16 -9
  40. bec_widgets/widgets/plots/plot_base.py +10 -0
  41. bec_widgets/widgets/plots/waveform.py +31 -0
  42. bec_widgets/widgets/scan_control/scan_control.py +11 -5
  43. bec_widgets/widgets/toolbar/toolbar.py +1 -0
  44. bec_widgets-0.53.0.dist-info/METADATA +33 -0
  45. bec_widgets-0.53.0.dist-info/RECORD +156 -0
  46. {bec_widgets-0.52.0.dist-info → bec_widgets-0.53.0.dist-info}/WHEEL +1 -2
  47. bec_widgets-0.53.0.dist-info/licenses/LICENSE +29 -0
  48. docs/Makefile +20 -0
  49. docs/_templates/custom-class-template.rst +34 -0
  50. docs/_templates/custom-module-template.rst +66 -0
  51. docs/conf.py +81 -0
  52. docs/developer/developer.md +26 -0
  53. docs/developer/reference.md +10 -0
  54. docs/index.md +39 -0
  55. docs/introduction/introduction.md +18 -0
  56. docs/make.bat +35 -0
  57. docs/requirements.txt +10 -0
  58. docs/user/apps/modular_app.md +6 -0
  59. docs/user/apps/motor_app.md +34 -0
  60. docs/user/apps/motor_app_10fps.gif +0 -0
  61. docs/user/apps/plot_app.md +6 -0
  62. docs/user/apps.md +39 -0
  63. docs/user/customisation.md +13 -0
  64. docs/user/installation.md +46 -0
  65. docs/user/user.md +38 -0
  66. docs/user/widgets/motor.gif +0 -0
  67. docs/user/widgets/scatter_2D.gif +0 -0
  68. docs/user/widgets/w1D.gif +0 -0
  69. docs/user/widgets.md +41 -0
  70. pyproject.toml +94 -0
  71. tests/unit_tests/test_bec_dispatcher.py +3 -26
  72. tests/unit_tests/test_bec_figure.py +1 -5
  73. tests/unit_tests/test_bec_motor_map.py +1 -4
  74. tests/unit_tests/test_config_dialog.py +1 -5
  75. tests/unit_tests/test_configs/config_device.yaml +33 -0
  76. tests/unit_tests/test_configs/config_device_no_entry.yaml +27 -0
  77. tests/unit_tests/test_configs/config_scan.yaml +82 -0
  78. tests/unit_tests/test_motor_control.py +1 -1
  79. tests/unit_tests/test_motor_map.py +5 -20
  80. tests/unit_tests/test_stream_plot.py +2 -12
  81. bec_widgets/utils/ctrl_c.py +0 -39
  82. bec_widgets-0.52.0.dist-info/RECORD +0 -115
  83. bec_widgets-0.52.0.dist-info/top_level.txt +0 -2
  84. /bec_widgets-0.52.0.dist-info/LICENSE → /LICENSE +0 -0
  85. /bec_widgets/{simulations/__init__.py → examples/modular_app/___init__.py} +0 -0
@@ -0,0 +1,156 @@
1
+ .gitignore,sha256=cMQ1MLmnoR88aMCCJwUyfoTnufzl4-ckmHtlFUqHcT4,3253
2
+ .gitlab-ci.yml,sha256=LPVy83qI_XshWVQoyx6PP3dKkfJxFIcPWGtGcfftNVE,7333
3
+ .pylintrc,sha256=OstrgmEyP0smNFBKoIN5_26-UmNZgMHnbjvAWX0UrLs,18535
4
+ .readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
5
+ CHANGELOG.md,sha256=bYo26WEhNAuWHugSQ4qL8lkTUFMYCM8_grhjPm0SoQk,6933
6
+ LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
7
+ PKG-INFO,sha256=1QaB5z1C3g33ZmM8rhX3xMTuLwN0ij3PnS66-K_ISZY,1063
8
+ README.md,sha256=y4jB6wvArS7N8_iTbKWnSM_oRAqLA2GqgzUR-FMh5sU,2645
9
+ pyproject.toml,sha256=RZ88Z2ek1vsnyA2CPda8OChyPi_5xLKEyW0mHOkSAn0,1776
10
+ .git_hooks/pre-commit,sha256=n3RofIZHJl8zfJJIUomcMyYGFi_rwq4CC19z0snz3FI,286
11
+ .gitlab/issue_templates/bug_report_template.md,sha256=gAuyEwl7XlnebBrkiJ9AqffSNOywmr8vygUFWKTuQeI,386
12
+ .gitlab/issue_templates/documentation_update_template.md,sha256=FHLdb3TS_D9aL4CYZCjyXSulbaW5mrN2CmwTaeLPbNw,860
13
+ .gitlab/issue_templates/feature_request_template.md,sha256=vjxCnmj53Mp4FPzCrNxhkO-8StRQUZ36PlXu4K8VGaI,1543
14
+ .gitlab/merge_request_templates/default.md,sha256=tfyFA0hRCsIunbLGSlGbxWBQFeB3USpsA3H7IvwQ5UY,715
15
+ bec_widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ bec_widgets/cli/__init__.py,sha256=EHPu69lxYndxm6tJqwHHlktuq0hvOCaid1Nxh0jaexo,91
17
+ bec_widgets/cli/auto_updates.py,sha256=ptZeBKr13o9THc8oKLn93K_16i6G3pxzw8hZ4MUgjW4,3845
18
+ bec_widgets/cli/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqgdX7a00nM3igZdc20pkYM,1747017
19
+ bec_widgets/cli/client.py,sha256=0qM-Zve4cXKNXrSNkxvTDtiWo6NvsYZGauOwLn4Rk3w,45622
20
+ bec_widgets/cli/client_utils.py,sha256=DNMjH0g3P8k0pdKh7J3d0jNMQ_H1OYtbwSe1Oek1LH0,10402
21
+ bec_widgets/cli/generate_cli.py,sha256=FFDAogkEewfXMP20jkBBB08vcQdg5k1gnHpldXUcgOw,4101
22
+ bec_widgets/cli/rpc_register.py,sha256=QxXUZu5XNg00Yf5O3UHWOXg3-f_pzKjjoZYMOa-MOJc,2216
23
+ bec_widgets/cli/rpc_wigdet_handler.py,sha256=u54ctT3-pHIf_4788didF4YBXbvNFQI1TqleSILEaZU,783
24
+ bec_widgets/cli/server.py,sha256=wIDOd56ZPfnM42pOJD8NCI3Dw38Aurb9TwwTrricfvU,5773
25
+ bec_widgets/examples/__init__.py,sha256=WWQ0cu7m8sA4Ehy-DWdTIqSISjaHsbxhsNmNrMnhDZU,202
26
+ bec_widgets/examples/eiger_plot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ bec_widgets/examples/eiger_plot/eiger_plot.py,sha256=Uxl2Usf8jEzaX7AT8zVqa1x8ZIEgI1HmazSlb-tRFWE,10359
28
+ bec_widgets/examples/eiger_plot/eiger_plot.ui,sha256=grHfnO3OG_lelJhdRsnA0badCvRdDunPrIMIyNQ5N-w,5809
29
+ bec_widgets/examples/jupyter_console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ bec_widgets/examples/jupyter_console/jupyter_console_window.py,sha256=s8ysnlktLv3932ody8pRA1mghH1QQcxLjQK1HTZ59b8,5642
31
+ bec_widgets/examples/jupyter_console/jupyter_console_window.ui,sha256=2A2mNTUMZBYygz8K4qWzrcjnNqZBMVyeHm26iLZVRWI,1473
32
+ bec_widgets/examples/jupyter_console/terminal_icon.png,sha256=bJl7Tft4Fi2uxvuXI8o14uMHnI9eAWKSU2uftXCH9ws,3889
33
+ bec_widgets/examples/mca_readout/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ bec_widgets/examples/mca_readout/mca_plot.py,sha256=do7mSK_nzHtojRiMi8JoN_Rckg9yfjYYWz2S_Nl3xbE,5079
35
+ bec_widgets/examples/mca_readout/mca_sim.py,sha256=yiX_3sOgDZIbAYA4D2BGmOgLMBWbQMOej0hSP4cQd0o,754
36
+ bec_widgets/examples/modular_app/___init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ bec_widgets/examples/modular_app/modular.ui,sha256=QM_sCgVELDOt18-4LHNRTjEcq2Ogf6e-E0-JidgkuGY,2450
38
+ bec_widgets/examples/modular_app/modular_app.py,sha256=F-VuxVfTL6WC2aPz1PIXKhU2cEcP1F8VXp-AwdWnk9o,6178
39
+ bec_widgets/examples/motor_movement/__init__.py,sha256=LzPJkxLAxOsZCbXR-fRCPmeYobp7Yqds6tDxW4W1gSw,214
40
+ bec_widgets/examples/motor_movement/config_example.yaml,sha256=YT8Bl3ViTaP03cX9X8kIgWnkoxaQOFqS-oRrclGS2hc,356
41
+ bec_widgets/examples/motor_movement/csax_bec_config.yaml,sha256=cqhzwfIhFgHfCt90oVW3no8aVlWg7V42t4iiJCnydSw,146
42
+ bec_widgets/examples/motor_movement/csaxs_config.yaml,sha256=poNndp-1ptdnriIJ_RTnbAimFlOJ45VdxfkclGEQlgc,344
43
+ bec_widgets/examples/motor_movement/motor_control_compilations.py,sha256=gj7SRjdKXDuX4jl4e8bnpM9U6l7B1wvwgGUPcVFOGCU,8978
44
+ bec_widgets/examples/motor_movement/motor_controller.ui,sha256=83XX6NGILwntoUIghvzWnMuGf80O8khK3SduVKTAEFM,29105
45
+ bec_widgets/examples/motor_movement/motor_example.py,sha256=7HWMKgebEx0x9uJoYhB21qVYEzbTRBHXF15CzCFqXjU,53321
46
+ bec_widgets/examples/stream_plot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ bec_widgets/examples/stream_plot/line_plot.ui,sha256=rgNfhOXu1AcWF0P6wnOlmJKDjS-VIoduVrREvmzJQR8,4626
48
+ bec_widgets/examples/stream_plot/stream_plot.py,sha256=vHii1p9JxSyGQ_VcCjnk9SHJ41Q6Oi1GGd6swVVHLRM,12177
49
+ bec_widgets/utils/__init__.py,sha256=PAHNbPFnPD-XGxKBZ7ctx9WBrvm9MArkCYDNfoOxVJA,449
50
+ bec_widgets/utils/bec_connector.py,sha256=dsAPYbI4XzH3JnPcpAX3Z90OmcNVbNrDXPg3l7x8xy8,5185
51
+ bec_widgets/utils/bec_dispatcher.py,sha256=yyWHV0f5sM0Ely1iHGAzVXWLzDYlp5KcSMsl16bd5uQ,5552
52
+ bec_widgets/utils/bec_table.py,sha256=nA2b8ukSeUfquFMAxGrUVOqdrzMoDYD6O_4EYbOG2zk,717
53
+ bec_widgets/utils/colors.py,sha256=JsLxzkxbw-I8GIuvnIKyiM83n0edhyMG2Fa4Ffm62ww,2392
54
+ bec_widgets/utils/container_utils.py,sha256=m3VUyAYmSWkEwApP9tBvKxPYVtc2kHw4toxIpMryJy4,1495
55
+ bec_widgets/utils/crosshair.py,sha256=L4-N8HGgCbY0L3qftv8vi3c9FRdr1aMsRhI54w8aFso,9407
56
+ bec_widgets/utils/entry_validator.py,sha256=IqmtResXQtnmMvWVSl8IrnggqSzXLp4cSggn6WdSTpE,1298
57
+ bec_widgets/utils/layout_manager.py,sha256=H0nKsIMaPxRkof1MEXlSmW6w1dFxA6astaGzf4stI84,4727
58
+ bec_widgets/utils/plugin_utils.py,sha256=wi5x7VVFee0PqAcP-EqPWjYfSe-LLhaK93y6qmnbLIw,1487
59
+ bec_widgets/utils/rpc_decorator.py,sha256=pIvtqySQLnuS7l2Ti_UAe4WX7CRivZnsE5ZdKAihxh0,479
60
+ bec_widgets/utils/thread_checker.py,sha256=rDNuA3X6KQyA7JPb67mccTg0z8YkInynLAENQDQpbuE,1607
61
+ bec_widgets/utils/validator_delegate.py,sha256=Emj1WF6W8Ke1ruBWUfmHdVJpmOSPezuOt4zvQTay_44,442
62
+ bec_widgets/utils/widget_io.py,sha256=f36198CvT_EzWQ_cg2G-4tRRsaMdJ3yVqsZWKJCQEfA,10880
63
+ bec_widgets/utils/yaml_dialog.py,sha256=cMVif-39SB9WjwGH5FWBJcFs4tnfFJFs5cacydRyhy0,1853
64
+ bec_widgets/validation/__init__.py,sha256=ismd1bU5FhFb0zFPwNKuq7oT48G4Y2GfaMZOdNKUtGk,132
65
+ bec_widgets/validation/monitor_config_validator.py,sha256=LJ0kk1cT0x6rAMuEM5XnmlUb-7caP-jqn4-UXe0Jjho,8145
66
+ bec_widgets/widgets/__init__.py,sha256=NOgRDV9-uwrH1OK2JdfG5c0WcW77TSRz3PeNlGw22Lc,392
67
+ bec_widgets/widgets/dock/__init__.py,sha256=B7foHt02gnhM7mFksa7GJVwT7n0j_JvYDCt6wc6XR5g,61
68
+ bec_widgets/widgets/dock/dock.py,sha256=vnOQnOWWnd-3X07kniSW_I5l0uEHZOaWhfuqZkDGIqE,8467
69
+ bec_widgets/widgets/dock/dock_area.py,sha256=UaI5Z-c9C16lhTbXmEVzfl55Y8ymKSk4sPWGleIsUVY,7182
70
+ bec_widgets/widgets/figure/__init__.py,sha256=3hGx_KOV7QHCYAV06aNuUgKq4QIYCjUTad-DrwkUaBM,44
71
+ bec_widgets/widgets/figure/figure.py,sha256=OSF5y9iMEjhZmPC1MvjCVASfDXapf_o4jeUH3JRhAl0,28565
72
+ bec_widgets/widgets/monitor/__init__.py,sha256=afXuZcBOxNAuYdCkIQXX5J60R5A3Q_86lNEW2vpFtPI,32
73
+ bec_widgets/widgets/monitor/config_dialog.py,sha256=ThR1ZGnIUHqsW4t6ns9pBLTINYLBQwDtS-ipjOg4snU,19993
74
+ bec_widgets/widgets/monitor/config_dialog.ui,sha256=ISMcF7CLTAMXhfZh2Yv5yezzAjMtb9fxY1pmX4B_jCg,5932
75
+ bec_widgets/widgets/monitor/monitor.py,sha256=ET5O48kqRlwd8_jCMCrp8QwnL8LvoNgb5nQmVw36pKg,30219
76
+ bec_widgets/widgets/monitor/tab_template.ui,sha256=JVB5fkzVhTjxMn9EdZCXsnfzBkeZpFMdTRuqTNSDSSo,4904
77
+ bec_widgets/widgets/monitor/example_configs/config_device.yaml,sha256=jn8EGvL_fk4gizCAA8P--OGn1RZGnz2aSlzQI9BcYlU,1172
78
+ bec_widgets/widgets/monitor/example_configs/config_scans.yaml,sha256=TwMhiE_4p88gBlaeoztmkwNObAeoVXLeBFIUsV1Nwu0,1889
79
+ bec_widgets/widgets/motor_control/__init__.py,sha256=_4-G9AKcEnOyS6qVE26meRw3grEohNeMzACNMU5Sig0,153
80
+ bec_widgets/widgets/motor_control/motor_control.py,sha256=sfH_uGes4B3mOFPP9BYVMtqMSCFD5fWJNQwNxV06288,42458
81
+ bec_widgets/widgets/motor_control/motor_control_absolute.ui,sha256=nR3p6oevAkIBTLW5wM_zYOVWsCAUgeMZdRm10Q77COE,4126
82
+ bec_widgets/widgets/motor_control/motor_control_relative.ui,sha256=PulNJNiws7TRAxHM2snNyvlmQ0tRShdArHmtaC85h4U,8684
83
+ bec_widgets/widgets/motor_control/motor_control_selection.ui,sha256=vXXpvNWuL6xyHhW7Lx1zmVFX-95Z5AXGlhKQD2HmM1A,1779
84
+ bec_widgets/widgets/motor_control/motor_control_table.ui,sha256=t6aRKiSmutMfp0AyupavbCs0cal-FANEnlKQiPzC9PQ,2792
85
+ bec_widgets/widgets/motor_map/__init__.py,sha256=K3c-3A_LbxK0UJ0_bV3opL-wGLTwBLendsJXsg8GAqE,32
86
+ bec_widgets/widgets/motor_map/motor_map.py,sha256=mtvYZRfzpBo9t3s8bUeo5XJPUsMMoAakydblWjZUwxQ,21713
87
+ bec_widgets/widgets/plots/__init__.py,sha256=yaCWQEXiEVj3Oh9qvD3UDzY2HE2PiDKKyKINEcVeL2k,238
88
+ bec_widgets/widgets/plots/image.py,sha256=nCgL5TK4x4uMUuF_SCfepUJaf9T3bmyvp0eU6PqT3gM,32434
89
+ bec_widgets/widgets/plots/motor_map.py,sha256=Rm0nOZa2-rBRhsN-84qSxP9XqnHGlecQoEzm3eNzYyw,15213
90
+ bec_widgets/widgets/plots/plot_base.py,sha256=oNUXEe94bD0_fVu-HPMRaoAuwPMW0DOAN8vvOeRz254,8513
91
+ bec_widgets/widgets/plots/waveform.py,sha256=DXoc3GSyEuhFFNCkvCOuY5bezS7yDQ_ynTKHgCVtktw,28611
92
+ bec_widgets/widgets/scan_control/__init__.py,sha256=IOfHl15vxb_uC6KN62-PeUzbBha_vQyqkkXbJ2HU674,38
93
+ bec_widgets/widgets/scan_control/scan_control.py,sha256=omM9_j2TWh6ibYtu6Ep3oqMjVN5gJ_vwf6KWPix3fVA,17173
94
+ bec_widgets/widgets/toolbar/__init__.py,sha256=d-TP4_cr_VbpwreMM4ePnfZ5YXsEPQ45ibEf75nuGoE,36
95
+ bec_widgets/widgets/toolbar/toolbar.py,sha256=e0zCD_0q7K4NVhrzD8001Qvfxt-VhqHTgofchS9NgCM,5125
96
+ docs/Makefile,sha256=i2WHuFlgfyAPEW4ssEP8NY4cOibDJrVjvzSEU8_Ggwc,634
97
+ docs/conf.py,sha256=lsNwHWoCuzp_hFIk_P4u6c1OI3D7IPSsH5P2DP0fWFc,2481
98
+ docs/index.md,sha256=6HrqaPXb5uUPEtM2gZaVUi1wM1kUYmdC2aIFpmItzZ0,453
99
+ docs/make.bat,sha256=vKazJE8RW49Cy8K7hm8QYbletvAd8YkeKsaPA_dWnXs,800
100
+ docs/requirements.txt,sha256=5IJN7-VApjTeFouHsaWAb5b4p6wS6wI9fKcJBxcX9QY,134
101
+ docs/_templates/custom-class-template.rst,sha256=HPuPaGJob2zXlWOl5FmA-hAZRbUTGQmdqo3HS1iIFog,711
102
+ docs/_templates/custom-module-template.rst,sha256=MXYXAz06HP_mbblO--iFwL08xROmSBo7U4O-hPbMcZU,1228
103
+ docs/developer/developer.md,sha256=xJvO-EAf-9SqDARRnqFLRd8k_o258U97V0DmvgZKMos,477
104
+ docs/developer/reference.md,sha256=P0uuBwSWuDhbXifSbyDKJRkDhb1_nETckTTnt12-A4g,150
105
+ docs/introduction/introduction.md,sha256=wp7jmhkUtJnSnEnmIAZGUcau_3-5e5-FohvZb63khw4,1432
106
+ docs/user/apps.md,sha256=BpJXL3uccqa9Z34azMqi9uUsKM1ClnIZZFLLxx_hISs,1651
107
+ docs/user/customisation.md,sha256=Og0NuUsTs8HdwKtpHnycGmH8wCqOeYgj2ozlYRJ-Drk,249
108
+ docs/user/installation.md,sha256=8eotL5UQALR8z5aZ5fiJuR3yJOldg2S91ngvn2VVp7I,1233
109
+ docs/user/user.md,sha256=e5WKSginne0HMP7KpqmYEqBtHsPUgw36Egwrq3YUnpg,1997
110
+ docs/user/widgets.md,sha256=viEb7_nqXKcnJT3HqWvq9d2MKRtuwORf58xCquwUWOo,1903
111
+ docs/user/apps/modular_app.md,sha256=My95LH2wQLx2kAbssO39N15I_Mqiiv-64ASnaeW9jbs,67
112
+ docs/user/apps/motor_app.md,sha256=GiEqDfUbKdIr661lJCQtFFJfwZKLyaKtZC9aBho0jos,2416
113
+ docs/user/apps/motor_app_10fps.gif,sha256=jLfOgPoKRcqMqpiYkZNVNHB2IodILzO0IBgWLeSYzeA,5211338
114
+ docs/user/apps/plot_app.md,sha256=hq8ZFyuBLqWD018oc6LB12vfXL6i9hiAu-2IfHkyGIA,65
115
+ docs/user/widgets/motor.gif,sha256=FtaWdRHx4UZaGJPpq8LNhMMgX4PFcAB6IZ93JCMEh_w,2280719
116
+ docs/user/widgets/scatter_2D.gif,sha256=yHpsuAUseMafJjI_J5BcOhmE3nu9VFn_Xm9XHzJaH5I,13188862
117
+ docs/user/widgets/w1D.gif,sha256=tuHbleJpl6bJFNNC2OdndF5LF7IyfvlkFCMGZajrQPs,622773
118
+ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
+ tests/end-2-end/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
120
+ tests/end-2-end/conftest.py,sha256=b5Yebbj8C1-IcXq23XGbOnXF0kOZD_Po46Z-p4cBwfs,1346
121
+ tests/end-2-end/test_bec_dock_rpc_e2e.py,sha256=vfskJxQ6xQFfG6X6Ec8GOj2SoWIk8slMd43fERroaaw,4548
122
+ tests/end-2-end/test_bec_figure_rpc_e2e.py,sha256=aEpyhRYrDC3dNScsHxJfQPfuehU6Q9wGhCGkYmooAMk,5461
123
+ tests/end-2-end/test_rpc_register_e2e.py,sha256=Jrv46F-fyJa0tls1KPTeIxXQ4oUNgWkhAMwzvMQBRR8,1581
124
+ tests/unit_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ tests/unit_tests/client_mocks.py,sha256=LNUgI9Ccv5Ol7_pmybIhoVqZZem1RPIsTDk7ZTARNls,4128
126
+ tests/unit_tests/conftest.py,sha256=KrnktXPWmZhnKNue-xGWOLD1XGEvdz9Vf7V2eO3XQ3A,596
127
+ tests/unit_tests/test_bec_connector.py,sha256=f2XXGGw3NoZLIUrDuZuEWwF_ttOYmmquCgUrV5XkIOY,1951
128
+ tests/unit_tests/test_bec_dispatcher.py,sha256=rYPiRizHaswhGZw55IBMneDFxmPiCCLAZQBqjEkpdyY,3992
129
+ tests/unit_tests/test_bec_dock.py,sha256=ZnHUoVQCGbikd0mM64XBL_k0Kxp0d3UqCHpcyY59emg,3596
130
+ tests/unit_tests/test_bec_figure.py,sha256=1nRSX2lJE_wv_R4WteECBxD0NwpQT8NaZH5q66gT-jo,7829
131
+ tests/unit_tests/test_bec_monitor.py,sha256=mN7gBY7oXY6j65zzihpy8r-FvwVoCQlie3F6SoVq0mo,7042
132
+ tests/unit_tests/test_bec_motor_map.py,sha256=oAhnahV9UcPknsCgoP_TwTIlagKola2HFajmtkxzSyo,4588
133
+ tests/unit_tests/test_client_utils.py,sha256=fIApd5WgnJuyIzV-hdSABn6T-aOel2Wr2xuUX4Z651A,774
134
+ tests/unit_tests/test_config_dialog.py,sha256=Y8I9zGG8G9jh0MRCsNl5dQT17bZL6BWaDja7fW1ncCs,6924
135
+ tests/unit_tests/test_crosshair.py,sha256=d7fX-ymboZPALNqqiAj86PZ96llmGZ_3jf0yjVP0S94,5039
136
+ tests/unit_tests/test_eiger_plot.py,sha256=bWnKBQid0YcLMQeBLy6ojb4ZpwTG-rFVT0kMg9Y08p8,4427
137
+ tests/unit_tests/test_generate_cli_client.py,sha256=J7CFoO67txGu_u1Mwk32EejRX204FRuvmVg_yhAr1WM,2397
138
+ tests/unit_tests/test_motor_control.py,sha256=210qBSZdg4hSDflgwez-pWsoU4m3W8hmGCJEdCeu6MA,20321
139
+ tests/unit_tests/test_motor_map.py,sha256=aKhJtgHOLMOlpniguuH5iGKh72ihYZ1L2S2KEmZUC0k,5875
140
+ tests/unit_tests/test_plot_base.py,sha256=bOdlgAxh9oKk5PwiQ_MSFmzr44uJ61Tlg242RCIhl5c,2610
141
+ tests/unit_tests/test_rpc_register.py,sha256=hECjZEimd440mwRrO0rg7L3PKN7__3DgjmESN6wx3bo,1179
142
+ tests/unit_tests/test_scan_control.py,sha256=7dtGpE0g4FqUhhQeCkyJl-9o7NH3DFZJgEaqDmBYbBc,7551
143
+ tests/unit_tests/test_stream_plot.py,sha256=T0y4dPUTWzACQ2x6QKCYpWQBBNoOTEEgOZJsEDek8Eo,5725
144
+ tests/unit_tests/test_validator_errors.py,sha256=NFxyv0TIOXeZKZRRUBfVQ7bpunwY4KkG95yTUdQmvns,3532
145
+ tests/unit_tests/test_waveform1d.py,sha256=cBtESTQgsVQdv-Wl75eHK9D8YY-b60Z5wqtPCo9ohu0,15002
146
+ tests/unit_tests/test_widget_io.py,sha256=FeL3ZYSBQnRt6jxj8VGYw1cmcicRQyHKleahw7XIyR0,3475
147
+ tests/unit_tests/test_yaml_dialog.py,sha256=HNrqferkdg02-9ieOhhI2mr2Qvt7GrYgXmQ061YCTbg,5794
148
+ tests/unit_tests/test_configs/config_device.yaml,sha256=h3zNb5ZaT_sA59Sf-24qsXs54MgUsspo-GOJmKWHx3o,695
149
+ tests/unit_tests/test_configs/config_device_no_entry.yaml,sha256=hdvue9KLc_kfNzGPuJGpDZnRJknoF_yDNX1Fw5VYAQY,520
150
+ tests/unit_tests/test_configs/config_scan.yaml,sha256=vo484BbWOjA_e-h6bTjSV9k7QaQHrlAvx-z8wtY-P4E,1915
151
+ tests/unit_tests/test_msgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
+ tests/unit_tests/test_msgs/available_scans_message.py,sha256=m_z97hIrjHXXMa2Ex-UvsPmTxOYXfjxyJaGkIY6StTY,46532
153
+ bec_widgets-0.53.0.dist-info/METADATA,sha256=1QaB5z1C3g33ZmM8rhX3xMTuLwN0ij3PnS66-K_ISZY,1063
154
+ bec_widgets-0.53.0.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
155
+ bec_widgets-0.53.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
156
+ bec_widgets-0.53.0.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: hatchling 1.24.2
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2023, bec
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
docs/Makefile ADDED
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = .
9
+ BUILDDIR = _build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,34 @@
1
+ {{ fullname | escape | underline}}
2
+
3
+ .. currentmodule:: {{ module }}
4
+
5
+ .. autoclass:: {{ objname }}
6
+ :members:
7
+ :show-inheritance:
8
+ :inherited-members:
9
+ :special-members: __call__, __add__, __mul__
10
+
11
+ {% block methods %}
12
+ {% if methods %}
13
+ .. rubric:: {{ _('Methods') }}
14
+
15
+ .. autosummary::
16
+ :nosignatures:
17
+ {% for item in methods %}
18
+ {%- if not item.startswith('_') %}
19
+ ~{{ name }}.{{ item }}
20
+ {%- endif -%}
21
+ {%- endfor %}
22
+ {% endif %}
23
+ {% endblock %}
24
+
25
+ {% block attributes %}
26
+ {% if attributes %}
27
+ .. rubric:: {{ _('Attributes') }}
28
+
29
+ .. autosummary::
30
+ {% for item in attributes %}
31
+ ~{{ name }}.{{ item }}
32
+ {%- endfor %}
33
+ {% endif %}
34
+ {% endblock %}
@@ -0,0 +1,66 @@
1
+ {{ fullname | escape | underline}}
2
+
3
+ .. automodule:: {{ fullname }}
4
+
5
+ {% block attributes %}
6
+ {% if attributes %}
7
+ .. rubric:: Module attributes
8
+
9
+ .. autosummary::
10
+ :toctree:
11
+ {% for item in attributes %}
12
+ {{ item }}
13
+ {%- endfor %}
14
+ {% endif %}
15
+ {% endblock %}
16
+
17
+ {% block functions %}
18
+ {% if functions %}
19
+ .. rubric:: {{ _('Functions') }}
20
+
21
+ .. autosummary::
22
+ :toctree:
23
+ :nosignatures:
24
+ {% for item in functions %}
25
+ {{ item }}
26
+ {%- endfor %}
27
+ {% endif %}
28
+ {% endblock %}
29
+
30
+ {% block classes %}
31
+ {% if classes %}
32
+ .. rubric:: {{ _('Classes') }}
33
+
34
+ .. autosummary::
35
+ :toctree:
36
+ :template: custom-class-template.rst
37
+ :nosignatures:
38
+ {% for item in classes %}
39
+ {{ item }}
40
+ {%- endfor %}
41
+ {% endif %}
42
+ {% endblock %}
43
+
44
+ {% block exceptions %}
45
+ {% if exceptions %}
46
+ .. rubric:: {{ _('Exceptions') }}
47
+
48
+ .. autosummary::
49
+ :toctree:
50
+ {% for item in exceptions %}
51
+ {{ item }}
52
+ {%- endfor %}
53
+ {% endif %}
54
+ {% endblock %}
55
+
56
+ {% block modules %}
57
+ {% if modules %}
58
+ .. autosummary::
59
+ :toctree:
60
+ :template: custom-module-template.rst
61
+ :recursive:
62
+ {% for item in modules %}
63
+ {{ item }}
64
+ {%- endfor %}
65
+ {% endif %}
66
+ {% endblock %}
docs/conf.py ADDED
@@ -0,0 +1,81 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+ #
3
+ # For the full list of built-in configuration values, see the documentation:
4
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
5
+
6
+ # -- Project information -----------------------------------------------------
7
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
8
+
9
+ import os
10
+ import pathlib
11
+
12
+ import tomli
13
+
14
+ project = "BEC Widgets"
15
+ copyright = "2023, Paul Scherrer Institute"
16
+ author = "Paul Scherrer Institute"
17
+
18
+ # -- General configuration ---------------------------------------------------
19
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
20
+
21
+ current_path = pathlib.Path(__file__).parent.parent.parent.resolve()
22
+ version_path = f"{current_path}/pyproject.toml"
23
+
24
+
25
+ def get_version():
26
+ """load the version from the version file"""
27
+ with open(version_path, "r", encoding="utf-8") as file:
28
+ res = tomli.loads(file.read())
29
+ return res["project"]["version"]
30
+
31
+
32
+ release = get_version()
33
+
34
+ extensions = [
35
+ "sphinx.ext.autodoc",
36
+ "sphinx.ext.autosummary",
37
+ # "sphinx.ext.coverage",
38
+ "sphinx.ext.viewcode",
39
+ "sphinx.ext.napoleon",
40
+ "sphinx_toolbox.collapse",
41
+ "sphinx_copybutton",
42
+ "myst_parser",
43
+ "sphinx_design",
44
+ ]
45
+
46
+ myst_enable_extensions = [
47
+ "amsmath",
48
+ "attrs_inline",
49
+ "colon_fence",
50
+ "deflist",
51
+ "dollarmath",
52
+ "fieldlist",
53
+ "html_admonition",
54
+ "html_image",
55
+ "replacements",
56
+ "smartquotes",
57
+ "strikethrough",
58
+ "substitution",
59
+ "tasklist",
60
+ ]
61
+
62
+ autosummary_generate = True # Turn on sphinx.ext.autosummary
63
+ add_module_names = False # Remove namespaces from class/method signatures
64
+ autodoc_inherit_docstrings = True # If no docstring, inherit from base class
65
+ set_type_checking_flag = True # Enable 'expensive' imports for sphinx_autodoc_typehints
66
+ autoclass_content = "both" # Include both class docstring and __init__
67
+
68
+ # Add any paths that contain templates here, relative to this directory.
69
+ templates_path = ["_templates"]
70
+ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
71
+
72
+ language = "Python"
73
+
74
+ # -- Options for HTML output -------------------------------------------------
75
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
76
+
77
+ html_theme = "pydata_sphinx_theme"
78
+ html_static_path = ["_static"]
79
+ html_css_files = ["css/custom.css"]
80
+ html_logo = "_static/bec.png"
81
+ html_theme_options = {"show_nav_level": 1, "navbar_align": "content"}
@@ -0,0 +1,26 @@
1
+ (developer)=
2
+ # Development
3
+
4
+ ```{toctree}
5
+ ---
6
+ maxdepth: 1
7
+ hidden: true
8
+ ---
9
+ reference/
10
+ ```
11
+
12
+ To contribute to the development of BEC Widgets, start by setting up the development environment:
13
+
14
+ 1. **Clone the Repository**:
15
+ ```bash
16
+ git clone https://gitlab.psi.ch/bec/bec_widgets
17
+ cd bec_widgets
18
+ ```
19
+ 2. **Install in Editable Mode**:
20
+
21
+ Installing the package in editable mode allows you to make changes to the code and test them in real-time.
22
+ ```bash
23
+ pip install -e .[dev,pyqt6]
24
+ ```
25
+
26
+
@@ -0,0 +1,10 @@
1
+ ## API Reference
2
+
3
+ ```{eval-rst}
4
+ .. autosummary::
5
+ :toctree: _autosummary
6
+ :template: custom-module-template.rst
7
+ :recursive:
8
+
9
+ bec_widgets
10
+ ```
docs/index.md ADDED
@@ -0,0 +1,39 @@
1
+ # BEC Widgets documentation
2
+
3
+ <br><br>
4
+
5
+ ````{grid} 3
6
+ :gutter: 5
7
+
8
+ ```{grid-item-card} Introduction
9
+ :link: introduction
10
+ :link-type: ref
11
+
12
+ General information.
13
+ ```
14
+
15
+ ```{grid-item-card} User
16
+ :link: user
17
+ :link-type: ref
18
+
19
+ Information for users.
20
+ ```
21
+
22
+ ```{grid-item-card} Developer
23
+ :link: developer
24
+ :link-type: ref
25
+
26
+ Information for developers.
27
+ ```
28
+ ````
29
+
30
+
31
+ ```{toctree}
32
+ ---
33
+ numbered: true
34
+ maxdepth: 1
35
+ ---
36
+
37
+ introduction/introduction
38
+ user/user
39
+ developer/developer
@@ -0,0 +1,18 @@
1
+ (introduction)=
2
+ # Introduction
3
+
4
+ ## Overview
5
+
6
+ BEC Widgets is a GUI framework developed with beamline scientists in mind, aiming to provide a modern and modular environment for interacting with experiments. This package offers a suite of widgets specifically designed to enhance the workflow of beamline experiments, including features for running scans and data visualization.
7
+
8
+ Targeting the unique needs of beamline scientists, BEC Widgets stands out with its modular approach to widget design and high customizability. This flexibility allows for tailored solutions that meet the specific requirements of each beamline.
9
+
10
+ **Key Features**:
11
+
12
+ - **Integration:** Seamlessly integrates with [BEC (Beamline Experiment Control)](https://gitlab.psi.ch/bec/bec), ensuring a cohesive and efficient experiment control experience.
13
+ - **Support for PyQt5 and PyQt6:** Provides compatibility with both PyQt5 and PyQt6, offering versatility in your development environment.
14
+ - **Widget Modularity:** Features modular widgets that can be easily combined to create customized applications, perfectly aligning with the diverse needs of beamline experiments.
15
+
16
+ ## Getting Started
17
+
18
+ For detailed usage instructions and examples showcasing the practical applications of BEC Widgets, please refer to the [User](#user) section. Developers interested in contributing or customizing BEC Widgets can find more information in the [Developer](#developer) section.
docs/make.bat ADDED
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=.
11
+ set BUILDDIR=_build
12
+
13
+ %SPHINXBUILD% >NUL 2>NUL
14
+ if errorlevel 9009 (
15
+ echo.
16
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
17
+ echo.installed, then set the SPHINXBUILD environment variable to point
18
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
19
+ echo.may add the Sphinx directory to PATH.
20
+ echo.
21
+ echo.If you don't have Sphinx installed, grab it from
22
+ echo.https://www.sphinx-doc.org/
23
+ exit /b 1
24
+ )
25
+
26
+ if "%1" == "" goto help
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
docs/requirements.txt ADDED
@@ -0,0 +1,10 @@
1
+ sphinx
2
+ sphinx_copybutton
3
+ recommonmark
4
+ sphinx-toolbox
5
+ pydata-sphinx-theme
6
+ sphinx-copybutton
7
+ myst-parser
8
+ sphinx-design
9
+ bec-widgets
10
+ tomli
@@ -0,0 +1,6 @@
1
+ (user.apps.modular_app)=
2
+
3
+ # Modular Application
4
+
5
+
6
+ _to be added..._
@@ -0,0 +1,34 @@
1
+ (user.apps.motor_app)=
2
+ # Motor Alignment
3
+
4
+ The Motor Alignment Application is a key component of the BEC Widgets suite, designed to facilitate precise alignment of motors.
5
+ Users can easily launch this app using the script located at `/bec_widgets/example/motor_movement/motor_example.py` script.
6
+ The application's primary function is to enable users to align motors to specific positions and to visually track the motor's trajectory.
7
+
8
+ ## Controlling Motors
9
+
10
+ In the top middle panel of the application, users will find combobox dropdown menus for selecting the motors they wish to track on the x and y axes of the motor map.
11
+ These motors are automatically loaded from the current active BEC instance, ensuring seamless integration and ease of use.
12
+
13
+ There are two primary methods to control motor movements:
14
+
15
+
16
+ 1. **Manual Control with Arrow Keys:** Users can manually drive the motors using arrow keys. Before doing so, they need to select the step size for each motor, allowing for precise and incremental movements.
17
+ 2. **Direct Position Entry:** Alternatively, users can input a desired position in the text input box and then click the Go button. This action will move the motor directly to the specified coordinates.
18
+
19
+ As the motors are moved, their trajectory is plotted in real-time, providing users with a visual representation of the motor's path. This feature is particularly useful for understanding the movement patterns and making necessary adjustments.
20
+
21
+
22
+ ## Saving and Exporting Data
23
+
24
+ Users have the ability to save the current motor position in a table widget. This functionality is beneficial for recalling and returning to specific positions. By clicking the Go button in the table widget, the motors will automatically move back to the saved position.
25
+
26
+ Additionally, users can annotate each saved position with notes and comments directly in the table widget. This feature is invaluable for keeping track of specific alignment settings or observations. The contents of the table, including the notes, can be exported to a .csv file. This exported data can be used for initiating scans or for record-keeping purposes.
27
+
28
+ The table widget also supports saving and loading functionalities, allowing users to preserve their motor positions and notes across sessions. The saved files are in a user-friendly format for ease of access and use.
29
+
30
+
31
+ ## Example of Use
32
+
33
+ ![Motor app example](motor_app_10fps.gif)
34
+
Binary file
@@ -0,0 +1,6 @@
1
+ (user.apps.plot_app)=
2
+
3
+ # General Plotting Tool
4
+
5
+
6
+ _to be added..._
docs/user/apps.md ADDED
@@ -0,0 +1,39 @@
1
+ (user.apps)=
2
+ # Applications
3
+
4
+ In the `bec_widgets/examples` directory, you will find practical applications that demonstrate the capabilities of BEC Widgets in real-world scenarios. These applications showcase the adaptability and functionality of the framework for various beamline experiment needs.
5
+
6
+ **Motor Alignment Tool**
7
+
8
+ This tool assists in aligning motors with samples during experiments. It enables users to move motors, visually track their movement, and record positions for precise alignment.
9
+
10
+ - **Location:** `bec_widgets/examples/motor_movement`
11
+ - **Further Details:** [Motor Alignment Tool Documentation](#user.apps.motor_app)
12
+
13
+ **General Plotting Live Acquisition Tool**
14
+
15
+ This application is designed for live data visualization. It allows users to view real-time signals from detectors in a multi-grid layout, facilitating immediate analysis during experiments.
16
+
17
+ - **Location:** `bec_widgets/examples/plot_app`
18
+ - **Further Details:** [General Plotting Live Acquisition Tool Documentation](#user.apps.plot_app)
19
+
20
+
21
+ **Modular Application**
22
+
23
+ A bespoke application built entirely using BEC Widgets' modular components. This example illustrates the framework's flexibility in creating customized GUIs tailored to specific experimental setups.
24
+
25
+ - **Location:** `bec_widgets/examples/modular_app`
26
+ - **Further Details:** [Modular Application](#user.apps.modular_app)
27
+
28
+ ---
29
+ Note: The documentation for these applications is currently under development. The provided links will direct you to their respective pages once the documentation is complete.
30
+
31
+ ```{toctree}
32
+ ---
33
+ maxdepth: 1
34
+ hidden: true
35
+ ---
36
+
37
+ apps/motor_app
38
+ apps/plot_app
39
+ apps/modular_app
@@ -0,0 +1,13 @@
1
+ (user.customisation)=
2
+ # Customisation
3
+
4
+ BEC Widgets are designed to be used with QtDesigner to quicly design GUI.
5
+
6
+
7
+ ## Example of promoting widgets in Qt Designer
8
+
9
+ _Work in progress_
10
+
11
+ ## Implementation of plugins into Qt Designer
12
+
13
+ _Work in progress_