Release History

v1.1.1 (2020-08-19)

Description

This is a bugfix release. Please use this instead of v1.1.0.

Compatibility / Fixes

  • Fix issue with ui files not being included in the manifest

  • Fix issue with profiler failing on tests submodule

v1.1.0 (2020-08-18)

Description

This is a big release with many fixes and features.

Enhancements / What’s New

  • Make Typhos aware of variety metadata and assign appropriate widgets based on the variety metadata assigned in pcdsdevices.

  • Split templates into three categories: core, devices, and widgets. Core templates are the main typhos display templates, e.g. detailed_tree. Devices templates are templates tailored for specific device classes. Widgets templates define special typhos widgets like tweakable, positioner, etc.

  • Add attenuator calculator screens. These may be moved to another repo in a future release.

  • Add information to loading widgets indicating timeout details.

Compatibility / fixes

  • Fix issue with comboboxes being set on mouse scroll.

  • Allow loading classes from cli with numbers in the name.

  • Fix issue with legacy codepath used in lightpath.

  • Fix issue with widget UnboundLocalError.

  • Hacky workaround for issue with newer versions of Python.

  • Hacky workaround for issue where positioner widget puts on startup.

  • Fix issue with unset _channel member.

  • Fix issue with typhos creating and installing a tests package separate from the main typhos package.

Docs / Testing

  • Add variety testing IOC.

  • Add doctr_versions_menu extension to properly render version menu.

  • Fix issues with failing benchmark tests

v1.0.2 (2020-07-01)

Description

A bug fix and package maintenance release.

Enhancements / What’s New

  • PositionerWidget moves set their timeouts based on expected velocity and acceleration, rather than a flat 10 seconds.

Compatibility / fixes

  • Ensure that widgets with no layout or minimum size are still displayed.

  • Update local conda recipe to match conda-forge.

  • Update CI to used shared configurations.

v1.0.1 (2020-05-20)

Description

A bug fix release with a minor addition.

Enhancements / What’s New

  • TyphosLoading now takes in a timeout value to switch the animation with a text message stating that the operation timed-out after X seconds.

Compatibility / fixes

  • Combobox widgets were appearing when switching or refreshing templates.

v1.0.0 (2020-05-18)

Description

A major new feature release with added views for complex devices and simplified configurability.

As planned, the deprecated import name typhon and the typhon command-line tool have been removed.

Enhancements / What’s New

  • Panels: New TyphosCompositeSignalPanel, which composes multiple TyphosDisplays in a tree-like view.

  • Benchmarking: new profiling tools accessible in the command-line typhos tool, allowing for per-line profiling of standardized devices. (--benchmark)

  • Template discovery: templates are discovered based on screen macros and class inheritance structure, with the fallback of built-in templates.

  • New command-line options for testing with mock devices (--fake-device).

  • Performance: Major performance improvements by way of background threading of signal description determination, display path caching, and connection status monitoring to reduce GUI thread blocking.

  • Display: Adds a “display switcher” tool for easy access to different screen types.

  • Display: Adds a “configuration” button to displays.

  • Filtering: Filter panel contents by kinds.

  • Filtering: Filter panel contents by signal names.

  • Setpoint history: a history of previous setpoints has been added to the context menu in TyphosLineEdit.

  • Positioner widgets have been redesigned to be less magical and more fault- tolerant. Adds designable properties that allow for specification of attribute names.

  • Anything that inherits from PositionerBase will have the template as an option (EpicsMotor, PCDSMotorBase, etc.)

  • Reworked default templates to remove the miscellaneous panel. Omitted signals may still be shown by way of panel context menus or configuration menus.

Compatibility / fixes

  • Python 3.8 is now being included in the test suite.

  • Happi is now completely optional.

  • Popped-out widgets such as plots will persist even when the parent display is closed.

  • Font sizes should be more consistent on various DPI displays.

  • Module typhos.signal has been renamed to typhos.panel.

  • TyphosTimePlot no longer automatically adds signals to the plot.

  • Removed internally-used typhos.utils.grab_kind.

  • OSX layout of TyphosSuite should be improved using the unified title and toolbar.

v0.7.0 (2020-03-09)

  • Fix docs deployment

  • Add “loading in progress” gif

  • Fix sorting of signals

  • Automatically choose exponential format based on engineering units

  • Fix lazy loading in ophyd 1.4

  • Save images of widgets when running tests

  • Add a new “PopBar” which pops in the device tree in the suite

  • Clean up the codebase - sort all imports + fix style

  • Relocate SignalRO to a single spot

