bec-widgets 0.99.8__py3-none-any.whl → 0.99.9__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 (155) hide show
  1. CHANGELOG.md +6 -6
  2. PKG-INFO +1 -1
  3. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/METADATA +1 -1
  4. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/RECORD +8 -155
  5. pyproject.toml +6 -1
  6. docs/Makefile +0 -20
  7. docs/_static/custom.css +0 -170
  8. docs/_templates/custom-class-template.rst +0 -34
  9. docs/_templates/custom-module-template.rst +0 -66
  10. docs/api_reference/api_reference.md +0 -12
  11. docs/assets/apps_48dp.svg +0 -1
  12. docs/assets/display_settings_48dp.svg +0 -1
  13. docs/assets/index_api.svg +0 -97
  14. docs/assets/index_contribute.svg +0 -76
  15. docs/assets/index_getting_started.svg +0 -66
  16. docs/assets/index_user_guide.svg +0 -67
  17. docs/assets/rocket_launch_48dp.svg +0 -1
  18. docs/assets/widget_screenshots/buttons.png +0 -0
  19. docs/assets/widget_screenshots/device_box.png +0 -0
  20. docs/assets/widget_screenshots/device_browser.png +0 -0
  21. docs/assets/widget_screenshots/device_inputs.png +0 -0
  22. docs/assets/widget_screenshots/dock_area.png +0 -0
  23. docs/assets/widget_screenshots/figure.png +0 -0
  24. docs/assets/widget_screenshots/image_widget.png +0 -0
  25. docs/assets/widget_screenshots/motor_map_widget.png +0 -0
  26. docs/assets/widget_screenshots/position_indicator.png +0 -0
  27. docs/assets/widget_screenshots/queue.png +0 -0
  28. docs/assets/widget_screenshots/ring_progress_bar.png +0 -0
  29. docs/assets/widget_screenshots/scan_controller.png +0 -0
  30. docs/assets/widget_screenshots/spinner.gif +0 -0
  31. docs/assets/widget_screenshots/status_box.png +0 -0
  32. docs/assets/widget_screenshots/text_box.png +0 -0
  33. docs/assets/widget_screenshots/toggle.png +0 -0
  34. docs/assets/widget_screenshots/waveform_widget.png +0 -0
  35. docs/assets/widget_screenshots/website.png +0 -0
  36. docs/conf.py +0 -82
  37. docs/developer/developer.md +0 -52
  38. docs/developer/introduction/concepts.md +0 -14
  39. docs/developer/introduction/contributing.md +0 -28
  40. docs/developer/introduction/introduction.md +0 -16
  41. docs/developer/introduction/useful_links.md +0 -23
  42. docs/developer/widget_development/bec_dispatcher.md +0 -143
  43. docs/developer/widget_development/widget_base_class.md +0 -171
  44. docs/developer/widget_development/widget_development.md +0 -14
  45. docs/index.md +0 -74
  46. docs/introduction/introduction.md +0 -18
  47. docs/make.bat +0 -35
  48. docs/requirements.txt +0 -12
  49. docs/user/api_reference/api_reference.md +0 -11
  50. docs/user/applications/applications.md +0 -10
  51. docs/user/customisation.md +0 -123
  52. docs/user/getting_started/BECDockArea.png +0 -0
  53. docs/user/getting_started/auto_updates.md +0 -82
  54. docs/user/getting_started/getting_started.md +0 -15
  55. docs/user/getting_started/gui_complex_gui.gif +0 -0
  56. docs/user/getting_started/installation.md +0 -33
  57. docs/user/getting_started/quick_start.md +0 -110
  58. docs/user/getting_started/video_tutorials.md +0 -17
  59. docs/user/user.md +0 -71
  60. docs/user/widgets/bec_figure/BECFigure.png +0 -0
  61. docs/user/widgets/bec_figure/bec_figure.md +0 -105
  62. docs/user/widgets/bec_status_box/bec_status_box.gif +0 -0
  63. docs/user/widgets/bec_status_box/bec_status_box.md +0 -38
  64. docs/user/widgets/buttons/buttons.md +0 -90
  65. docs/user/widgets/buttons/dark_mode_disabled.png +0 -0
  66. docs/user/widgets/buttons/dark_mode_enabled.png +0 -0
  67. docs/user/widgets/device_browser/device_browser.md +0 -36
  68. docs/user/widgets/device_browser/device_browser.png +0 -0
  69. docs/user/widgets/device_input/device_input.md +0 -100
  70. docs/user/widgets/dock_area/BECDockArea.png +0 -0
  71. docs/user/widgets/dock_area/bec_dock_area.md +0 -109
  72. docs/user/widgets/image/image_plot.gif +0 -0
  73. docs/user/widgets/image/image_widget.md +0 -84
  74. docs/user/widgets/motor_map/motor.gif +0 -0
  75. docs/user/widgets/motor_map/motor_map.md +0 -80
  76. docs/user/widgets/position_indicator/position_indicator.md +0 -69
  77. docs/user/widgets/positioner_box/positioner_box.md +0 -63
  78. docs/user/widgets/progress_bar/progress_bar.gif +0 -0
  79. docs/user/widgets/progress_bar/ring_progress_bar.md +0 -103
  80. docs/user/widgets/queue/queue.md +0 -41
  81. docs/user/widgets/scan_control/hide_scan_control.png +0 -0
  82. docs/user/widgets/scan_control/scan_control.gif +0 -0
  83. docs/user/widgets/scan_control/scan_control.md +0 -54
  84. docs/user/widgets/spinner/spinner.md +0 -68
  85. docs/user/widgets/text_box/text_box.md +0 -74
  86. docs/user/widgets/toggle/toggle.md +0 -66
  87. docs/user/widgets/waveform/bec_figure_dap.gif +0 -0
  88. docs/user/widgets/waveform/scatter_2D.gif +0 -0
  89. docs/user/widgets/waveform/w1D.gif +0 -0
  90. docs/user/widgets/waveform/waveform_widget.md +0 -132
  91. docs/user/widgets/website/website.md +0 -69
  92. docs/user/widgets/widgets.md +0 -220
  93. tests/__init__.py +0 -0
  94. tests/end-2-end/__init__.py +0 -0
  95. tests/end-2-end/conftest.py +0 -53
  96. tests/end-2-end/test_bec_dock_rpc_e2e.py +0 -298
  97. tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -212
  98. tests/end-2-end/test_rpc_register_e2e.py +0 -40
  99. tests/end-2-end/test_scan_control_e2e.py +0 -71
  100. tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
  101. tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
  102. tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
  103. tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
  104. tests/unit_tests/__init__.py +0 -0
  105. tests/unit_tests/client_mocks.py +0 -189
  106. tests/unit_tests/conftest.py +0 -64
  107. tests/unit_tests/test_bec_connector.py +0 -80
  108. tests/unit_tests/test_bec_dispatcher.py +0 -119
  109. tests/unit_tests/test_bec_dock.py +0 -155
  110. tests/unit_tests/test_bec_figure.py +0 -270
  111. tests/unit_tests/test_bec_image.py +0 -63
  112. tests/unit_tests/test_bec_image_widget.py +0 -217
  113. tests/unit_tests/test_bec_motor_map.py +0 -282
  114. tests/unit_tests/test_bec_queue.py +0 -111
  115. tests/unit_tests/test_bec_status_box.py +0 -123
  116. tests/unit_tests/test_client_utils.py +0 -76
  117. tests/unit_tests/test_color_map_selector.py +0 -42
  118. tests/unit_tests/test_color_validation.py +0 -75
  119. tests/unit_tests/test_configs/config_device.yaml +0 -33
  120. tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -27
  121. tests/unit_tests/test_configs/config_scan.yaml +0 -82
  122. tests/unit_tests/test_crosshair.py +0 -143
  123. tests/unit_tests/test_dark_mode_button.py +0 -70
  124. tests/unit_tests/test_device_browser.py +0 -83
  125. tests/unit_tests/test_device_input_base.py +0 -76
  126. tests/unit_tests/test_device_input_widgets.py +0 -178
  127. tests/unit_tests/test_error_utils.py +0 -63
  128. tests/unit_tests/test_generate_cli_client.py +0 -123
  129. tests/unit_tests/test_generate_plugin.py +0 -155
  130. tests/unit_tests/test_motor_map_widget.py +0 -194
  131. tests/unit_tests/test_msgs/__init__.py +0 -0
  132. tests/unit_tests/test_msgs/available_scans_message.py +0 -989
  133. tests/unit_tests/test_plot_base.py +0 -95
  134. tests/unit_tests/test_plugin_utils.py +0 -13
  135. tests/unit_tests/test_positioner_box.py +0 -130
  136. tests/unit_tests/test_ring_progress_bar.py +0 -337
  137. tests/unit_tests/test_rpc_register.py +0 -52
  138. tests/unit_tests/test_rpc_server.py +0 -42
  139. tests/unit_tests/test_rpc_widget_handler.py +0 -7
  140. tests/unit_tests/test_scan_control.py +0 -324
  141. tests/unit_tests/test_scan_control_group_box.py +0 -160
  142. tests/unit_tests/test_setting_dialog.py +0 -96
  143. tests/unit_tests/test_spinner.py +0 -31
  144. tests/unit_tests/test_stop_button.py +0 -27
  145. tests/unit_tests/test_text_box_widget.py +0 -54
  146. tests/unit_tests/test_toggle.py +0 -38
  147. tests/unit_tests/test_vscode_widget.py +0 -75
  148. tests/unit_tests/test_waveform1d.py +0 -712
  149. tests/unit_tests/test_waveform_widget.py +0 -462
  150. tests/unit_tests/test_website_widget.py +0 -25
  151. tests/unit_tests/test_widget_io.py +0 -90
  152. tests/unit_tests/test_yaml_dialog.py +0 -163
  153. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/WHEEL +0 -0
  154. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/entry_points.txt +0 -0
  155. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/licenses/LICENSE +0 -0
