Static code checker identified multiple places where a file is opened
but is not necessarily closed. This commit addressed that with the
exception of RemoteGraphicsView.py
* update to working
* cupy tests, too
* doubling up and down
* add more realism to the benchmarks
* name to reflect scale
* use different numbers to mean different numbers
(that sure does sound tautological)
* more sensible: order, error
* thorough check of lots of makeARGB arg combos
* docstring for tool usage
* no print needed
* better error messages
* test makeARGB using cupy, too
* skip without cupy available
* switch from conda to venv
* skip cupy runs when not available
* use endian-proof makeARGB shim in tests
* generate the asv conf to suit the system
* document running asv
* comments for future matrix goals
* put all makeARGB tests together; name for clarity
* subprocess.check_output is standard for all supported pythons
* better handle lack of git version
* use makeARGB shim
* small fixes and improvements
the previous formulation creates an ndarray and then creates an QImage
over it w/o copying. this relies on the QImage thus created being
non-const.
if the QImage was (unintentionally) created as const, the subsequent
QPainter render on the const QImage would trigger a COW. i.e. the
original underlying ndarray wouldn't be updated.
this is only an issue for PyQt bindings where const QImages can be
created.
* get test_ref_cycles to pass
let objects die without gc.collect()
if you don't have cyclic references, there should be no need to call
gc.collect()
the usage of gc.collect() was causing pytest running with coverage to
crash on Python 3.7 / PySide2 5.12 / {Linux, Windows}.
* remove imports used only by the removed code
skip tests that don't work for Qt6
add Qt6 and remove Qt4 from test_examples.py
update README.md
switch mouse tests to use QPointF
this eliminates all the special casing for different bindings
* Add NonUniformImage, example and tests.
* Use updated test-data tag
* Fix line ending, remove lut.setLevels keyword arguments call
Co-authored-by: Ogi <ognyan.moore@gmail.com>
test_ImageView()
- PySide6 fails the same as PySide2
test_PlotWidget() and test_GraphicsWindow()
- PySide6 succeeds.
- PySide2 also succeeds. (at least on Linux and on version 5.15.2)
* SignalProxy: Correct initialization without slot argument and provide tests
* Add missing slot is None case on disconnect
* Start new tests
* Exception block
* Test no module
* Different signal
* Debugging the signal connect
* Re initialize proxy after disconnect
* Add more test cases for blockSignal
* Change test case for signal count
* Give up for python 2 and pyside
* Exclude for Python 2.7 and PySide
* Convert float to integers in timer start period
* Do not wrap PlotView/ImageView
There is no need to wrap PlotView/ImageView into QMainWindow, since
only purpose of the QMainWindow is some default menu toolbar & menu
handling, that is not used by PyQtGraph anyway.
Moreover, every parent-less Qt widget can become window, so this
change just use PlotView/ImageView as windows, removing extra
complexity, eg. method forwarding, self.win property.
Another benefit of this change, it that these windows get initial
dimensions and titles as they were designed in .ui file.
* Properly cleanup on ImageView.close()
We should not close explicitly child widgets or clear scene, otherwise
Qt will deallocate children views, and cause "wrapped C/C++ object of
type ImageItem has been deleted" error next time we call close()
and/or some other methods.
All children, including self.ui.roiPlot, self.ui.graphicsView will be
closed together with its parent, so there is no need to close them
explicitly.
So the purpose of close it to reclaim the memory, but not to make the existing ImageView object dysfunctional.
* Remove references to plot & image windows after close
PyQtGraph images and plots module list variables are currently holding
references to all plots and image windows returned directly from main
module. This does not seem to be documented however, and causes the Qt
windows to be not released from memory, even if user releases all own
references.
This change removes the references from images/plots list once window
is closed, so when there is no other reference, window and all related
memory is reclaimed.
* Change all UI forms title from Form to PyQtGraph
Co-authored-by: Ogi Moore <ognyan.moore@gmail.com>
* py3k: Remove reduce calls.
* py3k: Remove compatibility sortList function.
Sorting by key has existed since Python 2.4.
* Remove unnecessary sys.path manipulation.
This file doesn't have any __main__ code to run anyway.
* Use context manager
* FIX: Exception.message does not exist in Python3
* FIX: Allow multiline configfile parameters
* Added configparser tests
* Reasonable file ending for test files
Before, if the path contained escaped sequences, they would be parsed before being written to `reload_test_mod.py`, therefore when the file was parsed by the Python interpreter, the escape signs would be missing. With this commit, the Python representation is written to the file, so escaped sequences stay escaped.