pyqtgraph-0.14.0

## What's Changed


### Highlights

* implement cuda OpenGL interops by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3379
* PColorMeshItem: implement opengl rendering by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3090
* Port PlotCurveItem experimental opengl codepath to shaders by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3055
* Remove MetaArray, MultiPlotItem and MultiPlotWidget by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3051
* Add Boxplot feature by @noonchen in https://github.com/pyqtgraph/pyqtgraph/pull/2562
* Unvendor very old colorama by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3064
* implement fill for connect="finite" by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3071
* Add legend double-click and legend sample click signals. by @kevinanewman in https://github.com/pyqtgraph/pyqtgraph/pull/3111
* pcmi: add support for OpenGL ES 3.0 by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3094
* Bump min numpy to 1.25+ by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3241
* Create FUNDING.yml by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3034


### API/Behavior Changes and Additions

* GLMeshItem: allow ubyte color buffers by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3231
* Allow OpenGL without enableExperimental by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3277
* Do away with Parameter deprecation by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3286
* Transform3D.map should return the type of obj passed in by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/3050
* Remove MetaArray, MultiPlotItem and MultiPlotWidget by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3051
* Remove canvas module by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3056
* implement fill for connect="finite" by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3071
* Raise ParseError on duplicate keys in configfile by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/3121
* Add legend double-click and legend sample click signals. by @kevinanewman in https://github.com/pyqtgraph/pyqtgraph/pull/3111
* Parameter Tree: ListParameter: Add deprecation warning when values is present. by @Tillsten in https://github.com/pyqtgraph/pyqtgraph/pull/3160
* allow conditional siPrefixing of axis labels by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/3136
* PlotItem.autoBtnClicked to emit PlotItem.sigRangeChangedManually by @tikuma-lsuhsc in https://github.com/pyqtgraph/pyqtgraph/pull/3049
* add setSymbol method by @kevinanewman in https://github.com/pyqtgraph/pyqtgraph/pull/3180
* Option to execute repl commands in a non-GUI thread by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/3130
* AxisItem: Allow hiding minor ticks by @2xB in https://github.com/pyqtgraph/pyqtgraph/pull/3318
* allow returned camera params to be set back by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3408
* Plot option to subtract mean value from all samples by @wetzeld in https://github.com/pyqtgraph/pyqtgraph/pull/3240
* Locale aware spinbox by @oyvindlr in https://github.com/pyqtgraph/pyqtgraph/pull/3414
* Parameter: define create as a classmethod by @seb5g in https://github.com/pyqtgraph/pyqtgraph/pull/3403
* Add overlay grid option to GLSurfacePlotItem by @swvanbuuren in https://github.com/pyqtgraph/pyqtgraph/pull/3349
* Alignment option for GLTextItem by @swvanbuuren in https://github.com/pyqtgraph/pyqtgraph/pull/3314


### Bug Fixes

