Commit Graph

1842 Commits

Author SHA1 Message Date
Antony Lee
f136b33033 Profilers controllable via PYQTGRAPHPROFILE.
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.
2013-11-27 09:57:46 -08:00
Luke Campagnola
4486272737 Catch OverflowError from Point.length() 2013-11-25 01:16:21 -05:00
Luke Campagnola
c1f72b29c6 Merge branch 'faster-make-argb' into develop
- Speed improvements in functions.makeARGB
- ImageItem is faster by avoiding makeQImage(transpose=True)
2013-11-24 21:11:21 -05:00
Luke Campagnola
71ee4deb84 - fixed ImageItem handling of rgb images
- fixed makeARGB re-ordering of color channels
2013-11-24 21:10:06 -05:00
Luke Campagnola
bd2330af9f ImageItem performance boost by avoiding makeQImage(transpose=True) 2013-11-24 20:45:10 -05:00
blink1073
a08b28c958 Simplify to take transpose logic out of makeARGB function 2013-11-24 15:50:28 -06:00
Luke Campagnola
cff168b9f0 Merge branch 'master' into develop 2013-11-24 12:59:45 -05:00
Luke Campagnola
5309483a60 Merge branch 'release-0.9.8' 2013-11-24 12:54:35 -05:00
Luke Campagnola
08a19f5616 Line-wrapped setup.py description 2013-11-24 11:06:53 -05:00
Luke Campagnola
51c1615059 added dates to changelog 2013-11-24 10:16:45 -05:00
blink1073
ddce17dc62 Undo remove trailing whitespace 2013-11-23 23:08:18 -06:00
blink1073
85d7116482 Speedups for making ARGB arrays 2013-11-23 23:02:19 -06:00
Luke Campagnola
52c89bf202 added CHANGELOG 2013-11-23 20:27:14 -05:00
Luke Campagnola
d34bdb1be7 corrected GradientWidget.__all__ 2013-11-22 09:33:02 -05:00
Luke Campagnola
6e74df28a0 Merge branch 'dont-copy-context-menu' into develop
This allows ViewBox context menus to be modified by directly manipulating ViewBox.menu
2013-11-21 23:38:44 -05:00
Luke Campagnola
19cf49bc7d fixed context menu handling for non-GraphicsItems 2013-11-21 23:29:03 -05:00
Luke Campagnola
8deaf0866f avoid division by zero when ViewBox has size or aspect = 0 2013-11-21 13:37:01 -05:00
Luke Campagnola
f05c10a80f removed unnecessary scipy import 2013-11-21 09:57:56 -05:00
Luke Campagnola
a972114b4f Fixed ViewBox not updating immediately after call to setAspectLocked 2013-11-21 07:56:30 -05:00
Antony Lee
23a0d6d7c0 Use actions of ViewBox's contextMenu in full menu.
The main change is on `ViewBox.getContextMenus`, which now returns an
up-to-date of actions that `GraphicsScene.addParentContextMenus` can use.

Also, `getContextMenus` was given a default implementation in the base
class (falling back on `getMenu` if defined), and some cleanup was done.
2013-11-20 12:23:07 -08:00
Luke Campagnola
0a5cb62a6f ImageItem now has auto downsampling; seems to be working properly.
Still need auto clipping as well.
2013-11-20 13:51:39 -05:00
Luke Campagnola
193b1097b2 Merge branch 'axis_unicode_fix' into develop 2013-11-19 14:47:03 -05:00
Luke Campagnola
901e8ae596 Fixed unicode handling in AxisItem label 2013-11-19 14:45:57 -05:00
Luke Campagnola
5b905cde8b Override ViewBox.popup() to update menu before showing
Extend ViewBox menu in examples/contextMenu
2013-11-19 07:46:17 -05:00
Luke Campagnola
5b156cd3d3 Fixes for multiprocess / RemoteGraphicsView:
- Process now optionally wraps stdout/stderr from child process to
  circumvent a python bug
- Added windows error number for port-in-use check
- fixed segv caused by lost QImage input in pyside
2013-11-17 22:32:15 -05:00
Antony Lee
2e61be739f Don't copy the context menu of ViewBoxes.
This allows customization of the context menu of a ViewBox simply by
calling viewbox.menu.addAction(...).  See issue #13.  Also some cleanup.
2013-11-17 14:21:13 -08:00
Luke Campagnola
1418358bfb Fixed RemoteGraphicsView passing mouse events on python3 + pyside 2013-11-17 14:12:00 -05:00
Luke Campagnola
08be09ee40 Fixed RemoteGraphicsView on windows
- Avoid using authkey on windows; seems to be broken
 - Included yet another method of accessing shared memory as QImage
