From f1affa45ae669ddffbde726eb37403a7e2d2f413 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 4 Jun 2024 16:55:46 +0000 Subject: [PATCH] Auto-update from Github Actions Workflow Deployed from commit df47c8f556a0ae4e22e603251bde023827a8ce7b (refs/heads/master) Deployed from commit baedbb83f084073b4c5021a41dced73bb2a6e0a7 (refs/heads/master) Deployed from commit dbd3bc5c34ac0bced3e6a575d2baf9926a3073cc (refs/heads/master) Deployed from commit 86ef47265f62569ed88486eb2191d37d29ae9ba9 (refs/heads/master) Deployed from commit 9a1664afc8c29d81e0c2dc1a8f07bc92a37a9f63 (refs/heads/master) Deployed from commit 079aa858d71e22883296d2edf2ec67127e3cb746 (refs/heads/master) Deployed from commit a6e7aecfa25109039b21153d7dcc890cab0a9093 (refs/heads/master) --- master/.buildinfo | 2 +- master/_modules/index.html | 9 +- master/_modules/typhos/alarm.html | 9 +- master/_modules/typhos/cache.html | 9 +- master/_modules/typhos/display.html | 9 +- master/_modules/typhos/func.html | 16 +- master/_modules/typhos/panel.html | 53 ++- master/_modules/typhos/plugins/core.html | 43 ++- master/_modules/typhos/plugins/happi.html | 9 +- master/_modules/typhos/positioner.html | 358 ++++++++++++++---- master/_modules/typhos/suite.html | 9 +- master/_modules/typhos/textedit.html | 9 +- master/_modules/typhos/tools/log.html | 9 +- master/_modules/typhos/tools/plot.html | 9 +- master/_modules/typhos/tweakable.html | 9 +- master/_modules/typhos/utils.html | 9 +- master/_modules/typhos/widgets.html | 9 +- master/_sources/index.rst.txt | 1 + master/_sources/unit_tests.rst.txt | 48 +++ .../604-perf_resize_text.rst.txt | 22 ++ .../606-enh_wait_status.rst.txt | 28 ++ .../607-tst_fix_ci_saga.rst.txt | 22 ++ .../611-enh_positioner_resizing.rst.txt | 25 ++ .../615-maint_fix_ci.rst.txt | 22 ++ .../616-fix_enum_handling.rst.txt | 23 ++ .../618-bld_jinja_bump.rst.txt | 22 ++ master/_static/basic.css | 2 +- master/_static/doctools.js | 2 +- master/_static/documentation_options.js | 2 +- master/_static/language_data.js | 4 +- master/_static/searchtools.js | 165 +++++--- master/basic_usage.html | 17 +- master/cli.html | 13 +- master/connections.html | 9 +- master/display.html | 25 +- .../typhos.tools.TyphosLogDisplay.html | 9 +- .../typhos.tools.TyphosTimePlot.html | 11 +- master/genindex.html | 19 +- master/index.html | 9 +- master/objects.inv | Bin 3452 -> 3672 bytes master/plugins.html | 9 +- master/py-modindex.html | 9 +- master/python_methods.html | 9 +- master/release_notes.html | 9 +- master/save.html | 9 +- master/search.html | 9 +- master/searchindex.js | 2 +- master/templates.html | 9 +- master/tools.html | 9 +- master/unit_tests.html | 176 +++++++++ master/upcoming_changes.html | 31 +- .../604-perf_resize_text.html | 179 +++++++++ .../606-enh_wait_status.html | 185 +++++++++ .../607-tst_fix_ci_saga.html | 179 +++++++++ .../611-enh_positioner_resizing.html | 182 +++++++++ .../615-maint_fix_ci.html | 179 +++++++++ .../616-fix_enum_handling.html | 180 +++++++++ .../618-bld_jinja_bump.html | 179 +++++++++ .../upcoming_release_notes/template-full.html | 9 +- .../template-short.html | 9 +- master/utils.html | 21 +- master/widgets.html | 39 +- 62 files changed, 2367 insertions(+), 335 deletions(-) create mode 100644 master/_sources/unit_tests.rst.txt create mode 100644 master/_sources/upcoming_release_notes/604-perf_resize_text.rst.txt create mode 100644 master/_sources/upcoming_release_notes/606-enh_wait_status.rst.txt create mode 100644 master/_sources/upcoming_release_notes/607-tst_fix_ci_saga.rst.txt create mode 100644 master/_sources/upcoming_release_notes/611-enh_positioner_resizing.rst.txt create mode 100644 master/_sources/upcoming_release_notes/615-maint_fix_ci.rst.txt create mode 100644 master/_sources/upcoming_release_notes/616-fix_enum_handling.rst.txt create mode 100644 master/_sources/upcoming_release_notes/618-bld_jinja_bump.rst.txt create mode 100644 master/unit_tests.html create mode 100644 master/upcoming_release_notes/604-perf_resize_text.html create mode 100644 master/upcoming_release_notes/606-enh_wait_status.html create mode 100644 master/upcoming_release_notes/607-tst_fix_ci_saga.html create mode 100644 master/upcoming_release_notes/611-enh_positioner_resizing.html create mode 100644 master/upcoming_release_notes/615-maint_fix_ci.html create mode 100644 master/upcoming_release_notes/616-fix_enum_handling.html create mode 100644 master/upcoming_release_notes/618-bld_jinja_bump.html diff --git a/master/.buildinfo b/master/.buildinfo index aa791248..683bf9e1 100644 --- a/master/.buildinfo +++ b/master/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 61aae54ff2a463d14d5d97cd92678484 +config: 8ab3b71538203ca61e8a83202891f5a2 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/master/_modules/index.html b/master/_modules/index.html index d0c59953..980362e9 100644 --- a/master/_modules/index.html +++ b/master/_modules/index.html @@ -3,7 +3,7 @@ - Overview: module code — Typhos 3.1.1 documentation + Overview: module code — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
- 3.1.1 + 3.1.2.dev61+ga6e7aec
@@ -64,6 +64,7 @@
  • Typhos Data Plugins for PyDM
  • Utility Functions
  • Cache Utilities
  • +
  • Unit Test Quirks
  • diff --git a/master/_modules/typhos/alarm.html b/master/_modules/typhos/alarm.html index 3454971a..a7aebfb1 100644 --- a/master/_modules/typhos/alarm.html +++ b/master/_modules/typhos/alarm.html @@ -3,7 +3,7 @@ - typhos.alarm — Typhos 3.1.1 documentation + typhos.alarm — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -64,6 +64,7 @@
  • Typhos Data Plugins for PyDM
  • Utility Functions
  • Cache Utilities
  • +
  • Unit Test Quirks
  • diff --git a/master/_modules/typhos/cache.html b/master/_modules/typhos/cache.html index 2d416751..f451054b 100644 --- a/master/_modules/typhos/cache.html +++ b/master/_modules/typhos/cache.html @@ -3,7 +3,7 @@ - typhos.cache — Typhos 3.1.1 documentation + typhos.cache — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -64,6 +64,7 @@
  • Typhos Data Plugins for PyDM
  • Utility Functions
  • Cache Utilities
  • +
  • Unit Test Quirks
  • diff --git a/master/_modules/typhos/display.html b/master/_modules/typhos/display.html index b6a72bbf..c2ad8714 100644 --- a/master/_modules/typhos/display.html +++ b/master/_modules/typhos/display.html @@ -3,7 +3,7 @@ - typhos.display — Typhos 3.1.1 documentation + typhos.display — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -64,6 +64,7 @@
  • Typhos Data Plugins for PyDM
  • Utility Functions
  • Cache Utilities
  • +
  • Unit Test Quirks
  • diff --git a/master/_modules/typhos/func.html b/master/_modules/typhos/func.html index db0591f4..0f6a072c 100644 --- a/master/_modules/typhos/func.html +++ b/master/_modules/typhos/func.html @@ -3,7 +3,7 @@ - typhos.func — Typhos 3.1.1 documentation + typhos.func — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -64,6 +64,7 @@
  • Typhos Data Plugins for PyDM
  • Utility Functions
  • Cache Utilities
  • +
  • Unit Test Quirks
  • @@ -698,12 +699,9 @@

    Source code for typhos.func

     
                 self._status_thread.status_started.connect(status_started)
                 self._status_thread.status_finished.connect(status_finished)
    +            # Re-enable the button if it's taking too long
    +            self._status_thread.status_timeout.connect(status_finished)
     
    -            # Connect the finished signal so that even in the worst case
    -            # scenario, we re-enable the button. Almost always the button will
    -            # be ended by the status_finished signal
    -            self._status_thread.finished.connect(partial(status_finished,
    -                                                         True))
                 logger.debug("Starting TyphosStatusThread ...")
                 self._status_thread.start()
    diff --git a/master/_modules/typhos/panel.html b/master/_modules/typhos/panel.html index 22c2e84c..7ad95de1 100644 --- a/master/_modules/typhos/panel.html +++ b/master/_modules/typhos/panel.html @@ -3,7 +3,7 @@ - typhos.panel — Typhos 3.1.1 documentation + typhos.panel — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -64,6 +64,7 @@
  • Typhos Data Plugins for PyDM
  • Utility Functions
  • Cache Utilities
  • +
  • Unit Test Quirks
  • @@ -113,7 +114,7 @@

    Source code for typhos.panel

     import ophyd
     from ophyd import Kind
     from ophyd.signal import EpicsSignal, EpicsSignalRO
    -from qtpy import QtCore, QtWidgets
    +from qtpy import QtCore, QtGui, QtWidgets
     from qtpy.QtCore import Q_ENUMS, Property
     
     from . import display, utils
    @@ -843,6 +844,8 @@ 

    Source code for typhos.panel

             self.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
             self.contextMenuEvent = self.open_context_menu
     
    +        self.nested_panel = False
    +
         def _get_kind(self, kind: str) -> ophyd.Kind:
             """Property getter for show[kind]."""
             return self._kinds[kind]
    @@ -943,10 +946,17 @@ 

    Source code for typhos.panel

         def add_device(self, device):
             """Typhos hook for adding a new device."""
             self.devices.clear()
    +        self.nested_panel = False
             super().add_device(device)
             # Configure the layout for the new device
             self._panel_layout.add_device(device)
    -        self._update_panel()
    + self._update_panel() + parent = self.parent() + while parent is not None: + if isinstance(parent, TyphosSignalPanel): + self.nested_panel = True + break + parent = parent.parent()
    @@ -985,6 +995,37 @@

    Source code for typhos.panel

             """
             menu = self.generate_context_menu()
             menu.exec_(self.mapToGlobal(ev.pos()))
    + + + def maybe_fix_parent_size(self): + if self.nested_panel: + # force this widget's containers to give it enough space! + self.parent().setMinimumHeight(self.parent().minimumSizeHint().height()) + +
    +[docs] + def resizeEvent(self, event: QtGui.QResizeEvent): + """ + Fix the parent container's size whenever our size changes. + + This also runs when we add or filter rows. + """ + self.maybe_fix_parent_size() + return super().resizeEvent(event)
    + + +
    +[docs] + def setVisible(self, visible: bool): + """ + Fix the parent container's size whenever we switch visibility. + + This also runs when we toggle a row visibility using the title + and when all signal rows get filtered all at once. + """ + rval = super().setVisible(visible) + self.maybe_fix_parent_size() + return rval
    diff --git a/master/_modules/typhos/plugins/core.html b/master/_modules/typhos/plugins/core.html index 5b423395..94d10771 100644 --- a/master/_modules/typhos/plugins/core.html +++ b/master/_modules/typhos/plugins/core.html @@ -3,7 +3,7 @@ - typhos.plugins.core — Typhos 3.1.1 documentation + typhos.plugins.core — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -64,6 +64,7 @@
  • Typhos Data Plugins for PyDM
  • Utility Functions
  • Cache Utilities
  • +
  • Unit Test Quirks
  • @@ -178,9 +179,11 @@

    Source code for typhos.plugins.core

         def __init__(self, channel, address, protocol=None, parent=None):
             # Create base connection
             super().__init__(channel, address, protocol=protocol, parent=parent)
    -        self._connection_open = True
    -        self.signal_type = None
    -        self.is_float = False
    +        self._connection_open: bool = True
    +        self.signal_type: type | None = None
    +        self.is_float: bool = False
    +        self.enum_strs: tuple[str, ...] = ()
    +
             # Collect our signal
             self.signal = self.find_signal(address)
             # Subscribe to updates from Ophyd
    @@ -246,7 +249,26 @@ 

    Source code for typhos.plugins.core

                              dtype, self.signal.name, self.signal_type)
     
             logger.debug("Casting %r to %r", value, self.signal_type)
    -        if self.signal_type is np.ndarray:
    +        if self.enum_strs:
    +            # signal_type is either int or str
    +            # use enums to cast type
    +            if self.signal_type is int:
    +                # Get the index
    +                try:
    +                    value = self.enum_strs.index(value)
    +                except (TypeError, ValueError, AttributeError):
    +                    value = int(value)
    +            elif self.signal_type is str:
    +                # Get the enum string
    +                try:
    +                    value = self.enum_strs[value]
    +                except (TypeError, ValueError):
    +                    value = str(value)
    +            else:
    +                raise TypeError(
    +                    f"Invalid combination: enum_strs={self.enum_strs} with signal_type={self.signal_type}"
    +                )
    +        elif self.signal_type is np.ndarray:
                 value = np.asarray(value)
             else:
                 value = self.signal_type(value)
    @@ -339,6 +361,7 @@ 

    Source code for typhos.plugins.core

                 self.unit_signal.emit(units)
             if enum_strs is not None:
                 self.enum_strings_signal.emit(enum_strs)
    +            self.enum_strs = enum_strs
     
             # Special handling for severity
             if severity is None:
    @@ -381,9 +404,9 @@ 

    Source code for typhos.plugins.core

             else:
                 self.is_float = False
     
    -        # Report new value
    -        self.send_new_value(signal_val)
    +        # Report new meta for context, then value
             self.send_new_meta(**signal_meta)
    +        self.send_new_value(signal_val)
             # If the channel is used for writing to PVs, hook it up to the
             # 'put' methods.
             if channel.value_signal is not None:
    diff --git a/master/_modules/typhos/plugins/happi.html b/master/_modules/typhos/plugins/happi.html
    index 6af7c8e0..db483e0c 100644
    --- a/master/_modules/typhos/plugins/happi.html
    +++ b/master/_modules/typhos/plugins/happi.html
    @@ -3,7 +3,7 @@
     
       
       
    -  typhos.plugins.happi — Typhos 3.1.1 documentation
    +  typhos.plugins.happi — Typhos 3.1.2.dev61+ga6e7aec documentation
           
           
     
    @@ -14,8 +14,8 @@
       
             
             
    -        
    -        
    +        
    +        
             
             
         
    @@ -35,7 +35,7 @@
                 Typhos
               
                   
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/_modules/typhos/positioner.html b/master/_modules/typhos/positioner.html index 711301cf..7d4c5c34 100644 --- a/master/_modules/typhos/positioner.html +++ b/master/_modules/typhos/positioner.html @@ -3,7 +3,7 @@ - typhos.positioner — Typhos 3.1.1 documentation + typhos.positioner — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -95,6 +96,7 @@

    Source code for typhos.positioner

     
     import inspect
     import logging
    +import math
     import os.path
     import threading
     import typing
    @@ -102,14 +104,14 @@ 

    Source code for typhos.positioner

     
     import ophyd
     from pydm.widgets.channel import PyDMChannel
    -from qtpy import QtCore, QtWidgets, uic
    +from qtpy import QtCore, QtGui, QtWidgets, uic
     
     from typhos.display import TyphosDisplaySwitcher
     
     from . import dynamic_font, utils, widgets
     from .alarm import AlarmLevel, KindLevel, _KindLevel
     from .panel import SignalOrder, TyphosSignalPanel
    -from .status import TyphosStatusThread
    +from .status import TyphosStatusMessage, TyphosStatusResult, TyphosStatusThread
     
     logger = logging.getLogger(__name__)
     
    @@ -265,6 +267,11 @@ 

    Source code for typhos.positioner

             self._initialized = False
             self._moving_channel = None
     
    +        self._show_lowlim = True
    +        self._show_lowtrav = True
    +        self._show_highlim = True
    +        self._show_hightrav = True
    +
             super().__init__(parent=parent)
     
             self.ui = typing.cast(_TyphosPositionerUI, uic.loadUi(self.ui_template, self))
    @@ -279,7 +286,7 @@ 

    Source code for typhos.positioner

             self.show_expert_button = False
             self._after_set_moving(False)
     
    -        dynamic_font.patch_widget(self.ui.user_readback, pad_percent=0.01)
    +        dynamic_font.patch_widget(self.ui.user_readback, pad_percent=0.05, min_size=4)
     
         def _clear_status_thread(self):
             """Clear a previous status thread."""
    @@ -290,18 +297,32 @@ 

    Source code for typhos.positioner

             self._status_thread.disconnect()
             self._status_thread = None
     
    -    def _start_status_thread(self, status, timeout):
    +    def _start_status_thread(
    +        self,
    +        status: ophyd.StatusBase,
    +        timeout: float,
    +        timeout_desc: str,
    +    ) -> None:
             """Start the status monitoring thread for the given status object."""
             self._status_thread = thread = TyphosStatusThread(
    -            status, start_delay=self._min_visible_operation,
    +            status,
    +            error_context="Move",
    +            timeout_calc=timeout_desc,
    +            start_delay=self._min_visible_operation,
                 timeout=timeout,
                 parent=self,
             )
    -        thread.status_started.connect(self.move_changed)
    +        thread.status_started.connect(self._move_started)
             thread.status_finished.connect(self._status_finished)
    +        thread.error_message.connect(self._set_status_text)
             thread.start()
     
    -    def _get_timeout(self, set_position: float, settle_time: float, rescale: float = 1) -> float | None:
    +    def _get_timeout(
    +        self,
    +        set_position: float,
    +        settle_time: float,
    +        rescale: float = 1,
    +    ) -> tuple[int | None, str]:
             """
             Use positioner's configuration to select a timeout.
     
    @@ -336,28 +357,40 @@ 

    Source code for typhos.positioner

     
             Returns
             -------
    -        timeout : float or None
    +        timeout : tuple[int or None, str]
                 The timeout to use for this move, or None if a timeout could
    -            not be calculated.
    +            not be calculated, bundled with an explanation on how it
    +            was calculated.
             """
             pos_sig = getattr(self.device, self._readback_attr, None)
             vel_sig = getattr(self.device, self._velocity_attr, None)
             acc_sig = getattr(self.device, self._acceleration_attr, None)
             # Not enough info == no timeout
             if pos_sig is None or vel_sig is None:
    -            return None
    +            return (None, "no timeout, missing info")
             delta = pos_sig.get() - set_position
             speed = vel_sig.get()
             # Bad speed == no timeout
             if speed == 0:
    -            return None
    +            return (None, "no timeout, speed == 0")
             # Bad acceleration == ignore acceleration
             if acc_sig is None:
                 acc_time = 0
             else:
                 acc_time = acc_sig.get()
    +        units = pos_sig.metadata.get("units", "egu")
    +        # Some friendly names for the f-string tooltip reporting
    +        dist = abs(delta)
    +        speed = abs(speed)
    +        mult = rescale
             # This time is always greater than the kinematic calc
    -        return rescale * (abs(delta/speed) + 2 * abs(acc_time)) + abs(settle_time)
    +        return (
    +            math.ceil(rescale * (dist/speed + 2 * abs(acc_time)) + abs(settle_time)),
    +            ("an upper bound on the expected time based on the speed, distance traveled, "
    +             "and acceleration time. Numerically, this is "
    +             f"{mult=}*({dist=:.2f}{units}/{speed=:.2f}{units}/s) + "
    +             f"2*{acc_time=:.2f}s + {settle_time=}s, rounded up."),
    +        )
     
         def _set(self, value):
             """Inner `set` routine - call device.set() and monitor the status."""
    @@ -370,7 +403,7 @@ 

    Source code for typhos.positioner

     
             try:
                 # Always at least 5s, give 20% extra time as margin for long moves
    -            timeout = self._get_timeout(set_position, settle_time=5, rescale=1.2)
    +            timeout, desc = self._get_timeout(set_position, settle_time=5, rescale=1.2)
             except Exception:
                 # Something went wrong, just run without a timeout.
                 logger.exception('Unable to estimate motor timeout.')
    @@ -385,7 +418,7 @@ 

    Source code for typhos.positioner

                 self._status_finished(exc)
             else:
                 # Send timeout through thread because status timeout stops the move
    -            self._start_status_thread(status, timeout)
    +            self._start_status_thread(status, timeout, desc)
     
         @QtCore.Slot(int)
         def combo_set(self, index):
    @@ -479,8 +512,7 @@ 

    Source code for typhos.positioner

             # It also controls whether or not we have a red box on the widget
             # False = Red, True = Green, None = no box (in motion is yellow)
             if not self._last_move:
    -            self._last_move = None
    -        utils.reload_widget_stylesheet(self, cascade=True)
    + self._last_move = None
    def _get_position(self): @@ -508,6 +540,7 @@

    Source code for typhos.positioner

             """Link the positioner lower limit switch with the ui element."""
             if signal is None:
                 widget.hide()
    +            self._show_lowlim = False
     
         @utils.linked_attribute('high_limit_switch_attribute',
                                 'ui.high_limit_switch', True)
    @@ -515,6 +548,7 @@ 

    Source code for typhos.positioner

             """Link the positioner high limit switch with the ui element."""
             if signal is None:
                 widget.hide()
    +            self._show_highlim = False
     
         @utils.linked_attribute('low_limit_travel_attribute', 'ui.low_limit', True)
         def _link_low_travel(self, signal, widget):
    @@ -547,6 +581,8 @@ 

    Source code for typhos.positioner

             # If not found or invalid, hide them:
             self.ui.low_limit.hide()
             self.ui.high_limit.hide()
    +        self._show_lowtrav = False
    +        self._show_hightrav = False
     
         @utils.linked_attribute('moving_attribute', 'ui.moving_indicator', True)
         def _link_moving(self, signal, widget):
    @@ -599,10 +635,7 @@ 

    Source code for typhos.positioner

                 self.ui.set_value.setAlignment(QtCore.Qt.AlignCenter)
                 self.ui.set_value.returnPressed.connect(self.set)
     
    -        self.ui.set_value.setSizePolicy(
    -            QtWidgets.QSizePolicy.Fixed,
    -            QtWidgets.QSizePolicy.Fixed,
    -        )
    +        self.ui.set_value.setSizePolicy(self.ui.user_setpoint.sizePolicy())
             self.ui.set_value.setMinimumWidth(
                 self.ui.user_setpoint.minimumWidth()
             )
    @@ -835,36 +868,80 @@ 

    Source code for typhos.positioner

             if kind_level != self.alarmKindLevel:
                 self.ui.alarm_circle.kindLevel = kind_level
     
    -
    -[docs] - def move_changed(self): + def _move_started(self) -> None: """Called when a move is begun""" logger.debug("Begin showing move in TyphosPositionerWidget") - self.moving = True
    + self.moving = True + def _set_status_text( + self, + message: TyphosStatusMessage | str, + *, + max_length: int | None = 60, + ) -> str: + """ + Set the status text label to the contents of ``message``. - def _set_status_text(self, text, *, max_length=60): - """Set the status text label to ``text``.""" - if len(text) >= max_length: - self.ui.status_label.setToolTip(text) - text = text[:max_length] + '...' - else: - self.ui.status_label.setToolTip('') + Message is either a simple string or a dataclass that + has a separate entry for the text and for the tooltip. + + Simple strings or empty string tooltips will result in + a widget with no tooltip, unless the message is longer + than the max length. + + Messages that are longer than the max length will be + truncated and also included in the tooltip. + Parameters + ---------- + message : TyphosStatusMessage or str + The message to include in the status text. + max_length : int or None, optional + The maximum length for the status text before it gets + truncated and moved to the tooltip. If this is manually + set to ``None``, there will be no limit. + + Returns + ------- + text : str + The text that is displayed in the status label, which + may be truncated. + """ + if isinstance(message, TyphosStatusMessage): + text = message.text + tooltip = message.tooltip + elif isinstance(message, str): + text = message + tooltip = "" + if max_length is not None and len(text) >= max_length: + if tooltip: + tooltip = f"{text}: {tooltip}" + else: + tooltip = text + text = message.text[:max_length] + '...' self.ui.status_label.setText(text) + if tooltip and "\n" not in tooltip: + # Force rich text, qt auto line wraps if it detects rich text + tooltip = f"<html><head/><body><p>{tooltip}</p></body></html>" + self.ui.status_label.setToolTip(tooltip) + return text - def _status_finished(self, result): + def _status_finished(self, result: TyphosStatusResult | Exception) -> None: """Called when a move is complete.""" + success = False if isinstance(result, Exception): - text = f'<b>{result.__class__.__name__}</b> {result}' - else: - text = '' - - self._set_status_text(text) - - success = not isinstance(result, Exception) - logger.debug("Completed move in TyphosPositionerWidget (result=%r)", - result) + # Calling set or move completely broke + self._set_status_text(f"<b>{result.__class__.__name__}</b> {result}") + elif result == TyphosStatusResult.success: + # Clear the status display of any lingering timeout text + self._set_status_text("") + success = True + # Other cases: keep the existing status text, whatever it is. + # This covers any case where the move started, but had an error during the move. + logger.debug( + "Completed move in TyphosPositionerWidget (result=%r)", + result, + ) self._last_move = success self.moving = False @@ -959,10 +1036,13 @@

    Source code for typhos.positioner

         """Annotations helper for positioner_row.ui; not to be instantiated."""
     
         notes_edit: TyphosNotesEdit
    -    status_container_widget: QtWidgets.QFrame
    -    extended_signal_panel: Optional[TyphosSignalPanel]
    -    error_prefix: QtWidgets.QLabel
    +    status_container_widget: QtWidgets.QWidget
    +    extended_signal_panel: Optional[RowDetails]
         switcher: TyphosDisplaySwitcher
    +    status_text_layout: None  # Row UI doesn't use status_text_layout
    +    low_limit_widget: QtWidgets.QWidget
    +    high_limit_widget: QtWidgets.QWidget
    +    setpoint_widget: QtWidgets.QWidget
     
     
     class TyphosPositionerRowWidget(TyphosPositionerWidget):
    @@ -983,12 +1063,15 @@ 

    Source code for typhos.positioner

             self._alarm_level = AlarmLevel.DISCONNECTED
     
             super().__init__(*args, **kwargs)
    -
    -        for idx in range(self.layout().count()):
    -            item = self.layout().itemAt(idx)
    -            if item is self.ui.status_text_layout:
    -                self.layout().takeAt(idx)
    -                break
    +        dynamic_font.patch_widget(self.ui.low_limit, pad_percent=0.01, max_size=12, min_size=4)
    +        dynamic_font.patch_widget(self.ui.high_limit, pad_percent=0.01, max_size=12, min_size=4)
    +        dynamic_font.patch_widget(self.ui.device_name_label, pad_percent=0.01, min_size=4)
    +        dynamic_font.patch_widget(self.ui.notes_edit, pad_percent=0.01, min_size=4)
    +        dynamic_font.patch_widget(self.ui.alarm_label, pad_percent=0.01, min_size=4)
    +        dynamic_font.patch_widget(self.ui.moving_indicator_label, pad_percent=0.01, min_size=4)
    +        dynamic_font.patch_widget(self.ui.stop_button, pad_percent=0.4, min_size=4)
    +        dynamic_font.patch_widget(self.ui.expert_button, pad_percent=0.3, min_size=4)
    +        dynamic_font.patch_widget(self.ui.clear_error_button, pad_percent=0.3, min_size=4)
     
             # TODO move these out
             self._omit_names = [
    @@ -1037,7 +1120,12 @@ 

    Source code for typhos.positioner

             omit_signals = self.all_linked_signals
             to_keep_signals = [
                 getattr(device, attr, None)
    -            for attr in (self.velocity_attribute, self.acceleration_attribute)
    +            for attr in (
    +                self.velocity_attribute,
    +                self.acceleration_attribute,
    +                self.high_limit_travel_attribute,
    +                self.low_limit_travel_attribute,
    +            )
             ]
             for sig in to_keep_signals:
                 if sig in omit_signals:
    @@ -1060,13 +1148,7 @@ 

    Source code for typhos.positioner

             if self.device is None:
                 return None
     
    -        panel = TyphosSignalPanel()
    -        panel.omitNames = self.get_names_to_omit()
    -        panel.sortBy = SignalOrder.byName
    -        panel.add_device(self.device)
    -
    -        self.ui.layout().addWidget(panel)
    -        return panel
    +        return RowDetails(row=self, parent=self, flags=QtCore.Qt.Window)
     
         def _expand_layout(self) -> None:
             """Toggle the expansion of the signal panel."""
    @@ -1074,18 +1156,12 @@ 

    Source code for typhos.positioner

                 self.ui.extended_signal_panel = self._create_signal_panel()
                 if self.ui.extended_signal_panel is None:
                     return
    -
                 to_show = True
             else:
                 to_show = not self.ui.extended_signal_panel.isVisible()
     
             self.ui.extended_signal_panel.setVisible(to_show)
     
    -        if to_show:
    -            self.ui.expand_button.setText('v')
    -        else:
    -            self.ui.expand_button.setText('>')
    -
         def add_device(self, device: ophyd.Device) -> None:
             """Add (or rather set) the ophyd device for this positioner."""
             super().add_device(device)
    @@ -1102,6 +1178,16 @@ 

    Source code for typhos.positioner

             self.ui.switcher.help_toggle_button.setToolTip(self._get_tooltip())
             self.ui.switcher.help_toggle_button.setEnabled(False)
     
    +        if not any((
    +            self._show_lowlim,
    +            self._show_highlim,
    +            self._show_lowtrav,
    +            self._show_hightrav,
    +        )):
    +            # Hide the limit sections
    +            self.ui.low_limit_widget.hide()
    +            self.ui.high_limit_widget.hide()
    +
         def _get_tooltip(self):
             """Update the tooltip based on device information."""
             # Lifted from TyphosHelpFrame
    @@ -1132,16 +1218,34 @@ 

    Source code for typhos.positioner

             """Link the IOC error message with the ui element."""
             if signal is None:
                 widget.hide()
    -            self.ui.error_prefix.hide()
             else:
                 signal.subscribe(self.new_error_message)
     
         def new_error_message(self, value, *args, **kwargs):
             self.update_status_visibility(error_message=value)
     
    -    def _set_status_text(self, text, *, max_length=80):
    -        super()._set_status_text(text, max_length=max_length)
    +    def _define_setpoint_widget(self):
    +        super()._define_setpoint_widget()
    +        if isinstance(self.ui.set_value, QtWidgets.QComboBox):
    +            # Pad extra to avoid intersecting drop-down arrow
    +            dynamic_font.patch_widget(self.ui.set_value, pad_percent=0.18, min_size=4)
    +            # Consume the vertical space left by the missing tweak widgets
    +            self.ui.set_value.setMinimumHeight(
    +                self.ui.user_setpoint.minimumHeight()
    +                + self.ui.tweak_value.minimumHeight()
    +            )
    +        else:
    +            dynamic_font.patch_widget(self.ui.set_value, pad_percent=0.1, min_size=4)
    +
    +    def _set_status_text(
    +        self,
    +        message: TyphosStatusMessage | str,
    +        *,
    +        max_length: int | None = None,
    +    ) -> str:
    +        text = super()._set_status_text(message, max_length=max_length)
             self.update_status_visibility(status_text=text)
    +        return text
     
         def update_alarm_text(self, alarm_level):
             super().update_alarm_text(alarm_level=alarm_level)
    @@ -1159,8 +1263,10 @@ 

    Source code for typhos.positioner

             The goal here to make an illusion that there is only one label in
             in this space when only one of the labels has text.
     
    -        If both are empty, we also want to put "something" there to fill the
    +        If both are empty, we want to put "something" there to fill the
             void, so we opt for a friendly message or an alarm reminder.
    +
    +        If both are populated, we want to do some best-effort deduplication.
             """
             if error_message is not None:
                 self._error_message = error_message
    @@ -1180,9 +1286,12 @@ 

    Source code for typhos.positioner

                 else:
                     self.ui.status_label.setText('Check alarm')
                 has_status = True
    +        if has_status and has_error:
    +            # We want to avoid having duplicate information (low effort try)
    +            if error_message in status_text:
    +                has_error = False
             self.ui.status_label.setVisible(has_status)
             self.ui.error_label.setVisible(has_error)
    -        self.ui.error_prefix.setVisible(has_error)
     
     
     def clear_error_in_background(device):
    @@ -1198,6 +1307,109 @@ 

    Source code for typhos.positioner

     
         td = threading.Thread(target=inner, daemon=True)
         td.start()
    +
    +
    +class RowDetails(QtWidgets.QWidget):
    +    """
    +    Container class for floating window with positioner row's basic config info.
    +    """
    +    row: TyphosPositionerRowWidget
    +    resize_timer: QtCore.QTimer
    +
    +    def __init__(self, row: TyphosPositionerRowWidget, parent: QtWidgets.QWidget | None = None, **kwargs):
    +        super().__init__(parent=parent, **kwargs)
    +        self.row = row
    +
    +        self.label = QtWidgets.QLabel()
    +        self.label.setText(row.ui.device_name_label.text())
    +        font = self.label.font()
    +        font.setPointSize(font.pointSize() + 4)
    +        self.label.setFont(font)
    +        self.label.setMaximumHeight(
    +            QtGui.QFontMetrics(font).boundingRect(self.label.text()).height()
    +        )
    +
    +        self.panel = TyphosSignalPanel()
    +        self.panel.omitNames = row.get_names_to_omit()
    +        self.panel.sortBy = SignalOrder.byName
    +        self.panel.add_device(row.device)
    +
    +        self.scroll_area = QtWidgets.QScrollArea()
    +        self.scroll_area.setFrameStyle(QtWidgets.QFrame.NoFrame)
    +        self.scroll_area.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
    +        self.scroll_area.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
    +        self.scroll_area.setWidgetResizable(True)
    +        self.scroll_area.setWidget(self.panel)
    +
    +        layout = QtWidgets.QVBoxLayout()
    +        layout.addWidget(self.label)
    +        layout.addWidget(self.scroll_area)
    +
    +        self.setLayout(layout)
    +        self.resize_timer = QtCore.QTimer(parent=self)
    +        self.resize_timer.timeout.connect(self.fix_scroll_size)
    +        self.resize_timer.setInterval(1)
    +        self.resize_timer.setSingleShot(True)
    +
    +        self.original_panel_min_width = self.panel.minimumWidth()
    +        self.last_resize_width = 0
    +        self.resize_done = False
    +
    +    def hideEvent(self, event: QtGui.QHideEvent):
    +        """
    +        After hide, update button text, even if we were hidden via clicking the "x".
    +        """
    +        self.row.ui.expand_button.setText('>')
    +        return super().hideEvent(event)
    +
    +    def showEvent(self, event: QtGui.QShowEvent):
    +        """
    +        Before show, update button text and move window to just under button.
    +        """
    +        button = self.row.ui.expand_button
    +        button.setText('v')
    +        self.move(
    +            button.mapToGlobal(
    +                QtCore.QPoint(
    +                    button.pos().x(),
    +                    button.pos().y() + button.height()
    +                    + self.style().pixelMetric(QtWidgets.QStyle.PM_TitleBarHeight),
    +                )
    +            )
    +        )
    +        if not self.resize_done:
    +            self.resize_timer.start()
    +        return super().showEvent(event)
    +
    +    def fix_scroll_size(self):
    +        """
    +        Slot that ensures the panel gets enough space in the scroll area.
    +
    +        The panel, when created, has smaller sizing information than it does
    +        a few moments after being shown for the first time. This might
    +        update several times before settling down.
    +
    +        We want to watch for this resize and set the scroll area width such
    +        that there's enough room to see the widget at its minimum size.
    +        """
    +        if self.panel.minimumWidth() <= self.original_panel_min_width:
    +            # No change
    +            self.resize_timer.start()
    +            return
    +        elif self.last_resize_width != self.panel.minimumWidth():
    +            # We are not stable yet
    +            self.last_resize_width = self.panel.minimumWidth()
    +            self.resize_timer.start()
    +            return
    +
    +        # Make sure the panel has enough space to exist!
    +        self.scroll_area.setMinimumWidth(
    +            self.panel.minimumWidth()
    +            + self.style().pixelMetric(QtWidgets.QStyle.PM_ScrollBarExtent)
    +            + 2 * self.style().pixelMetric(QtWidgets.QStyle.PM_ScrollView_ScrollBarOverlap)
    +            + 2 * self.style().pixelMetric(QtWidgets.QStyle.PM_ScrollView_ScrollBarSpacing)
    +        )
    +        self.resize_done = True
     
    diff --git a/master/_modules/typhos/suite.html b/master/_modules/typhos/suite.html index 929a144d..9ebb1d96 100644 --- a/master/_modules/typhos/suite.html +++ b/master/_modules/typhos/suite.html @@ -3,7 +3,7 @@ - typhos.suite — Typhos 3.1.1 documentation + typhos.suite — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/_modules/typhos/textedit.html b/master/_modules/typhos/textedit.html index 7291d685..9908cdf6 100644 --- a/master/_modules/typhos/textedit.html +++ b/master/_modules/typhos/textedit.html @@ -3,7 +3,7 @@ - typhos.textedit — Typhos 3.1.1 documentation + typhos.textedit — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/_modules/typhos/tools/log.html b/master/_modules/typhos/tools/log.html index a5feaf44..9a1a9835 100644 --- a/master/_modules/typhos/tools/log.html +++ b/master/_modules/typhos/tools/log.html @@ -3,7 +3,7 @@ - typhos.tools.log — Typhos 3.1.1 documentation + typhos.tools.log — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/_modules/typhos/tools/plot.html b/master/_modules/typhos/tools/plot.html index e482fc98..675c251e 100644 --- a/master/_modules/typhos/tools/plot.html +++ b/master/_modules/typhos/tools/plot.html @@ -3,7 +3,7 @@ - typhos.tools.plot — Typhos 3.1.1 documentation + typhos.tools.plot — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/_modules/typhos/tweakable.html b/master/_modules/typhos/tweakable.html index aa90dce1..8d1e20fc 100644 --- a/master/_modules/typhos/tweakable.html +++ b/master/_modules/typhos/tweakable.html @@ -3,7 +3,7 @@ - typhos.tweakable — Typhos 3.1.1 documentation + typhos.tweakable — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/_modules/typhos/utils.html b/master/_modules/typhos/utils.html index eb82cd4f..637adddf 100644 --- a/master/_modules/typhos/utils.html +++ b/master/_modules/typhos/utils.html @@ -3,7 +3,7 @@ - typhos.utils — Typhos 3.1.1 documentation + typhos.utils — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/_modules/typhos/widgets.html b/master/_modules/typhos/widgets.html index 4f6a1dbc..61c7845e 100644 --- a/master/_modules/typhos/widgets.html +++ b/master/_modules/typhos/widgets.html @@ -3,7 +3,7 @@ - typhos.widgets — Typhos 3.1.1 documentation + typhos.widgets — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/_sources/index.rst.txt b/master/_sources/index.rst.txt index 99d6fd05..6f52dd6b 100644 --- a/master/_sources/index.rst.txt +++ b/master/_sources/index.rst.txt @@ -56,3 +56,4 @@ Related Projects widgets.rst plugins.rst utils.rst + unit_tests.rst diff --git a/master/_sources/unit_tests.rst.txt b/master/_sources/unit_tests.rst.txt new file mode 100644 index 00000000..c2de024d --- /dev/null +++ b/master/_sources/unit_tests.rst.txt @@ -0,0 +1,48 @@ +################ +Unit Test Quirks +################ + +Typhos, from time to time, has had issues with its unit tests. +These often manifest as test failures and segmentation faults that only occur +when running the tests on a cloud platform. + +By and large, these are related to difficulty with cleaning up resources from +tests that allocate qt widgets. + + +Things to Know for Test Writers +------------------------------- + +- Always use the ``qtbot`` fixture (from the ``pytest-qt`` package) +- Always call ``qtbot.add_widget(widget)`` on any widget you create in your test. + This helps clean up your widget after the test is complete. +- Use the ``qapp`` fixture and call ``qapp.processEvents()`` if you need "something" + in the qt world to happen. +- Use the ``noapp`` fixture if you need to test code that calls ``qapp.exec_()`` or + ``qapp.exit()``. Calling this code with no fixture will break the test suite for + all future tests than need the ``qapp``. +- If your test is segfaulting, try using the ``@pytest.mark.no_gc`` decorator + to skip the manual garbage collection step from the ``pytest_runtest_call`` hook + in ``conftest.py``. In some cases (e.g. the positioner widgets) this is an ill-timed + redundant call. +- If an external package's widgets (and none of ours) are showing up in the + widget cleanup check (also in the ``pytest_runtest_call`` hook), try using + the ``@pytest.mark.no_cleanup_check`` decorator. If these come from ``typhos`` + it's fairly important to fix the issue, but if they come from an external + package it's hard to do something about it. + + +Local vs Cloud +-------------- + +There are a few major differences between local and cloud builds, even +on the same architecture: + +- Cloud builds set the environment variable for offscreen rendering (no rendering). + This slightly changes the timing and drastically changes the implementation of + the qt drawing primitives. You can set this yourself locally via + ``export QT_QPA_PLUGIN=offscreen``. +- Cloud builds use the latest versions of packages, which may differ from the ones + you have installed locally. +- Ideally, the test suite should pass both on local hardware with the default + qpa plugin and also on the cloud. diff --git a/master/_sources/upcoming_release_notes/604-perf_resize_text.rst.txt b/master/_sources/upcoming_release_notes/604-perf_resize_text.rst.txt new file mode 100644 index 00000000..3ef37787 --- /dev/null +++ b/master/_sources/upcoming_release_notes/604-perf_resize_text.rst.txt @@ -0,0 +1,22 @@ +604 perf_resize_text +################# + +API Breaks +---------- +- N/A + +Features +-------- +- N/A + +Bugfixes +-------- +- Fix an issue where the row positioner widget's resizing would peg the cpu to 100% + +Maintenance +----------- +- N/A + +Contributors +------------ +- zllentz diff --git a/master/_sources/upcoming_release_notes/606-enh_wait_status.rst.txt b/master/_sources/upcoming_release_notes/606-enh_wait_status.rst.txt new file mode 100644 index 00000000..ba43e5c0 --- /dev/null +++ b/master/_sources/upcoming_release_notes/606-enh_wait_status.rst.txt @@ -0,0 +1,28 @@ +606 enh_wait_status +################### + +API Breaks +---------- +- ``TyphosStatusThread`` now has a dramatically different signal API. + This is an improved version but if you were using this class take note + of the changes. + +Features +-------- +- Make the timeout messages friendlier and more accurate when the + timeouts come from the ``TyphosPositionerWidget``. +- Make error messages in general (including status timeouts) clearer + when they come from the positioner device class controlled by the + ``TyphosPositionerWidget``. + +Bugfixes +-------- +- N/A + +Maintenance +----------- +- Refactor ``TyphosStatusThread`` to facilitate timeout message changes. + +Contributors +------------ +- zllentz diff --git a/master/_sources/upcoming_release_notes/607-tst_fix_ci_saga.rst.txt b/master/_sources/upcoming_release_notes/607-tst_fix_ci_saga.rst.txt new file mode 100644 index 00000000..502df906 --- /dev/null +++ b/master/_sources/upcoming_release_notes/607-tst_fix_ci_saga.rst.txt @@ -0,0 +1,22 @@ +607 tst_fix_ci_saga +################### + +API Breaks +---------- +- N/A + +Features +-------- +- N/A + +Bugfixes +-------- +- N/A + +Maintenance +----------- +- Fix issues with cloud-only CI failures and segfaults. + +Contributors +------------ +- zllentz diff --git a/master/_sources/upcoming_release_notes/611-enh_positioner_resizing.rst.txt b/master/_sources/upcoming_release_notes/611-enh_positioner_resizing.rst.txt new file mode 100644 index 00000000..7190ca19 --- /dev/null +++ b/master/_sources/upcoming_release_notes/611-enh_positioner_resizing.rst.txt @@ -0,0 +1,25 @@ +611 enh_positioner_resizing +################# + +API Breaks +---------- +- N/A + +Features +-------- +- Rework the design, sizing, and font scaling of the positioner row widget to address + concerns about readability and poor use of space for positioners that don't need + all of the widget components. +- Implement dynamic resizing in all directions for positioner row widgets. + +Bugfixes +-------- +- Fix various issues that cause font clipping for specific motors using the positioner row widget. + +Maintenance +----------- +- N/A + +Contributors +------------ +- zllentz diff --git a/master/_sources/upcoming_release_notes/615-maint_fix_ci.rst.txt b/master/_sources/upcoming_release_notes/615-maint_fix_ci.rst.txt new file mode 100644 index 00000000..7e0e43ef --- /dev/null +++ b/master/_sources/upcoming_release_notes/615-maint_fix_ci.rst.txt @@ -0,0 +1,22 @@ +615 maint_fix_ci +################ + +API Breaks +---------- +- N/A + +Features +-------- +- N/A + +Bugfixes +-------- +- N/A + +Maintenance +----------- +- In dev/test requirements, pin pcdsdevices to current latest to fix the CI builds. + +Contributors +------------ +- zllentz diff --git a/master/_sources/upcoming_release_notes/616-fix_enum_handling.rst.txt b/master/_sources/upcoming_release_notes/616-fix_enum_handling.rst.txt new file mode 100644 index 00000000..0f48a1f9 --- /dev/null +++ b/master/_sources/upcoming_release_notes/616-fix_enum_handling.rst.txt @@ -0,0 +1,23 @@ +616 fix_enum_handling +################# + +API Breaks +---------- +- N/A + +Features +-------- +- N/A + +Bugfixes +-------- +- Fix various issues with enum handling in the SignalPlugin. + +Maintenance +----------- +- N/A + +Contributors +------------ +- canismarko +- zllentz diff --git a/master/_sources/upcoming_release_notes/618-bld_jinja_bump.rst.txt b/master/_sources/upcoming_release_notes/618-bld_jinja_bump.rst.txt new file mode 100644 index 00000000..cb18157a --- /dev/null +++ b/master/_sources/upcoming_release_notes/618-bld_jinja_bump.rst.txt @@ -0,0 +1,22 @@ +618 bld_jinja_bump +################## + +API Breaks +---------- +- N/A + +Features +-------- +- N/A + +Bugfixes +-------- +- N/A + +Maintenance +----------- +- unpin jinja, sphinx no longer incompatible + +Contributors +------------ +- tangkong diff --git a/master/_static/basic.css b/master/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/master/_static/basic.css +++ b/master/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/master/_static/doctools.js b/master/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/master/_static/doctools.js +++ b/master/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/master/_static/documentation_options.js b/master/_static/documentation_options.js index dc2d12b9..9cecb3c6 100644 --- a/master/_static/documentation_options.js +++ b/master/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '3.1.1', + VERSION: '3.1.2.dev61+ga6e7aec', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/master/_static/language_data.js b/master/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/master/_static/language_data.js +++ b/master/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; -/* Non-minified version is copied as a separate JS file, is available */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/master/_static/searchtools.js b/master/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/master/_static/searchtools.js +++ b/master/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,16 +304,32 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { let score = Math.round(100 * queryLower.length / title.length) - results.push([ + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", @@ -308,46 +344,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +398,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +508,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +542,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +594,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/master/basic_usage.html b/master/basic_usage.html index 5d48b767..990ae371 100644 --- a/master/basic_usage.html +++ b/master/basic_usage.html @@ -4,7 +4,7 @@ - How it Works — Typhos 3.1.1 documentation + How it Works — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -240,16 +241,16 @@

    Display Signals# Important signals, all hints will be found here as well In [5]: motor.read() Out[5]: -OrderedDict([('motor', {'value': 0, 'timestamp': 1712961048.6791644}), +OrderedDict([('motor', {'value': 0, 'timestamp': 1720572156.0554376}), ('motor_setpoint', - {'value': 0, 'timestamp': 1712961048.6791637})]) + {'value': 0, 'timestamp': 1720572156.0554368})]) # Configuration information In [6]: motor.read_configuration() Out[6]: -OrderedDict([('motor_velocity', {'value': 1, 'timestamp': 1712961048.679536}), +OrderedDict([('motor_velocity', {'value': 1, 'timestamp': 1720572156.0558336}), ('motor_acceleration', - {'value': 1, 'timestamp': 1712961048.6795535})]) + {'value': 1, 'timestamp': 1720572156.0558505})])

    The TyphosSignalPanel will render these, allowing us to select a diff --git a/master/cli.html b/master/cli.html index e52a16db..82754dc8 100644 --- a/master/cli.html +++ b/master/cli.html @@ -4,7 +4,7 @@ - Command Line Utilities — Typhos 3.1.1 documentation + Command Line Utilities — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,15 +15,15 @@ - - + + - + @@ -38,7 +38,7 @@ Typhos

    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -184,7 +185,7 @@
    diff --git a/master/generated/typhos.tools.TyphosTimePlot.html b/master/generated/typhos.tools.TyphosTimePlot.html index c991cc8d..a6caf90a 100644 --- a/master/generated/typhos.tools.TyphosTimePlot.html +++ b/master/generated/typhos.tools.TyphosTimePlot.html @@ -4,7 +4,7 @@ - typhos.tools.TyphosTimePlot — Typhos 3.1.1 documentation + typhos.tools.TyphosTimePlot — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -114,7 +115,7 @@

    typhos.tools.TyphosTimePlot
    Parameters:
    -

    parent (QWidget) –

    +

    parent (QWidget)

    diff --git a/master/genindex.html b/master/genindex.html index 32d927f3..a97fffed 100644 --- a/master/genindex.html +++ b/master/genindex.html @@ -3,7 +3,7 @@ - Index — Typhos 3.1.1 documentation + Index — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -571,8 +572,6 @@

    M

  • (typhos.widgets.ClickableBitIndicator method)
  • -
  • move_changed() (typhos.TyphosPositionerWidget method) -
  • moving (typhos.TyphosPositionerWidget attribute)
  • moving_attribute (typhos.TyphosPositionerWidget attribute) @@ -677,16 +676,18 @@

    R

  • reload_widget_stylesheet() (in module typhos.utils)
  • - - +

    diff --git a/master/objects.inv b/master/objects.inv index 1c88034749cd25576b6c1e97267c2489334e536c..b8028e5deb08935382bd78074131ea84605e3f76 100644 GIT binary patch delta 3589 zcmV+g4*K!@8rU3=J`gf4WMy_XF)L?bHf1+qWn+;)JAYkEbK5u)zUx=8YWFJ5q-rNK zH8;O9ag7~&V`pz6aX?OMk-B0#opW;Afgli?I*(b&I8eXvj%O978cvja74?Er_=E1u-2+0yk+ck8@guGJl*bBu|QC&cuwqPDw`6B7Gu1;3LUo zupmOoK`COnBrKcLI07(_4@l|Ysdd7YM-=PX26kOdPeTS!v8_vx^E^Vww~ zrEM6unWTvtv*aEO@CI=qgW+R?(1XHa292c$OCeMjN-PWENAjq9Uuh=ruP5v1))8Ig z=6`RJC3o=R;}-Nda2x{#j`c%S*J4(c!nCB%qDC<#*>^~4!MX+}oKhICY9?Pym5o5a zIpcF`I_O7uau^{{3PLEOuvky-FrlikQuZ>J=|J`e)%GcoNW2oM4C_)dHkc*HYB(&$ zOxf$t5xFK_SYp*tB-<}SvY1R6?3HQ#)+9Z7h&RnlP!+FFIGtba*jL- zo-^h3EGN%FsTjOzV}iD)8GkNeLCo3!9h9hIR(&PQXWtTgASclPO$gN{%3*!Cd7x)E&K$X3;!6P+DWmw@20)M2;<&smYXQW&RfC|0uW7$etU%ZWM0@c}mIFUq!K-H ztL}LAXVIaFR^Rwjuq=aE8JL4!F3px`-&rEL5ZFF_#PSf-t{u3swYmB=SB}!*_ocC_ zq!cVjOFHOaJ?Zg;XiAqPDZ3giC6$l1=;>f@SWsV%U6I9RE5Mzj+`iJ9GKa@n7rSEi zprOQ6oF#?wtbdKvZ~KjXvVU%TTA94bE#Gy=G)`<2j}hBn*2C^^AB-8^vm_fe2kFI` znNC6PW%U;{v&pp&i^}!n^6Yw1_!HRAuUo^p>(*X~@XRvKi}=aJS=(`kAOhb-!8BP0 zujm`$xUr)>lksOX+RUNZrde7CpNXUpESo_u(x;XwSH2`GBsu`i=YMi7*_9=u@vs|1 z!DVH4j<3iP;FM&r0HI|2J%!NLGaPq#+m28AVmB!(1UzyOq94WbCM#>i;hzG;K;*=c zP%UjjM`4ZKT;F`S_;UA*Zm%9b%@t&^aonPmh{PR}XjS?&9+1&NbqAhU@dq#r5UI)!z%zJ>5J%KHPqKUV!e?mwTirpBA9<+^IRk zB#P}qY*ZU%vy+BQps=+SHj9|yL~m~EJS+{&o|7vZ z>?Up3z51kA<$qzQ-A^QH0g*v_wD=Nn(0MI0xE{?9pSsvK3TuZhHoPHvOfeR6CIe*x z=27f)6mh_SdK2Y^L@$^YGv%419z8Mvs&YESr6}-1R14IxZtkXCcBApv{+Mx?7y|1K z!@03D#oraqiMs^#cn^B8kDIVF++Exhy{FhsOplhsUVp1D*XOy)*iB;{e6Fuf=vqZw z(5Efkv#I!ATf=n;!t7HIX0lA~!q{(5G}_65gvcsnqJG|}pDu3v2-J?t{+RTqkzT1< zV?0I@6d!Q5hh!!bCtx;?Bu=n3Uk)zI7~Lz^M{}@AF7=a7CpDC8cWgg!@Un`-CBIBU z9GN!=k$;Rxgj&)qQN}Y#;gK@wEPDlTVhxb{3_oT2iFRLmHp+B&c8bomRAa5S_NvxY zN7SY2JY}pL^y-W1x07iY1BWE&kCO%D=#P^v!4YU7%;tP+Bfha+-`|S2FYR`EJ)hn) zrR$78pAu-M(>)wWs-zr!T&qq(IiG9cLd}cJA%Eq|3lCkG_tk-|)(jD>Lh#qm~WoZU)DU7Mqc*=UXM(To<@98%3nzbuGh z*ms|TKWx7#O`17$CQ0TEooQ;Hp)<|oHFPZIQB4|O8UOA+a=JJ#`K^Jy!~&d)Ge2(L zVt+Ut%7)Vq7wDZ0*7=oJf;M*#7uUC+{zA{U_csq;p3(i2PrtXh%I(T~$cp}^^Aycj zH61--E(xY~U+k&lVoib7N{Sx!Y2z%xJh7%k8~|*j?`%eyeX70L45*Es4lbNr(ABAF zR~Q9s&lP)v0!rdYIccnrJ}{O5>g2HpLVpp5+^d=<-U*@ISsOEZ3>~G`j(Bh+MVg~M zCy9T%?aH(|Q0}}*loY<;9Gh!cUWrb!tS;v8A>fS3MnaYk^mLztx!u9LbOn`=A<4l< zUv$=lK7d{Z*8{aqv$W=C4_v9Irr;g^4&F7_Bt!nRBb*3ZZ1>t5cergk)%BjR%71h= zuQ_pq>-z$#awYRuxb77OK2UuLxgKA?h_!RY}@b;poIDHYif@UbGw!!0}1oTSp_ z`=AR-%URU}r7TW-K-B>SL7A8B%#Z&_t9^DXKzYBFBb;NR%=W7?Bz8a68KwZK5}JA$ zX%41G%VhF;vhboXy9G&+QxfY`Fn^^{sZWF1BSW5wD2lDl#W!9a^6%myxWBoSTCMAo zLscubk5Bn<^%y(|iq>rJ0jy3EH17O4i>v}0SE|oVB;=CF+bq!vz?{x?PZCUKU!G&U z)s?tbt}xrX-$pbF-kdxM(@2Atsri!*WO|wC159(f?TV#acFErSD^wvj z+WS(|BG)&4EFj6|RZXrmbbmA`mQ?v^{^olCzF^H7q>JccNvSV(omthIV&UpGh!?5y zHE7ce{GPm#fa6z`SxdNa8MaT&i0qw1a2@qlfTV}?@_ zqn)Y@(s$0xkYOnmvt)(dh@L@0GH}hy7)JW0WsI^|WB!o{HCY|6s()P6fJW|8qJ!lO z8gVDKg&MkA2F3Et{pO=K)l;lT*k>(?f44Qj&G2h@#hQc(P>CDfqjzif$xe#puLw=D zMXc`=Nnne4cR$k`TwYq!I;ZE`>J2t?ifkz|bD(W0G96sDYm2J@{rZYuV8?hGx)>e8 zFR_jsd$&KYVvHs3}c*=wXG8NE>}R{C;?#>ds&5K-wfMcPzGUnHT*e*pFQ$x4Y9tbT0a z7rBiLYEkQrX|bwu{TkS27Gq=+7j?nqQdF!Qv#pwxJ_%aUN{2U}7{ z*V=wRmfxy@7(E`Z?^g}#Gi5#=)d0;pMVn{kxze@-tv6LG#I!J*`6bsCOJK!;0v3QW zrtf%eP_$lHhJVlYQB=A+D|4Av1EPPI>WR&5xMpD34g8h8)V*Cx`>cf6_m67$t?FCf z8|em*}^3inZ%+#di{;4XMihEowd;FYx_Ze_@t( zN<9Yv0^JbvfdSxI+WP@ zzBHvm6!57~4l$3+RTgK<5(i~|d{k;U(*{ delta 3368 zcmV+@4cGG69Q+!PJ^?Y2PCI{{%W~s37KZnF3RTT)t(n}}b&v)9*T0uH3+bxw;hkh~PeeuW(Us-)k&kTk28Dn6SHeSC7n*^k zbFtEBOUqNhzZZ5y}oq5vwF&WlH7SG6JL2mz2ED6&RVaIl$`)&G*J0MQs8|^fjyho?rJG*#`yIluIiE}4VO%B+IDr;-k2e^7Z}5Q)SGk;<{oWurru9INIq8=10?f5zkvJhR2Rpip+e+@~9(AhUm^t%SXDQ!0J(1Mtt3)R`W577_=XZ*lf>wnPe$DfTFN#nk9&K6?(T zs=}vsN@#l;Iivz>V&)j=piC7>>6NTX($}j06Jl4>Iec7lb*igejWQ9Ym=|i$`I%G~ zlwV;Pk;mA&5Vh{$h*tK$Uw95Y4iGhtZ~;3)C2*u#g;al@D6F%0IeRGe7)iNSR_bC= z{cKrB+N8&wUyNPR#j#?l>-eTPA^}lBIY)9--Zo`~@@};$2BaLrnw2}Uk580ld~JP7 zJR&h`4TA9k(=^75DrIT=@puUOsb&fBHD53;?~Z{c)WrH4zcokmdfXaeC#Cq;5s7*` zRtJ30*7~9A!D>n9xx2fpwSOA6=Wu_DUSH^yO*n#;C1lFM9Q0fz*`obm ze&PeLWxB!g5S6b3x$(7?`ju)&GujTt*s7!|SX3<;sH5x287HQu3?X?_)MzfNLTZcd z4)%tE&h6OMWoFj%{Ta<3l&&c$9P3@|bTt4&iAgxiYYNN%F4b@Qj(u|DyxO|F$$i_K zfop%9*z3Inw!iEM`+N`JlHlxWUK)*g| zjAwVbJrnTCG%g7IY8FfTll~|`=%ip8R>BARi*W30OD7WliA+muntjaNb?}Wy3emP1 z^(?it1t-u4#< zL$#}d)dDsggm`#|QYIPFrijDeHHeXw6HlO;+QhcPPP@8)_;UOG=?y)uU%sUpGFv6}U}ug(T|jOf;&Uvf0K$W}&dR50wOFIM+MNI+%)r z|Gw4)@|_5>Rc#t5C@&^`7tE{68(n{s&Fa!N*(f-$Va?E<=4nRrw4U@vliXH@fa*O# z%-KhR+J-Gf0?rqS{I%^?Y8N&Y0hz-i%;yMPk}4HNsY@Br@SB~opn$S-{R|$c4~j9! z=jg$tV;hx@ek7bdj->UTlw$Q2R~1>?#ct9cy0@>KC3#$G_Y;YlK$OsLEunuP4kjKe zp0zPQLegUMC@vp{+W3q(BV|~~L;__3(hxhnia6pxgF#g-(L1JfqCF|q;|wN1B~CAK zDFmJgHA5P^>~{UKA11u^XN6-X_B_GALB*6318)6l{E%#0i*+?0( zM0SSRr-K?A+7sK4oStmg;qw1XN<7Icgh)vwLOtu|_{JM4U_+Vow!ME9cu^zlzQU($ zKauY@ftfO0oP$qS+Nw*rb`zAWseTal>BA;m#RsLO=l94)^w)PAx&qR6x4LAW}`Zd zAB_L>Z#hFLbHtj(Kifi8uh* zmAgnjj$w%EDefE`6!1i!(uqfh79H~JXt7V9c<$wlp?2%H$p$bZ- zS?`3{;_RH6JxhO%3hPG#7N{3MyO0zjs)=cw z0kT3D49QicB0B;hUPO&>n*uc_sr2_l)HS6|uNt6I9w$4X_JD$*EXa3O$G@emeYPz? zb4it_oMWQg_J?vLc0blzrUZpDng%&(4yHt#VDhfB2tt_Mg1oLM$#f`~s!>HqhS?)S zffZ5ITOEIkZ$^12yokr-;qFrEYTcb2YICuFd@6)>MhF1Zz1}`R*q$VCF7COiY!^1x zs?5zw$Q_Z7Wv(j#^Ey;L37Cw&yheP~iMUroVYc_bQs|<1bs9;SOd7orEgU)$>3t1i zH)>+jb*^5uF_s}I8NtkuKO)b^Hhe0=j=MZTns*wUFmMXlKOd3Q$%QSNR;KA%Oe%_S>w2DNH6 zXeyL54sOLGq|{V``gYdDq;`mzlk0$IN%B2t*9`obe3FRd_T=_Z`KuZLn!T<&*2eFKx5g>% zT90~5IS05|zl%eioz)4Dt@2}u3zDIoN{s3qe?fu`b5$`5tMx{70)&*{8<#Pz3=PY; zNU_fRD-o)*Ip=EMEWU~zM4P4ApuXs$anbBb&(m^sik z7fdfM+quO$qJI6r@33RMh@Fg%>F1b7j&dXBZO!rfW?6Q0P4*fh2MN4TuEo8lA&`IJ z-tf>Y=bzTBuA#PAs9v$wcdjml%zw*SrelVj$L8JTSN5?~os8b76$^big!6KHH^j0T zGcC2NTz;2?s__G;*H2zb^km&*E5EJm%Ahv2+n5%MHrCJ4x>1Zv8@Q-H+)PEq!ZX^+ zMTP`uEhk@Dctu=!f4di=wVZfCf0uuhIeZ$lIjYjY%~Pv?)c?8YUTZ9H-muU`!SWGU zb-Zc+VBdbWfk_tI1iiXoHx9NzFYmSg-Zby3hPd1u@1GYA`pP#qN7X>f!Kcl$=3Hst zg5F=+T*zo`HuD?Sn&q(IKmiLtCDRu*JBZ#NEa6Z4XxR*R7UnW7N1}f>)f0c4t7uKb zup9Ubdoz1KmG)U9v47vF=C|msZg=RXhfTw)l@Z0V{oh@Pg}vR%6`1>}Nw9_0icjMuX%l34$STyd{ec$!COWT!-#s2|2Z$OJH1(SUM diff --git a/master/plugins.html b/master/plugins.html index 6c0fd608..44f0011f 100644 --- a/master/plugins.html +++ b/master/plugins.html @@ -4,7 +4,7 @@ - Typhos Data Plugins for PyDM — Typhos 3.1.1 documentation + Typhos Data Plugins for PyDM — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/py-modindex.html b/master/py-modindex.html index c86b63d2..e86a5eea 100644 --- a/master/py-modindex.html +++ b/master/py-modindex.html @@ -3,7 +3,7 @@ - Python Module Index — Typhos 3.1.1 documentation + Python Module Index — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -14,8 +14,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/python_methods.html b/master/python_methods.html index 6e86ff51..963567a5 100644 --- a/master/python_methods.html +++ b/master/python_methods.html @@ -4,7 +4,7 @@ - Including Python Code — Typhos 3.1.1 documentation + Including Python Code — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/release_notes.html b/master/release_notes.html index eb9956b0..c81a3163 100644 --- a/master/release_notes.html +++ b/master/release_notes.html @@ -4,7 +4,7 @@ - Release History — Typhos 3.1.1 documentation + Release History — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/save.html b/master/save.html index d316c878..bc76a761 100644 --- a/master/save.html +++ b/master/save.html @@ -4,7 +4,7 @@ - Saving and Loading — Typhos 3.1.1 documentation + Saving and Loading — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/search.html b/master/search.html index 9579452e..8317ae63 100644 --- a/master/search.html +++ b/master/search.html @@ -3,7 +3,7 @@ - Search — Typhos 3.1.1 documentation + Search — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/searchindex.js b/master/searchindex.js index 8594dbb8..59310b4f 100644 --- a/master/searchindex.js +++ b/master/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["basic_usage", "cli", "connections", "display", "generated/typhos.tools.TyphosLogDisplay", "generated/typhos.tools.TyphosTimePlot", "index", "plugins", "python_methods", "release_notes", "save", "templates", "tools", "upcoming_changes", "upcoming_release_notes/template-full", "upcoming_release_notes/template-short", "utils", "widgets"], "filenames": ["basic_usage.rst", "cli.rst", "connections.rst", "display.rst", "generated/typhos.tools.TyphosLogDisplay.rst", "generated/typhos.tools.TyphosTimePlot.rst", "index.rst", "plugins.rst", "python_methods.rst", "release_notes.rst", "save.rst", "templates.rst", "tools.rst", "upcoming_changes.rst", "upcoming_release_notes/template-full.rst", "upcoming_release_notes/template-short.rst", "utils.rst", "widgets.rst"], "titles": ["How it Works", "Command Line Utilities", "Application Connections", "Suite and Displays", "typhos.tools.TyphosLogDisplay", "typhos.tools.TyphosTimePlot", "Typhos", "Typhos Data Plugins for PyDM", "Including Python Code", "Release History", "Saving and Loading", "Custom Templates", "Supported Tools", "Upcoming Changes", "IssueNumber Title", "IssueNumber Title", "Utility Functions", "Widgets"], "terms": {"typho": [0, 1, 2, 3, 8, 9, 10, 11, 12, 16, 17], "ha": [0, 2, 3, 7, 8, 9, 10, 11, 12, 17], "three": [0, 9, 11], "major": [0, 3, 9, 10, 17], "build": [0, 1, 9], "block": [0, 9], "combin": [0, 3, 6, 9, 16], "final": [0, 3], "seen": 0, "oper": [0, 2, 6, 9, 12, 17], "overal": 0, "view": [0, 9, 16, 17], "window": [0, 9, 10, 16], "It": [0, 7, 8, 9, 10, 11], "allow": [0, 6, 9, 16, 17], "all": [0, 1, 2, 3, 7, 9, 10, 11, 12, 16, 17], "load": [0, 1, 3, 9, 11, 16, 17], "compon": [0, 3, 6, 9, 14, 16, 17], "tool": [0, 9, 17], "typhosdevicedisplai": [0, 1, 8, 9, 12, 17], "thi": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 17], "i": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 17], "creat": [0, 1, 2, 3, 6, 7, 9, 10, 11, 16, 17], "standard": [0, 9, 10, 17], "ophyd": [0, 1, 3, 5, 6, 7, 9, 12, 17], "can": [0, 2, 3, 7, 8, 9, 10, 11, 12, 16, 17], "organ": 0, "base": [0, 3, 6, 7, 9, 11, 14, 16, 17], "kind": [0, 1, 2, 3, 9, 17], "descript": [0, 2, 17], "These": [0, 6, 7, 9, 11, 12, 14, 17], "ar": [0, 1, 2, 3, 6, 7, 8, 9, 10, 11, 12, 14, 16, 17], "interfac": [0, 2, 3, 6, 7, 9, 12, 16, 17], "extern": [0, 9, 12], "applic": [0, 1, 7, 9, 12, 17], "while": [0, 8, 9, 16, 17], "you": [0, 2, 3, 8, 9, 10, 11, 14, 16, 17], "mai": [0, 1, 3, 7, 9, 16, 17], "have": [0, 1, 3, 9, 10, 11, 14, 17], "other": [0, 1, 2, 8, 9, 11, 16, 17], "gui": [0, 9], "system": [0, 2, 3, 6, 16], "built": [0, 1, 3, 6, 9, 11, 16, 17], "especi": 0, "handl": [0, 7, 9, 16], "handshak": 0, "between": 0, "inform": [0, 2, 3, 6, 7, 9, 11, 12, 16, 17], "store": [0, 1, 2, 7, 10, 11], "your": [0, 1, 2, 7, 8, 9, 10, 11, 14], "save": [0, 1, 3, 9, 16], "click": [0, 3, 12, 17], "ensur": [0, 2, 9], "consist": [0, 6, 9, 17], "list": [0, 3, 9, 11, 14, 16, 17], "abov": [0, 8, 14], "share": [0, 9], "similar": [0, 9, 17], "api": 0, "creation": 0, "instanti": [0, 3, 9, 12, 17], "object": [0, 2, 3, 6, 7, 9, 10, 11, 12, 17], "itself": [0, 3, 16], "contain": [0, 1, 2, 3], "place": [0, 3, 6, 9, 11, 16, 17], "them": [0, 1, 3, 7, 8, 9, 12], "correct": [0, 7, 9], "do": [0, 3, 9, 11, 16], "accept": [0, 9], "argument": [0, 1, 3, 9, 16, 17], "reason": [0, 9], "we": [0, 2, 3, 7, 9, 11, 12, 16, 17], "screen": [0, 1, 3, 6, 9, 11, 17], "regardless": 0, "whether": [0, 1, 3, 6, 16, 17], "an": [0, 1, 2, 3, 6, 7, 8, 9, 10, 11, 16, 17], "alwai": [0, 7, 9], "popul": [0, 2, 3, 12, 17], "hand": [0, 7, 9, 11, 17], "If": [0, 1, 2, 3, 7, 8, 10, 11, 16, 17], "fact": [0, 3, 9], "everi": 0, "class": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 16, 17], "add_devic": [0, 3, 9, 10, 12, 17], "method": [0, 2, 3, 4, 5, 7, 9, 10, 12, 14, 16], "altern": [0, 1, 2, 9, 17], "construct": 0, "from_devic": [0, 3, 12, 17], "classmethod": [0, 3, 17], "util": [0, 6, 9, 10, 14], "typhosbas": [0, 9, 16], "arg": [0, 16, 17], "kwarg": [0, 3, 7, 16, 17], "sourc": [0, 3, 4, 5, 7, 10, 16, 17], "intern": [0, 9], "structur": [0, 6, 9, 12], "pydm": [0, 2, 6, 9, 11, 16, 17], "user": [0, 3, 6, 7, 8, 9, 10, 14, 16, 17], "so": [0, 7, 9, 17], "most": [0, 3, 9, 16, 17], "intuit": 0, "wai": [0, 6, 9, 10, 11, 16], "configur": [0, 1, 2, 3, 9, 10, 16, 17], "includ": [0, 1, 3, 9, 11, 12, 16, 17], "also": [0, 3, 8, 9, 10, 16, 17], "advantag": [0, 2, 12], "keep": [0, 2, 7, 9], "python": [0, 3, 6, 7, 9, 10, 16], "sync": 0, "make": [0, 2, 8, 9, 12, 14, 16], "transit": [0, 9], "from": [0, 2, 3, 7, 8, 9, 10, 11, 16, 17], "ipython": 0, "shell": 0, "seamless": 0, "For": [0, 1, 6, 8, 9, 11, 17], "follow": [0, 3, 9, 11, 12, 16], "ll": [0, 11], "motor": [0, 9, 17], "simul": 0, "within": [0, 2, 7], "need": [0, 3, 7, 9, 14, 16, 17], "qapplic": [0, 10, 16], "befor": [0, 7, 9, 16, 17], "ani": [0, 1, 2, 3, 7, 9, 11, 14, 16, 17], "In": [0, 2, 3, 8, 9, 11, 12, 16], "1": [0, 3, 10, 14, 16, 17], "qtpy": [0, 9, 10], "qtwidget": [0, 3, 10, 16, 17], "import": [0, 2, 3, 6, 7, 9, 10], "2": [0, 3, 14, 16, 17], "app": [0, 10], "requir": [0, 2, 7, 9, 12, 16, 17], "recommend": [0, 11], "more": [0, 2, 6, 9, 11], "visit": 0, "github": [0, 9, 14], "repositori": [0, 9, 11], "main": [0, 3, 9], "purpos": [0, 1, 7], "packag": [0, 1, 9, 11, 16], "our": [0, 2, 9], "varieti": [0, 9, 12, 16, 17], "context": [0, 3, 9, 12, 16, 17], "same": [0, 9, 10, 11, 16, 17], "process": [0, 1, 3, 6, 9, 10, 16], "command": [0, 9, 10, 17], "line": [0, 9, 10, 16], "togeth": 0, "easi": [0, 9], "auto": [0, 1, 3], "gener": [0, 2, 3, 5, 6, 7, 9, 10, 11, 16, 17], "name": [0, 1, 2, 3, 5, 7, 9, 10, 11, 14, 16, 17], "my_devic": [0, 3], "would": [0, 2, 3, 7, 8, 9, 16, 17], "onli": [0, 3, 6, 7, 9, 10, 16, 17], "automat": [0, 3, 9, 12, 17], "client": [0, 7], "find": [0, 3, 7, 9, 11, 16, 17], "appropri": [0, 3, 8, 9, 14], "look": [0, 3, 8, 9, 16, 17], "integr": [0, 9, 12], "code": [0, 9, 14, 16], "level": [0, 3, 4, 9, 11, 16], "consid": [0, 17], "which": [0, 3, 6, 8, 9, 11, 12, 16, 17], "plugin": [0, 3, 9], "register_cli": [0, 7], "initi": [0, 1, 3, 9, 17], "new": [0, 3, 6, 7, 14, 16, 17], "json": 0, "path": [0, 7, 9, 11], "db": 0, "true": [0, 1, 3, 9, 16, 17], "regist": [0, 2, 3, 7, 9, 16], "add": [0, 1, 3, 7, 8, 9, 14, 16, 17], "databas": [0, 1, 2, 7, 10, 11], "device_class": [0, 3], "sim": [0, 9, 16], "synaxi": [0, 9], "prefix": [0, 3, 11], "tst": 0, "mtr": 0, "my_motor": 0, "beamlin": 0, "practic": 0, "necessari": [0, 6, 9], "call": [0, 3, 7, 9, 10, 16, 17], "happi_cfg": [0, 1, 16], "environ": [0, 1, 7, 9, 11, 12, 16], "variabl": [0, 1, 6, 8, 11, 16], "from_config": [0, 7], "yield": [0, 16], "desir": [0, 3, 7, 10], "now": [0, 2, 9], "check": [0, 9, 11, 16], "complet": [0, 3, 9, 17], "load_devic": 0, "when": [0, 3, 8, 9, 10, 11, 14, 16, 17], "custom": [0, 3, 9, 17], "access": [0, 6, 9, 16, 17], "associ": [0, 3, 9, 17], "sever": [0, 7, 9, 17], "order": [0, 2, 3, 7, 8, 9, 11, 12, 16, 17], "suggest": [0, 3, 14], "By": [0, 3, 16], "connect": [0, 1, 7, 9, 16, 17], "dot": [0, 7, 17], "just": [0, 2, 3, 11, 17], "session": 0, "design": [0, 9, 11, 16], "channel": [0, 2, 7, 9, 16, 17], "properti": [0, 1, 3, 9, 16, 17], "specifi": [0, 1, 2, 3, 6, 9], "sig": [0, 2, 3, 7, 9], "device_nam": [0, 3], "attr": [0, 16, 17], "mani": [0, 1, 2, 6, 9, 12, 14, 16, 17], "reach": 0, "top": [0, 3, 9, 11, 16], "could": [0, 9, 12], "user_readback": [0, 7, 17], "avail": [0, 2, 3, 7, 9, 10, 11, 12, 16, 17], "data": [0, 2, 9, 16], "acquisit": 0, "e": [0, 7, 8, 9, 11, 16, 17], "g": [0, 7, 9, 11, 16], "databrok": 0, "blueski": 0, "charact": 0, "invalid": 0, "mongodb": 0, "replac": [0, 3, 9, 11, 14, 16], "underscor": 0, "_": 0, "To": [0, 9, 11, 16], "": [0, 1, 3, 7, 11, 16, 17], "see": [0, 3, 9, 11, 17], "my_motor_user_readback": 0, "pv": [0, 3, 6, 9, 14, 16, 17], "directli": [0, 2, 3, 9, 16, 17], "assum": [0, 3, 7, 9, 10, 12], "through": [0, 2, 7, 9, 10, 16], "underli": [0, 7, 12], "control": [0, 2, 3, 6, 9, 17], "epic": [0, 1, 2, 6, 9], "talk": 0, "those": [0, 1, 3, 16], "That": [0, 9, 16], "pvname": 0, "tell": 0, "readback": [0, 17], "set": [0, 3, 7, 9, 10, 11, 16, 17], "ca": [0, 9, 16], "pv_name_her": 0, "first": [0, 3, 7, 9, 12, 16], "thing": 0, "about": [0, 2, 9, 14], "show": [0, 1, 3, 6, 9, 10, 16, 17], "group": [0, 3, 17], "basic": [0, 6, 12], "form": [0, 3, 10, 12, 17], "typhossignalpanel": [0, 3, 17], "simpli": [0, 17], "inspect": [0, 8], "reveal": 0, "few": [0, 17], "u": [0, 3], "3": [0, 3, 8], "component_nam": 0, "out": [0, 3, 9, 14, 16], "setpoint": [0, 9, 17], "veloc": [0, 9, 17], "acceler": [0, 9, 17], "unus": 0, "crucial": [0, 17], "understand": [0, 17], "glean": 0, "attribut": [0, 4, 5, 7, 9, 11, 16, 17], "A": [0, 1, 3, 7, 9, 10, 14, 15, 16, 17], "quick": [0, 9], "variou": [0, 9, 16], "4": 0, "hint": [0, 3, 9, 17], "field": [0, 9, 12, 16, 17], "found": [0, 3, 9, 11], "here": [0, 9, 11, 14, 16], "well": [0, 3, 7, 9, 16], "5": 0, "read": [0, 9, 16, 17], "ordereddict": [0, 17], "valu": [0, 2, 3, 6, 7, 8, 9, 11, 16, 17], "0": [0, 16, 17], "timestamp": [0, 17], "1712961048": 0, "6791644": 0, "motor_setpoint": 0, "6791637": 0, "6": 0, "read_configur": 0, "motor_veloc": 0, "679536": 0, "motor_acceler": 0, "6795535": 0, "render": [0, 9], "select": [0, 1, 9, 17], "subset": 0, "below": [0, 17], "both": [0, 16, 17], "qtdesign": 0, "correspond": [0, 2, 3, 6, 7], "shown": [0, 1, 3, 9, 17], "7": [0, 16], "8": [0, 9], "panel": [0, 3, 8, 9], "glanc": 0, "obviou": 0, "lot": [0, 9], "know": [0, 2], "want": [0, 2, 3, 7, 8, 10, 12, 16, 17], "ones": 0, "pure": 0, "meant": [0, 7], "back": [0, 3, 7, 9, 17], "each": [0, 1, 6, 7, 8, 9, 12, 16, 17], "ters": 0, "human": [0, 16], "readabl": [0, 16], "what": [0, 7, 17], "repres": [0, 6, 14, 17], "take": [0, 1, 2, 9, 16, 17], "concept": [0, 9], "further": 0, "instead": [0, 1, 2, 3, 6, 9, 17], "singl": [0, 3, 9], "multitud": 0, "alreadi": [0, 3, 10, 17], "come": [0, 2, 17], "some": [0, 5, 9, 17], "default": [0, 1, 3, 6, 7, 8, 9, 11, 14, 16, 17], "cycl": [0, 16], "chang": [0, 3, 14, 17], "display_typ": [0, 1, 3], "onc": [0, 10, 16], "again": [0, 9, 10], "case": [0, 2, 3, 9, 11], "9": [0, 9], "10": 0, "made": [0, 3, 9, 14, 16], "start": [0, 1, 3, 7, 9, 16], "finish": 0, "suit": [0, 1, 9, 10, 16, 17], "default_tool": [0, 3], "apply_standard_stylesheet": [0, 16], "option": [0, 1, 3, 8, 9, 10, 14, 16, 17], "exec_": [0, 10], "ship": [0, 1, 11], "two": [0, 3, 9, 10, 11, 12, 16], "improv": [0, 9, 16], "feel": [0, 9, 16], "invok": [0, 17], "cli": [0, 3, 9, 10], "normal": [0, 3, 9, 11, 17], "pass": [0, 2, 3, 7, 8, 16, 17], "dark": [0, 1, 9, 16], "flag": 0, "light": [0, 6, 9, 16], "mode": [0, 9], "own": [0, 9, 11], "addit": [0, 1, 3, 7, 9, 17], "ignor": [0, 9, 16], "overrid": [0, 1, 3, 9, 16, 17], "multipl": [0, 3, 7, 9, 10, 16], "time": [0, 7, 9, 12, 16, 17], "respect": [0, 9, 17], "pydm_stylesheet": [0, 16], "like": [0, 2, 3, 8, 9, 11, 16, 17], "should": [0, 3, 6, 9, 14, 17], "file": [0, 1, 3, 9, 10, 11, 16, 17], "qss": [0, 9, 16], "pydm_stylesheet_include_default": [0, 16], "unset": [0, 9], "prioriti": [0, 1, 9, 11, 16], "conflict": [0, 9, 16], "explicit": [0, 17], "style": [0, 1, 9, 16], "element": [0, 16, 17], "either": [0, 6, 16], "variant": [0, 16], "outsid": [0, 9, 11], "appli": [0, 16, 17], "function": [0, 3, 5, 6, 7, 8, 9, 10], "fusion": [0, 16], "qstyle": 0, "help": [0, 1, 3, 9, 12], "independ": 0, "helper": [0, 9, 14, 16], "link": [0, 9, 17], "provid": [0, 1, 2, 3, 6, 9, 10, 14, 16, 17], "websit": 0, "specif": [0, 1, 3, 9, 11, 16, 17], "facil": 0, "pleas": [0, 9], "typhos_help_url": 0, "str": [0, 3, 7, 9, 11, 16, 17], "url": 0, "format": [0, 1, 9, 16], "string": [0, 1, 2, 3, 9, 16, 17], "pertin": 0, "its": [0, 7, 9, 16, 17], "metadata": [0, 3, 7, 9, 16, 17], "confluenc": [0, 9], "server": 0, "exist": [0, 3, 7, 9, 16], "http": 0, "my": [0, 3], "site": [0, 9], "com": 0, "match": [0, 9, 16, 17], "perhap": 0, "guarante": [0, 7, 9, 16], "root": [0, 3, 16], "typhos_help_head": 0, "header": [0, 9, 17], "help_url": 0, "my_kei": 0, "my_valu": 0, "typhos_help_headers_host": 0, "comma": 0, "delimit": 0, "host": 0, "sent": [0, 7], "asid": 0, "typhos_help_token": 0, "token": [0, 9], "bearer": 0, "authent": 0, "scheme": 0, "person": [0, 9], "shortcut": [0, 3], "author": [0, 9], "stori": 0, "prerequisit": 0, "support": [0, 9, 16, 17], "cours": 0, "instal": [0, 1, 7, 9], "pre": [0, 9, 12], "issu": [0, 3, 9, 14], "collector": [0, 16], "typhos_jira_url": 0, "resembl": 0, "rest": 0, "typhos_jira_head": 0, "request": [0, 3, 7, 9, 17], "typhos_jira_token": 0, "typhos_jira_email_suffix": 0, "mail": 0, "suffix": [0, 16], "put": [0, 3, 9], "usernam": [0, 14], "There": [0, 9, 10, 11], "submodul": [0, 1, 9], "after": [0, 1, 9, 17], "m": [0, 9], "position": [0, 9, 17], "modul": [1, 3, 8, 9, 11], "defin": [1, 9, 11, 16], "usag": [1, 9], "sphinx": [1, 9], "h": 1, "layout": [1, 3, 9, 16, 17], "col": [1, 9, 16], "displai": [1, 2, 4, 6, 9, 11, 16, 17], "type": [1, 2, 3, 6, 7, 8, 9, 11], "scrollabl": [1, 3], "size": [1, 9, 17], "hide": [1, 3, 9, 16, 17], "happi": [1, 7, 9, 10, 11, 16], "cfg": [1, 3, 10, 16], "fake": [1, 9, 16], "devic": [1, 2, 3, 6, 9, 10, 11, 12, 16, 17], "version": [1, 3, 9], "verbos": 1, "stylesheet": [1, 9, 16], "stylesheet_overrid": 1, "stylesheet_add": 1, "profil": [1, 9], "profile_modul": 1, "output": [1, 2, 9], "profile_output": 1, "benchmark": [1, 9], "exit": [1, 9, 16], "exit_aft": 1, "screenshot": [1, 3, 9, 16], "screenshot_filenam": 1, "typhossuit": [1, 9, 10, 16], "posit": [1, 3, 9, 17], "paramet": [1, 3, 5, 7, 8, 16, 17], "classnam": 1, "param1": 1, "val1": 1, "messag": [1, 9, 16, 17], "valid": [1, 7, 16], "horizont": [1, 3, 9], "vertic": [1, 3, 9], "grid": [1, 9], "flow": [1, 9], "uniqu": [1, 7], "shorten": 1, "The": [1, 2, 3, 7, 9, 10, 11, 12, 14, 16, 17], "number": [1, 9, 11, 14, 16, 17], "column": [1, 9, 16, 17], "us": [1, 2, 3, 6, 7, 8, 9, 10, 11, 12, 14, 16, 17], "effect": [1, 7], "open": [1, 3, 9, 16, 17], "embed": [1, 3, 9, 11, 16, 17], "detail": [1, 3, 9, 11, 16], "engin": [1, 2, 3, 9, 11, 16], "scrollbar": [1, 3, 9], "fals": [1, 3, 7, 8, 9, 16, 17], "non": [1, 9, 16, 17], "x": [1, 3, 9], "y": 1, "suitabl": [1, 16], "exampl": [1, 3, 8, 9, 11], "1000": [1, 9, 16], "subdisplai": [1, 3, 9, 17], "hidden": [1, 3, 8, 9], "locat": [1, 3, 10, 16], "doe": [1, 3, 9, 11, 14, 17], "yet": [1, 9], "work": [1, 9, 11, 17], "invoc": 1, "epicsmotor": [1, 9], "v": [1, 16], "current": [1, 3, 7, 9, 11, 17], "debug": [1, 9], "log": [1, 4, 9], "stream": 1, "qdarkstylesheet": [1, 9, 16], "over": [1, 9, 16], "templat": [1, 2, 3, 9, 10, 16], "widget": [1, 2, 3, 5, 6, 7, 8, 9, 12], "dure": [1, 9, 16], "execut": [1, 7, 9, 10, 17], "turn": 1, "filenam": [1, 3, 9, 14, 16], "result": [1, 3, 7, 9, 16], "omit": [1, 3, 9, 16, 17], "print": 1, "stdout": 1, "run": [1, 9, 10, 11, 16, 17], "test": 1, "launch": [1, 9, 11, 17], "second": [1, 9], "instanc": [1, 3, 9, 10, 16], "pattern": [1, 12], "prior": [1, 9, 16], "earli": [1, 9], "f": 1, "suite_titl": 1, "widget_titl": 1, "flexibl": [2, 6], "abstract": [2, 6], "layer": [2, 9, 17], "signalpanel": [2, 9, 17], "queri": [2, 3, 10, 17], "determin": [2, 3, 7, 8, 9, 16], "goe": 2, "signalplugin": [2, 9], "subscript": [2, 16], "updat": [2, 3, 7, 9, 14, 16, 17], "One": [2, 11, 17], "caveat": 2, "identifi": [2, 9, 16], "refer": [2, 3, 7, 10], "avoid": [2, 3, 9, 16], "duplic": [2, 16], "mean": [2, 3, 6, 10], "workflow": [2, 11], "ad": [2, 3, 5, 7, 9, 10, 17], "one": [2, 3, 9, 11, 12, 16, 17], "additon": 2, "step": 2, "where": [2, 9, 12, 17], "register_sign": [2, 7], "my_sign": 2, "this_sign": 2, "pydmwidget": [2, 17], "note": [2, 9, 11, 14, 17], "done": [2, 11], "mayb": 2, "enough": [2, 17], "accur": 2, "extra": [2, 3, 9, 11], "piec": [2, 9], "unit": [2, 7, 9, 17], "precis": [2, 7, 9], "richer": 2, "experi": 2, "count": [2, 14], "being": [2, 3, 9, 14, 16], "describ": [2, 7, 9, 10, 16], "child": [2, 3], "convei": 2, "sure": [2, 9, 14], "express": 2, "properli": [2, 9, 10], "kei": [2, 11, 16], "enumer": [2, 9], "enum_str": [2, 7, 9, 17], "mandat": 2, "happiplugin": 2, "happichannel": 2, "send": [2, 7, 17], "entir": [2, 3, 9], "expect": [3, 7, 9, 11, 17], "barebon": 3, "implement": [3, 9, 17], "No": [3, 9], "signal": [3, 5, 6, 7, 9, 16], "manual": [3, 8, 9], "plot": [3, 5, 9], "themselv": [3, 9], "parent": [3, 4, 5, 7, 9, 16, 17], "qwidget": [3, 5, 16, 17], "none": [3, 4, 5, 7, 9, 10, 16, 17], "pin": [3, 9], "bool": [3, 8, 16, 17], "content_layout": 3, "qlayout": [3, 16], "default_display_typ": 3, "displaytyp": 3, "detailed_screen": [3, 9, 11], "scroll_opt": 3, "scrollopt": 3, "parametertre": 3, "qpopbar": 3, "hierarchi": [3, 6, 17], "along": [3, 16], "tree": [3, 9, 11, 16], "startup": [3, 9], "enum": [3, 9, 16, 17], "behavior": [3, 9, 11, 14, 16, 17], "enabl": [3, 17], "tool_nam": 3, "toolclass": 3, "dict": [3, 16, 17], "children": [3, 9], "categori": [3, 6, 9], "subdevic": 3, "add_lazy_subdisplai": 3, "display_class": 3, "arbitrari": [3, 16], "subclass": [3, 7, 9, 11, 17], "dock": 3, "expand": [3, 8, 9, 16], "under": [3, 10], "add_subdisplai": [3, 9], "add_tool": [3, 9], "toolbar": [3, 9], "sidebar": [3, 9, 17], "ui": [3, 7, 9, 11, 16, 17], "embed_subdisplai": 3, "emb": [3, 9, 10], "show_displai": 3, "choic": [3, 9], "pair": 3, "iter": [3, 9, 16], "get_subdisplai": [3, 9], "get": [3, 9, 12, 16, 17], "lazi": [3, 9, 16], "sub": [3, 9, 11, 17], "thei": [3, 7, 8, 10, 11, 12, 17], "rais": [3, 9, 16, 17], "otherwis": [3, 9, 16, 17], "return": [3, 6, 7, 9, 10, 16, 17], "member": [3, 9], "partial": [3, 9, 16], "hide_subdisplai": [3, 9], "visibl": [3, 16, 17], "sidebarparamet": 3, "give": [3, 14], "insid": [3, 9, 10, 17], "dockwidget": 3, "close": [3, 7, 9, 17], "save_suit": [3, 10, 16], "qfiledialog": [3, 10], "sy": [3, 10], "def": [3, 8, 10], "create_suit": [3, 10], "__name__": [3, 10], "__main__": [3, 10], "typhos_cli": [3, 10], "argv": [3, 10], "save_device_screenshot": [3, 9], "filename_format": 3, "save_screenshot": [3, 9], "show_subdisplai": 3, "given": [3, 7, 8, 16, 17], "item": [3, 9, 16, 17], "wa": [3, 9, 16, 17], "top_level_group": 3, "qgroupparameteritem": 3, "embedded_templ": 3, "detailed_templ": 3, "engineering_templ": 3, "int": [3, 8, 16, 17], "nest": [3, 6, 9, 11], "convent": 3, "up": [3, 9, 16], "semi": 3, "deprec": 3, "qscrollarea": 3, "go": [3, 17], "disk": 3, "scroll": [3, 9], "annot": [3, 8, 17], "anoth": [3, 9, 10, 16], "templateenum": 3, "alia": [3, 16, 17], "macro": [3, 9, 11, 16], "full": [3, 7, 9, 16, 17], "dictionari": [3, 8, 9, 16, 17], "preced": 3, "fill": [3, 9, 11, 14, 17], "copy_to_clipboard": 3, "copi": 3, "imag": [3, 9, 16, 17], "clipboard": 3, "current_templ": 3, "display_widget": 3, "force_templ": 3, "forc": [3, 16], "from_class": 3, "klass": [3, 16], "clean": [3, 9, 16, 17], "display_templ": 3, "substitut": [3, 14, 16], "init": 3, "get_best_templ": 3, "best": 3, "hideempti": 3, "toggl": 3, "empti": [3, 9, 16], "load_best_templ": 3, "minimumsizehint": 3, "self": [3, 16, 17], "qsize": 3, "area": [3, 17], "search_for_templ": 3, "search": [3, 16], "filesystem": 3, "suggest_composite_screen": 3, "device_cl": 3, "composit": [3, 9], "favor": [3, 9, 16], "to_imag": 3, "qtgui": [3, 16], "qimag": [3, 16], "typhosdisplaytitl": 3, "show_switch": 3, "show_underlin": 3, "text": [3, 9, 16, 17], "typhosdisplayswitch": [3, 9], "underlin": 3, "separ": [3, 9, 12], "hook": [3, 9, 17], "pop_out_help": 3, "pop": [3, 9], "set_device_displai": [3, 17], "callback": [3, 9, 16, 17], "switcher": [3, 9], "toggle_help": 3, "new_jira_widget": 3, "jira": 3, "report": [3, 7, 9], "typhostitlelabel": 3, "label": [3, 17], "intend": [3, 7, 9, 16], "toggle_request": 3, "qt": [3, 9, 11, 17], "indic": [3, 8, 9, 17], "underneath": 3, "qtcore": [3, 16, 17], "mousepressev": [3, 17], "event": [3, 16, 17], "overridden": [3, 7, 17], "mous": [3, 9], "press": 3, "typhostoolbutton": 3, "icon": [3, 17], "qicon": 3, "get_icon": 3, "default_icon": 3, "fontawesom": 3, "generate_context_menu": [3, 17], "menu": [3, 9, 17], "fall": 3, "open_context_menu": [3, 17], "ev": [3, 16, 17], "qevent": [3, 16, 17], "typhosdisplayswitcherbutton": 3, "switch": [3, 9, 17], "qmenu": [3, 17], "typhosdisplayconfigbutton": 3, "common": 3, "ellips": 3, "create_hide_empty_menu": 3, "base_menu": 3, "filter": [3, 9, 16, 17], "upon": [3, 16, 17], "trigger": [3, 17], "action": [3, 9], "create_kind_filter_menu": 3, "create_name_filter_menu": 3, "refresh": [3, 9], "hide_empti": 3, "wrap": [3, 5, 9], "device_displai": 3, "normalize_display_typ": 3, "valueerror": 3, "input": [3, 7, 9, 16], "cannot": 3, "process_widget": 3, "recurs": 3, "sinc": [3, 9], "don": [3, 7, 8, 14, 17], "t": [3, 7, 8, 9, 14, 17], "show_empti": 3, "toggle_displai": 3, "force_st": 3, "flip": 3, "state": [3, 7, 9, 17], "20": 4, "__init__": [4, 5], "timechartdisplai": 5, "conveni": [5, 6], "power": [6, 9], "experiment": [6, 12], "howev": [6, 12, 17], "often": 6, "obscur": 6, "reflect": 6, "wall": 6, "button": [6, 9, 17], "flash": 6, "bombard": 6, "littl": 6, "thought": 6, "cohes": 6, "address": [6, 7, 9, 16, 17], "autom": [6, 9], "pyqt": [6, 9, 10, 16], "manag": [6, 9, 16], "develop": 6, "slac": 6, "nation": 6, "laboratori": 6, "larg": [6, 9, 11, 14, 17], "toolkit": 6, "averag": [6, 14], "write": [6, 16, 17], "tab": [6, 8], "still": [6, 9, 11, 16], "advanc": 6, "reinvent": 6, "librari": [6, 9, 14, 16], "origin": [6, 9, 11], "script": [6, 9], "procedur": 6, "nsl": 6, "ii": 6, "Then": 6, "runtim": [6, 9], "sort": [6, 9, 17], "differ": [6, 7, 9, 10, 12, 16], "relev": [6, 17], "craft": [6, 9], "registri": [7, 9], "kept": 7, "signal_registri": 7, "signalconnect": [7, 9], "referenc": [7, 16], "protocol": [7, 9, 16], "monitor": [7, 9, 16], "listen": 7, "push": 7, "data_typ": 7, "emit": [7, 16, 17], "static": [7, 16], "add_listen": 7, "attach": [7, 9], "send_new_valu": 7, "setup": [7, 9], "perform": [7, 9, 16], "pydmconnect": 7, "cast": 7, "signal_typ": 7, "awar": [7, 9], "convert": 7, "unsubscrib": [7, 16], "find_sign": [7, 9], "mechan": [7, 9], "track": [7, 9, 17], "sim_motor": 7, "portion": 7, "put_valu": 7, "new_val": 7, "writeabl": 7, "catch": [7, 9, 16], "except": [7, 9, 16], "attempt": [7, 8], "receiv": [7, 9, 17], "unless": [7, 8, 14], "np": [7, 17], "ndarrai": [7, 17], "remove_listen": 7, "destroi": 7, "remov": [7, 9, 16], "disconnect": [7, 9, 16, 17], "send_new_meta": 7, "write_access": 7, "ever": [7, 9], "miss": [7, 9], "skip": 7, "no_alarm": 7, "anyth": [7, 9, 14], "alarm": [7, 9, 17], "dataplugin": 7, "happiconnect": 7, "method_panel": 8, "via": [8, 9, 10, 16], "constructor": [8, 17], "signatur": [8, 16], "examin": 8, "let": 8, "mock": [8, 9], "foo": 8, "b": 8, "c": [8, 9], "d": [8, 17], "float": [8, 9, 17], "14": 8, "boolean": 8, "qcheckbox": 8, "qlineedit": [8, 16], "entri": [8, 9, 11], "keyword": [8, 9, 16, 17], "choos": [8, 9], "functionpanel": [8, 17], "add_method": [8, 17], "hide_param": 8, "guess": 8, "fulfil": 8, "limit": [9, 17], "color": [9, 16], "yellow": 9, "off": 9, "grai": 9, "orang": 9, "better": 9, "contrast": [9, 17], "zllentz": 9, "arrang": [9, 17], "natur": 9, "how": [9, 11, 17], "present": 9, "canismarko": 9, "typhosconsol": 9, "been": [9, 11], "discuss": 9, "538": 9, "heurist": 9, "simpler": 9, "section": [9, 14], "ioc": [9, 17], "filename_pattern": 9, "individu": [9, 17], "lazysubdisplai": 9, "typhosnoteedit": 9, "alongsid": 9, "setup_data": 9, "typhospositionerrowwidget": 9, "compact": 9, "dens": 9, "heavi": 9, "much": 9, "space": 9, "effici": 9, "at2l0": [9, 11], "embedded_screen": [9, 11], "engineering_screen": [9, 11], "classnameher": [9, 11], "blade_01": [9, 11], "increas": 9, "timeout": [9, 16], "proportion": 9, "longer": [9, 16], "move": [9, 11, 17], "dynam": [9, 17], "font": [9, 17], "sizer": 9, "aid": 9, "had": [9, 11], "becom": 9, "zero": 9, "width": 9, "resiz": 9, "fit": 9, "equival": 9, "As": [9, 17], "without": 9, "special": 9, "point": [9, 11, 14, 16], "certain": 9, "conda": 9, "particularli": 9, "intflag": 9, "pick": 9, "were": [9, 10], "multiprocess": 9, "spawn": 9, "problemat": 9, "caproto": 9, "vendor": 9, "load_ui_fil": [9, 16], "modifi": [9, 17], "delet": [9, 16], "remove_connect": 9, "teardown": 9, "error": [9, 16, 17], "traceback": 9, "pytest": 9, "fail": [9, 17], "garbag": [9, 16], "collect": [9, 16], "race": 9, "condit": 9, "cach": [9, 17], "clear": [9, 16, 17], "uncaught": 9, "typeerror": [9, 16], "checklist": 9, "pull": 9, "pip": 9, "document": [9, 17], "due": 9, "hundr": 9, "warn": 9, "intercept": 9, "wrapper": 9, "typhoslineedit": [9, 17], "demand": 9, "klauer": 9, "tangkong": 9, "ci": 9, "previous": [9, 16, 17], "lead": [9, 14, 17], "unexpect": 9, "relat": [9, 11, 16], "flake8": 9, "mirror": 9, "migrat": 9, "travi": 9, "continu": 9, "deploy": 9, "setuptool": 9, "scm": 9, "syntax": 9, "pyupgrad": 9, "modern": 9, "pyproject": 9, "toml": 9, "py": [9, 10, 16], "small": 9, "positionerwidget": 9, "easier": [9, 12, 16], "less": [9, 12], "lost": 9, "alarmkindlevel": 9, "enclos": 9, "kindlevel": [9, 17], "wait": [9, 16], "caus": 9, "long": 9, "stop": [9, 16, 17], "success": [9, 16, 17], "unknownstatuserror": 9, "cleanup": 9, "background": [9, 16, 17], "thread": [9, 16], "functool": 9, "prevent": [9, 16, 17], "reli": 9, "entrypoint": 9, "typhosstatusthread": 9, "orphan": 9, "clip": 9, "web": 9, "unabl": 9, "unhelp": 9, "incompat": [9, 14], "newer": [9, 16], "artifact": 9, "broken": 9, "jinja2": 9, "anleslac": 9, "defunct": 9, "satisfi": 9, "commit": 9, "latest": 9, "last": [9, 17], "month": 9, "rather": [9, 17], "than": [9, 17], "assumpt": 9, "epicssign": [9, 17], "pytmcsign": 9, "pcdsdevic": [9, 11], "workaround": 9, "happen": 9, "unload": 9, "deploi": 9, "hotfix": 9, "accident": 9, "disabl": [9, 16, 17], "wheel": 9, "interact": [9, 17], "combo": 9, "box": 9, "situat": 9, "try": 9, "past": 9, "extend": 9, "customiz": 9, "launcher": 9, "scrip": 9, "intent": [9, 12, 14], "augment": 9, "lai": 9, "adjust": [9, 17], "height": 9, "450": 9, "lifetim": 9, "459": 9, "misidentifi": 9, "463": 9, "get_native_method": 9, "observ": 9, "broke": 9, "464": 9, "stabil": 9, "minor": 9, "frame": 9, "458": 9, "redirect": 9, "457": 9, "navig": 9, "page": 9, "reduc": 9, "javascript": 9, "spam": 9, "part": 9, "pyqtgraph": 9, "backward": [9, 14], "reloc": 9, "lcl": [9, 11], "positionerbas": [9, 11], "affect": 9, "typhosrelatedsuitebutton": 9, "qpushbutton": [9, 17], "tradit": 9, "expert": [9, 17], "docstr": 9, "browser": 9, "aesthet": 9, "driver": 9, "reset": 9, "routin": 9, "clear_error": [9, 17], "statu": [9, 16, 17], "done_mov": 9, "movn": 9, "typhosrelatedsuit": 9, "attributeerror": [9, 17], "notifi": [9, 14], "directori": [9, 11], "pathlib": [9, 11, 16], "pen": 9, "combobox": 9, "reboot": 9, "hacki": 9, "mark": [9, 16], "immedi": [9, 16, 17], "unknown": 9, "even": [9, 16], "lucid": 9, "elsewher": 9, "among": 9, "Their": 9, "shape": 9, "correl": 9, "pydmdrawingwidget": 9, "typhosalarmcircl": [9, 17], "typhosalarmrectangl": 9, "typhosalarmtriangl": 9, "typhosalarmellips": 9, "typhosalarmpolygon": 9, "sigint": 9, "handler": 9, "annoi": 9, "ctrl": 9, "maco": 9, "regard": 9, "sanit": 9, "subtl": 9, "crop": 9, "freez": 9, "inclus": 9, "at1k4": 9, "land": 9, "zone": 9, "readi": 9, "signalro": 9, "redund": 9, "calcul": [9, 17], "dialog": 9, "per": [9, 11], "manifest": 9, "big": 9, "assign": 9, "split": 9, "core": [9, 11, 16], "detailed_tre": 9, "tailor": 9, "tweakabl": [9, 17], "etc": [9, 14], "attenu": 9, "repo": [9, 11], "futur": [9, 16], "legaci": [9, 16], "codepath": 9, "lightpath": 9, "unboundlocalerror": 9, "_channel": 9, "doctr_versions_menu": 9, "extens": [9, 16], "flat": 9, "minimum": 9, "local": 9, "recip": 9, "forg": 9, "typhosload": [9, 16], "anim": [9, 16], "appear": 9, "complex": 9, "simplifi": 9, "plan": 9, "typhon": 9, "typhoscompositesignalpanel": [9, 17], "compos": 9, "typhosdisplai": 9, "discoveri": 9, "discov": 9, "inherit": [9, 16, 17], "fallback": [9, 17], "content": [9, 17], "previou": 9, "redesign": 9, "magic": 9, "fault": 9, "toler": 9, "pcdsmotorbas": 9, "rework": 9, "miscellan": 9, "persist": 9, "dpi": 9, "renam": 9, "typhostimeplot": 9, "grab_kind": 9, "osx": 9, "unifi": 9, "titl": 9, "progress": 9, "gif": 9, "exponenti": 9, "popbar": 9, "codebas": 9, "spot": 9, "dedic": 9, "pypi": 9, "throw": 9, "deprecationwarn": 9, "next": [9, 17], "beauti": 9, "stabl": 9, "utilitarian": 9, "program": [9, 16], "capabl": [9, 16], "larger": 9, "smaller": 9, "transmit": 9, "92": 9, "devicedisplai": 9, "possibl": [9, 16], "96": 9, "uniform": 9, "approach": [9, 12], "taken": 9, "introspect": [9, 16], "is_signal_ro": [9, 16], "grab_hint": 9, "98": 9, "91": 9, "94": 9, "drop": 9, "90": 9, "prototyp": 9, "proof": 9, "pcd": 9, "tag": [9, 14], "anaconda": 9, "45": 9, "commun": 9, "63": 9, "activ": [9, 17], "use_stylesheet": [9, 16], "61": 9, "89": 9, "prefer": 9, "add_subdevic": 9, "automaticali": 9, "pydmlogdisplai": 9, "logger": 9, "70": 9, "pydmtimeplot": 9, "fewer": [9, 12, 17], "73": 9, "resid": 9, "togglepanel": 9, "50": 9, "rotatingimag": 9, "58": 9, "componentbutton": 9, "add_pv_to_plot": 9, "typhondisplai": 9, "53": 9, "did": 9, "account": 9, "42": 9, "71": 9, "serv": 9, "pars": 9, "represent": 9, "png": 9, "later": [10, 16], "rout": 10, "saved_suit": 10, "re": [10, 17], "load_suit": [10, 16], "brows": 11, "tutori": 11, "guidanc": 11, "md": 11, "namespac": 11, "upshot": 11, "exactli": 11, "mro": [11, 16], "decid": 11, "why": 11, "pydm_displays_path": [11, 16], "With": [11, 17], "mind": 11, "clone": 11, "linux": 11, "critic": 12, "dai": [12, 16], "hope": 12, "servic": 12, "eas": 12, "therefor": [12, 16, 17], "secondli": 12, "standalon": 12, "typhostool": 12, "accord": [12, 16, 17], "word": 14, "rst": 14, "bullet": 14, "n": [14, 15], "bug": 14, "fix": 14, "cover": 14, "els": 14, "accumul": 14, "worri": 14, "anyon": 14, "who": 14, "signific": 14, "conceptu": 14, "contribut": 14, "pr": 14, "review": 14, "rewrit": 14, "releas": 14, "credit": 14, "deviceconnectionmonitorthread": 16, "include_lazi": 16, "grab": 16, "connection_upd": 16, "metadata_dict": 16, "wait_m": 16, "frameoneditfilt": 16, "edit": 16, "qlabel": 16, "eventfilt": 16, "a0": [16, 17], "qobject": 16, "a1": 16, "set_edit_styl": 16, "param": [16, 17], "set_no_edit_styl": 16, "grabkinditem": 16, "objectconnectionmonitorthread": 16, "threadpoolwork": 16, "func": [16, 17], "worker": 16, "callabl": [16, 17], "rargument": 16, "typhosexcept": 16, "timeout_messag": 16, "loading_timeout_m": 16, "millisecond": 16, "contextmenuev": 16, "qcontextmenuev": 16, "weakpartialmethodslot": 16, "signal_own": 16, "pyqtsign": 16, "compat": 16, "slot": 16, "owner": 16, "fire": 16, "include_pydm": 16, "behav": 16, "theme": 16, "chosen": [16, 17], "whole": 16, "channel_from_sign": 16, "channel_nam": 16, "clean_attr": 16, "nicer": 16, "clean_nam": 16, "strip_par": 16, "direct": 16, "strip": 16, "schema": 16, "clear_layout": 16, "code_from_devic": 16, "code_from_device_repr": 16, "repr": 16, "compose_stylesheet": 16, "accomplish": 16, "highest": 16, "bottom": 16, "evalu": 16, "itet": 16, "fulli": 16, "must": [16, 17], "end": 16, "unlik": 16, "interpret": [16, 17], "composed_styl": 16, "setstylesheet": 16, "incorpor": 16, "oserror": 16, "encount": 16, "connection_status_monitor": 16, "ophydobj": [16, 17], "subscrib": 16, "obj": [16, 17], "dump_grid_layout": 16, "row": [16, 17], "cell_width": 16, "60": 16, "dump": 16, "qgridlayout": 16, "tabl": [16, 17], "summari": 16, "find_file_in_path": 16, "display_path": 16, "find_parent_with_class": 16, "cl": 16, "pyqt5": 16, "find_root_widget": 16, "ancestor": 16, "find_templates_for_class": 16, "view_typ": 16, "include_mro": 16, "potenti": 16, "de": 16, "superclass": 16, "least": 16, "flatten_tre": 16, "flatten": [16, 17], "get_all_signals_from_devic": 16, "filter_bi": 16, "componentwalk": 16, "get_compon": 16, "ophyditem": 16, "get_device_from_fake_class": 16, "fake_cl": 16, "make_fake_devic": 16, "get_variety_metadata": 16, "cpt": 16, "known": 16, "is_fake_device_class": 16, "until": 16, "is_standard_templ": 16, "link_signal_to_widget": 16, "linked_attribut": 16, "property_attr": 16, "widget_attr": 16, "hide_unavail": 16, "decor": 16, "retriev": 16, "indirect": 16, "short": [16, 17], "getattr": 16, "cpt1": 16, "cpt2": 16, "low_limit": 16, "enter": 16, "uifil": 16, "suppli": 16, "make_identifi": 16, "no_device_lazy_load": 16, "lazy_wait_for_connect": 16, "restor": 16, "nullcontext": 16, "stand": 16, "py3": 16, "contextlib": 16, "patch_connect_slot": 16, "patch": 16, "qmetaobject": 16, "connectslotsbynam": 16, "systemerror": 16, "pyqt_class_from_enum": 16, "q_enum": 16, "raise_window": 16, "bring": 16, "focu": 16, "stack": 16, "minim": 16, "unminim": 16, "respond": 16, "sequenc": 16, "good": 16, "random_color": 16, "random": 16, "hex": 16, "reload_widget_stylesheet": 16, "cascad": 16, "reload": 16, "remove_duplicate_item": 16, "list_": 16, "tupl": [16, 17], "retain": [16, 17], "file_or_buff": 16, "relaunch": 16, "subscription_context": 16, "event_typ": 16, "subscription_context_devic": 16, "take_top_level_widget_screenshot": 16, "visible_onli": 16, "take_widget_screenshot": 16, "unchang": 16, "widget_to_imag": 16, "fill_color": 16, "19": 16, "paint": 16, "get_global_display_path_cach": 16, "_globaldisplaypathcach": 16, "singleton": 16, "add_path": 16, "glob": 16, "get_global_describe_cach": 16, "_globaldescribecach": 16, "global": [16, 17], "qthreadpool": 16, "new_descript": 16, "connect_thread": 16, "hold": 16, "desc": [16, 17], "get_global_widget_type_cach": 16, "_globalwidgettypecach": 16, "widgets_determin": 16, "describe_cach": 16, "signalwidgetinfo": [16, 17], "concis": 17, "opt": 17, "create_signal_widget": 17, "read_onli": 17, "tooltip": 17, "factori": 17, "abl": 17, "pydmlabel": 17, "pydmlineedit": 17, "pydmenumcombobox": 17, "read_cl": 17, "read_kwarg": 17, "write_cl": 17, "write_kwarg": 17, "from_sign": 17, "widget_type_from_descript": 17, "record": 17, "widget_class": 17, "determine_widget_typ": 17, "principl": 17, "thefor": 17, "variat": 17, "hierarch": 17, "loading_complet": 17, "num_col": 17, "col_label": 17, "col_readback": 17, "col_setpoint": 17, "compositesignalpanel": 17, "add_pv": 17, "read_pv": 17, "write_pv": 17, "add_row": 17, "span": 17, "remain": 17, "add_sign": 17, "drawn": 17, "depend": 17, "_read_pv": 17, "_write_pv": 17, "reserv": 17, "epicssignalro": 17, "filter_sign": 17, "name_filt": 17, "show_nam": 17, "omit_nam": 17, "optino": 17, "explicitli": 17, "label_text_from_attribut": 17, "dotted_nam": 17, "becaus": 17, "ambigu": 17, "clash": 17, "row_count": 17, "signal_nam": 17, "visible_el": 17, "visible_sign": 17, "init_channel": 17, "signalord": 17, "filter_set": 17, "namefilt": 17, "omitnam": 17, "showconfig": 17, "config": 17, "showhint": 17, "shownam": 17, "shownorm": 17, "showomit": 17, "show_kind": 17, "sortbi": 17, "mix": 17, "add_sub_devic": 17, "motion": 17, "amount": 17, "punch": 17, "soft": 17, "hardwar": 17, "readback_attribut": 17, "setpoint_attribut": 17, "user_setpoint": 17, "low_limit_switch_attribut": 17, "high_limit_switch_attribut": 17, "low_limit_switch": 17, "high_limit_switch": 17, "low_limit_travel_attribut": 17, "high_limit_travel_attribut": 17, "low_limit_travel": 17, "high_limit_travel": 17, "tweak": 17, "moving_attribut": 17, "motor_is_mov": 17, "moving_ind": 17, "error_message_attribut": 17, "error_messag": 17, "error_label": 17, "circl": 17, "summar": 17, "typhosalarm": 17, "acceleration_attribut": 17, "all_linked_attribut": 17, "all_linked_sign": 17, "failed_mov": 17, "high": 17, "travel": 17, "low": 17, "move_chang": 17, "begun": 17, "lag": 17, "behind": 17, "actual": 17, "unnecessari": 17, "rapid": 17, "movement": 17, "negative_tweak": 17, "neg": 17, "tweak_valu": 17, "positive_tweak": 17, "set_valu": 17, "show_expert_button": 17, "typic": 17, "unrel": 17, "show_ui_type_hint": 17, "successful_mov": 17, "offset": 17, "update_alarm_text": 17, "alarm_level": 17, "bit": 17, "velocity_attribut": 17, "functiondisplai": 17, "typhosmethodbutton": 17, "method_nam": 17, "use_statu": 17, "clickablebitind": 17, "qmouseev": 17, "imagedialogbutton": 17, "arrai": 17, "parent_widget_class": 17, "qmainwindow": 17, "pydmimageview": 17, "signaldialogbutton": 17, "qdialog": 17, "notimpl": 17, "show_dialog": 17, "qdockwidget": 17, "closeev": 17, "qcloseev": 17, "typhosarrayt": 17, "variety_metadata": 17, "ophyd_sign": 17, "reshap": 17, "waveform": 17, "tabular": 17, "value_chang": 17, "new_waveform": 17, "typhosbyteind": 17, "integ": 17, "bitmask": 17, "typhosbytesetpoint": 17, "toggleabl": 17, "numbit": 17, "typhostextedit": 17, "typhoscombobox": 17, "enum_strings_chang": 17, "new_enum_str": 17, "broadcast": 17, "wheelev": 17, "qwheelev": 17, "typhoscommandbutton": 17, "pushbutton": 17, "typhoscommandenumbutton": 17, "proc": 17, "typhoslabel": 17, "display_format": 17, "reimplement": 17, "nd": 17, "multilin": 17, "scalar": 17, "rang": 17, "dynamic_font_s": 17, "unit_chang": 17, "new_unit": 17, "update_format_str": 17, "showunit": 17, "send_valu": 17, "histori": 17, "setpointhistorycount": 17, "setpoint_histori": 17, "widget_ctx_menu": 17, "fetch": 17, "assemble_tools_menu": 17, "typhosscalarrang": 17, "slider": 17, "connection_chang": 17, "act": 17, "alarm_disconnect": 17, "delta_sign": 17, "delta": 17, "delta_valu": 17, "num_point": 17, "pydmslid": 17, "min": 17, "max": 17, "typhossidebaritem": 17, "depth": 17, "embed_request": 17, "hide_request": 17, "open_request": 17, "treewidgetchang": 17, "qtreewidget": 17, "typhostweak": 17, "textedit": 17, "writabl": 17, "editor": 17, "send_value_sign": 17, "set_displai": 17, "write_access_chang": 17, "new_write_access": 17, "deni": 17, "waveformdialogbutton": 17, "histogram": 17, "timeseri": 17, "pydmwaveformplot": 17, "typhosdesignermixin": 17, "mixin": 17, "alarmsensitivebord": 17, "alarmsensitivecont": 17}, "objects": {"typhos": [[17, 0, 1, "", "TyphosCompositeSignalPanel"], [3, 0, 1, "", "TyphosDeviceDisplay"], [17, 0, 1, "", "TyphosMethodButton"], [17, 0, 1, "", "TyphosPositionerWidget"], [17, 0, 1, "", "TyphosSignalPanel"], [3, 0, 1, "", "TyphosSuite"], [1, 5, 0, "-", "cli"], [16, 5, 0, "-", "utils"]], "typhos.TyphosDeviceDisplay": [[3, 1, 1, "", "TemplateEnum"], [3, 2, 1, "", "add_device"], [3, 2, 1, "", "copy_to_clipboard"], [3, 3, 1, "", "current_template"], [3, 3, 1, "", "device"], [3, 1, 1, "", "device_class"], [3, 1, 1, "", "device_name"], [3, 1, 1, "", "display_type"], [3, 3, 1, "", "display_widget"], [3, 1, 1, "", "force_template"], [3, 2, 1, "", "from_class"], [3, 2, 1, "", "from_device"], [3, 2, 1, "", "get_best_template"], [3, 1, 1, "", "hideEmpty"], [3, 2, 1, "", "load_best_template"], [3, 3, 1, "", "macros"], [3, 2, 1, "", "minimumSizeHint"], [3, 1, 1, "", "scroll_option"], [3, 2, 1, "", "search_for_templates"], [3, 2, 1, "", "suggest_composite_screen"], [3, 2, 1, "", "to_image"]], "typhos.TyphosMethodButton": [[17, 2, 1, "", "add_device"], [17, 2, 1, "", "execute"], [17, 2, 1, "", "from_device"], [17, 1, 1, "", "method_name"], [17, 1, 1, "", "use_status"]], "typhos.TyphosPositionerWidget": [[17, 0, 1, "", "KindLevel"], [17, 1, 1, "", "acceleration_attribute"], [17, 2, 1, "", "add_device"], [17, 3, 1, "", "all_linked_attributes"], [17, 3, 1, "", "all_linked_signals"], [17, 2, 1, "", "clear_error"], [17, 3, 1, "", "device"], [17, 1, 1, "", "error_message_attribute"], [17, 1, 1, "", "failed_move"], [17, 1, 1, "", "high_limit_switch_attribute"], [17, 1, 1, "", "high_limit_travel_attribute"], [17, 1, 1, "", "low_limit_switch_attribute"], [17, 1, 1, "", "low_limit_travel_attribute"], [17, 2, 1, "", "move_changed"], [17, 1, 1, "", "moving"], [17, 1, 1, "", "moving_attribute"], [17, 2, 1, "", "negative_tweak"], [17, 2, 1, "", "positive_tweak"], [17, 1, 1, "", "readback_attribute"], [17, 2, 1, "", "set"], [17, 1, 1, "", "setpoint_attribute"], [17, 1, 1, "", "show_expert_button"], [17, 2, 1, "", "show_ui_type_hints"], [17, 2, 1, "", "stop"], [17, 1, 1, "", "successful_move"], [17, 2, 1, "", "tweak"], [17, 2, 1, "", "update_alarm_text"], [17, 1, 1, "", "velocity_attribute"]], "typhos.TyphosSignalPanel": [[17, 0, 1, "", "SignalOrder"], [17, 2, 1, "", "add_device"], [17, 3, 1, "", "filter_settings"], [17, 2, 1, "", "generate_context_menu"], [17, 1, 1, "", "nameFilter"], [17, 1, 1, "", "omitNames"], [17, 2, 1, "", "open_context_menu"], [17, 2, 1, "", "set_device_display"], [17, 1, 1, "", "showConfig"], [17, 1, 1, "", "showHints"], [17, 1, 1, "", "showNames"], [17, 1, 1, "", "showNormal"], [17, 1, 1, "", "showOmitted"], [17, 3, 1, "", "show_kinds"], [17, 1, 1, "", "sortBy"]], "typhos.TyphosSuite": [[3, 2, 1, "", "add_device"], [3, 2, 1, "", "add_lazy_subdisplay"], [3, 2, 1, "", "add_subdisplay"], [3, 2, 1, "", "add_tool"], [3, 1, 1, "", "default_tools"], [3, 2, 1, "", "embed_subdisplay"], [3, 2, 1, "", "from_device"], [3, 2, 1, "", "from_devices"], [3, 2, 1, "", "get_subdisplay"], [3, 2, 1, "", "hide_subdisplay"], [3, 2, 1, "", "hide_subdisplays"], [3, 2, 1, "", "save"], [3, 2, 1, "", "save_device_screenshots"], [3, 2, 1, "", "save_screenshot"], [3, 2, 1, "", "show_subdisplay"], [3, 3, 1, "", "tools"], [3, 3, 1, "", "top_level_groups"]], "typhos.cache": [[16, 0, 1, "", "_GlobalDescribeCache"], [16, 0, 1, "", "_GlobalDisplayPathCache"], [16, 0, 1, "", "_GlobalWidgetTypeCache"], [16, 4, 1, "", "get_global_describe_cache"], [16, 4, 1, "", "get_global_display_path_cache"], [16, 4, 1, "", "get_global_widget_type_cache"]], "typhos.cache._GlobalDescribeCache": [[16, 1, 1, "", "cache"], [16, 2, 1, "", "clear"], [16, 1, 1, "", "connect_thread"], [16, 2, 1, "", "get"]], "typhos.cache._GlobalDisplayPathCache": [[16, 2, 1, "", "add_path"], [16, 2, 1, "", "update"]], "typhos.cache._GlobalWidgetTypeCache": [[16, 1, 1, "", "cache"], [16, 2, 1, "", "clear"], [16, 1, 1, "", "describe_cache"], [16, 2, 1, "", "get"]], "typhos.display": [[3, 0, 1, "", "TyphosDisplayConfigButton"], [3, 0, 1, "", "TyphosDisplaySwitcher"], [3, 0, 1, "", "TyphosDisplaySwitcherButton"], [3, 0, 1, "", "TyphosDisplayTitle"], [3, 0, 1, "", "TyphosTitleLabel"], [3, 0, 1, "", "TyphosToolButton"], [3, 4, 1, "", "hide_empty"], [3, 4, 1, "", "normalize_display_type"], [3, 4, 1, "", "show_empty"], [3, 4, 1, "", "toggle_display"]], "typhos.display.TyphosDisplayConfigButton": [[3, 2, 1, "", "create_hide_empty_menu"], [3, 2, 1, "", "create_kind_filter_menu"], [3, 2, 1, "", "create_name_filter_menu"], [3, 2, 1, "", "generate_context_menu"], [3, 2, 1, "", "hide_empty"], [3, 2, 1, "", "set_device_display"]], "typhos.display.TyphosDisplaySwitcher": [[3, 2, 1, "", "add_device"], [3, 2, 1, "", "new_jira_widget"], [3, 2, 1, "", "set_device_display"]], "typhos.display.TyphosDisplaySwitcherButton": [[3, 2, 1, "", "generate_context_menu"]], "typhos.display.TyphosDisplayTitle": [[3, 2, 1, "", "add_device"], [3, 2, 1, "", "pop_out_help"], [3, 2, 1, "", "set_device_display"], [3, 1, 1, "", "show_switcher"], [3, 1, 1, "", "show_underline"], [3, 2, 1, "", "toggle_help"]], "typhos.display.TyphosTitleLabel": [[3, 2, 1, "", "mousePressEvent"], [3, 1, 1, "", "toggle_requested"]], "typhos.display.TyphosToolButton": [[3, 1, 1, "", "DEFAULT_ICON"], [3, 2, 1, "", "generate_context_menu"], [3, 2, 1, "", "get_icon"], [3, 2, 1, "", "open_context_menu"]], "typhos.func": [[17, 0, 1, "", "FunctionPanel"]], "typhos.func.FunctionPanel": [[17, 2, 1, "", "add_method"]], "typhos.panel": [[17, 0, 1, "", "CompositeSignalPanel"], [17, 0, 1, "", "SignalPanel"]], "typhos.panel.CompositeSignalPanel": [[17, 1, 1, "", "COL_LABEL"], [17, 1, 1, "", "COL_READBACK"], [17, 1, 1, "", "COL_SETPOINT"], [17, 1, 1, "", "NUM_COLS"], [17, 2, 1, "", "add_device"], [17, 2, 1, "", "add_sub_device"], [17, 2, 1, "", "label_text_from_attribute"], [17, 1, 1, "", "loading_complete"], [17, 3, 1, "", "visible_elements"]], "typhos.panel.SignalPanel": [[17, 1, 1, "", "COL_LABEL"], [17, 1, 1, "", "COL_READBACK"], [17, 1, 1, "", "COL_SETPOINT"], [17, 1, 1, "", "NUM_COLS"], [17, 2, 1, "", "add_device"], [17, 2, 1, "", "add_pv"], [17, 2, 1, "", "add_row"], [17, 2, 1, "", "add_signal"], [17, 2, 1, "", "clear"], [17, 2, 1, "", "filter_signals"], [17, 2, 1, "", "label_text_from_attribute"], [17, 1, 1, "", "loading_complete"], [17, 3, 1, "", "row_count"], [17, 3, 1, "", "signals"], [17, 3, 1, "", "visible_elements"], [17, 3, 1, "", "visible_signals"]], "typhos.plugins": [[7, 0, 1, "", "HappiConnection"], [7, 0, 1, "", "HappiPlugin"], [7, 0, 1, "", "SignalConnection"], [7, 0, 1, "", "SignalPlugin"], [7, 4, 1, "", "register_client"], [7, 4, 1, "", "register_signal"]], "typhos.plugins.HappiConnection": [[7, 2, 1, "", "add_listener"], [7, 2, 1, "", "remove_listener"]], "typhos.plugins.SignalConnection": [[7, 2, 1, "", "add_listener"], [7, 2, 1, "", "cast"], [7, 2, 1, "", "close"], [7, 2, 1, "", "find_signal"], [7, 2, 1, "", "put_value"], [7, 2, 1, "", "remove_listener"], [7, 2, 1, "", "send_new_meta"], [7, 2, 1, "", "send_new_value"], [7, 1, 1, "", "signal"]], "typhos.textedit": [[17, 0, 1, "", "TyphosTextEdit"]], "typhos.textedit.TyphosTextEdit": [[17, 2, 1, "", "send_value"], [17, 2, 1, "", "set_display"], [17, 2, 1, "", "value_changed"], [17, 3, 1, "", "variety_metadata"], [17, 2, 1, "", "write_access_changed"]], "typhos.tools": [[4, 0, 1, "", "TyphosLogDisplay"], [5, 0, 1, "", "TyphosTimePlot"]], "typhos.tools.TyphosLogDisplay": [[4, 2, 1, "", "__init__"]], "typhos.tools.TyphosTimePlot": [[5, 2, 1, "", "__init__"]], "typhos.tweakable": [[17, 0, 1, "", "TyphosTweakable"]], "typhos.tweakable.TyphosTweakable": [[17, 2, 1, "", "negative_tweak"], [17, 2, 1, "", "positive_tweak"], [17, 2, 1, "", "tweak"], [17, 3, 1, "", "variety_metadata"]], "typhos.utils": [[16, 0, 1, "", "DeviceConnectionMonitorThread"], [16, 0, 1, "", "FrameOnEditFilter"], [16, 0, 1, "", "GrabKindItem"], [16, 0, 1, "", "ObjectConnectionMonitorThread"], [16, 0, 1, "", "ThreadPoolWorker"], [16, 0, 1, "", "TyphosBase"], [16, 6, 1, "", "TyphosException"], [16, 0, 1, "", "TyphosLoading"], [16, 0, 1, "", "WeakPartialMethodSlot"], [16, 4, 1, "", "apply_standard_stylesheets"], [16, 4, 1, "", "channel_from_signal"], [16, 4, 1, "", "channel_name"], [16, 4, 1, "", "clean_attr"], [16, 4, 1, "", "clean_name"], [16, 4, 1, "", "clear_layout"], [16, 4, 1, "", "code_from_device"], [16, 4, 1, "", "code_from_device_repr"], [16, 4, 1, "", "compose_stylesheets"], [16, 4, 1, "", "connection_status_monitor"], [16, 4, 1, "", "dump_grid_layout"], [16, 4, 1, "", "find_file_in_paths"], [16, 4, 1, "", "find_parent_with_class"], [16, 4, 1, "", "find_root_widget"], [16, 4, 1, "", "find_templates_for_class"], [16, 4, 1, "", "flatten_tree"], [16, 4, 1, "", "get_all_signals_from_device"], [16, 4, 1, "", "get_component"], [16, 4, 1, "", "get_device_from_fake_class"], [16, 4, 1, "", "get_variety_metadata"], [16, 4, 1, "", "is_fake_device_class"], [16, 4, 1, "", "is_signal_ro"], [16, 4, 1, "", "is_standard_template"], [16, 4, 1, "", "link_signal_to_widget"], [16, 4, 1, "", "linked_attribute"], [16, 4, 1, "", "load_suite"], [16, 4, 1, "", "load_ui_file"], [16, 4, 1, "", "make_identifier"], [16, 4, 1, "", "no_device_lazy_load"], [16, 4, 1, "", "nullcontext"], [16, 4, 1, "", "patch_connect_slots"], [16, 4, 1, "", "pyqt_class_from_enum"], [16, 4, 1, "", "raise_window"], [16, 4, 1, "", "random_color"], [16, 4, 1, "", "reload_widget_stylesheet"], [16, 4, 1, "", "remove_duplicate_items"], [16, 4, 1, "", "save_suite"], [16, 4, 1, "", "subscription_context"], [16, 4, 1, "", "subscription_context_device"], [16, 4, 1, "", "take_top_level_widget_screenshots"], [16, 4, 1, "", "take_widget_screenshot"], [16, 4, 1, "", "use_stylesheet"], [16, 4, 1, "", "widget_to_image"]], "typhos.utils.DeviceConnectionMonitorThread": [[16, 1, 1, "", "connection_update"], [16, 2, 1, "", "run"], [16, 2, 1, "", "stop"]], "typhos.utils.FrameOnEditFilter": [[16, 2, 1, "", "eventFilter"], [16, 2, 1, "", "set_edit_style"], [16, 2, 1, "", "set_no_edit_style"]], "typhos.utils.GrabKindItem": [[16, 1, 1, "", "attr"], [16, 1, 1, "", "component"], [16, 1, 1, "", "signal"]], "typhos.utils.ObjectConnectionMonitorThread": [[16, 1, 1, "", "connection_update"], [16, 2, 1, "", "run"], [16, 2, 1, "", "stop"]], "typhos.utils.ThreadPoolWorker": [[16, 2, 1, "", "run"]], "typhos.utils.TyphosLoading": [[16, 1, 1, "", "LOADING_TIMEOUT_MS"], [16, 2, 1, "", "contextMenuEvent"]], "typhos.widgets": [[17, 0, 1, "", "ClickableBitIndicator"], [17, 0, 1, "", "ImageDialogButton"], [17, 0, 1, "", "SignalDialogButton"], [17, 0, 1, "", "SignalWidgetInfo"], [17, 0, 1, "", "SubDisplay"], [17, 0, 1, "", "TyphosArrayTable"], [17, 0, 1, "", "TyphosByteIndicator"], [17, 0, 1, "", "TyphosByteSetpoint"], [17, 0, 1, "", "TyphosComboBox"], [17, 0, 1, "", "TyphosCommandButton"], [17, 0, 1, "", "TyphosCommandEnumButton"], [17, 0, 1, "", "TyphosDesignerMixin"], [17, 0, 1, "", "TyphosLabel"], [17, 0, 1, "", "TyphosLineEdit"], [17, 0, 1, "", "TyphosScalarRange"], [17, 0, 1, "", "TyphosSidebarItem"], [17, 0, 1, "", "WaveformDialogButton"], [17, 4, 1, "", "create_signal_widget"], [17, 4, 1, "", "determine_widget_type"], [17, 4, 1, "", "widget_type_from_description"]], "typhos.widgets.ClickableBitIndicator": [[17, 2, 1, "", "mousePressEvent"]], "typhos.widgets.ImageDialogButton": [[17, 1, 1, "", "parent_widget_class"], [17, 2, 1, "", "widget"]], "typhos.widgets.SignalDialogButton": [[17, 1, 1, "", "icon"], [17, 1, 1, "", "parent_widget_class"], [17, 2, 1, "", "show_dialog"], [17, 1, 1, "", "text"], [17, 2, 1, "", "widget"]], "typhos.widgets.SignalWidgetInfo": [[17, 2, 1, "", "from_signal"]], "typhos.widgets.SubDisplay": [[17, 2, 1, "", "closeEvent"]], "typhos.widgets.TyphosArrayTable": [[17, 2, 1, "", "value_changed"], [17, 3, 1, "", "variety_metadata"]], "typhos.widgets.TyphosByteIndicator": [[17, 3, 1, "", "variety_metadata"]], "typhos.widgets.TyphosByteSetpoint": [[17, 1, 1, "", "numBits"], [17, 2, 1, "", "value_changed"]], "typhos.widgets.TyphosComboBox": [[17, 2, 1, "", "enum_strings_changed"], [17, 2, 1, "", "wheelEvent"]], "typhos.widgets.TyphosCommandButton": [[17, 2, 1, "", "enum_strings_changed"], [17, 3, 1, "", "variety_metadata"]], "typhos.widgets.TyphosCommandEnumButton": [[17, 2, 1, "", "enum_strings_changed"], [17, 3, 1, "", "variety_metadata"]], "typhos.widgets.TyphosDesignerMixin": [[17, 1, 1, "", "alarmSensitiveBorder"], [17, 1, 1, "", "alarmSensitiveContent"], [17, 1, 1, "", "channel"]], "typhos.widgets.TyphosLabel": [[17, 1, 1, "", "dynamic_font_size"], [17, 2, 1, "", "enum_strings_changed"], [17, 2, 1, "", "unit_changed"]], "typhos.widgets.TyphosLineEdit": [[17, 2, 1, "", "send_value"], [17, 1, 1, "", "setpointHistoryCount"], [17, 3, 1, "", "setpoint_history"], [17, 2, 1, "", "unit_changed"], [17, 2, 1, "", "widget_ctx_menu"]], "typhos.widgets.TyphosScalarRange": [[17, 2, 1, "", "connection_changed"], [17, 3, 1, "", "delta_signal"], [17, 1, 1, "", "delta_value"], [17, 3, 1, "", "variety_metadata"]], "typhos.widgets.TyphosSidebarItem": [[17, 2, 1, "", "embed_requested"], [17, 2, 1, "", "hide_requested"], [17, 2, 1, "", "open_requested"], [17, 2, 1, "", "treeWidgetChanged"]], "typhos.widgets.WaveformDialogButton": [[17, 1, 1, "", "parent_widget_class"], [17, 2, 1, "", "widget"]]}, "objtypes": {"0": "py:class", "1": "py:attribute", "2": "py:method", "3": "py:property", "4": "py:function", "5": "py:module", "6": "py:exception"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "attribute", "Python attribute"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "function", "Python function"], "5": ["py", "module", "Python module"], "6": ["py", "exception", "Python exception"]}, "titleterms": {"how": 0, "work": 0, "interpret": 0, "devic": 0, "us": 0, "happi": [0, 2], "signal": [0, 2, 17], "displai": [0, 3], "fill": 0, "templat": [0, 11], "The": 0, "typhossuit": [0, 3], "stylesheet": 0, "document": 0, "widget": [0, 16, 17], "jira": 0, "bug": [0, 9], "report": 0, "launch": 0, "exampl": 0, "command": 1, "line": 1, "util": [1, 3, 16], "applic": 2, "connect": 2, "ophyd": [2, 16], "inclus": 2, "metadata": 2, "plugin": [2, 7], "suit": 3, "typhosdevicedisplai": 3, "standard": 3, "titl": [3, 14, 15], "tool": [3, 4, 5, 12], "button": 3, "typho": [4, 5, 6, 7], "typhoslogdisplai": 4, "typhostimeplot": 5, "relat": 6, "project": 6, "data": 7, "pydm": 7, "signalplugin": 7, "happiplugin": 7, "includ": 8, "python": 8, "code": 8, "ad": 8, "method": [8, 17], "releas": 9, "histori": 9, "v3": 9, "1": 9, "2024": 9, "04": 9, "12": 9, "fix": 9, "contributor": [9, 14, 15], "0": 9, "2023": 9, "05": 9, "featur": [9, 14, 15], "09": 9, "27": 9, "api": [9, 14, 15], "break": [9, 14, 15], "bugfix": [9, 14, 15], "mainten": [9, 14, 15], "v2": 9, "4": 9, "descript": [9, 16], "2022": 9, "11": 9, "3": 9, "10": 9, "20": 9, "2": 9, "07": 9, "28": 9, "02": 9, "03": 9, "31": 9, "2021": 9, "30": 9, "enhanc": 9, "what": 9, "": 9, "new": 9, "18": 9, "08": 9, "compat": 9, "doc": 9, "test": 9, "v1": 9, "6": 9, "5": 9, "2020": 9, "26": 9, "22": 9, "19": 9, "01": 9, "v0": 9, "7": 9, "2019": 9, "2018": 9, "deprec": 9, "06": 9, "chang": [9, 13], "depend": 9, "2017": 9, "15": 9, "save": 10, "load": 10, "custom": 11, "creation": 11, "substitut": 11, "filenam": 11, "discoveri": 11, "support": 12, "class": 12, "upcom": 13, "issuenumb": [14, 15], "function": [16, 17], "cach": 16, "path": 16, "object": 16, "type": [16, 17], "determin": 17, "panel": 17, "basic": 17, "composit": 17, "typhospositionerwidget": 17, "miscellan": 17, "design": 17}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"How it Works": [[0, "how-it-works"]], "Interpreting a Device": [[0, "interpreting-a-device"]], "Using Happi": [[0, "using-happi"]], "Signals of Devices": [[0, "signals-of-devices"]], "Display Signals": [[0, "display-signals"]], "Filling Templates": [[0, "filling-templates"]], "The TyphosSuite": [[0, "the-typhossuite"]], "Using the StyleSheet": [[0, "using-the-stylesheet"]], "Using the Documentation Widget": [[0, "using-the-documentation-widget"]], "Using the Jira Bug Reporting Widget": [[0, "using-the-jira-bug-reporting-widget"]], "Launching the Examples": [[0, "launching-the-examples"]], "Command Line Utilities": [[1, "module-typhos.cli"]], "Application Connections": [[2, "application-connections"]], "Ophyd Signals": [[2, "ophyd-signals"]], "Inclusion of Metadata": [[2, "inclusion-of-metadata"]], "Happi Plugin": [[2, "happi-plugin"]], "Suite and Displays": [[3, "suite-and-displays"]], "TyphosSuite": [[3, "typhossuite"]], "TyphosDeviceDisplay": [[3, "typhosdevicedisplay"]], "Standardized Display Title": [[3, "standardized-display-title"]], "Tool buttons": [[3, "tool-buttons"]], "Utilities": [[3, "utilities"]], "typhos.tools.TyphosLogDisplay": [[4, "typhos-tools-typhoslogdisplay"]], "typhos.tools.TyphosTimePlot": [[5, "typhos-tools-typhostimeplot"]], "Typhos": [[6, "typhos"]], "Related Projects": [[6, "related-projects"]], "Typhos Data Plugins for PyDM": [[7, "typhos-data-plugins-for-pydm"]], "SignalPlugin": [[7, "signalplugin"]], "HappiPlugin": [[7, "happiplugin"]], "Including Python Code": [[8, "including-python-code"]], "Adding Methods": [[8, "adding-methods"]], "Release History": [[9, "release-history"]], "v3.1.1 (2024-04-12)": [[9, "v3-1-1-2024-04-12"]], "Fixes": [[9, "fixes"], [9, "id15"], [9, "id19"], [9, "id24"], [9, "id26"], [9, "id29"], [9, "id37"]], "Contributors": [[9, "contributors"], [9, "id1"], [9, "id3"], [9, "id6"], [9, "id9"], [9, "id13"], [9, "id17"], [9, "id21"], [14, "contributors"], [15, "contributors"]], "v3.1.0 (2023-12-05)": [[9, "v3-1-0-2023-12-05"]], "Features": [[9, "features"], [9, "id2"], [9, "id8"], [9, "id23"], [9, "id80"], [14, "features"], [15, "features"]], "v3.0.0 (2023-09-27)": [[9, "v3-0-0-2023-09-27"]], "API Breaks": [[9, "api-breaks"], [9, "id43"], [14, "api-breaks"], [15, "api-breaks"]], "Bugfixes": [[9, "bugfixes"], [9, "id4"], [9, "id11"], [14, "bugfixes"], [15, "bugfixes"]], "Maintenance": [[9, "maintenance"], [9, "id5"], [9, "id12"], [9, "id16"], [9, "id20"], [9, "id33"], [9, "id39"], [9, "id76"], [14, "maintenance"], [15, "maintenance"]], "v2.4.1 (2023-4-4)": [[9, "v2-4-1-2023-4-4"]], "Description": [[9, "description"], [9, "id7"], [9, "id10"], [9, "id14"], [9, "id18"], [9, "id22"], [9, "id25"], [9, "id27"], [9, "id34"], [9, "id42"], [9, "id45"], [9, "id48"], [9, "id50"], [9, "id52"], [9, "id54"], [9, "id56"], [9, "id58"], [9, "id60"], [9, "id64"], [9, "id67"], [9, "id70"], [9, "id73"], [9, "id74"], [9, "id75"], [9, "id77"]], "v2.4.0 (2022-11-4)": [[9, "v2-4-0-2022-11-4"]], "v2.3.3 (2022-10-20)": [[9, "v2-3-3-2022-10-20"]], "v2.3.2 (2022-07-28)": [[9, "v2-3-2-2022-07-28"]], "v2.3.1 (2022-05-02)": [[9, "v2-3-1-2022-05-02"]], "v2.3.0 (2022-03-31)": [[9, "v2-3-0-2022-03-31"]], "v2.2.1 (2022-02-07)": [[9, "v2-2-1-2022-02-07"]], "v2.2.0 (2021-11-30)": [[9, "v2-2-0-2021-11-30"]], "Enhancements / What\u2019s new": [[9, "enhancements-what-s-new"], [9, "id35"]], "v2.1.0 (2021-10-18)": [[9, "v2-1-0-2021-10-18"]], "v2.0.0 (2021-08-05)": [[9, "v2-0-0-2021-08-05"]], "Enhancements / What\u2019s New": [[9, "id44"], [9, "id46"], [9, "id55"], [9, "id61"], [9, "id65"], [9, "id68"], [9, "id71"]], "Compatibility / Fixes": [[9, "compatibility-fixes"], [9, "id47"], [9, "id49"], [9, "id51"], [9, "id53"], [9, "id57"], [9, "id59"]], "Docs / Testing": [[9, "docs-testing"], [9, "id63"]], "v1.2.0 (2021-07-09)": [[9, "v1-2-0-2021-07-09"]], "v1.1.6 (2021-04-05)": [[9, "v1-1-6-2021-04-05"]], "v1.1.5 (2020-04-02)": [[9, "v1-1-5-2020-04-02"]], "v1.1.4 (2020-02-26)": [[9, "v1-1-4-2020-02-26"]], "v1.1.3 (2020-02-10)": [[9, "v1-1-3-2020-02-10"]], "v1.1.2 (2020-12-22)": [[9, "v1-1-2-2020-12-22"]], "v1.1.1 (2020-08-19)": [[9, "v1-1-1-2020-08-19"]], "v1.1.0 (2020-08-18)": [[9, "v1-1-0-2020-08-18"]], "Compatibility / fixes": [[9, "id62"], [9, "id66"], [9, "id69"], [9, "id72"]], "v1.0.2 (2020-07-01)": [[9, "v1-0-2-2020-07-01"]], "v1.0.1 (2020-05-20)": [[9, "v1-0-1-2020-05-20"]], "v1.0.0 (2020-05-18)": [[9, "v1-0-0-2020-05-18"]], "v0.7.0 (2020-03-09)": [[9, "v0-7-0-2020-03-09"]], "v0.6.0 (2020-01-09)": [[9, "v0-6-0-2020-01-09"]], "Compatibility": [[9, "compatibility"]], "v0.5.0 (2019-09-18)": [[9, "v0-5-0-2019-09-18"]], "What\u2019s New": [[9, "whats-new"]], "v0.2.1 (2018-09-28)": [[9, "v0-2-1-2018-09-28"]], "Enhancements": [[9, "enhancements"], [9, "id78"]], "Deprecations": [[9, "deprecations"], [9, "id79"]], "v0.2.0 (2018-06-27)": [[9, "v0-2-0-2018-06-27"]], "API Changes": [[9, "api-changes"]], "Dependencies": [[9, "dependencies"]], "Bug Fixes": [[9, "bug-fixes"]], "v0.1.0 (2017-12-15)": [[9, "v0-1-0-2017-12-15"]], "Saving and Loading": [[10, "saving-and-loading"]], "Custom Templates": [[11, "custom-templates"]], "Template Creation": [[11, "template-creation"]], "Template Substitutions": [[11, "template-substitutions"]], "Template Filenames": [[11, "template-filenames"]], "Template Discovery": [[11, "template-discovery"]], "Supported Tools": [[12, "supported-tools"]], "Tool Classes": [[12, "tool-classes"]], "Upcoming Changes": [[13, "upcoming-changes"]], "IssueNumber Title": [[14, "issuenumber-title"], [15, "issuenumber-title"]], "Utility Functions": [[16, "module-typhos.utils"]], "Cache Utilities": [[16, "cache-utilities"]], "Path caching": [[16, "path-caching"]], "Ophyd Object Description Caching": [[16, "ophyd-object-description-caching"]], "Ophyd Object to Widget Type Cache": [[16, "ophyd-object-to-widget-type-cache"]], "Widgets": [[17, "widgets"]], "Determining widget types": [[17, "determining-widget-types"]], "Panels": [[17, "panels"]], "Basic Signal Panels": [[17, "basic-signal-panels"]], "Composite Signal Panels": [[17, "composite-signal-panels"]], "TyphosPositionerWidget": [[17, "typhospositionerwidget"]], "Functions and Methods": [[17, "functions-and-methods"]], "Miscellaneous": [[17, "miscellaneous"]], "Designer": [[17, "designer"]]}, "indexentries": {"module": [[1, "module-typhos.cli"], [16, "module-typhos.utils"]], "typhos.cli": [[1, "module-typhos.cli"]], "default_icon (typhos.display.typhostoolbutton attribute)": [[3, "typhos.display.TyphosToolButton.DEFAULT_ICON"]], "templateenum (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.TemplateEnum"]], "typhosdevicedisplay (class in typhos)": [[3, "typhos.TyphosDeviceDisplay"]], "typhosdisplayconfigbutton (class in typhos.display)": [[3, "typhos.display.TyphosDisplayConfigButton"]], "typhosdisplayswitcher (class in typhos.display)": [[3, "typhos.display.TyphosDisplaySwitcher"]], "typhosdisplayswitcherbutton (class in typhos.display)": [[3, "typhos.display.TyphosDisplaySwitcherButton"]], "typhosdisplaytitle (class in typhos.display)": [[3, "typhos.display.TyphosDisplayTitle"]], "typhossuite (class in typhos)": [[3, "typhos.TyphosSuite"]], "typhostitlelabel (class in typhos.display)": [[3, "typhos.display.TyphosTitleLabel"]], "typhostoolbutton (class in typhos.display)": [[3, "typhos.display.TyphosToolButton"]], "add_device() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.add_device"]], "add_device() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.add_device"]], "add_device() (typhos.display.typhosdisplayswitcher method)": [[3, "typhos.display.TyphosDisplaySwitcher.add_device"]], "add_device() (typhos.display.typhosdisplaytitle method)": [[3, "typhos.display.TyphosDisplayTitle.add_device"]], "add_lazy_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.add_lazy_subdisplay"]], "add_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.add_subdisplay"]], "add_tool() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.add_tool"]], "copy_to_clipboard() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.copy_to_clipboard"]], "create_hide_empty_menu() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.create_hide_empty_menu"]], "create_kind_filter_menu() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.create_kind_filter_menu"]], "create_name_filter_menu() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.create_name_filter_menu"]], "current_template (typhos.typhosdevicedisplay property)": [[3, "typhos.TyphosDeviceDisplay.current_template"]], "default_tools (typhos.typhossuite attribute)": [[3, "typhos.TyphosSuite.default_tools"]], "device (typhos.typhosdevicedisplay property)": [[3, "typhos.TyphosDeviceDisplay.device"]], "device_class (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.device_class"]], "device_name (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.device_name"]], "display_type (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.display_type"]], "display_widget (typhos.typhosdevicedisplay property)": [[3, "typhos.TyphosDeviceDisplay.display_widget"]], "embed_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.embed_subdisplay"]], "force_template (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.force_template"]], "from_class() (typhos.typhosdevicedisplay class method)": [[3, "typhos.TyphosDeviceDisplay.from_class"]], "from_device() (typhos.typhosdevicedisplay class method)": [[3, "typhos.TyphosDeviceDisplay.from_device"]], "from_device() (typhos.typhossuite class method)": [[3, "typhos.TyphosSuite.from_device"]], "from_devices() (typhos.typhossuite class method)": [[3, "typhos.TyphosSuite.from_devices"]], "generate_context_menu() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.generate_context_menu"]], "generate_context_menu() (typhos.display.typhosdisplayswitcherbutton method)": [[3, "typhos.display.TyphosDisplaySwitcherButton.generate_context_menu"]], "generate_context_menu() (typhos.display.typhostoolbutton method)": [[3, "typhos.display.TyphosToolButton.generate_context_menu"]], "get_best_template() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.get_best_template"]], "get_icon() (typhos.display.typhostoolbutton class method)": [[3, "typhos.display.TyphosToolButton.get_icon"]], "get_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.get_subdisplay"]], "hideempty (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.hideEmpty"]], "hide_empty() (in module typhos.display)": [[3, "typhos.display.hide_empty"]], "hide_empty() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.hide_empty"]], "hide_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.hide_subdisplay"]], "hide_subdisplays() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.hide_subdisplays"]], "load_best_template() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.load_best_template"]], "macros (typhos.typhosdevicedisplay property)": [[3, "typhos.TyphosDeviceDisplay.macros"]], "minimumsizehint() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.minimumSizeHint"]], "mousepressevent() (typhos.display.typhostitlelabel method)": [[3, "typhos.display.TyphosTitleLabel.mousePressEvent"]], "new_jira_widget() (typhos.display.typhosdisplayswitcher method)": [[3, "typhos.display.TyphosDisplaySwitcher.new_jira_widget"]], "normalize_display_type() (in module typhos.display)": [[3, "typhos.display.normalize_display_type"]], "open_context_menu() (typhos.display.typhostoolbutton method)": [[3, "typhos.display.TyphosToolButton.open_context_menu"]], "pop_out_help() (typhos.display.typhosdisplaytitle method)": [[3, "typhos.display.TyphosDisplayTitle.pop_out_help"]], "save() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.save"]], "save_device_screenshots() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.save_device_screenshots"]], "save_screenshot() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.save_screenshot"]], "scroll_option (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.scroll_option"]], "search_for_templates() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.search_for_templates"]], "set_device_display() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.set_device_display"]], "set_device_display() (typhos.display.typhosdisplayswitcher method)": [[3, "typhos.display.TyphosDisplaySwitcher.set_device_display"]], "set_device_display() (typhos.display.typhosdisplaytitle method)": [[3, "typhos.display.TyphosDisplayTitle.set_device_display"]], "show_empty() (in module typhos.display)": [[3, "typhos.display.show_empty"]], "show_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.show_subdisplay"]], "show_switcher (typhos.display.typhosdisplaytitle attribute)": [[3, "typhos.display.TyphosDisplayTitle.show_switcher"]], "show_underline (typhos.display.typhosdisplaytitle attribute)": [[3, "typhos.display.TyphosDisplayTitle.show_underline"]], "suggest_composite_screen() (typhos.typhosdevicedisplay class method)": [[3, "typhos.TyphosDeviceDisplay.suggest_composite_screen"]], "to_image() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.to_image"]], "toggle_display() (in module typhos.display)": [[3, "typhos.display.toggle_display"]], "toggle_help() (typhos.display.typhosdisplaytitle method)": [[3, "typhos.display.TyphosDisplayTitle.toggle_help"]], "toggle_requested (typhos.display.typhostitlelabel attribute)": [[3, "typhos.display.TyphosTitleLabel.toggle_requested"]], "tools (typhos.typhossuite property)": [[3, "typhos.TyphosSuite.tools"]], "top_level_groups (typhos.typhossuite property)": [[3, "typhos.TyphosSuite.top_level_groups"]], "typhoslogdisplay (class in typhos.tools)": [[4, "typhos.tools.TyphosLogDisplay"]], "__init__() (typhos.tools.typhoslogdisplay method)": [[4, "typhos.tools.TyphosLogDisplay.__init__"]], "typhostimeplot (class in typhos.tools)": [[5, "typhos.tools.TyphosTimePlot"]], "__init__() (typhos.tools.typhostimeplot method)": [[5, "typhos.tools.TyphosTimePlot.__init__"]], "happiconnection (class in typhos.plugins)": [[7, "typhos.plugins.HappiConnection"]], "happiplugin (class in typhos.plugins)": [[7, "typhos.plugins.HappiPlugin"]], "signalconnection (class in typhos.plugins)": [[7, "typhos.plugins.SignalConnection"]], "signalplugin (class in typhos.plugins)": [[7, "typhos.plugins.SignalPlugin"]], "add_listener() (typhos.plugins.happiconnection method)": [[7, "typhos.plugins.HappiConnection.add_listener"]], "add_listener() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.add_listener"]], "cast() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.cast"]], "close() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.close"]], "find_signal() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.find_signal"]], "put_value() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.put_value"]], "register_client() (in module typhos.plugins)": [[7, "typhos.plugins.register_client"]], "register_signal() (in module typhos.plugins)": [[7, "typhos.plugins.register_signal"]], "remove_listener() (typhos.plugins.happiconnection method)": [[7, "typhos.plugins.HappiConnection.remove_listener"]], "remove_listener() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.remove_listener"]], "send_new_meta() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.send_new_meta"]], "send_new_value() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.send_new_value"]], "signal (typhos.plugins.signalconnection attribute)": [[7, "typhos.plugins.SignalConnection.signal"]], "deviceconnectionmonitorthread (class in typhos.utils)": [[16, "typhos.utils.DeviceConnectionMonitorThread"]], "frameoneditfilter (class in typhos.utils)": [[16, "typhos.utils.FrameOnEditFilter"]], "grabkinditem (class in typhos.utils)": [[16, "typhos.utils.GrabKindItem"]], "loading_timeout_ms (typhos.utils.typhosloading attribute)": [[16, "typhos.utils.TyphosLoading.LOADING_TIMEOUT_MS"]], "objectconnectionmonitorthread (class in typhos.utils)": [[16, "typhos.utils.ObjectConnectionMonitorThread"]], "threadpoolworker (class in typhos.utils)": [[16, "typhos.utils.ThreadPoolWorker"]], "typhosbase (class in typhos.utils)": [[16, "typhos.utils.TyphosBase"]], "typhosexception": [[16, "typhos.utils.TyphosException"]], "typhosloading (class in typhos.utils)": [[16, "typhos.utils.TyphosLoading"]], "weakpartialmethodslot (class in typhos.utils)": [[16, "typhos.utils.WeakPartialMethodSlot"]], "_globaldescribecache (class in typhos.cache)": [[16, "typhos.cache._GlobalDescribeCache"]], "_globaldisplaypathcache (class in typhos.cache)": [[16, "typhos.cache._GlobalDisplayPathCache"]], "_globalwidgettypecache (class in typhos.cache)": [[16, "typhos.cache._GlobalWidgetTypeCache"]], "add_path() (typhos.cache._globaldisplaypathcache method)": [[16, "typhos.cache._GlobalDisplayPathCache.add_path"]], "apply_standard_stylesheets() (in module typhos.utils)": [[16, "typhos.utils.apply_standard_stylesheets"]], "attr (typhos.utils.grabkinditem attribute)": [[16, "typhos.utils.GrabKindItem.attr"]], "cache (typhos.cache._globaldescribecache attribute)": [[16, "typhos.cache._GlobalDescribeCache.cache"]], "cache (typhos.cache._globalwidgettypecache attribute)": [[16, "typhos.cache._GlobalWidgetTypeCache.cache"]], "channel_from_signal() (in module typhos.utils)": [[16, "typhos.utils.channel_from_signal"]], "channel_name() (in module typhos.utils)": [[16, "typhos.utils.channel_name"]], "clean_attr() (in module typhos.utils)": [[16, "typhos.utils.clean_attr"]], "clean_name() (in module typhos.utils)": [[16, "typhos.utils.clean_name"]], "clear() (typhos.cache._globaldescribecache method)": [[16, "typhos.cache._GlobalDescribeCache.clear"]], "clear() (typhos.cache._globalwidgettypecache method)": [[16, "typhos.cache._GlobalWidgetTypeCache.clear"]], "clear_layout() (in module typhos.utils)": [[16, "typhos.utils.clear_layout"]], "code_from_device() (in module typhos.utils)": [[16, "typhos.utils.code_from_device"]], "code_from_device_repr() (in module typhos.utils)": [[16, "typhos.utils.code_from_device_repr"]], "component (typhos.utils.grabkinditem attribute)": [[16, "typhos.utils.GrabKindItem.component"]], "compose_stylesheets() (in module typhos.utils)": [[16, "typhos.utils.compose_stylesheets"]], "connect_thread (typhos.cache._globaldescribecache attribute)": [[16, "typhos.cache._GlobalDescribeCache.connect_thread"]], "connection_status_monitor() (in module typhos.utils)": [[16, "typhos.utils.connection_status_monitor"]], "connection_update (typhos.utils.deviceconnectionmonitorthread attribute)": [[16, "typhos.utils.DeviceConnectionMonitorThread.connection_update"]], "connection_update (typhos.utils.objectconnectionmonitorthread attribute)": [[16, "typhos.utils.ObjectConnectionMonitorThread.connection_update"]], "contextmenuevent() (typhos.utils.typhosloading method)": [[16, "typhos.utils.TyphosLoading.contextMenuEvent"]], "describe_cache (typhos.cache._globalwidgettypecache attribute)": [[16, "typhos.cache._GlobalWidgetTypeCache.describe_cache"]], "dump_grid_layout() (in module typhos.utils)": [[16, "typhos.utils.dump_grid_layout"]], "eventfilter() (typhos.utils.frameoneditfilter method)": [[16, "typhos.utils.FrameOnEditFilter.eventFilter"]], "find_file_in_paths() (in module typhos.utils)": [[16, "typhos.utils.find_file_in_paths"]], "find_parent_with_class() (in module typhos.utils)": [[16, "typhos.utils.find_parent_with_class"]], "find_root_widget() (in module typhos.utils)": [[16, "typhos.utils.find_root_widget"]], "find_templates_for_class() (in module typhos.utils)": [[16, "typhos.utils.find_templates_for_class"]], "flatten_tree() (in module typhos.utils)": [[16, "typhos.utils.flatten_tree"]], "get() (typhos.cache._globaldescribecache method)": [[16, "typhos.cache._GlobalDescribeCache.get"]], "get() (typhos.cache._globalwidgettypecache method)": [[16, "typhos.cache._GlobalWidgetTypeCache.get"]], "get_all_signals_from_device() (in module typhos.utils)": [[16, "typhos.utils.get_all_signals_from_device"]], "get_component() (in module typhos.utils)": [[16, "typhos.utils.get_component"]], "get_device_from_fake_class() (in module typhos.utils)": [[16, "typhos.utils.get_device_from_fake_class"]], "get_global_describe_cache() (in module typhos.cache)": [[16, "typhos.cache.get_global_describe_cache"]], "get_global_display_path_cache() (in module typhos.cache)": [[16, "typhos.cache.get_global_display_path_cache"]], "get_global_widget_type_cache() (in module typhos.cache)": [[16, "typhos.cache.get_global_widget_type_cache"]], "get_variety_metadata() (in module typhos.utils)": [[16, "typhos.utils.get_variety_metadata"]], "is_fake_device_class() (in module typhos.utils)": [[16, "typhos.utils.is_fake_device_class"]], "is_signal_ro() (in module typhos.utils)": [[16, "typhos.utils.is_signal_ro"]], "is_standard_template() (in module typhos.utils)": [[16, "typhos.utils.is_standard_template"]], "link_signal_to_widget() (in module typhos.utils)": [[16, "typhos.utils.link_signal_to_widget"]], "linked_attribute() (in module typhos.utils)": [[16, "typhos.utils.linked_attribute"]], "load_suite() (in module typhos.utils)": [[16, "typhos.utils.load_suite"]], "load_ui_file() (in module typhos.utils)": [[16, "typhos.utils.load_ui_file"]], "make_identifier() (in module typhos.utils)": [[16, "typhos.utils.make_identifier"]], "no_device_lazy_load() (in module typhos.utils)": [[16, "typhos.utils.no_device_lazy_load"]], "nullcontext() (in module typhos.utils)": [[16, "typhos.utils.nullcontext"]], "patch_connect_slots() (in module typhos.utils)": [[16, "typhos.utils.patch_connect_slots"]], "pyqt_class_from_enum() (in module typhos.utils)": [[16, "typhos.utils.pyqt_class_from_enum"]], "raise_window() (in module typhos.utils)": [[16, "typhos.utils.raise_window"]], "random_color() (in module typhos.utils)": [[16, "typhos.utils.random_color"]], "reload_widget_stylesheet() (in module typhos.utils)": [[16, "typhos.utils.reload_widget_stylesheet"]], "remove_duplicate_items() (in module typhos.utils)": [[16, "typhos.utils.remove_duplicate_items"]], "run() (typhos.utils.deviceconnectionmonitorthread method)": [[16, "typhos.utils.DeviceConnectionMonitorThread.run"]], "run() (typhos.utils.objectconnectionmonitorthread method)": [[16, "typhos.utils.ObjectConnectionMonitorThread.run"]], "run() (typhos.utils.threadpoolworker method)": [[16, "typhos.utils.ThreadPoolWorker.run"]], "save_suite() (in module typhos.utils)": [[16, "typhos.utils.save_suite"]], "set_edit_style() (typhos.utils.frameoneditfilter static method)": [[16, "typhos.utils.FrameOnEditFilter.set_edit_style"]], "set_no_edit_style() (typhos.utils.frameoneditfilter static method)": [[16, "typhos.utils.FrameOnEditFilter.set_no_edit_style"]], "signal (typhos.utils.grabkinditem attribute)": [[16, "typhos.utils.GrabKindItem.signal"]], "stop() (typhos.utils.deviceconnectionmonitorthread method)": [[16, "typhos.utils.DeviceConnectionMonitorThread.stop"]], "stop() (typhos.utils.objectconnectionmonitorthread method)": [[16, "typhos.utils.ObjectConnectionMonitorThread.stop"]], "subscription_context() (in module typhos.utils)": [[16, "typhos.utils.subscription_context"]], "subscription_context_device() (in module typhos.utils)": [[16, "typhos.utils.subscription_context_device"]], "take_top_level_widget_screenshots() (in module typhos.utils)": [[16, "typhos.utils.take_top_level_widget_screenshots"]], "take_widget_screenshot() (in module typhos.utils)": [[16, "typhos.utils.take_widget_screenshot"]], "typhos.utils": [[16, "module-typhos.utils"]], "update() (typhos.cache._globaldisplaypathcache method)": [[16, "typhos.cache._GlobalDisplayPathCache.update"]], "use_stylesheet() (in module typhos.utils)": [[16, "typhos.utils.use_stylesheet"]], "widget_to_image() (in module typhos.utils)": [[16, "typhos.utils.widget_to_image"]], "col_label (typhos.panel.compositesignalpanel attribute)": [[17, "typhos.panel.CompositeSignalPanel.COL_LABEL"]], "col_label (typhos.panel.signalpanel attribute)": [[17, "typhos.panel.SignalPanel.COL_LABEL"]], "col_readback (typhos.panel.compositesignalpanel attribute)": [[17, "typhos.panel.CompositeSignalPanel.COL_READBACK"]], "col_readback (typhos.panel.signalpanel attribute)": [[17, "typhos.panel.SignalPanel.COL_READBACK"]], "col_setpoint (typhos.panel.compositesignalpanel attribute)": [[17, "typhos.panel.CompositeSignalPanel.COL_SETPOINT"]], "col_setpoint (typhos.panel.signalpanel attribute)": [[17, "typhos.panel.SignalPanel.COL_SETPOINT"]], "clickablebitindicator (class in typhos.widgets)": [[17, "typhos.widgets.ClickableBitIndicator"]], "compositesignalpanel (class in typhos.panel)": [[17, "typhos.panel.CompositeSignalPanel"]], "functionpanel (class in typhos.func)": [[17, "typhos.func.FunctionPanel"]], "imagedialogbutton (class in typhos.widgets)": [[17, "typhos.widgets.ImageDialogButton"]], "num_cols (typhos.panel.compositesignalpanel attribute)": [[17, "typhos.panel.CompositeSignalPanel.NUM_COLS"]], "num_cols (typhos.panel.signalpanel attribute)": [[17, "typhos.panel.SignalPanel.NUM_COLS"]], "signaldialogbutton (class in typhos.widgets)": [[17, "typhos.widgets.SignalDialogButton"]], "signalpanel (class in typhos.panel)": [[17, "typhos.panel.SignalPanel"]], "signalwidgetinfo (class in typhos.widgets)": [[17, "typhos.widgets.SignalWidgetInfo"]], "subdisplay (class in typhos.widgets)": [[17, "typhos.widgets.SubDisplay"]], "typhosarraytable (class in typhos.widgets)": [[17, "typhos.widgets.TyphosArrayTable"]], "typhosbyteindicator (class in typhos.widgets)": [[17, "typhos.widgets.TyphosByteIndicator"]], "typhosbytesetpoint (class in typhos.widgets)": [[17, "typhos.widgets.TyphosByteSetpoint"]], "typhoscombobox (class in typhos.widgets)": [[17, "typhos.widgets.TyphosComboBox"]], "typhoscommandbutton (class in typhos.widgets)": [[17, "typhos.widgets.TyphosCommandButton"]], "typhoscommandenumbutton (class in typhos.widgets)": [[17, "typhos.widgets.TyphosCommandEnumButton"]], "typhoscompositesignalpanel (class in typhos)": [[17, "typhos.TyphosCompositeSignalPanel"]], "typhosdesignermixin (class in typhos.widgets)": [[17, "typhos.widgets.TyphosDesignerMixin"]], "typhoslabel (class in typhos.widgets)": [[17, "typhos.widgets.TyphosLabel"]], "typhoslineedit (class in typhos.widgets)": [[17, "typhos.widgets.TyphosLineEdit"]], "typhosmethodbutton (class in typhos)": [[17, "typhos.TyphosMethodButton"]], "typhospositionerwidget (class in typhos)": [[17, "typhos.TyphosPositionerWidget"]], "typhospositionerwidget.kindlevel (class in typhos)": [[17, "typhos.TyphosPositionerWidget.KindLevel"]], "typhosscalarrange (class in typhos.widgets)": [[17, "typhos.widgets.TyphosScalarRange"]], "typhossidebaritem (class in typhos.widgets)": [[17, "typhos.widgets.TyphosSidebarItem"]], "typhossignalpanel (class in typhos)": [[17, "typhos.TyphosSignalPanel"]], "typhossignalpanel.signalorder (class in typhos)": [[17, "typhos.TyphosSignalPanel.SignalOrder"]], "typhostextedit (class in typhos.textedit)": [[17, "typhos.textedit.TyphosTextEdit"]], "typhostweakable (class in typhos.tweakable)": [[17, "typhos.tweakable.TyphosTweakable"]], "waveformdialogbutton (class in typhos.widgets)": [[17, "typhos.widgets.WaveformDialogButton"]], "acceleration_attribute (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.acceleration_attribute"]], "add_device() (typhos.typhosmethodbutton method)": [[17, "typhos.TyphosMethodButton.add_device"]], "add_device() (typhos.typhospositionerwidget method)": [[17, "typhos.TyphosPositionerWidget.add_device"]], "add_device() (typhos.typhossignalpanel method)": [[17, "typhos.TyphosSignalPanel.add_device"]], "add_device() (typhos.panel.compositesignalpanel method)": [[17, "typhos.panel.CompositeSignalPanel.add_device"]], "add_device() (typhos.panel.signalpanel method)": [[17, "typhos.panel.SignalPanel.add_device"]], "add_method() (typhos.func.functionpanel method)": [[17, "typhos.func.FunctionPanel.add_method"]], "add_pv() (typhos.panel.signalpanel method)": [[17, "typhos.panel.SignalPanel.add_pv"]], "add_row() (typhos.panel.signalpanel method)": [[17, "typhos.panel.SignalPanel.add_row"]], "add_signal() (typhos.panel.signalpanel method)": [[17, "typhos.panel.SignalPanel.add_signal"]], "add_sub_device() (typhos.panel.compositesignalpanel method)": [[17, "typhos.panel.CompositeSignalPanel.add_sub_device"]], "alarmsensitiveborder (typhos.widgets.typhosdesignermixin attribute)": [[17, "typhos.widgets.TyphosDesignerMixin.alarmSensitiveBorder"]], "alarmsensitivecontent (typhos.widgets.typhosdesignermixin attribute)": [[17, "typhos.widgets.TyphosDesignerMixin.alarmSensitiveContent"]], "all_linked_attributes (typhos.typhospositionerwidget property)": [[17, "typhos.TyphosPositionerWidget.all_linked_attributes"]], "all_linked_signals (typhos.typhospositionerwidget property)": [[17, "typhos.TyphosPositionerWidget.all_linked_signals"]], "channel (typhos.widgets.typhosdesignermixin attribute)": [[17, "typhos.widgets.TyphosDesignerMixin.channel"]], "clear() (typhos.panel.signalpanel method)": [[17, "typhos.panel.SignalPanel.clear"]], "clear_error() (typhos.typhospositionerwidget method)": [[17, "typhos.TyphosPositionerWidget.clear_error"]], "closeevent() (typhos.widgets.subdisplay method)": [[17, "typhos.widgets.SubDisplay.closeEvent"]], "connection_changed() (typhos.widgets.typhosscalarrange method)": [[17, "typhos.widgets.TyphosScalarRange.connection_changed"]], "create_signal_widget() (in module typhos.widgets)": [[17, "typhos.widgets.create_signal_widget"]], "delta_signal (typhos.widgets.typhosscalarrange property)": [[17, "typhos.widgets.TyphosScalarRange.delta_signal"]], "delta_value (typhos.widgets.typhosscalarrange attribute)": [[17, "typhos.widgets.TyphosScalarRange.delta_value"]], "determine_widget_type() (in module typhos.widgets)": [[17, "typhos.widgets.determine_widget_type"]], "device (typhos.typhospositionerwidget property)": [[17, "typhos.TyphosPositionerWidget.device"]], "dynamic_font_size (typhos.widgets.typhoslabel attribute)": [[17, "typhos.widgets.TyphosLabel.dynamic_font_size"]], "embed_requested() (typhos.widgets.typhossidebaritem method)": [[17, "typhos.widgets.TyphosSidebarItem.embed_requested"]], "enum_strings_changed() (typhos.widgets.typhoscombobox method)": [[17, "typhos.widgets.TyphosComboBox.enum_strings_changed"]], "enum_strings_changed() (typhos.widgets.typhoscommandbutton method)": [[17, "typhos.widgets.TyphosCommandButton.enum_strings_changed"]], "enum_strings_changed() (typhos.widgets.typhoscommandenumbutton method)": [[17, "typhos.widgets.TyphosCommandEnumButton.enum_strings_changed"]], "enum_strings_changed() (typhos.widgets.typhoslabel method)": [[17, "typhos.widgets.TyphosLabel.enum_strings_changed"]], "error_message_attribute (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.error_message_attribute"]], "execute() (typhos.typhosmethodbutton method)": [[17, "typhos.TyphosMethodButton.execute"]], "failed_move (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.failed_move"]], "filter_settings (typhos.typhossignalpanel property)": [[17, "typhos.TyphosSignalPanel.filter_settings"]], "filter_signals() (typhos.panel.signalpanel method)": [[17, "typhos.panel.SignalPanel.filter_signals"]], "from_device() (typhos.typhosmethodbutton class method)": [[17, "typhos.TyphosMethodButton.from_device"]], "from_signal() (typhos.widgets.signalwidgetinfo class method)": [[17, "typhos.widgets.SignalWidgetInfo.from_signal"]], "generate_context_menu() (typhos.typhossignalpanel method)": [[17, "typhos.TyphosSignalPanel.generate_context_menu"]], "hide_requested() (typhos.widgets.typhossidebaritem method)": [[17, "typhos.widgets.TyphosSidebarItem.hide_requested"]], "high_limit_switch_attribute (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.high_limit_switch_attribute"]], "high_limit_travel_attribute (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.high_limit_travel_attribute"]], "icon (typhos.widgets.signaldialogbutton attribute)": [[17, "typhos.widgets.SignalDialogButton.icon"]], "label_text_from_attribute() (typhos.panel.compositesignalpanel method)": [[17, "typhos.panel.CompositeSignalPanel.label_text_from_attribute"]], "label_text_from_attribute() (typhos.panel.signalpanel method)": [[17, "typhos.panel.SignalPanel.label_text_from_attribute"]], "loading_complete (typhos.panel.compositesignalpanel attribute)": [[17, "typhos.panel.CompositeSignalPanel.loading_complete"]], "loading_complete (typhos.panel.signalpanel attribute)": [[17, "typhos.panel.SignalPanel.loading_complete"]], "low_limit_switch_attribute (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.low_limit_switch_attribute"]], "low_limit_travel_attribute (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.low_limit_travel_attribute"]], "method_name (typhos.typhosmethodbutton attribute)": [[17, "typhos.TyphosMethodButton.method_name"]], "mousepressevent() (typhos.widgets.clickablebitindicator method)": [[17, "typhos.widgets.ClickableBitIndicator.mousePressEvent"]], "move_changed() (typhos.typhospositionerwidget method)": [[17, "typhos.TyphosPositionerWidget.move_changed"]], "moving (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.moving"]], "moving_attribute (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.moving_attribute"]], "namefilter (typhos.typhossignalpanel attribute)": [[17, "typhos.TyphosSignalPanel.nameFilter"]], "negative_tweak() (typhos.typhospositionerwidget method)": [[17, "typhos.TyphosPositionerWidget.negative_tweak"]], "negative_tweak() (typhos.tweakable.typhostweakable method)": [[17, "typhos.tweakable.TyphosTweakable.negative_tweak"]], "numbits (typhos.widgets.typhosbytesetpoint attribute)": [[17, "typhos.widgets.TyphosByteSetpoint.numBits"]], "omitnames (typhos.typhossignalpanel attribute)": [[17, "typhos.TyphosSignalPanel.omitNames"]], "open_context_menu() (typhos.typhossignalpanel method)": [[17, "typhos.TyphosSignalPanel.open_context_menu"]], "open_requested() (typhos.widgets.typhossidebaritem method)": [[17, "typhos.widgets.TyphosSidebarItem.open_requested"]], "parent_widget_class (typhos.widgets.imagedialogbutton attribute)": [[17, "typhos.widgets.ImageDialogButton.parent_widget_class"]], "parent_widget_class (typhos.widgets.signaldialogbutton attribute)": [[17, "typhos.widgets.SignalDialogButton.parent_widget_class"]], "parent_widget_class (typhos.widgets.waveformdialogbutton attribute)": [[17, "typhos.widgets.WaveformDialogButton.parent_widget_class"]], "positive_tweak() (typhos.typhospositionerwidget method)": [[17, "typhos.TyphosPositionerWidget.positive_tweak"]], "positive_tweak() (typhos.tweakable.typhostweakable method)": [[17, "typhos.tweakable.TyphosTweakable.positive_tweak"]], "readback_attribute (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.readback_attribute"]], "row_count (typhos.panel.signalpanel property)": [[17, "typhos.panel.SignalPanel.row_count"]], "send_value() (typhos.textedit.typhostextedit method)": [[17, "typhos.textedit.TyphosTextEdit.send_value"]], "send_value() (typhos.widgets.typhoslineedit method)": [[17, "typhos.widgets.TyphosLineEdit.send_value"]], "set() (typhos.typhospositionerwidget method)": [[17, "typhos.TyphosPositionerWidget.set"]], "set_device_display() (typhos.typhossignalpanel method)": [[17, "typhos.TyphosSignalPanel.set_device_display"]], "set_display() (typhos.textedit.typhostextedit method)": [[17, "typhos.textedit.TyphosTextEdit.set_display"]], "setpointhistorycount (typhos.widgets.typhoslineedit attribute)": [[17, "typhos.widgets.TyphosLineEdit.setpointHistoryCount"]], "setpoint_attribute (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.setpoint_attribute"]], "setpoint_history (typhos.widgets.typhoslineedit property)": [[17, "typhos.widgets.TyphosLineEdit.setpoint_history"]], "showconfig (typhos.typhossignalpanel attribute)": [[17, "typhos.TyphosSignalPanel.showConfig"]], "showhints (typhos.typhossignalpanel attribute)": [[17, "typhos.TyphosSignalPanel.showHints"]], "shownames (typhos.typhossignalpanel attribute)": [[17, "typhos.TyphosSignalPanel.showNames"]], "shownormal (typhos.typhossignalpanel attribute)": [[17, "typhos.TyphosSignalPanel.showNormal"]], "showomitted (typhos.typhossignalpanel attribute)": [[17, "typhos.TyphosSignalPanel.showOmitted"]], "show_dialog() (typhos.widgets.signaldialogbutton method)": [[17, "typhos.widgets.SignalDialogButton.show_dialog"]], "show_expert_button (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.show_expert_button"]], "show_kinds (typhos.typhossignalpanel property)": [[17, "typhos.TyphosSignalPanel.show_kinds"]], "show_ui_type_hints() (typhos.typhospositionerwidget method)": [[17, "typhos.TyphosPositionerWidget.show_ui_type_hints"]], "signals (typhos.panel.signalpanel property)": [[17, "typhos.panel.SignalPanel.signals"]], "sortby (typhos.typhossignalpanel attribute)": [[17, "typhos.TyphosSignalPanel.sortBy"]], "stop() (typhos.typhospositionerwidget method)": [[17, "typhos.TyphosPositionerWidget.stop"]], "successful_move (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.successful_move"]], "text (typhos.widgets.signaldialogbutton attribute)": [[17, "typhos.widgets.SignalDialogButton.text"]], "treewidgetchanged() (typhos.widgets.typhossidebaritem method)": [[17, "typhos.widgets.TyphosSidebarItem.treeWidgetChanged"]], "tweak() (typhos.typhospositionerwidget method)": [[17, "typhos.TyphosPositionerWidget.tweak"]], "tweak() (typhos.tweakable.typhostweakable method)": [[17, "typhos.tweakable.TyphosTweakable.tweak"]], "unit_changed() (typhos.widgets.typhoslabel method)": [[17, "typhos.widgets.TyphosLabel.unit_changed"]], "unit_changed() (typhos.widgets.typhoslineedit method)": [[17, "typhos.widgets.TyphosLineEdit.unit_changed"]], "update_alarm_text() (typhos.typhospositionerwidget method)": [[17, "typhos.TyphosPositionerWidget.update_alarm_text"]], "use_status (typhos.typhosmethodbutton attribute)": [[17, "typhos.TyphosMethodButton.use_status"]], "value_changed() (typhos.textedit.typhostextedit method)": [[17, "typhos.textedit.TyphosTextEdit.value_changed"]], "value_changed() (typhos.widgets.typhosarraytable method)": [[17, "typhos.widgets.TyphosArrayTable.value_changed"]], "value_changed() (typhos.widgets.typhosbytesetpoint method)": [[17, "typhos.widgets.TyphosByteSetpoint.value_changed"]], "variety_metadata (typhos.textedit.typhostextedit property)": [[17, "typhos.textedit.TyphosTextEdit.variety_metadata"]], "variety_metadata (typhos.tweakable.typhostweakable property)": [[17, "typhos.tweakable.TyphosTweakable.variety_metadata"]], "variety_metadata (typhos.widgets.typhosarraytable property)": [[17, "typhos.widgets.TyphosArrayTable.variety_metadata"]], "variety_metadata (typhos.widgets.typhosbyteindicator property)": [[17, "typhos.widgets.TyphosByteIndicator.variety_metadata"]], "variety_metadata (typhos.widgets.typhoscommandbutton property)": [[17, "typhos.widgets.TyphosCommandButton.variety_metadata"]], "variety_metadata (typhos.widgets.typhoscommandenumbutton property)": [[17, "typhos.widgets.TyphosCommandEnumButton.variety_metadata"]], "variety_metadata (typhos.widgets.typhosscalarrange property)": [[17, "typhos.widgets.TyphosScalarRange.variety_metadata"]], "velocity_attribute (typhos.typhospositionerwidget attribute)": [[17, "typhos.TyphosPositionerWidget.velocity_attribute"]], "visible_elements (typhos.panel.compositesignalpanel property)": [[17, "typhos.panel.CompositeSignalPanel.visible_elements"]], "visible_elements (typhos.panel.signalpanel property)": [[17, "typhos.panel.SignalPanel.visible_elements"]], "visible_signals (typhos.panel.signalpanel property)": [[17, "typhos.panel.SignalPanel.visible_signals"]], "wheelevent() (typhos.widgets.typhoscombobox method)": [[17, "typhos.widgets.TyphosComboBox.wheelEvent"]], "widget() (typhos.widgets.imagedialogbutton method)": [[17, "typhos.widgets.ImageDialogButton.widget"]], "widget() (typhos.widgets.signaldialogbutton method)": [[17, "typhos.widgets.SignalDialogButton.widget"]], "widget() (typhos.widgets.waveformdialogbutton method)": [[17, "typhos.widgets.WaveformDialogButton.widget"]], "widget_ctx_menu() (typhos.widgets.typhoslineedit method)": [[17, "typhos.widgets.TyphosLineEdit.widget_ctx_menu"]], "widget_type_from_description() (in module typhos.widgets)": [[17, "typhos.widgets.widget_type_from_description"]], "write_access_changed() (typhos.textedit.typhostextedit method)": [[17, "typhos.textedit.TyphosTextEdit.write_access_changed"]]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"604 perf_resize_text": [[15, "perf-resize-text"]], "606 enh_wait_status": [[16, "enh-wait-status"]], "607 tst_fix_ci_saga": [[17, "tst-fix-ci-saga"]], "611 enh_positioner_resizing": [[18, "enh-positioner-resizing"]], "615 maint_fix_ci": [[19, "maint-fix-ci"]], "616 fix_enum_handling": [[20, "fix-enum-handling"]], "618 bld_jinja_bump": [[21, "bld-jinja-bump"]], "API Breaks": [[9, "api-breaks"], [9, "id43"], [15, "api-breaks"], [16, "api-breaks"], [17, "api-breaks"], [18, "api-breaks"], [19, "api-breaks"], [20, "api-breaks"], [21, "api-breaks"], [22, "api-breaks"], [23, "api-breaks"]], "API Changes": [[9, "api-changes"]], "Adding Methods": [[8, "adding-methods"]], "Application Connections": [[2, "application-connections"]], "Basic Signal Panels": [[25, "basic-signal-panels"]], "Bug Fixes": [[9, "bug-fixes"]], "Bugfixes": [[9, "bugfixes"], [9, "id4"], [9, "id11"], [15, "bugfixes"], [16, "bugfixes"], [17, "bugfixes"], [18, "bugfixes"], [19, "bugfixes"], [20, "bugfixes"], [21, "bugfixes"], [22, "bugfixes"], [23, "bugfixes"]], "Cache Utilities": [[24, "cache-utilities"]], "Command Line Utilities": [[1, "module-typhos.cli"]], "Compatibility": [[9, "compatibility"]], "Compatibility / Fixes": [[9, "compatibility-fixes"], [9, "id47"], [9, "id49"], [9, "id51"], [9, "id53"], [9, "id57"], [9, "id59"]], "Compatibility / fixes": [[9, "id62"], [9, "id66"], [9, "id69"], [9, "id72"]], "Composite Signal Panels": [[25, "composite-signal-panels"]], "Contributors": [[9, "contributors"], [9, "id1"], [9, "id3"], [9, "id6"], [9, "id9"], [9, "id13"], [9, "id17"], [9, "id21"], [15, "contributors"], [16, "contributors"], [17, "contributors"], [18, "contributors"], [19, "contributors"], [20, "contributors"], [21, "contributors"], [22, "contributors"], [23, "contributors"]], "Custom Templates": [[11, "custom-templates"]], "Dependencies": [[9, "dependencies"]], "Deprecations": [[9, "deprecations"], [9, "id79"]], "Description": [[9, "description"], [9, "id7"], [9, "id10"], [9, "id14"], [9, "id18"], [9, "id22"], [9, "id25"], [9, "id27"], [9, "id34"], [9, "id42"], [9, "id45"], [9, "id48"], [9, "id50"], [9, "id52"], [9, "id54"], [9, "id56"], [9, "id58"], [9, "id60"], [9, "id64"], [9, "id67"], [9, "id70"], [9, "id73"], [9, "id74"], [9, "id75"], [9, "id77"]], "Designer": [[25, "designer"]], "Determining widget types": [[25, "determining-widget-types"]], "Display Signals": [[0, "display-signals"]], "Docs / Testing": [[9, "docs-testing"], [9, "id63"]], "Enhancements": [[9, "enhancements"], [9, "id78"]], "Enhancements / What\u2019s New": [[9, "id44"], [9, "id46"], [9, "id55"], [9, "id61"], [9, "id65"], [9, "id68"], [9, "id71"]], "Enhancements / What\u2019s new": [[9, "enhancements-what-s-new"], [9, "id35"]], "Features": [[9, "features"], [9, "id2"], [9, "id8"], [9, "id23"], [9, "id80"], [15, "features"], [16, "features"], [17, "features"], [18, "features"], [19, "features"], [20, "features"], [21, "features"], [22, "features"], [23, "features"]], "Filling Templates": [[0, "filling-templates"]], "Fixes": [[9, "fixes"], [9, "id15"], [9, "id19"], [9, "id24"], [9, "id26"], [9, "id29"], [9, "id37"]], "Functions and Methods": [[25, "functions-and-methods"]], "Happi Plugin": [[2, "happi-plugin"]], "HappiPlugin": [[7, "happiplugin"]], "How it Works": [[0, "how-it-works"]], "Including Python Code": [[8, "including-python-code"]], "Inclusion of Metadata": [[2, "inclusion-of-metadata"]], "Interpreting a Device": [[0, "interpreting-a-device"]], "IssueNumber Title": [[22, "issuenumber-title"], [23, "issuenumber-title"]], "Launching the Examples": [[0, "launching-the-examples"]], "Local vs Cloud": [[13, "local-vs-cloud"]], "Maintenance": [[9, "maintenance"], [9, "id5"], [9, "id12"], [9, "id16"], [9, "id20"], [9, "id33"], [9, "id39"], [9, "id76"], [15, "maintenance"], [16, "maintenance"], [17, "maintenance"], [18, "maintenance"], [19, "maintenance"], [20, "maintenance"], [21, "maintenance"], [22, "maintenance"], [23, "maintenance"]], "Miscellaneous": [[25, "miscellaneous"]], "Ophyd Object Description Caching": [[24, "ophyd-object-description-caching"]], "Ophyd Object to Widget Type Cache": [[24, "ophyd-object-to-widget-type-cache"]], "Ophyd Signals": [[2, "ophyd-signals"]], "Panels": [[25, "panels"]], "Path caching": [[24, "path-caching"]], "Related Projects": [[6, "related-projects"]], "Release History": [[9, "release-history"]], "Saving and Loading": [[10, "saving-and-loading"]], "SignalPlugin": [[7, "signalplugin"]], "Signals of Devices": [[0, "signals-of-devices"]], "Standardized Display Title": [[3, "standardized-display-title"]], "Suite and Displays": [[3, "suite-and-displays"]], "Supported Tools": [[12, "supported-tools"]], "Template Creation": [[11, "template-creation"]], "Template Discovery": [[11, "template-discovery"]], "Template Filenames": [[11, "template-filenames"]], "Template Substitutions": [[11, "template-substitutions"]], "The TyphosSuite": [[0, "the-typhossuite"]], "Things to Know for Test Writers": [[13, "things-to-know-for-test-writers"]], "Tool Classes": [[12, "tool-classes"]], "Tool buttons": [[3, "tool-buttons"]], "Typhos": [[6, "typhos"]], "Typhos Data Plugins for PyDM": [[7, "typhos-data-plugins-for-pydm"]], "TyphosDeviceDisplay": [[3, "typhosdevicedisplay"]], "TyphosPositionerWidget": [[25, "typhospositionerwidget"]], "TyphosSuite": [[3, "typhossuite"]], "Unit Test Quirks": [[13, "unit-test-quirks"]], "Upcoming Changes": [[14, "upcoming-changes"]], "Using Happi": [[0, "using-happi"]], "Using the Documentation Widget": [[0, "using-the-documentation-widget"]], "Using the Jira Bug Reporting Widget": [[0, "using-the-jira-bug-reporting-widget"]], "Using the StyleSheet": [[0, "using-the-stylesheet"]], "Utilities": [[3, "utilities"]], "Utility Functions": [[24, "module-typhos.utils"]], "What\u2019s New": [[9, "whats-new"]], "Widgets": [[25, "widgets"]], "typhos.tools.TyphosLogDisplay": [[4, "typhos-tools-typhoslogdisplay"]], "typhos.tools.TyphosTimePlot": [[5, "typhos-tools-typhostimeplot"]], "v0.1.0 (2017-12-15)": [[9, "v0-1-0-2017-12-15"]], "v0.2.0 (2018-06-27)": [[9, "v0-2-0-2018-06-27"]], "v0.2.1 (2018-09-28)": [[9, "v0-2-1-2018-09-28"]], "v0.5.0 (2019-09-18)": [[9, "v0-5-0-2019-09-18"]], "v0.6.0 (2020-01-09)": [[9, "v0-6-0-2020-01-09"]], "v0.7.0 (2020-03-09)": [[9, "v0-7-0-2020-03-09"]], "v1.0.0 (2020-05-18)": [[9, "v1-0-0-2020-05-18"]], "v1.0.1 (2020-05-20)": [[9, "v1-0-1-2020-05-20"]], "v1.0.2 (2020-07-01)": [[9, "v1-0-2-2020-07-01"]], "v1.1.0 (2020-08-18)": [[9, "v1-1-0-2020-08-18"]], "v1.1.1 (2020-08-19)": [[9, "v1-1-1-2020-08-19"]], "v1.1.2 (2020-12-22)": [[9, "v1-1-2-2020-12-22"]], "v1.1.3 (2020-02-10)": [[9, "v1-1-3-2020-02-10"]], "v1.1.4 (2020-02-26)": [[9, "v1-1-4-2020-02-26"]], "v1.1.5 (2020-04-02)": [[9, "v1-1-5-2020-04-02"]], "v1.1.6 (2021-04-05)": [[9, "v1-1-6-2021-04-05"]], "v1.2.0 (2021-07-09)": [[9, "v1-2-0-2021-07-09"]], "v2.0.0 (2021-08-05)": [[9, "v2-0-0-2021-08-05"]], "v2.1.0 (2021-10-18)": [[9, "v2-1-0-2021-10-18"]], "v2.2.0 (2021-11-30)": [[9, "v2-2-0-2021-11-30"]], "v2.2.1 (2022-02-07)": [[9, "v2-2-1-2022-02-07"]], "v2.3.0 (2022-03-31)": [[9, "v2-3-0-2022-03-31"]], "v2.3.1 (2022-05-02)": [[9, "v2-3-1-2022-05-02"]], "v2.3.2 (2022-07-28)": [[9, "v2-3-2-2022-07-28"]], "v2.3.3 (2022-10-20)": [[9, "v2-3-3-2022-10-20"]], "v2.4.0 (2022-11-4)": [[9, "v2-4-0-2022-11-4"]], "v2.4.1 (2023-4-4)": [[9, "v2-4-1-2023-4-4"]], "v3.0.0 (2023-09-27)": [[9, "v3-0-0-2023-09-27"]], "v3.1.0 (2023-12-05)": [[9, "v3-1-0-2023-12-05"]], "v3.1.1 (2024-04-12)": [[9, "v3-1-1-2024-04-12"]]}, "docnames": ["basic_usage", "cli", "connections", "display", "generated/typhos.tools.TyphosLogDisplay", "generated/typhos.tools.TyphosTimePlot", "index", "plugins", "python_methods", "release_notes", "save", "templates", "tools", "unit_tests", "upcoming_changes", "upcoming_release_notes/604-perf_resize_text", "upcoming_release_notes/606-enh_wait_status", "upcoming_release_notes/607-tst_fix_ci_saga", "upcoming_release_notes/611-enh_positioner_resizing", "upcoming_release_notes/615-maint_fix_ci", "upcoming_release_notes/616-fix_enum_handling", "upcoming_release_notes/618-bld_jinja_bump", "upcoming_release_notes/template-full", "upcoming_release_notes/template-short", "utils", "widgets"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1}, "filenames": ["basic_usage.rst", "cli.rst", "connections.rst", "display.rst", "generated/typhos.tools.TyphosLogDisplay.rst", "generated/typhos.tools.TyphosTimePlot.rst", "index.rst", "plugins.rst", "python_methods.rst", "release_notes.rst", "save.rst", "templates.rst", "tools.rst", "unit_tests.rst", "upcoming_changes.rst", "upcoming_release_notes/604-perf_resize_text.rst", "upcoming_release_notes/606-enh_wait_status.rst", "upcoming_release_notes/607-tst_fix_ci_saga.rst", "upcoming_release_notes/611-enh_positioner_resizing.rst", "upcoming_release_notes/615-maint_fix_ci.rst", "upcoming_release_notes/616-fix_enum_handling.rst", "upcoming_release_notes/618-bld_jinja_bump.rst", "upcoming_release_notes/template-full.rst", "upcoming_release_notes/template-short.rst", "utils.rst", "widgets.rst"], "indexentries": {"__init__() (typhos.tools.typhoslogdisplay method)": [[4, "typhos.tools.TyphosLogDisplay.__init__", false]], "__init__() (typhos.tools.typhostimeplot method)": [[5, "typhos.tools.TyphosTimePlot.__init__", false]], "_globaldescribecache (class in typhos.cache)": [[24, "typhos.cache._GlobalDescribeCache", false]], "_globaldisplaypathcache (class in typhos.cache)": [[24, "typhos.cache._GlobalDisplayPathCache", false]], "_globalwidgettypecache (class in typhos.cache)": [[24, "typhos.cache._GlobalWidgetTypeCache", false]], "acceleration_attribute (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.acceleration_attribute", false]], "add_device() (typhos.display.typhosdisplayswitcher method)": [[3, "typhos.display.TyphosDisplaySwitcher.add_device", false]], "add_device() (typhos.display.typhosdisplaytitle method)": [[3, "typhos.display.TyphosDisplayTitle.add_device", false]], "add_device() (typhos.panel.compositesignalpanel method)": [[25, "typhos.panel.CompositeSignalPanel.add_device", false]], "add_device() (typhos.panel.signalpanel method)": [[25, "typhos.panel.SignalPanel.add_device", false]], "add_device() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.add_device", false]], "add_device() (typhos.typhosmethodbutton method)": [[25, "typhos.TyphosMethodButton.add_device", false]], "add_device() (typhos.typhospositionerwidget method)": [[25, "typhos.TyphosPositionerWidget.add_device", false]], "add_device() (typhos.typhossignalpanel method)": [[25, "typhos.TyphosSignalPanel.add_device", false]], "add_device() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.add_device", false]], "add_lazy_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.add_lazy_subdisplay", false]], "add_listener() (typhos.plugins.happiconnection method)": [[7, "typhos.plugins.HappiConnection.add_listener", false]], "add_listener() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.add_listener", false]], "add_method() (typhos.func.functionpanel method)": [[25, "typhos.func.FunctionPanel.add_method", false]], "add_path() (typhos.cache._globaldisplaypathcache method)": [[24, "typhos.cache._GlobalDisplayPathCache.add_path", false]], "add_pv() (typhos.panel.signalpanel method)": [[25, "typhos.panel.SignalPanel.add_pv", false]], "add_row() (typhos.panel.signalpanel method)": [[25, "typhos.panel.SignalPanel.add_row", false]], "add_signal() (typhos.panel.signalpanel method)": [[25, "typhos.panel.SignalPanel.add_signal", false]], "add_sub_device() (typhos.panel.compositesignalpanel method)": [[25, "typhos.panel.CompositeSignalPanel.add_sub_device", false]], "add_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.add_subdisplay", false]], "add_tool() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.add_tool", false]], "alarmsensitiveborder (typhos.widgets.typhosdesignermixin attribute)": [[25, "typhos.widgets.TyphosDesignerMixin.alarmSensitiveBorder", false]], "alarmsensitivecontent (typhos.widgets.typhosdesignermixin attribute)": [[25, "typhos.widgets.TyphosDesignerMixin.alarmSensitiveContent", false]], "all_linked_attributes (typhos.typhospositionerwidget property)": [[25, "typhos.TyphosPositionerWidget.all_linked_attributes", false]], "all_linked_signals (typhos.typhospositionerwidget property)": [[25, "typhos.TyphosPositionerWidget.all_linked_signals", false]], "apply_standard_stylesheets() (in module typhos.utils)": [[24, "typhos.utils.apply_standard_stylesheets", false]], "attr (typhos.utils.grabkinditem attribute)": [[24, "typhos.utils.GrabKindItem.attr", false]], "cache (typhos.cache._globaldescribecache attribute)": [[24, "typhos.cache._GlobalDescribeCache.cache", false]], "cache (typhos.cache._globalwidgettypecache attribute)": [[24, "typhos.cache._GlobalWidgetTypeCache.cache", false]], "cast() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.cast", false]], "channel (typhos.widgets.typhosdesignermixin attribute)": [[25, "typhos.widgets.TyphosDesignerMixin.channel", false]], "channel_from_signal() (in module typhos.utils)": [[24, "typhos.utils.channel_from_signal", false]], "channel_name() (in module typhos.utils)": [[24, "typhos.utils.channel_name", false]], "clean_attr() (in module typhos.utils)": [[24, "typhos.utils.clean_attr", false]], "clean_name() (in module typhos.utils)": [[24, "typhos.utils.clean_name", false]], "clear() (typhos.cache._globaldescribecache method)": [[24, "typhos.cache._GlobalDescribeCache.clear", false]], "clear() (typhos.cache._globalwidgettypecache method)": [[24, "typhos.cache._GlobalWidgetTypeCache.clear", false]], "clear() (typhos.panel.signalpanel method)": [[25, "typhos.panel.SignalPanel.clear", false]], "clear_error() (typhos.typhospositionerwidget method)": [[25, "typhos.TyphosPositionerWidget.clear_error", false]], "clear_layout() (in module typhos.utils)": [[24, "typhos.utils.clear_layout", false]], "clickablebitindicator (class in typhos.widgets)": [[25, "typhos.widgets.ClickableBitIndicator", false]], "close() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.close", false]], "closeevent() (typhos.widgets.subdisplay method)": [[25, "typhos.widgets.SubDisplay.closeEvent", false]], "code_from_device() (in module typhos.utils)": [[24, "typhos.utils.code_from_device", false]], "code_from_device_repr() (in module typhos.utils)": [[24, "typhos.utils.code_from_device_repr", false]], "col_label (typhos.panel.compositesignalpanel attribute)": [[25, "typhos.panel.CompositeSignalPanel.COL_LABEL", false]], "col_label (typhos.panel.signalpanel attribute)": [[25, "typhos.panel.SignalPanel.COL_LABEL", false]], "col_readback (typhos.panel.compositesignalpanel attribute)": [[25, "typhos.panel.CompositeSignalPanel.COL_READBACK", false]], "col_readback (typhos.panel.signalpanel attribute)": [[25, "typhos.panel.SignalPanel.COL_READBACK", false]], "col_setpoint (typhos.panel.compositesignalpanel attribute)": [[25, "typhos.panel.CompositeSignalPanel.COL_SETPOINT", false]], "col_setpoint (typhos.panel.signalpanel attribute)": [[25, "typhos.panel.SignalPanel.COL_SETPOINT", false]], "component (typhos.utils.grabkinditem attribute)": [[24, "typhos.utils.GrabKindItem.component", false]], "compose_stylesheets() (in module typhos.utils)": [[24, "typhos.utils.compose_stylesheets", false]], "compositesignalpanel (class in typhos.panel)": [[25, "typhos.panel.CompositeSignalPanel", false]], "connect_thread (typhos.cache._globaldescribecache attribute)": [[24, "typhos.cache._GlobalDescribeCache.connect_thread", false]], "connection_changed() (typhos.widgets.typhosscalarrange method)": [[25, "typhos.widgets.TyphosScalarRange.connection_changed", false]], "connection_status_monitor() (in module typhos.utils)": [[24, "typhos.utils.connection_status_monitor", false]], "connection_update (typhos.utils.deviceconnectionmonitorthread attribute)": [[24, "typhos.utils.DeviceConnectionMonitorThread.connection_update", false]], "connection_update (typhos.utils.objectconnectionmonitorthread attribute)": [[24, "typhos.utils.ObjectConnectionMonitorThread.connection_update", false]], "contextmenuevent() (typhos.utils.typhosloading method)": [[24, "typhos.utils.TyphosLoading.contextMenuEvent", false]], "copy_to_clipboard() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.copy_to_clipboard", false]], "create_hide_empty_menu() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.create_hide_empty_menu", false]], "create_kind_filter_menu() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.create_kind_filter_menu", false]], "create_name_filter_menu() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.create_name_filter_menu", false]], "create_signal_widget() (in module typhos.widgets)": [[25, "typhos.widgets.create_signal_widget", false]], "current_template (typhos.typhosdevicedisplay property)": [[3, "typhos.TyphosDeviceDisplay.current_template", false]], "default_icon (typhos.display.typhostoolbutton attribute)": [[3, "typhos.display.TyphosToolButton.DEFAULT_ICON", false]], "default_tools (typhos.typhossuite attribute)": [[3, "typhos.TyphosSuite.default_tools", false]], "delta_signal (typhos.widgets.typhosscalarrange property)": [[25, "typhos.widgets.TyphosScalarRange.delta_signal", false]], "delta_value (typhos.widgets.typhosscalarrange attribute)": [[25, "typhos.widgets.TyphosScalarRange.delta_value", false]], "describe_cache (typhos.cache._globalwidgettypecache attribute)": [[24, "typhos.cache._GlobalWidgetTypeCache.describe_cache", false]], "determine_widget_type() (in module typhos.widgets)": [[25, "typhos.widgets.determine_widget_type", false]], "device (typhos.typhosdevicedisplay property)": [[3, "typhos.TyphosDeviceDisplay.device", false]], "device (typhos.typhospositionerwidget property)": [[25, "typhos.TyphosPositionerWidget.device", false]], "device_class (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.device_class", false]], "device_name (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.device_name", false]], "deviceconnectionmonitorthread (class in typhos.utils)": [[24, "typhos.utils.DeviceConnectionMonitorThread", false]], "display_type (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.display_type", false]], "display_widget (typhos.typhosdevicedisplay property)": [[3, "typhos.TyphosDeviceDisplay.display_widget", false]], "dump_grid_layout() (in module typhos.utils)": [[24, "typhos.utils.dump_grid_layout", false]], "dynamic_font_size (typhos.widgets.typhoslabel attribute)": [[25, "typhos.widgets.TyphosLabel.dynamic_font_size", false]], "embed_requested() (typhos.widgets.typhossidebaritem method)": [[25, "typhos.widgets.TyphosSidebarItem.embed_requested", false]], "embed_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.embed_subdisplay", false]], "enum_strings_changed() (typhos.widgets.typhoscombobox method)": [[25, "typhos.widgets.TyphosComboBox.enum_strings_changed", false]], "enum_strings_changed() (typhos.widgets.typhoscommandbutton method)": [[25, "typhos.widgets.TyphosCommandButton.enum_strings_changed", false]], "enum_strings_changed() (typhos.widgets.typhoscommandenumbutton method)": [[25, "typhos.widgets.TyphosCommandEnumButton.enum_strings_changed", false]], "enum_strings_changed() (typhos.widgets.typhoslabel method)": [[25, "typhos.widgets.TyphosLabel.enum_strings_changed", false]], "error_message_attribute (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.error_message_attribute", false]], "eventfilter() (typhos.utils.frameoneditfilter method)": [[24, "typhos.utils.FrameOnEditFilter.eventFilter", false]], "execute() (typhos.typhosmethodbutton method)": [[25, "typhos.TyphosMethodButton.execute", false]], "failed_move (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.failed_move", false]], "filter_settings (typhos.typhossignalpanel property)": [[25, "typhos.TyphosSignalPanel.filter_settings", false]], "filter_signals() (typhos.panel.signalpanel method)": [[25, "typhos.panel.SignalPanel.filter_signals", false]], "find_file_in_paths() (in module typhos.utils)": [[24, "typhos.utils.find_file_in_paths", false]], "find_parent_with_class() (in module typhos.utils)": [[24, "typhos.utils.find_parent_with_class", false]], "find_root_widget() (in module typhos.utils)": [[24, "typhos.utils.find_root_widget", false]], "find_signal() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.find_signal", false]], "find_templates_for_class() (in module typhos.utils)": [[24, "typhos.utils.find_templates_for_class", false]], "flatten_tree() (in module typhos.utils)": [[24, "typhos.utils.flatten_tree", false]], "force_template (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.force_template", false]], "frameoneditfilter (class in typhos.utils)": [[24, "typhos.utils.FrameOnEditFilter", false]], "from_class() (typhos.typhosdevicedisplay class method)": [[3, "typhos.TyphosDeviceDisplay.from_class", false]], "from_device() (typhos.typhosdevicedisplay class method)": [[3, "typhos.TyphosDeviceDisplay.from_device", false]], "from_device() (typhos.typhosmethodbutton class method)": [[25, "typhos.TyphosMethodButton.from_device", false]], "from_device() (typhos.typhossuite class method)": [[3, "typhos.TyphosSuite.from_device", false]], "from_devices() (typhos.typhossuite class method)": [[3, "typhos.TyphosSuite.from_devices", false]], "from_signal() (typhos.widgets.signalwidgetinfo class method)": [[25, "typhos.widgets.SignalWidgetInfo.from_signal", false]], "functionpanel (class in typhos.func)": [[25, "typhos.func.FunctionPanel", false]], "generate_context_menu() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.generate_context_menu", false]], "generate_context_menu() (typhos.display.typhosdisplayswitcherbutton method)": [[3, "typhos.display.TyphosDisplaySwitcherButton.generate_context_menu", false]], "generate_context_menu() (typhos.display.typhostoolbutton method)": [[3, "typhos.display.TyphosToolButton.generate_context_menu", false]], "generate_context_menu() (typhos.typhossignalpanel method)": [[25, "typhos.TyphosSignalPanel.generate_context_menu", false]], "get() (typhos.cache._globaldescribecache method)": [[24, "typhos.cache._GlobalDescribeCache.get", false]], "get() (typhos.cache._globalwidgettypecache method)": [[24, "typhos.cache._GlobalWidgetTypeCache.get", false]], "get_all_signals_from_device() (in module typhos.utils)": [[24, "typhos.utils.get_all_signals_from_device", false]], "get_best_template() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.get_best_template", false]], "get_component() (in module typhos.utils)": [[24, "typhos.utils.get_component", false]], "get_device_from_fake_class() (in module typhos.utils)": [[24, "typhos.utils.get_device_from_fake_class", false]], "get_global_describe_cache() (in module typhos.cache)": [[24, "typhos.cache.get_global_describe_cache", false]], "get_global_display_path_cache() (in module typhos.cache)": [[24, "typhos.cache.get_global_display_path_cache", false]], "get_global_widget_type_cache() (in module typhos.cache)": [[24, "typhos.cache.get_global_widget_type_cache", false]], "get_icon() (typhos.display.typhostoolbutton class method)": [[3, "typhos.display.TyphosToolButton.get_icon", false]], "get_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.get_subdisplay", false]], "get_variety_metadata() (in module typhos.utils)": [[24, "typhos.utils.get_variety_metadata", false]], "grabkinditem (class in typhos.utils)": [[24, "typhos.utils.GrabKindItem", false]], "happiconnection (class in typhos.plugins)": [[7, "typhos.plugins.HappiConnection", false]], "happiplugin (class in typhos.plugins)": [[7, "typhos.plugins.HappiPlugin", false]], "hide_empty() (in module typhos.display)": [[3, "typhos.display.hide_empty", false]], "hide_empty() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.hide_empty", false]], "hide_requested() (typhos.widgets.typhossidebaritem method)": [[25, "typhos.widgets.TyphosSidebarItem.hide_requested", false]], "hide_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.hide_subdisplay", false]], "hide_subdisplays() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.hide_subdisplays", false]], "hideempty (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.hideEmpty", false]], "high_limit_switch_attribute (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.high_limit_switch_attribute", false]], "high_limit_travel_attribute (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.high_limit_travel_attribute", false]], "icon (typhos.widgets.signaldialogbutton attribute)": [[25, "typhos.widgets.SignalDialogButton.icon", false]], "imagedialogbutton (class in typhos.widgets)": [[25, "typhos.widgets.ImageDialogButton", false]], "is_fake_device_class() (in module typhos.utils)": [[24, "typhos.utils.is_fake_device_class", false]], "is_signal_ro() (in module typhos.utils)": [[24, "typhos.utils.is_signal_ro", false]], "is_standard_template() (in module typhos.utils)": [[24, "typhos.utils.is_standard_template", false]], "label_text_from_attribute() (typhos.panel.compositesignalpanel method)": [[25, "typhos.panel.CompositeSignalPanel.label_text_from_attribute", false]], "label_text_from_attribute() (typhos.panel.signalpanel method)": [[25, "typhos.panel.SignalPanel.label_text_from_attribute", false]], "link_signal_to_widget() (in module typhos.utils)": [[24, "typhos.utils.link_signal_to_widget", false]], "linked_attribute() (in module typhos.utils)": [[24, "typhos.utils.linked_attribute", false]], "load_best_template() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.load_best_template", false]], "load_suite() (in module typhos.utils)": [[24, "typhos.utils.load_suite", false]], "load_ui_file() (in module typhos.utils)": [[24, "typhos.utils.load_ui_file", false]], "loading_complete (typhos.panel.compositesignalpanel attribute)": [[25, "typhos.panel.CompositeSignalPanel.loading_complete", false]], "loading_complete (typhos.panel.signalpanel attribute)": [[25, "typhos.panel.SignalPanel.loading_complete", false]], "loading_timeout_ms (typhos.utils.typhosloading attribute)": [[24, "typhos.utils.TyphosLoading.LOADING_TIMEOUT_MS", false]], "low_limit_switch_attribute (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.low_limit_switch_attribute", false]], "low_limit_travel_attribute (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.low_limit_travel_attribute", false]], "macros (typhos.typhosdevicedisplay property)": [[3, "typhos.TyphosDeviceDisplay.macros", false]], "make_identifier() (in module typhos.utils)": [[24, "typhos.utils.make_identifier", false]], "method_name (typhos.typhosmethodbutton attribute)": [[25, "typhos.TyphosMethodButton.method_name", false]], "minimumsizehint() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.minimumSizeHint", false]], "module": [[1, "module-typhos.cli", false], [24, "module-typhos.utils", false]], "mousepressevent() (typhos.display.typhostitlelabel method)": [[3, "typhos.display.TyphosTitleLabel.mousePressEvent", false]], "mousepressevent() (typhos.widgets.clickablebitindicator method)": [[25, "typhos.widgets.ClickableBitIndicator.mousePressEvent", false]], "moving (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.moving", false]], "moving_attribute (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.moving_attribute", false]], "namefilter (typhos.typhossignalpanel attribute)": [[25, "typhos.TyphosSignalPanel.nameFilter", false]], "negative_tweak() (typhos.tweakable.typhostweakable method)": [[25, "typhos.tweakable.TyphosTweakable.negative_tweak", false]], "negative_tweak() (typhos.typhospositionerwidget method)": [[25, "typhos.TyphosPositionerWidget.negative_tweak", false]], "new_jira_widget() (typhos.display.typhosdisplayswitcher method)": [[3, "typhos.display.TyphosDisplaySwitcher.new_jira_widget", false]], "no_device_lazy_load() (in module typhos.utils)": [[24, "typhos.utils.no_device_lazy_load", false]], "normalize_display_type() (in module typhos.display)": [[3, "typhos.display.normalize_display_type", false]], "nullcontext() (in module typhos.utils)": [[24, "typhos.utils.nullcontext", false]], "num_cols (typhos.panel.compositesignalpanel attribute)": [[25, "typhos.panel.CompositeSignalPanel.NUM_COLS", false]], "num_cols (typhos.panel.signalpanel attribute)": [[25, "typhos.panel.SignalPanel.NUM_COLS", false]], "numbits (typhos.widgets.typhosbytesetpoint attribute)": [[25, "typhos.widgets.TyphosByteSetpoint.numBits", false]], "objectconnectionmonitorthread (class in typhos.utils)": [[24, "typhos.utils.ObjectConnectionMonitorThread", false]], "omitnames (typhos.typhossignalpanel attribute)": [[25, "typhos.TyphosSignalPanel.omitNames", false]], "open_context_menu() (typhos.display.typhostoolbutton method)": [[3, "typhos.display.TyphosToolButton.open_context_menu", false]], "open_context_menu() (typhos.typhossignalpanel method)": [[25, "typhos.TyphosSignalPanel.open_context_menu", false]], "open_requested() (typhos.widgets.typhossidebaritem method)": [[25, "typhos.widgets.TyphosSidebarItem.open_requested", false]], "parent_widget_class (typhos.widgets.imagedialogbutton attribute)": [[25, "typhos.widgets.ImageDialogButton.parent_widget_class", false]], "parent_widget_class (typhos.widgets.signaldialogbutton attribute)": [[25, "typhos.widgets.SignalDialogButton.parent_widget_class", false]], "parent_widget_class (typhos.widgets.waveformdialogbutton attribute)": [[25, "typhos.widgets.WaveformDialogButton.parent_widget_class", false]], "patch_connect_slots() (in module typhos.utils)": [[24, "typhos.utils.patch_connect_slots", false]], "pop_out_help() (typhos.display.typhosdisplaytitle method)": [[3, "typhos.display.TyphosDisplayTitle.pop_out_help", false]], "positive_tweak() (typhos.tweakable.typhostweakable method)": [[25, "typhos.tweakable.TyphosTweakable.positive_tweak", false]], "positive_tweak() (typhos.typhospositionerwidget method)": [[25, "typhos.TyphosPositionerWidget.positive_tweak", false]], "put_value() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.put_value", false]], "pyqt_class_from_enum() (in module typhos.utils)": [[24, "typhos.utils.pyqt_class_from_enum", false]], "raise_window() (in module typhos.utils)": [[24, "typhos.utils.raise_window", false]], "random_color() (in module typhos.utils)": [[24, "typhos.utils.random_color", false]], "readback_attribute (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.readback_attribute", false]], "register_client() (in module typhos.plugins)": [[7, "typhos.plugins.register_client", false]], "register_signal() (in module typhos.plugins)": [[7, "typhos.plugins.register_signal", false]], "reload_widget_stylesheet() (in module typhos.utils)": [[24, "typhos.utils.reload_widget_stylesheet", false]], "remove_duplicate_items() (in module typhos.utils)": [[24, "typhos.utils.remove_duplicate_items", false]], "remove_listener() (typhos.plugins.happiconnection method)": [[7, "typhos.plugins.HappiConnection.remove_listener", false]], "remove_listener() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.remove_listener", false]], "resizeevent() (typhos.typhossignalpanel method)": [[25, "typhos.TyphosSignalPanel.resizeEvent", false]], "row_count (typhos.panel.signalpanel property)": [[25, "typhos.panel.SignalPanel.row_count", false]], "run() (typhos.utils.deviceconnectionmonitorthread method)": [[24, "typhos.utils.DeviceConnectionMonitorThread.run", false]], "run() (typhos.utils.objectconnectionmonitorthread method)": [[24, "typhos.utils.ObjectConnectionMonitorThread.run", false]], "run() (typhos.utils.threadpoolworker method)": [[24, "typhos.utils.ThreadPoolWorker.run", false]], "save() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.save", false]], "save_device_screenshots() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.save_device_screenshots", false]], "save_screenshot() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.save_screenshot", false]], "save_suite() (in module typhos.utils)": [[24, "typhos.utils.save_suite", false]], "scroll_option (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.scroll_option", false]], "search_for_templates() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.search_for_templates", false]], "send_new_meta() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.send_new_meta", false]], "send_new_value() (typhos.plugins.signalconnection method)": [[7, "typhos.plugins.SignalConnection.send_new_value", false]], "send_value() (typhos.textedit.typhostextedit method)": [[25, "typhos.textedit.TyphosTextEdit.send_value", false]], "send_value() (typhos.widgets.typhoslineedit method)": [[25, "typhos.widgets.TyphosLineEdit.send_value", false]], "set() (typhos.typhospositionerwidget method)": [[25, "typhos.TyphosPositionerWidget.set", false]], "set_device_display() (typhos.display.typhosdisplayconfigbutton method)": [[3, "typhos.display.TyphosDisplayConfigButton.set_device_display", false]], "set_device_display() (typhos.display.typhosdisplayswitcher method)": [[3, "typhos.display.TyphosDisplaySwitcher.set_device_display", false]], "set_device_display() (typhos.display.typhosdisplaytitle method)": [[3, "typhos.display.TyphosDisplayTitle.set_device_display", false]], "set_device_display() (typhos.typhossignalpanel method)": [[25, "typhos.TyphosSignalPanel.set_device_display", false]], "set_display() (typhos.textedit.typhostextedit method)": [[25, "typhos.textedit.TyphosTextEdit.set_display", false]], "set_edit_style() (typhos.utils.frameoneditfilter static method)": [[24, "typhos.utils.FrameOnEditFilter.set_edit_style", false]], "set_no_edit_style() (typhos.utils.frameoneditfilter static method)": [[24, "typhos.utils.FrameOnEditFilter.set_no_edit_style", false]], "setpoint_attribute (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.setpoint_attribute", false]], "setpoint_history (typhos.widgets.typhoslineedit property)": [[25, "typhos.widgets.TyphosLineEdit.setpoint_history", false]], "setpointhistorycount (typhos.widgets.typhoslineedit attribute)": [[25, "typhos.widgets.TyphosLineEdit.setpointHistoryCount", false]], "setvisible() (typhos.typhossignalpanel method)": [[25, "typhos.TyphosSignalPanel.setVisible", false]], "show_dialog() (typhos.widgets.signaldialogbutton method)": [[25, "typhos.widgets.SignalDialogButton.show_dialog", false]], "show_empty() (in module typhos.display)": [[3, "typhos.display.show_empty", false]], "show_expert_button (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.show_expert_button", false]], "show_kinds (typhos.typhossignalpanel property)": [[25, "typhos.TyphosSignalPanel.show_kinds", false]], "show_subdisplay() (typhos.typhossuite method)": [[3, "typhos.TyphosSuite.show_subdisplay", false]], "show_switcher (typhos.display.typhosdisplaytitle attribute)": [[3, "typhos.display.TyphosDisplayTitle.show_switcher", false]], "show_ui_type_hints() (typhos.typhospositionerwidget method)": [[25, "typhos.TyphosPositionerWidget.show_ui_type_hints", false]], "show_underline (typhos.display.typhosdisplaytitle attribute)": [[3, "typhos.display.TyphosDisplayTitle.show_underline", false]], "showconfig (typhos.typhossignalpanel attribute)": [[25, "typhos.TyphosSignalPanel.showConfig", false]], "showhints (typhos.typhossignalpanel attribute)": [[25, "typhos.TyphosSignalPanel.showHints", false]], "shownames (typhos.typhossignalpanel attribute)": [[25, "typhos.TyphosSignalPanel.showNames", false]], "shownormal (typhos.typhossignalpanel attribute)": [[25, "typhos.TyphosSignalPanel.showNormal", false]], "showomitted (typhos.typhossignalpanel attribute)": [[25, "typhos.TyphosSignalPanel.showOmitted", false]], "signal (typhos.plugins.signalconnection attribute)": [[7, "typhos.plugins.SignalConnection.signal", false]], "signal (typhos.utils.grabkinditem attribute)": [[24, "typhos.utils.GrabKindItem.signal", false]], "signalconnection (class in typhos.plugins)": [[7, "typhos.plugins.SignalConnection", false]], "signaldialogbutton (class in typhos.widgets)": [[25, "typhos.widgets.SignalDialogButton", false]], "signalpanel (class in typhos.panel)": [[25, "typhos.panel.SignalPanel", false]], "signalplugin (class in typhos.plugins)": [[7, "typhos.plugins.SignalPlugin", false]], "signals (typhos.panel.signalpanel property)": [[25, "typhos.panel.SignalPanel.signals", false]], "signalwidgetinfo (class in typhos.widgets)": [[25, "typhos.widgets.SignalWidgetInfo", false]], "sortby (typhos.typhossignalpanel attribute)": [[25, "typhos.TyphosSignalPanel.sortBy", false]], "stop() (typhos.typhospositionerwidget method)": [[25, "typhos.TyphosPositionerWidget.stop", false]], "stop() (typhos.utils.deviceconnectionmonitorthread method)": [[24, "typhos.utils.DeviceConnectionMonitorThread.stop", false]], "stop() (typhos.utils.objectconnectionmonitorthread method)": [[24, "typhos.utils.ObjectConnectionMonitorThread.stop", false]], "subdisplay (class in typhos.widgets)": [[25, "typhos.widgets.SubDisplay", false]], "subscription_context() (in module typhos.utils)": [[24, "typhos.utils.subscription_context", false]], "subscription_context_device() (in module typhos.utils)": [[24, "typhos.utils.subscription_context_device", false]], "successful_move (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.successful_move", false]], "suggest_composite_screen() (typhos.typhosdevicedisplay class method)": [[3, "typhos.TyphosDeviceDisplay.suggest_composite_screen", false]], "take_top_level_widget_screenshots() (in module typhos.utils)": [[24, "typhos.utils.take_top_level_widget_screenshots", false]], "take_widget_screenshot() (in module typhos.utils)": [[24, "typhos.utils.take_widget_screenshot", false]], "templateenum (typhos.typhosdevicedisplay attribute)": [[3, "typhos.TyphosDeviceDisplay.TemplateEnum", false]], "text (typhos.widgets.signaldialogbutton attribute)": [[25, "typhos.widgets.SignalDialogButton.text", false]], "threadpoolworker (class in typhos.utils)": [[24, "typhos.utils.ThreadPoolWorker", false]], "to_image() (typhos.typhosdevicedisplay method)": [[3, "typhos.TyphosDeviceDisplay.to_image", false]], "toggle_display() (in module typhos.display)": [[3, "typhos.display.toggle_display", false]], "toggle_help() (typhos.display.typhosdisplaytitle method)": [[3, "typhos.display.TyphosDisplayTitle.toggle_help", false]], "toggle_requested (typhos.display.typhostitlelabel attribute)": [[3, "typhos.display.TyphosTitleLabel.toggle_requested", false]], "tools (typhos.typhossuite property)": [[3, "typhos.TyphosSuite.tools", false]], "top_level_groups (typhos.typhossuite property)": [[3, "typhos.TyphosSuite.top_level_groups", false]], "treewidgetchanged() (typhos.widgets.typhossidebaritem method)": [[25, "typhos.widgets.TyphosSidebarItem.treeWidgetChanged", false]], "tweak() (typhos.tweakable.typhostweakable method)": [[25, "typhos.tweakable.TyphosTweakable.tweak", false]], "tweak() (typhos.typhospositionerwidget method)": [[25, "typhos.TyphosPositionerWidget.tweak", false]], "typhos.cli": [[1, "module-typhos.cli", false]], "typhos.utils": [[24, "module-typhos.utils", false]], "typhosarraytable (class in typhos.widgets)": [[25, "typhos.widgets.TyphosArrayTable", false]], "typhosbase (class in typhos.utils)": [[24, "typhos.utils.TyphosBase", false]], "typhosbyteindicator (class in typhos.widgets)": [[25, "typhos.widgets.TyphosByteIndicator", false]], "typhosbytesetpoint (class in typhos.widgets)": [[25, "typhos.widgets.TyphosByteSetpoint", false]], "typhoscombobox (class in typhos.widgets)": [[25, "typhos.widgets.TyphosComboBox", false]], "typhoscommandbutton (class in typhos.widgets)": [[25, "typhos.widgets.TyphosCommandButton", false]], "typhoscommandenumbutton (class in typhos.widgets)": [[25, "typhos.widgets.TyphosCommandEnumButton", false]], "typhoscompositesignalpanel (class in typhos)": [[25, "typhos.TyphosCompositeSignalPanel", false]], "typhosdesignermixin (class in typhos.widgets)": [[25, "typhos.widgets.TyphosDesignerMixin", false]], "typhosdevicedisplay (class in typhos)": [[3, "typhos.TyphosDeviceDisplay", false]], "typhosdisplayconfigbutton (class in typhos.display)": [[3, "typhos.display.TyphosDisplayConfigButton", false]], "typhosdisplayswitcher (class in typhos.display)": [[3, "typhos.display.TyphosDisplaySwitcher", false]], "typhosdisplayswitcherbutton (class in typhos.display)": [[3, "typhos.display.TyphosDisplaySwitcherButton", false]], "typhosdisplaytitle (class in typhos.display)": [[3, "typhos.display.TyphosDisplayTitle", false]], "typhosexception": [[24, "typhos.utils.TyphosException", false]], "typhoslabel (class in typhos.widgets)": [[25, "typhos.widgets.TyphosLabel", false]], "typhoslineedit (class in typhos.widgets)": [[25, "typhos.widgets.TyphosLineEdit", false]], "typhosloading (class in typhos.utils)": [[24, "typhos.utils.TyphosLoading", false]], "typhoslogdisplay (class in typhos.tools)": [[4, "typhos.tools.TyphosLogDisplay", false]], "typhosmethodbutton (class in typhos)": [[25, "typhos.TyphosMethodButton", false]], "typhospositionerwidget (class in typhos)": [[25, "typhos.TyphosPositionerWidget", false]], "typhospositionerwidget.kindlevel (class in typhos)": [[25, "typhos.TyphosPositionerWidget.KindLevel", false]], "typhosscalarrange (class in typhos.widgets)": [[25, "typhos.widgets.TyphosScalarRange", false]], "typhossidebaritem (class in typhos.widgets)": [[25, "typhos.widgets.TyphosSidebarItem", false]], "typhossignalpanel (class in typhos)": [[25, "typhos.TyphosSignalPanel", false]], "typhossignalpanel.signalorder (class in typhos)": [[25, "typhos.TyphosSignalPanel.SignalOrder", false]], "typhossuite (class in typhos)": [[3, "typhos.TyphosSuite", false]], "typhostextedit (class in typhos.textedit)": [[25, "typhos.textedit.TyphosTextEdit", false]], "typhostimeplot (class in typhos.tools)": [[5, "typhos.tools.TyphosTimePlot", false]], "typhostitlelabel (class in typhos.display)": [[3, "typhos.display.TyphosTitleLabel", false]], "typhostoolbutton (class in typhos.display)": [[3, "typhos.display.TyphosToolButton", false]], "typhostweakable (class in typhos.tweakable)": [[25, "typhos.tweakable.TyphosTweakable", false]], "unit_changed() (typhos.widgets.typhoslabel method)": [[25, "typhos.widgets.TyphosLabel.unit_changed", false]], "unit_changed() (typhos.widgets.typhoslineedit method)": [[25, "typhos.widgets.TyphosLineEdit.unit_changed", false]], "update() (typhos.cache._globaldisplaypathcache method)": [[24, "typhos.cache._GlobalDisplayPathCache.update", false]], "update_alarm_text() (typhos.typhospositionerwidget method)": [[25, "typhos.TyphosPositionerWidget.update_alarm_text", false]], "use_status (typhos.typhosmethodbutton attribute)": [[25, "typhos.TyphosMethodButton.use_status", false]], "use_stylesheet() (in module typhos.utils)": [[24, "typhos.utils.use_stylesheet", false]], "value_changed() (typhos.textedit.typhostextedit method)": [[25, "typhos.textedit.TyphosTextEdit.value_changed", false]], "value_changed() (typhos.widgets.typhosarraytable method)": [[25, "typhos.widgets.TyphosArrayTable.value_changed", false]], "value_changed() (typhos.widgets.typhosbytesetpoint method)": [[25, "typhos.widgets.TyphosByteSetpoint.value_changed", false]], "variety_metadata (typhos.textedit.typhostextedit property)": [[25, "typhos.textedit.TyphosTextEdit.variety_metadata", false]], "variety_metadata (typhos.tweakable.typhostweakable property)": [[25, "typhos.tweakable.TyphosTweakable.variety_metadata", false]], "variety_metadata (typhos.widgets.typhosarraytable property)": [[25, "typhos.widgets.TyphosArrayTable.variety_metadata", false]], "variety_metadata (typhos.widgets.typhosbyteindicator property)": [[25, "typhos.widgets.TyphosByteIndicator.variety_metadata", false]], "variety_metadata (typhos.widgets.typhoscommandbutton property)": [[25, "typhos.widgets.TyphosCommandButton.variety_metadata", false]], "variety_metadata (typhos.widgets.typhoscommandenumbutton property)": [[25, "typhos.widgets.TyphosCommandEnumButton.variety_metadata", false]], "variety_metadata (typhos.widgets.typhosscalarrange property)": [[25, "typhos.widgets.TyphosScalarRange.variety_metadata", false]], "velocity_attribute (typhos.typhospositionerwidget attribute)": [[25, "typhos.TyphosPositionerWidget.velocity_attribute", false]], "visible_elements (typhos.panel.compositesignalpanel property)": [[25, "typhos.panel.CompositeSignalPanel.visible_elements", false]], "visible_elements (typhos.panel.signalpanel property)": [[25, "typhos.panel.SignalPanel.visible_elements", false]], "visible_signals (typhos.panel.signalpanel property)": [[25, "typhos.panel.SignalPanel.visible_signals", false]], "waveformdialogbutton (class in typhos.widgets)": [[25, "typhos.widgets.WaveformDialogButton", false]], "weakpartialmethodslot (class in typhos.utils)": [[24, "typhos.utils.WeakPartialMethodSlot", false]], "wheelevent() (typhos.widgets.typhoscombobox method)": [[25, "typhos.widgets.TyphosComboBox.wheelEvent", false]], "widget() (typhos.widgets.imagedialogbutton method)": [[25, "typhos.widgets.ImageDialogButton.widget", false]], "widget() (typhos.widgets.signaldialogbutton method)": [[25, "typhos.widgets.SignalDialogButton.widget", false]], "widget() (typhos.widgets.waveformdialogbutton method)": [[25, "typhos.widgets.WaveformDialogButton.widget", false]], "widget_ctx_menu() (typhos.widgets.typhoslineedit method)": [[25, "typhos.widgets.TyphosLineEdit.widget_ctx_menu", false]], "widget_to_image() (in module typhos.utils)": [[24, "typhos.utils.widget_to_image", false]], "widget_type_from_description() (in module typhos.widgets)": [[25, "typhos.widgets.widget_type_from_description", false]], "write_access_changed() (typhos.textedit.typhostextedit method)": [[25, "typhos.textedit.TyphosTextEdit.write_access_changed", false]]}, "objects": {"typhos": [[25, 0, 1, "", "TyphosCompositeSignalPanel"], [3, 0, 1, "", "TyphosDeviceDisplay"], [25, 0, 1, "", "TyphosMethodButton"], [25, 0, 1, "", "TyphosPositionerWidget"], [25, 0, 1, "", "TyphosSignalPanel"], [3, 0, 1, "", "TyphosSuite"], [1, 5, 0, "-", "cli"], [24, 5, 0, "-", "utils"]], "typhos.TyphosDeviceDisplay": [[3, 1, 1, "", "TemplateEnum"], [3, 2, 1, "", "add_device"], [3, 2, 1, "", "copy_to_clipboard"], [3, 3, 1, "", "current_template"], [3, 3, 1, "", "device"], [3, 1, 1, "", "device_class"], [3, 1, 1, "", "device_name"], [3, 1, 1, "", "display_type"], [3, 3, 1, "", "display_widget"], [3, 1, 1, "", "force_template"], [3, 2, 1, "", "from_class"], [3, 2, 1, "", "from_device"], [3, 2, 1, "", "get_best_template"], [3, 1, 1, "", "hideEmpty"], [3, 2, 1, "", "load_best_template"], [3, 3, 1, "", "macros"], [3, 2, 1, "", "minimumSizeHint"], [3, 1, 1, "", "scroll_option"], [3, 2, 1, "", "search_for_templates"], [3, 2, 1, "", "suggest_composite_screen"], [3, 2, 1, "", "to_image"]], "typhos.TyphosMethodButton": [[25, 2, 1, "", "add_device"], [25, 2, 1, "", "execute"], [25, 2, 1, "", "from_device"], [25, 1, 1, "", "method_name"], [25, 1, 1, "", "use_status"]], "typhos.TyphosPositionerWidget": [[25, 0, 1, "", "KindLevel"], [25, 1, 1, "", "acceleration_attribute"], [25, 2, 1, "", "add_device"], [25, 3, 1, "", "all_linked_attributes"], [25, 3, 1, "", "all_linked_signals"], [25, 2, 1, "", "clear_error"], [25, 3, 1, "", "device"], [25, 1, 1, "", "error_message_attribute"], [25, 1, 1, "", "failed_move"], [25, 1, 1, "", "high_limit_switch_attribute"], [25, 1, 1, "", "high_limit_travel_attribute"], [25, 1, 1, "", "low_limit_switch_attribute"], [25, 1, 1, "", "low_limit_travel_attribute"], [25, 1, 1, "", "moving"], [25, 1, 1, "", "moving_attribute"], [25, 2, 1, "", "negative_tweak"], [25, 2, 1, "", "positive_tweak"], [25, 1, 1, "", "readback_attribute"], [25, 2, 1, "", "set"], [25, 1, 1, "", "setpoint_attribute"], [25, 1, 1, "", "show_expert_button"], [25, 2, 1, "", "show_ui_type_hints"], [25, 2, 1, "", "stop"], [25, 1, 1, "", "successful_move"], [25, 2, 1, "", "tweak"], [25, 2, 1, "", "update_alarm_text"], [25, 1, 1, "", "velocity_attribute"]], "typhos.TyphosSignalPanel": [[25, 0, 1, "", "SignalOrder"], [25, 2, 1, "", "add_device"], [25, 3, 1, "", "filter_settings"], [25, 2, 1, "", "generate_context_menu"], [25, 1, 1, "", "nameFilter"], [25, 1, 1, "", "omitNames"], [25, 2, 1, "", "open_context_menu"], [25, 2, 1, "", "resizeEvent"], [25, 2, 1, "", "setVisible"], [25, 2, 1, "", "set_device_display"], [25, 1, 1, "", "showConfig"], [25, 1, 1, "", "showHints"], [25, 1, 1, "", "showNames"], [25, 1, 1, "", "showNormal"], [25, 1, 1, "", "showOmitted"], [25, 3, 1, "", "show_kinds"], [25, 1, 1, "", "sortBy"]], "typhos.TyphosSuite": [[3, 2, 1, "", "add_device"], [3, 2, 1, "", "add_lazy_subdisplay"], [3, 2, 1, "", "add_subdisplay"], [3, 2, 1, "", "add_tool"], [3, 1, 1, "", "default_tools"], [3, 2, 1, "", "embed_subdisplay"], [3, 2, 1, "", "from_device"], [3, 2, 1, "", "from_devices"], [3, 2, 1, "", "get_subdisplay"], [3, 2, 1, "", "hide_subdisplay"], [3, 2, 1, "", "hide_subdisplays"], [3, 2, 1, "", "save"], [3, 2, 1, "", "save_device_screenshots"], [3, 2, 1, "", "save_screenshot"], [3, 2, 1, "", "show_subdisplay"], [3, 3, 1, "", "tools"], [3, 3, 1, "", "top_level_groups"]], "typhos.cache": [[24, 0, 1, "", "_GlobalDescribeCache"], [24, 0, 1, "", "_GlobalDisplayPathCache"], [24, 0, 1, "", "_GlobalWidgetTypeCache"], [24, 4, 1, "", "get_global_describe_cache"], [24, 4, 1, "", "get_global_display_path_cache"], [24, 4, 1, "", "get_global_widget_type_cache"]], "typhos.cache._GlobalDescribeCache": [[24, 1, 1, "", "cache"], [24, 2, 1, "", "clear"], [24, 1, 1, "", "connect_thread"], [24, 2, 1, "", "get"]], "typhos.cache._GlobalDisplayPathCache": [[24, 2, 1, "", "add_path"], [24, 2, 1, "", "update"]], "typhos.cache._GlobalWidgetTypeCache": [[24, 1, 1, "", "cache"], [24, 2, 1, "", "clear"], [24, 1, 1, "", "describe_cache"], [24, 2, 1, "", "get"]], "typhos.display": [[3, 0, 1, "", "TyphosDisplayConfigButton"], [3, 0, 1, "", "TyphosDisplaySwitcher"], [3, 0, 1, "", "TyphosDisplaySwitcherButton"], [3, 0, 1, "", "TyphosDisplayTitle"], [3, 0, 1, "", "TyphosTitleLabel"], [3, 0, 1, "", "TyphosToolButton"], [3, 4, 1, "", "hide_empty"], [3, 4, 1, "", "normalize_display_type"], [3, 4, 1, "", "show_empty"], [3, 4, 1, "", "toggle_display"]], "typhos.display.TyphosDisplayConfigButton": [[3, 2, 1, "", "create_hide_empty_menu"], [3, 2, 1, "", "create_kind_filter_menu"], [3, 2, 1, "", "create_name_filter_menu"], [3, 2, 1, "", "generate_context_menu"], [3, 2, 1, "", "hide_empty"], [3, 2, 1, "", "set_device_display"]], "typhos.display.TyphosDisplaySwitcher": [[3, 2, 1, "", "add_device"], [3, 2, 1, "", "new_jira_widget"], [3, 2, 1, "", "set_device_display"]], "typhos.display.TyphosDisplaySwitcherButton": [[3, 2, 1, "", "generate_context_menu"]], "typhos.display.TyphosDisplayTitle": [[3, 2, 1, "", "add_device"], [3, 2, 1, "", "pop_out_help"], [3, 2, 1, "", "set_device_display"], [3, 1, 1, "", "show_switcher"], [3, 1, 1, "", "show_underline"], [3, 2, 1, "", "toggle_help"]], "typhos.display.TyphosTitleLabel": [[3, 2, 1, "", "mousePressEvent"], [3, 1, 1, "", "toggle_requested"]], "typhos.display.TyphosToolButton": [[3, 1, 1, "", "DEFAULT_ICON"], [3, 2, 1, "", "generate_context_menu"], [3, 2, 1, "", "get_icon"], [3, 2, 1, "", "open_context_menu"]], "typhos.func": [[25, 0, 1, "", "FunctionPanel"]], "typhos.func.FunctionPanel": [[25, 2, 1, "", "add_method"]], "typhos.panel": [[25, 0, 1, "", "CompositeSignalPanel"], [25, 0, 1, "", "SignalPanel"]], "typhos.panel.CompositeSignalPanel": [[25, 1, 1, "", "COL_LABEL"], [25, 1, 1, "", "COL_READBACK"], [25, 1, 1, "", "COL_SETPOINT"], [25, 1, 1, "", "NUM_COLS"], [25, 2, 1, "", "add_device"], [25, 2, 1, "", "add_sub_device"], [25, 2, 1, "", "label_text_from_attribute"], [25, 1, 1, "", "loading_complete"], [25, 3, 1, "", "visible_elements"]], "typhos.panel.SignalPanel": [[25, 1, 1, "", "COL_LABEL"], [25, 1, 1, "", "COL_READBACK"], [25, 1, 1, "", "COL_SETPOINT"], [25, 1, 1, "", "NUM_COLS"], [25, 2, 1, "", "add_device"], [25, 2, 1, "", "add_pv"], [25, 2, 1, "", "add_row"], [25, 2, 1, "", "add_signal"], [25, 2, 1, "", "clear"], [25, 2, 1, "", "filter_signals"], [25, 2, 1, "", "label_text_from_attribute"], [25, 1, 1, "", "loading_complete"], [25, 3, 1, "", "row_count"], [25, 3, 1, "", "signals"], [25, 3, 1, "", "visible_elements"], [25, 3, 1, "", "visible_signals"]], "typhos.plugins": [[7, 0, 1, "", "HappiConnection"], [7, 0, 1, "", "HappiPlugin"], [7, 0, 1, "", "SignalConnection"], [7, 0, 1, "", "SignalPlugin"], [7, 4, 1, "", "register_client"], [7, 4, 1, "", "register_signal"]], "typhos.plugins.HappiConnection": [[7, 2, 1, "", "add_listener"], [7, 2, 1, "", "remove_listener"]], "typhos.plugins.SignalConnection": [[7, 2, 1, "", "add_listener"], [7, 2, 1, "", "cast"], [7, 2, 1, "", "close"], [7, 2, 1, "", "find_signal"], [7, 2, 1, "", "put_value"], [7, 2, 1, "", "remove_listener"], [7, 2, 1, "", "send_new_meta"], [7, 2, 1, "", "send_new_value"], [7, 1, 1, "", "signal"]], "typhos.textedit": [[25, 0, 1, "", "TyphosTextEdit"]], "typhos.textedit.TyphosTextEdit": [[25, 2, 1, "", "send_value"], [25, 2, 1, "", "set_display"], [25, 2, 1, "", "value_changed"], [25, 3, 1, "", "variety_metadata"], [25, 2, 1, "", "write_access_changed"]], "typhos.tools": [[4, 0, 1, "", "TyphosLogDisplay"], [5, 0, 1, "", "TyphosTimePlot"]], "typhos.tools.TyphosLogDisplay": [[4, 2, 1, "", "__init__"]], "typhos.tools.TyphosTimePlot": [[5, 2, 1, "", "__init__"]], "typhos.tweakable": [[25, 0, 1, "", "TyphosTweakable"]], "typhos.tweakable.TyphosTweakable": [[25, 2, 1, "", "negative_tweak"], [25, 2, 1, "", "positive_tweak"], [25, 2, 1, "", "tweak"], [25, 3, 1, "", "variety_metadata"]], "typhos.utils": [[24, 0, 1, "", "DeviceConnectionMonitorThread"], [24, 0, 1, "", "FrameOnEditFilter"], [24, 0, 1, "", "GrabKindItem"], [24, 0, 1, "", "ObjectConnectionMonitorThread"], [24, 0, 1, "", "ThreadPoolWorker"], [24, 0, 1, "", "TyphosBase"], [24, 6, 1, "", "TyphosException"], [24, 0, 1, "", "TyphosLoading"], [24, 0, 1, "", "WeakPartialMethodSlot"], [24, 4, 1, "", "apply_standard_stylesheets"], [24, 4, 1, "", "channel_from_signal"], [24, 4, 1, "", "channel_name"], [24, 4, 1, "", "clean_attr"], [24, 4, 1, "", "clean_name"], [24, 4, 1, "", "clear_layout"], [24, 4, 1, "", "code_from_device"], [24, 4, 1, "", "code_from_device_repr"], [24, 4, 1, "", "compose_stylesheets"], [24, 4, 1, "", "connection_status_monitor"], [24, 4, 1, "", "dump_grid_layout"], [24, 4, 1, "", "find_file_in_paths"], [24, 4, 1, "", "find_parent_with_class"], [24, 4, 1, "", "find_root_widget"], [24, 4, 1, "", "find_templates_for_class"], [24, 4, 1, "", "flatten_tree"], [24, 4, 1, "", "get_all_signals_from_device"], [24, 4, 1, "", "get_component"], [24, 4, 1, "", "get_device_from_fake_class"], [24, 4, 1, "", "get_variety_metadata"], [24, 4, 1, "", "is_fake_device_class"], [24, 4, 1, "", "is_signal_ro"], [24, 4, 1, "", "is_standard_template"], [24, 4, 1, "", "link_signal_to_widget"], [24, 4, 1, "", "linked_attribute"], [24, 4, 1, "", "load_suite"], [24, 4, 1, "", "load_ui_file"], [24, 4, 1, "", "make_identifier"], [24, 4, 1, "", "no_device_lazy_load"], [24, 4, 1, "", "nullcontext"], [24, 4, 1, "", "patch_connect_slots"], [24, 4, 1, "", "pyqt_class_from_enum"], [24, 4, 1, "", "raise_window"], [24, 4, 1, "", "random_color"], [24, 4, 1, "", "reload_widget_stylesheet"], [24, 4, 1, "", "remove_duplicate_items"], [24, 4, 1, "", "save_suite"], [24, 4, 1, "", "subscription_context"], [24, 4, 1, "", "subscription_context_device"], [24, 4, 1, "", "take_top_level_widget_screenshots"], [24, 4, 1, "", "take_widget_screenshot"], [24, 4, 1, "", "use_stylesheet"], [24, 4, 1, "", "widget_to_image"]], "typhos.utils.DeviceConnectionMonitorThread": [[24, 1, 1, "", "connection_update"], [24, 2, 1, "", "run"], [24, 2, 1, "", "stop"]], "typhos.utils.FrameOnEditFilter": [[24, 2, 1, "", "eventFilter"], [24, 2, 1, "", "set_edit_style"], [24, 2, 1, "", "set_no_edit_style"]], "typhos.utils.GrabKindItem": [[24, 1, 1, "", "attr"], [24, 1, 1, "", "component"], [24, 1, 1, "", "signal"]], "typhos.utils.ObjectConnectionMonitorThread": [[24, 1, 1, "", "connection_update"], [24, 2, 1, "", "run"], [24, 2, 1, "", "stop"]], "typhos.utils.ThreadPoolWorker": [[24, 2, 1, "", "run"]], "typhos.utils.TyphosLoading": [[24, 1, 1, "", "LOADING_TIMEOUT_MS"], [24, 2, 1, "", "contextMenuEvent"]], "typhos.widgets": [[25, 0, 1, "", "ClickableBitIndicator"], [25, 0, 1, "", "ImageDialogButton"], [25, 0, 1, "", "SignalDialogButton"], [25, 0, 1, "", "SignalWidgetInfo"], [25, 0, 1, "", "SubDisplay"], [25, 0, 1, "", "TyphosArrayTable"], [25, 0, 1, "", "TyphosByteIndicator"], [25, 0, 1, "", "TyphosByteSetpoint"], [25, 0, 1, "", "TyphosComboBox"], [25, 0, 1, "", "TyphosCommandButton"], [25, 0, 1, "", "TyphosCommandEnumButton"], [25, 0, 1, "", "TyphosDesignerMixin"], [25, 0, 1, "", "TyphosLabel"], [25, 0, 1, "", "TyphosLineEdit"], [25, 0, 1, "", "TyphosScalarRange"], [25, 0, 1, "", "TyphosSidebarItem"], [25, 0, 1, "", "WaveformDialogButton"], [25, 4, 1, "", "create_signal_widget"], [25, 4, 1, "", "determine_widget_type"], [25, 4, 1, "", "widget_type_from_description"]], "typhos.widgets.ClickableBitIndicator": [[25, 2, 1, "", "mousePressEvent"]], "typhos.widgets.ImageDialogButton": [[25, 1, 1, "", "parent_widget_class"], [25, 2, 1, "", "widget"]], "typhos.widgets.SignalDialogButton": [[25, 1, 1, "", "icon"], [25, 1, 1, "", "parent_widget_class"], [25, 2, 1, "", "show_dialog"], [25, 1, 1, "", "text"], [25, 2, 1, "", "widget"]], "typhos.widgets.SignalWidgetInfo": [[25, 2, 1, "", "from_signal"]], "typhos.widgets.SubDisplay": [[25, 2, 1, "", "closeEvent"]], "typhos.widgets.TyphosArrayTable": [[25, 2, 1, "", "value_changed"], [25, 3, 1, "", "variety_metadata"]], "typhos.widgets.TyphosByteIndicator": [[25, 3, 1, "", "variety_metadata"]], "typhos.widgets.TyphosByteSetpoint": [[25, 1, 1, "", "numBits"], [25, 2, 1, "", "value_changed"]], "typhos.widgets.TyphosComboBox": [[25, 2, 1, "", "enum_strings_changed"], [25, 2, 1, "", "wheelEvent"]], "typhos.widgets.TyphosCommandButton": [[25, 2, 1, "", "enum_strings_changed"], [25, 3, 1, "", "variety_metadata"]], "typhos.widgets.TyphosCommandEnumButton": [[25, 2, 1, "", "enum_strings_changed"], [25, 3, 1, "", "variety_metadata"]], "typhos.widgets.TyphosDesignerMixin": [[25, 1, 1, "", "alarmSensitiveBorder"], [25, 1, 1, "", "alarmSensitiveContent"], [25, 1, 1, "", "channel"]], "typhos.widgets.TyphosLabel": [[25, 1, 1, "", "dynamic_font_size"], [25, 2, 1, "", "enum_strings_changed"], [25, 2, 1, "", "unit_changed"]], "typhos.widgets.TyphosLineEdit": [[25, 2, 1, "", "send_value"], [25, 1, 1, "", "setpointHistoryCount"], [25, 3, 1, "", "setpoint_history"], [25, 2, 1, "", "unit_changed"], [25, 2, 1, "", "widget_ctx_menu"]], "typhos.widgets.TyphosScalarRange": [[25, 2, 1, "", "connection_changed"], [25, 3, 1, "", "delta_signal"], [25, 1, 1, "", "delta_value"], [25, 3, 1, "", "variety_metadata"]], "typhos.widgets.TyphosSidebarItem": [[25, 2, 1, "", "embed_requested"], [25, 2, 1, "", "hide_requested"], [25, 2, 1, "", "open_requested"], [25, 2, 1, "", "treeWidgetChanged"]], "typhos.widgets.WaveformDialogButton": [[25, 1, 1, "", "parent_widget_class"], [25, 2, 1, "", "widget"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "attribute", "Python attribute"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "function", "Python function"], "5": ["py", "module", "Python module"], "6": ["py", "exception", "Python exception"]}, "objtypes": {"0": "py:class", "1": "py:attribute", "2": "py:method", "3": "py:property", "4": "py:function", "5": "py:module", "6": "py:exception"}, "terms": {"": [0, 1, 3, 7, 11, 13, 15, 24, 25], "0": [0, 24, 25], "0554368": 0, "0554376": 0, "0558336": 0, "0558505": 0, "1": [0, 3, 10, 22, 24, 25], "10": 0, "100": 15, "1000": [1, 9, 24], "14": 8, "1720572156": 0, "19": 24, "2": [0, 3, 22, 24, 25], "20": 4, "3": [0, 3, 8], "4": 0, "42": 9, "45": 9, "450": 9, "457": 9, "458": 9, "459": 9, "463": 9, "464": 9, "5": 0, "50": 9, "53": 9, "538": 9, "58": 9, "6": 0, "60": 24, "604": 14, "606": 14, "607": 14, "61": 9, "611": 14, "615": 14, "616": 14, "618": 14, "63": 9, "7": [0, 24], "70": 9, "71": 9, "73": 9, "8": [0, 9], "89": 9, "9": [0, 9], "90": 9, "91": 9, "92": 9, "94": 9, "96": 9, "98": 9, "A": [0, 1, 3, 7, 9, 10, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "As": [9, 25], "By": [0, 3, 13, 24], "For": [0, 1, 6, 8, 9, 11, 25], "If": [0, 1, 2, 3, 7, 8, 10, 11, 13, 24, 25], "In": [0, 2, 3, 8, 9, 11, 12, 13, 19, 24], "It": [0, 7, 8, 9, 10, 11], "No": [3, 9], "One": [2, 11, 25], "That": [0, 9, 24], "The": [1, 2, 3, 7, 9, 10, 11, 12, 22, 24, 25], "Their": 9, "Then": 6, "There": [0, 9, 10, 11, 13], "These": [0, 6, 7, 9, 11, 12, 13, 22, 25], "To": [0, 9, 11, 24], "With": [11, 25], "_": 0, "__init__": [4, 5], "__main__": [3, 10], "__name__": [3, 10], "_channel": 9, "_globaldescribecach": 24, "_globaldisplaypathcach": 24, "_globalwidgettypecach": 24, "_read_pv": 25, "_write_pv": 25, "a0": [24, 25], "a1": 24, "abl": 25, "about": [0, 2, 9, 13, 18, 22], "abov": [0, 8, 22], "abstract": [2, 6], "acceler": [0, 9, 25], "acceleration_attribut": 25, "accept": [0, 9], "access": [0, 6, 9, 24, 25], "accident": 9, "accomplish": 24, "accord": [12, 24, 25], "account": 9, "accumul": 22, "accur": [2, 16], "acquisit": 0, "act": 25, "action": [3, 9], "activ": [9, 25], "actual": 25, "ad": [2, 3, 5, 7, 9, 10, 25], "add": [0, 1, 3, 7, 8, 9, 22, 24, 25], "add_devic": [0, 3, 9, 10, 12, 25], "add_lazy_subdisplai": 3, "add_listen": 7, "add_method": [8, 25], "add_path": 24, "add_pv": 25, "add_pv_to_plot": 9, "add_row": 25, "add_sign": 25, "add_sub_devic": 25, "add_subdevic": 9, "add_subdisplai": [3, 9], "add_tool": [3, 9], "add_widget": 13, "addit": [0, 1, 3, 7, 9, 25], "additon": 2, "address": [6, 7, 9, 18, 24, 25], "adjust": [9, 25], "advanc": 6, "advantag": [0, 2, 12], "aesthet": 9, "affect": 9, "after": [0, 1, 9, 13, 25], "again": [0, 9, 10], "aid": 9, "alarm": [7, 9, 25], "alarm_disconnect": 25, "alarm_level": 25, "alarmkindlevel": 9, "alarmsensitivebord": 25, "alarmsensitivecont": 25, "alia": [3, 24, 25], "all": [0, 1, 2, 3, 7, 9, 10, 11, 12, 13, 18, 24, 25], "all_linked_attribut": 25, "all_linked_sign": 25, "alloc": 13, "allow": [0, 6, 9, 24, 25], "along": [3, 24], "alongsid": 9, "alreadi": [0, 3, 10, 25], "also": [0, 3, 8, 9, 10, 13, 24, 25], "altern": [0, 1, 2, 9, 25], "alwai": [0, 7, 9, 13], "ambigu": 25, "among": 9, "amount": 25, "an": [0, 1, 2, 3, 6, 7, 8, 9, 10, 11, 13, 15, 16, 24, 25], "anaconda": 9, "ancestor": 24, "ani": [0, 1, 2, 3, 7, 9, 11, 13, 22, 24, 25], "anim": [9, 24], "anleslac": 9, "annoi": 9, "annot": [3, 8, 25], "anoth": [3, 9, 10, 24], "anyon": 22, "anyth": [7, 9, 22], "api": 0, "app": [0, 10], "appear": 9, "appli": [0, 24, 25], "applic": [0, 1, 7, 9, 12, 25], "apply_standard_stylesheet": [0, 24], "approach": [9, 12], "appropri": [0, 3, 8, 9, 22], "ar": [0, 1, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 22, 24, 25], "arbitrari": [3, 24], "architectur": 13, "area": [3, 25], "arg": [0, 24, 25], "argument": [0, 1, 3, 9, 24, 25], "argv": [3, 10], "arrai": 25, "arrang": [9, 25], "artifact": 9, "asid": 0, "assemble_tools_menu": 25, "assign": 9, "associ": [0, 3, 9, 25], "assum": [0, 3, 7, 9, 10, 12], "assumpt": 9, "at1k4": 9, "at2l0": [9, 11], "attach": [7, 9], "attempt": [7, 8], "attenu": 9, "attr": [0, 24, 25], "attribut": [0, 4, 5, 7, 9, 11, 24, 25], "attributeerror": [9, 25], "augment": 9, "authent": 0, "author": [0, 9], "auto": [0, 1, 3], "autom": [6, 9], "automat": [0, 3, 9, 12, 25], "automaticali": 9, "avail": [0, 2, 3, 7, 9, 10, 11, 12, 24, 25], "averag": [6, 22], "avoid": [2, 3, 9, 24], "awar": [7, 9], "b": 8, "back": [0, 3, 7, 9, 25], "background": [9, 24, 25], "backward": [9, 22], "barebon": 3, "base": [0, 3, 6, 7, 9, 11, 22, 24, 25], "base_menu": 3, "basic": [0, 6, 12], "beamlin": 0, "bearer": 0, "beauti": 9, "becaus": 25, "becom": 9, "been": [9, 11], "befor": [0, 7, 9, 24, 25], "behav": 24, "behavior": [3, 9, 11, 22, 24, 25], "behind": 25, "being": [2, 3, 9, 22, 24], "below": [0, 25], "benchmark": [1, 9], "best": 3, "better": 9, "between": [0, 13], "big": 9, "bit": 25, "bitmask": 25, "blade_01": [9, 11], "bld_jinja_bump": 14, "block": [0, 9], "blueski": 0, "bombard": 6, "bool": [3, 8, 24, 25], "boolean": 8, "both": [0, 13, 24, 25], "bottom": 24, "box": 9, "break": 13, "bring": 24, "broadcast": 25, "broke": 9, "broken": 9, "brows": 11, "browser": 9, "bug": 22, "build": [0, 1, 9, 13, 19], "built": [0, 1, 3, 6, 9, 11, 24, 25], "bullet": 22, "button": [6, 9, 25], "c": [8, 9], "ca": [0, 9, 24], "cach": [9, 25], "calcul": [9, 25], "call": [0, 3, 7, 9, 10, 13, 24, 25], "callabl": [24, 25], "callback": [3, 9, 24, 25], "can": [0, 2, 3, 7, 8, 9, 10, 11, 12, 13, 24, 25], "canismarko": [9, 20], "cannot": 3, "capabl": [9, 24], "caproto": 9, "cascad": 24, "case": [0, 2, 3, 9, 11, 13], "cast": 7, "catch": [7, 9, 24], "categori": [3, 6, 9], "caus": [9, 18], "caveat": 2, "cell_width": 24, "certain": 9, "cfg": [1, 3, 10, 24], "chang": [0, 3, 13, 16, 22, 25], "channel": [0, 2, 7, 9, 24, 25], "channel_from_sign": 24, "channel_nam": 24, "charact": 0, "check": [0, 9, 11, 13, 24], "checklist": 9, "child": [2, 3], "children": [3, 9], "choic": [3, 9], "choos": [8, 9], "chosen": [24, 25], "ci": [9, 17, 19], "circl": 25, "cl": 24, "clash": 25, "class": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 16, 22, 24, 25], "classmethod": [0, 3, 25], "classnam": 1, "classnameher": [9, 11], "clean": [3, 9, 13, 24, 25], "clean_attr": 24, "clean_nam": 24, "cleanup": [9, 13], "clear": [9, 24, 25], "clear_error": [9, 25], "clear_layout": 24, "clearer": 16, "cli": [0, 3, 9, 10], "click": [0, 3, 12, 25], "clickablebitind": 25, "client": [0, 7], "clip": [9, 18], "clipboard": 3, "clone": 11, "close": [3, 7, 9, 25], "closeev": 25, "cloud": 17, "code": [0, 9, 13, 22, 24], "code_from_devic": 24, "code_from_device_repr": 24, "codebas": 9, "codepath": 9, "cohes": 6, "col": [1, 9, 24], "col_label": 25, "col_readback": 25, "col_setpoint": 25, "collect": [9, 13, 24], "collector": [0, 24], "color": [9, 24], "column": [1, 9, 24, 25], "com": 0, "combin": [0, 3, 6, 9, 24], "combo": 9, "combobox": 9, "come": [0, 2, 13, 16, 25], "comma": 0, "command": [0, 9, 10, 25], "commit": 9, "common": 3, "commun": 9, "compact": 9, "compat": 24, "complet": [0, 3, 9, 13, 25], "complex": 9, "compon": [0, 3, 6, 9, 18, 22, 24, 25], "component_nam": 0, "componentbutton": 9, "componentwalk": 24, "compos": 9, "compose_stylesheet": 24, "composed_styl": 24, "composit": [3, 9], "compositesignalpanel": 25, "concept": [0, 9], "conceptu": 22, "concern": 18, "concis": 25, "conda": 9, "condit": 9, "config": 25, "configur": [0, 1, 2, 3, 9, 10, 24, 25], "conflict": [0, 9, 24], "confluenc": [0, 9], "conftest": 13, "connect": [0, 1, 7, 9, 24, 25], "connect_thread": 24, "connection_chang": 25, "connection_status_monitor": 24, "connection_upd": 24, "connectslotsbynam": 24, "consid": [0, 25], "consist": [0, 6, 9, 25], "construct": 0, "constructor": [8, 25], "contain": [0, 1, 2, 3, 25], "content": [9, 25], "content_layout": 3, "context": [0, 3, 9, 12, 24, 25], "contextlib": 24, "contextmenuev": 24, "continu": 9, "contrast": [9, 25], "contribut": 22, "control": [0, 2, 3, 6, 9, 16, 25], "convei": 2, "conveni": [5, 6], "convent": 3, "convert": 7, "copi": 3, "copy_to_clipboard": 3, "core": [9, 11, 24], "correct": [0, 7, 9], "correl": 9, "correspond": [0, 2, 3, 6, 7], "could": [0, 9, 12], "count": [2, 22], "cours": 0, "cover": 22, "cpt": 24, "cpt1": 24, "cpt2": 24, "cpu": 15, "craft": [6, 9], "creat": [0, 1, 2, 3, 6, 7, 9, 10, 11, 13, 24, 25], "create_hide_empty_menu": 3, "create_kind_filter_menu": 3, "create_name_filter_menu": 3, "create_signal_widget": 25, "create_suit": [3, 10], "creation": 0, "credit": 22, "critic": 12, "crop": 9, "crucial": [0, 25], "ctrl": 9, "current": [1, 3, 7, 9, 11, 19, 25], "current_templ": 3, "custom": [0, 3, 9, 25], "customiz": 9, "cycl": [0, 24], "d": [8, 25], "dai": [12, 24], "dark": [0, 1, 9, 24], "data": [0, 2, 9, 24], "data_typ": 7, "databas": [0, 1, 2, 7, 10, 11], "databrok": 0, "dataplugin": 7, "db": 0, "de": 24, "debug": [1, 9], "decid": 11, "decor": [13, 24], "dedic": 9, "def": [3, 8, 10], "default": [0, 1, 3, 6, 7, 8, 9, 11, 13, 22, 24, 25], "default_display_typ": 3, "default_icon": 3, "default_tool": [0, 3], "defin": [1, 9, 11, 24], "defunct": 9, "delet": [9, 24], "delimit": 0, "delta": 25, "delta_sign": 25, "delta_valu": 25, "demand": 9, "deni": 25, "dens": 9, "depend": 25, "deploi": 9, "deploy": 9, "deprec": 3, "deprecationwarn": 9, "depth": 25, "desc": [24, 25], "describ": [2, 7, 9, 10, 24], "describe_cach": 24, "descript": [0, 2, 25], "design": [0, 9, 11, 18, 24], "desir": [0, 3, 7, 10], "destroi": 7, "detail": [1, 3, 9, 11, 24], "detailed_screen": [3, 9, 11], "detailed_templ": 3, "detailed_tre": 9, "determin": [2, 3, 7, 8, 9, 24], "determine_widget_typ": 25, "dev": 19, "develop": 6, "devic": [1, 2, 3, 6, 9, 10, 11, 12, 16, 24, 25], "device_cl": 3, "device_class": [0, 3], "device_displai": 3, "device_nam": [0, 3], "deviceconnectionmonitorthread": 24, "devicedisplai": 9, "dialog": 9, "dict": [3, 24, 25], "dictionari": [3, 8, 9, 24, 25], "did": 9, "differ": [6, 7, 9, 10, 12, 13, 16, 24], "difficulti": 13, "direct": [18, 24], "directli": [0, 2, 3, 9, 24, 25], "directori": [9, 11], "disabl": [9, 24, 25], "disconnect": [7, 9, 24, 25], "discov": 9, "discoveri": 9, "discuss": 9, "disk": 3, "displai": [1, 2, 4, 6, 9, 11, 24, 25], "display_class": 3, "display_format": 25, "display_path": 24, "display_templ": 3, "display_typ": [0, 1, 3], "display_widget": 3, "displaytyp": 3, "do": [0, 3, 9, 11, 13, 24], "dock": 3, "dockwidget": 3, "docstr": 9, "doctr_versions_menu": 9, "document": [9, 25], "doe": [1, 3, 9, 11, 22, 25], "don": [3, 7, 8, 18, 22, 25], "done": [2, 11], "done_mov": 9, "dot": [0, 7, 25], "dotted_nam": 25, "dpi": 9, "dramat": 16, "drastic": 13, "draw": 13, "drawn": 25, "driver": 9, "drop": 9, "due": 9, "dump": 24, "dump_grid_layout": 24, "duplic": [2, 24], "dure": [1, 9, 24], "dynam": [9, 18, 25], "dynamic_font_s": 25, "e": [0, 7, 8, 9, 11, 13, 24, 25], "each": [0, 1, 6, 7, 8, 9, 12, 24, 25], "earli": [1, 9], "eas": 12, "easi": [0, 9], "easier": [9, 12, 24], "edit": 24, "editor": 25, "effect": [1, 7], "effici": 9, "either": [0, 6, 24], "element": [0, 24, 25], "ellips": 3, "els": 22, "elsewher": 9, "emb": [3, 9, 10], "embed": [1, 3, 9, 11, 24, 25], "embed_request": 25, "embed_subdisplai": 3, "embedded_screen": [9, 11], "embedded_templ": 3, "emit": [7, 24, 25], "empti": [3, 9, 24], "enabl": [3, 25], "enclos": 9, "encount": 24, "end": 24, "engin": [1, 2, 3, 9, 11, 24], "engineering_screen": [9, 11], "engineering_templ": 3, "enh_positioner_res": 14, "enh_wait_statu": 14, "enough": [2, 25], "ensur": [0, 2, 9], "enter": 24, "entir": [2, 3, 9], "entri": [8, 9, 11], "entrypoint": 9, "enum": [3, 9, 20, 24, 25], "enum_str": [2, 7, 9, 25], "enum_strings_chang": 25, "enumer": [2, 9], "environ": [0, 1, 7, 9, 11, 12, 13, 24], "epic": [0, 1, 2, 6, 9], "epicsmotor": [1, 9], "epicssign": [9, 25], "epicssignalro": 25, "equival": 9, "error": [9, 16, 24, 25], "error_label": 25, "error_messag": 25, "error_message_attribut": 25, "especi": 0, "etc": [9, 22], "ev": [3, 24, 25], "evalu": 24, "even": [9, 13, 24], "event": [3, 24, 25], "event_typ": 24, "eventfilt": 24, "ever": [7, 9], "everi": 0, "exactli": 11, "examin": 8, "exampl": [1, 3, 8, 9, 11], "except": [7, 9, 24], "exec_": [0, 10, 13], "execut": [1, 7, 9, 10, 25], "exist": [0, 3, 7, 9, 24], "exit": [1, 9, 13, 24], "exit_aft": 1, "expand": [3, 8, 9, 24], "expect": [3, 7, 9, 11, 25], "experi": 2, "experiment": [6, 12], "expert": [9, 25], "explicit": [0, 25], "explicitli": 25, "exponenti": 9, "export": 13, "express": 2, "extend": 9, "extens": [9, 24], "extern": [0, 9, 12, 13], "extra": [2, 3, 9, 11], "f": 1, "facil": 0, "facilit": 16, "fact": [0, 3, 9], "factori": 25, "fail": [9, 25], "failed_mov": 25, "failur": [13, 17], "fairli": 13, "fake": [1, 9, 24], "fake_cl": 24, "fall": 3, "fallback": [9, 25], "fals": [1, 3, 7, 8, 9, 24, 25], "fault": [9, 13], "favor": [3, 9, 24], "feel": [0, 9, 24], "fetch": 25, "few": [0, 13, 25], "fewer": [9, 12, 25], "field": [0, 9, 12, 24, 25], "file": [0, 1, 3, 9, 10, 11, 24, 25], "file_or_buff": 24, "filenam": [1, 3, 9, 22, 24], "filename_format": 3, "filename_pattern": 9, "filesystem": 3, "fill": [3, 9, 11, 22, 25], "fill_color": 24, "filter": [3, 9, 24, 25], "filter_bi": 24, "filter_set": 25, "filter_sign": 25, "final": [0, 3], "find": [0, 3, 7, 9, 11, 24, 25], "find_file_in_path": 24, "find_parent_with_class": 24, "find_root_widget": 24, "find_sign": [7, 9], "find_templates_for_class": 24, "finish": 0, "fire": 24, "first": [0, 3, 7, 9, 12, 24], "fit": 9, "fix": [13, 15, 17, 18, 19, 20, 22, 25], "fix_enum_handl": 14, "fixtur": 13, "flag": 0, "flake8": 9, "flash": 6, "flat": 9, "flatten": [24, 25], "flatten_tre": 24, "flexibl": [2, 6], "flip": 3, "float": [8, 9, 25], "flow": [1, 9], "focu": 24, "follow": [0, 3, 9, 11, 12, 24], "font": [9, 18, 25], "fontawesom": 3, "foo": 8, "forc": [3, 24], "force_st": 3, "force_templ": 3, "forg": 9, "form": [0, 3, 10, 12, 25], "format": [0, 1, 9, 24], "found": [0, 3, 9, 11], "frame": 9, "frameoneditfilt": 24, "freez": 9, "friendlier": 16, "from": [0, 2, 3, 7, 8, 9, 10, 11, 13, 16, 24, 25], "from_class": 3, "from_config": [0, 7], "from_devic": [0, 3, 12, 25], "from_sign": 25, "fulfil": 8, "full": [3, 7, 9, 24, 25], "fulli": 24, "func": [24, 25], "function": [0, 3, 5, 6, 7, 8, 9, 10], "functiondisplai": 25, "functionpanel": [8, 25], "functool": 9, "further": 0, "fusion": [0, 24], "futur": [9, 13, 24], "g": [0, 7, 9, 11, 13, 24], "garbag": [9, 13, 24], "gener": [0, 2, 3, 5, 6, 7, 9, 10, 11, 16, 24, 25], "generate_context_menu": [3, 25], "get": [3, 9, 12, 24, 25], "get_all_signals_from_devic": 24, "get_best_templ": 3, "get_compon": 24, "get_device_from_fake_class": 24, "get_global_describe_cach": 24, "get_global_display_path_cach": 24, "get_global_widget_type_cach": 24, "get_icon": 3, "get_native_method": 9, "get_subdisplai": [3, 9], "get_variety_metadata": 24, "getattr": 24, "gif": 9, "github": [0, 9, 22], "give": [3, 22], "given": [3, 7, 8, 24, 25], "glanc": 0, "glean": 0, "glob": 24, "global": [24, 25], "go": [3, 25], "goe": 2, "good": 24, "grab": 24, "grab_hint": 9, "grab_kind": 9, "grabkinditem": 24, "grai": 9, "grid": [1, 9], "group": [0, 3, 25], "guarante": [0, 7, 9, 24], "guess": 8, "gui": [0, 9], "guidanc": 11, "h": 1, "ha": [0, 2, 3, 7, 8, 9, 10, 11, 12, 13, 16, 25], "hacki": 9, "had": [9, 11, 13], "hand": [0, 7, 9, 11, 25], "handl": [0, 7, 9, 20, 24], "handler": 9, "handshak": 0, "happen": [9, 13], "happi": [1, 7, 9, 10, 11, 24], "happi_cfg": [0, 1, 24], "happichannel": 2, "happiconnect": 7, "happiplugin": 2, "hard": 13, "hardwar": [13, 25], "have": [0, 1, 3, 9, 10, 11, 13, 22, 25], "header": [0, 9, 25], "heavi": 9, "height": 9, "help": [0, 1, 3, 9, 12, 13], "help_url": 0, "helper": [0, 9, 22, 24], "here": [0, 9, 11, 22, 24], "heurist": 9, "hex": 24, "hidden": [1, 3, 8, 9], "hide": [1, 3, 9, 24, 25], "hide_empti": 3, "hide_param": 8, "hide_request": 25, "hide_subdisplai": [3, 9], "hide_unavail": 24, "hideempti": 3, "hierarch": 25, "hierarchi": [3, 6, 25], "high": 25, "high_limit_switch": 25, "high_limit_switch_attribut": 25, "high_limit_travel": 25, "high_limit_travel_attribut": 25, "highest": 24, "hint": [0, 3, 9, 25], "histogram": 25, "histori": 25, "hold": 24, "hook": [3, 9, 13, 25], "hope": 12, "horizont": [1, 3, 9], "host": 0, "hotfix": 9, "how": [9, 11, 25], "howev": [6, 12, 25], "http": 0, "human": [0, 24], "hundr": 9, "i": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 22, 24, 25], "icon": [3, 25], "ideal": 13, "identifi": [2, 9, 24], "ignor": [0, 9, 24], "ii": 6, "ill": 13, "imag": [3, 9, 24, 25], "imagedialogbutton": 25, "immedi": [9, 24, 25], "implement": [3, 9, 13, 18, 25], "import": [0, 2, 3, 6, 7, 9, 10, 13], "improv": [0, 9, 16, 24], "includ": [0, 1, 3, 9, 11, 12, 16, 24, 25], "include_lazi": 24, "include_mro": 24, "include_pydm": 24, "inclus": 9, "incompat": [9, 21, 22], "incorpor": 24, "increas": 9, "independ": 0, "indic": [3, 8, 9, 25], "indirect": 24, "individu": [9, 25], "inform": [0, 2, 3, 6, 7, 9, 11, 12, 24, 25], "inherit": [9, 24, 25], "init": 3, "init_channel": 25, "initi": [0, 1, 3, 9, 25], "input": [3, 7, 9, 24], "insid": [3, 9, 10, 25], "inspect": [0, 8], "instal": [0, 1, 7, 9, 13], "instanc": [1, 3, 9, 10, 24], "instanti": [0, 3, 9, 12, 25], "instead": [0, 1, 2, 3, 6, 9, 25], "int": [3, 8, 24, 25], "integ": 25, "integr": [0, 9, 12], "intend": [3, 7, 9, 24], "intent": [9, 12, 22], "interact": [9, 25], "intercept": 9, "interfac": [0, 2, 3, 6, 7, 9, 12, 24, 25], "intern": [0, 9], "interpret": [24, 25], "intflag": 9, "introspect": [9, 24], "intuit": 0, "invalid": 0, "invoc": 1, "invok": [0, 25], "ioc": [9, 25], "ipython": 0, "is_fake_device_class": 24, "is_signal_ro": [9, 24], "is_standard_templ": 24, "issu": [0, 3, 9, 13, 15, 17, 18, 20, 22], "item": [3, 9, 24, 25], "iter": [3, 9, 24], "itet": 24, "its": [0, 7, 9, 13, 24, 25], "itself": [0, 3, 24], "javascript": 9, "jinja": 21, "jinja2": 9, "jira": 3, "json": 0, "just": [0, 2, 3, 11, 25], "keep": [0, 2, 7, 9], "kei": [2, 11, 24], "kept": 7, "keyword": [8, 9, 24, 25], "kind": [0, 1, 2, 3, 9, 25], "kindlevel": [9, 25], "klass": [3, 24], "klauer": 9, "know": [0, 2], "known": 24, "kwarg": [0, 3, 7, 24, 25], "label": [3, 25], "label_text_from_attribut": 25, "laboratori": 6, "lag": 25, "lai": 9, "land": 9, "larg": [6, 9, 11, 13, 22, 25], "larger": 9, "last": [9, 25], "later": [10, 24], "latest": [9, 13, 19], "launch": [1, 9, 11, 25], "launcher": 9, "layer": [2, 9, 25], "layout": [1, 3, 9, 24, 25], "lazi": [3, 9, 24], "lazy_wait_for_connect": 24, "lazysubdisplai": 9, "lcl": [9, 11], "lead": [9, 22, 25], "least": 24, "legaci": [9, 24], "less": [9, 12], "let": 8, "level": [0, 3, 4, 9, 11, 24], "librari": [6, 9, 22, 24], "lifetim": 9, "light": [0, 6, 9, 24], "lightpath": 9, "like": [0, 2, 3, 8, 9, 11, 24, 25], "limit": [9, 25], "line": [0, 9, 10, 24], "link": [0, 9, 25], "link_signal_to_widget": 24, "linked_attribut": 24, "linux": 11, "list": [0, 3, 9, 11, 22, 24, 25], "list_": 24, "listen": 7, "littl": 6, "ll": [0, 11], "load": [0, 1, 3, 9, 11, 24, 25], "load_best_templ": 3, "load_devic": 0, "load_suit": [10, 24], "load_ui_fil": [9, 24], "loading_complet": 25, "loading_timeout_m": 24, "local": 9, "locat": [1, 3, 10, 24], "log": [1, 4, 9], "logger": 9, "long": 9, "longer": [9, 21, 24], "look": [0, 3, 8, 9, 24, 25], "lost": 9, "lot": [0, 9], "low": 25, "low_limit": 24, "low_limit_switch": 25, "low_limit_switch_attribut": 25, "low_limit_travel": 25, "low_limit_travel_attribut": 25, "lucid": 9, "m": [0, 9], "maco": 9, "macro": [3, 9, 11, 24], "made": [0, 3, 9, 22, 24], "magic": 9, "mai": [0, 1, 3, 7, 9, 13, 24, 25], "mail": 0, "main": [0, 3, 9], "maint_fix_ci": 14, "major": [0, 3, 9, 10, 13, 25], "make": [0, 2, 8, 9, 12, 16, 22, 24], "make_fake_devic": 24, "make_identifi": 24, "manag": [6, 9, 24], "mandat": 2, "mani": [0, 1, 2, 6, 9, 12, 22, 24, 25], "manifest": [9, 13], "manual": [3, 8, 9, 13], "mark": [9, 13, 24], "match": [0, 9, 24, 25], "max": 25, "mayb": 2, "md": 11, "mean": [2, 3, 6, 10], "meant": [0, 7], "mechan": [7, 9], "member": [3, 9], "menu": [3, 9, 25], "messag": [1, 9, 16, 24, 25], "metadata": [0, 3, 7, 9, 24, 25], "metadata_dict": 24, "method": [0, 2, 3, 4, 5, 7, 9, 10, 12, 22, 24], "method_nam": 25, "method_panel": 8, "methodtyp": 24, "migrat": 9, "millisecond": 24, "min": 25, "mind": 11, "minim": 24, "minimum": 9, "minimumsizehint": 3, "minor": 9, "mirror": 9, "miscellan": 9, "misidentifi": 9, "miss": [7, 9], "mix": 25, "mixin": 25, "mock": [8, 9], "mode": [0, 9], "modern": 9, "modifi": [9, 25], "modul": [1, 3, 8, 9, 11], "mongodb": 0, "monitor": [7, 9, 24], "month": 9, "more": [0, 2, 6, 9, 11, 16], "most": [0, 3, 9, 24, 25], "motion": 25, "motor": [0, 9, 18, 25], "motor_acceler": 0, "motor_is_mov": 25, "motor_setpoint": 0, "motor_veloc": 0, "mous": [3, 9], "mousepressev": [3, 25], "move": [9, 11, 25], "movement": 25, "moving_attribut": 25, "moving_ind": 25, "movn": 9, "mro": [11, 24], "mtr": 0, "much": 9, "multilin": 25, "multipl": [0, 3, 7, 9, 10, 24], "multiprocess": 9, "multitud": 0, "must": [24, 25], "my": [0, 3], "my_devic": [0, 3], "my_kei": 0, "my_motor": 0, "my_motor_user_readback": 0, "my_sign": 2, "my_valu": 0, "n": [15, 16, 17, 18, 19, 20, 21, 22, 23], "name": [0, 1, 2, 3, 5, 7, 9, 10, 11, 22, 24, 25], "name_filt": 25, "namefilt": 25, "namespac": 11, "nation": 6, "natur": 9, "navig": 9, "nd": 25, "ndarrai": [7, 25], "necessari": [0, 6, 9], "need": [0, 3, 7, 9, 13, 18, 22, 24, 25], "neg": 25, "negative_tweak": 25, "nest": [3, 6, 9, 11], "new": [0, 3, 6, 7, 22, 24, 25], "new_descript": 24, "new_enum_str": 25, "new_jira_widget": 3, "new_unit": 25, "new_val": 7, "new_waveform": 25, "new_write_access": 25, "newer": [9, 24], "next": [9, 25], "nicer": 24, "no_alarm": 7, "no_cleanup_check": 13, "no_device_lazy_load": 24, "no_gc": 13, "noapp": 13, "non": [1, 9, 24, 25], "none": [3, 4, 5, 7, 9, 10, 13, 24, 25], "normal": [0, 3, 9, 11, 25], "normalize_display_typ": 3, "note": [2, 9, 11, 16, 22, 25], "notifi": [9, 22], "notimpl": 25, "now": [0, 2, 9, 16], "np": [7, 25], "nsl": 6, "nullcontext": 24, "num_col": 25, "num_point": 25, "number": [1, 9, 11, 22, 24, 25], "numbit": 25, "obj": [24, 25], "object": [0, 2, 3, 6, 7, 9, 10, 11, 12, 25], "objectconnectionmonitorthread": 24, "obscur": 6, "observ": 9, "obviou": 0, "occur": 13, "off": 9, "offscreen": 13, "offset": 25, "often": [6, 13], "omit": [1, 3, 9, 24, 25], "omit_nam": 25, "omitnam": 25, "onc": [0, 10, 24, 25], "one": [2, 3, 9, 11, 12, 24, 25], "ones": [0, 13], "onli": [0, 3, 6, 7, 9, 10, 13, 17, 24, 25], "open": [1, 3, 9, 24, 25], "open_context_menu": [3, 25], "open_request": 25, "oper": [0, 2, 6, 9, 12, 25], "ophyd": [0, 1, 3, 5, 6, 7, 9, 12, 25], "ophyd_sign": 25, "ophyditem": 24, "ophydobj": [24, 25], "opt": 25, "optino": 25, "option": [0, 1, 3, 8, 9, 10, 22, 24, 25], "orang": 9, "order": [0, 2, 3, 7, 8, 9, 11, 12, 24, 25], "ordereddict": [0, 25], "organ": 0, "origin": [6, 9, 11], "orphan": 9, "oserror": 24, "osx": 9, "other": [0, 1, 2, 8, 9, 11, 24, 25], "otherwis": [3, 9, 24, 25], "our": [0, 2, 9, 13, 25], "out": [0, 3, 9, 22, 24], "output": [1, 2, 9], "outsid": [0, 9, 11], "over": [1, 9, 24], "overal": 0, "overrid": [0, 1, 3, 9, 24, 25], "overridden": [3, 7, 25], "own": [0, 9, 11], "owner": 24, "packag": [0, 1, 9, 11, 13, 24], "page": 9, "paint": 24, "pair": 3, "panel": [0, 3, 8, 9], "param": [24, 25], "param1": 1, "paramet": [1, 3, 5, 7, 8, 24, 25], "parametertre": 3, "parent": [3, 4, 5, 7, 9, 24, 25], "parent_widget_class": 25, "pars": 9, "part": 9, "partial": [3, 9, 24], "particularli": 9, "pass": [0, 2, 3, 7, 8, 13, 24, 25], "past": 9, "patch": 24, "patch_connect_slot": 24, "path": [0, 7, 9, 11], "pathlib": [9, 11, 24], "pattern": [1, 12], "pcd": 9, "pcdsdevic": [9, 11, 19], "pcdsmotorbas": 9, "peg": 15, "pen": 9, "per": [9, 11], "perf_resize_text": 14, "perform": [7, 9, 24], "perhap": 0, "persist": 9, "person": [0, 9], "pertin": 0, "pick": 9, "piec": [2, 9], "pin": [3, 9, 19], "pip": 9, "place": [0, 3, 6, 9, 11, 24, 25], "plan": 9, "platform": 13, "pleas": [0, 9], "plot": [3, 5, 9], "plugin": [0, 3, 9, 13], "png": 9, "point": [9, 11, 22, 24], "poor": 18, "pop": [3, 9], "pop_out_help": 3, "popbar": 9, "popul": [0, 2, 3, 12, 25], "portion": 7, "posit": [1, 3, 9, 25], "position": [0, 9, 13, 15, 16, 18, 25], "positionerbas": [9, 11], "positionerwidget": 9, "positive_tweak": 25, "possibl": [9, 24], "potenti": 24, "power": [6, 9], "pr": 22, "practic": 0, "pre": [0, 9, 12], "preced": 3, "precis": [2, 7, 9], "prefer": 9, "prefix": [0, 3, 11], "prerequisit": 0, "present": 9, "press": 3, "prevent": [9, 24, 25], "previou": 9, "previous": [9, 24, 25], "primit": 13, "principl": 25, "print": 1, "prior": [1, 9, 24], "prioriti": [0, 1, 9, 11, 24], "problemat": 9, "proc": 25, "procedur": 6, "process": [0, 1, 3, 6, 9, 10, 24], "process_widget": 3, "processev": 13, "profil": [1, 9], "profile_modul": 1, "profile_output": 1, "program": [9, 24], "progress": 9, "proof": 9, "properli": [2, 9, 10], "properti": [0, 1, 3, 9, 24, 25], "property_attr": 24, "proportion": 9, "protocol": [7, 9, 24], "prototyp": 9, "provid": [0, 1, 2, 3, 6, 9, 10, 22, 24, 25], "pull": 9, "punch": 25, "pure": 0, "purpos": [0, 1, 7], "push": 7, "pushbutton": 25, "put": [0, 3, 9], "put_valu": 7, "pv": [0, 3, 6, 9, 22, 24, 25], "pv_name_her": 0, "pvname": 0, "py": [9, 10, 13, 24], "py3": 24, "pydm": [0, 2, 6, 9, 11, 24, 25], "pydm_displays_path": [11, 24], "pydm_stylesheet": [0, 24], "pydm_stylesheet_include_default": [0, 24], "pydmconnect": 7, "pydmdrawingwidget": 9, "pydmenumcombobox": 25, "pydmimageview": 25, "pydmlabel": 25, "pydmlineedit": 25, "pydmlogdisplai": 9, "pydmslid": 25, "pydmtimeplot": 9, "pydmwaveformplot": 25, "pydmwidget": [2, 25], "pypi": 9, "pyproject": 9, "pyqt": [6, 9, 10, 24], "pyqt5": 24, "pyqt_class_from_enum": 24, "pyqtgraph": 9, "pyqtsign": 24, "pytest": [9, 13], "pytest_runtest_cal": 13, "python": [0, 3, 6, 7, 9, 10, 24], "pytmcsign": 9, "pyupgrad": 9, "q_enum": 24, "qapp": 13, "qapplic": [0, 10, 24], "qcheckbox": 8, "qcloseev": 25, "qcontextmenuev": 24, "qdarkstylesheet": [1, 9, 24], "qdialog": 25, "qdockwidget": 25, "qevent": [3, 24, 25], "qfiledialog": [3, 10], "qgridlayout": 24, "qgroupparameteritem": 3, "qicon": 3, "qimag": [3, 24], "qlabel": 24, "qlayout": [3, 24], "qlineedit": [8, 24], "qmainwindow": 25, "qmenu": [3, 25], "qmetaobject": 24, "qmouseev": 25, "qobject": 24, "qpa": 13, "qpopbar": 3, "qpushbutton": [9, 25], "qresizeev": 25, "qscrollarea": 3, "qsize": 3, "qss": [0, 9, 24], "qstyle": 0, "qt": [3, 9, 11, 13, 25], "qt_qpa_plugin": 13, "qtbot": 13, "qtcore": [3, 24, 25], "qtdesign": 0, "qtgui": [3, 24], "qthreadpool": 24, "qtpy": [0, 9, 10], "qtreewidget": 25, "qtwidget": [0, 3, 10, 24, 25], "queri": [2, 3, 10, 25], "quick": [0, 9], "qwheelev": 25, "qwidget": [3, 5, 24, 25], "race": 9, "rais": [3, 9, 24, 25], "raise_window": 24, "random": 24, "random_color": 24, "rang": 25, "rapid": 25, "rargument": 24, "rather": [9, 25], "re": [10, 25], "reach": 0, "read": [0, 9, 24, 25], "read_cl": 25, "read_configur": 0, "read_kwarg": 25, "read_onli": 25, "read_pv": 25, "readabl": [0, 18, 24], "readback": [0, 25], "readback_attribut": 25, "readi": 9, "reason": [0, 9], "reboot": 9, "receiv": [7, 9, 25], "recip": 9, "recommend": [0, 11], "record": 25, "recurs": 3, "redesign": 9, "redirect": 9, "reduc": 9, "redund": [9, 13], "refactor": 16, "refer": [2, 3, 7, 10], "referenc": [7, 24], "reflect": 6, "refresh": [3, 9], "regard": 9, "regardless": 0, "regist": [0, 2, 3, 7, 9, 24], "register_cli": [0, 7], "register_sign": [2, 7], "registri": [7, 9], "reimplement": 25, "reinvent": 6, "relat": [9, 11, 13, 24], "relaunch": 24, "releas": 22, "relev": [6, 25], "reli": 9, "reload": 24, "reload_widget_stylesheet": 24, "reloc": 9, "remain": 25, "remov": [7, 9, 24], "remove_connect": 9, "remove_duplicate_item": 24, "remove_listen": 7, "renam": 9, "render": [0, 9, 13], "replac": [0, 3, 9, 11, 22, 24], "repo": [9, 11], "report": [3, 7, 9], "repositori": [0, 9, 11], "repr": 24, "repres": [0, 6, 22, 25], "represent": 9, "request": [0, 3, 7, 9, 25], "requir": [0, 2, 7, 9, 12, 19, 24, 25], "resembl": 0, "reserv": 25, "reset": 9, "reshap": 25, "resid": 9, "resiz": [9, 15, 18], "resizeev": 25, "resourc": 13, "respect": [0, 9, 25], "respond": 24, "rest": 0, "restor": 24, "result": [1, 3, 7, 9, 24], "retain": [24, 25], "retriev": 24, "return": [3, 6, 7, 9, 10, 24, 25], "reveal": 0, "review": 22, "rework": [9, 18], "rewrit": 22, "richer": 2, "root": [0, 3, 24], "rotatingimag": 9, "rout": 10, "routin": 9, "row": [15, 18, 24, 25], "row_count": 25, "rst": 22, "run": [1, 9, 10, 11, 13, 24, 25], "runtim": [6, 9], "same": [0, 9, 10, 11, 13, 24, 25], "sanit": 9, "satisfi": 9, "save": [0, 1, 3, 9, 24], "save_device_screenshot": [3, 9], "save_screenshot": [3, 9], "save_suit": [3, 10, 24], "saved_suit": 10, "scalar": 25, "scale": 18, "schema": 24, "scheme": 0, "scm": 9, "screen": [0, 1, 3, 6, 9, 11, 25], "screenshot": [1, 3, 9, 24], "screenshot_filenam": 1, "scrip": 9, "script": [6, 9], "scroll": [3, 9], "scroll_opt": 3, "scrollabl": [1, 3], "scrollbar": [1, 3, 9], "scrollopt": 3, "seamless": 0, "search": [3, 24], "search_for_templ": 3, "second": [1, 9], "secondli": 12, "section": [9, 22], "see": [0, 3, 9, 11, 25], "seen": 0, "segfault": [13, 17], "segment": 13, "select": [0, 1, 9, 25], "self": [3, 24, 25], "semi": 3, "send": [2, 7, 25], "send_new_meta": 7, "send_new_valu": 7, "send_valu": 25, "send_value_sign": 25, "sent": [0, 7], "separ": [3, 9, 12], "sequenc": 24, "serv": 9, "server": 0, "servic": 12, "session": 0, "set": [0, 3, 7, 9, 10, 11, 13, 24, 25], "set_device_displai": [3, 25], "set_displai": 25, "set_edit_styl": 24, "set_no_edit_styl": 24, "set_valu": 25, "setpoint": [0, 9, 25], "setpoint_attribut": 25, "setpoint_histori": 25, "setpointhistorycount": 25, "setstylesheet": 24, "setup": [7, 9], "setup_data": 9, "setuptool": 9, "setvis": 25, "sever": [0, 7, 9, 25], "shape": 9, "share": [0, 9], "shell": 0, "ship": [0, 1, 11], "short": [24, 25], "shortcut": [0, 3], "shorten": 1, "should": [0, 3, 6, 9, 13, 22, 25], "show": [0, 1, 3, 6, 9, 10, 13, 24, 25], "show_dialog": 25, "show_displai": 3, "show_empti": 3, "show_expert_button": 25, "show_kind": 25, "show_nam": 25, "show_subdisplai": 3, "show_switch": 3, "show_ui_type_hint": 25, "show_underlin": 3, "showconfig": 25, "showhint": 25, "shown": [0, 1, 3, 9, 25], "shownam": 25, "shownorm": 25, "showomit": 25, "showunit": 25, "sidebar": [3, 9, 25], "sidebarparamet": 3, "sig": [0, 2, 3, 7, 9], "sigint": 9, "signal": [3, 5, 6, 7, 9, 16, 24], "signal_nam": 25, "signal_own": 24, "signal_registri": 7, "signal_typ": 7, "signalconnect": [7, 9], "signaldialogbutton": 25, "signalord": 25, "signalpanel": [2, 9, 25], "signalplugin": [2, 9, 20], "signalro": 9, "signalwidgetinfo": [24, 25], "signatur": [8, 24], "signific": 22, "sim": [0, 9, 24], "sim_motor": 7, "similar": [0, 9, 25], "simpler": 9, "simpli": [0, 25], "simplifi": 9, "simul": 0, "sinc": [3, 9], "singl": [0, 3, 9], "singleton": 24, "site": [0, 9], "situat": 9, "size": [1, 9, 18, 25], "sizer": 9, "skip": [7, 13], "slac": 6, "slider": 25, "slightli": 13, "slot": 24, "small": 9, "smaller": 9, "so": [0, 7, 9, 25], "soft": 25, "some": [0, 5, 9, 13, 25], "someth": 13, "sort": [6, 9, 25], "sortbi": 25, "sourc": [0, 3, 4, 5, 7, 10, 24, 25], "space": [9, 18], "spam": 9, "span": 25, "spawn": 9, "special": 9, "specif": [0, 1, 3, 9, 11, 18, 24, 25], "specifi": [0, 1, 2, 3, 6, 9], "sphinx": [1, 9, 21], "split": 9, "spot": 9, "stabil": 9, "stabl": 9, "stack": 24, "stand": 24, "standalon": 12, "standard": [0, 9, 10, 25], "start": [0, 1, 3, 7, 9, 24], "startup": [3, 9], "state": [3, 7, 9, 25], "static": [7, 24], "statu": [9, 16, 24, 25], "stdout": 1, "step": [2, 13], "still": [6, 9, 11, 24], "stop": [9, 24, 25], "store": [0, 1, 2, 7, 10, 11], "stori": 0, "str": [0, 3, 7, 9, 11, 24, 25], "stream": 1, "string": [0, 1, 2, 3, 9, 24, 25], "strip": 24, "strip_par": 24, "structur": [0, 6, 9, 12], "style": [0, 1, 9, 24], "stylesheet": [1, 9, 24], "stylesheet_add": 1, "stylesheet_overrid": 1, "sub": [3, 9, 11, 25], "subclass": [3, 7, 9, 11, 25], "subdevic": 3, "subdisplai": [1, 3, 9, 25], "submodul": [0, 1, 9], "subscrib": 24, "subscript": [2, 24], "subscription_context": 24, "subscription_context_devic": 24, "subset": 0, "substitut": [3, 22, 24], "subtl": 9, "success": [9, 24, 25], "successful_mov": 25, "suffix": [0, 24], "suggest": [0, 3, 22], "suggest_composite_screen": 3, "suit": [0, 1, 9, 10, 13, 24, 25], "suitabl": [1, 24], "suite_titl": 1, "summar": 25, "summari": 24, "superclass": 24, "suppli": 24, "support": [0, 9, 24, 25], "sure": [2, 9, 22], "switch": [3, 9, 25], "switcher": [3, 9], "sy": [3, 10], "synaxi": [0, 9], "sync": 0, "syntax": 9, "system": [0, 2, 3, 6, 24], "systemerror": 24, "t": [3, 7, 8, 9, 18, 22, 25], "tab": [6, 8], "tabl": [24, 25], "tabular": 25, "tag": [9, 22], "tailor": 9, "take": [0, 1, 2, 9, 16, 24, 25], "take_top_level_widget_screenshot": 24, "take_widget_screenshot": 24, "taken": 9, "talk": 0, "tangkong": [9, 21], "teardown": 9, "tell": 0, "templat": [1, 2, 3, 9, 10, 24], "templateenum": 3, "ters": 0, "test": [1, 19], "text": [3, 9, 24, 25], "textedit": 25, "than": [9, 13, 25], "thefor": 25, "thei": [3, 7, 8, 10, 11, 12, 13, 16, 25], "them": [0, 1, 3, 7, 8, 9, 12], "theme": 24, "themselv": [3, 9], "therefor": [12, 24, 25], "thi": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 22, 24, 25], "thing": 0, "this_sign": 2, "those": [0, 1, 3, 24], "thought": 6, "thread": [9, 24], "threadpoolwork": 24, "three": [0, 9, 11], "through": [0, 2, 7, 9, 10, 24], "throw": 9, "time": [0, 7, 9, 12, 13, 24, 25], "timechartdisplai": 5, "timeout": [9, 16, 24], "timeout_messag": 24, "timeseri": 25, "timestamp": [0, 25], "titl": [9, 25], "to_imag": 3, "togeth": 0, "toggl": [3, 25], "toggle_displai": 3, "toggle_help": 3, "toggle_request": 3, "toggleabl": 25, "togglepanel": 9, "token": [0, 9], "toler": 9, "toml": 9, "tool": [0, 9, 25], "tool_nam": 3, "toolbar": [3, 9], "toolclass": 3, "toolkit": 6, "tooltip": 25, "top": [0, 3, 9, 11, 24], "top_level_group": 3, "traceback": 9, "track": [7, 9, 25], "tradit": 9, "transit": [0, 9], "transmit": 9, "travel": 25, "travi": 9, "tree": [3, 9, 11, 24], "treewidgetchang": 25, "trigger": [3, 25], "true": [0, 1, 3, 9, 24, 25], "try": [9, 13], "tst": 0, "tst_fix_ci_saga": 14, "tupl": [24, 25], "turn": 1, "tutori": 11, "tweak": 25, "tweak_valu": 25, "tweakabl": [9, 25], "two": [0, 3, 9, 10, 11, 12, 24], "type": [1, 2, 3, 6, 7, 8, 9, 11], "typeerror": [9, 24], "typho": [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 24, 25], "typhon": 9, "typhondisplai": 9, "typhos_cli": [3, 10], "typhos_help_head": 0, "typhos_help_headers_host": 0, "typhos_help_token": 0, "typhos_help_url": 0, "typhos_jira_email_suffix": 0, "typhos_jira_head": 0, "typhos_jira_token": 0, "typhos_jira_url": 0, "typhosalarm": 25, "typhosalarmcircl": [9, 25], "typhosalarmellips": 9, "typhosalarmpolygon": 9, "typhosalarmrectangl": 9, "typhosalarmtriangl": 9, "typhosarrayt": 25, "typhosbas": [0, 9, 24], "typhosbyteind": 25, "typhosbytesetpoint": 25, "typhoscombobox": 25, "typhoscommandbutton": 25, "typhoscommandenumbutton": 25, "typhoscompositesignalpanel": [9, 25], "typhosconsol": 9, "typhosdesignermixin": 25, "typhosdevicedisplai": [0, 1, 8, 9, 12, 25], "typhosdisplai": 9, "typhosdisplayconfigbutton": 3, "typhosdisplayswitch": [3, 9], "typhosdisplayswitcherbutton": 3, "typhosdisplaytitl": 3, "typhosexcept": 24, "typhoslabel": 25, "typhoslineedit": [9, 25], "typhosload": [9, 24], "typhosmethodbutton": 25, "typhosnoteedit": 9, "typhospositionerrowwidget": 9, "typhospositionerwidget": 16, "typhosrelatedsuit": 9, "typhosrelatedsuitebutton": 9, "typhosscalarrang": 25, "typhossidebaritem": 25, "typhossignalpanel": [0, 3, 25], "typhosstatusthread": [9, 16], "typhossuit": [1, 9, 10, 24], "typhostextedit": 25, "typhostimeplot": 9, "typhostitlelabel": 3, "typhostool": 12, "typhostoolbutton": 3, "typhostweak": 25, "typic": 25, "u": [0, 3], "ui": [3, 7, 9, 11, 24, 25], "uifil": 24, "unabl": 9, "unboundlocalerror": 9, "uncaught": 9, "unchang": 24, "under": [3, 10], "underli": [0, 7, 12], "underlin": 3, "underneath": 3, "underscor": 0, "understand": [0, 25], "unexpect": 9, "unhelp": 9, "unifi": 9, "uniform": 9, "uniqu": [1, 7], "unit": [2, 7, 9, 25], "unit_chang": 25, "unknown": 9, "unknownstatuserror": 9, "unless": [7, 8, 22], "unlik": 24, "unload": 9, "unminim": 24, "unnecessari": 25, "unpin": 21, "unrel": 25, "unset": [0, 9], "unsubscrib": [7, 24], "until": 24, "unus": 0, "up": [3, 9, 13, 24], "updat": [2, 3, 7, 9, 22, 24, 25], "update_alarm_text": 25, "update_format_str": 25, "upon": [3, 24, 25], "upshot": 11, "url": 0, "us": [1, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 16, 18, 22, 24, 25], "usag": [1, 9], "use_statu": 25, "use_stylesheet": [9, 24], "user": [0, 3, 6, 7, 8, 9, 10, 22, 24, 25], "user_readback": [0, 7, 25], "user_setpoint": 25, "usernam": [0, 22], "util": [0, 6, 9, 10, 22], "utilitarian": 9, "v": [1, 24], "val1": 1, "valid": [1, 7, 24], "valu": [0, 2, 3, 6, 7, 8, 9, 11, 24, 25], "value_chang": 25, "valueerror": 3, "variabl": [0, 1, 6, 8, 11, 13, 24], "variant": [0, 24], "variat": 25, "varieti": [0, 9, 12, 24, 25], "variety_metadata": 25, "variou": [0, 9, 18, 20, 24], "veloc": [0, 9, 25], "velocity_attribut": 25, "vendor": 9, "verbos": 1, "version": [1, 3, 9, 13, 16], "vertic": [1, 3, 9], "via": [8, 9, 10, 13, 24], "view": [0, 9, 24, 25], "view_typ": 24, "visibl": [3, 24, 25], "visible_el": 25, "visible_onli": 24, "visible_sign": 25, "visit": 0, "wa": [3, 9, 24, 25], "wai": [0, 6, 9, 10, 11, 24], "wait": [9, 24], "wait_m": 24, "wall": 6, "want": [0, 2, 3, 7, 8, 10, 12, 24, 25], "warn": 9, "waveform": 25, "waveformdialogbutton": 25, "we": [0, 2, 3, 7, 9, 11, 12, 24, 25], "weakpartialmethodslot": 24, "web": 9, "websit": 0, "well": [0, 3, 7, 9, 24], "were": [9, 10, 16], "what": [0, 7, 25], "wheel": 9, "wheelev": 25, "when": [0, 3, 8, 9, 10, 11, 13, 16, 22, 24, 25], "whenev": 25, "where": [2, 9, 12, 15, 25], "whether": [0, 1, 3, 6, 24, 25], "which": [0, 3, 6, 8, 9, 11, 12, 13, 24, 25], "while": [0, 8, 9, 24, 25], "who": 22, "whole": 24, "why": 11, "widget": [1, 2, 3, 5, 6, 7, 8, 9, 12, 13, 15, 18], "widget_attr": 24, "widget_class": 25, "widget_ctx_menu": 25, "widget_titl": 1, "widget_to_imag": 24, "widget_type_from_descript": 25, "widgets_determin": 24, "width": 9, "window": [0, 9, 10, 24], "within": [0, 2, 7], "without": 9, "word": 22, "work": [1, 9, 11, 25], "workaround": 9, "worker": 24, "workflow": [2, 11], "world": 13, "worri": 22, "would": [0, 2, 3, 7, 8, 9, 15, 24, 25], "wrap": [3, 5, 9], "wrapper": 9, "writabl": 25, "write": [6, 24, 25], "write_access": 7, "write_access_chang": 25, "write_cl": 25, "write_kwarg": 25, "write_pv": 25, "writeabl": 7, "x": [1, 3, 9], "y": 1, "yellow": 9, "yet": [1, 9], "yield": [0, 24], "you": [0, 2, 3, 8, 9, 10, 11, 13, 16, 22, 24, 25], "your": [0, 1, 2, 7, 8, 9, 10, 11, 13, 22], "yourself": 13, "zero": 9, "zllentz": [9, 15, 16, 17, 18, 19, 20], "zone": 9}, "titles": ["How it Works", "Command Line Utilities", "Application Connections", "Suite and Displays", "typhos.tools.TyphosLogDisplay", "typhos.tools.TyphosTimePlot", "Typhos", "Typhos Data Plugins for PyDM", "Including Python Code", "Release History", "Saving and Loading", "Custom Templates", "Supported Tools", "Unit Test Quirks", "Upcoming Changes", "604 perf_resize_text", "606 enh_wait_status", "607 tst_fix_ci_saga", "611 enh_positioner_resizing", "615 maint_fix_ci", "616 fix_enum_handling", "618 bld_jinja_bump", "IssueNumber Title", "IssueNumber Title", "Utility Functions", "Widgets"], "titleterms": {"": 9, "0": 9, "01": 9, "02": 9, "03": 9, "04": 9, "05": 9, "06": 9, "07": 9, "08": 9, "09": 9, "1": 9, "10": 9, "11": 9, "12": 9, "15": 9, "18": 9, "19": 9, "2": 9, "20": 9, "2017": 9, "2018": 9, "2019": 9, "2020": 9, "2021": 9, "2022": 9, "2023": 9, "2024": 9, "22": 9, "26": 9, "27": 9, "28": 9, "3": 9, "30": 9, "31": 9, "4": 9, "5": 9, "6": 9, "604": 15, "606": 16, "607": 17, "611": 18, "615": 19, "616": 20, "618": 21, "7": 9, "The": 0, "ad": 8, "api": [9, 15, 16, 17, 18, 19, 20, 21, 22, 23], "applic": 2, "basic": 25, "bld_jinja_bump": 21, "break": [9, 15, 16, 17, 18, 19, 20, 21, 22, 23], "bug": [0, 9], "bugfix": [9, 15, 16, 17, 18, 19, 20, 21, 22, 23], "button": 3, "cach": 24, "chang": [9, 14], "class": 12, "cloud": 13, "code": 8, "command": 1, "compat": 9, "composit": 25, "connect": 2, "contributor": [9, 15, 16, 17, 18, 19, 20, 21, 22, 23], "creation": 11, "custom": 11, "data": 7, "depend": 9, "deprec": 9, "descript": [9, 24], "design": 25, "determin": 25, "devic": 0, "discoveri": 11, "displai": [0, 3], "doc": 9, "document": 0, "enh_positioner_res": 18, "enh_wait_statu": 16, "enhanc": 9, "exampl": 0, "featur": [9, 15, 16, 17, 18, 19, 20, 21, 22, 23], "filenam": 11, "fill": 0, "fix": 9, "fix_enum_handl": 20, "function": [24, 25], "happi": [0, 2], "happiplugin": 7, "histori": 9, "how": 0, "includ": 8, "inclus": 2, "interpret": 0, "issuenumb": [22, 23], "jira": 0, "know": 13, "launch": 0, "line": 1, "load": 10, "local": 13, "maint_fix_ci": 19, "mainten": [9, 15, 16, 17, 18, 19, 20, 21, 22, 23], "metadata": 2, "method": [8, 25], "miscellan": 25, "new": 9, "object": 24, "ophyd": [2, 24], "panel": 25, "path": 24, "perf_resize_text": 15, "plugin": [2, 7], "project": 6, "pydm": 7, "python": 8, "quirk": 13, "relat": 6, "releas": 9, "report": 0, "save": 10, "signal": [0, 2, 25], "signalplugin": 7, "standard": 3, "stylesheet": 0, "substitut": 11, "suit": 3, "support": 12, "templat": [0, 11], "test": [9, 13], "thing": 13, "titl": [3, 22, 23], "tool": [3, 4, 5, 12], "tst_fix_ci_saga": 17, "type": [24, 25], "typho": [4, 5, 6, 7], "typhosdevicedisplai": 3, "typhoslogdisplai": 4, "typhospositionerwidget": 25, "typhossuit": [0, 3], "typhostimeplot": 5, "unit": 13, "upcom": 14, "us": 0, "util": [1, 3, 24], "v": 13, "v0": 9, "v1": 9, "v2": 9, "v3": 9, "what": 9, "widget": [0, 24, 25], "work": 0, "writer": 13}}) \ No newline at end of file diff --git a/master/templates.html b/master/templates.html index 570b89a6..7181febb 100644 --- a/master/templates.html +++ b/master/templates.html @@ -4,7 +4,7 @@ - Custom Templates — Typhos 3.1.1 documentation + Custom Templates — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/tools.html b/master/tools.html index 09ef2bfe..d0197a71 100644 --- a/master/tools.html +++ b/master/tools.html @@ -4,7 +4,7 @@ - Supported Tools — Typhos 3.1.1 documentation + Supported Tools — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/unit_tests.html b/master/unit_tests.html new file mode 100644 index 00000000..b9e34d6f --- /dev/null +++ b/master/unit_tests.html @@ -0,0 +1,176 @@ + + + + + + + Unit Test Quirks — Typhos 3.1.2.dev61+ga6e7aec documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Unit Test Quirks

    +

    Typhos, from time to time, has had issues with its unit tests. +These often manifest as test failures and segmentation faults that only occur +when running the tests on a cloud platform.

    +

    By and large, these are related to difficulty with cleaning up resources from +tests that allocate qt widgets.

    +
    +

    Things to Know for Test Writers

    +
      +
    • Always use the qtbot fixture (from the pytest-qt package)

    • +
    • Always call qtbot.add_widget(widget) on any widget you create in your test. +This helps clean up your widget after the test is complete.

    • +
    • Use the qapp fixture and call qapp.processEvents() if you need “something” +in the qt world to happen.

    • +
    • Use the noapp fixture if you need to test code that calls qapp.exec_() or +qapp.exit(). Calling this code with no fixture will break the test suite for +all future tests than need the qapp.

    • +
    • If your test is segfaulting, try using the @pytest.mark.no_gc decorator +to skip the manual garbage collection step from the pytest_runtest_call hook +in conftest.py. In some cases (e.g. the positioner widgets) this is an ill-timed +redundant call.

    • +
    • If an external package’s widgets (and none of ours) are showing up in the +widget cleanup check (also in the pytest_runtest_call hook), try using +the @pytest.mark.no_cleanup_check decorator. If these come from typhos +it’s fairly important to fix the issue, but if they come from an external +package it’s hard to do something about it.

    • +
    +
    +
    +

    Local vs Cloud

    +

    There are a few major differences between local and cloud builds, even +on the same architecture:

    +
      +
    • Cloud builds set the environment variable for offscreen rendering (no rendering). +This slightly changes the timing and drastically changes the implementation of +the qt drawing primitives. You can set this yourself locally via +export QT_QPA_PLUGIN=offscreen.

    • +
    • Cloud builds use the latest versions of packages, which may differ from the ones +you have installed locally.

    • +
    • Ideally, the test suite should pass both on local hardware with the default +qpa plugin and also on the cloud.

    • +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/upcoming_changes.html b/master/upcoming_changes.html index f56cedec..a6495de5 100644 --- a/master/upcoming_changes.html +++ b/master/upcoming_changes.html @@ -4,7 +4,7 @@ - Upcoming Changes — Typhos 3.1.1 documentation + Upcoming Changes — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,14 +15,14 @@ - - + + - + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -98,6 +106,15 @@

    Upcoming Changes

    @@ -106,7 +123,7 @@

    Upcoming Changes - +


    diff --git a/master/upcoming_release_notes/604-perf_resize_text.html b/master/upcoming_release_notes/604-perf_resize_text.html new file mode 100644 index 00000000..4d3860f8 --- /dev/null +++ b/master/upcoming_release_notes/604-perf_resize_text.html @@ -0,0 +1,179 @@ + + + + + + + 604 perf_resize_text — Typhos 3.1.2.dev61+ga6e7aec documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    604 perf_resize_text

    +
    +

    API Breaks

    +
      +
    • N/A

    • +
    +
    +
    +

    Features

    +
      +
    • N/A

    • +
    +
    +
    +

    Bugfixes

    +
      +
    • Fix an issue where the row positioner widget’s resizing would peg the cpu to 100%

    • +
    +
    +
    +

    Maintenance

    +
      +
    • N/A

    • +
    +
    +
    +

    Contributors

    +
      +
    • zllentz

    • +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/upcoming_release_notes/606-enh_wait_status.html b/master/upcoming_release_notes/606-enh_wait_status.html new file mode 100644 index 00000000..f30e9438 --- /dev/null +++ b/master/upcoming_release_notes/606-enh_wait_status.html @@ -0,0 +1,185 @@ + + + + + + + 606 enh_wait_status — Typhos 3.1.2.dev61+ga6e7aec documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    606 enh_wait_status

    +
    +

    API Breaks

    +
      +
    • TyphosStatusThread now has a dramatically different signal API. +This is an improved version but if you were using this class take note +of the changes.

    • +
    +
    +
    +

    Features

    +
      +
    • Make the timeout messages friendlier and more accurate when the +timeouts come from the TyphosPositionerWidget.

    • +
    • Make error messages in general (including status timeouts) clearer +when they come from the positioner device class controlled by the +TyphosPositionerWidget.

    • +
    +
    +
    +

    Bugfixes

    +
      +
    • N/A

    • +
    +
    +
    +

    Maintenance

    +
      +
    • Refactor TyphosStatusThread to facilitate timeout message changes.

    • +
    +
    +
    +

    Contributors

    +
      +
    • zllentz

    • +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/upcoming_release_notes/607-tst_fix_ci_saga.html b/master/upcoming_release_notes/607-tst_fix_ci_saga.html new file mode 100644 index 00000000..6ab6296b --- /dev/null +++ b/master/upcoming_release_notes/607-tst_fix_ci_saga.html @@ -0,0 +1,179 @@ + + + + + + + 607 tst_fix_ci_saga — Typhos 3.1.2.dev61+ga6e7aec documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    607 tst_fix_ci_saga

    +
    +

    API Breaks

    +
      +
    • N/A

    • +
    +
    +
    +

    Features

    +
      +
    • N/A

    • +
    +
    +
    +

    Bugfixes

    +
      +
    • N/A

    • +
    +
    +
    +

    Maintenance

    +
      +
    • Fix issues with cloud-only CI failures and segfaults.

    • +
    +
    +
    +

    Contributors

    +
      +
    • zllentz

    • +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/upcoming_release_notes/611-enh_positioner_resizing.html b/master/upcoming_release_notes/611-enh_positioner_resizing.html new file mode 100644 index 00000000..0d263004 --- /dev/null +++ b/master/upcoming_release_notes/611-enh_positioner_resizing.html @@ -0,0 +1,182 @@ + + + + + + + 611 enh_positioner_resizing — Typhos 3.1.2.dev61+ga6e7aec documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    611 enh_positioner_resizing

    +
    +

    API Breaks

    +
      +
    • N/A

    • +
    +
    +
    +

    Features

    +
      +
    • Rework the design, sizing, and font scaling of the positioner row widget to address +concerns about readability and poor use of space for positioners that don’t need +all of the widget components.

    • +
    • Implement dynamic resizing in all directions for positioner row widgets.

    • +
    +
    +
    +

    Bugfixes

    +
      +
    • Fix various issues that cause font clipping for specific motors using the positioner row widget.

    • +
    +
    +
    +

    Maintenance

    +
      +
    • N/A

    • +
    +
    +
    +

    Contributors

    +
      +
    • zllentz

    • +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/upcoming_release_notes/615-maint_fix_ci.html b/master/upcoming_release_notes/615-maint_fix_ci.html new file mode 100644 index 00000000..90f21c0f --- /dev/null +++ b/master/upcoming_release_notes/615-maint_fix_ci.html @@ -0,0 +1,179 @@ + + + + + + + 615 maint_fix_ci — Typhos 3.1.2.dev61+ga6e7aec documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    615 maint_fix_ci

    +
    +

    API Breaks

    +
      +
    • N/A

    • +
    +
    +
    +

    Features

    +
      +
    • N/A

    • +
    +
    +
    +

    Bugfixes

    +
      +
    • N/A

    • +
    +
    +
    +

    Maintenance

    +
      +
    • In dev/test requirements, pin pcdsdevices to current latest to fix the CI builds.

    • +
    +
    +
    +

    Contributors

    +
      +
    • zllentz

    • +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/upcoming_release_notes/616-fix_enum_handling.html b/master/upcoming_release_notes/616-fix_enum_handling.html new file mode 100644 index 00000000..9ee15c4d --- /dev/null +++ b/master/upcoming_release_notes/616-fix_enum_handling.html @@ -0,0 +1,180 @@ + + + + + + + 616 fix_enum_handling — Typhos 3.1.2.dev61+ga6e7aec documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    616 fix_enum_handling

    +
    +

    API Breaks

    +
      +
    • N/A

    • +
    +
    +
    +

    Features

    +
      +
    • N/A

    • +
    +
    +
    +

    Bugfixes

    +
      +
    • Fix various issues with enum handling in the SignalPlugin.

    • +
    +
    +
    +

    Maintenance

    +
      +
    • N/A

    • +
    +
    +
    +

    Contributors

    +
      +
    • canismarko

    • +
    • zllentz

    • +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/upcoming_release_notes/618-bld_jinja_bump.html b/master/upcoming_release_notes/618-bld_jinja_bump.html new file mode 100644 index 00000000..4768b244 --- /dev/null +++ b/master/upcoming_release_notes/618-bld_jinja_bump.html @@ -0,0 +1,179 @@ + + + + + + + 618 bld_jinja_bump — Typhos 3.1.2.dev61+ga6e7aec documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    618 bld_jinja_bump

    +
    +

    API Breaks

    +
      +
    • N/A

    • +
    +
    +
    +

    Features

    +
      +
    • N/A

    • +
    +
    +
    +

    Bugfixes

    +
      +
    • N/A

    • +
    +
    +
    +

    Maintenance

    +
      +
    • unpin jinja, sphinx no longer incompatible

    • +
    +
    +
    +

    Contributors

    +
      +
    • tangkong

    • +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/upcoming_release_notes/template-full.html b/master/upcoming_release_notes/template-full.html index d5f02ad5..5ddaf5ca 100644 --- a/master/upcoming_release_notes/template-full.html +++ b/master/upcoming_release_notes/template-full.html @@ -4,7 +4,7 @@ - IssueNumber Title — Typhos 3.1.1 documentation + IssueNumber Title — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -36,7 +36,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/upcoming_release_notes/template-short.html b/master/upcoming_release_notes/template-short.html index 40c07611..7f2baedb 100644 --- a/master/upcoming_release_notes/template-short.html +++ b/master/upcoming_release_notes/template-short.html @@ -4,7 +4,7 @@ - IssueNumber Title — Typhos 3.1.1 documentation + IssueNumber Title — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -36,7 +36,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    diff --git a/master/utils.html b/master/utils.html index 30d7f27a..956e70ee 100644 --- a/master/utils.html +++ b/master/utils.html @@ -4,7 +4,7 @@ - Utility Functions — Typhos 3.1.1 documentation + Utility Functions — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,13 +15,14 @@ - - + + + @@ -37,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -180,6 +181,7 @@ +
  • Unit Test Quirks
  • @@ -399,7 +401,7 @@
    -class typhos.utils.WeakPartialMethodSlot(signal_owner: QObject, signal: pyqtSignal, method: method, *args, **kwargs)[source]
    +class typhos.utils.WeakPartialMethodSlot(signal_owner: QObject, signal: pyqtSignal, method: MethodType, *args, **kwargs)[source]

    A PyQt-compatible slot for a partial method.

    This utility handles deleting the connection when the method class instance gets garbage collected. This avoids cycles in the garbage collector @@ -469,7 +471,7 @@

    Parameters:
      -
    • device (ophyd.Device) –

    • +
    • device (ophyd.Device)

    • strip_parent (bool or Device) – Remove the parent name of the device from name. If strip_parent is True, the name of the direct parent of the device is stripped. If a device is provided the name of that device is used. This allows @@ -497,7 +499,7 @@

      Return code to create a device from its repr information.

      Parameters:
      -

      device (ophyd.Device) –

      +

      device (ophyd.Device)

    @@ -731,7 +733,7 @@

    Is the template a core one provided with typhos?

    Parameters:
    -

    template (str or pathlib.Path) –

    +

    template (str or pathlib.Path)

    @@ -882,7 +884,7 @@
    Parameters:
      -
    • suite (TyphosSuite) –

    • +
    • suite (TyphosSuite)

    • file_or_buffer (str or file-like) – Either a path to the file or a handle that supports write

    @@ -1164,6 +1166,7 @@

    Ophyd Object to Widget Type Cache +


    diff --git a/master/widgets.html b/master/widgets.html index 7b04f879..6d0c34cb 100644 --- a/master/widgets.html +++ b/master/widgets.html @@ -4,7 +4,7 @@ - Widgets — Typhos 3.1.1 documentation + Widgets — Typhos 3.1.2.dev61+ga6e7aec documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@ Typhos
    - 3.1.1 + 3.1.2.dev61+ga6e7aec
    @@ -677,11 +677,26 @@

    Basic Signal Panels
    Parameters:
    -

    ev (QEvent) –

    +

    ev (QEvent)

    +
    +
    +resizeEvent(event: QResizeEvent)[source]
    +

    Fix the parent container’s size whenever our size changes.

    +

    This also runs when we add or filter rows.

    +
    + +
    +
    +setVisible(visible: bool)[source]
    +

    Fix the parent container’s size whenever we switch visibility.

    +

    This also runs when we toggle a row visibility using the title +and when all signal rows get filtered all at once.

    +
    +
    set_device_display(display)[source]
    @@ -1007,12 +1022,6 @@

    TyphosPositionerWidget

    The attribute name for the low limit signal.

    -
    -
    -move_changed()[source]
    -

    Called when a move is begun

    -
    -
    moving
    @@ -1121,7 +1130,7 @@

    Functions and MethodsParameters:
    • methods (list of callables, optional) – List of callables to add to the FunctionPanel.

    • -
    • parent (QWidget) –

    • +
    • parent (QWidget)

    @@ -1157,7 +1166,7 @@

    Functions and Methods

    Add a new device to the widget.

    Parameters:
    -

    device (ophyd.Device) –

    +

    device (ophyd.Device)

    @@ -1671,7 +1680,7 @@

    Miscellaneous