docs/assets/index_api.svg DELETED
@@ -1,97 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
-
4
- <svg
5
- xmlns:dc="http://purl.org/dc/elements/1.1/"
6
- xmlns:cc="http://creativecommons.org/ns#"
7
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
- xmlns:svg="http://www.w3.org/2000/svg"
9
- xmlns="http://www.w3.org/2000/svg"
10
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
- width="99.058548mm"
13
- height="89.967583mm"
14
- viewBox="0 0 99.058554 89.967582"
15
- version="1.1"
16
- id="svg1040"
17
- inkscape:version="0.92.4 (f8dce91, 2019-08-02)"
18
- sodipodi:docname="index_api.svg">
19
- <defs
20
- id="defs1034" />
21
- <sodipodi:namedview
22
- id="base"
23
- pagecolor="#ffffff"
24
- bordercolor="#666666"
25
- borderopacity="1.0"
26
- inkscape:pageopacity="0.0"
27
- inkscape:pageshadow="2"
28
- inkscape:zoom="0.35"
29
- inkscape:cx="533.74914"
30
- inkscape:cy="10.90433"
31
- inkscape:document-units="mm"
32
- inkscape:current-layer="layer1"
33
- showgrid="false"
34
- fit-margin-top="0"
35
- fit-margin-left="0"
36
- fit-margin-right="0"
37
- fit-margin-bottom="0"
38
- inkscape:window-width="930"
39
- inkscape:window-height="472"
40
- inkscape:window-x="2349"
41
- inkscape:window-y="267"
42
- inkscape:window-maximized="0" />
43
- <metadata
44
- id="metadata1037">
45
- <rdf:RDF>
46
- <cc:Work
47
- rdf:about="">
48
- <dc:format>image/svg+xml</dc:format>
49
- <dc:type
50
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
51
- <dc:title></dc:title>
52
- </cc:Work>
53
- </rdf:RDF>
54
- </metadata>
55
- <g
56
- inkscape:label="Layer 1"
57
- inkscape:groupmode="layer"
58
- id="layer1"
59
- transform="translate(195.19933,-1.0492759)">
60
- <g
61
- id="g1008"
62
- transform="matrix(1.094977,0,0,1.094977,-521.5523,-198.34055)">
63
- <path
64
- inkscape:connector-curvature="0"
65
- id="path899"
66
- d="M 324.96812,187.09499 H 303.0455 v 72.1639 h 22.67969"
67
- style="fill:none;stroke:#5a5a5a;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
68
- <path
69
- inkscape:connector-curvature="0"
70
- id="path899-3"
71
- d="m 361.58921,187.09499 h 21.92262 v 72.1639 h -22.67969"
72
- style="fill:none;stroke:#5a5a5a;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
73
- <g
74
- transform="translate(415.87139,46.162126)"
75
- id="g944">
76
- <circle
77
- style="fill:#5a5a5a;fill-opacity:1;stroke:#5a5a5a;stroke-width:4.53704548;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
78
- id="path918"
79
- cx="-84.40152"
80
- cy="189.84375"
81
- r="2.2293637" />
82
- <circle
83
- style="fill:#5a5a5a;fill-opacity:1;stroke:#5a5a5a;stroke-width:4.53704548;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
84
- id="path918-5"
85
- cx="-72.949402"
86
- cy="189.84375"
87
- r="2.2293637" />
88
- <circle
89
- style="fill:#5a5a5a;fill-opacity:1;stroke:#5a5a5a;stroke-width:4.53704548;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
90
- id="path918-6"
91
- cx="-61.497284"
92
- cy="189.84375"
93
- r="2.2293637" />
94
- </g>
95
- </g>
96
- </g>
97
- </svg>
@@ -1,76 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
-
4
- <svg
5
- xmlns:dc="http://purl.org/dc/elements/1.1/"
6
- xmlns:cc="http://creativecommons.org/ns#"
7
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
- xmlns:svg="http://www.w3.org/2000/svg"
9
- xmlns="http://www.w3.org/2000/svg"
10
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
- width="89.624855mm"
13
- height="89.96759mm"
14
- viewBox="0 0 89.62486 89.96759"
15
- version="1.1"
16
- id="svg1040"
17
- inkscape:version="0.92.4 (f8dce91, 2019-08-02)"
18
- sodipodi:docname="index_contribute.svg">
19
- <defs
20
- id="defs1034" />
21
- <sodipodi:namedview
22
- id="base"
23
- pagecolor="#ffffff"
24
- bordercolor="#666666"
25
- borderopacity="1.0"
26
- inkscape:pageopacity="0.0"
27
- inkscape:pageshadow="2"
28
- inkscape:zoom="0.35"
29
- inkscape:cx="683.11893"
30
- inkscape:cy="-59.078181"
31
- inkscape:document-units="mm"
32
- inkscape:current-layer="layer1"
33
- showgrid="false"
34
- fit-margin-top="0"
35
- fit-margin-left="0"
36
- fit-margin-right="0"
37
- fit-margin-bottom="0"
38
- inkscape:window-width="930"
39
- inkscape:window-height="472"
40
- inkscape:window-x="2349"
41
- inkscape:window-y="267"
42
- inkscape:window-maximized="0" />
43
- <metadata
44
- id="metadata1037">
45
- <rdf:RDF>
46
- <cc:Work
47
- rdf:about="">
48
- <dc:format>image/svg+xml</dc:format>
49
- <dc:type
50
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
51
- <dc:title></dc:title>
52
- </cc:Work>
53
- </rdf:RDF>
54
- </metadata>
55
- <g
56
- inkscape:label="Layer 1"
57
- inkscape:groupmode="layer"
58
- id="layer1"
59
- transform="translate(234.72009,17.466935)">
60
- <g
61
- id="g875"
62
- transform="matrix(0.99300176,0,0,0.99300176,-133.24106,-172.58804)">
63
- <path
64
- sodipodi:nodetypes="ccc"
65
- inkscape:connector-curvature="0"
66
- id="path869"
67
- d="m -97.139881,161.26069 47.247024,40.25446 -47.247024,40.25446"
68
- style="fill:none;stroke:#5a5a5a;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
69
- <path
70
- inkscape:connector-curvature="0"
71
- id="path871"
72
- d="m -49.514879,241.81547 h 32.505951"
73
- style="fill:none;stroke:#5a5a5a;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
74
- </g>
75
- </g>
76
- </svg>
@@ -1,66 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
-
4
- <svg
5
- xmlns:dc="http://purl.org/dc/elements/1.1/"
6
- xmlns:cc="http://creativecommons.org/ns#"
7
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
- xmlns:svg="http://www.w3.org/2000/svg"
9
- xmlns="http://www.w3.org/2000/svg"
10
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
- width="101.09389mm"
13
- height="89.96759mm"
14
- viewBox="0 0 101.09389 89.96759"
15
- version="1.1"
16
- id="svg1040"
17
- inkscape:version="0.92.4 (f8dce91, 2019-08-02)"
18
- sodipodi:docname="index_getting_started.svg">
19
- <defs
20
- id="defs1034" />
21
- <sodipodi:namedview
22
- id="base"
23
- pagecolor="#ffffff"
24
- bordercolor="#666666"
25
- borderopacity="1.0"
26
- inkscape:pageopacity="0.0"
27
- inkscape:pageshadow="2"
28
- inkscape:zoom="0.35"
29
- inkscape:cx="-93.242129"
30
- inkscape:cy="-189.9825"
31
- inkscape:document-units="mm"
32
- inkscape:current-layer="layer1"
33
- showgrid="false"
34
- fit-margin-top="0"
35
- fit-margin-left="0"
36
- fit-margin-right="0"
37
- fit-margin-bottom="0"
38
- inkscape:window-width="1875"
39
- inkscape:window-height="1056"
40
- inkscape:window-x="1965"
41
- inkscape:window-y="0"
42
- inkscape:window-maximized="1" />
43
- <metadata
44
- id="metadata1037">
45
- <rdf:RDF>
46
- <cc:Work
47
- rdf:about="">
48
- <dc:format>image/svg+xml</dc:format>
49
- <dc:type
50
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
51
- <dc:title></dc:title>
52
- </cc:Work>
53
- </rdf:RDF>
54
- </metadata>
55
- <g
56
- inkscape:label="Layer 1"
57
- inkscape:groupmode="layer"
58
- id="layer1"
59
- transform="translate(2.9219487,-8.5995374)">
60
- <path
61
- style="fill:#5a5a5a;fill-opacity:1;stroke-width:0.20233451"
62
- d="M 37.270955,98.335591 C 33.358064,97.07991 31.237736,92.52319 32.964256,89.08022 c 0.18139,-0.361738 4.757999,-5.096629 10.17021,-10.521968 l 9.84041,-9.864254 -4.03738,-4.041175 -4.037391,-4.041172 -4.96415,4.916665 c -3.61569,3.581096 -5.238959,5.04997 -5.975818,5.407377 l -1.011682,0.490718 H 17.267525 1.5866055 L 0.65034544,70.96512 C -2.2506745,69.535833 -3.5952145,66.18561 -2.5925745,62.884631 c 0.53525,-1.762217 1.61699004,-3.050074 3.22528014,-3.839847 l 1.15623996,-0.56778 13.2591094,-0.05613 13.259111,-0.05613 11.5262,-11.527539 11.526199,-11.527528 H 40.622647 c -12.145542,0 -12.189222,-0.0046 -13.752801,-1.445851 -2.229871,-2.055423 -2.162799,-5.970551 0.135998,-7.938238 1.475193,-1.262712 1.111351,-1.238469 18.588522,-1.238469 12.899229,0 16.035311,0.05193 16.692589,0.276494 0.641832,0.219264 2.590731,2.051402 9.416301,8.852134 l 8.606941,8.575638 h 6.848168 c 4.837422,0 7.092281,0.07311 7.679571,0.249094 0.48064,0.144008 1.22985,0.634863 1.77578,1.163429 2.383085,2.307333 1.968685,6.539886 -0.804989,8.221882 -0.571871,0.346781 -1.38284,0.687226 -1.80217,0.756523 -0.41933,0.06928 -4.2741,0.127016 -8.56615,0.128238 -6.56998,0.0016 -7.977492,-0.04901 -8.902732,-0.321921 -0.975569,-0.287742 -1.400468,-0.622236 -3.783999,-2.978832 l -2.685021,-2.654679 -5.05411,5.051071 -5.0541,5.051081 3.926292,3.947202 c 2.365399,2.378001 4.114289,4.309171 4.399158,4.857713 0.39266,0.75606 0.47311,1.219412 0.474321,2.731516 0.003,3.083647 0.620779,2.331942 -13.598011,16.531349 -10.273768,10.259761 -12.679778,12.563171 -13.500979,12.92519 -1.267042,0.55857 -3.156169,0.681342 -4.390271,0.285321 z m 40.130741,-65.45839 c -2.212909,-0.579748 -3.782711,-1.498393 -5.51275,-3.226063 -2.522111,-2.518633 -3.633121,-5.181304 -3.633121,-8.707194 0,-3.530699 1.11238,-6.197124 3.631161,-8.704043 4.866751,-4.8438383 12.324781,-4.8550953 17.211791,-0.026 3.908758,3.862461 4.818578,9.377999 2.372188,14.380771 -0.846209,1.730481 -3.39493,4.326384 -5.143839,5.239072 -2.69708,1.407492 -6.042829,1.798628 -8.92543,1.043434 z"
63
- id="path1000"
64
- inkscape:connector-curvature="0" />
65
- </g>
66
- </svg>
@@ -1,67 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
-
4
- <svg
5
- xmlns:dc="http://purl.org/dc/elements/1.1/"
6
- xmlns:cc="http://creativecommons.org/ns#"
7
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
- xmlns:svg="http://www.w3.org/2000/svg"
9
- xmlns="http://www.w3.org/2000/svg"
10
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
- width="123.72241mm"
13
- height="89.96759mm"
14
- viewBox="0 0 123.72242 89.96759"
15
- version="1.1"
16
- id="svg1040"
17
- inkscape:version="0.92.4 (f8dce91, 2019-08-02)"
18
- sodipodi:docname="index_userguide.svg">
19
- <defs
20
- id="defs1034" />
21
- <sodipodi:namedview
22
- id="base"
23
- pagecolor="#ffffff"
24
- bordercolor="#666666"
25
- borderopacity="1.0"
26
- inkscape:pageopacity="0.0"
27
- inkscape:pageshadow="2"
28
- inkscape:zoom="0.35"
29
- inkscape:cx="332.26618"
30
- inkscape:cy="83.744004"
31
- inkscape:document-units="mm"
32
- inkscape:current-layer="layer1"
33
- showgrid="false"
34
- fit-margin-top="0"
35
- fit-margin-left="0"
36
- fit-margin-right="0"
37
- fit-margin-bottom="0"
38
- inkscape:window-width="930"
39
- inkscape:window-height="472"
40
- inkscape:window-x="2349"
41
- inkscape:window-y="267"
42
- inkscape:window-maximized="0" />
43
- <metadata
44
- id="metadata1037">
45
- <rdf:RDF>
46
- <cc:Work
47
- rdf:about="">
48
- <dc:format>image/svg+xml</dc:format>
49
- <dc:type
50
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
51
- <dc:title></dc:title>
52
- </cc:Work>
53
- </rdf:RDF>
54
- </metadata>
55
- <g
56
- inkscape:label="Layer 1"
57
- inkscape:groupmode="layer"
58
- id="layer1"
59
- transform="translate(141.8903,-20.32143)">
60
- <path
61
- style="fill:#5a5a5a;fill-opacity:1;stroke-width:0.20483544"
62
- d="m -139.53374,110.1657 c -0.80428,-0.24884 -1.71513,-1.11296 -2.07107,-1.96486 -0.23905,-0.57214 -0.28453,-6.28104 -0.28453,-35.720988 0,-38.274546 -0.079,-35.840728 1.19849,-36.91568 0.58869,-0.495345 4.63766,-2.187548 8.47998,-3.544073 l 1.58749,-0.560453 v -3.309822 c 0,-3.025538 0.0396,-3.388179 0.46086,-4.222122 0.68808,-1.362003 1.38671,-1.714455 4.60319,-2.322195 4.12797,-0.779966 5.13304,-0.912766 8.81544,-1.16476 11.80964,-0.808168 22.80911,2.509277 30.965439,9.3392 1.750401,1.465747 3.840861,3.5635 5.0903,5.108065 l 0.659122,0.814805 0.659109,-0.814805 c 1.249431,-1.544565 3.33988,-3.642318 5.09029,-5.108065 8.156331,-6.829923 19.155791,-10.147368 30.965441,-9.3392 3.682389,0.251994 4.68748,0.384794 8.81544,1.16476 3.21647,0.60774 3.91511,0.960192 4.60318,2.322195 0.4213,0.833943 0.46087,1.196584 0.46087,4.222122 v 3.309822 l 1.58748,0.560453 c 4.10165,1.448077 7.98852,3.072753 8.5259,3.563743 1.22643,1.120567 1.15258,-1.245868 1.15258,36.927177 0,34.567591 -0.005,35.083151 -0.40663,35.903991 -0.22365,0.45804 -0.73729,1.05665 -1.14143,1.33024 -1.22281,0.82783 -2.17721,0.70485 -5.86813,-0.7561 -9.19595,-3.63998 -18.956011,-6.38443 -26.791332,-7.53353 -3.02827,-0.44412 -9.26189,-0.61543 -11.77821,-0.3237 -5.19357,0.60212 -8.736108,2.05527 -11.700039,4.79936 -0.684501,0.63371 -1.466141,1.23646 -1.736979,1.33942 -0.63859,0.2428 -4.236521,0.2428 -4.875112,0 -0.27083,-0.10296 -1.05247,-0.70571 -1.73696,-1.33942 -2.96395,-2.74409 -6.50648,-4.19724 -11.700058,-4.79936 -2.516312,-0.29173 -8.749941,-0.12042 -11.778201,0.3237 -7.78194,1.14127 -17.39965,3.83907 -26.73341,7.49883 -3.38325,1.32658 -4.15525,1.50926 -5.11851,1.21125 z m 4.2107,-5.34052 c 5.86759,-2.29858 14.40398,-4.922695 20.2018,-6.210065 6.31584,-1.402418 8.5236,-1.646248 14.91592,-1.647338 4.68699,-7.94e-4 6.013661,0.0632 7.257809,0.3497 0.837332,0.19286 1.561052,0.312028 1.60828,0.264819 0.147111,-0.147119 -1.803289,-1.307431 -4.154879,-2.471801 -8.12511,-4.023029 -18.27311,-4.986568 -29.0861,-2.761718 -1.09536,0.22538 -2.32708,0.40827 -2.73715,0.406418 -1.12787,-0.005 -2.3054,-0.76382 -2.84516,-1.8332 l -0.46086,-0.913098 V 62.99179 35.97471 l -0.56331,0.138329 c -0.30981,0.07608 -1.89985,0.665075 -3.5334,1.308881 -2.27551,0.896801 -2.96414,1.252878 -2.94452,1.522563 0.014,0.193604 0.0372,15.284513 0.0512,33.535345 0.014,18.250839 0.0538,33.183322 0.0884,33.183322 0.0346,0 1.02543,-0.3771 2.20198,-0.83801 z m 113.006991,-32.697216 -0.0518,-33.535203 -3.17495,-1.272156 c -1.74623,-0.699685 -3.33627,-1.278755 -3.53341,-1.286819 -0.33966,-0.01389 -0.35847,1.401778 -0.35847,26.980216 v 26.994863 l -0.46087,0.913112 c -0.53976,1.06939 -1.71729,1.828088 -2.84515,1.833189 -0.41008,0.0021 -1.6418,-0.181031 -2.73716,-0.406421 -11.888201,-2.446089 -22.84337,-1.046438 -31.491022,4.02332 -1.68175,0.985941 -2.216748,1.467501 -1.36534,1.228942 1.575181,-0.441362 4.990592,-0.73864 8.524862,-0.742011 5.954408,-0.005 11.43046,0.791951 19.10874,2.78333 3.9516,1.024874 12.1555,3.687454 15.6699,5.085704 1.23926,0.49306 2.36869,0.90517 2.50985,0.9158 0.20489,0.0155 0.2462,-6.745894 0.20483,-33.515866 z m -59.76135,-2.233777 V 40.065438 l -0.95972,-1.357442 c -1.380522,-1.952627 -5.376262,-5.847994 -7.64336,-7.45136 -3.778692,-2.672401 -9.063392,-4.943324 -13.672511,-5.875304 -3.19731,-0.646503 -5.23069,-0.833103 -9.05886,-0.831312 -4.37716,0.0021 -7.70223,0.349169 -11.83461,1.235469 l -1.07538,0.230645 v 31.242342 c 0,26.565778 0.0426,31.226011 0.28429,31.133261 0.15637,-0.06 1.42379,-0.297169 2.81648,-0.527026 12.37657,-2.042634 23.21658,-0.346861 32.521639,5.087596 2.10018,1.226558 5.20202,3.618878 6.880942,5.30692 0.788609,0.792909 1.502978,1.446609 1.587468,1.452679 0.0845,0.006 0.153622,-13.411893 0.153622,-29.817719 z m 5.80221,28.3766 c 6.21476,-6.141601 15.08488,-10.061509 25.025529,-11.05933 4.262419,-0.427849 11.579921,-0.0054 16.017661,0.924912 0.75932,0.15916 1.45259,0.244888 1.54058,0.190498 0.088,-0.05434 0.16003,-14.060382 0.16003,-31.124436 V 26.176883 l -0.52136,-0.198219 c -0.66893,-0.254325 -4.77649,-0.95482 -7.159981,-1.221048 -2.41372,-0.269605 -8.559851,-0.266589 -10.759229,0.0052 -6.458111,0.798299 -12.584091,3.083792 -17.405651,6.49374 -2.267091,1.603366 -6.262831,5.498733 -7.64336,7.45136 l -0.959721,1.357438 v 29.828747 c 0,16.405812 0.0532,29.828746 0.11802,29.828746 0.065,0 0.77928,-0.65347 1.587482,-1.452149 z"
63
- id="path845"
64
- inkscape:connector-curvature="0"
65
- sodipodi:nodetypes="csscccscsssscsssssscscsccsccsccscsscccccccscccccccccsccscscscccscccsccssccsscccscccccsccccsccscsccsscc" />
66
- </g>
67
- </svg>
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 20 20" height="48px" viewBox="0 0 20 20" width="48px" fill="#000000"><g><rect fill="none" height="20" width="20" x="0"/></g><g><g><path d="M14.45,10.86l0.26,2.1c0.06,0.46-0.1,0.92-0.43,1.25l-3.55,3.55l-1.41-4.24l-2.83-2.83L2.25,9.27l3.55-3.55 c0.33-0.33,0.79-0.49,1.25-0.43l2.1,0.26C13.92,0.78,17.8,2.2,17.8,2.2C17.8,2.2,19.22,6.08,14.45,10.86z M10.2,6.62 C9.18,7.64,8.37,9.06,7.9,9.97l2.12,2.12c0.91-0.46,2.34-1.27,3.36-2.3C16.18,7,16.54,4.67,16.5,3.5C15.33,3.46,13,3.82,10.2,6.62 z M14,7.5C14,6.68,13.32,6,12.5,6C11.67,6,11,6.68,11,7.5S11.67,9,12.5,9C13.32,9,14,8.33,14,7.5z M7.99,6.92L6.86,6.78L5.02,8.61 l1.62,0.54C6.97,8.52,7.43,7.71,7.99,6.92z M10.85,13.36l0.54,1.62l1.83-1.83l-0.14-1.14C12.29,12.57,11.48,13.03,10.85,13.36z M5.25,12.5c-0.62,0-1.18,0.25-1.59,0.66C2.44,14.38,2,18,2,18s3.62-0.44,4.84-1.66c0.41-0.41,0.66-0.97,0.66-1.59 C7.5,13.51,6.49,12.5,5.25,12.5z M5.78,15.28c-0.44,0.44-1.87,0.81-1.87,0.81s0.37-1.43,0.81-1.87c0.29-0.29,0.77-0.29,1.06,0 S6.07,14.99,5.78,15.28z"/></g></g></svg>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
docs/conf.py DELETED
@@ -1,82 +0,0 @@
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.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
- "sphinx_inline_tabs",
45
- ]
46
-
47
- myst_enable_extensions = [
48
- "amsmath",
49
- "attrs_inline",
50
- "colon_fence",
51
- "deflist",
52
- "dollarmath",
53
- "fieldlist",
54
- "html_admonition",
55
- "html_image",
56
- "replacements",
57
- "smartquotes",
58
- "strikethrough",
59
- "substitution",
60
- "tasklist",
61
- ]
62
-
63
- autosummary_generate = True # Turn on sphinx.ext.autosummary
64
- add_module_names = False # Remove namespaces from class/method signatures
65
- autodoc_inherit_docstrings = True # If no docstring, inherit from base class
66
- set_type_checking_flag = True # Enable 'expensive' imports for sphinx_autodoc_typehints
67
- autoclass_content = "both" # Include both class docstring and __init__
68
- autodoc_mock_imports = ["pyqtgraph", "qtpy", "PySide6"]
69
-
70
- # Add any paths that contain templates here, relative to this directory.
71
- templates_path = ["_templates"]
72
- exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
73
-
74
- language = "Python"
75
-
76
- # -- Options for HTML output -------------------------------------------------
77
- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
78
-
79
- html_theme = "pydata_sphinx_theme"
80
- html_static_path = ["_static"]
81
- html_css_files = ["custom.css"]
82
- html_logo = "../bec_widgets/assets/app_icons/bec_widgets_icon.png"
@@ -1,52 +0,0 @@
1
- (developer)=
2
- # Developer
3
-
4
- Welcome to the BEC Widgets developer guide! BEC Widgets is a framework for building graphical user interfaces (GUIs) for [BEC](https://bec.readthedocs.io/en/latest/), a Python package for beamline experiment control.
5
-
6
- This guide targets readers who want to develop new widgets or extend existing ones. If your goal is to use BEC Widgets to build GUIs for your experiments, please refer to the [user guide](#user).
7
-
8
- ```{toctree}
9
- ---
10
- maxdepth: 2
11
- hidden: true
12
- ---
13
-
14
- introduction/introduction.md
15
- widget_development/widget_development.md
16
- api_reference/api_reference.md
17
- ```
18
-
19
-
20
- ***
21
-
22
- ````{grid} 2
23
- :gutter: 5
24
-
25
- ```{grid-item-card}
26
- :link: developer.introduction
27
- :link-type: ref
28
- :img-top: /assets/rocket_launch_48dp.svg
29
- :text-align: center
30
- :class-item: index-card
31
-
32
- ## Introduction
33
-
34
- An introduction into the single-resposibility principle and the modular design of BEC Widgets.
35
- ```
36
-
37
- ```{grid-item-card}
38
- :link: developer.widget_development
39
- :link-type: ref
40
- :img-top: /assets/apps_48dp.svg
41
- :text-align: center
42
- :class-item: index-card
43
-
44
- ## Widget Development
45
-
46
- Learn how to develop a new modular widget for BEC Widgets.
47
- ```
48
-
49
- ````{grid} 2
50
-
51
-
52
-
@@ -1,14 +0,0 @@
1
- (developer.concepts)=
2
- # Concepts
3
- This section provides an overview of the core concepts of BEC Widgets, which are based on the single-responsibility principle and modular design.
4
-
5
- ## Moduler Design
6
- We develop widgets with the single-responsibility principle in mind, meaning each widget is designed for a specific task. Our goal is to keep widgets simple, using them primarily for visualization or to initiate actions within BEC. Following these ideas, widgets should be designed to be reusable in various applications, making them versatile building blocks for larger GUIs.
7
-
8
- We offer up to three different options for composing larger GUIs from these modular widgets: BECDesigner, DockArea widget, or scripting from the command line interface. More information about these options can be found in the user sections on [applications](user.applications).
9
-
10
- ## Client-Server Architecture
11
-
12
- BEC Widgets is built on top of the [BEC](https://bec.readthedocs.io/en/latest/) package, which provides the backend for beamline experiment control. BEC Widgets is a client of BEC, meaning it can interact with the backend through a client-server architecture. To make full usage of the available features of BEC, we recommend to check the documentation about [data access](https://bec.readthedocs.io/en/latest/developer/data_access/data_access.html) in which the messaging and event system of BEC is described.
13
- In the context of BEC Widgets, the [`BECDispatcher`](/api_reference/_autosummary/bec_widgets.utils.bec_dispatcher.BECDispatcher) connects to this messaging and event system, allowing you to link your Qt [`Slots`](https://www.pythonguis.com/tutorials/pyside6-signals-slots-events/) to messages and event received from BEC.
14
-
@@ -1,28 +0,0 @@
1
- (developer.contributing)=
2
- # Contributing
3
-
4
- If you like to contribute to the development of BEC Widgets, you can follow the steps below to set up your development environment.
5
- BEC Widgets works in conjunction with [BEC](https://bec.readthedocs.io/en/latest/).
6
- Therefore, we recommend that you install BEC first following the [developer instructions](https://bec.readthedocs.io/en/latest/developer/getting_started/install_developer_env.html) and include BEC Widgets.
7
-
8
- If you already have a BEC environment set up, you can install BEC Widgets in editable mode into your BEC Python environment.
9
-
10
- **Prerequisites**
11
- 1. **Python Version:** BEC Widgets requires Python version 3.10 or higher. Verify your Python version to ensure compatibility.
12
- 2. **BEC Installation:** BEC Widgets works in conjunction with BEC. While BEC is a dependency and will be installed automatically, you can find more information about BEC and its installation process in the [BEC documentation](https://beamline-experiment-control.readthedocs.io/en/latest/).
13
- 3. **Qt Distributions:** BEC Widgets supports [PySide6](https://doc.qt.io/qtforpython-6/quickstart.html) and [PyQt6](https://www.riverbankcomputing.com/static/Docs/PyQt6/introduction.html). We use [qtpy](https://pypi.org/project/QtPy/) to abstract the underlying QT distribution.
14
-
15
- **Clone the Repository**:
16
- ```bash
17
- git clone https://gitlab.psi.ch/bec/bec_widgets
18
- cd bec_widgets
19
- ```
20
- **Install in Editable Mode**:
21
-
22
- Please install the package in editable mode into your BEC Python environemnt.
23
- ```bash
24
- pip install -e '.[dev,pyside6]'
25
- ```
26
- This installs the package together with [PySide6](https://doc.qt.io/qtforpython-6/quickstart.html).
27
-
28
-
@@ -1,16 +0,0 @@
1
- (developer.introduction)=
2
- # Introduction
3
- BEC Widgets is a framework providing modular components that can be integrated into various larger GUI applications. Each widget serves a specific purpose adhering to the single-responsibility principle as detailed in our [concepts section](developer.concepts), and offers a straightforward, user-friendly interface.
4
- These widgets provide data visualisation tools and experimental control interfaces by triggering actions within BEC.
5
- If you're interested in contributing to BEC Widgets, please refer to our [contributing guide](developer.contributing), which provides instructions for setting up your development environment and creating your own widgets.
6
-
7
- ```{toctree}
8
- ---
9
- maxdepth: 2
10
- hidden: false
11
- ---
12
-
13
- concepts/
14
- contributing/
15
- useful_links/
16
- ```
@@ -1,23 +0,0 @@
1
- (developer.useful_links)=
2
-
3
- # Useful Links
4
-
5
- If you're new to the Qt framework, here are some helpful resources to get you started. In BEC Widgets, we use Qt
6
- distributions based on Qt6, specifically PyQt6 and PySide6. However, all code should be written using
7
- the [`qtpy`](https://pypi.org/project/QtPy/) abstraction layer, which allows compatibility with both. While both PyQt6
8
- and PySide6 are supported, we prefer PySide6 as it is the official Python binding from the Qt Company. It offers
9
- advantages like bundling all necessary libraries in a single package with pip installation and staying more up-to-date
10
- compared to PyQt6.
11
-
12
- Below is a list of useful links to help you start developing with Qt and QtDesigner:
13
-
14
- - [Python GUIs](https://www.pythonguis.com): A great resource with tutorials and examples for creating GUIs in Python
15
- using various frameworks.
16
- - [PySide6 Quick Start Guide](https://doc.qt.io/qtforpython-6/index.html): The official documentation for PySide6,
17
- including quick start guides and tutorials.
18
- - [QtDesigner Official Documentation](https://doc.qt.io/qt-6/qtdesigner-manual.html): Comprehensive documentation for
19
- QtDesigner.
20
- - [Simple PyQt Tutorial from RealPython](https://realpython.com/python-pyqt-gui-calculator/): A beginner-friendly
21
- tutorial on creating your first GUI application with PyQt.
22
- - [PyQtGraph Documentation](https://pyqtgraph.readthedocs.io/en/latest/): BEC Widgets relies on PyQtGraph for plotting;
23
- this is the official documentation.