bec-widgets 1.13.0__tar.gz → 1.14.0__tar.gz

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 (327) hide show
  1. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/CHANGELOG.md +16 -0
  2. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/PKG-INFO +1 -1
  3. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/cli/client.py +4 -0
  4. bec_widgets-1.14.0/bec_widgets/widgets/games/__init__.py +3 -0
  5. bec_widgets-1.14.0/bec_widgets/widgets/games/minesweeper.py +413 -0
  6. bec_widgets-1.14.0/bec_widgets/widgets/games/minesweeper.pyproject +1 -0
  7. bec_widgets-1.14.0/bec_widgets/widgets/games/minesweeper_plugin.py +54 -0
  8. bec_widgets-1.14.0/bec_widgets/widgets/games/register_minesweeper.py +15 -0
  9. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/pyproject.toml +1 -1
  10. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/.git_hooks/pre-commit +0 -0
  11. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/.gitignore +0 -0
  12. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
  13. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  14. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
  15. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/.gitlab/merge_request_templates/default.md +0 -0
  16. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/.gitlab-ci.yml +0 -0
  17. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/.pylintrc +0 -0
  18. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/.readthedocs.yaml +0 -0
  19. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/LICENSE +0 -0
  20. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/README.md +0 -0
  21. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/__init__.py +0 -0
  22. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/applications/__init__.py +0 -0
  23. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/applications/alignment/__init__.py +0 -0
  24. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
  25. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +0 -0
  26. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +0 -0
  27. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/applications/bec_app.py +0 -0
  28. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  29. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
  30. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  31. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/cli/__init__.py +0 -0
  32. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/cli/auto_updates.py +0 -0
  33. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/cli/client_utils.py +0 -0
  34. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/cli/generate_cli.py +0 -0
  35. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/cli/rpc/__init__.py +0 -0
  36. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/cli/rpc/rpc_base.py +0 -0
  37. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/cli/rpc/rpc_register.py +0 -0
  38. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
  39. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/cli/server.py +0 -0
  40. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/__init__.py +0 -0
  41. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  42. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  43. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  44. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  45. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  46. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  47. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  48. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  49. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  50. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  51. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  52. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  53. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  54. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/qt_utils/__init__.py +0 -0
  55. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/qt_utils/collapsible_panel_manager.py +0 -0
  56. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/qt_utils/compact_popup.py +0 -0
  57. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/qt_utils/error_popups.py +0 -0
  58. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/qt_utils/palette_viewer.py +0 -0
  59. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
  60. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/qt_utils/round_frame.py +0 -0
  61. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  62. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/qt_utils/side_panel.py +0 -0
  63. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/qt_utils/toolbar.py +0 -0
  64. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/tests/__init__.py +0 -0
  65. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/tests/utils.py +0 -0
  66. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/__init__.py +0 -0
  67. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/bec_connector.py +0 -0
  68. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/bec_designer.py +0 -0
  69. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  70. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
  71. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/bec_table.py +0 -0
  72. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/bec_widget.py +0 -0
  73. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/colors.py +0 -0
  74. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/container_utils.py +0 -0
  75. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/crosshair.py +0 -0
  76. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/entry_validator.py +0 -0
  77. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/filter_io.py +0 -0
  78. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/fps_counter.py +0 -0
  79. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  80. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/layout_manager.py +0 -0
  81. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/linear_region_selector.py +0 -0
  82. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/ophyd_kind_util.py +0 -0
  83. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
  84. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  85. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  86. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/plugin_utils.py +0 -0
  87. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/reference_utils.py +0 -0
  88. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  89. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/thread_checker.py +0 -0
  90. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/ui_loader.py +0 -0
  91. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/validator_delegate.py +0 -0
  92. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/widget_io.py +0 -0
  93. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  94. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/__init__.py +0 -0
  95. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/__init__.py +0 -0
  96. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
  97. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/dock/dock.py +0 -0
  98. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
  99. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
  100. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
  101. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
  102. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/__init__.py +0 -0
  103. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/figure.py +0 -0
  104. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/__init__.py +0 -0
  105. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/axis_settings.py +0 -0
  106. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/axis_settings.ui +0 -0
  107. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/image/__init__.py +0 -0
  108. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/image/image.py +0 -0
  109. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/image/image_item.py +0 -0
  110. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/image/image_processor.py +0 -0
  111. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/motor_map/__init__.py +0 -0
  112. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/motor_map/motor_map.py +0 -0
  113. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/multi_waveform/__init__.py +0 -0
  114. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py +0 -0
  115. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/plot_base.py +0 -0
  116. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/waveform/__init__.py +0 -0
  117. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/waveform/waveform.py +0 -0
  118. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/figure/plots/waveform/waveform_curve.py +0 -0
  119. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
  120. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
  121. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
  122. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
  123. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/__init__.py +0 -0
  124. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
  125. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
  126. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
  127. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
  128. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
  129. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
  130. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
  131. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
  132. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
  133. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
  134. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
  135. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
  136. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
  137. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
  138. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
  139. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
  140. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
  141. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
  142. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
  143. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
  144. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
  145. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
  146. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
  147. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
  148. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
  149. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
  150. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
  151. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
  152. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.py +0 -0
  153. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.pyproject +0 -0
  154. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.ui +0 -0
  155. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_plugin.py +0 -0
  156. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.py +0 -0
  157. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.pyproject +0 -0
  158. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.ui +0 -0
  159. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line_plugin.py +0 -0
  160. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_box.py +0 -0
  161. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_control_line.py +0 -0
  162. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
  163. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
  164. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
  165. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
  166. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
  167. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
  168. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
  169. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
  170. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
  171. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
  172. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
  173. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
  174. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
  175. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
  176. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
  177. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
  178. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
  179. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
  180. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
  181. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
  182. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combobox.py +0 -0
  183. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
  184. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.pyproject +0 -0
  185. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox_plugin.py +0 -0
  186. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
  187. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
  188. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
  189. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
  190. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
  191. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
  192. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
  193. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
  194. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
  195. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
  196. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
  197. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/__init__.py +0 -0
  198. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
  199. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
  200. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
  201. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
  202. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
  203. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
  204. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
  205. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
  206. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
  207. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
  208. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
  209. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
  210. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/__init__.py +0 -0
  211. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/console/__init__.py +0 -0
  212. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/console/console.py +0 -0
  213. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/console/console.pyproject +0 -0
  214. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/console/console_plugin.py +0 -0
  215. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/console/register_console.py +0 -0
  216. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
  217. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
  218. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
  219. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
  220. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
  221. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
  222. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
  223. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
  224. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
  225. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
  226. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
  227. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
  228. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/website/__init__.py +0 -0
  229. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
  230. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/website/website.py +0 -0
  231. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
  232. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
  233. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/__init__.py +0 -0
  234. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/image/__init__.py +0 -0
  235. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/image/bec_image_widget.pyproject +0 -0
  236. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/image/bec_image_widget_plugin.py +0 -0
  237. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/image/image_widget.py +0 -0
  238. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/image/register_bec_image_widget.py +0 -0
  239. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
  240. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget.pyproject +0 -0
  241. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget_plugin.py +0 -0
  242. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/__init__.py +0 -0
  243. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  244. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  245. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/motor_map/motor_map_widget.py +0 -0
  246. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/motor_map/register_bec_motor_map_widget.py +0 -0
  247. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
  248. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget.pyproject +0 -0
  249. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py +0 -0
  250. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_controls.ui +0 -0
  251. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py +0 -0
  252. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py +0 -0
  253. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
  254. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/bec_waveform_widget.pyproject +0 -0
  255. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/bec_waveform_widget_plugin.py +0 -0
  256. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/register_bec_waveform_widget.py +0 -0
  257. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/waveform_popups/__init__.py +0 -0
  258. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
  259. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  260. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  261. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  262. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  263. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/plots/waveform/waveform_widget.py +0 -0
  264. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/__init__.py +0 -0
  265. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
  266. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
  267. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
  268. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
  269. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
  270. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
  271. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
  272. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
  273. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
  274. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  275. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  276. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/__init__.py +0 -0
  277. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
  278. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
  279. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
  280. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
  281. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
  282. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
  283. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
  284. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
  285. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
  286. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
  287. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
  288. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/device_browser/__init__.py +0 -0
  289. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
  290. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
  291. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
  292. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
  293. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
  294. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
  295. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
  296. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/__init__.py +0 -0
  297. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/spinner/__init__.py +0 -0
  298. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
  299. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
  300. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
  301. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
  302. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/toggle/__init__.py +0 -0
  303. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
  304. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
  305. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
  306. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
  307. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/__init__.py +0 -0
  308. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
  309. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
  310. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
  311. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
  312. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
  313. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
  314. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
  315. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
  316. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
  317. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
  318. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
  319. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
  320. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
  321. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
  322. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
  323. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
  324. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
  325. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
  326. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
  327. {bec_widgets-1.13.0 → bec_widgets-1.14.0}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -1,6 +1,22 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v1.14.0 (2025-01-09)
