Skip to content

Releases: pcdshub/typhos

v3.1.1

12 Apr 22:29
ad6ffaf
Compare
Choose a tag to compare

What's Changed

  • ENH: switch lim colors to blk/org from yel/yel by @ZLLentz in #600
  • DOC: compile and clarify release notes for v3.1.1 by @ZLLentz in #602

Full Changelog: v3.1.0...v3.1.1

v3.1.0 (2023-12-05)

06 Dec 18:57
75d3e3c
Compare
Choose a tag to compare

Features

  • Added overridable find_signal method to the SignalConnection class to allow the use of alternate signal registries in subclasses.
  • Updated look and feel: change the typhos suite cli defaults to "embedded" displays arranged "vertically" instead of "detailed" displays arranged "horizontally" to more naturally match how typhos is used at present.

Contributors

v3.0.0 (2023-09-27)

27 Sep 23:13
6d193ea
Compare
Choose a tag to compare

API Breaks

  • The deprecated TyphosConsole has been removed as discussed in issue #538.
  • TyphosDeviceDisplay composite heuristics have been removed in favor of
    simpler methods, described in the features section.
  • The packaged IOC for benchmark testing is now in typhos.benchmark.ioc.

Features

  • Added typhos --screenshot filename_pattern to take screenshots of typhos
    displays prior to exiting early (in combination with --exit-after).

  • Added TyphosSuite.save_screenshot which takes a screenshot of the entire
    suite as-displayed.

  • Added TyphosSuite.save_device_screenshots which takes individual
    screenshots of each device display in the suite and saves them to the
    provided formatted filename.

  • LazySubdisplay.get_subdisplay now provides the option to only get
    existing widgets (by using the argument instantiate=False).

  • TyphosNoteEdit now supports .add_device() like other typhos widgets.
    This is alongside its original setup_data API.

  • TyphosNoteEdit is now a TyphosBase object and is accessible in the Qt
    designer.

  • Added new designable widget TyphosPositionerRowWidget. This compact
    positioner widget makes dense motor-heavy screens much more space efficient.

  • The layout method for TyphosDeviceDisplay has changed. For large device trees,
    it now favors showing the compact "embedded" screens over detailed screens. The order
    of priority is now as follows:

  • For top-level devices (e.g., at2l0), the template load priority is as follows:

    • Happi-defined values ("detailed_screen", embedded_screen", "engineering_screen")
    • Device-specific screens, if available (named as ClassNameHere.detailed.ui)
    • The detailed tree, if the device has sub-devices
    • The default templates
  • For nested displays in a device tree, sub-device (e.g., at2l0.blade_01)
    template load priority is as follows:

    • Device-specific screens, if available (named as ClassNameHere.embedded.ui)
    • The detailed tree, if the device has sub-devices
    • The default templates (embedded_screen.ui)
  • Increase motor timeouts proportionally for longer moves.

  • Added dynamic font sizer utility which can work with some Qt-provided widgets
    as well as PyDM widgets.

  • Qt object names for displays will now be set automatically to aid in
    debugging.

Bugfixes

  • Fix an issue where setpoint widgets in the full positioner
    widget had become zero-width.
  • Creates new notes file if requested note file does not exist
  • Typhos suites will now resize in width to fit device displays.
  • For devices which do not require keyword arguments to instantiate, the typhos
    CLI will no longer require an empty dictionary. That is, $ typhos ophyd.sim.SynAxis[] is equivalent to $ typhos ophyd.sim.SynAxis[{}].
    As before, ophyd's required "name" keyword argument is filled in by typhos by
    default.
  • Fix an issue where ophyd signals with floats would always display with a
    precision of 0 without special manual configuration. Floating-point signals
    now default to a precision of 3.
  • Fix issues with running the CLI benchmarks in certain
    conda installs, particularly python>=3.10.
  • ophyd.Kind usage has been fixed for Python 3.11. Python 3.11 differs in
    enumeration of IntFlag items, resulting in typhos only picking up
    component kinds that were a power of 2.
  • multiprocessing is no longer used to spawn the test suite benchmarking
    IOC, as it was problematic for Python 3.11. The provided IOC is now spawned
    using the same utilities provided by the caproto test suite.
  • Vendored pydm load_ui_file and modified it so we can always get our
    Display instance back in TyphosDeviceDisplay.
  • Ignore deleted qt objects on SignalConnection.remove_connection, avoiding
    teardown error tracebacks.
  • Avoid creating subdisplays during a call to TyphosSuite.hide_subdisplays
  • Added a pytest hook helper to aid in finding widgets that were not cleaned
  • Avoid failing screenshot taking when widgets are garbage collected at the
    same time.
  • Avoid race condition in description cache if the cache is externally cleared
    when a new description callback is received.
  • Avoid uncaught TypeError when None is present in a positioner
    .limits.

Maintenance

  • adds TyphosDisplaySwitcher to TyphosPositionerRowWidget
  • adds checklist to Pull Request Template
  • Add pre-release notes scripts
  • Update build requirements to use pip-provided extras for documentation and test builds
  • Update PyDM pin to >=1.19.1 due to Display method being used.
  • Avoid hundreds of warnings during line profiling profiling by intercepting
    messages about profiling the wrapped function instead of the wrapper.
  • The setpoint history menu on TyphosLineEdit is now only created on-demand.

Contributors

v2.4.1 (2023-4-4)

04 Apr 22:30
553e3c5
Compare
Choose a tag to compare

Description

This is a bugfix and maintenance/CI release.

Bugfixes

  • Include the normal PyDM stylesheets in the loading process.
    Previously, this was leading to unexpected behavior.

Maintenance

  • Fix an issue related to a deleted flake8 mirror.
  • Migrates from Travis CI to GitHub Actions for continuous integration testing, and documentation deployment.
  • Updates typhos to use setuptools-scm, replacing versioneer, as its version-string management tool of choice.
  • Syntax has been updated to Python 3.9+ via pyupgrade.
  • typhos has migrated to modern pyproject.toml, replacing setup.py.
  • Sphinx 6.0 now supported for documentation building.

Contributors

v2.4.0 (2022-11-4)

04 Nov 18:06
56b7dd9
Compare
Choose a tag to compare

Description

This is a small release with features for improving the usage
and configurability of the PositionerWidget.

Features

  • Report errors raised during the execution of positioner
    set commands in the positioner widget instead of in a pop-up.
    This makes it easier to keep track of which positioner widget
    is associated with which error and makes it less likely that the
    message will be missed or lost on large monitors.
  • Add a designer property to PositionerWidget, alarmKindLevel,
    to configure the enclosed alarm widget's kindLevel property in
    designer. This was previously only configurable in code.

Contributors

  • zllentz

Full Changelog: v2.3.3...v2.4.0

v2.3.3 (2022-10-20)

21 Oct 00:08
c5ccc71
Compare
Choose a tag to compare

Description

This is a small release with bugfixes and maintenance.

Bugfixes

  • Do not wait for lazy signals when creating a SignalPanel.
    This was causing long setup times in some applications.
  • Call stop with success=True in the positioner widget to avoid causing
    our own UnknownStatusError, which was then displayed to the user.

Maintenance

  • Add cleanup for background threads.
  • Add replacement for functools.partial usage in methods as
    this was preventing TyphosSuite from getting garbage collected.
  • Removes custom designer widget plugin,
    instead relying on PyDM's own mechanism
  • Use pydm's data plugin entrypoint to include the sig and happi channels.
  • Prevent TyphosStatusThread objects from being orphaned.

Contributors

  • klauer
  • tangkong
  • zllentz

Full Changelog: v2.3.2...v2.3.3

v2.3.2 (2022-07-28)

29 Jul 22:27
a5eecb3
Compare
Choose a tag to compare

Description

This is a bugfix and maintenance release.

Fixes

  • Fix various instances of clipping in the positioner widget.
  • Show Python documentation when no web help is available.
  • Fix issues with suite sidebar width.
  • Lazy load all tools to improve performance.
  • Fix the profiler to also profile class methods.
  • Use cached paths for finding class templates.
  • Properly handle various deprecations and deprecation warnings.
  • Fix usage of deprecated methods in happi (optional dependency).

Maintenance

  • Log "unable to add device" without the traceback, which was previously unhelpful.
  • Pin pyqt at 5.12 for test suite incompatibility in newer versions.
  • Ensure that test.qss test suite artifact is cleaned up properly.
  • Fix the broken test suite.
  • Pin jinja2 at <3.1 in CI builds for sphinx <4.0.0 compatibility

Contributors

v2.3.1 (2022-05-02)

02 May 21:29
c1ad740
Compare
Choose a tag to compare

Description

This is a small bugfix release.

Fixes

  • Fix an issue where the configuration menu would be defunct for
    custom template screens.

Maintenance

  • Add some additional documentation about sig:// and cli usage.
  • Configure and satisfy the repository's own pre-commit checks.
  • Update versioneer install to current latest.

Contributors

v2.3.0 (2022-03-31)

01 Apr 00:24
408c108
Compare
Choose a tag to compare

Description

This is a small release with fixes and features that were implemented
last month.

Features

  • Add the option to hide displays in the suite at launch,
    rather than automatically showing all of them.
  • Allow the sig:// protocol to be used in typhos templates by
    automatically registering all of a device's signals at launch.

Fixes

  • Fix an issue where an assumption about the nature of EpicsSignal
    object was breaking when using PytmcSignal objects from pcdsdevices.
  • Make a workaround for a C++ wrapped exception that could happen
    in specific orders of loading and unloading typhos alarm widgets.

v2.2.1 (2022-02-07)

07 Feb 23:07
5d26760
Compare
Choose a tag to compare

Description

This is a small bugfix release that was deployed as a hotfix
to avoid accidental moves.

Fixes

  • Disable scroll wheel interaction with positioner combo boxes.
    This created a situation where operators were accidentally
    requesting moves while trying to scroll past the control box.
    This was previously fixed for the typhos combo boxes found on
    the various automatically generated panels in v1.1.0, but not
    for the positioner combo boxes.