Merge pull request #1573 from j9ac9k/add-deprecation-warnings
Add deprecation warnings, Use non-deprecated upstream methods
This commit is contained in:
commit
a04ff546e0
@ -149,7 +149,7 @@ def mkData():
|
|||||||
scale = 1024
|
scale = 1024
|
||||||
mx = 2**16
|
mx = 2**16
|
||||||
elif cacheKey[0] == 'float':
|
elif cacheKey[0] == 'float':
|
||||||
dt = xp.float
|
dt = xp.float32
|
||||||
loc = 1.0
|
loc = 1.0
|
||||||
scale = 0.1
|
scale = 0.1
|
||||||
mx = 1.0
|
mx = 1.0
|
||||||
|
@ -131,7 +131,7 @@ class RelativityGUI(QtGui.QWidget):
|
|||||||
def setAnimation(self, a):
|
def setAnimation(self, a):
|
||||||
if a:
|
if a:
|
||||||
self.lastAnimTime = pg.ptime.time()
|
self.lastAnimTime = pg.ptime.time()
|
||||||
self.animTimer.start(self.animDt*1000)
|
self.animTimer.start(int(self.animDt*1000))
|
||||||
else:
|
else:
|
||||||
self.animTimer.stop()
|
self.animTimer.stop()
|
||||||
|
|
||||||
@ -654,15 +654,6 @@ class Animation(pg.ItemGroup):
|
|||||||
item = ClockItem(cl)
|
item = ClockItem(cl)
|
||||||
self.addItem(item)
|
self.addItem(item)
|
||||||
self.items[name] = item
|
self.items[name] = item
|
||||||
|
|
||||||
#self.timer = timer
|
|
||||||
#self.timer.timeout.connect(self.step)
|
|
||||||
|
|
||||||
#def run(self, run):
|
|
||||||
#if not run:
|
|
||||||
#self.timer.stop()
|
|
||||||
#else:
|
|
||||||
#self.timer.start(self.dt)
|
|
||||||
|
|
||||||
def restart(self):
|
def restart(self):
|
||||||
for cl in self.items.values():
|
for cl in self.items.values():
|
||||||
|
@ -290,6 +290,59 @@ else:
|
|||||||
if QT_LIB in [PYQT5, PYQT6, PYSIDE2, PYSIDE6]:
|
if QT_LIB in [PYQT5, PYQT6, PYSIDE2, PYSIDE6]:
|
||||||
# We're using Qt5 which has a different structure so we're going to use a shim to
|
# We're using Qt5 which has a different structure so we're going to use a shim to
|
||||||
# recreate the Qt4 structure
|
# recreate the Qt4 structure
|
||||||
|
|
||||||
|
if QT_LIB in [PYQT5, PYSIDE2]:
|
||||||
|
__QGraphicsItem_scale = QtWidgets.QGraphicsItem.scale
|
||||||
|
|
||||||
|
def scale(self, *args):
|
||||||
|
warnings.warn(
|
||||||
|
"Deprecated Qt API, will be removed in 0.13.0.",
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
if args:
|
||||||
|
sx, sy = args
|
||||||
|
tr = self.transform()
|
||||||
|
tr.scale(sx, sy)
|
||||||
|
self.setTransform(tr)
|
||||||
|
else:
|
||||||
|
return __QGraphicsItem_scale(self)
|
||||||
|
QtWidgets.QGraphicsItem.scale = scale
|
||||||
|
|
||||||
|
def rotate(self, angle):
|
||||||
|
warnings.warn(
|
||||||
|
"Deprecated Qt API, will be removed in 0.13.0.",
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
tr = self.transform()
|
||||||
|
tr.rotate(angle)
|
||||||
|
self.setTransform(tr)
|
||||||
|
QtWidgets.QGraphicsItem.rotate = rotate
|
||||||
|
|
||||||
|
def translate(self, dx, dy):
|
||||||
|
warnings.warn(
|
||||||
|
"Deprecated Qt API, will be removed in 0.13.0.",
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
tr = self.transform()
|
||||||
|
tr.translate(dx, dy)
|
||||||
|
self.setTransform(tr)
|
||||||
|
QtWidgets.QGraphicsItem.translate = translate
|
||||||
|
|
||||||
|
def setMargin(self, i):
|
||||||
|
warnings.warn(
|
||||||
|
"Deprecated Qt API, will be removed in 0.13.0.",
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
self.setContentsMargins(i, i, i, i)
|
||||||
|
QtWidgets.QGridLayout.setMargin = setMargin
|
||||||
|
|
||||||
|
def setResizeMode(self, *args):
|
||||||
|
warnings.warn(
|
||||||
|
"Deprecated Qt API, will be removed in 0.13.0.",
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
self.setSectionResizeMode(*args)
|
||||||
|
QtWidgets.QHeaderView.setResizeMode = setResizeMode
|
||||||
|
|
||||||
# Import all QtWidgets objects into QtGui
|
# Import all QtWidgets objects into QtGui
|
||||||
for o in dir(QtWidgets):
|
for o in dir(QtWidgets):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
from .Qt import QtCore, QtGui
|
from .Qt import QtCore, QtGui
|
||||||
from .Point import Point
|
from .Point import Point
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
import warnings
|
||||||
|
|
||||||
class SRTTransform(QtGui.QTransform):
|
class SRTTransform(QtGui.QTransform):
|
||||||
"""Transform that can always be represented as a combination of 3 matrices: scale * rotate * translate
|
"""Transform that can always be represented as a combination of 3 matrices: scale * rotate * translate
|
||||||
@ -35,7 +35,11 @@ class SRTTransform(QtGui.QTransform):
|
|||||||
return self._state['scale']
|
return self._state['scale']
|
||||||
|
|
||||||
def getAngle(self):
|
def getAngle(self):
|
||||||
## deprecated; for backward compatibility
|
warnings.warn(
|
||||||
|
'SRTTransform.getAngle() is deprecated, use SRTTransform.getRotation() instead'
|
||||||
|
'will be removed in 0.13',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
return self.getRotation()
|
return self.getRotation()
|
||||||
|
|
||||||
def getRotation(self):
|
def getRotation(self):
|
||||||
|
@ -384,29 +384,18 @@ def exit():
|
|||||||
os._exit(0)
|
os._exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Convenience functions for command-line use
|
## Convenience functions for command-line use
|
||||||
|
|
||||||
plots = []
|
plots = []
|
||||||
images = []
|
images = []
|
||||||
QAPP = None
|
QAPP = None
|
||||||
|
|
||||||
def plot(*args, **kargs):
|
def plot(*args, **kargs):
|
||||||
"""
|
"""
|
||||||
Create and return a :class:`PlotWindow <pyqtgraph.PlotWindow>`
|
Create and return a :class:`PlotWidget <pyqtgraph.PlotWinPlotWidgetdow>`
|
||||||
(this is just a window with :class:`PlotWidget <pyqtgraph.PlotWidget>` inside), plot data in it.
|
|
||||||
Accepts a *title* argument to set the title of the window.
|
Accepts a *title* argument to set the title of the window.
|
||||||
All other arguments are used to plot data. (see :func:`PlotItem.plot() <pyqtgraph.PlotItem.plot>`)
|
All other arguments are used to plot data. (see :func:`PlotItem.plot() <pyqtgraph.PlotItem.plot>`)
|
||||||
"""
|
"""
|
||||||
mkQApp()
|
mkQApp()
|
||||||
#if 'title' in kargs:
|
|
||||||
#w = PlotWindow(title=kargs['title'])
|
|
||||||
#del kargs['title']
|
|
||||||
#else:
|
|
||||||
#w = PlotWindow()
|
|
||||||
#if len(args)+len(kargs) > 0:
|
|
||||||
#w.plot(*args, **kargs)
|
|
||||||
|
|
||||||
pwArgList = ['title', 'labels', 'name', 'left', 'right', 'top', 'bottom', 'background']
|
pwArgList = ['title', 'labels', 'name', 'left', 'right', 'top', 'bottom', 'background']
|
||||||
pwArgs = {}
|
pwArgs = {}
|
||||||
dataArgs = {}
|
dataArgs = {}
|
||||||
@ -415,44 +404,32 @@ def plot(*args, **kargs):
|
|||||||
pwArgs[k] = kargs[k]
|
pwArgs[k] = kargs[k]
|
||||||
else:
|
else:
|
||||||
dataArgs[k] = kargs[k]
|
dataArgs[k] = kargs[k]
|
||||||
|
windowTitle = pwArgs.pop("title", "PlotWidget")
|
||||||
w = PlotWindow(**pwArgs)
|
w = PlotWidget(**pwArgs)
|
||||||
w.sigClosed.connect(_plotWindowClosed)
|
w.setWindowTitle(windowTitle)
|
||||||
if len(args) > 0 or len(dataArgs) > 0:
|
if len(args) > 0 or len(dataArgs) > 0:
|
||||||
w.plot(*args, **dataArgs)
|
w.plot(*args, **dataArgs)
|
||||||
plots.append(w)
|
plots.append(w)
|
||||||
w.show()
|
w.show()
|
||||||
return w
|
return w
|
||||||
|
|
||||||
def _plotWindowClosed(w):
|
|
||||||
w.close()
|
|
||||||
try:
|
|
||||||
plots.remove(w)
|
|
||||||
except ValueError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def image(*args, **kargs):
|
def image(*args, **kargs):
|
||||||
"""
|
"""
|
||||||
Create and return an :class:`ImageWindow <pyqtgraph.ImageWindow>`
|
Create and return an :class:`ImageView <pyqtgraph.ImageView>`
|
||||||
(this is just a window with :class:`ImageView <pyqtgraph.ImageView>` widget inside), show image data inside.
|
|
||||||
Will show 2D or 3D image data.
|
Will show 2D or 3D image data.
|
||||||
Accepts a *title* argument to set the title of the window.
|
Accepts a *title* argument to set the title of the window.
|
||||||
All other arguments are used to show data. (see :func:`ImageView.setImage() <pyqtgraph.ImageView.setImage>`)
|
All other arguments are used to show data. (see :func:`ImageView.setImage() <pyqtgraph.ImageView.setImage>`)
|
||||||
"""
|
"""
|
||||||
mkQApp()
|
mkQApp()
|
||||||
w = ImageWindow(*args, **kargs)
|
w = ImageView()
|
||||||
w.sigClosed.connect(_imageWindowClosed)
|
windowTitle = kargs.pop("title", "ImageView")
|
||||||
|
w.setWindowTitle(windowTitle)
|
||||||
|
w.setImage(*args, **kargs)
|
||||||
images.append(w)
|
images.append(w)
|
||||||
w.show()
|
w.show()
|
||||||
return w
|
return w
|
||||||
show = image ## for backward compatibility
|
show = image ## for backward compatibility
|
||||||
|
|
||||||
def _imageWindowClosed(w):
|
|
||||||
w.close()
|
|
||||||
try:
|
|
||||||
images.remove(w)
|
|
||||||
except ValueError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def dbg(*args, **kwds):
|
def dbg(*args, **kwds):
|
||||||
"""
|
"""
|
||||||
|
@ -14,7 +14,7 @@ def test_plotscene():
|
|||||||
tempfilename = tempfile.NamedTemporaryFile(suffix='.svg').name
|
tempfilename = tempfile.NamedTemporaryFile(suffix='.svg').name
|
||||||
print("using %s as a temporary file" % tempfilename)
|
print("using %s as a temporary file" % tempfilename)
|
||||||
pg.setConfigOption('foreground', (0,0,0))
|
pg.setConfigOption('foreground', (0,0,0))
|
||||||
w = pg.GraphicsWindow()
|
w = pg.GraphicsLayoutWidget()
|
||||||
w.show()
|
w.show()
|
||||||
p1 = w.addPlot()
|
p1 = w.addPlot()
|
||||||
p2 = w.addPlot()
|
p2 = w.addPlot()
|
||||||
|
@ -6,7 +6,7 @@ from .Terminal import *
|
|||||||
from ..pgcollections import OrderedDict
|
from ..pgcollections import OrderedDict
|
||||||
from ..debug import *
|
from ..debug import *
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
import warnings
|
||||||
|
|
||||||
translate = QtCore.QCoreApplication.translate
|
translate = QtCore.QCoreApplication.translate
|
||||||
|
|
||||||
@ -191,6 +191,12 @@ class Node(QtCore.QObject):
|
|||||||
## this is just bad planning. Causes too many bugs.
|
## this is just bad planning. Causes too many bugs.
|
||||||
def __getattr__(self, attr):
|
def __getattr__(self, attr):
|
||||||
"""Return the terminal with the given name"""
|
"""Return the terminal with the given name"""
|
||||||
|
warnings.warn(
|
||||||
|
"Use of note.terminalName is deprecated, use node['terminalName'] instead"
|
||||||
|
"Will be removed from 0.13.0",
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
|
||||||
if attr not in self.terminals:
|
if attr not in self.terminals:
|
||||||
raise AttributeError(attr)
|
raise AttributeError(attr)
|
||||||
else:
|
else:
|
||||||
|
@ -262,7 +262,7 @@ def mkColor(*args):
|
|||||||
a = int(c[6:8], 16)
|
a = int(c[6:8], 16)
|
||||||
elif isinstance(args[0], QtGui.QColor):
|
elif isinstance(args[0], QtGui.QColor):
|
||||||
return QtGui.QColor(args[0])
|
return QtGui.QColor(args[0])
|
||||||
elif isinstance(args[0], float):
|
elif np.issubdtype(type(args[0]), np.floating):
|
||||||
r = g = b = int(args[0] * 255)
|
r = g = b = int(args[0] * 255)
|
||||||
a = 255
|
a = 255
|
||||||
elif hasattr(args[0], '__len__'):
|
elif hasattr(args[0], '__len__'):
|
||||||
@ -275,7 +275,7 @@ def mkColor(*args):
|
|||||||
return intColor(*args[0])
|
return intColor(*args[0])
|
||||||
else:
|
else:
|
||||||
raise TypeError(err)
|
raise TypeError(err)
|
||||||
elif type(args[0]) == int:
|
elif np.issubdtype(type(args[0]), np.integer):
|
||||||
return intColor(args[0])
|
return intColor(args[0])
|
||||||
else:
|
else:
|
||||||
raise TypeError(err)
|
raise TypeError(err)
|
||||||
@ -1129,7 +1129,7 @@ def makeARGB(data, lut=None, levels=None, scale=None, useRGBA=False, output=None
|
|||||||
raise Exception('levels argument is required for float input types')
|
raise Exception('levels argument is required for float input types')
|
||||||
if not isinstance(levels, xp.ndarray):
|
if not isinstance(levels, xp.ndarray):
|
||||||
levels = xp.array(levels)
|
levels = xp.array(levels)
|
||||||
levels = levels.astype(xp.float)
|
levels = levels.astype(xp.float32)
|
||||||
if levels.ndim == 1:
|
if levels.ndim == 1:
|
||||||
if levels.shape[0] != 2:
|
if levels.shape[0] != 2:
|
||||||
raise Exception('levels argument must have length 2')
|
raise Exception('levels argument must have length 2')
|
||||||
|
@ -9,6 +9,7 @@ import weakref
|
|||||||
from .. import functions as fn
|
from .. import functions as fn
|
||||||
from .. import getConfigOption
|
from .. import getConfigOption
|
||||||
from .GraphicsWidget import GraphicsWidget
|
from .GraphicsWidget import GraphicsWidget
|
||||||
|
import warnings
|
||||||
|
|
||||||
__all__ = ['AxisItem']
|
__all__ = ['AxisItem']
|
||||||
class AxisItem(GraphicsWidget):
|
class AxisItem(GraphicsWidget):
|
||||||
@ -459,6 +460,12 @@ class AxisItem(GraphicsWidget):
|
|||||||
"""
|
"""
|
||||||
# Deprecated usage, kept for backward compatibility
|
# Deprecated usage, kept for backward compatibility
|
||||||
if scale is None:
|
if scale is None:
|
||||||
|
warnings.warn(
|
||||||
|
'AxisItem.setScale(None) is deprecated, will be removed in 0.13.0'
|
||||||
|
'instead use AxisItem.enableAutoSIPrefix(bool) to enable/disable'
|
||||||
|
'SI prefix scaling',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
scale = 1.0
|
scale = 1.0
|
||||||
self.enableAutoSIPrefix(True)
|
self.enableAutoSIPrefix(True)
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ class TickSpec:
|
|||||||
def skipFactor(self, minSpc):
|
def skipFactor(self, minSpc):
|
||||||
if self.autoSkip is None or minSpc < self.spacing:
|
if self.autoSkip is None or minSpc < self.spacing:
|
||||||
return 1
|
return 1
|
||||||
factors = np.array(self.autoSkip, dtype=np.float)
|
factors = np.array(self.autoSkip, dtype=np.float64)
|
||||||
while True:
|
while True:
|
||||||
for f in factors:
|
for f in factors:
|
||||||
spc = self.spacing * f
|
spc = self.spacing * f
|
||||||
|
@ -39,7 +39,7 @@ class GraphicsItem(object):
|
|||||||
self._cachedView = None
|
self._cachedView = None
|
||||||
if register is not None and register:
|
if register is not None and register:
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"'register' argument is deprecated and does nothing",
|
"'register' argument is deprecated and does nothing, will be removed in 0.13",
|
||||||
DeprecationWarning, stacklevel=2
|
DeprecationWarning, stacklevel=2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -171,10 +171,8 @@ class GridItem(UIGraphicsItem):
|
|||||||
linePen.setCosmetic(False)
|
linePen.setCosmetic(False)
|
||||||
if ax == 0:
|
if ax == 0:
|
||||||
linePen.setWidthF(self.pixelWidth())
|
linePen.setWidthF(self.pixelWidth())
|
||||||
#print "ax 0 height", self.pixelHeight()
|
|
||||||
else:
|
else:
|
||||||
linePen.setWidthF(self.pixelHeight())
|
linePen.setWidthF(self.pixelHeight())
|
||||||
#print "ax 1 width", self.pixelWidth()
|
|
||||||
p.setPen(linePen)
|
p.setPen(linePen)
|
||||||
p1 = np.array([0.,0.])
|
p1 = np.array([0.,0.])
|
||||||
p2 = np.array([0.,0.])
|
p2 = np.array([0.,0.])
|
||||||
@ -195,7 +193,6 @@ class GridItem(UIGraphicsItem):
|
|||||||
y = p1[1] + unit[1]
|
y = p1[1] + unit[1]
|
||||||
texts.append((QtCore.QPointF(x, y), "%g"%p1[ax]))
|
texts.append((QtCore.QPointF(x, y), "%g"%p1[ax]))
|
||||||
tr = self.deviceTransform()
|
tr = self.deviceTransform()
|
||||||
#tr.scale(1.5, 1.5)
|
|
||||||
p.setWorldTransform(fn.invertQTransform(tr))
|
p.setWorldTransform(fn.invertQTransform(tr))
|
||||||
|
|
||||||
if textPen is not None and len(texts) > 0:
|
if textPen is not None and len(texts) > 0:
|
||||||
|
@ -9,6 +9,7 @@ from .ScatterPlotItem import ScatterPlotItem
|
|||||||
from .. import functions as fn
|
from .. import functions as fn
|
||||||
from .. import debug as debug
|
from .. import debug as debug
|
||||||
from .. import getConfigOption
|
from .. import getConfigOption
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
|
||||||
class PlotDataItem(GraphicsObject):
|
class PlotDataItem(GraphicsObject):
|
||||||
@ -438,11 +439,21 @@ class PlotDataItem(GraphicsObject):
|
|||||||
"""
|
"""
|
||||||
#self.clear()
|
#self.clear()
|
||||||
if kargs.get("stepMode", None) is True:
|
if kargs.get("stepMode", None) is True:
|
||||||
import warnings
|
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
'stepMode=True is deprecated, use stepMode="center" instead',
|
'stepMode=True is deprecated, use stepMode="center" instead',
|
||||||
DeprecationWarning, stacklevel=3
|
DeprecationWarning, stacklevel=3
|
||||||
)
|
)
|
||||||
|
if 'decimate' in kargs.keys():
|
||||||
|
warnings.warn(
|
||||||
|
'decimate kwarg has been deprecated, it has no effect',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
|
||||||
|
if 'identical' in kargs.keys():
|
||||||
|
warnings.warn(
|
||||||
|
'identical kwarg has been deprecated, it has no effect',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
profiler = debug.Profiler()
|
profiler = debug.Profiler()
|
||||||
y = None
|
y = None
|
||||||
x = None
|
x = None
|
||||||
|
@ -510,7 +510,11 @@ class PlotItem(GraphicsWidget):
|
|||||||
"""
|
"""
|
||||||
Enable auto-scaling. The plot will continuously scale to fit the boundaries of its data.
|
Enable auto-scaling. The plot will continuously scale to fit the boundaries of its data.
|
||||||
"""
|
"""
|
||||||
print("Warning: enableAutoScale is deprecated. Use enableAutoRange(axis, enable) instead.")
|
warnings.warn(
|
||||||
|
'PlotItem.enableAutoScale is deprecated, and will be removed in 0.13'
|
||||||
|
'Use PlotItem.enableAutoRange(axis, enable) instead',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
self.vb.enableAutoRange(self.vb.XYAxes)
|
self.vb.enableAutoRange(self.vb.XYAxes)
|
||||||
|
|
||||||
def addItem(self, item, *args, **kargs):
|
def addItem(self, item, *args, **kargs):
|
||||||
@ -567,7 +571,11 @@ class PlotItem(GraphicsWidget):
|
|||||||
self.legend.addItem(item, name=name)
|
self.legend.addItem(item, name=name)
|
||||||
|
|
||||||
def addDataItem(self, item, *args):
|
def addDataItem(self, item, *args):
|
||||||
print("PlotItem.addDataItem is deprecated. Use addItem instead.")
|
warnings.warn(
|
||||||
|
'PlotItem.addDataItem is deprecated and will be removed in 0.13. '
|
||||||
|
'Use PlotItem.addItem instead',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
self.addItem(item, *args)
|
self.addItem(item, *args)
|
||||||
|
|
||||||
def listDataItems(self):
|
def listDataItems(self):
|
||||||
@ -576,7 +584,12 @@ class PlotItem(GraphicsWidget):
|
|||||||
return self.dataItems[:]
|
return self.dataItems[:]
|
||||||
|
|
||||||
def addCurve(self, c, params=None):
|
def addCurve(self, c, params=None):
|
||||||
print("PlotItem.addCurve is deprecated. Use addItem instead.")
|
warnings.warn(
|
||||||
|
'PlotItem.addCurve is deprecated and will be removed in 0.13. '
|
||||||
|
'Use PlotItem.addItem instead.',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
|
||||||
self.addItem(c, params)
|
self.addItem(c, params)
|
||||||
|
|
||||||
def addLine(self, x=None, y=None, z=None, **kwds):
|
def addLine(self, x=None, y=None, z=None, **kwds):
|
||||||
@ -1163,7 +1176,11 @@ class PlotItem(GraphicsWidget):
|
|||||||
self.showAxis(axis, False)
|
self.showAxis(axis, False)
|
||||||
|
|
||||||
def showScale(self, *args, **kargs):
|
def showScale(self, *args, **kargs):
|
||||||
print("Deprecated. use showAxis() instead")
|
warnings.warn(
|
||||||
|
'PlotItem.showScale has been deprecated and will be removed in 0.13. '
|
||||||
|
'Use PlotItem.showAxis() instead',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
return self.showAxis(*args, **kargs)
|
return self.showAxis(*args, **kargs)
|
||||||
|
|
||||||
def hideButtons(self):
|
def hideButtons(self):
|
||||||
|
@ -22,6 +22,7 @@ from .. import functions as fn
|
|||||||
from .GraphicsObject import GraphicsObject
|
from .GraphicsObject import GraphicsObject
|
||||||
from .UIGraphicsItem import UIGraphicsItem
|
from .UIGraphicsItem import UIGraphicsItem
|
||||||
from .. import getConfigOption
|
from .. import getConfigOption
|
||||||
|
import warnings
|
||||||
|
|
||||||
translate = QtCore.QCoreApplication.translate
|
translate = QtCore.QCoreApplication.translate
|
||||||
|
|
||||||
@ -1890,16 +1891,20 @@ class CircleROI(EllipseROI):
|
|||||||
|
|
||||||
|
|
||||||
class PolygonROI(ROI):
|
class PolygonROI(ROI):
|
||||||
## deprecated. Use PloyLineROI instead.
|
|
||||||
|
|
||||||
def __init__(self, positions, pos=None, **args):
|
def __init__(self, positions, pos=None, **args):
|
||||||
|
warnings.warn(
|
||||||
|
'PolygonROI has been deprecated, will be removed in 0.13'
|
||||||
|
'use PolyLineROI instead',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
|
||||||
if pos is None:
|
if pos is None:
|
||||||
pos = [0,0]
|
pos = [0,0]
|
||||||
ROI.__init__(self, pos, [1,1], **args)
|
ROI.__init__(self, pos, [1,1], **args)
|
||||||
for p in positions:
|
for p in positions:
|
||||||
self.addFreeHandle(p)
|
self.addFreeHandle(p)
|
||||||
self.setZValue(1000)
|
self.setZValue(1000)
|
||||||
print("Warning: PolygonROI is deprecated. Use PolyLineROI instead.")
|
|
||||||
|
|
||||||
def listPoints(self):
|
def listPoints(self):
|
||||||
return [p['item'].pos() for p in self.handles]
|
return [p['item'].pos() for p in self.handles]
|
||||||
|
@ -119,7 +119,8 @@ def renderSymbol(symbol, size, pen, brush, device=None):
|
|||||||
|
|
||||||
def makeSymbolPixmap(size, pen, brush, symbol):
|
def makeSymbolPixmap(size, pen, brush, symbol):
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"This is an internal function that is no longer being used.",
|
"This is an internal function that is no longer being used. "
|
||||||
|
"Will be removed in 0.13",
|
||||||
DeprecationWarning, stacklevel=2
|
DeprecationWarning, stacklevel=2
|
||||||
)
|
)
|
||||||
img = renderSymbol(symbol, size, pen, brush)
|
img = renderSymbol(symbol, size, pen, brush)
|
||||||
@ -462,7 +463,6 @@ class ScatterPlotItem(GraphicsObject):
|
|||||||
*hoverSize* A single size to use for hovered spots. Set to -1 to keep size unchanged. Default is -1.
|
*hoverSize* A single size to use for hovered spots. Set to -1 to keep size unchanged. Default is -1.
|
||||||
*hoverPen* A single pen to use for hovered spots. Set to None to keep pen unchanged. Default is None.
|
*hoverPen* A single pen to use for hovered spots. Set to None to keep pen unchanged. Default is None.
|
||||||
*hoverBrush* A single brush to use for hovered spots. Set to None to keep brush unchanged. Default is None.
|
*hoverBrush* A single brush to use for hovered spots. Set to None to keep brush unchanged. Default is None.
|
||||||
*identical* *Deprecated*. This functionality is handled automatically now.
|
|
||||||
*antialias* Whether to draw symbols with antialiasing. Note that if pxMode is True, symbols are
|
*antialias* Whether to draw symbols with antialiasing. Note that if pxMode is True, symbols are
|
||||||
always rendered with antialiasing (since the rendered symbols can be cached, this
|
always rendered with antialiasing (since the rendered symbols can be cached, this
|
||||||
incurs very little performance cost)
|
incurs very little performance cost)
|
||||||
@ -474,7 +474,8 @@ class ScatterPlotItem(GraphicsObject):
|
|||||||
"""
|
"""
|
||||||
if 'identical' in kargs:
|
if 'identical' in kargs:
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"The *identical* functionality is handled automatically now.",
|
"The *identical* functionality is handled automatically now. "
|
||||||
|
"Will be removed in 0.13.",
|
||||||
DeprecationWarning, stacklevel=2
|
DeprecationWarning, stacklevel=2
|
||||||
)
|
)
|
||||||
oldData = self.data ## this causes cached pixmaps to be preserved while new data is registered.
|
oldData = self.data ## this causes cached pixmaps to be preserved while new data is registered.
|
||||||
@ -614,7 +615,8 @@ class ScatterPlotItem(GraphicsObject):
|
|||||||
|
|
||||||
def setPoints(self, *args, **kargs):
|
def setPoints(self, *args, **kargs):
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"Use setData instead.",
|
"ScatterPlotItem.setPoints is deprecated, use ScatterPlotItem.setData "
|
||||||
|
"instead. Will be removed in 0.13",
|
||||||
DeprecationWarning, stacklevel=2
|
DeprecationWarning, stacklevel=2
|
||||||
)
|
)
|
||||||
return self.setData(*args, **kargs)
|
return self.setData(*args, **kargs)
|
||||||
@ -863,7 +865,8 @@ class ScatterPlotItem(GraphicsObject):
|
|||||||
|
|
||||||
def getSpotOpts(self, recs, scale=1.0):
|
def getSpotOpts(self, recs, scale=1.0):
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"This is an internal method that is no longer being used.",
|
"This is an internal method that is no longer being used. Will be "
|
||||||
|
"removed in 0.13",
|
||||||
DeprecationWarning, stacklevel=2
|
DeprecationWarning, stacklevel=2
|
||||||
)
|
)
|
||||||
if recs.ndim == 0:
|
if recs.ndim == 0:
|
||||||
@ -892,7 +895,8 @@ class ScatterPlotItem(GraphicsObject):
|
|||||||
|
|
||||||
def measureSpotSizes(self, dataSet):
|
def measureSpotSizes(self, dataSet):
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"This is an internal method that is no longer being used.",
|
"This is an internal method that is no longer being used. "
|
||||||
|
"Will be removed in 0.13.",
|
||||||
DeprecationWarning, stacklevel=2
|
DeprecationWarning, stacklevel=2
|
||||||
)
|
)
|
||||||
for size, pen in zip(*self._style(['size', 'pen'], data=dataSet)):
|
for size, pen in zip(*self._style(['size', 'pen'], data=dataSet)):
|
||||||
@ -998,7 +1002,8 @@ class ScatterPlotItem(GraphicsObject):
|
|||||||
|
|
||||||
def mapPointsToDevice(self, pts):
|
def mapPointsToDevice(self, pts):
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"This is an internal method that is no longer being used.",
|
"This is an internal method that is no longer being used. "
|
||||||
|
"Will be removed in 0.13",
|
||||||
DeprecationWarning, stacklevel=2
|
DeprecationWarning, stacklevel=2
|
||||||
)
|
)
|
||||||
# Map point locations to device
|
# Map point locations to device
|
||||||
@ -1014,7 +1019,8 @@ class ScatterPlotItem(GraphicsObject):
|
|||||||
|
|
||||||
def getViewMask(self, pts):
|
def getViewMask(self, pts):
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"This is an internal method that is no longer being used.",
|
"This is an internal method that is no longer being used. "
|
||||||
|
"Will be removed in 0.13",
|
||||||
DeprecationWarning, stacklevel=2
|
DeprecationWarning, stacklevel=2
|
||||||
)
|
)
|
||||||
# Return bool mask indicating all points that are within viewbox
|
# Return bool mask indicating all points that are within viewbox
|
||||||
|
@ -1237,7 +1237,7 @@ class ViewBox(GraphicsWidget):
|
|||||||
dif = dif * -1
|
dif = dif * -1
|
||||||
|
|
||||||
## Ignore axes if mouse is disabled
|
## Ignore axes if mouse is disabled
|
||||||
mouseEnabled = np.array(self.state['mouseEnabled'], dtype=np.float)
|
mouseEnabled = np.array(self.state['mouseEnabled'], dtype=np.float64)
|
||||||
mask = mouseEnabled.copy()
|
mask = mouseEnabled.copy()
|
||||||
if axis is not None:
|
if axis is not None:
|
||||||
mask[1-axis] = 0.0
|
mask[1-axis] = 0.0
|
||||||
|
@ -10,11 +10,11 @@ app = pg.mkQApp()
|
|||||||
|
|
||||||
def test_ImageItem(transpose=False):
|
def test_ImageItem(transpose=False):
|
||||||
|
|
||||||
w = pg.GraphicsWindow()
|
w = pg.GraphicsLayoutWidget()
|
||||||
|
w.show()
|
||||||
view = pg.ViewBox()
|
view = pg.ViewBox()
|
||||||
w.setCentralWidget(view)
|
w.setCentralWidget(view)
|
||||||
w.resize(200, 200)
|
w.resize(200, 200)
|
||||||
w.show()
|
|
||||||
img = TransposedImageItem(border=0.5, transpose=transpose)
|
img = TransposedImageItem(border=0.5, transpose=transpose)
|
||||||
|
|
||||||
view.addItem(img)
|
view.addItem(img)
|
||||||
@ -134,7 +134,6 @@ def test_ImageItem_axisorder():
|
|||||||
pg.setConfigOptions(imageAxisOrder=origMode)
|
pg.setConfigOptions(imageAxisOrder=origMode)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif(pg.Qt.QT_LIB=='PySide', reason="pyside does not have qWait")
|
|
||||||
def test_dividebyzero():
|
def test_dividebyzero():
|
||||||
import pyqtgraph as pg
|
import pyqtgraph as pg
|
||||||
im = pg.image(pg.np.random.normal(size=(100,100)))
|
im = pg.image(pg.np.random.normal(size=(100,100)))
|
||||||
|
@ -48,7 +48,7 @@ def test_NonUniformImage_data_dimensions():
|
|||||||
|
|
||||||
def test_NonUniformImage_lut():
|
def test_NonUniformImage_lut():
|
||||||
|
|
||||||
window = pg.GraphicsWindow()
|
window = pg.GraphicsLayoutWidget()
|
||||||
viewbox = pg.ViewBox()
|
viewbox = pg.ViewBox()
|
||||||
window.setCentralWidget(viewbox)
|
window.setCentralWidget(viewbox)
|
||||||
window.resize(200, 200)
|
window.resize(200, 200)
|
||||||
@ -78,7 +78,7 @@ def test_NonUniformImage_lut():
|
|||||||
|
|
||||||
def test_NonUniformImage_colormap():
|
def test_NonUniformImage_colormap():
|
||||||
|
|
||||||
window = pg.GraphicsWindow()
|
window = pg.GraphicsLayoutWidget()
|
||||||
viewbox = pg.ViewBox()
|
viewbox = pg.ViewBox()
|
||||||
window.setCentralWidget(viewbox)
|
window.setCentralWidget(viewbox)
|
||||||
window.resize(200, 200)
|
window.resize(200, 200)
|
||||||
|
@ -4,10 +4,11 @@ from pyqtgraph.tests import assertImageApproved
|
|||||||
|
|
||||||
|
|
||||||
def test_PlotCurveItem():
|
def test_PlotCurveItem():
|
||||||
p = pg.GraphicsWindow()
|
p = pg.GraphicsLayoutWidget()
|
||||||
p.ci.layout.setContentsMargins(4, 4, 4, 4) # default margins vary by platform
|
|
||||||
v = p.addViewBox()
|
|
||||||
p.resize(200, 150)
|
p.resize(200, 150)
|
||||||
|
p.ci.setContentsMargins(4, 4, 4, 4) # default margins vary by platform
|
||||||
|
p.show()
|
||||||
|
v = p.addViewBox()
|
||||||
data = np.array([1,4,2,3,np.inf,5,7,6,-np.inf,8,10,9,np.nan,-1,-2,0])
|
data = np.array([1,4,2,3,np.inf,5,7,6,-np.inf,8,10,9,np.nan,-1,-2,0])
|
||||||
c = pg.PlotCurveItem(data)
|
c = pg.PlotCurveItem(data)
|
||||||
v.addItem(c)
|
v.addItem(c)
|
||||||
|
@ -11,6 +11,7 @@ from .widgets.PlotWidget import *
|
|||||||
from .imageview import *
|
from .imageview import *
|
||||||
from .widgets.GraphicsLayoutWidget import GraphicsLayoutWidget
|
from .widgets.GraphicsLayoutWidget import GraphicsLayoutWidget
|
||||||
from .widgets.GraphicsView import GraphicsView
|
from .widgets.GraphicsView import GraphicsView
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
|
||||||
class GraphicsWindow(GraphicsLayoutWidget):
|
class GraphicsWindow(GraphicsLayoutWidget):
|
||||||
@ -21,6 +22,11 @@ class GraphicsWindow(GraphicsLayoutWidget):
|
|||||||
is intended for use from the interactive python prompt.
|
is intended for use from the interactive python prompt.
|
||||||
"""
|
"""
|
||||||
def __init__(self, title=None, size=(800,600), **kargs):
|
def __init__(self, title=None, size=(800,600), **kargs):
|
||||||
|
warnings.warn(
|
||||||
|
'GraphicsWindow is deprecated, use GraphicsLayoutWidget instead,'
|
||||||
|
'will be removed in 0.13',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
mkQApp()
|
mkQApp()
|
||||||
GraphicsLayoutWidget.__init__(self, **kargs)
|
GraphicsLayoutWidget.__init__(self, **kargs)
|
||||||
self.resize(*size)
|
self.resize(*size)
|
||||||
@ -34,6 +40,10 @@ class TabWindow(QtGui.QMainWindow):
|
|||||||
(deprecated)
|
(deprecated)
|
||||||
"""
|
"""
|
||||||
def __init__(self, title=None, size=(800,600)):
|
def __init__(self, title=None, size=(800,600)):
|
||||||
|
warnings.warn(
|
||||||
|
'TabWindow is deprecated, will be removed in 0.13',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
mkQApp()
|
mkQApp()
|
||||||
QtGui.QMainWindow.__init__(self)
|
QtGui.QMainWindow.__init__(self)
|
||||||
self.resize(*size)
|
self.resize(*size)
|
||||||
@ -54,6 +64,11 @@ class PlotWindow(PlotWidget):
|
|||||||
(deprecated; use :class:`~pyqtgraph.PlotWidget` instead)
|
(deprecated; use :class:`~pyqtgraph.PlotWidget` instead)
|
||||||
"""
|
"""
|
||||||
def __init__(self, title=None, **kargs):
|
def __init__(self, title=None, **kargs):
|
||||||
|
warnings.warn(
|
||||||
|
'PlotWindow is deprecated, use PlotWidget instead,'
|
||||||
|
'will be removed in 0.13',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
mkQApp()
|
mkQApp()
|
||||||
self.win = QtGui.QMainWindow()
|
self.win = QtGui.QMainWindow()
|
||||||
PlotWidget.__init__(self, **kargs)
|
PlotWidget.__init__(self, **kargs)
|
||||||
@ -76,6 +91,11 @@ class ImageWindow(ImageView):
|
|||||||
(deprecated; use :class:`~pyqtgraph.ImageView` instead)
|
(deprecated; use :class:`~pyqtgraph.ImageView` instead)
|
||||||
"""
|
"""
|
||||||
def __init__(self, *args, **kargs):
|
def __init__(self, *args, **kargs):
|
||||||
|
warnings.warn(
|
||||||
|
'ImageWindow is deprecated, use ImageView instead'
|
||||||
|
'will be removed in 0.13',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
mkQApp()
|
mkQApp()
|
||||||
self.win = QtGui.QMainWindow()
|
self.win = QtGui.QMainWindow()
|
||||||
self.win.resize(800,600)
|
self.win.resize(800,600)
|
||||||
|
@ -14,6 +14,7 @@ import types, copy, threading, os, re
|
|||||||
import pickle
|
import pickle
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from ..python2_3 import basestring
|
from ..python2_3 import basestring
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
|
||||||
## By default, the library will use HDF5 when writing files.
|
## By default, the library will use HDF5 when writing files.
|
||||||
@ -320,7 +321,11 @@ class MetaArray(object):
|
|||||||
return self.asarray().astype(dtype)
|
return self.asarray().astype(dtype)
|
||||||
|
|
||||||
def view(self, typ):
|
def view(self, typ):
|
||||||
## deprecated; kept for backward compatibility
|
warnings.warn(
|
||||||
|
'MetaArray.view is deprecated and will be removed in 0.13. '
|
||||||
|
'Use MetaArray.asarray() instead.',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
if typ is np.ndarray:
|
if typ is np.ndarray:
|
||||||
return self.asarray()
|
return self.asarray()
|
||||||
else:
|
else:
|
||||||
|
@ -4,7 +4,7 @@ import OpenGL.GL.framebufferobjects as glfbo
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from .. import Vector
|
from .. import Vector
|
||||||
from .. import functions as fn
|
from .. import functions as fn
|
||||||
|
import warnings
|
||||||
##Vector = QtGui.QVector3D
|
##Vector = QtGui.QVector3D
|
||||||
|
|
||||||
ShareWidget = None
|
ShareWidget = None
|
||||||
@ -359,7 +359,7 @@ class GLViewWidget(QtWidgets.QOpenGLWidget):
|
|||||||
*relative* String that determines the direction of dx,dy,dz.
|
*relative* String that determines the direction of dx,dy,dz.
|
||||||
If "global", then the global coordinate system is used.
|
If "global", then the global coordinate system is used.
|
||||||
If "view", then the z axis is aligned with the view
|
If "view", then the z axis is aligned with the view
|
||||||
direction, and x and y axes are inthe plane of the
|
direction, and x and y axes are in the plane of the
|
||||||
view: +x points right, +y points up.
|
view: +x points right, +y points up.
|
||||||
If "view-upright", then x is in the global xy plane and
|
If "view-upright", then x is in the global xy plane and
|
||||||
points to the right side of the view, y is in the
|
points to the right side of the view, y is in the
|
||||||
@ -374,8 +374,13 @@ class GLViewWidget(QtWidgets.QOpenGLWidget):
|
|||||||
False (global). These values are deprecated but still recognized.
|
False (global). These values are deprecated but still recognized.
|
||||||
"""
|
"""
|
||||||
# for backward compatibility:
|
# for backward compatibility:
|
||||||
|
if isinstance(relative, bool):
|
||||||
|
warnings.warn(
|
||||||
|
"'relative' as a boolean is deprecated, and will not be recognized in 0.13. "
|
||||||
|
"Acceptable values are 'global', 'view', or 'view-upright'",
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
relative = {True: "view-upright", False: "global"}.get(relative, relative)
|
relative = {True: "view-upright", False: "global"}.get(relative, relative)
|
||||||
|
|
||||||
if relative == 'global':
|
if relative == 'global':
|
||||||
self.opts['center'] += QtGui.QVector3D(dx, dy, dz)
|
self.opts['center'] += QtGui.QVector3D(dx, dy, dz)
|
||||||
elif relative == 'view-upright':
|
elif relative == 'view-upright':
|
||||||
|
@ -5,6 +5,7 @@ import os, weakref, re
|
|||||||
from ..pgcollections import OrderedDict
|
from ..pgcollections import OrderedDict
|
||||||
from ..python2_3 import asUnicode, basestring
|
from ..python2_3 import asUnicode, basestring
|
||||||
from .ParameterItem import ParameterItem
|
from .ParameterItem import ParameterItem
|
||||||
|
import warnings
|
||||||
|
|
||||||
PARAM_TYPES = {}
|
PARAM_TYPES = {}
|
||||||
PARAM_NAMES = {}
|
PARAM_NAMES = {}
|
||||||
@ -703,7 +704,11 @@ class Parameter(QtCore.QObject):
|
|||||||
def __getattr__(self, attr):
|
def __getattr__(self, attr):
|
||||||
## Leaving this undocumented because I might like to remove it in the future..
|
## Leaving this undocumented because I might like to remove it in the future..
|
||||||
#print type(self), attr
|
#print type(self), attr
|
||||||
|
warnings.warn(
|
||||||
|
'Use of Parameter.subParam is deprecated and will be removed in 0.13 '
|
||||||
|
'Use Parameter.param(name) instead.',
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
if 'names' not in self.__dict__:
|
if 'names' not in self.__dict__:
|
||||||
raise AttributeError(attr)
|
raise AttributeError(attr)
|
||||||
if attr in self.names:
|
if attr in self.names:
|
||||||
|
@ -44,8 +44,8 @@ def test_types():
|
|||||||
tree.setParameters(param)
|
tree.setParameters(param)
|
||||||
|
|
||||||
all_objs = {
|
all_objs = {
|
||||||
'int0': 0, 'int':7, 'float': -0.35, 'bigfloat': 1e129, 'npfloat': np.float(5),
|
'int0': 0, 'int':7, 'float': -0.35, 'bigfloat': 1e129, 'npfloat': np.float64(5),
|
||||||
'npint': np.int(5),'npinf': np.inf, 'npnan': np.nan, 'bool': True,
|
'npint': np.int64(5),'npinf': np.inf, 'npnan': np.nan, 'bool': True,
|
||||||
'complex': 5+3j, 'str': 'xxx', 'unicode': asUnicode('µ'),
|
'complex': 5+3j, 'str': 'xxx', 'unicode': asUnicode('µ'),
|
||||||
'list': [1,2,3], 'dict': {'1': 2}, 'color': pg.mkColor('k'),
|
'list': [1,2,3], 'dict': {'1': 2}, 'color': pg.mkColor('k'),
|
||||||
'brush': pg.mkBrush('k'), 'pen': pg.mkPen('k'), 'none': None
|
'brush': pg.mkBrush('k'), 'pen': pg.mkPen('k'), 'none': None
|
||||||
|
@ -340,9 +340,7 @@ def test_makeARGB():
|
|||||||
def test_eq():
|
def test_eq():
|
||||||
eq = pg.functions.eq
|
eq = pg.functions.eq
|
||||||
|
|
||||||
zeros = [0, 0.0, np.float(0), np.int(0)]
|
zeros = [0, 0.0, np.float64(0), np.float32(0), np.int32(0), np.int64(0)]
|
||||||
if sys.version[0] < '3':
|
|
||||||
zeros.append(long(0))
|
|
||||||
for i,x in enumerate(zeros):
|
for i,x in enumerate(zeros):
|
||||||
for y in zeros[i:]:
|
for y in zeros[i:]:
|
||||||
assert eq(x, y)
|
assert eq(x, y)
|
||||||
|
@ -6,6 +6,7 @@ Test for unwanted reference cycles
|
|||||||
import pyqtgraph as pg
|
import pyqtgraph as pg
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import weakref
|
import weakref
|
||||||
|
import warnings
|
||||||
app = pg.mkQApp()
|
app = pg.mkQApp()
|
||||||
|
|
||||||
def assert_alldead(refs):
|
def assert_alldead(refs):
|
||||||
@ -36,7 +37,9 @@ def mkrefs(*objs):
|
|||||||
|
|
||||||
def test_PlotWidget():
|
def test_PlotWidget():
|
||||||
def mkobjs(*args, **kwds):
|
def mkobjs(*args, **kwds):
|
||||||
w = pg.PlotWidget(*args, **kwds)
|
with warnings.catch_warnings():
|
||||||
|
warnings.simplefilter("ignore")
|
||||||
|
w = pg.PlotWidget(*args, **kwds)
|
||||||
data = pg.np.array([1,5,2,4,3])
|
data = pg.np.array([1,5,2,4,3])
|
||||||
c = w.plot(data, name='stuff')
|
c = w.plot(data, name='stuff')
|
||||||
w.addLegend()
|
w.addLegend()
|
||||||
@ -50,7 +53,19 @@ def test_PlotWidget():
|
|||||||
|
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
assert_alldead(mkobjs())
|
assert_alldead(mkobjs())
|
||||||
|
|
||||||
|
def test_GraphicsWindow():
|
||||||
|
def mkobjs():
|
||||||
|
with warnings.catch_warnings():
|
||||||
|
warnings.simplefilter("ignore")
|
||||||
|
w = pg.GraphicsWindow()
|
||||||
|
p1 = w.addPlot()
|
||||||
|
v1 = w.addViewBox()
|
||||||
|
return mkrefs(w, p1, v1)
|
||||||
|
|
||||||
|
for i in range(5):
|
||||||
|
assert_alldead(mkobjs())
|
||||||
|
|
||||||
def test_ImageView():
|
def test_ImageView():
|
||||||
def mkobjs():
|
def mkobjs():
|
||||||
iv = pg.ImageView()
|
iv = pg.ImageView()
|
||||||
@ -63,15 +78,7 @@ def test_ImageView():
|
|||||||
assert_alldead(mkobjs())
|
assert_alldead(mkobjs())
|
||||||
|
|
||||||
|
|
||||||
def test_GraphicsWindow():
|
|
||||||
def mkobjs():
|
|
||||||
w = pg.GraphicsWindow()
|
|
||||||
p1 = w.addPlot()
|
|
||||||
v1 = w.addViewBox()
|
|
||||||
return mkrefs(w, p1, v1)
|
|
||||||
|
|
||||||
for i in range(5):
|
|
||||||
assert_alldead(mkobjs())
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,10 +43,13 @@ def remove_cache(mod):
|
|||||||
shutil.rmtree(cachedir)
|
shutil.rmtree(cachedir)
|
||||||
|
|
||||||
@pytest.mark.skipif(
|
@pytest.mark.skipif(
|
||||||
((pg.Qt.QT_LIB == "PySide2" and pg.Qt.PySide2.__version__.startswith("5.15"))
|
(
|
||||||
or (pg.Qt.QT_LIB == "PySide6"))
|
(pg.Qt.QT_LIB == "PySide2" and pg.Qt.QtVersion.startswith("5.15"))
|
||||||
and sys.version_info > (3, 9),
|
or (pg.Qt.QT_LIB == "PySide6")
|
||||||
reason="Unknown Issue")
|
) and (sys.version_info > (3, 9))
|
||||||
|
or (sys.version_info >= (3, 10)),
|
||||||
|
reason="Unknown Issue"
|
||||||
|
)
|
||||||
def test_reload():
|
def test_reload():
|
||||||
py3 = sys.version_info >= (3,)
|
py3 = sys.version_info >= (3,)
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ class JoystickButton(QtGui.QPushButton):
|
|||||||
self.radius = 200
|
self.radius = 200
|
||||||
self.setCheckable(True)
|
self.setCheckable(True)
|
||||||
self.state = None
|
self.state = None
|
||||||
self.setState(0,0)
|
self.setState(0, 0)
|
||||||
self.setFixedWidth(50)
|
self.setFixedWidth(50)
|
||||||
self.setFixedHeight(50)
|
self.setFixedHeight(50)
|
||||||
|
|
||||||
@ -42,21 +42,24 @@ class JoystickButton(QtGui.QPushButton):
|
|||||||
def setState(self, *xy):
|
def setState(self, *xy):
|
||||||
xy = list(xy)
|
xy = list(xy)
|
||||||
d = (xy[0]**2 + xy[1]**2)**0.5
|
d = (xy[0]**2 + xy[1]**2)**0.5
|
||||||
nxy = [0,0]
|
nxy = [0, 0]
|
||||||
for i in [0,1]:
|
for i in [0,1]:
|
||||||
if xy[i] == 0:
|
if xy[i] == 0:
|
||||||
nxy[i] = 0
|
nxy[i] = 0
|
||||||
else:
|
else:
|
||||||
nxy[i] = xy[i]/d
|
nxy[i] = xy[i] / d
|
||||||
|
|
||||||
if d > self.radius:
|
if d > self.radius:
|
||||||
d = self.radius
|
d = self.radius
|
||||||
d = (d/self.radius)**2
|
d = (d / self.radius) ** 2
|
||||||
xy = [nxy[0]*d, nxy[1]*d]
|
xy = [nxy[0] * d, nxy[1] * d]
|
||||||
|
|
||||||
w2 = self.width()/2.
|
w2 = self.width() / 2
|
||||||
h2 = self.height()/2
|
h2 = self.height() / 2
|
||||||
self.spotPos = QtCore.QPoint(w2*(1+xy[0]), h2*(1-xy[1]))
|
self.spotPos = QtCore.QPoint(
|
||||||
|
int(w2 * (1 + xy[0])),
|
||||||
|
int(h2 * (1 - xy[1]))
|
||||||
|
)
|
||||||
self.update()
|
self.update()
|
||||||
if self.state == xy:
|
if self.state == xy:
|
||||||
return
|
return
|
||||||
@ -67,7 +70,12 @@ class JoystickButton(QtGui.QPushButton):
|
|||||||
super().paintEvent(ev)
|
super().paintEvent(ev)
|
||||||
p = QtGui.QPainter(self)
|
p = QtGui.QPainter(self)
|
||||||
p.setBrush(QtGui.QBrush(QtGui.QColor(0,0,0)))
|
p.setBrush(QtGui.QBrush(QtGui.QColor(0,0,0)))
|
||||||
p.drawEllipse(self.spotPos.x()-3,self.spotPos.y()-3,6,6)
|
p.drawEllipse(
|
||||||
|
self.spotPos.x() - 3,
|
||||||
|
self.spotPos.y() - 3,
|
||||||
|
6,
|
||||||
|
6
|
||||||
|
)
|
||||||
|
|
||||||
def resizeEvent(self, ev):
|
def resizeEvent(self, ev):
|
||||||
self.setState(*self.state)
|
self.setState(*self.state)
|
||||||
|
@ -77,7 +77,6 @@ class SpinBox(QtGui.QAbstractSpinBox):
|
|||||||
'step': D('0.01'), ## if 'dec' is false, the spinBox steps by 'step' every time
|
'step': D('0.01'), ## if 'dec' is false, the spinBox steps by 'step' every time
|
||||||
## if 'dec' is True, the step size is relative to the value
|
## if 'dec' is True, the step size is relative to the value
|
||||||
## 'step' needs to be an integral divisor of ten, ie 'step'*n=10 for some integer value of n (but only if dec is True)
|
## 'step' needs to be an integral divisor of ten, ie 'step'*n=10 for some integer value of n (but only if dec is True)
|
||||||
'log': False, # deprecated
|
|
||||||
'dec': False, ## if true, does decimal stepping. ie from 1-10 it steps by 'step', from 10 to 100 it steps by 10*'step', etc.
|
'dec': False, ## if true, does decimal stepping. ie from 1-10 it steps by 'step', from 10 to 100 it steps by 10*'step', etc.
|
||||||
## if true, minStep must be set in order to cross zero.
|
## if true, minStep must be set in order to cross zero.
|
||||||
|
|
||||||
@ -402,13 +401,6 @@ class SpinBox(QtGui.QAbstractSpinBox):
|
|||||||
val = self.val
|
val = self.val
|
||||||
|
|
||||||
for i in range(int(abs(n))):
|
for i in range(int(abs(n))):
|
||||||
|
|
||||||
if self.opts['log']:
|
|
||||||
raise Exception("Log mode no longer supported.")
|
|
||||||
# step = abs(val) * self.opts['step']
|
|
||||||
# if 'minStep' in self.opts:
|
|
||||||
# step = max(step, self.opts['minStep'])
|
|
||||||
# val += step * s
|
|
||||||
if self.opts['dec']:
|
if self.opts['dec']:
|
||||||
if val == 0:
|
if val == 0:
|
||||||
step = self.opts['minStep']
|
step = self.opts['minStep']
|
||||||
|
Loading…
Reference in New Issue
Block a user