Add flake tests
Correct style in a few files to please Lord Travis
This commit is contained in:
parent
537028f88f
commit
87d65cac4a
53
.travis.yml
53
.travis.yml
@ -20,27 +20,38 @@ env:
|
|||||||
#- PYTHON=2.6 QT=pyqt TEST=standard
|
#- PYTHON=2.6 QT=pyqt TEST=standard
|
||||||
- PYTHON=2.7 QT=pyqt TEST=extra
|
- PYTHON=2.7 QT=pyqt TEST=extra
|
||||||
- PYTHON=2.7 QT=pyside TEST=standard
|
- PYTHON=2.7 QT=pyside TEST=standard
|
||||||
#- PYTHON=3.3 QT=pyqt TEST=standard
|
- PYTHON=3.3 QT=pyqt TEST=standard
|
||||||
#- PYTHON=3.3 QT=pyside TEST=standard
|
- PYTHON=3.3 QT=pyside TEST=standard
|
||||||
|
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- travis_retry sudo apt-get -qq update;
|
- travis_retry sudo apt-get -qq update;
|
||||||
- if [ "${PYTHON}" != "2.7" ]; then
|
# - if [ "${PYTHON}" != "2.7" ]; then
|
||||||
wget http://repo.continuum.io/miniconda/Miniconda-2.2.2-Linux-x86_64.sh -O miniconda.sh &&
|
# wget http://repo.continuum.io/miniconda/Miniconda-2.2.2-Linux-x86_64.sh -O miniconda.sh &&
|
||||||
chmod +x miniconda.sh &&
|
# chmod +x miniconda.sh &&
|
||||||
./miniconda.sh -b &&
|
# ./miniconda.sh -b &&
|
||||||
export PATH=/home/$USER/anaconda/bin:$PATH &&
|
# export PATH=/home/$USER/anaconda/bin:$PATH &&
|
||||||
conda update --yes conda &&
|
# conda update --yes conda &&
|
||||||
travis_retry sudo apt-get -qq -y install libgl1-mesa-dri;
|
# travis_retry sudo apt-get -qq -y install libgl1-mesa-dri;
|
||||||
fi;
|
# fi;
|
||||||
|
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- travis_retry sudo apt-get -qq -y install python-numpy;
|
- if [ "${PYTHON}" == "2.7" ]; then
|
||||||
- pip install pytest
|
travis_retry sudo apt-get -qq -y install python-numpy python-pytest python-flake8;
|
||||||
|
if [ ${QT} == 'pyqt' ]; then
|
||||||
- if [ "${PYTHON}" != "2.7" ]; then
|
travis_retry sudo apt-get -qq -y install python-qt4 python-qt4-gl;
|
||||||
|
else
|
||||||
|
travis_retry sudo apt-get -qq -y install python-pyside.qtcore python-pyside.qtgui python-pyside.qtsvg python-pyside.qtopengl;
|
||||||
|
fi;
|
||||||
|
elif [ "${PYTHON}" == "3.3" ]; then
|
||||||
|
travis_retry sudo apt-get -qq -y install python3-numpy python3-pytest python3-flake8;
|
||||||
|
if [ ${QT} == 'pyqt' ]; then
|
||||||
|
travis_retry sudo apt-get -qq -y install python3-qt4 python3-qt4-gl;
|
||||||
|
else
|
||||||
|
travis_retry sudo apt-get -qq -y install python3-pyside.qtcore python3-pyside.qtgui python3-pyside.qtsvg python3-pyside.qtopengl;
|
||||||
|
fi;
|
||||||
|
else
|
||||||
conda create -n testenv --yes --quiet pip python=$PYTHON &&
|
conda create -n testenv --yes --quiet pip python=$PYTHON &&
|
||||||
source activate testenv &&
|
source activate testenv &&
|
||||||
if [ ${QT} == 'pyqt' ]; then
|
if [ ${QT} == 'pyqt' ]; then
|
||||||
@ -48,12 +59,6 @@ install:
|
|||||||
else
|
else
|
||||||
conda install --yes --quiet pyside;
|
conda install --yes --quiet pyside;
|
||||||
fi;
|
fi;
|
||||||
else
|
|
||||||
if [ ${QT} == 'pyqt' ]; then
|
|
||||||
travis_retry sudo apt-get -qq -y install python-qt4 python-qt4-gl;
|
|
||||||
else
|
|
||||||
travis_retry sudo apt-get -qq -y install python-pyside.qtcore python-pyside.qtgui python-pyside.qtsvg python-pyside.qtopengl;
|
|
||||||
fi;
|
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
# Install PyOpenGL
|
# Install PyOpenGL
|
||||||
@ -75,7 +80,8 @@ before_script:
|
|||||||
|
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- PYTHONPATH=. py.test
|
# Run unit tests
|
||||||
|
- python setup.py test
|
||||||
|
|
||||||
# check line endings
|
# check line endings
|
||||||
- if [ "${TEST}" == "extra" ]; then
|
- if [ "${TEST}" == "extra" ]; then
|
||||||
@ -86,4 +92,9 @@ script:
|
|||||||
fi;
|
fi;
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
|
# Check for style issues
|
||||||
|
- if [ "${TEST}" == "extra" ]; then
|
||||||
|
python setup.py style
|
||||||
|
fi;
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ class PrintExporter(Exporter):
|
|||||||
dialog = QtGui.QPrintDialog(printer)
|
dialog = QtGui.QPrintDialog(printer)
|
||||||
dialog.setWindowTitle("Print Document")
|
dialog.setWindowTitle("Print Document")
|
||||||
if dialog.exec_() != QtGui.QDialog.Accepted:
|
if dialog.exec_() != QtGui.QDialog.Accepted:
|
||||||
return;
|
return
|
||||||
|
|
||||||
#dpi = QtGui.QDesktopWidget().physicalDpiX()
|
#dpi = QtGui.QDesktopWidget().physicalDpiX()
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ def eq(a, b):
|
|||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
if (hasattr(e, 'implements') and e.implements('MetaArray')):
|
if (hasattr(e, 'implements') and e.implements('MetaArray')):
|
||||||
return e.asarray().all()
|
return e.asarray().all()
|
||||||
else:
|
else:
|
||||||
return e.all()
|
return e.all()
|
||||||
else:
|
else:
|
||||||
|
@ -328,7 +328,7 @@ class ColumnJoinNode(Node):
|
|||||||
|
|
||||||
## Node.restoreState should have created all of the terminals we need
|
## Node.restoreState should have created all of the terminals we need
|
||||||
## However: to maintain support for some older flowchart files, we need
|
## However: to maintain support for some older flowchart files, we need
|
||||||
## to manually add any terminals that were not taken care of.
|
## to manually add any terminals that were not taken care of.
|
||||||
for name in [n for n in state['order'] if n not in inputs]:
|
for name in [n for n in state['order'] if n not in inputs]:
|
||||||
Node.addInput(self, name, renamable=True, removable=True, multiable=True)
|
Node.addInput(self, name, renamable=True, removable=True, multiable=True)
|
||||||
inputs = self.inputs()
|
inputs = self.inputs()
|
||||||
|
@ -1424,30 +1424,30 @@ def isocurve(data, level, connected=False, extendToEdge=False, path=False):
|
|||||||
data = d2
|
data = d2
|
||||||
|
|
||||||
sideTable = [
|
sideTable = [
|
||||||
[],
|
[],
|
||||||
[0,1],
|
[0,1],
|
||||||
[1,2],
|
[1,2],
|
||||||
[0,2],
|
[0,2],
|
||||||
[0,3],
|
[0,3],
|
||||||
[1,3],
|
[1,3],
|
||||||
[0,1,2,3],
|
[0,1,2,3],
|
||||||
[2,3],
|
[2,3],
|
||||||
[2,3],
|
[2,3],
|
||||||
[0,1,2,3],
|
[0,1,2,3],
|
||||||
[1,3],
|
[1,3],
|
||||||
[0,3],
|
[0,3],
|
||||||
[0,2],
|
[0,2],
|
||||||
[1,2],
|
[1,2],
|
||||||
[0,1],
|
[0,1],
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
|
|
||||||
edgeKey=[
|
edgeKey=[
|
||||||
[(0,1), (0,0)],
|
[(0,1), (0,0)],
|
||||||
[(0,0), (1,0)],
|
[(0,0), (1,0)],
|
||||||
[(1,0), (1,1)],
|
[(1,0), (1,1)],
|
||||||
[(1,1), (0,1)]
|
[(1,1), (0,1)]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
lines = []
|
lines = []
|
||||||
@ -1635,38 +1635,39 @@ def isosurface(data, level):
|
|||||||
## edge index tells us which edges are cut by the isosurface.
|
## edge index tells us which edges are cut by the isosurface.
|
||||||
## (Data stolen from Bourk; see above.)
|
## (Data stolen from Bourk; see above.)
|
||||||
edgeTable = np.array([
|
edgeTable = np.array([
|
||||||
0x0 , 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c,
|
0x0 , 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c,
|
||||||
0x80c, 0x905, 0xa0f, 0xb06, 0xc0a, 0xd03, 0xe09, 0xf00,
|
0x80c, 0x905, 0xa0f, 0xb06, 0xc0a, 0xd03, 0xe09, 0xf00,
|
||||||
0x190, 0x99 , 0x393, 0x29a, 0x596, 0x49f, 0x795, 0x69c,
|
0x190, 0x99 , 0x393, 0x29a, 0x596, 0x49f, 0x795, 0x69c,
|
||||||
0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 0xf99, 0xe90,
|
0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 0xf99, 0xe90,
|
||||||
0x230, 0x339, 0x33 , 0x13a, 0x636, 0x73f, 0x435, 0x53c,
|
0x230, 0x339, 0x33 , 0x13a, 0x636, 0x73f, 0x435, 0x53c,
|
||||||
0xa3c, 0xb35, 0x83f, 0x936, 0xe3a, 0xf33, 0xc39, 0xd30,
|
0xa3c, 0xb35, 0x83f, 0x936, 0xe3a, 0xf33, 0xc39, 0xd30,
|
||||||
0x3a0, 0x2a9, 0x1a3, 0xaa , 0x7a6, 0x6af, 0x5a5, 0x4ac,
|
0x3a0, 0x2a9, 0x1a3, 0xaa , 0x7a6, 0x6af, 0x5a5, 0x4ac,
|
||||||
0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 0xda9, 0xca0,
|
0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 0xda9, 0xca0,
|
||||||
0x460, 0x569, 0x663, 0x76a, 0x66 , 0x16f, 0x265, 0x36c,
|
0x460, 0x569, 0x663, 0x76a, 0x66 , 0x16f, 0x265, 0x36c,
|
||||||
0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a, 0x963, 0xa69, 0xb60,
|
0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a, 0x963, 0xa69, 0xb60,
|
||||||
0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0xff , 0x3f5, 0x2fc,
|
0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0xff , 0x3f5, 0x2fc,
|
||||||
0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 0xbf9, 0xaf0,
|
0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 0xbf9, 0xaf0,
|
||||||
0x650, 0x759, 0x453, 0x55a, 0x256, 0x35f, 0x55 , 0x15c,
|
0x650, 0x759, 0x453, 0x55a, 0x256, 0x35f, 0x55 , 0x15c,
|
||||||
0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53, 0x859, 0x950,
|
0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53, 0x859, 0x950,
|
||||||
0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0xcc ,
|
0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0xcc ,
|
||||||
0xfcc, 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 0x9c9, 0x8c0,
|
0xfcc, 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 0x9c9, 0x8c0,
|
||||||
0x8c0, 0x9c9, 0xac3, 0xbca, 0xcc6, 0xdcf, 0xec5, 0xfcc,
|
0x8c0, 0x9c9, 0xac3, 0xbca, 0xcc6, 0xdcf, 0xec5, 0xfcc,
|
||||||
0xcc , 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 0x6c9, 0x7c0,
|
0xcc , 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 0x6c9, 0x7c0,
|
||||||
0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c,
|
0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c,
|
||||||
0x15c, 0x55 , 0x35f, 0x256, 0x55a, 0x453, 0x759, 0x650,
|
0x15c, 0x55 , 0x35f, 0x256, 0x55a, 0x453, 0x759, 0x650,
|
||||||
0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6, 0xfff, 0xcf5, 0xdfc,
|
0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6, 0xfff, 0xcf5, 0xdfc,
|
||||||
0x2fc, 0x3f5, 0xff , 0x1f6, 0x6fa, 0x7f3, 0x4f9, 0x5f0,
|
0x2fc, 0x3f5, 0xff , 0x1f6, 0x6fa, 0x7f3, 0x4f9, 0x5f0,
|
||||||
0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c,
|
0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c,
|
||||||
0x36c, 0x265, 0x16f, 0x66 , 0x76a, 0x663, 0x569, 0x460,
|
0x36c, 0x265, 0x16f, 0x66 , 0x76a, 0x663, 0x569, 0x460,
|
||||||
0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af, 0xaa5, 0xbac,
|
0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af, 0xaa5, 0xbac,
|
||||||
0x4ac, 0x5a5, 0x6af, 0x7a6, 0xaa , 0x1a3, 0x2a9, 0x3a0,
|
0x4ac, 0x5a5, 0x6af, 0x7a6, 0xaa , 0x1a3, 0x2a9, 0x3a0,
|
||||||
0xd30, 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c,
|
0xd30, 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c,
|
||||||
0x53c, 0x435, 0x73f, 0x636, 0x13a, 0x33 , 0x339, 0x230,
|
0x53c, 0x435, 0x73f, 0x636, 0x13a, 0x33 , 0x339, 0x230,
|
||||||
0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895, 0x99c,
|
0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895, 0x99c,
|
||||||
0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 0x99 , 0x190,
|
0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 0x99 , 0x190,
|
||||||
0xf00, 0xe09, 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c,
|
0xf00, 0xe09, 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c,
|
||||||
0x70c, 0x605, 0x50f, 0x406, 0x30a, 0x203, 0x109, 0x0 ], dtype=np.uint16)
|
0x70c, 0x605, 0x50f, 0x406, 0x30a, 0x203, 0x109, 0x0
|
||||||
|
], dtype=np.uint16)
|
||||||
|
|
||||||
## Table of triangles to use for filling each grid cell.
|
## Table of triangles to use for filling each grid cell.
|
||||||
## Each set of three integers tells us which three edges to
|
## Each set of three integers tells us which three edges to
|
||||||
|
@ -486,7 +486,7 @@ class PlotCurveItem(GraphicsObject):
|
|||||||
gl.glStencilOp(gl.GL_REPLACE, gl.GL_KEEP, gl.GL_KEEP)
|
gl.glStencilOp(gl.GL_REPLACE, gl.GL_KEEP, gl.GL_KEEP)
|
||||||
|
|
||||||
## draw stencil pattern
|
## draw stencil pattern
|
||||||
gl.glStencilMask(0xFF);
|
gl.glStencilMask(0xFF)
|
||||||
gl.glClear(gl.GL_STENCIL_BUFFER_BIT)
|
gl.glClear(gl.GL_STENCIL_BUFFER_BIT)
|
||||||
gl.glBegin(gl.GL_TRIANGLES)
|
gl.glBegin(gl.GL_TRIANGLES)
|
||||||
gl.glVertex2f(rect.x(), rect.y())
|
gl.glVertex2f(rect.x(), rect.y())
|
||||||
@ -520,7 +520,7 @@ class PlotCurveItem(GraphicsObject):
|
|||||||
gl.glEnable(gl.GL_LINE_SMOOTH)
|
gl.glEnable(gl.GL_LINE_SMOOTH)
|
||||||
gl.glEnable(gl.GL_BLEND)
|
gl.glEnable(gl.GL_BLEND)
|
||||||
gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA)
|
gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA)
|
||||||
gl.glHint(gl.GL_LINE_SMOOTH_HINT, gl.GL_NICEST);
|
gl.glHint(gl.GL_LINE_SMOOTH_HINT, gl.GL_NICEST)
|
||||||
gl.glDrawArrays(gl.GL_LINE_STRIP, 0, pos.size / pos.shape[-1])
|
gl.glDrawArrays(gl.GL_LINE_STRIP, 0, pos.size / pos.shape[-1])
|
||||||
finally:
|
finally:
|
||||||
gl.glDisableClientState(gl.GL_VERTEX_ARRAY)
|
gl.glDisableClientState(gl.GL_VERTEX_ARRAY)
|
||||||
|
@ -291,15 +291,16 @@ class PlotItem(GraphicsWidget):
|
|||||||
"""Return the :class:`ViewBox <pyqtgraph.ViewBox>` contained within."""
|
"""Return the :class:`ViewBox <pyqtgraph.ViewBox>` contained within."""
|
||||||
return self.vb
|
return self.vb
|
||||||
|
|
||||||
## Wrap a few methods from viewBox.
|
|
||||||
|
|
||||||
|
## Wrap a few methods from viewBox.
|
||||||
#Important: don't use a settattr(m, getattr(self.vb, m)) as we'd be leaving the viebox alive
|
#Important: don't use a settattr(m, getattr(self.vb, m)) as we'd be leaving the viebox alive
|
||||||
#because we had a reference to an instance method (creating wrapper methods at runtime instead).
|
#because we had a reference to an instance method (creating wrapper methods at runtime instead).
|
||||||
for m in [
|
|
||||||
'setXRange', 'setYRange', 'setXLink', 'setYLink', 'setAutoPan', 'setAutoVisible',
|
for m in ['setXRange', 'setYRange', 'setXLink', 'setYLink', 'setAutoPan', # NOTE:
|
||||||
'setRange', 'autoRange', 'viewRect', 'viewRange', 'setMouseEnabled', 'setLimits',
|
'setAutoVisible', 'setRange', 'autoRange', 'viewRect', 'viewRange', # If you update this list, please
|
||||||
'enableAutoRange', 'disableAutoRange', 'setAspectLocked', 'invertY',
|
'setMouseEnabled', 'setLimits', 'enableAutoRange', 'disableAutoRange', # update the class docstring
|
||||||
'register', 'unregister']: ## NOTE: If you update this list, please update the class docstring as well.
|
'setAspectLocked', 'invertY', 'register', 'unregister']: # as well.
|
||||||
|
|
||||||
def _create_method(name):
|
def _create_method(name):
|
||||||
def method(self, *args, **kwargs):
|
def method(self, *args, **kwargs):
|
||||||
return getattr(self.vb, name)(*args, **kwargs)
|
return getattr(self.vb, name)(*args, **kwargs)
|
||||||
@ -310,6 +311,7 @@ class PlotItem(GraphicsWidget):
|
|||||||
|
|
||||||
del _create_method
|
del _create_method
|
||||||
|
|
||||||
|
|
||||||
def setLogMode(self, x=None, y=None):
|
def setLogMode(self, x=None, y=None):
|
||||||
"""
|
"""
|
||||||
Set log scaling for x and/or y axes.
|
Set log scaling for x and/or y axes.
|
||||||
|
@ -579,7 +579,7 @@ class Request(object):
|
|||||||
return self._result
|
return self._result
|
||||||
|
|
||||||
if timeout is None:
|
if timeout is None:
|
||||||
timeout = self.timeout
|
timeout = self.timeout
|
||||||
|
|
||||||
if block:
|
if block:
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
@ -45,7 +45,7 @@ class GLAxisItem(GLGraphicsItem):
|
|||||||
|
|
||||||
if self.antialias:
|
if self.antialias:
|
||||||
glEnable(GL_LINE_SMOOTH)
|
glEnable(GL_LINE_SMOOTH)
|
||||||
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
|
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST)
|
||||||
|
|
||||||
glBegin( GL_LINES )
|
glBegin( GL_LINES )
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ class GLGridItem(GLGraphicsItem):
|
|||||||
glEnable(GL_LINE_SMOOTH)
|
glEnable(GL_LINE_SMOOTH)
|
||||||
glEnable(GL_BLEND)
|
glEnable(GL_BLEND)
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
|
||||||
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
|
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST)
|
||||||
|
|
||||||
glBegin( GL_LINES )
|
glBegin( GL_LINES )
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ class GLLinePlotItem(GLGraphicsItem):
|
|||||||
glEnable(GL_LINE_SMOOTH)
|
glEnable(GL_LINE_SMOOTH)
|
||||||
glEnable(GL_BLEND)
|
glEnable(GL_BLEND)
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
|
||||||
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
|
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST)
|
||||||
|
|
||||||
if self.mode == 'line_strip':
|
if self.mode == 'line_strip':
|
||||||
glDrawArrays(GL_LINE_STRIP, 0, int(self.pos.size / self.pos.shape[-1]))
|
glDrawArrays(GL_LINE_STRIP, 0, int(self.pos.size / self.pos.shape[-1]))
|
||||||
|
@ -115,6 +115,6 @@ class WinTerm(object):
|
|||||||
# fill the entire screen with blanks
|
# fill the entire screen with blanks
|
||||||
win32.FillConsoleOutputCharacter(handle, ' ', dw_con_size, coord_screen)
|
win32.FillConsoleOutputCharacter(handle, ' ', dw_con_size, coord_screen)
|
||||||
# now set the buffer's attributes accordingly
|
# now set the buffer's attributes accordingly
|
||||||
win32.FillConsoleOutputAttribute(handle, self.get_attrs(), dw_con_size, coord_screen );
|
win32.FillConsoleOutputAttribute(handle, self.get_attrs(), dw_con_size, coord_screen )
|
||||||
# put the cursor at (0, 0)
|
# put the cursor at (0, 0)
|
||||||
win32.SetConsoleCursorPosition(handle, (coord_screen.X, coord_screen.Y))
|
win32.SetConsoleCursorPosition(handle, (coord_screen.X, coord_screen.Y))
|
||||||
|
6
setup.py
6
setup.py
@ -97,7 +97,11 @@ class Build(distutils.command.build.build):
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
version=version,
|
version=version,
|
||||||
cmdclass={'build': Build, 'deb': helpers.DebCommand, 'test': helpers.TestCommand},
|
cmdclass={'build': Build,
|
||||||
|
'deb': helpers.DebCommand,
|
||||||
|
'test': helpers.TestCommand,
|
||||||
|
'debug': helpers.DebugCommand,
|
||||||
|
'style': helpers.StyleCommand},
|
||||||
packages=allPackages,
|
packages=allPackages,
|
||||||
package_dir={'pyqtgraph.examples': 'examples'}, ## install examples along with the rest of the source
|
package_dir={'pyqtgraph.examples': 'examples'}, ## install examples along with the rest of the source
|
||||||
#package_data={'pyqtgraph': ['graphicsItems/PlotItem/*.png']},
|
#package_data={'pyqtgraph': ['graphicsItems/PlotItem/*.png']},
|
||||||
|
@ -9,9 +9,37 @@ except ImportError:
|
|||||||
output = proc.stdout.read()
|
output = proc.stdout.read()
|
||||||
proc.wait()
|
proc.wait()
|
||||||
if proc.returncode != 0:
|
if proc.returncode != 0:
|
||||||
raise Exception("Process had nonzero return value", proc.returncode)
|
ex = Exception("Process had nonzero return value %d" % proc.returncode)
|
||||||
|
ex.returncode = proc.returncode
|
||||||
|
ex.output = output
|
||||||
|
raise ex
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
FLAKE_TESTS = ("E101,E111,E112,E113,E122,E125,E133,E223,E224,"
|
||||||
|
"E242,E273,E274,E304,E502,E703,E901,E902,"
|
||||||
|
"W191,W601,W602,W603,W604")
|
||||||
|
|
||||||
|
def checkStyle():
|
||||||
|
try:
|
||||||
|
out = check_output(['flake8', '--select=%s' % FLAKE_TESTS, '--statistics', 'pyqtgraph/'])
|
||||||
|
ret = 0
|
||||||
|
print("All style checks OK.")
|
||||||
|
except Exception as e:
|
||||||
|
out = e.output
|
||||||
|
ret = e.returncode
|
||||||
|
print(out)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def unitTests():
|
||||||
|
try:
|
||||||
|
out = check_output('PYTHONPATH=. py.test', shell=True)
|
||||||
|
ret = 0
|
||||||
|
except Exception as e:
|
||||||
|
out = e.output
|
||||||
|
ret = e.returncode
|
||||||
|
print(out)
|
||||||
|
return ret
|
||||||
|
|
||||||
def listAllPackages(pkgroot):
|
def listAllPackages(pkgroot):
|
||||||
path = os.getcwd()
|
path = os.getcwd()
|
||||||
n = len(path.split(os.path.sep))
|
n = len(path.split(os.path.sep))
|
||||||
@ -190,8 +218,8 @@ class DebCommand(Command):
|
|||||||
raise Exception("Error during debuild.")
|
raise Exception("Error during debuild.")
|
||||||
|
|
||||||
|
|
||||||
class TestCommand(Command):
|
class DebugCommand(Command):
|
||||||
"""Just for learning about distutils; not for running package tests."""
|
"""Just for learning about distutils."""
|
||||||
description = ""
|
description = ""
|
||||||
user_options = []
|
user_options = []
|
||||||
def initialize_options(self):
|
def initialize_options(self):
|
||||||
@ -203,3 +231,33 @@ class TestCommand(Command):
|
|||||||
cmd = self
|
cmd = self
|
||||||
print(self.distribution.name)
|
print(self.distribution.name)
|
||||||
print(self.distribution.version)
|
print(self.distribution.version)
|
||||||
|
|
||||||
|
|
||||||
|
class TestCommand(Command):
|
||||||
|
description = "Run all package tests and exit immediately with informative return code."
|
||||||
|
user_options = []
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
sys.exit(unitTests())
|
||||||
|
|
||||||
|
|
||||||
|
def initialize_options(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def finalize_options(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class StyleCommand(Command):
|
||||||
|
description = "Check all code for style, exit immediately with informative return code."
|
||||||
|
user_options = []
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
sys.exit(checkStyle())
|
||||||
|
|
||||||
|
def initialize_options(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def finalize_options(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user