diff --git a/docs/api_reference/api_reference.md b/docs/api_reference/api_reference.md index fc7fd820..567e5150 100644 --- a/docs/api_reference/api_reference.md +++ b/docs/api_reference/api_reference.md @@ -1,12 +1,11 @@ (api_reference)= # API Reference -```{eval-rst} -.. autosummary:: - :toctree: _autosummary - :template: custom-module-template.rst - :recursive: +This page contains the auto-generated API documentation for all modules, classes, and functions in the BEC Widgets package. - bec_widgets +```{toctree} +:maxdepth: 2 +:caption: API Documentation +../autoapi/bec_widgets/index ``` \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 940412ff..8547ed33 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -32,16 +32,15 @@ def get_version(): release = get_version() extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.autosummary", # "sphinx.ext.coverage", - "sphinx.ext.viewcode", "sphinx.ext.napoleon", "sphinx_toolbox.collapse", "sphinx_copybutton", "myst_parser", "sphinx_design", "sphinx_inline_tabs", + "autoapi.extension", + "sphinx.ext.viewcode", ] myst_enable_extensions = [ @@ -60,7 +59,15 @@ myst_enable_extensions = [ "tasklist", ] -autosummary_generate = True # Turn on sphinx.ext.autosummary +# AutoAPI configuration +autoapi_dirs = ["../bec_widgets"] +autoapi_type = "python" +autoapi_generate_api_docs = True +autoapi_add_toctree_entry = False # We'll control the toctree manually +autoapi_keep_files = False +autoapi_python_class_content = "both" # Include both class docstring and __init__ +autoapi_member_order = "groupwise" + add_module_names = False # Remove namespaces from class/method signatures autodoc_inherit_docstrings = True # If no docstring, inherit from base class set_type_checking_flag = True # Enable 'expensive' imports for sphinx_autodoc_typehints @@ -80,3 +87,30 @@ html_theme = "pydata_sphinx_theme" html_static_path = ["_static"] html_css_files = ["custom.css"] html_logo = "../bec_widgets/assets/app_icons/bec_widgets_icon.png" + + +def skip_submodules(app, what, name, obj, skip, options): + if what == "module": + if not name.startswith("bec_widgets"): + skip = True + # print(f"Checking module: {name}") + if "bec_widgets.widgets" in name: + widget = name.split(".")[-2] + submodule = name.split(".")[-1] + if submodule in [f"register_{widget}", f"{widget}_plugin"]: + # print(f"Skipping submodule: {name}") + skip = True + elif what in ["data", "attribute"]: + obj_name = name.split(".")[-1] + if obj_name.startswith("_") or obj_name in ["__all__", "logger", "bec_logger", "app"]: + skip = True + + elif what == "class": + class_name = name.split(".")[-1] + if class_name.startswith("Demo"): + skip = True + return skip + + +def setup(app): + app.connect("autoapi-skip-member", skip_submodules) diff --git a/docs/developer/introduction/concepts.md b/docs/developer/introduction/concepts.md index 63627edc..4465ff6a 100644 --- a/docs/developer/introduction/concepts.md +++ b/docs/developer/introduction/concepts.md @@ -10,5 +10,5 @@ We offer up to three different options for composing larger GUIs from these modu ## Client-Server Architecture BEC Widgets is built on top of the [BEC](https://bec.readthedocs.io/en/latest/) package, which provides the backend for beamline experiment control. BEC Widgets is a client of BEC, meaning it can interact with the backend through a client-server architecture. To make full usage of the available features of BEC, we recommend to check the documentation about [data access](https://bec.readthedocs.io/en/latest/developer/data_access/data_access.html) in which the messaging and event system of BEC is described. -In the context of BEC Widgets, the [`BECDispatcher`](/api_reference/_autosummary/bec_widgets.utils.bec_dispatcher.BECDispatcher) connects to this messaging and event system, allowing you to link your Qt [`Slots`](https://www.pythonguis.com/tutorials/pyside6-signals-slots-events/) to messages and event received from BEC. +In the context of BEC Widgets, the {py:class}`~bec_widgets.utils.bec_dispatcher.BECDispatcher` connects to this messaging and event system, allowing you to link your Qt [`Slots`](https://www.pythonguis.com/tutorials/pyside6-signals-slots-events/) to messages and event received from BEC. diff --git a/docs/requirements.txt b/docs/requirements.txt index 99a36e0c..a478318a 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -7,4 +7,5 @@ sphinx-copybutton sphinx-inline-tabs myst-parser sphinx-design +sphinx-autoapi tomli \ No newline at end of file diff --git a/docs/user/api_reference/api_reference.md b/docs/user/api_reference/api_reference.md index a1fc340d..8cbfb661 100644 --- a/docs/user/api_reference/api_reference.md +++ b/docs/user/api_reference/api_reference.md @@ -1,11 +1,10 @@ (user.api_reference)= # User API Reference -```{eval-rst} -.. autosummary:: - :toctree: _autosummary - :template: custom-module-template.rst +This section contains the API documentation for the main user-facing modules and classes. - bec_widgets.cli.client +```{toctree} +:maxdepth: 2 +../../autoapi/bec_widgets/cli/index ``` \ No newline at end of file diff --git a/docs/user/getting_started/quick_start.md b/docs/user/getting_started/quick_start.md index 776cdb8f..f0bfa746 100644 --- a/docs/user/getting_started/quick_start.md +++ b/docs/user/getting_started/quick_start.md @@ -3,9 +3,9 @@ In order to use BEC Widgets as a plotting tool for BEC, it needs to be [installed](#user.installation) in the same Python environment as the BEC IPython client (please refer to the [BEC documentation](https://bec.readthedocs.io/en/latest/user/command_line_interface.html#start-up) for more details). Upon startup, the client will automatically launch a GUI and store it as a `gui` object in the client. The GUI backend will also be automatically connect to the BEC server, giving access to all information on the server and allowing the user to visualize the data in real-time. ## BECGuiClient -The `gui` object is the main entry point for interacting with the BEC Widgets framework. It is an instance of the [`BECGuiClient`](/api_reference/_autosummary/bec_widgets.cli.client.BECGuiClient) class, which provides methods to create and manage GUI components. Upon BEC startup, a default [`BECDockArea`](/api_reference/_autosummary/bec_widgets.cli.client.BECDockArea) instance named *bec* is automatically launched. +The `gui` object is the main entry point for interacting with the BEC Widgets framework. It is an instance of the {py:class}`~bec_widgets.cli.client_utils.BECGuiClient` class, which provides methods to create and manage GUI components. Upon BEC startup, a default {py:class}`~bec_widgets.cli.client.BECDockArea` instance named *bec* is automatically launched. -A launcher interface is available via the top menu bar under New → Open Launcher. This opens a window where users can launch a new [`BECDockArea`](/api_reference/_autosummary/bec_widgets.cli.client.BECDockArea) instance, an [AutoUpdate](#user.auto_updates) instance, individual widgets or a custom *ui file* created with *BEC Designer*. Alternatively, users can launch a new [`BECDockArea`](/api_reference/_autosummary/bec_widgets.cli.client.BECDockArea) from the command line: +A launcher interface is available via the top menu bar under New → Open Launcher. This opens a window where users can launch a new {py:class}`~bec_widgets.cli.client.BECDockArea` instance, an [AutoUpdate](#user.auto_updates) instance, individual widgets or a custom *ui file* created with *BEC Designer*. Alternatively, users can launch a new {py:class}`~bec_widgets.cli.client.BECDockArea` from the command line: ```python dock_area = gui.new() # launches a new BECDockArea instance @@ -19,7 +19,7 @@ If a name is provided, the new dock area will use that name. If the name already ## BECDockArea -The [`BECDockArea`](/api_reference/_autosummary/bec_widgets.cli.client.BECDockArea) is a versatile container for quickly building customized GUIs. It supports adding new widgets either through the CLI or directly via toolbar actions. Widgets must be added into [`BECDock`](/api_reference/_autosummary/bec_widgets.cli.client.BECDock) instances, which serve as the individual containers. These docks can be arranged freely, detached from the main window, and used as floating panels. +The {py:class}`~bec_widgets.cli.client.BECDockArea` is a versatile container for quickly building customized GUIs. It supports adding new widgets either through the CLI or directly via toolbar actions. Widgets must be added into {py:class}`~bec_widgets.cli.client.BECDockArea` instances, which serve as the individual containers. These docks can be arranged freely, detached from the main window, and used as floating panels. From the CLI, you can create new docks like this: @@ -34,23 +34,23 @@ dock = gui.new().new() ![BECDockArea.png](BECDockArea.png) --> ## Widgets -Widgets are the building blocks of the BEC Widgets framework. They are the visual components that allow users to interact with the data and control the behavior of the application. Each dock can contain multiple widgets, albeit we recommend for most use cases a single widget per dock. BEC Widgets provides a set of core widgets (cf. [widgets](#user.widgets)). More widgets can be added by the users, and we invite you to explore the [developer documentation](developer.widgets) to learn how to create custom widgets. +Widgets are the building blocks of the BEC Widgets framework. They are the visual components that allow users to interact with the data and control the behavior of the application. Each dock can contain multiple widgets, albeit we recommend for most use cases a single widget per dock. BEC Widgets provides a set of core widgets (cf. {ref}`user.widgets`). More widgets can be added by the users, and we invite you to explore the {ref}`developer.widgets` to learn how to create custom widgets. For the introduction given here, we will focus on the plotting widgets of BECWidgets. **Waveform Plot** - The [`WaveForm`](/api_reference/_autosummary/bec_widgets.cli.client.WaveForm) is a widget that can be used to visualize 1D waveform data, i.e. to plot data of a monitor against a motor position. The method [`plot()`](/api_reference/_autosummary/bec_widgets.cli.client.WaveForm.rst#bec_widgets.cli.client.WaveForm.plot) returns the plot object. + The {py:class}`~bec_widgets.cli.client.Waveform` is a widget that can be used to visualize 1D waveform data, i.e. to plot data of a monitor against a motor position. The method {py:meth}`~bec_widgets.cli.client.Waveform.plot` returns the plot object. ```python plt = gui.new().new().new(gui.available_widgets.Waveform) plt.plot(x_name='samx', y_name='bpm4i') ``` -Here, we create a new plot with a subscription to the devices `samx` and `bpm4i` and assign the plot to the object `plt`. We can now use this object to further customize the plot, e.g. changing the title ([`plt.title = 'my title' `](/api_reference/_autosummary/bec_widgets.cli.client.Waveform.rst#bec_widgets.cli.client.Waveform.title)), axis labels ([`plt.x_label = 'my x label'`](/api_reference/_autosummary/bec_widgets.cli.client.Waveform.rst#bec_widgets.cli.client.Waveform.x_label)) - +Here, we create a new plot with a subscription to the devices `samx` and `bpm4i` and assign the plot to the object `plt`. We can now use this object to further customize the plot, e.g. changing the title (`title`), axis labels (`x_label`) + -We invite you to explore the API of the WaveForm in the [documentation](user.widgets.waveform_1d) or directly in the command line. +We invite you to explore the API of the WaveForm in the {ref}`user.widgets.waveform_1d` or directly in the command line. To plot custom data, i.e. data that is not directly available through a scan in BEC, we can use the same method, but provide the data directly to the plot. @@ -68,18 +68,18 @@ curve = plt.plot(x=[1,2,3,4], y=[1,4,9,16]) **Scatter Plot** -The [`WaveForm`](/api_reference/_autosummary/bec_widgets.cli.client.WaveForm) widget can also be used to visualize 2D scatter plots. More details on setting up the scatter plot are available in the widget documentation of the [scatter plot](user.widgets.scatter_2d). +The {py:class}`~bec_widgets.cli.client.Waveform` widget can also be used to visualize 2D scatter plots. More details on setting up the scatter plot are available in the widget documentation of the {ref}`user.widgets.scatter_2d`. **Motor Map** -The [`MotorMap`](/api_reference/_autosummary/bec_widgets.cli.client.MotorMap) widget can be used to visualize the position of motors. It's focused on tracking and visualizing the position of motors, crucial for precise alignment and movement tracking during scans. More details on setting up the motor map are available in the widget documentation of the [motor map](user.widgets.motor_map). +The {py:class}`~bec_widgets.cli.client.MotorMap` widget can be used to visualize the position of motors. It's focused on tracking and visualizing the position of motors, crucial for precise alignment and movement tracking during scans. More details on setting up the motor map are available in the widget documentation of the {ref}`user.widgets.motor_map`. **Image Plot** -The [`Image`](/api_reference/_autosummary/bec_widgets.cli.client.Image) widget can be used to visualize 2D image data for example a camera. More details on setting up the image plot are available in the widget documentation of the [image plot](user.widgets.image). +The {py:class}`~bec_widgets.cli.client.Image` widget can be used to visualize 2D image data for example a camera. More details on setting up the image plot are available in the widget documentation of the {ref}`user.widgets.image`. ### Useful Commands -We recommend users to explore the API of the widgets by themselves since we assume that the user interface is supposed to be intuitive and self-explanatory. We appreciate feedback from user in order to constantly improve the experience and allow easy access to the gui, widgets and their functionality. We recommend checking the [API documentation](user.api_reference), but also by using BEC Widgets, exploring the available functions and check their dockstrings. +We recommend users to explore the API of the widgets by themselves since we assume that the user interface is supposed to be intuitive and self-explanatory. We appreciate feedback from user in order to constantly improve the experience and allow easy access to the gui, widgets and their functionality. We recommend checking the {ref}`user.api_reference`, but also by using BEC Widgets, exploring the available functions and check their dockstrings. ```python gui.new? # shows the dockstring of the new method ``` diff --git a/docs/user/widgets/bec_progressbar/bec_progressbar.md b/docs/user/widgets/bec_progressbar/bec_progressbar.md index 27c06b44..51f4bddf 100644 --- a/docs/user/widgets/bec_progressbar/bec_progressbar.md +++ b/docs/user/widgets/bec_progressbar/bec_progressbar.md @@ -3,7 +3,7 @@ ```{tab} Overview -The [`BECProgressbar`](/api_reference/_autosummary/bec_widgets.cli.client.BECProgressBar) widget is a general purpose progress bar that follows the BEC theme and style. It can be embedded in any application to display the progress of a task or operation. +The {py:class}`~bec_widgets.cli.client.BECProgressBar` widget is a general purpose progress bar that follows the BEC theme and style. It can be embedded in any application to display the progress of a task or operation. ## Key Features: - **Modern Design**: The BEC Progressbar widget is designed with a modern and sleek appearance, following the BEC theme. @@ -35,6 +35,8 @@ pb.set_value(50) ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.BECProgressBar.rst +.. autoclass:: bec_widgets.cli.client.BECProgressBar + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/bec_status_box/bec_status_box.md b/docs/user/widgets/bec_status_box/bec_status_box.md index dc7ef9f3..539507c9 100644 --- a/docs/user/widgets/bec_status_box/bec_status_box.md +++ b/docs/user/widgets/bec_status_box/bec_status_box.md @@ -3,7 +3,7 @@ ````{tab} Overview -The [`BEC Status Box`](/api_reference/_autosummary/bec_widgets.cli.client.BECStatusBox) widget is designed to monitor the status and health of all running BEC processes. This widget provides a real-time overview of the BEC core services, including DeviceServer, ScanServer, SciHub, ScanBundler, and FileWriter. The top-level display indicates the overall state of the BEC services, while the collapsed view allows users to delve into the status of each individual process. By double-clicking on a specific process, users can access a detailed popup window with live updates of the metrics for that process. +The {py:class}`~bec_widgets.cli.client.BECStatusBox` widget is designed to monitor the status and health of all running BEC processes. This widget provides a real-time overview of the BEC core services, including DeviceServer, ScanServer, SciHub, ScanBundler, and FileWriter. The top-level display indicates the overall state of the BEC services, while the collapsed view allows users to delve into the status of each individual process. By double-clicking on a specific process, users can access a detailed popup window with live updates of the metrics for that process. ## Key Features: - **Comprehensive Service Monitoring**: Track the state of individual BEC services, including real-time updates on their health and status. @@ -33,6 +33,8 @@ Once the `BECStatusBox` is added, users can interact with it to view the status ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.BECStatusBox.rst +.. autoclass:: bec_widgets.cli.client.BECStatusBox + :members: + :show-inheritance: ``` ```` \ No newline at end of file diff --git a/docs/user/widgets/buttons_appearance/buttons_appearance.md b/docs/user/widgets/buttons_appearance/buttons_appearance.md index 9811f312..5d7550eb 100644 --- a/docs/user/widgets/buttons_appearance/buttons_appearance.md +++ b/docs/user/widgets/buttons_appearance/buttons_appearance.md @@ -146,8 +146,14 @@ my_gui.show() ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.DarkModeButton.rst -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.ColorButton.rst -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.ColormapSelector.rst +.. autoclass:: bec_widgets.cli.client.DarkModeButton + :members: + :show-inheritance: +.. autoclass:: bec_widgets.cli.client.ColorButton + :members: + :show-inheritance: +.. autoclass:: bec_widgets.cli.client.ColormapSelector + :members: + :show-inheritance: ``` ```` \ No newline at end of file diff --git a/docs/user/widgets/buttons_queue/button_queue.md b/docs/user/widgets/buttons_queue/button_queue.md index 98de1026..c269683e 100644 --- a/docs/user/widgets/buttons_queue/button_queue.md +++ b/docs/user/widgets/buttons_queue/button_queue.md @@ -39,7 +39,7 @@ The `Reset Button` is used to reset the scan queue. It prompts the user for conf - **Toolbar and Button Options**: Can be configured as a toolbar button or a standard push button. ``` -`````{tab} Examples +````{tab} Examples Integrating these buttons into a BEC GUI layout is straightforward. The following examples demonstrate how to embed these buttons within a custom GUI layout using `QtWidgets`. @@ -66,12 +66,21 @@ app.exec_() ``` `ResumeButton`, `ResetButton`, and `AbortButton` may be used in an exactly analogous way. +```` ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.StopButton.rst -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.ResumeButton.rst -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.AbortButton.rst -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.ResetButton.rst +.. autoclass:: bec_widgets.cli.client.StopButton + :members: + :show-inheritance: +.. autoclass:: bec_widgets.cli.client.ResumeButton + :members: + :show-inheritance: +.. autoclass:: bec_widgets.cli.client.AbortButton + :members: + :show-inheritance: +.. autoclass:: bec_widgets.cli.client.ResetButton + :members: + :show-inheritance: ``` -````` +```` diff --git a/docs/user/widgets/dap_combo_box/dap_combo_box.md b/docs/user/widgets/dap_combo_box/dap_combo_box.md index f8539e41..2778f77b 100644 --- a/docs/user/widgets/dap_combo_box/dap_combo_box.md +++ b/docs/user/widgets/dap_combo_box/dap_combo_box.md @@ -4,8 +4,8 @@ ````{tab} Overview -The [`DAPComboBox`](/api_reference/_autosummary/bec_widgets.widgets.dap_combo_box.dap_combo_box.DAPComboBox) is a widget that extends the functionality of a standard `QComboBox` to allow the user to select a DAP process from all available DAP models. -One of its signals `new_dap_config` is designed to be connected to the [`add_dap(str, str, str)`](/api_reference/_autosummary/bec_widgets.widgets.waveform.waveform_widget.BECWaveformWidget.rst#bec_widgets.widgets.waveform.waveform_widget.BECWaveformWidget.add_dap) slot from the BECWaveformWidget to add a DAP process. +The {py:class}`~bec_widgets.widgets.dap_combo_box.dap_combo_box.DAPComboBox` is a widget that extends the functionality of a standard `QComboBox` to allow the user to select a DAP process from all available DAP models. +One of its signals `new_dap_config` is designed to be connected to the {py:class}`~bec_widgets.widgets.plots.waveform.waveform.Waveform.add_dap_curve` slot from the Waveform widget to add a DAP process. ## Key Features: - **Select DAP model**: Select one of the available DAP models. @@ -30,11 +30,6 @@ The following slots are available for the `DAP ComboBox` widget: - `select_y_axis(str)` : Slot to select the current y axis, emits the `x_axis_updated` signal - `select_fit_model(str)` : Slot to select the current fit model, emits the `fit_model_updated` signal. If x and y axis are set, it will also emit the `new_dap_config` signal. ```` -````{tab} API -```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.widgets.dap_combo_box.dap_combo_box.DAPCombobox.rst -``` -```` diff --git a/docs/user/widgets/device_browser/device_browser.md b/docs/user/widgets/device_browser/device_browser.md index 320e9465..909e4ea0 100644 --- a/docs/user/widgets/device_browser/device_browser.md +++ b/docs/user/widgets/device_browser/device_browser.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`Device Browser`](/api_reference/_autosummary/bec_widgets.cli.client.DeviceBrowser) widget provides a user-friendly interface for browsing through all available devices in the current BEC session. As it supports drag functionality, users can easily drag and drop device into other widgets or applications. +The {py:class}`~bec_widgets.cli.client.DeviceBrowser` widget provides a user-friendly interface for browsing through all available devices in the current BEC session. As it supports drag functionality, users can easily drag and drop device into other widgets or applications. ```{note} The `Device Browser` widget is currently under development. Other widgets may not support drag and drop functionality yet. @@ -34,6 +34,8 @@ dock_area.device_browser.DeviceBrowser ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.DeviceBrowser.rst +.. autoclass:: bec_widgets.cli.client.DeviceBrowser + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/device_input/device_input.md b/docs/user/widgets/device_input/device_input.md index 0f6524cb..ac051b9c 100644 --- a/docs/user/widgets/device_input/device_input.md +++ b/docs/user/widgets/device_input/device_input.md @@ -114,12 +114,16 @@ The following Qt properties are also included: ````{tab} API - ComboBox ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.DeviceComboBox.rst +.. autoclass:: bec_widgets.cli.client.DeviceComboBox + :members: + :show-inheritance: ``` ```` ````{tab} API - LineEdit ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.DeviceLineEdit.rst +.. autoclass:: bec_widgets.cli.client.DeviceLineEdit + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/dock_area/bec_dock_area.md b/docs/user/widgets/dock_area/bec_dock_area.md index 47d26208..78397266 100644 --- a/docs/user/widgets/dock_area/bec_dock_area.md +++ b/docs/user/widgets/dock_area/bec_dock_area.md @@ -4,12 +4,12 @@ ````{tab} Overview -[`BECDockArea`](/api_reference/_autosummary/bec_widgets.cli.client.BECDockArea) is a powerful and flexible container designed to host various widgets and docks within a grid layout. It provides an environment for organizing and managing complex user interfaces, making it ideal for applications that require multiple tools and data visualizations to be displayed simultaneously. BECDockArea is particularly useful for embedding not only visualization tools but also other interactive components, allowing users to tailor their workspace to their specific needs. +`BECDockArea` is a powerful and flexible container designed to host various widgets and docks within a grid layout. It provides an environment for organizing and managing complex user interfaces, making it ideal for applications that require multiple tools and data visualizations to be displayed simultaneously. BECDockArea is particularly useful for embedding not only visualization tools but also other interactive components, allowing users to tailor their workspace to their specific needs. - **Flexible Dock Management**: Easily add, remove, and rearrange docks within `BECDockArea`, providing a customized layout for different tasks. - **State Persistence**: Save and restore the state of the dock area, enabling consistent user experiences across sessions. - **Dock Customization**: Add docks with customizable positions, names, and behaviors, such as floating or closable docks. -- **Integration with Widgets**: Integrate various widgets like [`WaveformWidget`](user.widgets.waveform_widget), [`ImageWidget`](user.widgets.image_widget), and [`MotorMapWidget`](user.widgets.motor_map) into [`BECDockArea`](/api_reference/_autosummary/bec_widgets.cli.client.BECDockArea), either as standalone tools or as part of a more complex interface. +- **Integration with Widgets**: Integrate various widgets like [`WaveformWidget`](user.widgets.waveform_widget), [`ImageWidget`](user.widgets.image_widget), and [`MotorMapWidget`](user.widgets.motor_map) into `BECDockArea`, either as standalone tools or as part of a more complex interface. **BEC Dock Area Components Schema** @@ -114,7 +114,9 @@ When removing a dock, all widgets within the dock will be removed as well. This ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.BECDockArea.rst +.. autoclass:: bec_widgets.cli.client.BECDockArea + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/heatmap/heatmap_widget.md b/docs/user/widgets/heatmap/heatmap_widget.md index 48f05630..77d8a994 100644 --- a/docs/user/widgets/heatmap/heatmap_widget.md +++ b/docs/user/widgets/heatmap/heatmap_widget.md @@ -101,6 +101,8 @@ heatmap_widget.v_max = 1000 ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.widgets.plots.heatmap.heatmap.Heatmap.rst +.. autoclass:: bec_widgets.widgets.plots.heatmap.heatmap.Heatmap + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/image/image_widget.md b/docs/user/widgets/image/image_widget.md index cd5c45b2..c5dc3b24 100644 --- a/docs/user/widgets/image/image_widget.md +++ b/docs/user/widgets/image/image_widget.md @@ -105,6 +105,8 @@ Since the Image Widget does not have prior information about the shape of incomi ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.Image.rst +.. autoclass:: bec_widgets.cli.client.Image + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/lmfit_dialog/lmfit_dialog.md b/docs/user/widgets/lmfit_dialog/lmfit_dialog.md index fb32be2d..1baa244e 100644 --- a/docs/user/widgets/lmfit_dialog/lmfit_dialog.md +++ b/docs/user/widgets/lmfit_dialog/lmfit_dialog.md @@ -4,8 +4,8 @@ ````{tab} Overview -The [`LMFit Dialog`](/api_reference/_autosummary/bec_widgets.widgets.dap.lmfit_dialog.lmfit_dialog.LMFitDialog) is a widget that is developed to be used together with the [`Waveform`](/api_reference/_autosummary/bec_widgets.widgets.plots.waveform.waveform.Waveform) widget. The `Waveform` widget allows user to submit a fit request to BEC's [DAP server](https://bec.readthedocs.io/en/latest/developer/getting_started/architecture.html) choosing from a selection of [LMFit models](https://lmfit.github.io/lmfit-py/builtin_models.html#) to fit monitored data sources. The `LMFit Dialog` provides an interface to monitor these fits, including statistics and fit parameters in real time. -Within the `Waveform` widget, the dialog is accessible via the toolbar and will be automatically linked to the current waveform widget. For a more customised use, we can embed the `LMFit Dialog` in a larger GUI using the *BEC Designer*. In this case, one has to connect the [`update_summary_tree`](/api_reference/_autosummary/bec_widgets.widgets.dap.lmfit_dialog.lmfit_dialog.LMFitDialog.rst#bec_widgets.widgets.lmfit_dialog.lmfit_dialog.LMFitDialog.update_summary_tree) slot of the LMFit Dialog to the [`dap_summary_update`](/api_reference/_autosummary/bec_widgets.widgets.plots.waveform.waveform_widget.Waveform.rst#bec_widgets.widgets.plots.waveform.waveform.Waveform.dap_summary_update) signal of the Waveform widget to ensure its functionality. +The `LMFitDialog` is a widget that is developed to be used together with the `Waveform` widget. The `Waveform` widget allows user to submit a fit request to BEC's [DAP server](https://bec.readthedocs.io/en/latest/developer/getting_started/architecture.html) choosing from a selection of [LMFit models](https://lmfit.github.io/lmfit-py/builtin_models.html#) to fit monitored data sources. The `LMFit Dialog` provides an interface to monitor these fits, including statistics and fit parameters in real time. +Within the `Waveform` widget, the dialog is accessible via the toolbar and will be automatically linked to the current waveform widget. For a more customised use, we can embed the `LMFit Dialog` in a larger GUI using the *BEC Designer*. In this case, one has to connect the `update_summary_tree` slot of the LMFit Dialog to the `dap_summary_update` signal of the Waveform widget to ensure its functionality. ## Key Features: @@ -34,11 +34,7 @@ waveform.dap_summary_update.connect(lmfit_dialog.update_summary_tree) ``` ```` -````{tab} API -```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.widgets.lmfit_dialog.lmfit_dialog.LMFitDialog.rst -``` -```` + diff --git a/docs/user/widgets/motor_map/motor_map.md b/docs/user/widgets/motor_map/motor_map.md index ff67d78f..4b42e246 100644 --- a/docs/user/widgets/motor_map/motor_map.md +++ b/docs/user/widgets/motor_map/motor_map.md @@ -63,6 +63,8 @@ mm1.map(x_name='aptrx', y_name='aptry') ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.MotorMap.rst +.. autoclass:: bec_widgets.cli.client.MotorMap + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/multi_waveform/multi_waveform.md b/docs/user/widgets/multi_waveform/multi_waveform.md index 8756e7a7..827df866 100644 --- a/docs/user/widgets/multi_waveform/multi_waveform.md +++ b/docs/user/widgets/multi_waveform/multi_waveform.md @@ -89,6 +89,8 @@ multi_waveform.export_to_matplotlib() ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.MultiWaveform.rst +.. autoclass:: bec_widgets.cli.client.MultiWaveform + :members: + :show-inheritance: ``` ```` \ No newline at end of file diff --git a/docs/user/widgets/position_indicator/position_indicator.md b/docs/user/widgets/position_indicator/position_indicator.md index 22324ae6..aa07b639 100644 --- a/docs/user/widgets/position_indicator/position_indicator.md +++ b/docs/user/widgets/position_indicator/position_indicator.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`PositionIndicator`](/api_reference/_autosummary/bec_widgets.cli.client.PositionIndicator) widget is a simple yet effective tool for visually indicating the position of a motor within its set limits. This widget is particularly useful in applications where it is important to provide a visual clue of the motor's current position relative to its minimum and maximum values. The `PositionIndicator` can be easily integrated into your GUI application either through direct code instantiation or by using `BEC Designer`. +The `PositionIndicator` widget is a simple yet effective tool for visually indicating the position of a motor within its set limits. This widget is particularly useful in applications where it is important to provide a visual clue of the motor's current position relative to its minimum and maximum values. The `PositionIndicator` can be easily integrated into your GUI application either through direct code instantiation or by using `BEC Designer`. ## Key Features: - **Position Visualization**: Displays the current position of a motor on a linear scale, showing its location relative to the defined limits. @@ -36,7 +36,7 @@ Within the BEC Designer's [property editor](https://doc.qt.io/qt-6/designer-widg ````{tab} Examples -The `PositionIndicator` widget can be embedded in a [`BECDockArea`](#user.widgets.bec_dock_area) or used as an individual component in your application through `BEC Designer`. Below are examples demonstrating how to create and use the `PositionIndicator` from the CLI and also directly within Code. +The `PositionIndicator` widget can be embedded in a [`BECDockArea`](user.widgets.bec_dock_area) or used as an individual component in your application through `BEC Designer`. Below are examples demonstrating how to create and use the `PositionIndicator` from the CLI and also directly within Code. ## Example 1 - Creating a Position Indicator in Code @@ -95,6 +95,8 @@ self.position_indicator.set_value(new_position_value) ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.PositionIndicator.rst +.. autoclass:: bec_widgets.cli.client.PositionIndicator + :members: + :show-inheritance: ``` ```` \ No newline at end of file diff --git a/docs/user/widgets/positioner_box/positioner_box.md b/docs/user/widgets/positioner_box/positioner_box.md index 94e41892..3d203256 100644 --- a/docs/user/widgets/positioner_box/positioner_box.md +++ b/docs/user/widgets/positioner_box/positioner_box.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`PositionerBox`](/api_reference/_autosummary/bec_widgets.cli.client.PositionerBox) widget provides a graphical user interface to control a positioner device within the BEC environment. This widget allows users to interact with a positioner by setting setpoints, tweaking the motor position, and stopping motion. The device selection can be done via a small button under the device label, through `BEC Designer`, or by using the command line interface (CLI). This flexibility makes the `PositionerBox` an essential tool for tasks involving precise position control. +The `PositionerBox` widget provides a graphical user interface to control a positioner device within the BEC environment. This widget allows users to interact with a positioner by setting setpoints, tweaking the motor position, and stopping motion. The device selection can be done via a small button under the device label, through `BEC Designer`, or by using the command line interface (CLI). This flexibility makes the `PositionerBox` an essential tool for tasks involving precise position control. ## Key Features: - **Device Selection**: Easily select a positioner device by clicking the button under the device label or by configuring the widget in `BEC Designer`. @@ -58,6 +58,8 @@ self.positioner_box.set_positioner("motor2") ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.PositionerBox.rst +.. autoclass:: bec_widgets.cli.client.PositionerBox + :members: + :show-inheritance: ``` ```` \ No newline at end of file diff --git a/docs/user/widgets/positioner_box/positioner_box_2d.md b/docs/user/widgets/positioner_box/positioner_box_2d.md index b1ee743a..1d817dd2 100644 --- a/docs/user/widgets/positioner_box/positioner_box_2d.md +++ b/docs/user/widgets/positioner_box/positioner_box_2d.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`PositionerBox2D`](/api_reference/_autosummary/bec_widgets.cli.client.PositionerBox2D) widget is very similar to the [`PositionerBox`](/user/widgets/positioner_box/positioner_box) but allows controlling two positioners at the same time, in a horizontal and vertical orientation respectively. It is intended primarily for controlling axes which have a perpendicular relationship like that. In other cases, it may be better to use a `PositionerGroup` instead. +The `PositionerBox2D` widget is very similar to the `PositionerBox` but allows controlling two positioners at the same time, in a horizontal and vertical orientation respectively. It is intended primarily for controlling axes which have a perpendicular relationship like that. In other cases, it may be better to use a `PositionerGroup` instead. The `PositionerBox2D` has the same features as the standard `PositionerBox`, but additionally, step buttons which move the positioner by the selected step size, and tweak buttons which move by a tenth of the selected step size. @@ -55,6 +55,8 @@ self.positioner_box.set_positioner_verr("samy") ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.PositionerBox2D.rst +.. autoclass:: bec_widgets.cli.client.PositionerBox2D + :members: + :show-inheritance: ``` ```` \ No newline at end of file diff --git a/docs/user/widgets/progress_bar/ring_progress_bar.md b/docs/user/widgets/progress_bar/ring_progress_bar.md index a86ec75a..b340ba0c 100644 --- a/docs/user/widgets/progress_bar/ring_progress_bar.md +++ b/docs/user/widgets/progress_bar/ring_progress_bar.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`Ring Progress Bar`](/api_reference/_autosummary/bec_widgets.cli.client.RingProgressBar) widget is a circular progress bar designed to visualize the progress of tasks in a clear and intuitive manner. This widget is particularly useful in applications where task progress needs to be represented as a percentage. The `Ring Progress Bar` can be controlled directly via its API or can be hooked up to track the progress of a device readback or scan, providing real-time visual feedback. +The `RingProgressBar` widget is a circular progress bar designed to visualize the progress of tasks in a clear and intuitive manner. This widget is particularly useful in applications where task progress needs to be represented as a percentage. The `Ring Progress Bar` can be controlled directly via its API or can be hooked up to track the progress of a device readback or scan, providing real-time visual feedback. ## Key Features: - **Circular Progress Visualization**: Displays a circular progress bar to represent task completion. @@ -98,7 +98,9 @@ progress.set_value([50, 75, 25]) ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.RingProgressBar.rst +.. autoclass:: bec_widgets.cli.client.RingProgressBar + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/queue/queue.md b/docs/user/widgets/queue/queue.md index 41a90ebc..340f8044 100644 --- a/docs/user/widgets/queue/queue.md +++ b/docs/user/widgets/queue/queue.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`BEC Queue`](/api_reference/_autosummary/bec_widgets.cli.client.BECQueue) widget provides a real-time display and control of the BEC scan queue, allowing users to monitor, manage, and control the status of ongoing and pending scans. The widget automatically updates to reflect the current state of the scan queue, displaying critical information such as scan numbers, types, and statuses. Additionally, it provides control options to stop individual scans, stop the entire queue, resume, and reset the queue, making it a powerful tool for managing scan operations in the BEC environment. +The `BECQueue` widget provides a real-time display and control of the BEC scan queue, allowing users to monitor, manage, and control the status of ongoing and pending scans. The widget automatically updates to reflect the current state of the scan queue, displaying critical information such as scan numbers, types, and statuses. Additionally, it provides control options to stop individual scans, stop the entire queue, resume, and reset the queue, making it a powerful tool for managing scan operations in the BEC environment. ## Key Features: - **Real-Time Queue Monitoring**: Displays the current state of the BEC scan queue, with automatic updates as the queue changes. @@ -39,6 +39,8 @@ Once the widget is added, it will automatically display the current scan queue ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.BECQueue.rst +.. autoclass:: bec_widgets.cli.client.BECQueue + :members: + :show-inheritance: ``` ```` \ No newline at end of file diff --git a/docs/user/widgets/scan_control/scan_control.md b/docs/user/widgets/scan_control/scan_control.md index 86592f10..c72f787e 100644 --- a/docs/user/widgets/scan_control/scan_control.md +++ b/docs/user/widgets/scan_control/scan_control.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`Scan Control`](/api_reference/_autosummary/bec_widgets.cli.client.ScanControl) widget provides a graphical user interface (GUI) to manage various scan operations in a BEC environment. It is designed to interact with the BEC server, enabling users to start and stop scans. The widget automatically creates the necessary input form based on the scan's signature and gui_config, making it highly adaptable to different scanning processes. +The `ScanControl` widget provides a graphical user interface (GUI) to manage various scan operations in a BEC environment. It is designed to interact with the BEC server, enabling users to start and stop scans. The widget automatically creates the necessary input form based on the scan's signature and gui_config, making it highly adaptable to different scanning processes. ## Key Features: - **Automatic Interface Generation**: Automatically generates a control interface based on scan signatures and `gui_config`. @@ -59,6 +59,8 @@ scan_control = dock_area.new().new(gui.available_widgets.ScanControl) ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.ScanControl.rst +.. autoclass:: bec_widgets.cli.client.ScanControl + :members: + :show-inheritance: ``` ```` \ No newline at end of file diff --git a/docs/user/widgets/scatter_waveform/scatter_waveform.md b/docs/user/widgets/scatter_waveform/scatter_waveform.md index 3b3a7794..4c9ffce6 100644 --- a/docs/user/widgets/scatter_waveform/scatter_waveform.md +++ b/docs/user/widgets/scatter_waveform/scatter_waveform.md @@ -34,6 +34,8 @@ The ScatterWaveform widget only plots the data points if both x and y axis motor ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.ScatterWaveform.rst +.. autoclass:: bec_widgets.cli.client.ScatterWaveform + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/signal_input/signal_input.md b/docs/user/widgets/signal_input/signal_input.md index 7405c2fb..0f8c4734 100644 --- a/docs/user/widgets/signal_input/signal_input.md +++ b/docs/user/widgets/signal_input/signal_input.md @@ -104,14 +104,6 @@ The following Qt properties are also included: ```` -````{tab} API - ComboBox -```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.control.device_input.signal_combobox.SignalComboBox.rst -``` -```` -````{tab} API - LineEdit -```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.control.device_input.signal_line_edit.SignalLineEdit.rst -``` -```` + + diff --git a/docs/user/widgets/signal_label/signal_label.md b/docs/user/widgets/signal_label/signal_label.md index d6cdf097..4a4aaf5f 100644 --- a/docs/user/widgets/signal_label/signal_label.md +++ b/docs/user/widgets/signal_label/signal_label.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`SignalLabel`](/api_reference/_autosummary/bec_widgets.cli.client.SignalLabel) displays the value of a signal from a device, with optional customization for labels, units, decimal formatting, and signal selection. It is designed for use in BEC (Beamline Experiment Control) GUIs to monitor values which beamline operators might want to keep an eye on, e.g. sample position, flux, hutch state... +The `SignalLabel` displays the value of a signal from a device, with optional customization for labels, units, decimal formatting, and signal selection. It is designed for use in BEC (Beamline Experiment Control) GUIs to monitor values which beamline operators might want to keep an eye on, e.g. sample position, flux, hutch state... ## Key Features: - Display: Shows the current value of a device signal. @@ -88,7 +88,9 @@ The various properties can also be set when the SignalLabel widget is added to a ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.TextBox.rst +.. autoclass:: bec_widgets.cli.client.TextBox + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/spinner/spinner.md b/docs/user/widgets/spinner/spinner.md index 4f4aa47f..e4d4209f 100644 --- a/docs/user/widgets/spinner/spinner.md +++ b/docs/user/widgets/spinner/spinner.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`SpinnerWidget`](/api_reference/_autosummary/bec_widgets.utility.spinner.spinner.SpinnerWidget) is a simple and versatile widget designed to indicate loading or movement within an application. It is commonly used to show that a device is in motion or that an operation is ongoing. The `SpinnerWidget` can be easily integrated into your GUI application either through direct code instantiation or by using `BEC Designer`. +The `SpinnerWidget` is a simple and versatile widget designed to indicate loading or movement within an application. It is commonly used to show that a device is in motion or that an operation is ongoing. The `SpinnerWidget` can be easily integrated into your GUI application either through direct code instantiation or by using `BEC Designer`. ## Key Features: - **Loading Indicator**: Provides a visual indication of ongoing operations or device movement. diff --git a/docs/user/widgets/text_box/text_box.md b/docs/user/widgets/text_box/text_box.md index e76008df..5e7b5573 100644 --- a/docs/user/widgets/text_box/text_box.md +++ b/docs/user/widgets/text_box/text_box.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`Text Box Widget`](/api_reference/_autosummary/bec_widgets.cli.client.TextBox) is a versatile widget that allows users to display text within the BEC GUI. It supports both plain text and HTML, making it useful for displaying simple messages or more complex formatted content. This widget is particularly suited for integrating textual content directly into the user interface, whether as a standalone message box or as part of a larger application interface. +The {py:class}`~bec_widgets.cli.client.TextBox` is a versatile widget that allows users to display text within the BEC GUI. It supports both plain text and HTML, making it useful for displaying simple messages or more complex formatted content. This widget is particularly suited for integrating textual content directly into the user interface, whether as a standalone message box or as part of a larger application interface. ## Key Features: - **Text Display**: Display either plain text or HTML content, with automatic detection of the format. @@ -45,7 +45,9 @@ text_box.set_html_text("