5
+
6
+ ### Documentation
7
+
8
+ - Add docs for games/minesweeper
9
+ ([`e2c7dc9`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e2c7dc98d2f1c627fcc1aac045fa32dc94057bb0))
10
+
11
+ ### Features
12
+
13
+ - **widget**: Make Minesweeper into BEC widget
14
+ ([`507d46f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/507d46f88bd06a3e77b1e60a6ce56c80f622cb6c))
15
+
16
+ - **widgets**: Added minesweeper widget
17
+ ([`57dc1a3`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/57dc1a3afc60b6c27b42c258a6fd1ea1ddb24637))
18
+
19
+
4
20
  ## v1.13.0 (2025-01-09)
5
21
 
6
22
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bec_widgets
3
- Version: 1.13.0
3
+ Version: 1.14.0
4
4
  Summary: BEC Widgets
5
5
  Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
6
6
  Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
@@ -31,6 +31,7 @@ class Widgets(str, enum.Enum):
31
31
  DeviceComboBox = "DeviceComboBox"
32
32
  DeviceLineEdit = "DeviceLineEdit"
33
33
  LMFitDialog = "LMFitDialog"
34
+ Minesweeper = "Minesweeper"
34
35
  PositionIndicator = "PositionIndicator"
35
36
  PositionerBox = "PositionerBox"
36
37
  PositionerControlLine = "PositionerControlLine"
@@ -3181,6 +3182,9 @@ class LMFitDialog(RPCBase):
3181
3182
  """
3182
3183
 
3183
3184
 
3185
+ class Minesweeper(RPCBase): ...
3186
+
3187
+
3184
3188
  class PositionIndicator(RPCBase):
3185
3189
  @rpc_call
3186
3190
  def set_value(self, position: float):
@@ -0,0 +1,3 @@
1
+ from bec_widgets.widgets.games.minesweeper import Minesweeper
2
+
3
+ __ALL__ = ["Minesweeper"]
@@ -0,0 +1,413 @@
1
+ import enum
2
+ import random
3
+ import time
4
+
5
+ from bec_qthemes import material_icon
6
+ from qtpy.QtCore import QSize, Qt, QTimer, Signal, Slot
7
+ from qtpy.QtGui import QBrush, QColor, QPainter, QPen
8
+ from qtpy.QtWidgets import (
9
+ QApplication,
10
+ QComboBox,
11
+ QGridLayout,
12
+ QHBoxLayout,
13
+ QLabel,
14
+ QPushButton,
15
+ QVBoxLayout,
16
+ QWidget,
17
+ )
18
+
19
+ from bec_widgets.utils.bec_widget import BECWidget
20
+
21
+ NUM_COLORS = {
22
+ 1: QColor("#f44336"),
23
+ 2: QColor("#9C27B0"),
24
+ 3: QColor("#3F51B5"),
25
+ 4: QColor("#03A9F4"),
26
+ 5: QColor("#00BCD4"),
27
+ 6: QColor("#4CAF50"),
28
+ 7: QColor("#E91E63"),
29
+ 8: QColor("#FF9800"),
30
+ }
31
+
32
+ LEVELS: dict[str, tuple[int, int]] = {"1": (8, 10), "2": (16, 40), "3": (24, 99)}
33
+
34
+
35
+ class GameStatus(enum.Enum):
36
+ READY = 0
37
+ PLAYING = 1
38
+ FAILED = 2
39
+ SUCCESS = 3
40
+
41
+
42
+ class Pos(QWidget):
43
+ expandable = Signal(int, int)
44
+ clicked = Signal()
45
+ ohno = Signal()
46
+
47
+ def __init__(self, x, y, *args, **kwargs):
48
+ super().__init__(*args, **kwargs)
49
+
50
+ self.setFixedSize(QSize(20, 20))
51
+
52
+ self.x = x
53
+ self.y = y
54
+ self.is_start = False
55
+ self.is_mine = False
56
+ self.adjacent_n = 0
57
+ self.is_revealed = False
58
+ self.is_flagged = False
59
+
60
+ def reset(self):
61
+ """Restore the tile to its original state before mine status is assigned"""
62
+ self.is_start = False
63
+ self.is_mine = False
64
+ self.adjacent_n = 0
65
+
66
+ self.is_revealed = False
67
+ self.is_flagged = False
68
+
69
+ self.update()
70
+
71
+ def paintEvent(self, event):
72
+ p = QPainter(self)
73
+
74
+ r = event.rect()
75
+
76
+ if self.is_revealed:
77
+ color = self.palette().base().color()
78
+ outer, inner = color, color
79
+ else:
80
+ outer, inner = (self.palette().highlightedText().color(), self.palette().text().color())
81
+
82
+ p.fillRect(r, QBrush(inner))
83
+ pen = QPen(outer)
84
+ pen.setWidth(1)
85
+ p.setPen(pen)
86
+ p.drawRect(r)
87
+
88
+ if self.is_revealed:
89
+ if self.is_mine:
90
+ p.drawPixmap(r, material_icon("experiment", convert_to_pixmap=True, filled=True))
91
+
92
+ elif self.adjacent_n > 0:
93
+ pen = QPen(NUM_COLORS[self.adjacent_n])
94
+ p.setPen(pen)
95
+ f = p.font()
96
+ f.setBold(True)
97
+ p.setFont(f)
98
+ p.drawText(r, Qt.AlignHCenter | Qt.AlignVCenter, str(self.adjacent_n))
99
+
100
+ elif self.is_flagged:
101
+ p.drawPixmap(
102
+ r,
103
+ material_icon(
104
+ "flag",
105
+ size=(50, 50),
106
+ convert_to_pixmap=True,
107
+ filled=True,
108
+ color=self.palette().base().color(),
109
+ ),
110
+ )
111
+ p.end()
112
+
113
+ def flag(self):
114
+ self.is_flagged = not self.is_flagged
115
+ self.update()
116
+
117
+ self.clicked.emit()
118
+
119
+ def reveal(self):
120
+ self.is_revealed = True
121
+ self.update()
122
+
123
+ def click(self):
124
+ if not self.is_revealed:
125
+ self.reveal()
126
+ if self.adjacent_n == 0:
127
+ self.expandable.emit(self.x, self.y)
128
+
129
+ self.clicked.emit()
130
+
131
+ def mouseReleaseEvent(self, event):
132
+ if event.button() == Qt.MouseButton.RightButton and not self.is_revealed:
133
+ self.flag()
134
+ return
135
+
136
+ if event.button() == Qt.MouseButton.LeftButton:
137
+ self.click()
138
+ if self.is_mine:
139
+ self.ohno.emit()
140
+
141
+
142
+ class Minesweeper(BECWidget, QWidget):
143
+
144
+ PLUGIN = True
145
+ ICON_NAME = "videogame_asset"
146
+ USER_ACCESS = []
147
+
148
+ def __init__(self, parent=None, *args, **kwargs):
149
+ super().__init__(*args, **kwargs)
150
+ QWidget.__init__(self, parent=parent)
151
+
152
+ self._ui_initialised = False
153
+ self._timer_start_num_seconds = 0
154
+ self._set_level_params(LEVELS["1"])
155
+
156
+ self._init_ui()
157
+ self._init_map()
158
+
159
+ self.update_status(GameStatus.READY)
160
+ self.reset_map()
161
+ self.update_status(GameStatus.READY)
162
+
163
+ def _init_ui(self):
164
+ if self._ui_initialised:
165
+ return
166
+ self._ui_initialised = True
167
+
168
+ status_hb = QHBoxLayout()
169
+ self.mines = QLabel()
170
+ self.mines.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
171
+ f = self.mines.font()
172
+ f.setPointSize(24)
173
+ self.mines.setFont(f)
174
+
175
+ self.reset_button = QPushButton()
176
+ self.reset_button.setFixedSize(QSize(32, 32))
177
+ self.reset_button.setIconSize(QSize(32, 32))
178
+ self.reset_button.setFlat(True)
179
+ self.reset_button.pressed.connect(self.reset_button_pressed)
180
+
181
+ self.clock = QLabel()
182
+ self.clock.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
183
+ self.clock.setFont(f)
184
+ self._timer = QTimer()
185
+ self._timer.timeout.connect(self.update_timer)
186
+ self._timer.start(1000) # 1 second timer
187
+ self.mines.setText(f"{self.num_mines:03d}")
188
+ self.clock.setText("000")
189
+
190
+ status_hb.addWidget(self.mines)
191
+ status_hb.addWidget(self.reset_button)
192
+ status_hb.addWidget(self.clock)
193
+
194
+ level_hb = QHBoxLayout()
195
+ self.level_selector = QComboBox()
196
+ self.level_selector.addItems(list(LEVELS.keys()))
197
+ level_hb.addWidget(QLabel("Level: "))
198
+ level_hb.addWidget(self.level_selector)
199
+ self.level_selector.currentTextChanged.connect(self.change_level)
200
+
201
+ vb = QVBoxLayout()
202
+ vb.addLayout(level_hb)
203
+ vb.addLayout(status_hb)
204
+
205
+ self.grid = QGridLayout()
206
+ self.grid.setSpacing(5)
207
+
208
+ vb.addLayout(self.grid)
209
+ self.setLayout(vb)
210
+
211
+ def _init_map(self):
212
+ """Redraw the grid of mines"""
213
+
214
+ # Remove any previous grid items and reset the grid
215
+ for i in reversed(range(self.grid.count())):
216
+ w: Pos = self.grid.itemAt(i).widget()
217
+ w.clicked.disconnect(self.on_click)
218
+ w.expandable.disconnect(self.expand_reveal)
219
+ w.ohno.disconnect(self.game_over)
220
+ w.setParent(None)
221
+ w.deleteLater()
222
+
223
+ # Add positions to the map
224
+ for x in range(0, self.b_size):
225
+ for y in range(0, self.b_size):
226
+ w = Pos(x, y)
227
+ self.grid.addWidget(w, y, x)
228
+ # Connect signal to handle expansion.
229
+ w.clicked.connect(self.on_click)
230
+ w.expandable.connect(self.expand_reveal)
231
+ w.ohno.connect(self.game_over)
232
+
233
+ def reset_map(self):
234
+ """
235
+ Reset the map and add new mines.
236
+ """
237
+ # Clear all mine positions
238
+ for x in range(0, self.b_size):
239
+ for y in range(0, self.b_size):
240
+ w = self.grid.itemAtPosition(y, x).widget()
241
+ w.reset()
242
+
243
+ # Add mines to the positions
244
+ positions = []
245
+ while len(positions) < self.num_mines:
246
+ x, y = (random.randint(0, self.b_size - 1), random.randint(0, self.b_size - 1))
247
+ if (x, y) not in positions:
248
+ w = self.grid.itemAtPosition(y, x).widget()
249
+ w.is_mine = True
250
+ positions.append((x, y))
251
+
252
+ def get_adjacency_n(x, y):
253
+ positions = self.get_surrounding(x, y)
254
+ num_mines = sum(1 if w.is_mine else 0 for w in positions)
255
+
256
+ return num_mines
257
+
258
+ # Add adjacencies to the positions
259
+ for x in range(0, self.b_size):
260
+ for y in range(0, self.b_size):
261
+ w = self.grid.itemAtPosition(y, x).widget()
262
+ w.adjacent_n = get_adjacency_n(x, y)
263
+
264
+ # Place starting marker
265
+ while True:
266
+ x, y = (random.randint(0, self.b_size - 1), random.randint(0, self.b_size - 1))
267
+ w = self.grid.itemAtPosition(y, x).widget()
268
+ # We don't want to start on a mine.
269
+ if (x, y) not in positions:
270
+ w = self.grid.itemAtPosition(y, x).widget()
271
+ w.is_start = True
272
+
273
+ # Reveal all positions around this, if they are not mines either.
274
+ for w in self.get_surrounding(x, y):
275
+ if not w.is_mine:
276
+ w.click()
277
+ break
278
+
279
+ def get_surrounding(self, x, y):
280
+ positions = []
281
+ for xi in range(max(0, x - 1), min(x + 2, self.b_size)):
282
+ for yi in range(max(0, y - 1), min(y + 2, self.b_size)):
283
+ positions.append(self.grid.itemAtPosition(yi, xi).widget())
284
+ return positions
285
+
286
+ def get_num_hidden(self) -> int:
287
+ """
288
+ Get the number of hidden positions.
289
+ """
290
+ return sum(
291
+ 1
292
+ for x in range(0, self.b_size)
293
+ for y in range(0, self.b_size)
294
+ if not self.grid.itemAtPosition(y, x).widget().is_revealed
295
+ )
296
+
297
+ def get_num_remaining_flags(self) -> int:
298
+ """
299
+ Get the number of remaining flags.
300
+ """
301
+ return self.num_mines - sum(
302
+ 1
303
+ for x in range(0, self.b_size)
304
+ for y in range(0, self.b_size)
305
+ if self.grid.itemAtPosition(y, x).widget().is_flagged
306
+ )
307
+
308
+ def reset_button_pressed(self):
309
+ match self.status:
310
+ case GameStatus.PLAYING:
311
+ self.game_over()
312
+ case GameStatus.FAILED | GameStatus.SUCCESS:
313
+ self.reset_map()
314
+
315
+ def reveal_map(self):
316
+ for x in range(0, self.b_size):
317
+ for y in range(0, self.b_size):
318
+ w = self.grid.itemAtPosition(y, x).widget()
319
+ w.reveal()
320
+
321
+ @Slot(str)
322
+ def change_level(self, level: str):
323
+ self._set_level_params(LEVELS[level])
324
+ self._init_map()
325
+ self.reset_map()
326
+
327
+ @Slot(int, int)
328
+ def expand_reveal(self, x, y):
329
+ """
330
+ Expand the reveal to the surrounding
331
+
332
+ Args:
333
+ x (int): The x position.
334
+ y (int): The y position.
335
+ """
336
+ for xi in range(max(0, x - 1), min(x + 2, self.b_size)):
337
+ for yi in range(max(0, y - 1), min(y + 2, self.b_size)):
338
+ w = self.grid.itemAtPosition(yi, xi).widget()
339
+ if not w.is_mine:
340
+ w.click()
341
+
342
+ @Slot()
343
+ def on_click(self):
344
+ """
345
+ Handle the click event. If the game is not started, start the game.
346
+ """
347
+ self.update_available_flags()
348
+ if self.status != GameStatus.PLAYING:
349
+ # First click.
350
+ self.update_status(GameStatus.PLAYING)
351
+ # Start timer.
352
+ self._timer_start_num_seconds = int(time.time())
353
+ return
354
+ self.check_win()
355
+
356
+ def update_available_flags(self):
357
+ """
358
+ Update the number of available flags.
359
+ """
360
+ self.mines.setText(f"{self.get_num_remaining_flags():03d}")
361
+
362
+ def check_win(self):
363
+ """
364
+ Check if the game is won.
365
+ """
366
+ if self.get_num_hidden() == self.num_mines:
367
+ self.update_status(GameStatus.SUCCESS)
368
+
369
+ def update_status(self, status: GameStatus):
370
+ """
371
+ Update the status of the game.
372
+
373
+ Args:
374
+ status (GameStatus): The status of the game.
375
+ """
376
+ self.status = status
377
+ match status:
378
+ case GameStatus.READY:
379
+ icon = material_icon(icon_name="add", convert_to_pixmap=False)
380
+ case GameStatus.PLAYING:
381
+ icon = material_icon(icon_name="smart_toy", convert_to_pixmap=False)
382
+ case GameStatus.FAILED:
383
+ icon = material_icon(icon_name="error", convert_to_pixmap=False)
384
+ case GameStatus.SUCCESS:
385
+ icon = material_icon(icon_name="celebration", convert_to_pixmap=False)
386
+ self.reset_button.setIcon(icon)
387
+
388
+ def update_timer(self):
389
+ """
390
+ Update the timer.
391
+ """
392
+ if self.status == GameStatus.PLAYING:
393
+ num_seconds = int(time.time()) - self._timer_start_num_seconds
394
+ self.clock.setText(f"{num_seconds:03d}")
395
+
396
+ def game_over(self):
397
+ """Cause the game to end early"""
398
+ self.reveal_map()
399
+ self.update_status(GameStatus.FAILED)
400
+
401
+ def _set_level_params(self, level: tuple[int, int]):
402
+ self.b_size, self.num_mines = level
403
+
404
+
405
+ if __name__ == "__main__":
406
+ from bec_widgets.utils.colors import set_theme
407
+
408
+ app = QApplication([])
409
+ set_theme("light")
410
+ widget = Minesweeper()
411
+ widget.show()
412
+
413
+ app.exec_()
@@ -0,0 +1 @@
1
+ {'files': ['minesweeper.py']}
@@ -0,0 +1,54 @@
1
+ # Copyright (C) 2022 The Qt Company Ltd.
2
+ # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
+
4
+ from qtpy.QtDesigner import QDesignerCustomWidgetInterface
5
+
6
+ from bec_widgets.utils.bec_designer import designer_material_icon
7
+ from bec_widgets.widgets.games.minesweeper import Minesweeper
8
+
9
+ DOM_XML = """
10
+ <ui language='c++'>
11
+ <widget class='Minesweeper' name='minesweeper'>
12
+ </widget>
13
+ </ui>
14
+ """
15
+
16
+
17
+ class MinesweeperPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
18
+ def __init__(self):
19
+ super().__init__()
20
+ self._form_editor = None
21
+
22
+ def createWidget(self, parent):
23
+ t = Minesweeper(parent)
24
+ return t
25
+
26
+ def domXml(self):
27
+ return DOM_XML
28
+
29
+ def group(self):
30
+ return "BEC Games"
31
+
32
+ def icon(self):
33
+ return designer_material_icon(Minesweeper.ICON_NAME)
34
+
35
+ def includeFile(self):
36
+ return "minesweeper"
37
+
38
+ def initialize(self, form_editor):
39
+ self._form_editor = form_editor
40
+
41
+ def isContainer(self):
42
+ return False
43
+
44
+ def isInitialized(self):
45
+ return self._form_editor is not None
46
+
47
+ def name(self):
48
+ return "Minesweeper"
49
+
50
+ def toolTip(self):
51
+ return "Minesweeper"
52
+
53
+ def whatsThis(self):
54
+ return self.toolTip()
@@ -0,0 +1,15 @@
1
+ def main(): # pragma: no cover
2
+ from qtpy import PYSIDE6
3
+
4
+ if not PYSIDE6:
5
+ print("PYSIDE6 is not available in the environment. Cannot patch designer.")
6
+ return
7
+ from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
8
+
9
+ from bec_widgets.widgets.games.minesweeper_plugin import MinesweeperPlugin
10
+
11
+ QPyDesignerCustomWidgetCollection.addCustomWidget(MinesweeperPlugin())
12
+
13
+
14
+ if __name__ == "__main__": # pragma: no cover
15
+ main()
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "1.13.0"
7
+ version = "1.14.0"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
File without changes
File without changes
File without changes
File without changes