bec-widgets 1.1.0__tar.gz → 1.2.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 (286) hide show
  1. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/CHANGELOG.md +11 -15
  2. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/PKG-INFO +1 -1
  3. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/colors.py +110 -27
  4. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_status_box/status_item.py +1 -0
  5. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/pyproject.toml +1 -1
  6. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/.git_hooks/pre-commit +0 -0
  7. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/.gitignore +0 -0
  8. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
  9. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  10. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
  11. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/.gitlab/merge_request_templates/default.md +0 -0
  12. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/.gitlab-ci.yml +0 -0
  13. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/.pylintrc +0 -0
  14. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/.readthedocs.yaml +0 -0
  15. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/LICENSE +0 -0
  16. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/README.md +0 -0
  17. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/__init__.py +0 -0
  18. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/applications/__init__.py +0 -0
  19. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/applications/alignment/__init__.py +0 -0
  20. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
  21. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +0 -0
  22. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +0 -0
  23. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/applications/bec_app.py +0 -0
  24. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  25. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
  26. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  27. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/cli/__init__.py +0 -0
  28. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/cli/auto_updates.py +0 -0
  29. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/cli/client.py +0 -0
  30. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/cli/client_utils.py +0 -0
  31. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/cli/generate_cli.py +0 -0
  32. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/cli/rpc_register.py +0 -0
  33. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  34. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/cli/server.py +0 -0
  35. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/__init__.py +0 -0
  36. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  37. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  38. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  39. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  40. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  41. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  42. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  43. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  44. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  45. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  46. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  47. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  48. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  49. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/qt_utils/__init__.py +0 -0
  50. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/qt_utils/compact_popup.py +0 -0
  51. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/qt_utils/error_popups.py +0 -0
  52. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/qt_utils/palette_viewer.py +0 -0
  53. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
  54. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  55. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/qt_utils/toolbar.py +0 -0
  56. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/tests/__init__.py +0 -0
  57. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/tests/utils.py +0 -0
  58. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/__init__.py +0 -0
  59. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/bec_connector.py +0 -0
  60. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/bec_designer.py +0 -0
  61. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  62. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
  63. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/bec_table.py +0 -0
  64. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/bec_widget.py +0 -0
  65. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/container_utils.py +0 -0
  66. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/crosshair.py +0 -0
  67. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/entry_validator.py +0 -0
  68. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/filter_io.py +0 -0
  69. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/fps_counter.py +0 -0
  70. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  71. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/layout_manager.py +0 -0
  72. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/linear_region_selector.py +0 -0
  73. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
  74. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  75. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  76. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/plugin_utils.py +0 -0
  77. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/reference_utils.py +0 -0
  78. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  79. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/thread_checker.py +0 -0
  80. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/ui_loader.py +0 -0
  81. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/validator_delegate.py +0 -0
  82. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/widget_io.py +0 -0
  83. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  84. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/__init__.py +0 -0
  85. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/base_classes/__init__.py +0 -0
  86. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
  87. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/base_classes/device_signal_input_base.py +0 -0
  88. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_progressbar/__init__.py +0 -0
  89. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_progressbar/bec_progress_bar.pyproject +0 -0
  90. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_progressbar/bec_progress_bar_plugin.py +0 -0
  91. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_progressbar/bec_progressbar.py +0 -0
  92. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_progressbar/register_bec_progress_bar.py +0 -0
  93. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
  94. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
  95. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
  96. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
  97. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
  98. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  99. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  100. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
  101. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
  102. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
  103. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_abort/__init__.py +0 -0
  104. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_abort/abort_button.pyproject +0 -0
  105. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_abort/abort_button_plugin.py +0 -0
  106. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_abort/button_abort.py +0 -0
  107. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_abort/register_abort_button.py +0 -0
  108. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_reset/__init__.py +0 -0
  109. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_reset/button_reset.py +0 -0
  110. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_reset/register_reset_button.py +0 -0
  111. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_reset/reset_button.pyproject +0 -0
  112. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_reset/reset_button_plugin.py +0 -0
  113. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_resume/__init__.py +0 -0
  114. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_resume/button_resume.py +0 -0
  115. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_resume/register_resume_button.py +0 -0
  116. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_resume/resume_button.pyproject +0 -0
  117. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/button_resume/resume_button_plugin.py +0 -0
  118. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/color_button/__init__.py +0 -0
  119. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/color_button/color_button.py +0 -0
  120. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
  121. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
  122. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
  123. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/colormap_selector/__init__.py +0 -0
  124. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
  125. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
  126. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
  127. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
  128. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/console/console.py +0 -0
  129. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/console/console.pyproject +0 -0
  130. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/console/console_plugin.py +0 -0
  131. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/console/register_console.py +0 -0
  132. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dap_combo_box/__init__.py +0 -0
  133. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dap_combo_box/dap_combo_box.py +0 -0
  134. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dap_combo_box/dap_combo_box.pyproject +0 -0
  135. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dap_combo_box/dap_combo_box_plugin.py +0 -0
  136. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dap_combo_box/register_dap_combo_box.py +0 -0
  137. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dark_mode_button/__init__.py +0 -0
  138. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button.py +0 -0
  139. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button.pyproject +0 -0
  140. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button_plugin.py +0 -0
  141. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dark_mode_button/register_dark_mode_button.py +0 -0
  142. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_browser/__init__.py +0 -0
  143. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_browser/device_browser.py +0 -0
  144. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_browser/device_browser.pyproject +0 -0
  145. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_browser/device_browser.ui +0 -0
  146. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_browser/device_browser_plugin.py +0 -0
  147. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_browser/device_item/__init__.py +0 -0
  148. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_browser/device_item/device_item.py +0 -0
  149. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_browser/register_device_browser.py +0 -0
  150. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_combobox/__init__.py +0 -0
  151. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
  152. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
  153. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
  154. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
  155. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_line_edit/__init__.py +0 -0
  156. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
  157. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
  158. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
  159. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
  160. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dock/__init__.py +0 -0
  161. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dock/dock.py +0 -0
  162. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dock/dock_area.py +0 -0
  163. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
  164. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
  165. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
  166. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/__init__.py +0 -0
  167. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/figure.py +0 -0
  168. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/__init__.py +0 -0
  169. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
  170. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
  171. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/image/__init__.py +0 -0
  172. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  173. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  174. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  175. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/motor_map/__init__.py +0 -0
  176. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  177. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
  178. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/waveform/__init__.py +0 -0
  179. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  180. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  181. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/image/__init__.py +0 -0
  182. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
  183. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
  184. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/image/image_widget.py +0 -0
  185. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
  186. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/jupyter_console/__init__.py +0 -0
  187. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  188. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/lmfit_dialog/__init__.py +0 -0
  189. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
  190. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
  191. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py +0 -0
  192. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
  193. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
  194. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/lmfit_dialog/register_lm_fit_dialog.py +0 -0
  195. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/motor_map/__init__.py +0 -0
  196. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
  197. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
  198. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py +0 -0
  199. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  200. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  201. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
  202. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
  203. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/position_indicator/__init__.py +0 -0
  204. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
  205. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
  206. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
  207. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
  208. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/__init__.py +0 -0
  209. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/positioner_box.py +0 -0
  210. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/positioner_box.pyproject +0 -0
  211. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/positioner_box.ui +0 -0
  212. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +0 -0
  213. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/positioner_control_line.py +0 -0
  214. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +0 -0
  215. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/positioner_control_line.ui +0 -0
  216. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +0 -0
  217. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/register_positioner_box.py +0 -0
  218. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +0 -0
  219. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_group/__init__.py +0 -0
  220. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_group/positioner_group.py +0 -0
  221. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_group/positioner_group.pyproject +0 -0
  222. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_group/positioner_group_plugin.py +0 -0
  223. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/positioner_group/register_positioner_group.py +0 -0
  224. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  225. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
  226. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
  227. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  228. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  229. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  230. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  231. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
  232. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  233. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
  234. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
  235. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
  236. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/signal_combobox/__init__.py +0 -0
  237. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/signal_combobox/register_signal_combobox.py +0 -0
  238. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/signal_combobox/signal_combobox.py +0 -0
  239. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/signal_combobox/signal_combobox.pyproject +0 -0
  240. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/signal_combobox/signal_combobox_plugin.py +0 -0
  241. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/signal_line_edit/__init__.py +0 -0
  242. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/signal_line_edit/register_signal_line_edit.py +0 -0
  243. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/signal_line_edit/signal_line_edit.py +0 -0
  244. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/signal_line_edit/signal_line_edit.pyproject +0 -0
  245. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/signal_line_edit/signal_line_edit_plugin.py +0 -0
  246. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/spinner/__init__.py +0 -0
  247. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
  248. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/spinner/spinner.py +0 -0
  249. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
  250. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
  251. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/stop_button/__init__.py +0 -0
  252. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
  253. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
  254. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
  255. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
  256. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/text_box/__init__.py +0 -0
  257. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
  258. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/text_box/text_box.py +0 -0
  259. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
  260. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
  261. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/toggle/__init__.py +0 -0
  262. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
  263. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/toggle/toggle.py +0 -0
  264. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
  265. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
  266. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/vscode/__init__.py +0 -0
  267. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
  268. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
  269. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
  270. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/vscode/vscode.py +0 -0
  271. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/__init__.py +0 -0
  272. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
  273. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
  274. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
  275. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/waveform_popups/__init__.py +0 -0
  276. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
  277. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  278. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  279. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  280. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  281. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/waveform/waveform_widget.py +0 -0
  282. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/website/__init__.py +0 -0
  283. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/website/register_website_widget.py +0 -0
  284. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/website/website.py +0 -0
  285. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
  286. {bec_widgets-1.1.0 → bec_widgets-1.2.0}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
