Releases: slaclab/pydm
v1.27.2
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
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
- @craftablescience made their first contribution in #1221
Full Changelog: v1.27.0...v1.27.1
v1.27.0
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:
- MNT: temp fix for building pyca from git causing gh-actions tests to fail. by @nstelter-slac in #1211
- MNT: appease newer python by not using enum to index into tuple by @nstelter-slac in #1200
- MNT: instruct users to use conda from Miniforge for it's better licensing. by @nstelter-slac in #1205
- MNT: switch from python2 style super() calls to python3 by @nstelter-slac in #1202
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
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:
Enhancements:
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
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
- DOC: add page about custom menu actions by @nstelter-slac in #1123
- DOC: Update docs for contributing by @nstelter-slac in #1134
- DOC: new contributing file is meant to be rst file, not md (this messes with rendering on gh) by @nstelter-slac in #1157
- DOC: format table correctly in CONTRIBUTING doc by @nstelter-slac in #1162
Maintenance
- DEV: don't use mambaforge installers in github actions setup by @nstelter-slac in #1126
- MNT: fix error when using numpy 2+ by @nstelter-slac in #1140
- DEP: Remove References to Deprecated QVariant by @zdomke in #1141
- MNT: stop warnings during tests from using deprecated .command property by @nstelter-slac in #1143
- MNT: make gh actions setup use conda and pip to install packages by @nstelter-slac in #1150
- DEP: Remove Deprecated QVariant Checks by @zdomke in #1153
- MNT: Update versions of checkout and setup-miniconda actions by @jbellister-slac in #1158
- MNT: make gh-actions timeout and fail at 30 mins (instead of 6 hour default) by @nstelter-slac in #1160
- MNT: Pyside6/Qt6 Upgrade Pt 1 by @nstelter-slac in #1139
- MNT: Replace PyQt-specific sip library with wrapper provided by pyqt by @nstelter-slac in #1142
- MNT: remove usage of QWIDGETSIZE_MAX macro, since only PyQt defines it and not PySide by @nstelter-slac in #1148
- TST: add tests for objects the use PyDMPrimitiveWidget's RULE_PROPERTIES by @nstelter-slac in #1151
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
- @slactjohnson made their first contribution in #1120
Full Changelog: v1.25.1...v1.25.2
v1.25.1
v1.25.0
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
- ENH/DEV: Formula Viewer for Archive Viewer by @aksharsarvesh in #1095
- ENH: Import/Export FormulaCurveItem Objects by @aksharsarvesh in #1102
- ENH: Axes Handling and Hiding in Multi Axis Plots by @aksharsarvesh in #1097
- ENH: Import/Export Plot Config by @aksharsarvesh in #1101
- ENH: Added a slot to capture units received from the PyDMChannel by @aksharsarvesh in #1110
- ENH: ArchivePlotCurveItem Connection Status by @zdomke in #1108
- ENH: FormulaCurveItem Connection Status by @zdomke in #1111
- ENH: Add Manual XRange Change Signal by @zdomke in #1116
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
- @dependabot made their first contribution in #1109
Full Changelog: v1.24.1...v1.25.0
v1.24.1
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
- ENH: pva image dim order option by @nstelter-slac in #1085
- ENH: display negative values in byteindicator widget by @nstelter-slac in #1088
- ENH: Add stepMode to BasePlotCurveItem by @zdomke in #1096
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
- FIX: Switching Y Axis orientation was not properly updating by @aksharsarvesh in #1100
- FIX: PyDMSlider out of bounds bug by @phys-cgarnier in #1084
- FIX: Plot Axis Name Change by @zdomke in #1087
- FIX: PyDMChannel Connection Removal Error by @zdomke in #1086
New Contributors
- @aksharsarvesh made their first contribution in #1100
Full Changelog: v1.24.0...v1.24.1
v1.24.0
What's Changed
This update adds EPICS 7 RPC support along with updates and fixes to the PyDMSlider. Please refer to the P4P Plugin documentation page for instructions on how to use the new RPC functionality if interested!
New Features
- ENH: Rpc support by @nstelter-slac in #1052
- ENH: Updating PyDMSlider source code so that users can do single steps with specified step size. by @phys-cgarnier in #1078
Bug Fixes
Full Changelog: v1.23.0...v1.24.0
v1.23.0
What's Changed
This update adds a slew of changes. Most notably to the Archiver Time Plot and Time Plot widgets as well as changes to the base plot. This release also has a few improvements to the pydm drawing widgets, adding new rules and giving users the ability to change the size of arrows on lines.
New Features
- ENH: Add option to change size of arrows on drawn lines by @nstelter-slac in #1072
- ENH: Archiver Timeplot address setters by @zdomke in #1061
- ENH: Archived Data Mode for the Archiver Time Plot Widget by @YektaY in #1062
- ENH: Add checkable columns to Archiver Plot Model by @zdomke in #1074
- ENH: Base Plot Axis log mode setter by @zdomke in #1075
- ENH: Base Plot Axis range values by @zdomke in #1077
- ENH: Timeplot auto scrolling by @zdomke in #1076
- ENH: added new pydm drawing rules for all drawing widgets that allow for p… by @phys-cgarnier in #1066
Maintenance
- MNT: Cleanup drawing lines class-structure by @nstelter-slac in #1073
Bug Fixes
- BUG: reload embedded display when only macros change by @shilorigins in #1064
New Contributors
- @zdomke made their first contribution in #1061
- @shilorigins made their first contribution in #1064
Full Changelog: v1.22.1...v1.23.0