Skip to content

Releases: slaclab/pydm

v1.28.1

10 Oct 06:48
29c4494

Choose a tag to compare

This is a small bug fix release that addresses a couple of issues introduced in v1.28.0 that affected updating existing files in Qt Designer that included PyDMTabWidget as well as setting initial channels on PyDMAnalogIndicator. Also includes a fix for scatter plots with data channels that update faster than their drawing rates.

Bug Fixes

New Contributors

Full Changelog: v1.28.0...v1.28.1

v1.28.0

07 Oct 00:55
2e0a4b6

Choose a tag to compare

This release includes multiple changes needed to support PySide6. The work on this is nearly complete and the next release is planned to have documentation on how to install and run PyDM using PySide6.

This release also includes enhancements to the archiver time plot, along with a number of bug fixes and maintenance updates.

Python 3.10 Minimum Required Version

With Python 3.9 reaching end-of-life in a few weeks, this release moves to use some syntax only supported in Python 3.10 and above.

Enhancements

  • ENH: Allow configuring the size of optimized data bins for archive plots by @michaellans in #1264
  • ENH: Make about-window show current qt python-binding library, not just always 'pyqt' by @nstelter-slac in #1272

Bug Fixes

  • FIX: Addresses issues with FormulaCurveItems by @YektaY in #1260
  • FIX: Prevent possible deadlock between rules engine and data plugins by @jbellister-slac in #1282
  • FIX: More Fixes to the FormulaCurveItem by @YektaY in #1287
  • FIX: Archive plots displaying a zero data point when no live data is present by @jbellister-slac in #1288

Maintenance

PySide6 Changes

  • ENH/MNT: Convert all Qt Property declarations to use a way that works for both pyside6 and pyqt5. by @nstelter-slac in #1280
  • ENH/MNT: Make basic changes necessary to load PyDM custom widgets in QtDesigner on PySide6 by @flowln in #1281
  • FIX: Plot view boxes were being garbage collected too soon with pyside6 by @jbellister-slac in #1283
  • BUG: Allow for pydm to find pyside6 designer path, makes "Open in Designer" button work with pyside6 by @nstelter-slac in #1295

Documentation Updates

  • DOC: Added PyDMConverter link to Recommended Resources page by @YektaY in #1289
  • DOC: Add page with links+descriptions of projects using or related to PyDM, link to converter in README so more visible by @nstelter-slac in #1296

New Contributors

Full Changelog: v1.27.2...v1.28.0

v1.27.2

24 Jun 21:20
3ec1eea

Choose a tag to compare

What's Changed

a small released to address a bug introduced in v1.27.1

Bug Fixes

  • BUG: make tabwidget call parent eventFilter() of correct parent class. by @nstelter-slac in #1259

Full Changelog: v1.27.1...v1.27.2

v1.27.1

10 Jun 21:59
e622a0f

Choose a tag to compare

What's Changed

This release addresses a host of bugs, along with needed maintenance changes. It also continues our work towards supporting pyside6. The patch also has a few small new features including adding a context menu to the PyDMShellCommand.

Enhancements

  • ENH: add context menu options to PyDMShellCommand to display and copy their command(s) by @craftablescience in #1227
  • ENH: allow displays to be loaded from subdirectories of search paths by @craftablescience in #1226
  • ENH: make middle-click copy-to-clipboard feature on widgets copy also to the clipboard that pastes with 'Ctrl-v' by @nstelter-slac in #1244
  • ENH: indicate when a PyDMShellCommand's cmd is currently running by changing the button's appearance and disabling the button. by @nstelter-slac in #1249

Bug Fixes

  • FIX: connection inspector no longer resets user-defined sort when connections are updated by @craftablescience in #1221
  • FIX: misc. nav bar, homefile behavior tweaks by @craftablescience in #1224
  • FIX: use a regex to parse a given URI instead of urllib by @craftablescience in #1219
  • BUG: fix error when establishing plugin connections with protocols in all caps. by @nstelter-slac in #1236
  • BUG: ensure all PyDMWritableWidget and PyDMWidget subclasses get init'd correctly. by @nstelter-slac in #1234
  • FIX: Backfill archive data correctly when adding a new curve to an archive plot by @jbellister-slac in #1245
  • FIX: PyDMDateTime weirdness by @craftablescience in #1230
  • BUG: cleanup stylesheet readin code, also stops FileNotFoundError error when cancel out stylesheet selecting window by @nstelter-slac in #1248
  • FIX: ArchiverPlotCurveItem.to_dict keys Match Keyword Arguments of addYChannel by @zdomke in #1257
  • FIX: Formula curves not updating when composite curves fetch new data from archive by @YektaY in #1258
  • FIX: Baseplot Crosshair Labels by @YektaY in #1256
  • BUG: access clipboard mode enum directly from qtpy QClipboard class by @nstelter-slac in #1242
  • FIX: Gets FormulaCurveItems working for pvs with archived or live connections by @YektaY in #1250

