commit ca3fbe2ff9
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date: Thu Aug 7 08:41:30 2014 -0400
Merged numerous updates from acq4:
* Added HDF5 exporter
* CSV exporter gets (x,y,y,y) export mode
* Updates to SVG, Matplotlib exporter
* Console can filter exceptions by string
* Added tick context menu to GradientEditorItem
* Added export feature to imageview
* Parameter trees:
- Option to save only user-editable values
- Option to set visible title of parameters separately from name
- Added experimental ParameterSystem for handling large systems of
interdependent parameters
- Auto-select editable portion of spinbox when editing
* Added Vector.__abs__
* Added replacement garbage collector for avoiding crashes on multithreaded Qt
* Fixed "illegal instruction" caused by closing file handle 7 on OSX
* configfile now reloads QtCore objects, Point, ColorMap, numpy arrays
* Avoid triggering recursion issues in exception handler
* Various bugfies and performance enhancements
Adding compatibility for PyQt5 via a shim in Qt.py. This restructures the PyQt5 libraries
to match the layout seen in PyQt4, allowing it to continue to be used as drop in replacement.
This works up to the point of importing, however other API changes are broken - for example
the deprectation of .scale() on GraphicsItems throws an error currently.
- 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
A new function profiling system is implemented. Most importantly, this
allows one to profile various internal functions directly by setting the
`PYQTGRAPHPROFILE` environment variable to a comma separated list of
function and method names, e.g.
PYQTGRAPHPROFILE=functions.makeARGB,ImageItem.render \
python -mexamples
Specifically, items in `PYQTGRAPHPROFILE` must be of the form
`classname.methodname` or `dotted_module_name.functionname`, with the
initial "pyqtgraph." stripped from the dotted module name.
Moreover, the overhead of inactive profilers has been kept minimal: an
introspective check of the caller's name (only if `PYQTGRAPHPROFILE` is
set) and a trivial function (not method) call per profiler call.
The new profilers rely on `sys._getframe` to find the caller's name,
although the previous system (passing the caller's name explicitely)
could certainly have been kept instead.
Finally the API of profilers has been changed: register a
profiling point simply by calling the profiler, and profilers are
automatically flushed on garbage collection. See the docstring of
`pyqtgraph.debug.Profiler` for more details.
- Support for dynamic downsampling and view clipping in PlotDataItem / PlotItem
- fixed __truediv__ handling
- ViewBox updates to fix aspect locking (still broken)
- AxisItem tries to be more clever about when to display tick text
- Fix segmentation fault caused by exception inside GraphicsItem.paint()
- Added 'x' scatter plot symbol
- pg.mkPen supports dashes
AxisItem correctly handles scaling with values that are not power of 10
Can remove items from legend
updated plotItem setLogMode to allow unspecified axes