v0.6.0 (2020-01-09)

Description

This release is dedicated to the renaming of the package from Typhon to Typhos. The main reason for the renaming is a naming conflict at PyPI that is now addressed.

Compatibility

This release is still compatible and will throw some DeprecationWarnings when typhon is used. The only incompatible piece is for Qt Stylesheets. You will need to add the typhos equivalents to your custom stylesheets if you ever created one.

This is the first release with the backwards compatibility for typhon. In two releases time it will be removed.

v0.5.0 (2019-09-18)

Description

It was a long time since the latest release of Typhon. It is time for a new one. Next releases will have again the beautiful and descriptive messages for enhancements, bug fixes and etc.

What’s New

A lot.

v0.2.1 (2018-09-28)

Description

This is a minor release of the Typhon library. No major features were added, but instead the library was made more stable and utilitarian for use in other programs. This includes making sure that any calls to a signal’s values or metadata are capable of handling disconnections. It also moves some of the methods that were hidden in larger classes or functions into smaller, more useful methods.

Enhancements

  • SignalPlugin now transmits all the metadata that is guaranteed to be present from the base Signal object. This includes enum_strs, precision, and units (#92)

  • DeviceDisplay now has an optional argument children. This makes it possible to ignore a Device components when creating the display (#96)

  • The following utility functions have been created to ensure that a uniform approach is taken forDevice introspection: is_signal_ro, grab_hints (#98)

Maintenance

  • Catch exceptions when requesting information from a Signal in case of disconnection, e.t.c (#91, #92)

  • The library now imports entirely from the qtpy compatibility layer (#94)

Deprecations

  • The title command in SignalPanel was no longer used. It is still accepted in this release, but will dropped in the next major release (#90)

v0.2.0 (2018-06-27)

Description

This Typhon release marks the transition from prototype to a stable library. There was a variety of API breaks and deprecations after v0.1.0 as many of the names and functions were not future-proof.

Enhancements

  • Typhon is now available on the pcds-tag Anaconda channel (#45)

  • Typhon now installs a special data plugin for PyDM called SignalPlugin. This uses the generic ophyd.Signal methods to communicate information to PyDM widgets. (#63)

  • Typhon now supports two different stylesheets a “light” and “dark” mode. These are not activated by default, but instead can be accessed via use_stylesheet function (#61, #89)

  • There is now a sidebar to the DeviceDisplay that makes adding devices and tools easier. The add_subdisplay function still works but it is preferable to use the more specific add_tool and add_subdevice. (#61)

  • Typhon will automaticaly create a PyDMLogDisplay to show the output of the logging.Logger object attached to each ophyd.Device (#70)

  • Typhon now creates a PyDMTimePlot with the “hinted” attributes of the Device. This can be configured at runtime to have fewer or more signals (#73)

API Changes

  • All of the Panel objects have been moved to different files. SignalPanel now resides in typhon.signal while the base Panel that is no longer used to display signals is in the generic typhon.widgets renamed as TogglePanel (#50)

Deprecations

  • RotatingImage has been removed as it is no longer used by the library (#58)

  • ComponentButton has been removed as it is no longer used by the library(#58)

  • The base DeviceDisplay no longer has a plot. The add_pv_to_plot function has been completely removed. (#58)

Dependencies

  • TyphonDisplay requires ophyd >= 1.2.0. The PyDMLogDisplay tool is attached to the Device.log that is now present on all ophyd devices. (#53)

  • pydm >= 1.2.0 due to various bug fixes and widget additions (#63)

  • QDarkStyleSheet is now included in the recipe to provide dark stylesheet support. (#89)

Bug Fixes

  • SignalPanel previously did not account for the fact that read and configuration attributes could be devices themselves (#42)

  • SignalPanel no longer assumes that all signals are EpicsSignal objects (#71)

v0.1.0 (2017-12-15)

The initial release of Typhon. This serves as a proof of concept for the automation of PyDM screen building as informed by the structure of an Ophyd Device.

Features

  • Generate a full DeviceDisplay with all of the device signals and sub-devices available

  • Include methods from the ophyd Device in the User Interface, automatically parse the arguments to make a widget representation of the function

  • Include png images associated with devices and sub-devices