Maintenance

  • MNT: disable sometimes failing test on macOS, just for now until it gets fixed by @nstelter-slac in #1223
  • MNT: switch to just ruff for pre-commit formatting + linting (faster), add spell checker to precommit, update versions of precommit repos by @nstelter-slac in #1222
  • MNT: fix precommit config, make all imports absolute with ruff + precommit by @nstelter-slac in #1213
  • STY: add missed precommit changes (when precommit was accidently disabled) by @nstelter-slac in #1252

PySide6 Changes

  • TST: make timeplot testcase work for pyside6 too by @nstelter-slac in #1229
  • MNT: update python lib datetime calls to use newest format, was causing warning output on pyside6 by @nstelter-slac in #1237
  • MNT: deal with large number of warnings when running tests on pyside6 by @nstelter-slac in #1228
  • MNT: on pyside6, ensure events get filtered properly into pydm's base classes. by @nstelter-slac in #1240
  • MNT: stop passing parent=parent to prevent error on pyside6 with init() calls by @nstelter-slac in #1241

New Contributors

Full Changelog: v1.27.0...v1.27.1

v1.27.0

01 Apr 18:26
17cc05b

Choose a tag to compare

What's Changed

This patch adds a few new features to Base Plot and Archive Time Plot along with some bug fixes. We added labels on crosshairs for Time Plots, Archive Time Plots and Waveform Plots and fixed how crosshairs were working. We addressed an issue with dynamically switching a channel on a PyDMWidget.

This update also adds another slew of changes that are needed for PySide6 support in PyDM. (Note that Pyside6 support is currently still in progress and will be fully enabled in a future release. Using Pyside6 will also be an optional feature and should not effect how PyDM currently uses PyQt5.)

Enhancements

  • ENH: Adds Labels to Timeplot Crosshair by @YektaY in #1173
  • ENH: Infinite line extension for PyDMArchiverTimePlot by @YektaY in #1167
  • ENH: ArchiveTimePlot Fetch Data on X-Axis Change by @zdomke in #1172

Bug Fixes

  • BUG: properly remove error bars in time plot's clearCurves by @shilorigins in #1217
  • FIX: Don't attempt a disconnect on the value signal if the widget is being destroyed by @jbellister-slac in #1218
  • FIX: Ensure previous instance of display class is fully cleaned up after reloading it by @jbellister-slac in #1209
  • FIX: Fixing bug with updateXAxis def by @zdomke in #1216
  • BUG: connect BasePlotAxisItem auto-range methods to the linked ViewBox auto-range methods by @shilorigins in #1212
  • FIX: Disconnect the value signal when removing a listener from a connection by @jbellister-slac in #1208

Maintenance:

