bec-widgets 0.64.0__tar.gz → 0.64.2__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.
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/CHANGELOG.md +20 -20
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/PKG-INFO +1 -1
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/cli/client_utils.py +8 -1
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/cli/generate_cli.py +2 -48
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/cli/server.py +2 -2
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +1 -1
- bec_widgets-0.64.2/bec_widgets/utils/plugin_utils.py +88 -0
- bec_widgets-0.64.2/bec_widgets/widgets/__init__.py +5 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/dock/dock.py +1 -1
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/customisation.md +2 -2
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/buttons.md +1 -1
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/pyproject.toml +1 -1
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/end-2-end/conftest.py +2 -1
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_bec_dock.py +1 -1
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_bec_figure.py +1 -1
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_generate_cli_client.py +0 -14
- bec_widgets-0.64.2/tests/unit_tests/test_plugin_utils.py +14 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_scan_control.py +1 -1
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_spiral_progress_bar.py +1 -1
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_stop_button.py +1 -1
- bec_widgets-0.64.0/bec_widgets/utils/plugin_utils.py +0 -40
- bec_widgets-0.64.0/bec_widgets/widgets/__init__.py +0 -5
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/.git_hooks/pre-commit +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/.gitignore +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/.gitlab/issue_templates/bug_report_template.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/.gitlab/issue_templates/documentation_update_template.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/.gitlab/issue_templates/feature_request_template.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/.gitlab/merge_request_templates/default.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/.gitlab-ci.yml +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/.pylintrc +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/.readthedocs.yaml +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/LICENSE +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/README.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/assets/bec_widgets_icon.png +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/assets/terminal_icon.png +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/cli/auto_updates.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/cli/client.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/cli/rpc_register.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/examples/jupyter_console/jupyter_console_window.ui +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/examples/motor_movement/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/examples/motor_movement/motor_control_compilations.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/examples/motor_movement/motor_controller.ui +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/bec_table.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/colors.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/crosshair.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/validator_delegate.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/buttons/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/buttons/stop_button/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/buttons/stop_button/stop_button.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/dock/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/dock/dock_area.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/figure.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/image/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/motor_map/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/waveform/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/jupyter_console/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/motor_control.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/motor_table/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/motor_table/motor_table.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/motor_table/motor_table.ui +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/movement_absolute/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/movement_absolute/movement_absolute.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/movement_absolute/movement_absolute.ui +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/movement_relative/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/movement_relative/movement_relative.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/movement_relative/movement_relative.ui +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/selection/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/selection/selection.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/selection/selection.ui +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/scan_control/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/spiral_progress_bar/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/spiral_progress_bar/ring.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/spiral_progress_bar/spiral_progress_bar.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/text_box/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/text_box/text_box.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/toolbar/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/toolbar/toolbar.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/website/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/website/website.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/Makefile +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/_static/custom.css +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/_templates/custom-class-template.rst +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/_templates/custom-module-template.rst +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/api_reference/api_reference.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/assets/apps_48dp.svg +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/assets/display_settings_48dp.svg +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/assets/index_api.svg +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/assets/index_contribute.svg +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/assets/index_getting_started.svg +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/assets/index_user_guide.svg +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/assets/rocket_launch_48dp.svg +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/conf.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/developer/developer.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/developer/getting_started/development.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/developer/getting_started/getting_started.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/developer/widgets/widgets.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/index.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/introduction/introduction.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/make.bat +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/requirements.txt +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/api_reference/api_reference.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/applications/applications.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/getting_started/BECDockArea.png +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/getting_started/auto_updates.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/getting_started/getting_started.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/getting_started/gui_complex_gui.gif +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/getting_started/installation.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/getting_started/quick_start.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/user.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/BECFigure.png +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/bec_figure.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/image_plot.gif +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/motor.gif +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/progress_bar.gif +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/scatter_2D.gif +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/spiral_progress_bar.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/text_box.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/w1D.gif +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/website.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/docs/user/widgets/widgets.md +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/end-2-end/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/end-2-end/test_bec_dock_rpc_e2e.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/end-2-end/test_rpc_register_e2e.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/client_mocks.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/conftest.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_bec_connector.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_bec_dispatcher.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_bec_motor_map.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_client_utils.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_color_validation.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_configs/config_device.yaml +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_configs/config_scan.yaml +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_crosshair.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_motor_control.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_msgs/__init__.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_msgs/available_scans_message.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_plot_base.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_rpc_register.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_text_box_widget.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_waveform1d.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_website_widget.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_widget_io.py +0 -0
- {bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_yaml_dialog.py +0 -0
@@ -1,5 +1,25 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v0.64.2 (2024-06-19)
|
4
|
+
|
5
|
+
### Fix
|
6
|
+
|
7
|
+
* fix(client_utils): added close rpc command to shutdown of gui from bec_ipython_client ([`e5a7d47`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e5a7d47b21cbf066f740f1d11d7c9ea7c70f3080))
|
8
|
+
|
9
|
+
## v0.64.1 (2024-06-19)
|
10
|
+
|
11
|
+
### Fix
|
12
|
+
|
13
|
+
* fix(widgets): removed widget module import of sub widgets ([`216511b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/216511b951ff0e15b6d7c70133095f3ac45c23f4))
|
14
|
+
|
15
|
+
### Refactor
|
16
|
+
|
17
|
+
* refactor(utils): moved get_rpc_widgets to plugin_utils ([`6dabbf8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6dabbf874fbbdde89c34a7885bf95aa9c895a28b))
|
18
|
+
|
19
|
+
### Test
|
20
|
+
|
21
|
+
* test: moved rpc_classes test ([`b3575eb`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b3575eb06852b456cde915dfda281a3e778e3aeb))
|
22
|
+
|
3
23
|
## v0.64.0 (2024-06-19)
|
4
24
|
|
5
25
|
### Ci
|
@@ -141,28 +161,8 @@ This reverts commit abc6caa2d0b6141dfbe1f3d025f78ae14deddcb3 ([`fe04dd8`](https:
|
|
141
161
|
|
142
162
|
## v0.59.0 (2024-06-07)
|
143
163
|
|
144
|
-
### Build
|
145
|
-
|
146
|
-
* build: added webengine dependency ([`d56c549`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/d56c5493cd28f379d04a79d90b01c73b0760da1b))
|
147
|
-
|
148
164
|
### Ci
|
149
165
|
|
150
166
|
* ci: merged additional tests to parallel matrix job ([`178fe4d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/178fe4d2da3a959f7cd90e7ea0f47314dc1ef4ed))
|
151
167
|
|
152
168
|
* ci: added webengine dependencies ([`2d79ef8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2d79ef8fe5e52c61f4a78782770377cd6b41958b))
|
153
|
-
|
154
|
-
### Documentation
|
155
|
-
|
156
|
-
* docs: added website docs ([`cf6e5a4`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/cf6e5a40fc8320e9898a446a5bf14b77e94ef013))
|
157
|
-
|
158
|
-
### Feature
|
159
|
-
|
160
|
-
* feat(widget): added simple website widget with rpc ([`64abd67`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/64abd67b9b416bff9c89880b248d6e8639aa1e70))
|
161
|
-
|
162
|
-
## v0.58.1 (2024-06-07)
|
163
|
-
|
164
|
-
### Fix
|
165
|
-
|
166
|
-
* fix(dock): new dock can be detached upon creation ([`02a2608`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/02a26086c4540127a11c235cba30afc4fd712007))
|
167
|
-
|
168
|
-
## v0.58.0 (2024-06-07)
|
@@ -173,8 +173,15 @@ class BECGuiClientMixin:
|
|
173
173
|
|
174
174
|
def close(self) -> None:
|
175
175
|
"""
|
176
|
-
Close the
|
176
|
+
Close the gui window.
|
177
177
|
"""
|
178
|
+
if self._process is None:
|
179
|
+
return
|
180
|
+
|
181
|
+
self._run_rpc("close", (), wait_for_rpc_response=False)
|
182
|
+
while self.gui_is_alive():
|
183
|
+
time.sleep(0.2)
|
184
|
+
|
178
185
|
self._client.shutdown()
|
179
186
|
if self._process:
|
180
187
|
self._process.terminate()
|
@@ -2,7 +2,6 @@
|
|
2
2
|
from __future__ import annotations
|
3
3
|
|
4
4
|
import argparse
|
5
|
-
import importlib
|
6
5
|
import inspect
|
7
6
|
import os
|
8
7
|
import sys
|
@@ -10,9 +9,8 @@ from typing import Literal
|
|
10
9
|
|
11
10
|
import black
|
12
11
|
import isort
|
13
|
-
from qtpy.QtWidgets import QGraphicsWidget, QWidget
|
14
12
|
|
15
|
-
from bec_widgets.utils import
|
13
|
+
from bec_widgets.utils.plugin_utils import get_rpc_classes
|
16
14
|
|
17
15
|
if sys.version_info >= (3, 11):
|
18
16
|
from typing import get_overloads
|
@@ -138,50 +136,6 @@ class {class_name}(RPCBase):"""
|
|
138
136
|
with open(file_name, "w", encoding="utf-8") as file:
|
139
137
|
file.write(formatted_content)
|
140
138
|
|
141
|
-
@staticmethod
|
142
|
-
def get_rpc_classes(
|
143
|
-
repo_name: str,
|
144
|
-
) -> dict[Literal["connector_classes", "top_level_classes"], list[type]]:
|
145
|
-
"""
|
146
|
-
Get all RPC-enabled classes in the specified repository.
|
147
|
-
|
148
|
-
Args:
|
149
|
-
repo_name(str): The name of the repository.
|
150
|
-
|
151
|
-
Returns:
|
152
|
-
dict: A dictionary with keys "connector_classes" and "top_level_classes" and values as lists of classes.
|
153
|
-
"""
|
154
|
-
connector_classes = []
|
155
|
-
top_level_classes = []
|
156
|
-
anchor_module = importlib.import_module(f"{repo_name}.widgets")
|
157
|
-
directory = os.path.dirname(anchor_module.__file__)
|
158
|
-
for root, _, files in sorted(os.walk(directory)):
|
159
|
-
for file in files:
|
160
|
-
if not file.endswith(".py") or file.startswith("__"):
|
161
|
-
continue
|
162
|
-
|
163
|
-
path = os.path.join(root, file)
|
164
|
-
subs = os.path.dirname(os.path.relpath(path, directory)).split("/")
|
165
|
-
if len(subs) == 1 and not subs[0]:
|
166
|
-
module_name = file.split(".")[0]
|
167
|
-
else:
|
168
|
-
module_name = ".".join(subs + [file.split(".")[0]])
|
169
|
-
|
170
|
-
module = importlib.import_module(f"{repo_name}.widgets.{module_name}")
|
171
|
-
|
172
|
-
for name in dir(module):
|
173
|
-
obj = getattr(module, name)
|
174
|
-
if not hasattr(obj, "__module__") or obj.__module__ != module.__name__:
|
175
|
-
continue
|
176
|
-
if isinstance(obj, type) and issubclass(obj, BECConnector):
|
177
|
-
connector_classes.append(obj)
|
178
|
-
if len(subs) == 1 and (
|
179
|
-
issubclass(obj, QWidget) or issubclass(obj, QGraphicsWidget)
|
180
|
-
):
|
181
|
-
top_level_classes.append(obj)
|
182
|
-
|
183
|
-
return {"connector_classes": connector_classes, "top_level_classes": top_level_classes}
|
184
|
-
|
185
139
|
|
186
140
|
def main():
|
187
141
|
"""
|
@@ -197,7 +151,7 @@ def main():
|
|
197
151
|
current_path = os.path.dirname(__file__)
|
198
152
|
client_path = os.path.join(current_path, "client.py")
|
199
153
|
|
200
|
-
rpc_classes =
|
154
|
+
rpc_classes = get_rpc_classes("bec_widgets")
|
201
155
|
rpc_classes["connector_classes"].sort(key=lambda x: x.__name__)
|
202
156
|
|
203
157
|
generator = ClientGenerator()
|
@@ -40,7 +40,7 @@ class BECWidgetsCLIServer:
|
|
40
40
|
self._shutdown_event = False
|
41
41
|
self._heartbeat_timer = QTimer()
|
42
42
|
self._heartbeat_timer.timeout.connect(self.emit_heartbeat)
|
43
|
-
self._heartbeat_timer.start(200)
|
43
|
+
self._heartbeat_timer.start(200)
|
44
44
|
|
45
45
|
def on_rpc_update(self, msg: dict, metadata: dict):
|
46
46
|
request_id = metadata.get("request_id")
|
@@ -105,7 +105,7 @@ class BECWidgetsCLIServer:
|
|
105
105
|
self.client.connector.set(
|
106
106
|
MessageEndpoints.gui_heartbeat(self.gui_id),
|
107
107
|
messages.StatusMessage(name=self.gui_id, status=1, info={}),
|
108
|
-
expire=
|
108
|
+
expire=1,
|
109
109
|
)
|
110
110
|
|
111
111
|
def shutdown(self): # TODO not sure if needed when cleanup is done at level of BECConnector
|
@@ -10,8 +10,8 @@ from qtpy.QtGui import QIcon
|
|
10
10
|
from qtpy.QtWidgets import QApplication, QVBoxLayout, QWidget
|
11
11
|
|
12
12
|
from bec_widgets.utils import BECDispatcher, UILoader
|
13
|
-
from bec_widgets.widgets import BECFigure
|
14
13
|
from bec_widgets.widgets.dock.dock_area import BECDockArea
|
14
|
+
from bec_widgets.widgets.figure import BECFigure
|
15
15
|
from bec_widgets.widgets.jupyter_console.jupyter_console import BECJupyterConsole
|
16
16
|
|
17
17
|
# class JupyterConsoleWidget(RichJupyterWidget): # pragma: no cover:
|
@@ -0,0 +1,88 @@
|
|
1
|
+
import importlib
|
2
|
+
import inspect
|
3
|
+
import os
|
4
|
+
from typing import Literal
|
5
|
+
|
6
|
+
from bec_lib.plugin_helper import _get_available_plugins
|
7
|
+
from qtpy.QtWidgets import QGraphicsWidget, QWidget
|
8
|
+
|
9
|
+
from bec_widgets.utils import BECConnector
|
10
|
+
|
11
|
+
|
12
|
+
def get_plugin_widgets() -> dict[str, BECConnector]:
|
13
|
+
"""
|
14
|
+
Get all available widgets from the plugin directory. Widgets are classes that inherit from BECConnector.
|
15
|
+
The plugins are provided through python plugins and specified in the respective pyproject.toml file using
|
16
|
+
the following key:
|
17
|
+
|
18
|
+
[project.entry-points."bec.widgets.user_widgets"]
|
19
|
+
plugin_widgets = "path.to.plugin.module"
|
20
|
+
|
21
|
+
e.g.
|
22
|
+
[project.entry-points."bec.widgets.user_widgets"]
|
23
|
+
plugin_widgets = "pxiii_bec.bec_widgets.widgets"
|
24
|
+
|
25
|
+
assuming that the widgets module for the package pxiii_bec is located at pxiii_bec/bec_widgets/widgets and
|
26
|
+
contains the widgets to be loaded within the pxiii_bec/bec_widgets/widgets/__init__.py file.
|
27
|
+
|
28
|
+
Returns:
|
29
|
+
dict[str, BECConnector]: A dictionary of widget names and their respective classes.
|
30
|
+
"""
|
31
|
+
modules = _get_available_plugins("bec.widgets.user_widgets")
|
32
|
+
loaded_plugins = {}
|
33
|
+
print(modules)
|
34
|
+
for module in modules:
|
35
|
+
mods = inspect.getmembers(module, predicate=_filter_plugins)
|
36
|
+
for name, mod_cls in mods:
|
37
|
+
if name in loaded_plugins:
|
38
|
+
print(f"Duplicated widgets plugin {name}.")
|
39
|
+
loaded_plugins[name] = mod_cls
|
40
|
+
return loaded_plugins
|
41
|
+
|
42
|
+
|
43
|
+
def _filter_plugins(obj):
|
44
|
+
return inspect.isclass(obj) and issubclass(obj, BECConnector)
|
45
|
+
|
46
|
+
|
47
|
+
def get_rpc_classes(
|
48
|
+
repo_name: str,
|
49
|
+
) -> dict[Literal["connector_classes", "top_level_classes"], list[type]]:
|
50
|
+
"""
|
51
|
+
Get all RPC-enabled classes in the specified repository.
|
52
|
+
|
53
|
+
Args:
|
54
|
+
repo_name(str): The name of the repository.
|
55
|
+
|
56
|
+
Returns:
|
57
|
+
dict: A dictionary with keys "connector_classes" and "top_level_classes" and values as lists of classes.
|
58
|
+
"""
|
59
|
+
connector_classes = []
|
60
|
+
top_level_classes = []
|
61
|
+
anchor_module = importlib.import_module(f"{repo_name}.widgets")
|
62
|
+
directory = os.path.dirname(anchor_module.__file__)
|
63
|
+
for root, _, files in sorted(os.walk(directory)):
|
64
|
+
for file in files:
|
65
|
+
if not file.endswith(".py") or file.startswith("__"):
|
66
|
+
continue
|
67
|
+
|
68
|
+
path = os.path.join(root, file)
|
69
|
+
subs = os.path.dirname(os.path.relpath(path, directory)).split("/")
|
70
|
+
if len(subs) == 1 and not subs[0]:
|
71
|
+
module_name = file.split(".")[0]
|
72
|
+
else:
|
73
|
+
module_name = ".".join(subs + [file.split(".")[0]])
|
74
|
+
|
75
|
+
module = importlib.import_module(f"{repo_name}.widgets.{module_name}")
|
76
|
+
|
77
|
+
for name in dir(module):
|
78
|
+
obj = getattr(module, name)
|
79
|
+
if not hasattr(obj, "__module__") or obj.__module__ != module.__name__:
|
80
|
+
continue
|
81
|
+
if isinstance(obj, type) and issubclass(obj, BECConnector):
|
82
|
+
connector_classes.append(obj)
|
83
|
+
if len(subs) == 1 and (
|
84
|
+
issubclass(obj, QWidget) or issubclass(obj, QGraphicsWidget)
|
85
|
+
):
|
86
|
+
top_level_classes.append(obj)
|
87
|
+
|
88
|
+
return {"connector_classes": connector_classes, "top_level_classes": top_level_classes}
|
@@ -11,7 +11,7 @@ from bec_widgets.utils import BECConnector, ConnectionConfig, GridLayoutManager
|
|
11
11
|
if TYPE_CHECKING:
|
12
12
|
from qtpy.QtWidgets import QWidget
|
13
13
|
|
14
|
-
from bec_widgets.widgets import BECDockArea
|
14
|
+
from bec_widgets.widgets.dock import BECDockArea
|
15
15
|
|
16
16
|
|
17
17
|
class DockConfig(ConnectionConfig):
|
@@ -48,7 +48,7 @@ users to interact. BEC Widgets must be placed in the window:
|
|
48
48
|
|
49
49
|
```
|
50
50
|
from qtpy.QWidgets import QMainWindow
|
51
|
-
from bec_widgets.widgets import BECFigure
|
51
|
+
from bec_widgets.widgets.figure import BECFigure
|
52
52
|
|
53
53
|
window = QMainWindow()
|
54
54
|
bec_figure = BECFigure(gui_id="my_gui_app_id")
|
@@ -78,7 +78,7 @@ Final example:
|
|
78
78
|
```
|
79
79
|
import sys
|
80
80
|
from qtpy.QtWidgets import QMainWindow, QApplication
|
81
|
-
from bec_widgets.widgets import BECFigure
|
81
|
+
from bec_widgets.widgets.figure import BECFigure
|
82
82
|
from bec_widgets.utils.bec_dispatcher import BECDispatcher
|
83
83
|
|
84
84
|
# creation of the Qt application
|
@@ -8,7 +8,8 @@ from bec_lib.endpoints import MessageEndpoints
|
|
8
8
|
from bec_widgets.cli.client_utils import _start_plot_process
|
9
9
|
from bec_widgets.cli.rpc_register import RPCRegister
|
10
10
|
from bec_widgets.utils import BECDispatcher
|
11
|
-
from bec_widgets.widgets import BECDockArea
|
11
|
+
from bec_widgets.widgets.dock import BECDockArea
|
12
|
+
from bec_widgets.widgets.figure import BECFigure
|
12
13
|
|
13
14
|
|
14
15
|
# make threads check in autouse, **will be executed at the end**; better than
|
@@ -3,7 +3,7 @@
|
|
3
3
|
import numpy as np
|
4
4
|
import pytest
|
5
5
|
|
6
|
-
from bec_widgets.widgets import BECFigure
|
6
|
+
from bec_widgets.widgets.figure import BECFigure
|
7
7
|
from bec_widgets.widgets.figure.plots.image.image import BECImageShow
|
8
8
|
from bec_widgets.widgets.figure.plots.motor_map.motor_map import BECMotorMap
|
9
9
|
from bec_widgets.widgets.figure.plots.waveform.waveform import BECWaveform
|
@@ -97,17 +97,3 @@ def test_client_generator_with_black_formatting():
|
|
97
97
|
generated_output_formatted = isort.code(generated_output_formatted)
|
98
98
|
|
99
99
|
assert expected_output_formatted == generated_output_formatted
|
100
|
-
|
101
|
-
|
102
|
-
def test_client_generator_classes():
|
103
|
-
generator = ClientGenerator()
|
104
|
-
out = generator.get_rpc_classes("bec_widgets")
|
105
|
-
assert list(out.keys()) == ["connector_classes", "top_level_classes"]
|
106
|
-
connector_cls_names = [cls.__name__ for cls in out["connector_classes"]]
|
107
|
-
top_level_cls_names = [cls.__name__ for cls in out["top_level_classes"]]
|
108
|
-
|
109
|
-
assert "BECFigure" in connector_cls_names
|
110
|
-
assert "BECWaveform" in connector_cls_names
|
111
|
-
assert "BECDockArea" in top_level_cls_names
|
112
|
-
assert "BECFigure" in top_level_cls_names
|
113
|
-
assert "BECWaveform" not in top_level_cls_names
|
@@ -0,0 +1,14 @@
|
|
1
|
+
from bec_widgets.utils.plugin_utils import get_rpc_classes
|
2
|
+
|
3
|
+
|
4
|
+
def test_client_generator_classes():
|
5
|
+
out = get_rpc_classes("bec_widgets")
|
6
|
+
assert list(out.keys()) == ["connector_classes", "top_level_classes"]
|
7
|
+
connector_cls_names = [cls.__name__ for cls in out["connector_classes"]]
|
8
|
+
top_level_cls_names = [cls.__name__ for cls in out["top_level_classes"]]
|
9
|
+
|
10
|
+
assert "BECFigure" in connector_cls_names
|
11
|
+
assert "BECWaveform" in connector_cls_names
|
12
|
+
assert "BECDockArea" in top_level_cls_names
|
13
|
+
assert "BECFigure" in top_level_cls_names
|
14
|
+
assert "BECWaveform" not in top_level_cls_names
|
@@ -5,7 +5,7 @@ import pytest
|
|
5
5
|
from qtpy.QtWidgets import QLineEdit
|
6
6
|
|
7
7
|
from bec_widgets.utils.widget_io import WidgetIO
|
8
|
-
from bec_widgets.widgets import ScanControl
|
8
|
+
from bec_widgets.widgets.scan_control import ScanControl
|
9
9
|
from tests.unit_tests.test_msgs.available_scans_message import available_scans_message
|
10
10
|
|
11
11
|
|
@@ -5,7 +5,7 @@ from bec_lib.endpoints import MessageEndpoints
|
|
5
5
|
from pydantic import ValidationError
|
6
6
|
|
7
7
|
from bec_widgets.utils import Colors
|
8
|
-
from bec_widgets.widgets import SpiralProgressBar
|
8
|
+
from bec_widgets.widgets.spiral_progress_bar import SpiralProgressBar
|
9
9
|
from bec_widgets.widgets.spiral_progress_bar.ring import RingConfig, RingConnections
|
10
10
|
from bec_widgets.widgets.spiral_progress_bar.spiral_progress_bar import SpiralProgressBarConfig
|
11
11
|
|
@@ -1,40 +0,0 @@
|
|
1
|
-
import inspect
|
2
|
-
|
3
|
-
from bec_lib.plugin_helper import _get_available_plugins
|
4
|
-
|
5
|
-
from bec_widgets.utils import BECConnector
|
6
|
-
|
7
|
-
|
8
|
-
def get_plugin_widgets() -> dict[str, BECConnector]:
|
9
|
-
"""
|
10
|
-
Get all available widgets from the plugin directory. Widgets are classes that inherit from BECConnector.
|
11
|
-
The plugins are provided through python plugins and specified in the respective pyproject.toml file using
|
12
|
-
the following key:
|
13
|
-
|
14
|
-
[project.entry-points."bec.widgets.user_widgets"]
|
15
|
-
plugin_widgets = "path.to.plugin.module"
|
16
|
-
|
17
|
-
e.g.
|
18
|
-
[project.entry-points."bec.widgets.user_widgets"]
|
19
|
-
plugin_widgets = "pxiii_bec.bec_widgets.widgets"
|
20
|
-
|
21
|
-
assuming that the widgets module for the package pxiii_bec is located at pxiii_bec/bec_widgets/widgets and
|
22
|
-
contains the widgets to be loaded within the pxiii_bec/bec_widgets/widgets/__init__.py file.
|
23
|
-
|
24
|
-
Returns:
|
25
|
-
dict[str, BECConnector]: A dictionary of widget names and their respective classes.
|
26
|
-
"""
|
27
|
-
modules = _get_available_plugins("bec.widgets.user_widgets")
|
28
|
-
loaded_plugins = {}
|
29
|
-
print(modules)
|
30
|
-
for module in modules:
|
31
|
-
mods = inspect.getmembers(module, predicate=_filter_plugins)
|
32
|
-
for name, mod_cls in mods:
|
33
|
-
if name in loaded_plugins:
|
34
|
-
print(f"Duplicated widgets plugin {name}.")
|
35
|
-
loaded_plugins[name] = mod_cls
|
36
|
-
return loaded_plugins
|
37
|
-
|
38
|
-
|
39
|
-
def _filter_plugins(obj):
|
40
|
-
return inspect.isclass(obj) and issubclass(obj, BECConnector)
|
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/.gitlab/issue_templates/documentation_update_template.md
RENAMED
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/.gitlab/issue_templates/feature_request_template.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/examples/motor_movement/motor_controller.ui
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/buttons/stop_button/__init__.py
RENAMED
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/buttons/stop_button/stop_button.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/image/__init__.py
RENAMED
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/image/image_item.py
RENAMED
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/image/image_processor.py
RENAMED
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/motor_map/__init__.py
RENAMED
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py
RENAMED
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/waveform/__init__.py
RENAMED
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/figure/plots/waveform/waveform.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/jupyter_console/jupyter_console.py
RENAMED
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/motor_control.py
RENAMED
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/motor_table/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/selection/__init__.py
RENAMED
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/selection/selection.py
RENAMED
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/motor_control/selection/selection.ui
RENAMED
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/bec_widgets/widgets/spiral_progress_bar/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_configs/config_device_no_entry.yaml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-0.64.0 → bec_widgets-0.64.2}/tests/unit_tests/test_msgs/available_scans_message.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|