2013-11-17 09:27:55 -07:00
Luke Campagnola
1e82104986 Fixed running python examples --test for python3; needs to be tested under windows. 2013-11-16 21:51:55 -05:00
Luke Campagnola
8d7ab108fd Fixed PySide issues by removing itemChange methods from GraphicsWidget and ViewBox;
Workaround is for ViewBox to see whether its scene has changed every time it paints.

Fixes: 12
2013-11-16 20:23:41 -05:00
luke
25d666a1da Avoid calling QGraphicsWidget.itemChange--this causes segfault in python3 + pyqt
Fixes #10
2013-11-15 22:05:09 -05:00
Luke Campagnola
e84c0d7a93 Merge pull request #11 from anntzer/fast-import
Faster import of PyQtGraph.
2013-11-15 18:18:51 -08:00
Antony Lee
dac7eb5817 Faster import of PyQtGraph.
* RawImageWidget (and thus OpenGL) isn't imported by default anymore.
* scipy.stats.scoreatpercentile is replaced by numpy.percentile.

This commit has not been tested as the example runner is currently
broken.
2013-11-15 11:00:12 -08:00
Luke Campagnola
ef2ffdd88c Fixed bug: ViewBox context menu elements are no longer deleted when using flowchart + pyside 2013-11-14 14:01:25 -05:00
Luke Campagnola
f8772d179f removed unused variable 2013-11-14 12:16:31 -05:00
Luke Campagnola
810b90a1e6 Minor fix in ScatterPlotItem handling of per-point data 2013-11-10 23:25:07 -05:00
Luke Campagnola
ccc5e6274a Fixes:
- GraphItem reports pixel margins to improve auto-range
 - ViewBox.setRange is more careful about disabling auto range for axes that are set
2013-11-07 12:05:05 -05:00
Luke Campagnola
58ed8ee7bd ViewBox overhaul. Cleaned up code pathway:
- setRange now only affects target range
  - updateViewRange only affects view range
  - updateMatrix only affects childGroup transform
  - updateMatrix is only called before a render

Pathway now looks like:
        setRange -> updateViewRange -> matrix dirty -> ...
                                    -> sigRangeChanged

        ... -> prepareForPaint -> updateAutoRange, updateMatrix if dirty
2013-11-06 23:26:57 -05:00
Luke Campagnola
31928e70a5 Bugfixes:
- GraphicsView.render now correctly invokes GraphicsScene.prepareForPaint
 - Fixed RemoteGraphicsView renderer to use new PyQt QImage API.
 - multiprocess.Process now pipes stdout/err directly to console when in debugging mode
2013-11-06 23:14:27 -05:00
Luke Campagnola
ea8079334f Correct ViewBox.translate to use setRange(x, y) when possible rather than making two calls. 2013-11-06 15:35:24 -05:00
Luke Campagnola
96a4ff7cd5 Fixes:
- ROI updates on sigTransformChanged
  - ViewBox is more careful about accepting all auto-range changes up to the point it is disabled, even if the auto-range calculation is deferred.
2013-11-04 22:07:43 -05:00
Luke Campagnola
0daae425a3 A bit more flow reorganization 2013-11-03 19:41:05 -05:00
Luke Campagnola
6083521387 Initial success. Testing and further reorganization to follow. 2013-11-03 17:55:57 -05:00
Luke Campagnola
a4103dd152 Mid-way through overhaul. Proposed code path looks like:
setRange -> updateViewRange -> matrix dirty
                            -> sigRangeChanged

    ... -> prepareForPaint -> updateAutoRange, updateMatrix if dirty
2013-11-03 17:10:59 -05:00
Luke Campagnola
ab1b1c6adf Added ViewBox test suite 2013-10-25 10:33:41 -04:00
Luke Campagnola
662af1a9c5 ignore test directories in top-level __init__ imports 2013-10-25 10:31:30 -04:00
Luke Campagnola
84a845185e Fix: when ViewBox is resized, update range if it is linked to another view 2013-10-20 11:06:57 -04:00
Luke Campagnola
5ef8b1d01a Merge branch 'axis_fix' into develop
Fixed improper tick spacing and axis scaling
    This requires an API change:
     - AxisItem.setScale(float) has the usual behavior
     - AxisItem.setScale(None) is deprecated (but still works). Instead use:
     - AxisItem.enableAutoSIPrefix(bool) to enable/disable SI prefix scaling
    Also makes the API more intuitive since these features are now accessed and implemented independently.

fixes #4
2013-10-18 15:19:49 -04:00
Luke Campagnola
bb2ecd033c minor fix 2013-10-18 15:10:44 -04:00
Luke Campagnola
f19df05bdf Allow AxisItem.setScale(None) to retain API backward compatibility. 2013-10-18 15:02:17 -04:00