PySide6 Changes:

  • MNT: make sure we pass a weak ref of the current object to widget_destroyed by @nstelter-slac in #1189
  • MNT: update enum-button widget's button-group to use proper clicked signal, avoid pyside6 error by @nstelter-slac in #1196
  • MNT: stop high-dpi setting warning on pyside6(qt6) by @nstelter-slac in #1198
  • MNT: pyside6 just throws an IndexError instead when connecting to value_signals not overloaded with the specified type by @nstelter-slac in #1197
  • MNT: On pyside6 use == for signal comparison (can't use .signal like in pyqt5) by @nstelter-slac in #1199
  • MNT: Move some calls to children classes to stop pyside6 throwing an error about init in classes that use multiple inheritence. by @nstelter-slac in #1181
  • TST: fix error during tests on pyside6 with c++ internal object deletion by @nstelter-slac in #1215

Full Changelog: v1.26.0...v1.27.0

v1.26.0

18 Mar 23:49
0806a50

Choose a tag to compare

What's Changed

This patch adds some bug fixes related to the ErrorBarItems of ArchiverPlotCurveItem widgets, and the added ability to reference start angle and span angles of PyDMDrawingArc based widgets with their widget-rules (for example, they can now be set by PVs). This update also adds some general maintenance patches to PyDM's setup and GitHub, a highlight being the switch from setup.py to pyproject.toml.

This update also adds a slew of changes that are needed for PySide6 support in PyDM. (Note that Pyside6 support is currently still in progress and will be fully enabled in a future release. Using Pyside6 will also be an optional feature and should not effect how PyDM currently uses PyQt5.)

Maintenance:

  • Migrate to pyproject.toml by @jbellister-slac in #1184
  • MNT: update issues and feature request page on github, make it apply a tag to the issues automatically by @nstelter-slac in #1170
  • MNT: stop install wrong pyca package through pip, and enabled psp test which uses pyca's psp library by @nstelter-slac in #1136
  • FIX: changes to publish-to-pypi.yml by @YektaY in #1165
  • MNT: fix github actions windows tests from failing randomly: maybe windows is slow, try waiting a few seconds longer by @nstelter-slac in #1201
  • STY: fix minor spelling mistakes by @nstelter-slac in #1182

Bug Fixes:

  • FIX: Set log mode and link/unlink ArchivePlotCurveItem.ErrorBarItems by @zdomke in #1168

Enhancements:

  • ENH: add two rules to PyDMDrawingPie widget by @jjanice in #1185

PySide6 Changes:

  • MNT: remove widget classes inheritance from enum, as preperation for qt6 enum support by @nstelter-slac in #1154
  • Support both pyqt5 pyside6 enums by @nstelter-slac in #1155
  • ENH: Add Pyside6 compatible UI file compilation by @nstelter-slac in #1163
  • MNT: make RULE_PROPERTIES work with pyside6 by @nstelter-slac in #1161
  • MNT: switch signal type overloading to use syntax that works for both pyqt5 and pyside6 by @nstelter-slac in #1164
  • TST: some changes to tests for pyside6, also set about page font width to bold (which is same as having 75) by @nstelter-slac in #1176
  • MNT: in tests, access style pixmaps using StandardPixmap by @nstelter-slac in #1187
  • TST: fix segfault issue during symbol editor test on pyside6 by @nstelter-slac in #1190
  • MNT: '|' is only supported way to combine macros in qt6, and still works also for qt5 by @nstelter-slac in #1175
  • MNT: Be sure we use Qt.PenStyle enums for setting pen style, not ints. by @nstelter-slac in #1188
  • MNT: use the correct signal for comboboxes in the camviewer example, stops error on pyside6 by @nstelter-slac in #1192
  • TST: use QSlider.TickPosition values in slider tests (errors when use ints on pyside6) by @nstelter-slac in #1191

New Contributors

Full Changelog: v1.25.2...v1.25.3

v1.25.2

29 Jan 00:15
4a10536

Choose a tag to compare

What's Changed

This update adds a host of bug fixes and maintenance work to PyDM. Included is a fix for loading widgets in QtDesigner when PyDM is installed from PyPI, a fix for indexing into a NTTable's array of np.integer types, a fix for using a PyDMSlider with floating point values, and an improved doc page on setup and contributing for developers.

This update also adds new options for stdout and stderr output from subprocesses launched by PyDMShellCommand widgets, and fixes the issue of these subprocess temporarily freezing when outputting a large amount.

New Features

  • ENH/FIX: shell command output options by @ZLLentz in #1138
  • ENH: make main window menubar action for 'Enter Fullscreen' toggle to 'Exit Fullscreen' when in fullscreen view. by @nstelter-slac in #1128

Docs

Maintenance

Bug Fixes

  • BUG: fix issue where designer doesn't load pydm widgets when pydm is installed from PyPI using pip by @nstelter-slac in #1132
  • FIX: Store Data for FormulaCurveItem with Constant Value by @zdomke in #1124
  • FIX: Check Validity of QAbstractTableModel Classes by @zdomke in #1122
  • FIX: maintain reference to related displays to avoid gc by @ZLLentz in #1137
  • FIX: Small change to addess a valueError in PyDMSlider when they are being dragged by @YektaY in #1147
  • BUG: Add a case in p4p_plugin_component.py for Numpy integers. by @slactjohnson in #1120

New Contributors

Full Changelog: v1.25.1...v1.25.2

v1.25.1

08 Oct 22:11
13200f5

Choose a tag to compare

What's Changed

A small release to update publish-to-pypi.yml file

Bug Fix

Full Changelog: v1.25.0...v1.25.1

v1.25.0

08 Oct 18:08
cb1dd3a

Choose a tag to compare

What's Changed

This update provides a slew of changes to the pydm plots including updates to the PyDMArchiverTimePlot. This update also fixes a couple bugs in the PyDMSlider, so now the slider handle is draggable.

New Features

Maintenance

  • Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows by @dependabot in #1109

Bug Fixes

  • FIX: Unlinking a curve from an axis now removes it from the legend by @aksharsarvesh in #1112
  • FIX: Addressed two bugs on the slider. Middle click to see PV name and click and drag on the slider handle by @YektaY in #1115

New Contributors

Full Changelog: v1.24.1...v1.25.0

v1.24.1

19 Aug 21:44
8b27429

Choose a tag to compare

What's Changed

This update provides a new option to specify to PyDM the order in which dimensions of a PVA image are being sent. Also added are new stepMode options for drawing graphs, and the PyDMByteIndicator now displays negative numbers by the bits of their two's complement representation. Also included are bug fixes and maintenance work related to using PyDM with Python 3.10

New Features

Maintenance

  • FIX: in analong_indicator, explicitly cast to int for py310+ compat by @ZLLentz in #1080
  • Fix Container class move for python 3.10 by @mattgibbs in #1104

Bug Fixes

New Contributors

Full Changelog: v1.24.0...v1.24.1