@@ -1,6 +1,17 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v1.2.0 (2024-10-25)
5
+
6
+ ### Features
7
+
8
+ * feat(colors): evenly spaced color generation + new golden ratio calculation ([`40c9fea`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/40c9fea35f869ef52e05948dd1989bcd99f602e0))
9
+
10
+ ### Refactoring
11
+
12
+ * refactor: add bec_lib version to statusbox ([`5d4b86e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5d4b86e1c6e1800051afce4f991153e370767fa6))
13
+
14
+
4
15
  ## v1.1.0 (2024-10-25)
5
16
 
6
17
  ### Features
@@ -158,18 +169,3 @@ complete UI ([`49268e3`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/49268e38
158
169
  * fix: use new 'scan_axis' signal, to set_x and select x axis on waveform
159
170
 
160
171
  Fixes #361, do not try to change x axis when not permitted ([`efa2763`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/efa276358b0f5a45cce9fa84fa5f9aafaf4284f7))
161
-
162
- ### Features
163
-
164
- * feat: new 'scan_axis' signal
165
-
166
- Signal is emitted before "scan_started", to inform about scan positioner
167
- and (start, stop) positions. In case of multiple bundles, the signal
168
- is emitted multiple times. ([`f084e25`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f084e2514bc9459cccaa951b79044bc25884e738))
169
-
170
-
171
- ## v0.113.0 (2024-10-02)
172
-
173
- ### Testing
174
-
175
- * test: add tests for scan_status_callback ([`dc0c825`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/dc0c825fd594c093a24543ff803d6c6564010e92))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 1.1.0
3
+ Version: 1.2.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
@@ -107,9 +107,98 @@ class Colors:
107
107
  angles.append(angle)
108
108
  return angles
109
109
 
110
+ @staticmethod
111
+ def set_theme_offset(theme: Literal["light", "dark"] | None = None, offset=0.2) -> tuple:
112
+ """
113
+ Set the theme offset to avoid colors too close to white or black with light or dark theme respectively for pyqtgraph plot background.
114
+
115
+ Args:
116
+ theme(str): The theme to be applied.
117
+ offset(float): Offset to avoid colors too close to white or black with light or dark theme respectively for pyqtgraph plot background.
118
+
119
+ Returns:
120
+ tuple: Tuple of min_pos and max_pos.
121
+
122
+ Raises:
123
+ ValueError: If theme_offset is not between 0 and 1.
124
+ """
125
+
126
+ if offset < 0 or offset > 1:
127
+ raise ValueError("theme_offset must be between 0 and 1")
128
+
129
+ if theme is None:
130
+ app = QApplication.instance()
131
+ if hasattr(app, "theme"):
132
+ theme = app.theme.theme
133
+
134
+ if theme == "light":
135
+ min_pos = 0.0
136
+ max_pos = 1 - offset
137
+ else:
138
+ min_pos = 0.0 + offset
139
+ max_pos = 1.0
140
+
141
+ return min_pos, max_pos
142
+
143
+ @staticmethod
144
+ def evenly_spaced_colors(
145
+ colormap: str,
146
+ num: int,
147
+ format: Literal["QColor", "HEX", "RGB"] = "QColor",
148
+ theme_offset=0.2,
149
+ theme: Literal["light", "dark"] | None = None,
150
+ ) -> list:
151
+ """
152
+ Extract `num` colors from the specified colormap, evenly spaced along its range,
153
+ and return them in the specified format.
154
+
155
+ Args:
156
+ colormap (str): Name of the colormap.
157
+ num (int): Number of requested colors.
158
+ format (Literal["QColor","HEX","RGB"]): The format of the returned colors ('RGB', 'HEX', 'QColor').
159
+ theme_offset (float): Has to be between 0-1. Offset to avoid colors too close to white or black with light or dark theme respectively for pyqtgraph plot background.
160
+ theme (Literal['light', 'dark'] | None): The theme to be applied. Overrides the QApplication theme if specified.
161
+
162
+ Returns:
163
+ list: List of colors in the specified format.
164
+
165
+ Raises:
166
+ ValueError: If theme_offset is not between 0 and 1.
167
+ """
168
+ if theme_offset < 0 or theme_offset > 1:
169
+ raise ValueError("theme_offset must be between 0 and 1")
170
+
171
+ cmap = pg.colormap.get(colormap)
172
+ min_pos, max_pos = Colors.set_theme_offset(theme, theme_offset)
173
+
174
+ # Generate positions that are evenly spaced within the acceptable range
175
+ if num == 1:
176
+ positions = np.array([(min_pos + max_pos) / 2])
177
+ else:
178
+ positions = np.linspace(min_pos, max_pos, num)
179
+
180
+ # Sample colors from the colormap at the calculated positions
181
+ colors = cmap.map(positions, mode="float")
182
+ color_list = []
183
+
184
+ for color in colors:
185
+ if format.upper() == "HEX":
186
+ color_list.append(QColor.fromRgbF(*color).name())
187
+ elif format.upper() == "RGB":
188
+ color_list.append(tuple((np.array(color) * 255).astype(int)))
189
+ elif format.upper() == "QCOLOR":
190
+ color_list.append(QColor.fromRgbF(*color))
191
+ else:
192
+ raise ValueError("Unsupported format. Please choose 'RGB', 'HEX', or 'QColor'.")
193
+ return color_list
194
+
110
195
  @staticmethod
111
196
  def golden_angle_color(
112
- colormap: str, num: int, format: Literal["QColor", "HEX", "RGB"] = "QColor"
197
+ colormap: str,
198
+ num: int,
199
+ format: Literal["QColor", "HEX", "RGB"] = "QColor",
200
+ theme_offset=0.2,
201
+ theme: Literal["dark", "light"] | None = None,
113
202
  ) -> list:
114
203
  """
115
204
  Extract num colors from the specified colormap following golden angle distribution and return them in the specified format.
@@ -118,45 +207,39 @@ class Colors:
118
207
  colormap (str): Name of the colormap.
119
208
  num (int): Number of requested colors.
120
209
  format (Literal["QColor","HEX","RGB"]): The format of the returned colors ('RGB', 'HEX', 'QColor').
210
+ theme_offset (float): Has to be between 0-1. Offset to avoid colors too close to white or black with light or dark theme respectively for pyqtgraph plot background.
121
211
 
122
212
  Returns:
123
213
  list: List of colors in the specified format.
124
214
 
125
215
  Raises:
126
- ValueError: If the number of requested colors is greater than the number of colors in the colormap.
216
+ ValueError: If theme_offset is not between 0 and 1.
127
217
  """
218
+
128
219
  cmap = pg.colormap.get(colormap)
129
- cmap_colors = cmap.getColors(mode="float")
130
- if num > len(cmap_colors):
131
- raise ValueError(
132
- f"Number of colors requested ({num}) is greater than the number of colors in the colormap ({len(cmap_colors)})"
133
- )
134
- angles = Colors.golden_ratio(len(cmap_colors))
135
- color_selection = np.round(np.interp(angles, (-np.pi, np.pi), (0, len(cmap_colors))))
136
- colors = []
137
- ii = 0
138
- while len(colors) < num:
139
- color_index = int(color_selection[ii])
140
- color = cmap_colors[color_index]
141
- app = QApplication.instance()
142
- if hasattr(app, "theme") and app.theme.theme == "light":
143
- background = 255
144
- else:
145
- background = 0
146
- if np.abs(np.mean(color[:3] * 255) - background) < 50:
147
- ii += 1
148
- continue
220
+ phi = (1 + np.sqrt(5)) / 2 # Golden ratio
221
+ golden_angle_conjugate = 1 - (1 / phi) # Approximately 0.38196601125
222
+
223
+ min_pos, max_pos = Colors.set_theme_offset(theme, theme_offset)
224
+
225
+ # Generate positions within the acceptable range
226
+ positions = np.mod(np.arange(num) * golden_angle_conjugate, 1)
227
+ positions = min_pos + positions * (max_pos - min_pos)
228
+
229
+ # Sample colors from the colormap at the calculated positions
230
+ colors = cmap.map(positions, mode="float")
231
+ color_list = []
149
232
 
233
+ for color in colors:
150
234
  if format.upper() == "HEX":
151
- colors.append(QColor.fromRgbF(*color).name())
235
+ color_list.append(QColor.fromRgbF(*color).name())
152
236
  elif format.upper() == "RGB":
153
- colors.append(tuple((np.array(color) * 255).astype(int)))
237
+ color_list.append(tuple((np.array(color) * 255).astype(int)))
154
238
  elif format.upper() == "QCOLOR":
155
- colors.append(QColor.fromRgbF(*color))
239
+ color_list.append(QColor.fromRgbF(*color))
156
240
  else:
157
241
  raise ValueError("Unsupported format. Please choose 'RGB', 'HEX', or 'QColor'.")
158
- ii += 1
159
- return colors
242
+ return color_list
160
243
 
161
244
  @staticmethod
162
245
  def hex_to_rgba(hex_color: str, alpha=255) -> tuple:
@@ -141,6 +141,7 @@ class StatusItem(QWidget):
141
141
  metrics_text = (
142
142
  f"<b>SERVICE:</b> {self.config.service_name}<br><b>STATUS:</b> {self.config.status}<br>"
143
143
  )
144
+ metrics_text += f"<b>BEC_LIB VERSION:</b> {self.config.info['version']}<br>"
144
145
  if self.config.metrics:
145
146
  for key, value in self.config.metrics.items():
146
147
  if key == "create_time":
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "1.1.0"
7
+ version = "1.2.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
File without changes