* Correctly handle SI-prefixes for nonlinear units by @oyvindlr in https://github.com/pyqtgraph/pyqtgraph/pull/3394
* fix aspect-locked zoom with mouse-drag while right-button pressed by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3354
* fix: isnan is not available in OpenGL 2.1 nor OpenGL ES 2.0 by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3248
* fix: GL_POINT_SPRITE was not enabled for NoProfile by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3236
* Fix LinearRegionItem mouseDragEvent by @dingo9 in https://github.com/pyqtgraph/pyqtgraph/pull/3168
* render comparison: resize before show by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3415
* fix: GLLinePlotItem uploading vbo perpetually by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3297
* Various OpenGL fixes by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3260
* Support downsampling of image data with NaNs by @nup002 in https://github.com/pyqtgraph/pyqtgraph/pull/3061
* Catch SystemError During Signal.disconnect() by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3021
* RawImageGLWidget: update uploaded state on cleanup by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3043
* enable blending to take into account alpha transparency by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3045
* Fixes: Error when using FFT on data with one point by @Silas-K in https://github.com/pyqtgraph/pyqtgraph/pull/3070
* Fix ViewBox wheel event propagation by @tikuma-lsuhsc in https://github.com/pyqtgraph/pyqtgraph/pull/3052
* bugfix: PlotCurveItem OpenGL didn't invalidate render_cache on cleanup by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3089
* Format DateAxisItem ticks in different timezones correctly by @Gatsik in https://github.com/pyqtgraph/pyqtgraph/pull/3083
* fix ComboBox.items() by @MrHenning in https://github.com/pyqtgraph/pyqtgraph/pull/3113
* connect darkMode slots only once by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3145
* Minor fixes for a memory debugging tool by @campagnola in https://github.com/pyqtgraph/pyqtgraph/pull/3158
* ParseError line numbers should account for empty lines by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/3131
* workaround PySide QByteArray leak on conda builds by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3268
* Fix ConsoleWidget ReplWidget.write() always scrolling to bottom (`scrollToBottom` not working) by @jack-mil in https://github.com/pyqtgraph/pyqtgraph/pull/3140
* initialize the pressPos attribute with default value to prevent error by @seb5g in https://github.com/pyqtgraph/pyqtgraph/pull/3177
* Apoptose dock area when temporary window is closed by @UsYer in https://github.com/pyqtgraph/pyqtgraph/pull/3134
* Fix bug in PlotItem.setAxisItem when called befor scene is set by @tblum in https://github.com/pyqtgraph/pyqtgraph/pull/3182
* Emit sigRegionChanged only once for LinearRegionItem by @jdranczewski in https://github.com/pyqtgraph/pyqtgraph/pull/3291
* Removes GraphicsScene.mouseMoveEvent duplicate events by @boringbyte in https://github.com/pyqtgraph/pyqtgraph/pull/3189
* Fix 'GridItem.generatePicture' for cases of invalid size by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/3284
* Fix scaling with locked aspect by @a17sol in https://github.com/pyqtgraph/pyqtgraph/pull/3100
* Update removeItem() by @psyuktha in https://github.com/pyqtgraph/pyqtgraph/pull/3167
* GLLinePlotItem: restore changes to state by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3223
* PlotDataItem setData() listOfDicts fix? by @kevinanewman in https://github.com/pyqtgraph/pyqtgraph/pull/3190
* To align mark and the label vertically in a Legend by @jiban in https://github.com/pyqtgraph/pyqtgraph/pull/3206
* Fix bug causing DateTimeAxis to not display tick labels #3185 by @tblum in https://github.com/pyqtgraph/pyqtgraph/pull/3187
* Update syntax.py to correctly colorize commented code by @kevinanewman in https://github.com/pyqtgraph/pyqtgraph/pull/3339
* Fix bug preventing console showing more than one uncaught exception by @campagnola in https://github.com/pyqtgraph/pyqtgraph/pull/3309
* fixed the issue where x and y column would be added regardless of the columnMode while exporting to csv by @virgile-hernicot in https://github.com/pyqtgraph/pyqtgraph/pull/3215
* GraphicsLayout: Fix removeItem() regression by @dnadlinger in https://github.com/pyqtgraph/pyqtgraph/pull/3226
* fix GLIsosurface overflow warning on numpy 2 by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3235
* Fix parameter item compare unpack order by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3264
* Fix recarray support in PlotDataItem by @ixjlyons in https://github.com/pyqtgraph/pyqtgraph/pull/3278
* Two minor corrections in flowchart and debug by @campagnola in https://github.com/pyqtgraph/pyqtgraph/pull/3399
* Fix exception when AxisItem is initialized with text argument (fixes #3410) by @simonkeys in https://github.com/pyqtgraph/pyqtgraph/pull/3412
* ensure comparison returns bool instead of np.bool in TableWidget by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3333
* fix: blockSignal=True in Parameter.setValue() by @cogsy23 in https://github.com/pyqtgraph/pyqtgraph/pull/3305


### Performance Improvements

* invalidate nan locations when downsampling image by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3368
* ImageItem: implement persistent default autolevels by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2883
* finer grained VBO upload by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3298
* Skip nan values in mesh by @sldesnoo-Delft in https://github.com/pyqtgraph/pyqtgraph/pull/3114
* Fixed bug that significantly degraded zooming performance for line plots by @oyvindlr in https://github.com/pyqtgraph/pyqtgraph/pull/3330
* use native c++ construction of QPixmap from QImage by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3208
* implement cuda OpenGL interops by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3379
* Port PlotCurveItem experimental opengl codepath to shaders by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3055
* PlotCurveItem: implement OpenGL curve fill by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3068
* PColorMeshItem: implement opengl rendering by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3090
* pcmi: add support for OpenGL ES 3.0 by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3094
* De-ancient-ify OpenGL shaders by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3109
* prevent grid lines from getting mouse events by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3152
* Make PlotCurveItem and PColorMeshItem work in Core Profile by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3257
* Lazy evaluation of mkColor error string by @jdranczewski in https://github.com/pyqtgraph/pyqtgraph/pull/3292
* Make shaders in shaders.py run on macOS OpenGL 4.1 Core by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3256
* ViewBox: Only update auto-range before painting. by @agausmann in https://github.com/pyqtgraph/pyqtgraph/pull/2947
* create a default VAO if using Core profile by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3246
* GLVolumeItem: calculate camera pos using ModelView matrix by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3262
* don't relink shader program where it is not needed by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3295
* Adding support for connect PlotItem connect vector during view clipping and downsampling by @tblum in https://github.com/pyqtgraph/pyqtgraph/pull/3161


### Testing

* test image formats outside of ImageItem by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3014
* Remove now unneeded test skip conditions, use packaging library for version comparison. by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3042
* Add coverage reporting by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3054
* Use packaging library for version comparison by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3127


### Documentation

* Add Qtimer, multi threading and multiprocessing to docs by @kadheer in https://github.com/pyqtgraph/pyqtgraph/pull/3087
* Substantially upgrade ImageItem docs by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3028
* Overhaul PlotDataItem documentation by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3039
* Documentation text review for PlotDataItem by @NilsNemitz in https://github.com/pyqtgraph/pyqtgraph/pull/3057
* Convert PlotItem and AxisItem to use numpydoc Docstring Style by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3261
* Do upgrade to CONTRIBUTING.md, it's been a while by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3058
* Bump sphinx-design from 0.5.0 to 0.6.0 in /doc by @dependabot[bot] in https://github.com/pyqtgraph/pyqtgraph/pull/3032
* Bump sphinx-design from 0.6.0 to 0.6.1 in /doc by @dependabot[bot] in https://github.com/pyqtgraph/pyqtgraph/pull/3119
* Update to pydata-sphinx-theme 0.15.4 by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3079
* Bump pydata-sphinx-theme from 0.15.4 to 0.16.0 in /doc by @dependabot[bot] in https://github.com/pyqtgraph/pyqtgraph/pull/3175
* Upgrade to PyData-Sphinx-Theme 0.16.1 by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3258
* Bump sphinx from 7.3.7 to 7.4.6 in /doc by @dependabot[bot] in https://github.com/pyqtgraph/pyqtgraph/pull/3104
* Bump sphinx from 7.4.6 to 7.4.7 in /doc by @dependabot[bot] in https://github.com/pyqtgraph/pyqtgraph/pull/3106
* Bump sphinxcontrib-images from 0.9.4 to 1.0.1 in /doc by @dependabot[bot] in https://github.com/pyqtgraph/pyqtgraph/pull/3325


### Misc

* replace stencil test with scissor test by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3395
* ColorMapMenu: add new matplotlib colormaps by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3304
* Use filtfilt for bidirectional filtering in Flowchart by @MxFxM in https://github.com/pyqtgraph/pyqtgraph/pull/3237
* Added type annotations to GraphicsWidget by @RushabhMehta2005 in https://github.com/pyqtgraph/pyqtgraph/pull/3178
* adapt to changes in QPainterPathPrivate in Qt 6.10 by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3370
* Update Flowchart.py by @ghylander in https://github.com/pyqtgraph/pyqtgraph/pull/3060
* Update ASV config to use paramers by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2776
* Fix libegl1 not found by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3228
* Fix Comment Error in examples/dockarea.py by @ChenQiang-AISS in https://github.com/pyqtgraph/pyqtgraph/pull/3216
* pcmi opengl: discard nan fragments by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3170
* Annotate slots with `QtCore.Slot` by @bersbersbers in https://github.com/pyqtgraph/pyqtgraph/pull/3123
* Annotate ViewBox slots by @moritz-h in https://github.com/pyqtgraph/pyqtgraph/pull/3380
* GraphicsItem: don't override Qt methods by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3359
* pyside6: don't take QByteArray memoryview too by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3270
* Probe QByteArray leak at runtime by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3274
* REPL fonts should be consistently monospaced by @kevinanewman in https://github.com/pyqtgraph/pyqtgraph/pull/3183
* refactor getting of OpenGLFunctions by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3095
* Create FUNDING.yml by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3034
* remove numba for rescaleData by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3025
* RawImageGLWidget: implement using QOpenGLTextureBlitter by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3031
* Unvendor very old colorama by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3064
* don't draw non-finite pairs by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3082
* fix: minor improvements to the visibility of the colormap button by @wakonig in https://github.com/pyqtgraph/pyqtgraph/pull/3179
* assume matplotlib supports Qt6 by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3205
* Use Monospace font in Console Widget CmdInput by @jack-mil in https://github.com/pyqtgraph/pyqtgraph/pull/3137
* fix variable name typo by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/3338
* CI Updates by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3016


## New Contributors
* @ghylander made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3060
* @soulsyrup made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3067
* @Silas-K made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3070
* @tikuma-lsuhsc made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3052
* @Gatsik made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3083
* @kadheer made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3087
* @nup002 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3061
* @MrHenning made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3113
* @Tillsten made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3160
* @jack-mil made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3140
* @sldesnoo-Delft made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3114
* @a17sol made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3100
* @psyuktha made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3167
* @RushabhMehta2005 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3178
* @wakonig made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3179
* @seb5g made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3177
* @ChenQiang-AISS made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3216
* @jiban made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3206
* @tblum made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3182
* @MxFxM made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3237
* @boringbyte made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3189
* @wetzeld made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3240
* @virgile-hernicot made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3215
* @agausmann made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2947
* @jdranczewski made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3292
* @oyvindlr made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3330
* @simonkeys made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3412
* @wyzula-jan made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3409
* @moritz-h made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3380
* @cogsy23 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/3305

**Full Changelog**: https://github.com/pyqtgraph/pyqtgraph/compare/pyqtgraph-0.13.7...pyqtgraph-0.14.0


pyqtgraph-0.13.7

## What's Changed

* test_PolyLineROI now passes on non-AMD64 platforms by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2999
* Add note about NaN to int conversion by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3007
* remove functions.try_fastpath_argb as it triggered segfaults by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3008
* Allow users to specify FillRule for FillBetweenItem, undo regressionfrom #2971 by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3006

pyqtgraph-0.13.6

## What's Changed

* bdist_wheel needs to grab peegee icons by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/3000


**Full Changelog**: https://github.com/pyqtgraph/pyqtgraph/compare/pyqtgraph-0.13.5...pyqtgraph-0.13.6

pyqtgraph-0.13.5

## What's Changed

### Highlights

* add fastpath for float images with nans by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2970
* Add peegee as mkQApp application icon by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2990
* Add stubs for Qt modules by @maflAT in https://github.com/pyqtgraph/pyqtgraph/pull/2972
* add ColorMapMenu to ColorBarItem by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2955


### API/Behavior Changes

* add ColorMapMenu to ColorBarItem by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2955
* Add Vertical and Horizontal Line Symbols by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2985


### Bug Fixes

* Filling correction for Fillbetweenitem by @BousquetSophie in https://github.com/pyqtgraph/pyqtgraph/pull/2971
* Fix SpinBox SyntaxWarnings #2962 by @aaryamantriescode in https://github.com/pyqtgraph/pyqtgraph/pull/2964
* class Handle Fix allowing dict to be passed for handlePen and removing hard reset for width and cosmetic attributes by @pdmkdz in https://github.com/pyqtgraph/pyqtgraph/pull/2907
* numpy 2.0: workaround regression in rescaleData by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2974


### Misc

* Add peegee as mkQApp application icon by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2990
* Add stubs for Qt modules by @maflAT in https://github.com/pyqtgraph/pyqtgraph/pull/2972
* set SymbolAtlas dpr to primary screen's dpr by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2965
* ImageView example: use levelMode="rgba" by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2963
* Remove deprecated use of paletteChanged by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2993
* Set Application Icon on windows by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2992


## New Contributors

* @aaryamantriescode made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2964
* @maflAT made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2972
* @BousquetSophie made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2971
* @pdmkdz made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2907

**Full Changelog**: https://github.com/pyqtgraph/pyqtgraph/compare/pyqtgraph-0.13.4...pyqtgraph-0.13.5

pyqtgraph-0.13.4

## What's Changed

### Highlights

* Optimize clip and downsample by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2719
* Drop python 3.8 and numpy 1.20 support by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2740
* speed up PColorMeshItem by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2768
* NonUniformImage improvements by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2764
* Fix 'import pyqtgraph.canvas' crash by @nicoddemus in https://github.com/pyqtgraph/pyqtgraph/pull/2934
* Add LabelItem font family option by @misantroop in https://github.com/pyqtgraph/pyqtgraph/pull/2919


### API/Behavior Changes

* Drop python 3.8 and numpy 1.20 support by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2740
* Add `dataBounds()` method to `TextItem` to make autoRange more predictable by @redruin1 in https://github.com/pyqtgraph/pyqtgraph/pull/2646
* speed up PColorMeshItem by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2768
* NonUniformImage improvements by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2764
* Adapt hide icon (invisible eye) to style of other icons by @stephan-senkbeil in https://github.com/pyqtgraph/pyqtgraph/pull/2731
* Add updatePristineValues arg to Parameter.setDefault by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/2853
* Allow ROI context menu to show if non-removable by @samtygier in https://github.com/pyqtgraph/pyqtgraph/pull/2932
* Add LabelItem font family option by @misantroop in https://github.com/pyqtgraph/pyqtgraph/pull/2919
* Center exportDialog using screen geometry by @MorbidCuriosity84 in https://github.com/pyqtgraph/pyqtgraph/pull/2930
* Give siPrefix behavior to values of zero by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/2842
* make ColorBarItem agnostic of the image kind by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2879
* Allow menu selection of ColorMap(s) by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2779
* AxisItem: Add adjustable label overlap tolerances, vertical overlap by default by @NilsNemitz in https://github.com/pyqtgraph/pyqtgraph/pull/2836
* chg: NodeGraphicsItem in Node.py by @Doralitze in https://github.com/pyqtgraph/pyqtgraph/pull/2869
* ScatterPlotItem: implement hidpi pixmap by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2863
* Axis ticker update by @NilsNemitz in https://github.com/pyqtgraph/pyqtgraph/pull/2827
* Preserve tick pen by @NilsNemitz in https://github.com/pyqtgraph/pyqtgraph/pull/2828
* Add turbo colormap to local ColorMaps and GradientEditorItem by @ptuemmler in https://github.com/pyqtgraph/pyqtgraph/pull/2778


### Bug Fixes

* GLViewWidget: fix mouse pos jumps when mouse tracking is off by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2698
* TypeError when using multiple pens for different lines by @adriandavidauer in https://github.com/pyqtgraph/pyqtgraph/pull/2704
* PySide6 6.5.1 compatibility updates by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2734
* guard against auto-downsample oscillation by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2726
* For SVG exports, shift PlotCurveItems to be about 0,0 by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2728
* Update TextItem.py by @dingo9 in https://github.com/pyqtgraph/pyqtgraph/pull/2761
* Fix invisible InfiniteLine at plot edges by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2762
* Fix #2786: proper handling of slider parameter suffix by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2796
* fix: wrong key set to _pixelVectorCache by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2795
* PlotCurveItem check if args is None first by @JayanthBontha in https://github.com/pyqtgraph/pyqtgraph/pull/2835
* fixed recursive PlotWidget.__getattr__ calls by @nleclercq in https://github.com/pyqtgraph/pyqtgraph/pull/2860
* Do not move PlotCurveItem to origin by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2950
* close ROI handle subpath by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2949
* Add updatePristineValues arg to Parameter.setDefault by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/2853
* Use non-deprecated method to access screen info by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2938
* coerce to dtype after creation by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2939
* disconnect only slots that got connected by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2923
* Prevent containerChanged from collapsing an entire container tree by @UsYer in https://github.com/pyqtgraph/pyqtgraph/pull/2888
* fix: paint method widget argument can be None by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2903
* Fix 'import pyqtgraph.canvas' crash by @nicoddemus in https://github.com/pyqtgraph/pyqtgraph/pull/2934
* Fix Python 3.12 `DeprecationWarning`: `datetime.datetime.utcfromtimestamp()` by @bersbersbers in https://github.com/pyqtgraph/pyqtgraph/pull/2848
* convert QPointF to QPoint before calling mapToScene() by @sevas in https://github.com/pyqtgraph/pyqtgraph/pull/2870
* Numpy > 1.20 by @MalteOlle in https://github.com/pyqtgraph/pyqtgraph/pull/2739
* Fix resizing ViewBox if aspect locked + apply ViewBox limits immediately by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2799


### Misc

* bump to dev version by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2693
* Don't draw InfiniteLine anti-aliased if vertical or horizontal by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2709
* Optimize clip and downsample by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2719
* WidgetGroup: avoid lambda by using self.sender() by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2694
* keep track of respective finiteness of x and y by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2720
* refactor GLViewWidget code into GLViewMixin by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2659
* Fix NumPy warning in test_functions by @swt2c in https://github.com/pyqtgraph/pyqtgraph/pull/2746
* generate random integers directly by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2748
* Fix tox config, bump min numpy to 1.22 by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2755
* Simplify fps computation by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2752
* Add iterations argparse argument to benchmarks by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2418
* export dialog - compare items by "is" rather than "==" (operator not implemented!) by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2758
* workaround Python 3.11.4 flag inversion issue by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2760
* use QGraphicsPixmapItem instead of ImageItem to draw colorbar by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2781
* ImageItem: cache nan check by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2784
* ImageItem: request for 256-entry lut by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2808
* update gitignore setting by @longqzh in https://github.com/pyqtgraph/pyqtgraph/pull/2834
* workaround PYSIDE-2487 for pen parameter by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2844
* ButtonItem: draw pixmap to logical size by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2873
* Allow release info change during apt-get update on ubuntu by @spchamp in https://github.com/pyqtgraph/pyqtgraph/pull/2893
* various fixes for NumPy 2.0 by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2894
* Fix typo invloved -> involved by @NilsIrl in https://github.com/pyqtgraph/pyqtgraph/pull/2905
* Add int typehint to ClickRadius by @robtau in https://github.com/pyqtgraph/pyqtgraph/pull/2943
* Refactor ImageItem QImage creation routines by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2944
* Better editable install by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2935
* Use QColor.fromString instead of deprecated QColor.setNamedColor by @zariiii9003 in https://github.com/pyqtgraph/pyqtgraph/pull/2877
* Add pickling to SRTTransform by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/2914
* pcmi: refactor setData() by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2876


### Docs

* Update .readthedocs.yaml by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2732
* Address pydata-sphinx-theme warning by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2861
* Docs: Update Qt binding selection details by @veractor in https://github.com/pyqtgraph/pyqtgraph/pull/2807
* Bump pyqt6 from 6.5.0 to 6.5.1 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2741
* Bump pyqt6 from 6.5.1 to 6.5.2 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2780
* Bump pyqt6 from 6.5.2 to 6.5.3 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2846
* Bump pyqt6 from 6.5.3 to 6.6.0 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2862
* Bump pyqt6 from 6.6.0 to 6.6.1 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2895
* Bump sphinx from 6.1.3 to 6.2.1 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2705
* Bump sphinx from 6.2.1 to 7.1.0 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2782
* Bump sphinx from 7.1.0 to 7.1.2 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2791
* Bump sphinx from 7.1.2 to 7.2.2 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2802
* Bump sphinx from 7.2.2 to 7.2.3 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2806
* Bump sphinx from 7.2.3 to 7.2.4 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2809
* Bump sphinx from 7.2.4 to 7.2.5 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2813
* Bump sphinx from 7.2.5 to 7.2.6 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2821
* Bump pydata-sphinx-theme from 0.13.3 to 0.14.1 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2825
* Bump pydata-sphinx-theme from 0.14.2 to 0.14.3 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2865
* Bump pydata-sphinx-theme from 0.14.3 to 0.14.4 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2889
* Bump pydata-sphinx-theme from 0.14.4 to 0.15.2 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2916
* Bump sphinx-design from 0.4.1 to 0.5.0 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2783


### Testing/CI

* [CI] add mypy settings for CI by @longqzh in https://github.com/pyqtgraph/pyqtgraph/pull/2845
* fix: test Python 3.10 against Qt 6.2 by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2837
* cast float to signed int before to unsigned int by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2946
* Bump pyopengl from 3.1.6 to 3.1.7 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2730
* Bump h5py from 3.8.0 to 3.9.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2750
* Bump h5py from 3.9.0 to 3.10.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2839
* Bump pytest-xvfb from 2.0.0 to 3.0.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2735
* Bump pytest from 7.3.0 to 7.3.1 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2696
* Bump pytest from 7.3.1 to 7.3.2 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2743
* Bump pytest from 7.3.2 to 7.4.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2753
* Bump pytest from 7.4.0 to 7.4.2 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2817
* Bump pytest from 7.4.2 to 7.4.3 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2856
* Bump pytest from 7.4.3 to 8.0.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2922
* Bump pytest from 8.0.0 to 8.0.1 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2942
* Bump pytest from 8.0.1 to 8.0.2 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2945
* Bump pytest from 8.0.2 to 8.1.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2948
* Bump pytest-xdist from 3.2.1 to 3.3.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2722
* Bump pytest-xdist from 3.3.0 to 3.3.1 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2727
* Bump pytest-xdist from 3.3.1 to 3.4.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2880
* Bump pytest-xdist from 3.4.0 to 3.5.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2886
* Bump matplotlib from 3.7.1 to 3.7.2 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2766
* Bump matplotlib from 3.7.2 to 3.7.3 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2818
* Bump matplotlib from 3.7.3 to 3.8.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2823
* Bump matplotlib from 3.8.0 to 3.8.1 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2868
* Bump matplotlib from 3.8.1 to 3.8.2 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2885
* Bump matplotlib from 3.8.2 to 3.8.3 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2937
* Bump numba from 0.56.4 to 0.57.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2711
* Bump numba from 0.57.0 to 0.57.1 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2751
* Bump numba from 0.57.1 to 0.58.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2826
* Bump numba from 0.58.0 to 0.58.1 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2851
* Bump numba from 0.58.1 to 0.59.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2924
* Bump scipy from 1.10.1 to 1.11.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2757
* Bump scipy from 1.11.0 to 1.11.1 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2763
* Bump scipy from 1.11.1 to 1.11.2 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2803
* Bump scipy from 1.11.2 to 1.11.3 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2831
* Bump scipy from 1.11.3 to 1.11.4 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2884
* Bump scipy from 1.11.4 to 1.12.0 in /.github/workflows/etc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2917
* Bump actions/upload-artifact from 3 to 4 by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2902
* Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2814
* Bump actions/cache from 3 to 4 by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2915
* Bump actions/setup-python from 4 to 5 by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2898
* Bump conda-incubator/setup-miniconda from 2 to 3 by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2890
* Bump github/codeql-action from 2 to 3 by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2901


## New Contributors
* @adriandavidauer made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2704
* @MalteOlle made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2739
* @redruin1 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2646
* @dingo9 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2761
* @stephan-senkbeil made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2731
* @ptuemmler made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2778
* @veractor made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2807
* @longqzh made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2834
* @nleclercq made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2860
* @bersbersbers made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2848
* @JayanthBontha made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2835
* @sevas made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2870
* @Doralitze made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2869
* @spchamp made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2893
* @NilsIrl made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2905
* @nicoddemus made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2934
* @MorbidCuriosity84 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2930
* @UsYer made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2888
* @misantroop made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2919
* @zariiii9003 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2877
* @samtygier made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2932
* @robtau made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2943

**Full Changelog**: https://github.com/pyqtgraph/pyqtgraph/compare/pyqtgraph-0.13.3...pyqtgraph-0.13.4


pyqtgraph-0.13.3

## What's Changed

### Highlights

* PySide6 6.5 Compatability

### Bug Fixes

* Return float values from QColor in getByIndex by @nickdimitroff in https://github.com/pyqtgraph/pyqtgraph/pull/2648
* GLViewWidget: don't assume mouse tracking is disabled by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2653
* Tolerate an empty BarGraphItem by @jmakovicka in https://github.com/pyqtgraph/pyqtgraph/pull/2658
* Only apply nan mask workaround for cp version below 10.0. by @koenstrien in https://github.com/pyqtgraph/pyqtgraph/pull/2689

### Misc

* unify ndarray_from_qpolygonf implementation by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2654
* re-enable tests taking gui thread on PySide6 by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2657
* inherit GraphicsWidgetAnchor on the left-hand-side by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2662
* Prepare support for PySide6 drawLines and friends by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2596
* Avoid changing background colors of text and rows for group parameter… by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2683

### Testing

* Allow macOS to have fudge factor in test_polyROI by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2687

### Docs 
* Update pydata-sphinx-theme and fix warnings by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2643
* Bump sphinx-design from 0.3.0 to 0.4.1 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2686
* Bump sphinx from 5.3.0 to 6.1.3 in /doc by @dependabot in https://github.com/pyqtgraph/pyqtgraph/pull/2585

## New Contributors
* @nickdimitroff made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2648
* @koenstrien made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2689

**Full Changelog**: https://github.com/pyqtgraph/pyqtgraph/compare/pyqtgraph-0.13.2...pyqtgraph-0.13.3

pyqtgraph-0.13.2

## What's Changed

### Highlights

* Fix InfiniteLine bounding rect calculation by @ixjlyons in https://github.com/pyqtgraph/pyqtgraph/pull/2407
* Allow plotting multiple data items at once by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2461
* Migrate to PyData Sphinx Theme - Restructure Docs by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2449

### API/Behavior Changes

* re-enable hmac authentication for win32 by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2465
* Add keyword argument in PColorMeshItem to enable consistent colormap scaling during animation by @SimenZhor in https://github.com/pyqtgraph/pyqtgraph/pull/2463
* fix: use connect='finite' if finite-ness of data is unknown by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2471
* Fix `ViewBox.autoRange()` for case of data with constant y-value by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2489
* Make `ActionGroup` compatible with existing Parameter conventions by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2505
* Update `PenParameter` by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2536
* remove resizeEvent on screen change by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2546
* BarGraphItem: implement dataBounds and pixelPadding by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2565
* Maintain argument propagation for GLGraphicsItems to super class by @koutoftimer in https://github.com/pyqtgraph/pyqtgraph/pull/2516
* Accept custom ROI objects for ImageView by @ktahar in https://github.com/pyqtgraph/pyqtgraph/pull/2581
* PColorMeshItem colorbar support by @SimenZhor in https://github.com/pyqtgraph/pyqtgraph/pull/2477
* feat(PlotItem) define context menu action visibility by @jmkerloch in https://github.com/pyqtgraph/pyqtgraph/pull/2584
* Allow plotting multiple data items at once by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2461

### Bug Fixes

* Fix renderView to not use mremap on FreeBSD by @yurivict in https://github.com/pyqtgraph/pyqtgraph/pull/2445
* Fix action parameter button that is briefly made visible before getting a parent by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2451
* Fix InfiniteLine bounding rect calculation by @ixjlyons in https://github.com/pyqtgraph/pyqtgraph/pull/2407
* Fix disconnect of signal proxy by @dgoeries in https://github.com/pyqtgraph/pyqtgraph/pull/2453
* Fix ButtonItem hover event by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2473
* test and fix for ChecklistParameter.show bug by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/2480
* fix segmented line mode with no segments by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2481
* Prevent flickering `ActionGroup` when switching parameter trees by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2484
* fix: ndarray_from_qimage does not hold a reference to qimage by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2492
* Fix exportDialog drawn off screen by @aksy2512 in https://github.com/pyqtgraph/pyqtgraph/pull/2510
* partial fix for Qmenu leak by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2518
* Fix last QMenu leak and its associated segfaults by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2522
* fix setMaximumHeight(1e6) in  SpinBox.py by @sem-geologist in https://github.com/pyqtgraph/pyqtgraph/pull/2519
* Use base_prefix to detect virtual env by @eendebakpt in https://github.com/pyqtgraph/pyqtgraph/pull/2566
* typo: dataRange -> dataBounds by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2589
* NonUniformImage: implement floating point boundingRect by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2587
* PColorMeshItem: implement dataBounds and pixelPadding by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2586
* BarGraphItem: calculate boundingRect without drawing by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2599
* Fix bounds handling when data is int16 or similar formats by @NilsNemitz in https://github.com/pyqtgraph/pyqtgraph/pull/2515
* ImageView: make .nframes() to use .axis['t'] instead of .shape[0] by @sem-geologist in https://github.com/pyqtgraph/pyqtgraph/pull/2623
* Fix GraphicsScene ValueError in mouseReleaseEvent by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2605
* PlotCurveItem error with stepMode="center", autoRange and autoVisible by @djdt in https://github.com/pyqtgraph/pyqtgraph/pull/2595

### Examples

* Fix #2482 argparse inputs were ignored by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2483
* PlotSpeedTest: reflect initial use_opengl state by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2487
* draw example histogram using BarGraphItem by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2556

### Tests

* ROI: Add test with mouseDrag event and check snapping by @dgoeries in https://github.com/pyqtgraph/pyqtgraph/pull/2476
* fix wrong logic for assert_alldead by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2503
* fix: instantiate QApplication for test_Parameter.py by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2539
* don't use pg.plot() in tests by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2625

### Docs

* Migrate to PyData Sphinx Theme - Restructure Docs by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2449
* Fix Qt crash course example by @Jaime02 in https://github.com/pyqtgraph/pyqtgraph/pull/2470

### Other

* Remove remaining templates by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2448
* Have canvas deprecation warning by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2446
* unify win32 and unix mmap codepaths by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2457
* Update setup.py, import distutils after setuptools by @LocutusOfBorg in https://github.com/pyqtgraph/pyqtgraph/pull/2459
* Raise appropriate Exceptions in place of generic exceptions by @Nibba2018 in https://github.com/pyqtgraph/pyqtgraph/pull/2474
* Remove old unused mains by @Jaime02 in https://github.com/pyqtgraph/pyqtgraph/pull/2490
* make DockDrop be a non-mixin by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2450
* Use non-deprecated QMouseEvent signatures by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2509
* Remove STRTransform main by @Jaime02 in https://github.com/pyqtgraph/pyqtgraph/pull/2466
* Minor improvements to `InteractiveFunction` ecosystem by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2521
* Improve `ChecklistParameter.setValue` logic. by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2544
* Remove antiquated Qt crash prevention by @NeilGirdhar in https://github.com/pyqtgraph/pyqtgraph/pull/2573
* create internals.PrimitiveArray by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2591
* rename "method" to "use_array" and make it keyword only by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2609

## New Contributors

* @yurivict made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2445
* @Jaime02 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2468
* @SimenZhor made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2463
* @Nibba2018 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2474
* @rookiepeng made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2491
* @aksy2512 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2510
* @noonchen made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2553
* @ZeitgeberH made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2559
* @NeilGirdhar made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2573
* @koutoftimer made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2516
* @ktahar made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2581
* @bilaljo made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2577
* @djdt made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2595
* @jmkerloch made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2584

**Full Changelog**: https://github.com/pyqtgraph/pyqtgraph/compare/pyqtgraph-0.13.1...pyqtgraph-0.13.2

pyqtgraph-0.13.1

## What's Changed

Bug Fixes

* Refactor examples using `Interactor` to run on changing function parameters by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2437

API Change

* deprecate GraphicsObject::parentChanged method by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2420

Other

* Move Console to generic template and make font Courier New by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2435



pyqtgraph-0.13.0

## What's Changed

Highlights

* With PyQt6 6.3.2+ PyQtGraph uses sip.array, which leads to significantly faster draw performance by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2314
* Introducing "interactive" parameter trees by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2318
* Minimum Qt version now 5.15 for Qt5 and 6.2+ for Qt6 by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2403
* with `enableExperimental` pyqtgraph accesses QPainterPathPrivate for faster QPainterPath generation by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2324

New Features

* Interactive params fixup by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2318
* Added possibility to use custom dock labels by @ardiloot in https://github.com/pyqtgraph/pyqtgraph/pull/2274
* Introduce API option to control whether lines are drawn as segmented lines by @swvanbuuren in https://github.com/pyqtgraph/pyqtgraph/pull/2185
* access QPainterPathPrivate for faster arrayToQPath by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2324
* Update LabelItem to allow transparency in the text by @ElpadoCan in https://github.com/pyqtgraph/pyqtgraph/pull/2300
* Make parameter tree read-only values selectable and copiable by @ardiloot in https://github.com/pyqtgraph/pyqtgraph/pull/2311
* Have CSV exporter export error bar information by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2405
* map pyqtgraph symbols to a matplotlib equivalent by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2395

Performance Improvements

* Improve performance of PlotCurveItem with QOpenGLWidget by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2264
* ScatterPlotItem: use Format_ARGB32_Premultiplied by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2317
* access QPainterPathPrivate for faster arrayToQPath by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2324
* make use of PyQt sip.array by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2314

Bug Fixes

* Fix GLImageItem regression by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2232
* Fixed the app crash on right clicked by @Cosmicoppai in https://github.com/pyqtgraph/pyqtgraph/pull/2236
* Fix Regression in in ViewBox.updateScaleBox Caused by #2034 by @campagnola in https://github.com/pyqtgraph/pyqtgraph/pull/2241
* Fix UFuncTypeError when plotting integer data on windows by @campagnola in https://github.com/pyqtgraph/pyqtgraph/pull/2249
* Fixed division by zero when no pixmap is loaded by @StSav012 in https://github.com/pyqtgraph/pyqtgraph/pull/2275
* Ensure in PlotCurveItem lookup occurs in tuple, not str by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2294
* Fixed a crash when `step` option is missing by @StSav012 in https://github.com/pyqtgraph/pyqtgraph/pull/2261
* Invalidate cached properties on geometryChanged signal by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2357
* Bugfix: Handle example search failure due to bad regex by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2121
* Address #2303 unapplied pen parameter constructor options by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2305
* Issue #2203 Potential Fix: Disabled FlowchartCtrlWidget.nodeRenamed o… by @HallowedDust5 in https://github.com/pyqtgraph/pyqtgraph/pull/2301
* Fix #2289 unwanted growing in scene context menu by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2306
* #2283 delete limitation by rectangle width ROI by @sasha-sem in https://github.com/pyqtgraph/pyqtgraph/pull/2285
* Update exception handling to catch exceptions in threads (py3 change) by @campagnola in https://github.com/pyqtgraph/pyqtgraph/pull/2309
* Fix PlotCurveItem errors when pen=None by @campagnola in https://github.com/pyqtgraph/pyqtgraph/pull/2315
* ScatterPlotItem point masking fix by @ardiloot in https://github.com/pyqtgraph/pyqtgraph/pull/2310
* Use property to lazily declare rectangle by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/2356
* Fix missing import in Flowchart.py by @Puff-Machine in https://github.com/pyqtgraph/pyqtgraph/pull/2421
* Fix doubling labels in DateAxisItem by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2413
* GridItem: Fix pen for usage of dash-pattern by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2304
* Update PColorMeshItem.py by @LarsVoxen in https://github.com/pyqtgraph/pyqtgraph/pull/2327
* Fix infinite loop within DateAxisItem by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2365
* Fix GraphicsScene.itemsNearEvent and setClickRadius by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2383
* Modify MatplotlibWidget to accept QWidget super constructor parameters. by @Dolphindalt in https://github.com/pyqtgraph/pyqtgraph/pull/2366
* Fix flickering, when panning/scrolling in a fully zoomed-out view by @bbc131 in https://github.com/pyqtgraph/pyqtgraph/pull/2387
* Make auto downsample factor calculation more robust by @StSav012 in https://github.com/pyqtgraph/pyqtgraph/pull/2253
* Fix : QPoint() no longer accepts float arguments by @campagnola in https://github.com/pyqtgraph/pyqtgraph/pull/2260
* avoid double __init__ of DockDrop by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2286
* Add a few ImageView improvements by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/1828

API/Behavior Changes

* remove border QGraphicsRectItem from scene by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2225
* Introduce API option to control whether lines are drawn as segmented lines by @swvanbuuren in https://github.com/pyqtgraph/pyqtgraph/pull/2185
* Modify CSV exporter to output original data without log mapping by @NilsNemitz in https://github.com/pyqtgraph/pyqtgraph/pull/2297
* Expose useCache ScatterPlotItem option from plot method by @ibrewster in https://github.com/pyqtgraph/pyqtgraph/pull/2258
* remove legend items manually from scene by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2368
* `getHistogramRange` for `HistogramLUTItem` by @kremeyer in https://github.com/pyqtgraph/pyqtgraph/pull/2397
* Axis pen improvements by @ibrewster in https://github.com/pyqtgraph/pyqtgraph/pull/2398
* remove MatplotlibWidget from pg namespace by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2400
* change the libOrder to favor Qt6 by @Wubbzi in https://github.com/pyqtgraph/pyqtgraph/pull/2157

Examples

* Added Jupyter console widget and Example by @jonmatthis in https://github.com/pyqtgraph/pyqtgraph/pull/2353
* Add glow example by @edumur in https://github.com/pyqtgraph/pyqtgraph/pull/2242
* update multiplePlotSpeedTest.py to use PlotCurveItem instead of QGraphicsPathItem by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2426

Docs

* Add GLTextItem to docs by @jebguth in https://github.com/pyqtgraph/pyqtgraph/pull/2419
* Add logo to docs by @ixjlyons in https://github.com/pyqtgraph/pyqtgraph/pull/2384
* Enable nit-picky mode in documentation and fix associated warnings by @j9ac9k in https://github.com/pyqtgraph/pyqtgraph/pull/1753
* Added UML class diagram to give overview of the most important classes by @titusjan in https://github.com/pyqtgraph/pyqtgraph/pull/1631

Other

* Remove old Qt workarounds by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2224
* Track when ScatterPlotItem clears the tooltip, only clear when needed by @ixjlyons in https://github.com/pyqtgraph/pyqtgraph/pull/2235
* Avoid import error in HDF5 exporter by @campagnola in https://github.com/pyqtgraph/pyqtgraph/pull/2259
* test enum using : "enums & enum" by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2250
* add support for PySide6 6.3.0 QOverrideCursorGuard by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2263
* Used the power of `blockIfUnchanged` decorator by @StSav012 in https://github.com/pyqtgraph/pyqtgraph/pull/2181
* Handle/remove unused variables by @ksunden in https://github.com/pyqtgraph/pyqtgraph/pull/2094
* BusyCursor and QPainter fixes for PyPy by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2349
* Add a pyi stub file to import best-guess pyqt type hints by @outofculture in https://github.com/pyqtgraph/pyqtgraph/pull/2358
* test_PlotCurveItem: unset skipFiniteCheck for next test by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2313
* lazy create the rectangle selection item by @danielhrisca in https://github.com/pyqtgraph/pyqtgraph/pull/2168
* fix: super().__init__ does not need self by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2359
* Promote interactive `Run` action to group level by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2414
* Enhance testing for creating parameters from saved states by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2319
* add support for PySide6's usage of Python Enums by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2329
* remove QFileDialog PyQt4 compatibility code by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2394
* Bugfix: `interact` on decorated method that uses `self`. by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2408
* use single generic template for all bindings by @pijyoi in https://github.com/pyqtgraph/pyqtgraph/pull/2226
* `interact()` defaults to `ON_ACTION` behavior and accepts `runActionTemplate` argument by @ntjess in https://github.com/pyqtgraph/pyqtgraph/pull/2432

## New Contributors
* @andriyor made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2212
* @keziah55 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2191
* @Cosmicoppai made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2236
* @bbc131 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2264
* @StSav012 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2181
* @ardiloot made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2274
* @sasha-sem made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2285
* @swvanbuuren made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2185
* @Anatoly1010 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2330
* @LarsVoxen made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2327
* @HallowedDust5 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2301
* @ElpadoCan made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2300
* @dependabot made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2342
* @jaj42 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2389
* @Dolphindalt made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2366
* @kremeyer made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2397
* @jonmatthis made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2353
* @jebguth made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2419
* @Puff-Machine made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull/2421

**Full Changelog**: https://github.com/pyqtgraph/pyqtgraph/compare/pyqtgraph-0.12.4...pyqtgraph-0.13.0

pyqtgraph-0.12.4

  Highlights:
    - #2055 Jupyter Support via jupyter-rfb
    - #2011 Experimental High Performance With Lines > 1px Thickness 
    - #2059/#2153 Python 3.10 Support

  New Features:
    - #2041 Allow unsetting various options in PlotDataItem and PlotCurveItem
    - #2052 PlotItem Average pen and shadow pen are now accessible
    - #2090 More coninient methods for color maps and bars

  Performance Enhancements:
    - #2023 PColorMeshItem Performance Improvements
    - #2032 Speed up PlotCurveItem fillLevel
    - #2036 Speed up arrayToQPath for connect='all' with non-finite values
    - #2111 PlotCurveItem OpenGL avoid automatic conversion from float64 to float32
    - #2124 Go back to using np.clip on Windows with numpy 1.22 or newer
    - #2131 Avoid PyOpenGL automatic array conversion
    - #2198 Cache values used in GraphicsWidget .boundingRect() and .shape() methods
    - #2199 Avoid unnecessary call to viewRange if autoRange is disabled
    - #2202 Cachce ViewBox view pixel size

  Bug Fixes:
    - #2034 Fix Mouse Event possitioning issue with grid
    - #2047 Fixed WidgetGroup Handling QSplitter
    - #2054 Limit ViewBox based on double precision limitations
    - #2085 Reverse coordinates when drawing on row-major images
    - #2087 Fix broken imports in some examples
    - #2089 Don't raise exception when close method of an already-closed dock is called
    - #2101 Change GroupParameterItem palette to look ok in darkmode on macOS
    - #2103 Fix stuck ColorBarItem
    - #2132 Workaround for PySide6 6.2.2 breaking change 
    - #2130 RangeColorMapItem derives from ColorMapParameter
    - #2147 Fire correct signal for Checklist ParameterItem type
    - #2148 Avoid comparing a string with a np.ndarray
    - #2170 Fix formatting on minimum value of GradientLegend

  API/Behavior Changes:
    - #2081 Separate x and y flags for AxisItem.setLogMode
    - #2086 ParameterTree PenParameter now uses GrouParameter instead of popup button
    - #2097 Add a proxy delay to checklist ParameterItem changes via children edits
    - #2192 Added option to makeARGB to disable masking NaNs

  Other:
    - #1915 Deprecate QtWidgets accessed through QtGui 
    - #2002 isort and pycln prun over entire repo
    - #2038 Fixed various deprecations
    - #2045 Examples Directory moved inside project directory
    - #2051 Implement Pickle Protocol for RemoteGraphicsView
    - #2053 Disable unneeded call to ViewBox.prepareForPaint()
    - #2057 Avoid re-dispatching mouse events from the AxisItem
    - #2064 Add a quantization limit to ViewBox
    - #2073 Implementing glInfo without PyOpenGL
    - #2077 Improved error message for invalid PYQTGRAPH_QT_LIB
    - #2083 Added check for ROI to make sure its in a GraphicsScene
    - #2093 Add helpful exceptions for invalid inputs to some methods
    - #2096 Be lazier about importing h5py
    - #2098 Remove polluting import namespace using *
    - #2099 Convert == None to is None checks
    - #2100 Avoid re-using variables in nested loops
    - #2124 Fixed variety of deprecation warnings
    - #2154 Fix typos and formatting errors in comments/docstrings
    - #2194 stop using deprecated numpy.fromstring and use numpy.frombuffer instead

pyqtgraph-0.12.3

  Highlights:
    - PlotCurveItem render speed is now substantially faster
    - #1868/#1873 Example app now has filter text input
    - #1910 PlotSpeedTest now has parameter tree control panel

  New Features:
    - #1844 More parameter item types (File, Calendar, ProgressBar, Font, Pen, Slider)
    - #1865 Matplotlib colormaps viridis, plasma, magma and inferno are now included in pyqtgraph
    - #1911 Extend Colormap with HSL cycles and subset generation
    - #1932 Make anti-aliasing optional for paintGL in PlotCurveItem
    - #1944 Expand use of QColor functions/methods, including setNamedColor
    - #1952 Add checklist parameter item
    - #1998 ThreadTrace can now save to a file

  Performance Enhancement:
    - #1927 Reduce ColorMap inefficiencies
    - #1956 use QByteArray as backing store in arrayToQPath
    - #1965 perform arrayToQPath in chunks

  Bug Fixes:
    - #1845 Fix zoom behavior with showGrid by separating mouse events stolen by AxisItem
    - #1860 RemoteGraphicsView and RemoteSpeedTest now work under windows venv environments
    - #1865 Fixed matplotlib colormap importer code
    - #1869 Fix ColorBarItem tick position on export
    - #1871 Allow adding items to GLViewWidget before showing plot
    - #1875 Fix calls in mouse methods in GLViewWidgets due to missing event.localPos() in PyQt6
    - #1876 Fix for improper placement of ROI handle positions in some cases
    - #1889/#2003 Fix call to drawText in GLTextItem and GLGradientLegendItem on Python 3.10
    - #1897/#1902 Re-enable "experimental" feature with fix for PlotCurveItem with OpenGL on Windows
    - #1907 Fix GLVolumeItem example for arm64 platforms
    - #1909 Check if AxisItem.label is None before and exit early in resizeEvent
    - #1920 arrayToQPath can handle empty paths
    - #1936 QPolygonF creation can now handle empty arrays
    - #1968 Fix output of clip_array in colormap.modulatedBarData not being assigned
    - #1973 Fix PlotItem.updateDecimate unhiding intentionally hidden curves
    - #1974 Fix ImageView levelMode with levelMode == 'rgba'
    - #1987 Fix HistogramLUTItem itemChanged with use of autoLevel
    - #2009 Fix ROI curves hidding in ImageView

  API/Behavior Changes:
    - #1992 Reverted to traditional log10 mode for PlotDataItem 
    - #1840 Allow border=False in GraphicsLayout
    - #1846 Reduced pollution to pg.namespace
    - #1853 ColorMap.getColors and getStops behavior changes
    - #1864 Draw GradientLegend in ViewBox coordinates
    - #1885 Raise TypeError instead of general Exception if functions.eq is unable to determine equality
    - #1903 Cleanup GLViewWidget
    - #1908 More readable parameters for ColorBarItem
    - #1914 Emit deprecation warning for use of pyqtgraph.ptime
    - #1928 Restore previous signature of TargetItem.setPos
    - #1940 fix log mode by reverting to previous formulation
    - #1954 Deprecate use of values opt for list parameter type
    - #1995 ColorButton now takes optional padding argument instead of hardcoded value of 6

  Other:
    - #1862/#1901 MetaArray now under deprecation warning, to be removed in a future version
    - #1892 Add GLPainterItem Example
    - #1844 Debugged elusive intermitted CI segfault
    - #1870/#1891 Updated README.md
    - #1895 Update CONTRIBUTING.md 
    - #1913 Bump sphinx and theme versions
    - #1919 Re-organize paramtypes
    - #1935 Remove some unused imports
    - #1939 Remove usage of python2_3.py
    - #1941 Remove str casting of QTextEdit.toPlainText output
    - #1942 Add EOF newline to files missing it
    - #1943 Remove python2 code paths
    - #1951 Fix typos in docs
    - #1957 Bump minimum numpy version to 1.18
    - #1968 Fix ImageView calling deprecated QGraphicsItem.scale()
    - #1985 delegate float LUTs to makeARGB with warning
    - #2014 Replace couple absolute imports with relative imports

pyqtgraph-0.12.2

  Highlights
    - Qt6 6.0 support has been removed in favor of Qt6 6.1+
    - More numba utilization, specifically for makeARGB 
    - Substantial ImageItem performance improvements have been made thanks to @pijyoi and @outofculture
    - Significant performance improvements made to ScatterPlotItem and LinePlots
    - More ColorMap features/support (more are coming!)
  
  New Features
    - #1318 Added TargetItem
    - #1707 Added Qt 6.1 support
    - #1729 Allow gradient position to be configured on a histogram
    - #1742 Better support for plotting with gradients
    - #1776 Add GLTextItem
    - #1797 Add ColorMap linearization (using CIELab calculations), colorDistance functionality
    - #1865 Include viridis, magma, plasma, inferno, and cividis colormaps
    - #1868/#1873 Example app now has a filter text box to search for relevant examples

  Performance enhancement:
    - #1738, #1695, 1786, #1768, 1794 - ImageItem/makeARGB performance improvements
    - #1724 Use math module for scalar values math instead of numpy functions
    - #1796 Greatly speed up line plots with use-case of connect='all'
    - #1817 Speed up some cases of connect='finite' (few discontinuities)
    - #1829 Use QPainter.drawPixmapFragments for ScatterPlotItem

  Bug Fixes:
    - #1700 Fixed ROI getArrayRegion
    - #1748 Fixed bug when plotting boolean arrays in PlotDataItem
    - #1791 Callable LUTs being used on the ImageItem substrates
    - #1783 Fix memory leak in GLMeshItem
    - #1802 Updated cx_freeze example and added workaround for template files
    - #1804 Fix mouseClick handling for Qt6 on ROIs
    - #1799 Force cameraPosition() to return a Vector in GLViewWidget
    - #1809 Sanitize ShowGrid Alpha Input PlotItem
    - #1816 Fix bug with Parameter value failing with numpy array-like values
    - #1827 Fix BusyCursor to use internal stack provided by setOverrideCursor/restoreOverrideCursor
    - #1833 Fix ScatterPlot render issues for PyQt6 6.1.0
    - #1843 Fix zoom only applied to y-axis with show grid
    - #1860 Fix pyqtgraph multiprocessing on Windows inside a venv environment
    - #1869 Fix color bar ticks not being drawn correctly during export
    - #1865 Fix matplotlib colormap import code
    - #1876 Fix LineROI handle positions being way off-base in some circumstances
    - #1871 Allow adding items to GLViewWidget before calling GLViewWidget.show()
    - #1864 Draw GradientLegend in ViewBox coordinate system with correct orientation
    - #1875 Fixed mouse events in GLViewWidget for PyQt6 bindings

  API/Behavior Changes:
    - #519 Expose clickable property in PlotDataItem
    - #1772 Keep ColorMap values for RGBA as uint8
    - #1736 RemoteGraphicsView is now hidpi aware
    - #1779 Have SpinBox use fallback minStep in dec mode
    - #1706 Colors defined with hex string values must start with a #
    - #1819 Added method to disable autoscaling for HistogramLUTItem
    - #1638 Expose number of subsamples in ImageItem auto-level determination
    - #1824 Remove little-endian assumption for image export
  
  Other
    - #1807 Merge pyqtgraph/test-data repo into main repo, move test files to tests directory
    - #1862 Scheduled deprecation for MetaArray module
    - #1846 Cleaned up pg namespace



pyqtgraph-0.12.1

  New Features
    - #1596 - Add ColorBarItem for simplified image level adjustment

  Performance enhancement:
    - #1650 Don't use clip_array on scalers in DynamicPlotRange
    - #1617 Optimize makeARGB for ubyte images
    - #1648 Implement blocked variant of rescaleData
  
  API/Behavior Change:
    - #1690 Parameter Item default created from value if not present

  Bug Fixes:
    - #1665 Don't pass brush to mkPen in LegendItem.paint()
    - #1660 Include colormaps in the python wheel
    - #1653 Fix accidental disabling of style updates in PlotDataItem
    - #1647 Handle empty adjacency array for GraphItem
    - #1680 Fix test suite for big-endian architectures
    - #1694 DateAxisItem now accounts for Daylight Savings Time
    - #1691 Make sure dynamic range limiter runs on PlotDataItem

pyqtgraph-0.12.0

  Deprecations:
    - Qt < 5.12, Python < 3.7, and NumPy < 1.17 are no longer supported

  New Features:
    - Qt6 Compatibility (thank you so much @pijyoi !)
    - #1466 CuPy/CUDA support for ImageItem! (thanks you so much @outofculture !)
    - #1520/#1518 i18n Localization support for dialogs
    - #1497 Allow toggling visibility via mouse click on LegendItem
    - #1527 Expand parameter tree documentation
    - #1563 Fixes to FlowChart documentation
    - #1534 Extend pixmaps for GraphIcons
    - #1566 Toggle-able options for ScatterPlotSpeedTest.py
    - #1572 Arbitrary scale center ROI
    - #1581 Equilateral Triangle ROI

  Performance enhancement:
    - #1493 significant speedup to invertQTransform()
    - #1501 various ImageItem performance improvements
    - #1509 mkQApp will now have settings for better HiDPI settings 
    - #1518 Small Optimizations for functions.rescaleData()
    - #1556 Reduce reallocation in PlotDataItem dynamic range limiter
    - #1560 Cache scatter-plot items by hashable properties
    - #1564 Correct id-based keyring of scatter plot pixmap cache
    - #1569 Fix ScatterPlotItem performance regression
    - #1619 Stop PlotDataItem from always sending full style information to PlotCurveItem/ScatterPlotItem
    - #1630 Combine levels and lut only if both are present
    - #1632/#1641/#1649 workaround for np.clip regression since numpy 1.17
    - #1641 Introduce functions.clip_array as faster replacement for currently slow np.clip
    - #1637 PlotDataItem Fix viewRange <-> dynamic range limit
    - #1650 Introduce functions.clip_scalar to clip scalar values

  API/Behavior Change:
    - #1476 Use log modulus transform for y-axis log scaling
    - #1522 InfiniteLine emits clicked signal event
    - #1525 Use QOpenGLWidget instead of QGLWidget
    - #1540 Support siPrefix with no suffix in SpinBox
    - #1541 Use qWaitForWindowExposed instead of qWaitForWindowShown
    - #1554 Disable paint in GLScatterPlotItem if it has no data
    - #1573/1576 Add deprecation warnings to portions of library
    - #1587 qApp.property('darkMode') is now a dynamic property
    - #1613 Added keys() method to Parameter class
    - #1646 Removed unhelpful warnings
    - #1645 Make main stanza PyQt6 compatible
    - #1644 Deprecate use of hex strings that do not start with "#" in mkColor

  Bug Fixes:
    - #1487 Fix InfiniteLabel object has no attribute 'updateText'
    - #1491 LinearRegionItem would break with setSpan
    - #1496 enableMenu setting now preserved when passing ViewBox to PlotItem
    - #1498 PlotDataItem now signals on setPos()
    - #1500 AlignCenter should have been AlignHCenter
    - #1506 Fix "camerPosition" typo in GLViewWidget
    - #1510 Fix RemoteGraphicsView mouse interactions on Qt 5.12
    - #1517 Fix RemoteSpeedTest Shutdown Errors
    - #1528 Support suffix for int parameters in SpinBox
    - #1546 ImageView guards against key events when there is no time axis
    - #1558 Fix Small Heights in ErrorBarItem
    - #1567 Handle 0-d arrays in InfiniteLine.setPos()
    - #1583 RawImageWidget fix port to QOpenGLWidget
    - #1594 PlotItem removeItem regression fixed
    - #1595 Workaround for CuPy Indexing Bug
    - #1597 Fix RawImageWidget transpose did not handle luminance only images
    - #1598 Remove references to self from lambdas for Signals
    - #1618 Install sys.excepthook for PyQt6
    - #1639 Fix transformations in GradientLegend
    - #1647 Have GraphItem handle empty adjacency array
    - #1653 Fix accidentally styled updates in PlotDataItem
    - #1651 Use collections.abc for collections metaclasses in colormap.py

pyqtgraph-0.11.1

  New Features:
    - #800 Legend for bar graphs
    - #1244 Arrow scatter symbols
    - #161 Allow hiding individual points in scatter plot
    - #395 LegendItem display options
    - #1310 Added `Pa` to Units
    - #1310 `debug.ThreadTrace` add support for thread names
    - #117 Flow Chart Nodes now resized based on number of inputs/outputs
    - #1154 `DateAxisItem`
    - #1285 Improve control over ROI/handle pens
    - #1273 `PColorMeshItem`
    - #1397 `LegendItem` enable customization of label text size
    - #1422 Permit entry of non-finite values into float `SpinBox`
    - #1442 `TickSliderItem.allowRemote` property added
    - #1441 `Tick.removeAllowed` is now a regular property and used with `TickSliderItem`
    - #1388 Emit a signal when `GraphicsScene` `addItem` or `removeItem` methods called

  Performance enhancement:
    - #1240/#345 GLImageItem clear need update flag
    - #977 Faster computation option for pseudoscatter
    - #1297 Improve ArrowItem performance
    - #1296 Update `h5py` deps in metaarray
    - #1295 Improve TextItem performance
    - #1283 Performance improvements to arrayToQPath
    - #816 Avoid constructing shadow pens when no shadow pen is set
    - #1311 HistogramLUTItem detect trivial gradients
    - #1312 avoid extra work when setLabelAngle would have no effect
    - #1391 cache viewRect of `GraphicsItem` to reduce CPU load
    - #150 Slight speedup to ViewBox panning
    - #1420 Many ScatterPlot Improvements

  API/Behavior Change:
    - #496 Always antialias lines between gradient and region in HistogramLUTItem
    - #385 Add headWidth parameter to arrows
    - #551 fps variable on ImageView
    - #1251 Allow explicit utcOffset timezone in DateAxisItem
    - #1310 Add `SignalProxy.block` for temporary disabling of signal forwarding
    - #1310 `InfiniteLine.setPos` add support for array argument
    - #1310 Rate-limit Qt event processing in ProgressDialog if it is modal
    - #1289 Disable autoSIPrefix for DateAxisItem by default
    - #1274 Add tickAlpha to AxisItem Style Options
    - #402 Added `clear()` method to `GLViewWidget`
    - #1264 Added exception to checkOpenGLVersion to highlight OpenGL ES incompatibility
    - #1257 Make painter tick font dependent for AxisItem
    - #1256 Added `setState`, `setState` and `saveState` to `ROI`
    - #1324 Pass through kwargs from MultiPlotItem.plot to PlotItem.plot
    - #1387 ScatterPlotItem: Make + and x symbols thicker
    - #1362 Make flowchart.Terminal sortable
    - #1360 Add "left" and "right" step Modes to PlotCurveItem and PlotDataItem
    - #1414 Emit event with mouse clicks for some items
    - #1413 `InfiniteLine.viewTransformChanged` now calls superclass-method
    - #1411 Hide `WidgetParameterItem.defaultBtn` if param has no default
    - #1410 add fontSize kwarg to `Dock`
    - #159 Add wrapping option to `SpinBox`
    - #330 Set parameter default button `autoDefault` value to `False`
    - #157 Provide `WidgetGroupInterface` to `GradientWidget`
    - #151 Optional provide custom `PlotItem` to `PlotWidget`
    - #1140 Dynamic range limiting in `PlotDataItem`
    - #1383 GraphicsView set a transparent background palette
    - #1428 Add default color for `ColorMap` type in `ColorMapWidget`

  Bug Fixes:
    - #1239 Avoid adding PlotItem twice
    - #508 siScale precision
    - #503 Fix butg in RawImageWidget which resulted in mirrored image
    - #1242,#1267 Add the mouse event to the sigClicked signal in PlotCurveItem
    - #1247 Restore the now-deprecated PlotWindow and ImageWindow classes
    - #1249 Remove ScatterPlotItem's SpotItems during addItem call
    - #1252 Fix incorrect tick text boundaries calculation on axis by setting the font
    - #1310 Fixed `Vector.__init__` when used with `QVector3D` argument
    - #1310 Fix console exception filtering for python3
    - #1310 BusyCursor only restore cursor after all nested levels have exited
    - #1310 `SimpleParameter.setValue` coerces argument to int if parameter type is int
    - #1307 Fixed `reload` methods for python3
    - #1294 Various console fixes
    - #1293 Various Python3 code fixes
    - #1282 Handle Axis SI prefix scaling in MatplotlibExporter
    - #1276 Fix problems with high frequency gaming mice
    - #1270 Various fixes with AxisItem space being taken
    - #1272 `LegendItem.clear()` fixed
    - #1268 Check for container before setting dock orientation
    - #1312 Avoid divide by 0 condition in TargetItem
    - #1309 Properly retain and use hoverPen argument in _PolyLineSegment
    - #1371 Explicitly set line width in PlotCurveItem when using OpenGL
    - #1319 don't automatically reload modules without pyc
    - #1319 make ptime.time on py3 return precision wall-clock time
    - #1334 Edge case detection in PlotCurveItem
    - #1339 fix handling of QVector3D args in Vector.__init__
    - #1336 Make `parent` an explicit kwarg of ArrowItem.__init__, avoid passing into setStyle
    - #1368 Disconnect from correct slots in Flowchart
    - #1364 fix log scaling
    - #963 Allow last image in stack to be selected by slider in ImageView
    - #1045 Raise AttributeError in __getattr__ in TabWindow
    - #960 Work around PySide setOverrideCursor bug in BusyCursor
    - #309 Encode QPropertyAnimation property name if not passed as bytes
    - #1072 Fix storing of ragged curves in HDF5Exporter
    - #1275 Fix Parameter.hasDefault
    - #1291 Get ImageView ROI working with both row and col major data
    - #1377 Consolidate and fix downsample factor computation in ImageItem
    - #1376 Fix PlotItem.setAxisItems
    - #1392 SignalProxy: Correct initialization without slot argument
    - #1306 Fix incorrect rendering of overlapping object in renderToArray()
    - #1349 Avoid calling method on undefined attribute
    - #1367 AxisItem: Account for empty strings in the visibility of text and units
    - #1356 Fix `ParameterTree` tree name and title handling
    - #1419 Fix `DataTreeWidget` dict sorting crash
    - #1408 Fix mouse interaction issues with `DockLabel`
    - #329 Fix bug where `int` and `float` parameter limits are not always set
    - #158 Make `DockArea` compatible with Qt Designer
    - #1405 Fix name setting in `ScatterPlotItem` options
    - #1403 Do not apply transparent background to Qt4
    - #1468 Allow zero step in `ImageItem`
    - #1464 Remove `ViewBox.childGroup`'s `ItemClipsChildrenToShape` flag
    - #1461 arrayToQPath revert to old behavior of `connect=ndarray` parameter
    - #1459 Fix `TickSliderItem` to avoid ghost ticks
    - #1456 Resolve issue with `PlotCurveItem` with merging PRs in an incorrect order
    - #1287 Fill in non-finite plot values for Qt versions >= 5.12.3
    - #1447 Clipped AxisItem tick value labels to prevent drawing artifacts
    - #1435 Fix autosize not taking to the correct range with `TextItem` in view
    - #1452 merge `InfiniteLine` caching calls
    - #1446 Fix `PlotDataItem.setData([], [])`
    - #1443 Fix Viewbox axis zoom in RectMode
    - #1439 Fix `TickSliderItem.setTickValue` when it references a `GradientEditorItem` method
    - #1361 Prevent item duplication in `Node` context menu
    - #1423 Fix typo in `kwargs` for `GridItem.setTextPen`
    - #1401 Fix width, height and background in SVG exporter
    - #1416 Handle case in `ROI` when `shape`, `vectors`, or `origin` keywords are passed in
    
  Maintenance:
    - #389 Revert workaround for upstream QT bug regarding mouse events
    - #1243 Ensure setPos in ROI is initialized correctly
    - #1241 Pin pytest-xvfb version on py2
    - #1310 Added tests for `functions.subArray`
    - #1307 Add `ThreadSafeTimer` to `__init__.py`
    - #467 derivatePlots cleanup
    - #400 `ImageView.Timeline` better visibility
    - #1265 Make the documentation reproducible
    - #1319 clean up exception messages in console
    - #356 Fix some NumPy warnings
    - #1326 Improve docs for MultiPlotWidget and MultiPlotItem
    - #1331 Migrate imports of PyQt5's sip module to new namespace
    - #1370 Fix deprecation warning in multiprocess module 
    - #308 Fix opt name for SpinBox: range -> bounds in UnsharpMaskNode example
    - #887 Update collections.abc imports
    - #1142 Miscellaneous doc fixups
    - #1169 Avoid using mutable default argument value
    - #1073 Python3 fixes
    - #1284 Update doc strings to clarify getArrayRegion API for ROI subclasses
    - #1042 Close windows at the end of test functions
    - #1374 Test warnings cleanup
    - #1375 Add targeted Vector test coverage
    - #1384 GLViewWidget.pan docstring typo
    - #1382 Autoformat LegendItem
    - #1396 Add tests for GraphicsView
    - #1399 Disable mouse rate limiting on test_ROI
    - #1409 Prepend conda-forge channel prior to env creation in CI
    - #1302 Fix Example app now works with Qt4/Python2
    - #1402 Handle case of version string having no `+`
    - #1400 Fix sphinx warnings on `PColorMeshItem`
    - #1328 Add docs build job to CI
    - #1464 Use `conda-forge` on pyside2+linux
    - #1448 Fixes for `examples/CustomPlot.py`
    - #1432 ExampleApp fix to use `pg` module from directory

pyqtgraph-0.11.0

  NOTICE: This is the _last_ feature release to support Python 2 and Qt 4 (PyQt4 or pyside 1)

  New Features:
    - #101: GridItem formatting options
    - #410: SpinBox custom formatting options
    - #415: ROI.getArrayRegion supports nearest-neighbor interpolation (especially handy for label images)
    - #428: DataTreeWidget:
      - Add DiffTreeWidget, which highlights differences between two DataTreeWidgets
      - Improved support for displaying tracebacks
      - Use TableWidget to represent arrays rather than plain text
    - #446: Added Perceptually Uniform Sequential colormaps from the matplotlib 2.0 release
    - #476: Add option to set composition mode for scatterplotitem
    - #518: TreeWidget:
      - Add new signals: sigItemCheckStateChanged, sigItemTextChanged, sigColumnCountChanged
      - Allow setting expansion state of items before they are added to a treewidget
      - Support for using TreeWidget.invisibleRootItem() (see also #592, #595)
    - #542: Add collapsible QGroupBox widgets
    - #543: Add TargetItem: simple graphicsitem that draws a scale-invariant circle + crosshair
    - #544: Make DockArea.restoreState behavior configurable in cases where either a dock to be restored is 
      missing, or an extra dock exists that is not mentioned in the restore state.
    - #545: Allow more types to be mapped through Transform3D 
    - #548: Adds a disconnect() function that allows to conditionally disconnect signals,
      including after reload.
      Also, a SignalBlock class used to temporarily block a signal-slot pair
    - #557: Allow console stack to be set outside of exceptions (see also: pg.stack)
    - #558: CanvasItem save/restore, make Canvas ui easier to embed
    - #559: Image exporter gets option to invert value while leaving hue fixed
    - #560: Add function to enable faulthandler on all threads, also allow Mutex to be used as 
      drop-in replacement for python's Lock
    - #567: Flowchart
      - Add several new data nodes
      - Add floordiv node
      - Add EvalNode.setCode
      - Binary operator nodes can select output array type
    - #568: LinearRegionItem
      - InfiniteLine can draw markers attached to the line
      - InfiniteLine can limit the region of the viewbox over which it is drawn
      - LinearRegionItem gets customizable line swap behavior (lines can block or push each other)
      - Added LinearRegionItem.setHoverBrush
    - #580: Allow calling sip.setapi in subprocess before pyqtgraph is imported
    - #582: Add ComboBox save/restoreState methods
    - #586: ParameterTree
      - Add GroupParameter.sigAddNew signal
      - systemsolver: add method for checking constraints / DOF
      - add systemsolver copy method
      - Parameter.child raises KeyError if requested child name does not exist
    - #587: Make PathButton margin customizable
    - #588: Add PlotCurveItem composition mode
    - #589: Add RulerROI
    - #591: Add nested progress dialogs
    - #597: Fancy new interactive fractal demo
    - #621: RGB mode for HistogramLUTWidget
    - #628,670: Add point selection in ScatterPlotWidget
    - #635: PySide2 support
    - #671: Add SVG export option to force non-scaling stroke
    - #676: OpenGL allow for panning in the plane of the camera
    - #683: Allow data filter entries to be updated after they are created
    - #685: Add option to set enum default values in DataFilterWidget
    - #710: Adds ability to rotate/scale ROIs by mouse drag on the ROI itself (using alt/shift modifiers)
    - #813,814,817: Performance improvements
    - #837: Added options for field variables in ColorMapWidget
    - #840, 932: Improve clipping behavior
    - #841: Set color of tick-labels separately
    - #922: Curve fill for fill-patches
    - #996: Allow the update of LegendItem
    - #1023: Add bookkeeping exporter parameters
    - #1072: HDF5Exporter handling of ragged curves with tests
    - #1124: Syntax highlighting for examples. 
    - #1154: Date axis item
    - #393: NEW show/hide gradient ticks NEW link gradientEditor to others
    - #1211: Add support for running pyside2-uic binary to dynamically compile ui files

  API / behavior changes:
    - Deprecated graphicsWindow classes; these have been unnecessary for many years because
      widgets can be placed into a new window just by calling show().
    - #158: Make DockArea compatible with Qt Designer
    - #406: Applying alpha mask on numpy.nan data values
    - #566: ArrowItem's `angle` option now rotates the arrow without affecting its coordinate system.
      The result is visually the same, but children of ArrowItem are no longer rotated
      (this allows screen-aligned text to be attached more easily).
      To mimic the old behavior, use ArrowItem.rotate() instead of the `angle` argument.
    - #673: Integer values in ParameterTree are now formatted as integer (%d) by default, rather than 
      scientific notation (%g). This can be overridden by providing `format={value:g}` when
      creating the parameter.
    - #374: ConsoleWidget uses the console's namespace as both global and local scope, which
    - #410: SpinBox siPrefix without suffix is not longer allowed, select only numerical portion of text on focus-in
      allows functions defined in the console to access the global namespace.
    - #479,521: ParameterTree simple parameters check types before setting value
    - #555: multiprocess using callSync='sync' no longer returns a future in case of timeout
    - #583: eq() no longer compares array values if they have different shape
    - #589: Remove SpiralROI (this was unintentionally added in the first case)
    - #593: Override qAbort on slot exceptions for PyQt>=5.5
    - #657: When a floating Dock window is closed, the dock is now returned home
    - #771: Suppress RuntimeWarning for arrays containing zeros in logscale
    - #942: If the visible GraphicsView is garbage collected, a warning is issued.
    - #958: Nicer Legend
    - #963: Last image in image-stack can now be selected with the z-slider
    - #992: Added a setter for GlGridItem.color.
    - #999: Make outline around fillLevel optional.
    - #1014: Enable various arguments as color in colormap.
    - #1044: Raise AttributeError in __getattr__ in graphicsWindows (deprecated)
    - #1055: Remove global for CONFIG_OPTIONS in setConfigOption
    - #1066: Add RemoteGraphicsView to __init__.py
    - #1069: Allow actions to display title instead of name
    - #1074: Validate min/max text inputs in ViewBoxMenu
    - #1076: Reset currentRow and currentCol on GraphicsLayout.clear()
    - #1079: Improve performance of updateData PlotCurveItem
    - #1082: Allow MetaArray.__array__ to accept an optional dtype arg
    - #841: set color of tick-labels separately
    - #1111: Add name label to GradientEditorItem
    - #1145: Pass showAxRect keyword arguments to setRange
    - #1184: improve SymbolAtlas.getSymbolCoords performance
    - #1198: improve SymbolAtlas.getSymbolCoords and ScatterPlotItem.plot performance
    - #1197: Disable remove ROI menu action in handle context menu
    - #1188: Added support for plot curve to handle both fill and connect args
    - #801: Remove use of GraphicsScene._addressCache in translateGraphicsItem 
        - Deprecates registerObject meethod of GraphicsScene
        - Deprecates regstar argument to GraphicsScene.__init__
    - #1166: pg.mkQApp: Pass non-empty string array to QApplication() as default
    - #1199: Pass non-empty sys.argv to QApplication
    - #1090: dump ExportDialog.exporterParameters
    - #1173: GraphicsLayout: Always call layout.activate() after adding items
    - #1097: pretty-print log-scale axes labels
    - #755: Check lastDownsample in viewTransformChanged
    - #1216: Add cache for mapRectFromView
    - #444: Fix duplicate menus in GradientEditorItem
    - #151: Optionally provide custom PlotItem to PlotWidget
    - #1093: Fix aspectRatio and zoom range issues when zooming
    - #390: moved some functionality from method 'export' to new method
    - #468: Patch/window handling
    - #392: new method 'getAxpectRatio' with code taken from 'setAspectLocked'
    - #1206: Added context menu option to parametertree
    - #1228: Minor improvements to LegendItem

  Bugfixes:
    - #88: Fixed image scatterplot export
    - #356: Fix some NumPy warnings
    - #408: Fix `cleanup` when the running qt application is not a QApplication
    - #410: SpinBox fixes
      - fixed bug with exponents disappearing after edit
      - fixed parsing of values with junk after suffix
      - fixed red border
      - reverted default decimals to 6
      - make suffix editable (but show red border if it's wrong)
      - revert invalid text on focus lost
      - siPrefix without suffix is no longer allowed
      - fixed parametree sending invalid options to spinbox
      - fix spinbox wrapping (merged #159 from @lidstrom83)
      - fixed parametertree ignoring spinbox bounds (merged #329 from @lidstrom83)
      - fixed spinbox height too small for font size
    - ROI subclass getArrayRegion methods are a bit more consistent (still need work) 
    - #424: Fix crash when running pyqtgraph with python -OO
    - #429: Fix fft premature slicing away of 0 freq bin
    - #458: Fixed image export problems with new numpy API
    - #478: Fixed PySide image memory leak
    - #475: Fixed unicode error when exporting to SVG with non-ascii symbols
    - #477: Fix handling of the value argument to functions.intColor
    - #485: Fixed incorrect height in VTickGroup
    - #514: Fixes bug where ViewBox emits sigRangeChanged before it has marked its transform dirty.
    - #516,668: Fix GL Views being half size on hidpi monitors
    - #526: Fix autorange exception with empty scatterplot
    - #528: Prevent image downsampling causing exception in makeQImage
    - #530: Fixed issue where setData only updated opts if data is given 
    - #541: Fixed issue where render would error because 'mapToDevice' would return None if the view size was too small.
    - #553: Fixed legend size after remove item
    - #555: Fixed console color issues, problems with subprocess closing
    - #559: HDF5 exporter: check for ragged array length
    - #563: Prevent viewbox auto-scaling to items that are not in the same scene. (This could 
      happen if an item that was previously added to the viewbox is then removed using scene.removeItem().
    - #564: Allow console exception label to wrap text (prevents console
      growing too large for long exception messages)
    - #565: Fixed AxisItem preventing mouse events reaching the ViewBox if it is displaying grid lines
      and has its Z value set higher than the ViewBox.
    - #567: fix flowchart spinbox bounds
    - #569: PlotItem.addLegend will not try to add more than once 
    - #570: ViewBox: make sure transform is up to date in all mapping functions
    - #577: Fix bargraphitem plotting horizontal bars
    - #581: Fix colormapwidget saveState
    - #586: ParameterTree
      - Make parameter name,value inint args go through setValue and setName
      - Fix colormapwidget saveState
    - #589: Fix click area for small ellipse/circle ROIs
    - #592,595: Fix InvisibleRootItem issues introduced in #518
    - #596: Fix polyline click causing lines to bedrawn to the wrong node
    - #598: Better ParameterTree support for dark themes 
    - #599: Prevent invalid list access in GraphicsScene
    - #623: Fix PyQt5 / ScatterPlot issue with custom symbols
    - #626: Fix OpenGL texture state leaking to wrong items 
    - #627: Fix ConsoleWidget stack handling on python 3.5
    - #633: Fix OpenGL cylinder geometry 
    - #637: Fix TypeError in isosurface
    - #641,642: Fix SVG export on Qt5 / high-DPI displays
    - #645: ScatterPlotWidget behaves nicely when data contains infs
    - #653: ScatterPlotItem: Fix a GC memory leak due to numpy issue 6581
    - #648: fix color ignored in GLGridItem
    - #671: Fixed SVG export failing if the first value of a plot is nan
    - #674: Fixed parallelizer leaking file handles
    - #675: Gracefully handle case where image data has size==0
    - #679: Fix overflow in Point.length()
    - #682: Fix: mkQApp returned None if a QApplication was already created elsewhere
    - #689: ViewBox fix: don't call setRange with empty args
    - #693: Fix GLLinePlotItem setting color
    - #696: Fix error when using PlotDataItem with both stepMode and symbol
    - #697: Fix SpinBox validation on python 3
    - #699: Fix nan handling in ImageItem.setData
    - #713: ConsoleWidget: Fixed up/down arrows sometimes unable to get back to the original 
      (usually blank) input state 
    - #715: Fix file dialog handling in Qt 5
    - #718: Fix SVG export with items that require option.exposedRect
    - #721: Fixes mouse wheel ignoring disabled mouse axes -- although the scaling was correct, 
      it was causing auto range to be disabled.
    - #723: Fix axis ticks when using self.scale
    - #739: Fix handling of 2-axis mouse wheel events
    - #742: Fix Metaarray in python 3
    - #758: Fix remote graphicsview "ValueError: mmap length is greater than file size" on OSX.
    - #763: Fix OverflowError when using Auto Downsampling.
    - #767: Fix Image display for images with the same value everywhere.
    - #770: Fix GLVieWidget.setCameraPosition ignoring first parameter.
    - #782: Fix missing FileForwarder thread termination.
    - #787: Fix encoding errors in checkOpenGLVersion.
    - #793: Fix wrong default scaling in makeARGB
    - #815: Fixed mirroring of x-axis with "invert Axis" submenu.
    - #824: Fix several issues related with mouse movement and GraphicsView.
    - #832: Fix Permission error in tests due to unclosed filehandle.
    - #836: Fix tickSpacing bug that lead to axis not being drawn.
    - #861: Fix crash of PlotWidget if empty ErrorBarItem is added.
    - #868: Fix segfault on repeated closing of matplotlib exporter.
    - #875,876,887,934,947,980: Fix deprecation warnings.
    - #886: Fix flowchart saving on python3.
    - #888: Fix TreeWidget.topLevelItems in python3.
    - #924: Fix QWheelEvent in RemoteGraphicsView with pyqt5.
    - #935: Fix PlotItem.addLine with 'pos' and 'angle' parameter.
    - #949: Fix multiline parameters (such as arrays) reading from config files.
    - #951: Fix event firing from scale handler.
    - #952: Fix RotateFree handle dragging
    - #953: Fix HistogramLUTWidget with background parameter
    - #968: Fix Si units in AxisItem leading to an incorrect unit.
    - #970: Always update transform when setting angle of a TextItem
    - #971: Fix a segfault stemming from incorrect signal disconnection.
    - #972: Correctly include SI units for log AxisItems
    - #974: Fix recursion error when instancing CtrlNode.
    - #987: Fix visibility reset when PlotItems are removed.
    - #998: Fix QtProcess proxy being unable to handle numpy arrays with dtype uint8.
    - #1010: Fix matplotlib/CSV export.
    - #1012: Fix circular texture centering
    - #1015: Iterators are now converted to NumPy arrays.
    - #1016: Fix synchronisation of multiple ImageViews with time axis.
    - #1017: Fix duplicate paint calls emitted by Items on ViewBox.
    - #1019: Fix disappearing GLGridItems when PlotItems are removed and readded.
    - #1024: Prevent element-wise string comparison
    - #1031: Reset ParentItem to None on removing from PlotItem/ViewBox
    - #1044: Fix PlotCurveItem.paintGL
    - #1048: Fix bounding box for InfiniteLine
    - #1062: Fix flowchart context menu redundant menu
    - #1062: Fix a typo
    - #1073: Fix Python3 compatibility
    - #1083: Fix SVG export of scatter plots
    - #1085: Fix ofset when drawing symbol
    - #1101: Fix small oversight in LegendItem
    - #1113: Correctly call hasFaceIndexedData function
    - #1139: Bug fix in LegendItem for `setPen`, `setBrush` etc (Call update instead of paint)
    - #1110: fix for makeARGB error after #955
    - #1063: Fix: AttributeError in ViewBox.setEnableMenu
    - #1151: ImageExporter py2-pyside fix with test
    - #1133: compatibility-fix for py2/pyside
    - #1152: Nanmask fix in makeARGB
    - #1159: Fix: Update axes after data is set
    - #1156: SVGExporter: Correct image pixelation
    - #1169: Replace default list arg with None
    - #770: Do not ignore pos argument of setCameraPosition
    - #1180: Fix: AxisItem tickFont is defined in two places while only one is used
    - #1168: GroupParameterItem: Did not pass changed options to ParameterItem
    - #1174: Fixed a possible race condition with linked views
    - #809: Fix selection of FlowchartWidget input/output nodes
    - #1071: Fix py3 execution in flowchart
    - #1212: Fix PixelVectors cache
    - #1161: Correctly import numpy where needed
    - #1218: Fix ParameterTree.clear()
    - #1175: Fix: Parameter tree ignores user-set 'expanded' state
    - #1219: Encode csv export header as unicode
    - #507: Fix Dock close event QLabel still running with no parent
    - #1222: py3 fix for ScatterPlotWidget.setSelectedFields
    - #1203: Image axis order bugfix
    - #1225: ParameterTree: Fix custom context menu


  Maintenance:
    - Lots of new unit tests
    - Lots of code cleanup
    - A lot of work on CI pipelines, test coverage and test passing (see e.g. #903,911)
    - #546: Add check for EINTR during example testing to avoid sporadic test failures on travis
    - #624: TravisCI no longer running python 2.6 tests
    - #695: "dev0" added to version string
    - #865,873,877 (and more): Implement Azure CI pipelines, fix Travis CI
    - #991: Use Azure Pipelines to do style checks, Add .pre-commit-config.yaml
    - #1042: Close windows at the end of test functions
    - #1046: Establish minimum numpy version, remove legacy workarounds
    - #1067: Make scipy dependency optional
    - #1114: doc: Fix small mistake in introduction
    - #1131: Update CI/tox and Enable More Tests 
    - #1142: Miscellaneous doc fixups
    - #1179: DateAxisItem: AxisItem unlinking tests and doc fixed
    - #1201: Get readthedocs working
    - #1214: Pin PyVirtualDisplay Version
    - #1215: Skip test when on qt 5.9
    - #1221: Identify pyqt5 5.15 ci issue
    - #1223: Remove workaround for memory leak in QImage
    - #1217: Get docs version and copyright year dynamically
    - #1229: Wrap text in tables in docs
    - #1231: Update readme for 0.11 release


pyqtgraph-0.10.0

  New Features:
    - PyQt5 support
    - Options for interpreting image data as either row-major or col-major
    - InfiniteLine and LinearRegionItem can have attached labels
    - DockArea:
        - Dock titles can be changed after creation
        - Added Dock.sigClosed
    - Added TextItem.setColor()
    - FillBetweenItem supports finite-connected curves (those that exclude nan/inf)

  API / behavior changes:
    - Improved ImageItem performance for some data types by scaling LUT instead of image
    - Change the defaut color kwarg to None in TextItem.setText() to avoid changing
      the color every time the text is changed.
    - FFT plots skip first sample if x-axis uses log scaling 
    - Multiprocessing system adds bytes and unicode to the default list of no-proxy data types
    - Version number scheme changed to be PEP440-compliant (only affects installations from non-
      release git commits) 

  Bugfixes:
    - Fix for numpy API change that caused casting errors for inplace operations
    - Fixed git version string generation on python3
    - Fixed setting default values for out-of-bound points in pg.interpolateArray
    - Fixed plot downsampling bug on python 3
    - Fixed invalid slice in ImageItem.getHistogram
    - DockArea:
        - Fixed adding Docks to DockArea after all Docks have been removed
        - Fixed DockArea save/restoreState when area is empty
    - Properly remove select box when export dialog is closed using window decorations
    - Remove all modifications to python builtins
    - Better Python 2.6 compatibility
    - Fix SpinBox decimals
    - Fixed numerous issues with ImageItem automatic downsampling
    - Fixed PlotItem average curves using incorrect stepMode
    - Fixed TableWidget eating key events
    - Prevent redundant updating of flowchart nodes with multiple inputs
    - Ignore wheel events in GraphicsView if mouse interaction is disabled
    - Correctly pass calls to QWidget.close() up the inheritance chain
    - ColorMap forces color inputs to be sorted
    - Fixed memory mapping for RemoteGraphicsView in OSX
    - Fixed QPropertyAnimation str/bytes handling
    - Fixed __version__ string update when using `setup.py install` with newer setuptools

  Maintenance:
    - Image comparison system for unit testing plus tests for several graphics items
    - Travis CI and coveralls/codecov support
    - Add examples to unit tests
    


pyqtgraph-0.9.10

  Fixed installation issues with more recent pip versions.

pyqtgraph-0.9.9

  API / behavior changes:
    - Dynamic import system abandoned; pg now uses static imports throughout.
        - Flowcharts and exporters have new pluggin systems
    - Version strings:
        - __init__.py in git repo now contains latest release version string
          (previously, only packaged releases had version strings).
        - installing from git checkout that does not correspond to a release 
          commit will result in a more descriptive version string.
    - Speed improvements in functions.makeARGB
    - ImageItem is faster by avoiding makeQImage(transpose=True)
    - ComboBox will raise error when adding multiple items of the same name
    - ArrowItem.setStyle now updates style options rather than replacing them 
    - Renamed GraphicsView signals to avoid collision with ViewBox signals that
      are wrapped in PlotWidget: sigRangeChanged => sigDeviceRangeChanged and
      sigTransformChanged => sigDeviceTransformChanged.
    - GLViewWidget.itemsAt() now measures y from top of widget to match mouse 
      event position.
    - Made setPen() methods consistent throughout the package
    - Fix in GLScatterPlotItem requires that points will appear slightly more opaque 
      (so you may need to adjust to lower alpha to achieve the same results)

  New Features:
    - Added ViewBox.setLimits() method
    - Adde ImageItem downsampling
    - New HDF5 example for working with very large datasets
    - Removed all dependency on scipy
    - Added Qt.loadUiType function for PySide
    - Simplified Profilers; can be activated with environmental variables
    - Added Dock.raiseDock() method
    - ComboBox updates:
        - Essentially a graphical interface to dict; all items have text and value
        - Assigns previously-selected text after list is cleared and repopulated
        - Get, set current value
    - Flowchart updates
        - Added Flowchart.sigChartChanged
        - Custom nodes may now be registered in sub-menu trees
    - ImageItem.getHistogram is more clever about constructing histograms
    - Added FillBetweenItem.setCurves()
    - MultiPlotWidget now has setMinimumPlotHeight method and displays scroll bar
      when plots do not fit inside the widget.
    - Added BarGraphItem.shape() to allow better mouse interaction
    - Added MeshData.cylinder
    - Added ViewBox.setBackgroundColor() and GLViewWidget.setBackgroundColor()
    - Utilities / debugging tools
        - Mutex used for tracing deadlocks
        - Color output on terminal
        - Multiprocess debugging colors messages by process
        - Stdout filter that colors text by thread
        - PeriodicTrace used to report deadlocks
    - Added AxisItem.setStyle()
    - Added configurable formatting for TableWidget
    - Added 'stepMode' argument to PlotDataItem()
    - Added ViewBox.invertX()
    - Docks now have optional close button
    - Added InfiniteLine.setHoverPen
    - Added GLVolumeItem.setData
    - Added PolyLineROI.setPoints, clearPoints, saveState, setState
    - Added ErrorBarItem.setData

  Bugfixes:
    - PlotCurveItem now has correct clicking behavior--clicks within a few px
      of the line will trigger a signal.
    - Fixes related to CSV exporter:
        - CSV headers include data names, if available
        - Exporter correctly handles items with no data
        - pg.plot() avoids creating empty data item
        - removed call to reduce() from exporter; not available in python 3
        - Gave .name() methods to PlotDataItem, PlotCurveItem, and ScatterPlotItem
    - fixed ImageItem handling of rgb images
    - fixed makeARGB re-ordering of color channels
    - fixed unicode usage in AxisItem tick strings
    - fixed PlotCurveItem generating exceptions when data has length=0
    - fixed ImageView.setImage only working once
    - PolyLineROI.setPen() now changes the pen of its segments as well
    - Prevent divide-by-zero in AxisItem
    - Major speedup when using ScatterPlotItem in pxMode
    - PlotCurveItem ignores clip-to-view when auto range is enabled
    - FillBetweenItem now forces PlotCurveItem to generate path
    - Fixed import errors and py3 issues in MultiPlotWidget
    - Isosurface works for arrays with shapes > 255
    - Fixed ImageItem exception building histogram when image has only one value
    - Fixed MeshData exception caused when vertexes have no matching faces
    - Fixed GLViewWidget exception handler
    - Fixed unicode support in Dock
    - Fixed PySide crash caused by emitting signal from GraphicsObject.itemChange
    - Fixed possible infinite loop from FiniteCache
    - Allow images with NaN in ImageView
    - MeshData can generate edges from face-indexed vertexes
    - Fixed multiprocess deadlocks on windows
    - Fixed GLGridItem.setSize
    - Fixed parametertree.Parameter.sigValueChanging
    - Fixed AxisItem.__init__(showValues=False)
    - Fixed TableWidget append / sort issues
    - Fixed AxisItem not resizing text area when setTicks() is used
    - Removed a few cyclic references
    - Fixed Parameter 'readonly' option for bool, color, and text parameter types
    - Fixed alpha on GLScatterPlotItem spots (formerly maxed out at alpha=200)
    - Fixed a few bugs causing exit crashes


pyqtgraph-0.9.8  2013-11-24

  API / behavior changes:
    - ViewBox will auto-range when ImageItem changes shape
    - AxisItem: 
        - Smarter about deciding which ticks get text
        - AxisItem.setScale(float) has the usual behavior, but .setScale(None) 
          is deprecated. Instead use:
          AxisItem.enableAutoSIPrefix(bool) to enable/disable SI prefix scaling
    - Removed inf/nan checking from PlotDataItem and PlotCurveItem; improved 
      performance

  New Features:
    - Support for dynamic downsampling and view clipping in PlotDataItem and 
      PlotItem
    - Added 'connect' option to PlotDataItem and PlotCurveItem to affect which 
      line segments are drawn
    - Support for FFT with non-uniform time sampling
    - Added BarGraphItem
    - OpenGL:
        - Added export methods to GLViewWidget
        - Wireframe meshes
        - GLLinePLotItem gets antialiasing, accepts array of colors
        - GLMeshItem accepts ShaderProgram or name of predefined program
        - Added GLBarGraphItem
    - LegendItem:
        - User-draggable
        - Allow custom ItemSamples
        - Symbol support
        - Support for removing items
    - ScatterPlotWidget, ColorMapWidget, and DataFilterWidget are stable
    - TableWidget:
        - Made numerically sortable
        - Added setEditable method
    - AxisItem ability to truncate axis lines at the last tick
    - arrayToQPath() added 'finite' connection mode which omits non-finite 
      values from connections
    - pg.plot() and pg.PlotWidget() now accept background argument
    - Allow QtProcess without local QApplication
    - Support for dashing in mkPen()
    - Added Dock.close()
    - Added style options to flowchart connection lines
    - Added parentChanged and viewChanged hooks to GraphicsItem 
    - Bidirectional pseudoScatter for beeswarm plots
    - Added exit() function for working around PyQt exit crashes
    - Added PolylineROI.getArrayRegion()

  Bugfixes:
    - Many Python 3 compatibility fixes
    - AxisItem:
        - Correctly handles scaling with values that are not power of 10
        - Did not update grid line length when plot stretches
        - Fixed unicode handling in AxisItem label
    - ViewBox:
        - Overhauled to fix issues with aspect locking
        - ViewBox context menu elements are no longer deleted when using 
          flowchart with pyside
        - Fixed view linking with inverted y axis
        - Prevent auto-range disabling when dragging with one mouse axis diabled
        - Ignore inf and nan when auto-ranging
    - ParameterTree:
        - fixed TextParameter editor disappearing after focus lost
        - ListParameter: allow unhashable types as parameter values.
    - Exporting:
        - ImageExporter correctly handles QBrush with style=NoBrush
        - SVGExporter text, gradients working correctly
        - SVGExporter correctly handles coordinate corrections for groups with 
          mixed elements
    - ImageView:
        - Fixed auto-levelling when normalization options change
        - Added autoHistogramRange argument to setImage
    - ScatterPlotItem:
        - Fixed crashes caused by ScatterPlotItem
        - Fixed antialiasing
    - arrayToQPath performance improved for python 3
    - Fixed makeQImage on many platforms (notably, on newer PyQt APIs)
    - Removed unnecessary scipy imports for faster import
    - GraphItem reports pixel margins to improve auto-range
    - Add backport ordereddict to repository; old OrderedDict class is removed
    - Corrected behavior of GraphicsView.setBackground
    - Fixed PySide bug listing image formats
    - Fixed QString -> str conversions in flowchart
    - Unicode file name support when exporting
    - Fixed MatplotlibWidget + PySide
    - Fixed 3D view updating after every scene change
    - Fixed handling of non-native dtypes when optimizing with weave
    - RemoteGraphicsView fixed for PyQt 4.10, Python 3
    - Fixed GLLinePlotItem line width option
    - HistogramLUTWidget obeys default background color
    - ScaleBar complete rewrite
    - GraphItem obeys antialiasing flag
    - Workaround for PySide/QByteArray memory leak
    - Fixed example --test on windows, python3
    - Luke finished dissertation


pyqtgraph-0.9.7  2013-02-25

   Bugfixes:
     - ArrowItem auto range now works correctly
     - Dock drag/drop fixed on PySide
     - Made padding behavior consistent across ViewBox methods
     - Fixed MeshData / python2.6 incompatibility
     - Fixed ScatterPlotItem.setSize and .setPointData
     - Workaround for PySide bug; GradientEditor fixed
     - Prefer initially selecting PlotItem rather then ViewBox when exporting
     - Fixed python3 import error with flowcharts
   
   Cleaned up examples, made code editable from example loader
   Minor documentation updates
   Features:
     - Added GraphItem class for displaying networks/trees
     - Added ColorMap class for mapping linear gradients and generating lookup
     tables
       (Provides gradient editor functionality without the GUI)
     - Added ColorMapWidget for complex user-defined color mapping
     - Added ScatterPlotWidget for exploring relationships in multi-column
     tables
     - Added ErrorBarItem
     - SVG and image exporters can now copy to clipboard
     - PlotItem gets new methods: addLine, setLabels, and listDataItems
     - AxisItem gets setTickFont method
     - Added functions.arrayToQPath, shared between GraphItem and PlotCurveItem
     - Added gradient editors to parametertree
     - Expanded documentation, added beginning of Qt crash course
   
   Bugfixes:
     - Fixed auto-ranging bugs: ViewBox now properly handles pixel-padding
     around data items
     - ViewBox ignores bounds of zoom-rect when auto ranging
     - Fixed AxisItem artifacts
     - Fixed GraphicsItem.pixelVector caching bugs and simplified workaround for
     fp-precision errors
     - LinearRegionItem.hoverEvent obeys 'movable' flag                         
                                                                                
                                        
     - Fixed PlotDataItem nan masking bugs                                      
                                                                                
                                        
     - Workaround for segmentation fault in QPainter.drawPixmapFragments        
                                                                                
                                        
     - multiprocess and RemoteGraphicsView work correctly in Windows.           
                                                                                
                                        
     - Expanded python 3 support                                                
                                                                                
                                        
     - Silenced weave errors by default                                         
                                                                                
                                        
     - Fixed " 'win' in sys.platform " occurrences matching 'darwin' (duh)
     - Workaround for change in QImage API (PyQt 4.9.6)
     - Fixed axis ordering bug in GLScatterPlotItem

pyqtgraph-0.9.6  2013-02-14

   Features:
     - Added GraphItem class for displaying networks/trees
     - Added ColorMap class for mapping linear gradients and generating lookup
     tables
       (Provides gradient editor functionality without the GUI)
     - Added ColorMapWidget for complex user-defined color mapping
     - Added ScatterPlotWidget for exploring relationships in multi-column
     tables
     - Added ErrorBarItem
     - SVG and image exporters can now copy to clipboard
     - PlotItem gets new methods: addLine, setLabels, and listDataItems
     - AxisItem gets setTickFont method
     - Added functions.arrayToQPath, shared between GraphItem and PlotCurveItem
     - Added gradient editors to parametertree
     - Expanded documentation, added beginning of Qt crash course
   
   Bugfixes:
     - Fixed auto-ranging bugs: ViewBox now properly handles pixel-padding
     around data items
     - ViewBox ignores bounds of zoom-rect when auto ranging
     - Fixed AxisItem artifacts
     - Fixed GraphicsItem.pixelVector caching bugs and simplified workaround for
     fp-precision errors
     - LinearRegionItem.hoverEvent obeys 'movable' flag                         
                                                                                
                                        
     - Fixed PlotDataItem nan masking bugs                                      
                                                                                
                                        
     - Workaround for segmentation fault in QPainter.drawPixmapFragments        
                                                                                
                                        
     - multiprocess and RemoteGraphicsView work correctly in Windows.           
                                                                                
                                        
     - Expanded python 3 support                                                
                                                                                
                                        
     - Silenced weave errors by default                                         
                                                                                
                                        
     - Fixed " 'win' in sys.platform " occurrences matching 'darwin' (duh)
     - Workaround for change in QImage API (PyQt 4.9.6)
     - Fixed axis ordering bug in GLScatterPlotItem
   Plotting performance improvements:
     - AxisItem shows fewer tick levels in some cases.
     - Lots of boundingRect and dataBounds caching
       (improves ViewBox auto-range performance, especially with multiple plots)
     - GraphicsScene avoids testing for hover intersections with non-hoverable
     items
       (much less slowdown when moving mouse over plots)
   
   Improved performance for remote plotting:
     - reduced cost of transferring arrays between processes (pickle is too
     slow)
     - avoid unnecessary synchronous calls
   
   Added RemoteSpeedTest example


pyqtgraph-0.9.5  2013-01-11

   Plotting performance improvements:
     - AxisItem shows fewer tick levels in some cases.
     - Lots of boundingRect and dataBounds caching
       (improves ViewBox auto-range performance, especially with multiple plots)
     - GraphicsScene avoids testing for hover intersections with non-hoverable
     items
       (much less slowdown when moving mouse over plots)
   
   Improved performance for remote plotting:
     - reduced cost of transferring arrays between processes (pickle is too
     slow)
     - avoid unnecessary synchronous calls
   
   Added RemoteSpeedTest example
   Documentation:
   - Added documentation on export system
   - Added flowchart documentation and custom node example
   
   Bugfixes: 
   - prevent PlotCurveItem drawing shadow when unnecessary
   - deprecated flowchart.Node.__getattr__ -- causes too many problems.

pyqtgraph-0.9.4  2013-01-07

   Documentation:
   - Added documentation on export system
   - Added flowchart documentation and custom node example
   
   Bugfixes: 
   - prevent PlotCurveItem drawing shadow when unnecessary
   - deprecated flowchart.Node.__getattr__ -- causes too many problems.
   Bugfix: prevent adding invalid entry to sys.path when running examples

pyqtgraph-0.9.3  2012-12-29

   Bugfix: prevent adding invalid entry to sys.path when running examples
   Bugfixes:
   - SVG export text elements use generic font-family as backup, corrected item
   transformation issues
   - Fixed RuntimeError caused when clearing item hierarchies from ViewBox
   - Fixed example execution bug
   
   Packaging maintenance:
   - Added missing files to MANIFEST.in, fixed setup.py package detection
   - Added debian control files for building source packages
   - Fixed version numbering in doc, __init__.py

pyqtgraph-0.9.2  2012-12-29

   Bugfixes:
   - SVG export text elements use generic font-family as backup, corrected item
   transformation issues
   - Fixed RuntimeError caused when clearing item hierarchies from ViewBox
   - Fixed example execution bug
   
   Packaging maintenance:
   - Added missing files to MANIFEST.in, fixed setup.py package detection
   - Added debian control files for building source packages
   - Fixed version numbering in doc, __init__.py

pyqtgraph-0.9.1  2012-12-27

   Removed incorrect version numbers
   Correction to setup.py - use install_requires to inform pip of dependencies.
   Fixed doc version (again)
   Added debian control files
   bugfixes for new package structure

pyqtgraph-0.9.0  2012-12-27

  * Initial release.