Welcome to BEC Widgets

This is an example of ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.TextBox.rst +.. autoclass:: bec_widgets.cli.client.TextBox + :members: + :show-inheritance: ``` ```` diff --git a/docs/user/widgets/toggle/toggle.md b/docs/user/widgets/toggle/toggle.md index 9aed6eda..dd074f22 100644 --- a/docs/user/widgets/toggle/toggle.md +++ b/docs/user/widgets/toggle/toggle.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`Toggle Switch`](/api_reference/_autosummary/bec_widgets.cli.client.ToggleSwitch) widget provides a simple, customizable toggle switch that can be used to represent binary states (e.g., on/off, true/false) within a GUI. This widget is designed to be used directly in code or added through `BEC Designer`, making it versatile for various applications where a user-friendly switch is needed. +The {py:class}`~bec_widgets.cli.client.ToggleSwitch` widget provides a simple, customizable toggle switch that can be used to represent binary states (e.g., on/off, true/false) within a GUI. This widget is designed to be used directly in code or added through `BEC Designer`, making it versatile for various applications where a user-friendly switch is needed. ## Key Features: - **Binary State Representation**: Represents a simple on/off state with a smooth toggle animation. diff --git a/docs/user/widgets/waveform/waveform_widget.md b/docs/user/widgets/waveform/waveform_widget.md index 7dde8084..a896bccb 100644 --- a/docs/user/widgets/waveform/waveform_widget.md +++ b/docs/user/widgets/waveform/waveform_widget.md @@ -101,6 +101,8 @@ print(dap_bpm3a.dap_params) ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.Waveform.rst +.. autoclass:: bec_widgets.cli.client.Waveform + :members: + :show-inheritance: ``` ```` \ No newline at end of file diff --git a/docs/user/widgets/website/website.md b/docs/user/widgets/website/website.md index 7a3dd573..25ca4322 100644 --- a/docs/user/widgets/website/website.md +++ b/docs/user/widgets/website/website.md @@ -4,7 +4,7 @@ ````{tab} Overview -The [`Website Widget`](/api_reference/_autosummary/bec_widgets.cli.client.WebsiteWidget) is a versatile tool that allows users to display websites directly within the BEC GUI. This widget is useful for embedding documentation, dashboards, or any web-based tools within the application interface. It is designed to be integrated within a [`BECDockArea`](user.widgets.bec_dock_area) or used as an individual component in your application through `BEC Designer`. +The {py:class}`~bec_widgets.cli.client.WebsiteWidget` is a versatile tool that allows users to display websites directly within the BEC GUI. This widget is useful for embedding documentation, dashboards, or any web-based tools within the application interface. It is designed to be integrated within a [`BECDockArea`](user.widgets.bec_dock_area) or used as an individual component in your application through `BEC Designer`. ## Key Features: - **URL Display**: Set and display any website URL within the widget. @@ -66,6 +66,8 @@ print(f"The current URL is: {current_url}") ````{tab} API ```{eval-rst} -.. include:: /api_reference/_autosummary/bec_widgets.cli.client.WebsiteWidget.rst +.. autoclass:: bec_widgets.cli.client.WebsiteWidget + :members: + :show-inheritance: ``` ````