Hello community, here is the log from the commit of package python-visvis for openSUSE:Factory checked in at 2020-07-17 20:52:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-visvis (Old) and /work/SRC/openSUSE:Factory/.python-visvis.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-visvis" Fri Jul 17 20:52:38 2020 rev:3 rq:821494 version:1.12.4 Changes: -------- --- /work/SRC/openSUSE:Factory/python-visvis/python-visvis.changes 2019-12-23 22:45:23.266022092 +0100 +++ /work/SRC/openSUSE:Factory/.python-visvis.new.3592/python-visvis.changes 2020-07-17 20:53:29.469085574 +0200 @@ -1,0 +2,7 @@ +Fri Jul 17 11:08:59 UTC 2020 - Marketa Calabkova <[email protected]> + +- update to 1.2.4 + * tests included in sdist + * minor bugfixes + +------------------------------------------------------------------- Old: ---- visvis-1.12.2.tar.gz New: ---- visvis-1.12.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-visvis.spec ++++++ --- /var/tmp/diff_new_pack.gadYog/_old 2020-07-17 20:53:33.477089755 +0200 +++ /var/tmp/diff_new_pack.gadYog/_new 2020-07-17 20:53:33.477089755 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-visvis # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-visvis -Version: 1.12.2 +Version: 1.12.4 Release: 0 Summary: An object oriented approach to visualization of 1D to 4D data License: BSD-3-Clause @@ -38,6 +38,7 @@ BuildArch: noarch # SECTION test requirements BuildRequires: %{python_module Pillow} +BuildRequires: %{python_module imageio} BuildRequires: %{python_module numpy} BuildRequires: %{python_module opengl} BuildRequires: %{python_module pytest} @@ -64,6 +65,9 @@ %python_install %python_expand %fdupes %{buildroot}%{$python_sitelib} +%check +%pytest + %files %{python_files} %license license.txt %{python_sitelib}/* ++++++ visvis-1.12.2.tar.gz -> visvis-1.12.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/PKG-INFO new/visvis-1.12.4/PKG-INFO --- old/visvis-1.12.2/PKG-INFO 2019-10-03 10:21:56.000000000 +0200 +++ new/visvis-1.12.4/PKG-INFO 2020-05-25 15:45:27.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: visvis -Version: 1.12.2 +Version: 1.12.4 Summary: An object oriented approach to visualization of 1D to 4D data. Home-page: https://github.com/almarklein/visvis Author: Almar Klein diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/__init__.py new/visvis-1.12.4/__init__.py --- old/visvis-1.12.2/__init__.py 2019-10-03 10:21:35.000000000 +0200 +++ new/visvis-1.12.4/__init__.py 2020-05-25 15:44:54.000000000 +0200 @@ -45,7 +45,7 @@ """ -__version__ = '1.12.2' +__version__ = '1.12.4' # Loose sub-modules and sub-packages from visvis.utils.pypoints import Point, Pointset, Aarray, Quaternion diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/backends/qtcommon.py new/visvis-1.12.4/backends/qtcommon.py --- old/visvis-1.12.2/backends/qtcommon.py 2019-10-01 12:30:11.000000000 +0200 +++ new/visvis-1.12.4/backends/qtcommon.py 2020-05-25 15:16:26.000000000 +0200 @@ -9,6 +9,7 @@ """ import os +import ctypes import visvis from visvis import BaseFigure, events, constants @@ -19,11 +20,13 @@ qtlib_is_v2 = False if qtlib == 'pyside': from PySide import QtCore, QtGui, QtOpenGL + QtWidgets = QtGui elif qtlib == 'pyside2': from PySide2 import QtCore, QtWidgets, QtGui, QtOpenGL qtlib_is_v2 = True elif qtlib == 'pyqt4': from PyQt4 import QtCore, QtGui, QtOpenGL + QtWidgets = QtGui elif qtlib == 'pyqt5': from PyQt5 import QtCore, QtWidgets, QtGui, QtOpenGL qtlib_is_v2 = True @@ -47,6 +50,22 @@ # by redrawing on a Activate event which helps a lot) +def enable_hidpi(): + """ Enable high-res displays. + """ + try: + # See https://github.com/pyzo/pyzo/pull/700 why we seem to need both + ctypes.windll.shcore.SetProcessDpiAwareness(1) # global dpi aware + ctypes.windll.shcore.SetProcessDpiAwareness(2) # per-monitor dpi aware + except Exception: + pass # fail on non-windows + try: + QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) + except Exception: + pass # fail on older Qt's + +enable_hidpi() + KEYMAP = { QtCore.Qt.Key_Shift: constants.KEY_SHIFT, QtCore.Qt.Key_Alt: constants.KEY_ALT, @@ -108,7 +127,7 @@ # Set pixel ratio for highdpi displays try: - self.figure._devicePixelRatio = self.devicePixelRatioo() + self.figure._devicePixelRatio = float(self.devicePixelRatioF()) except Exception: self.figure._devicePixelRatio = 1.0 Binary files old/visvis-1.12.2/processing/__init__.pyc and new/visvis-1.12.4/processing/__init__.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/__init__.cpython-34.pyc and new/visvis-1.12.4/processing/__pycache__/__init__.cpython-34.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/__init__.cpython-35.pyc and new/visvis-1.12.4/processing/__pycache__/__init__.cpython-35.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/__init__.cpython-36.pyc and new/visvis-1.12.4/processing/__pycache__/__init__.cpython-36.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/__init__.cpython-37.pyc and new/visvis-1.12.4/processing/__pycache__/__init__.cpython-37.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/calculateFlatNormals.cpython-34.pyc and new/visvis-1.12.4/processing/__pycache__/calculateFlatNormals.cpython-34.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/calculateFlatNormals.cpython-35.pyc and new/visvis-1.12.4/processing/__pycache__/calculateFlatNormals.cpython-35.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/calculateFlatNormals.cpython-36.pyc and new/visvis-1.12.4/processing/__pycache__/calculateFlatNormals.cpython-36.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/calculateFlatNormals.cpython-37.pyc and new/visvis-1.12.4/processing/__pycache__/calculateFlatNormals.cpython-37.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/calculateNormals.cpython-34.pyc and new/visvis-1.12.4/processing/__pycache__/calculateNormals.cpython-34.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/calculateNormals.cpython-35.pyc and new/visvis-1.12.4/processing/__pycache__/calculateNormals.cpython-35.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/calculateNormals.cpython-36.pyc and new/visvis-1.12.4/processing/__pycache__/calculateNormals.cpython-36.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/calculateNormals.cpython-37.pyc and new/visvis-1.12.4/processing/__pycache__/calculateNormals.cpython-37.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/combineMeshes.cpython-34.pyc and new/visvis-1.12.4/processing/__pycache__/combineMeshes.cpython-34.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/combineMeshes.cpython-35.pyc and new/visvis-1.12.4/processing/__pycache__/combineMeshes.cpython-35.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/combineMeshes.cpython-36.pyc and new/visvis-1.12.4/processing/__pycache__/combineMeshes.cpython-36.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/combineMeshes.cpython-37.pyc and new/visvis-1.12.4/processing/__pycache__/combineMeshes.cpython-37.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/lineToMesh.cpython-34.pyc and new/visvis-1.12.4/processing/__pycache__/lineToMesh.cpython-34.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/lineToMesh.cpython-35.pyc and new/visvis-1.12.4/processing/__pycache__/lineToMesh.cpython-35.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/lineToMesh.cpython-36.pyc and new/visvis-1.12.4/processing/__pycache__/lineToMesh.cpython-36.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/lineToMesh.cpython-37.pyc and new/visvis-1.12.4/processing/__pycache__/lineToMesh.cpython-37.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/statistics.cpython-34.pyc and new/visvis-1.12.4/processing/__pycache__/statistics.cpython-34.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/statistics.cpython-35.pyc and new/visvis-1.12.4/processing/__pycache__/statistics.cpython-35.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/statistics.cpython-36.pyc and new/visvis-1.12.4/processing/__pycache__/statistics.cpython-36.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/statistics.cpython-37.pyc and new/visvis-1.12.4/processing/__pycache__/statistics.cpython-37.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/unwindFaces.cpython-34.pyc and new/visvis-1.12.4/processing/__pycache__/unwindFaces.cpython-34.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/unwindFaces.cpython-35.pyc and new/visvis-1.12.4/processing/__pycache__/unwindFaces.cpython-35.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/unwindFaces.cpython-36.pyc and new/visvis-1.12.4/processing/__pycache__/unwindFaces.cpython-36.pyc differ Binary files old/visvis-1.12.2/processing/__pycache__/unwindFaces.cpython-37.pyc and new/visvis-1.12.4/processing/__pycache__/unwindFaces.cpython-37.pyc differ Binary files old/visvis-1.12.2/processing/calculateFlatNormals.pyc and new/visvis-1.12.4/processing/calculateFlatNormals.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/processing/calculateNormals.py new/visvis-1.12.4/processing/calculateNormals.py --- old/visvis-1.12.2/processing/calculateNormals.py 2019-03-27 15:57:21.000000000 +0100 +++ new/visvis-1.12.4/processing/calculateNormals.py 2020-05-25 15:18:22.000000000 +0200 @@ -151,7 +151,7 @@ if np.isnan(tmp).sum(): tmp = defaultNormal normals[i,:] = -tmp - print('calculated normals in %1.2 s' % (time.time()-t0)) + print('calculated normals in %1.2f s' % (time.time()-t0)) # Store normals mesh._normals = normals Binary files old/visvis-1.12.2/processing/calculateNormals.pyc and new/visvis-1.12.4/processing/calculateNormals.pyc differ Binary files old/visvis-1.12.2/processing/combineMeshes.pyc and new/visvis-1.12.4/processing/combineMeshes.pyc differ Binary files old/visvis-1.12.2/processing/lineToMesh.pyc and new/visvis-1.12.4/processing/lineToMesh.pyc differ Binary files old/visvis-1.12.2/processing/statistics.pyc and new/visvis-1.12.4/processing/statistics.pyc differ Binary files old/visvis-1.12.2/processing/unwindFaces.pyc and new/visvis-1.12.4/processing/unwindFaces.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/setup.cfg new/visvis-1.12.4/setup.cfg --- old/visvis-1.12.2/setup.cfg 2019-03-28 14:12:21.000000000 +0100 +++ new/visvis-1.12.4/setup.cfg 2020-05-25 15:17:38.000000000 +0200 @@ -53,6 +53,7 @@ E266,E731,E128,E306,E305,I,D,T,CG, E201,E202,E303,W293,E231,E228,E125,E261,E701,E702,E227,E241,E221,E222,E713, E251,E116,E114,E262,W503,E741,W504,W605 + N max-line-length: 99 Binary files old/visvis-1.12.2/tests/__pycache__/conftest.cpython-36-PYTEST.pyc and new/visvis-1.12.4/tests/__pycache__/conftest.cpython-36-PYTEST.pyc differ Binary files old/visvis-1.12.2/tests/__pycache__/test_functions.cpython-36-PYTEST.pyc and new/visvis-1.12.4/tests/__pycache__/test_functions.cpython-36-PYTEST.pyc differ Binary files old/visvis-1.12.2/tests/__pycache__/test_import.cpython-36-PYTEST.pyc and new/visvis-1.12.4/tests/__pycache__/test_import.cpython-36-PYTEST.pyc differ Binary files old/visvis-1.12.2/tests/__pycache__/test_processing.cpython-36-PYTEST.pyc and new/visvis-1.12.4/tests/__pycache__/test_processing.cpython-36-PYTEST.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/tests/conftest.py new/visvis-1.12.4/tests/conftest.py --- old/visvis-1.12.2/tests/conftest.py 1970-01-01 01:00:00.000000000 +0100 +++ new/visvis-1.12.4/tests/conftest.py 2017-06-01 02:05:28.000000000 +0200 @@ -0,0 +1,8 @@ +import os +import sys +import pytest + [email protected](scope="session", autouse=True) +def execute_before_any_test(): + if os.getenv('TEST_INSTALL') not in ('1', 'true'): + sys.path.insert(0, '..') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/tests/test_functions.py new/visvis-1.12.4/tests/test_functions.py --- old/visvis-1.12.2/tests/test_functions.py 1970-01-01 01:00:00.000000000 +0100 +++ new/visvis-1.12.4/tests/test_functions.py 2020-05-25 15:41:38.000000000 +0200 @@ -0,0 +1,15 @@ +import os + + +def test_im_read_write(): + import visvis as vv + im = vv.imread('astronaut.png') + assert im.shape == (512, 512, 3) + vv.imwrite(os.path.expanduser('~/astronaut2.png'), im) + + +def test_mesh_read_write(): + import visvis as vv + m = vv.meshRead('bunny.ssdf') + assert isinstance(m, vv.BaseMesh) + vv.meshWrite(os.path.expanduser('~/bunny2.stl'), m) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/tests/test_import.py new/visvis-1.12.4/tests/test_import.py --- old/visvis-1.12.2/tests/test_import.py 1970-01-01 01:00:00.000000000 +0100 +++ new/visvis-1.12.4/tests/test_import.py 2017-06-01 02:05:28.000000000 +0200 @@ -0,0 +1,12 @@ + +def test_visvis_import(): + import visvis as vv + import visvis.vvio + + assert vv + assert vv.vvio + assert vv.imread + assert vv.imshow + assert vv.plot + assert vv.Slider + assert vv.Axes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/tests/test_processing.py new/visvis-1.12.4/tests/test_processing.py --- old/visvis-1.12.2/tests/test_processing.py 1970-01-01 01:00:00.000000000 +0100 +++ new/visvis-1.12.4/tests/test_processing.py 2017-06-01 02:05:28.000000000 +0200 @@ -0,0 +1,113 @@ + + +def test_line2mesh(): + import visvis as vv + + pp = vv.Pointset(3) + pp.append((1, 2, 3)) + pp.append((3, 1, 5)) + pp.append((4, 4, 7)) + pp.append((6, 7, 9)) + + m = vv.processing.lineToMesh(pp, 3, 10) + assert isinstance(m, vv.BaseMesh) + + +def test_unwindfaces(): + import visvis as vv + + pp = vv.Pointset(3) + pp.append((1, 2, 3)) + pp.append((3, 1, 5)) + pp.append((4, 4, 7)) + pp.append((6, 7, 9)) + m = vv.BaseMesh(pp, faces=[0, 1, 2, 0, 2, 3]) + + assert m._faces is not None + assert m._vertices.shape == (4, 3) + + vv.processing.unwindFaces(m) + + assert m._faces is None + assert m._vertices.shape == (6, 3) + assert tuple(m._vertices[0]) == tuple(pp[0]) + assert tuple(m._vertices[1]) == tuple(pp[1]) + assert tuple(m._vertices[2]) == tuple(pp[2]) + assert tuple(m._vertices[3]) == tuple(pp[0]) + assert tuple(m._vertices[4]) == tuple(pp[2]) + assert tuple(m._vertices[5]) == tuple(pp[3]) + + +def test_combine_meshes(): + import visvis as vv + + pp = vv.Pointset(3) + pp.append((1, 2, 3)) + pp.append((3, 1, 5)) + pp.append((4, 4, 7)) + pp.append((6, 7, 9)) + m = vv.BaseMesh(pp, faces=[0, 1, 2, 0, 2, 3]) + + assert m._vertices.shape == (4, 3) + + m2 = vv.processing.combineMeshes([m, m, m]) + assert m2 is not m + + assert m2._vertices.shape == (12, 3) + + +def test_calculate_normals(): + import visvis as vv + + pp = vv.Pointset(3) + pp.append((1, 2, 3)) + pp.append((3, 1, 5)) + pp.append((4, 4, 7)) + pp.append((6, 7, 9)) + m = vv.BaseMesh(pp, faces=[0, 1, 2, 0, 2, 3]) + + assert m._normals is None + + vv.processing.calculateNormals(m) + normals1 = m._normals + + assert m._normals is not None + assert m._normals.shape == (4, 3) + + vv.processing.calculateFlatNormals(m) + normals2 = m._normals + + assert m._normals is not None + assert m._normals.shape == (6, 3) + + assert normals1 is not normals2 + assert normals1.shape != normals2.shape # because faces have been unwound + + +def test_statistics(): + import numpy as np + import visvis as vv + + data = np.array([-0.213, 0.282, -0.382, -1.409, -0.477, -1.233, -1.465, + -0.686, 1.246, 0.566, 0.786, -1.231, -0.587, 1.552, + 0.359, 0.353, 0.052, 1.718, 0.291, -0.093]) + + d = vv.processing.statistics(data) + + assert d.size == 20 + assert d.std > 0.9 and d.std < 1.1 + assert d.mean > -0.1 and d.mean < +0.1 + + assert d.dmin + assert d.dmax + assert d.drange + assert d.median + assert d.Q1 + assert d.Q2 + assert d.Q3 + assert d.IQR + + assert d.histogram_np() + assert d.percentile(0.7) + assert d.histogram() + assert d.kde() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/text/text_freetype.py new/visvis-1.12.4/text/text_freetype.py --- old/visvis-1.12.2/text/text_freetype.py 2017-06-01 02:05:28.000000000 +0200 +++ new/visvis-1.12.4/text/text_freetype.py 2020-05-25 13:04:03.000000000 +0200 @@ -49,42 +49,7 @@ # todo: have pyzo ship freeType lib on Windows and use that if possible. # todo: When we implement full screen antialiasing, we can remove the shader here -FRAGMENT_SHADER_ = """ -// Uniforms obtained from OpenGL - uniform sampler2D texture; // The 3D texture - uniform vec2 shape; // And its shape (as in OpenGl) - - void main() - { - // Get centre location - vec2 pos = gl_TexCoord[0].xy; - - // Init value - vec4 color1 = vec4(0.0, 0.0, 0.0, 0.0); - - // Init kernel and number of steps - vec4 kernel = vec4 (0.2, 0.2, 0.1 , 0.1); - //vec4 kernel = vec4 (0.3, 0.2, 0.1 , 0.0); - int sze = 3; - - // Init step size in tex coords - float dx = 1.0/shape.x; - float dy = 1.0/shape.y; - - // Convolve - for (int y=-sze; y<sze+1; y++) - { - for (int x=-sze; x<sze+1; x++) - { - float k = kernel[int(abs(float(x)))] * kernel[int(abs(float(y)))]; - vec2 dpos = vec2(float(x)*dx, float(y)*dy); - color1 += texture2D(texture, pos+dpos) * k; - } - } - gl_FragColor = color1 * gl_Color; - - } -""" + FRAGMENT_SHADER = """ // Uniforms obtained from OpenGL uniform sampler2D texture; // The 3D texture @@ -105,23 +70,22 @@ float dx = 1.0/shape.x; float dy = 1.0/shape.y; - vec4 color1 = vec4(0.0, 0.0, 0.0, 0.0); + float alpha = 0.0; - color1 += texture2D(texture, pos+vec2(-dx,-dy) ) * k1 * k1; - color1 += texture2D(texture, pos+vec2(-dx,0.0) ) * k1 * k0; - color1 += texture2D(texture, pos+vec2(-dx,+dy) ) * k1 * k1; - - color1 += texture2D(texture, pos+vec2(0.0,-dy) ) * k0 * k1; - color1 += texture2D(texture, pos+vec2(0.0,0.0) ) * k0 * k0; - color1 += texture2D(texture, pos+vec2(0.0,+dy) ) * k0 * k1; - - color1 += texture2D(texture, pos+vec2(+dx,-dy) ) * k1 * k1; - color1 += texture2D(texture, pos+vec2(+dx,0.0) ) * k1 * k0; - color1 += texture2D(texture, pos+vec2(+dx,+dy) ) * k1 * k1; + alpha += texture2D(texture, pos+vec2(-dx,-dy) ).a * k1 * k1; + alpha += texture2D(texture, pos+vec2(-dx,0.0) ).a * k1 * k0; + alpha += texture2D(texture, pos+vec2(-dx,+dy) ).a * k1 * k1; + + alpha += texture2D(texture, pos+vec2(0.0,-dy) ).a * k0 * k1; + alpha += texture2D(texture, pos+vec2(0.0,0.0) ).a * k0 * k0; + alpha += texture2D(texture, pos+vec2(0.0,+dy) ).a * k0 * k1; + + alpha += texture2D(texture, pos+vec2(+dx,-dy) ).a * k1 * k1; + alpha += texture2D(texture, pos+vec2(+dx,0.0) ).a * k1 * k0; + alpha += texture2D(texture, pos+vec2(+dx,+dy) ).a * k1 * k1; // Set final color - gl_FragColor = color1 * gl_Color; - + gl_FragColor = vec4(gl_Color.rgb, alpha); } """ Binary files old/visvis-1.12.2/utils/__init__.pyc and new/visvis-1.12.4/utils/__init__.pyc differ Binary files old/visvis-1.12.2/utils/__pycache__/__init__.cpython-34.pyc and new/visvis-1.12.4/utils/__pycache__/__init__.cpython-34.pyc differ Binary files old/visvis-1.12.2/utils/__pycache__/__init__.cpython-35.pyc and new/visvis-1.12.4/utils/__pycache__/__init__.cpython-35.pyc differ Binary files old/visvis-1.12.2/utils/__pycache__/__init__.cpython-36.pyc and new/visvis-1.12.4/utils/__pycache__/__init__.cpython-36.pyc differ Binary files old/visvis-1.12.2/utils/__pycache__/__init__.cpython-37.pyc and new/visvis-1.12.4/utils/__pycache__/__init__.cpython-37.pyc differ Binary files old/visvis-1.12.2/utils/__pycache__/pypoints.cpython-34.pyc and new/visvis-1.12.4/utils/__pycache__/pypoints.cpython-34.pyc differ Binary files old/visvis-1.12.2/utils/__pycache__/pypoints.cpython-35.pyc and new/visvis-1.12.4/utils/__pycache__/pypoints.cpython-35.pyc differ Binary files old/visvis-1.12.2/utils/__pycache__/pypoints.cpython-36.pyc and new/visvis-1.12.4/utils/__pycache__/pypoints.cpython-36.pyc differ Binary files old/visvis-1.12.2/utils/__pycache__/pypoints.cpython-37.pyc and new/visvis-1.12.4/utils/__pycache__/pypoints.cpython-37.pyc differ Binary files old/visvis-1.12.2/utils/iso/__pycache__/__init__.cpython-36.pyc and new/visvis-1.12.4/utils/iso/__pycache__/__init__.cpython-36.pyc differ Binary files old/visvis-1.12.2/utils/pypoints.pyc and new/visvis-1.12.4/utils/pypoints.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__init__.pyc and new/visvis-1.12.4/utils/ssdf/__init__.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/__init__.cpython-34.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/__init__.cpython-34.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/__init__.cpython-35.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/__init__.cpython-35.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/__init__.cpython-36.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/__init__.cpython-36.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/__init__.cpython-37.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/__init__.cpython-37.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/classmanager.cpython-34.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/classmanager.cpython-34.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/classmanager.cpython-35.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/classmanager.cpython-35.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/classmanager.cpython-36.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/classmanager.cpython-36.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/classmanager.cpython-37.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/classmanager.cpython-37.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_base.cpython-34.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_base.cpython-34.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_base.cpython-35.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_base.cpython-35.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_base.cpython-36.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_base.cpython-36.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_base.cpython-37.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_base.cpython-37.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_bin.cpython-34.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_bin.cpython-34.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_bin.cpython-35.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_bin.cpython-35.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_bin.cpython-36.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_bin.cpython-36.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_bin.cpython-37.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_bin.cpython-37.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_text.cpython-34.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_text.cpython-34.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_text.cpython-35.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_text.cpython-35.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_text.cpython-36.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_text.cpython-36.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/__pycache__/ssdf_text.cpython-37.pyc and new/visvis-1.12.4/utils/ssdf/__pycache__/ssdf_text.cpython-37.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/classmanager.pyc and new/visvis-1.12.4/utils/ssdf/classmanager.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/ssdf_base.pyc and new/visvis-1.12.4/utils/ssdf/ssdf_base.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/ssdf_bin.pyc and new/visvis-1.12.4/utils/ssdf/ssdf_bin.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/ssdf_text.pyc and new/visvis-1.12.4/utils/ssdf/ssdf_text.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/tests/__pycache__/test_random.cpython-36-PYTEST.pyc and new/visvis-1.12.4/utils/ssdf/tests/__pycache__/test_random.cpython-36-PYTEST.pyc differ Binary files old/visvis-1.12.2/utils/ssdf/tests/__pycache__/test_simple.cpython-36-PYTEST.pyc and new/visvis-1.12.4/utils/ssdf/tests/__pycache__/test_simple.cpython-36-PYTEST.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/utils/ssdf/tests/test1.ssdf new/visvis-1.12.4/utils/ssdf/tests/test1.ssdf --- old/visvis-1.12.2/utils/ssdf/tests/test1.ssdf 1970-01-01 01:00:00.000000000 +0100 +++ new/visvis-1.12.4/utils/ssdf/tests/test1.ssdf 2016-03-22 09:56:47.000000000 +0100 @@ -0,0 +1,38 @@ +# This thest file contains all the seven data types supported by SSDF +# and contains some challanging versions of strings. +# Furthermore, it contains a dictionary with invalid syntax, which should +# produce warnings, but not kill the reader. + +integer1 = 2 # this is an integer +float1 = 3.0 # and this a float +string1 = '' # empty string +string2 = 'more "complex" string that\'s got \ntwo lines and a single backslash here >> \ <<' +string3 = 'double backslash should \\not trigger newline in front of an "n" \\' # and before a quote, should still end that string +nullvalue1 = Null +nullvalue2 = None +array1 = array 3x2 float32 1,2,3,4,5,6 +array2 = array 640x480x3 uint8 eJztzgEJAAAMA6C9f+nHGAxNYAIAAAAw4doBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWPQQvQAC +noteOnArray2 = 'array2 is all zeros with a 1 at array2[3,2,1] (starting from 0, so [4,3,2] in Matlab)' +smalList = [1, 2.0, 3, 'foo', ''] # Lists with only floats, ints and strings can be written on one line +more = dict: + foo = 4.2 + bar = 'foobar' + +largeList = list: + 4 + 5.0 + 'the last two elements in this list are an empty dict and empty list' + dict: + list: + +# The following dict contains problems +problems = dict: + crap1 = this cannot be parsed and should produce an error + crap2 = "neither can this" + # an empty line can be seen as Null + novalue = + invalidIndent = 'a child of non-container element' + listwithnames = list: + foo = 8.1 + dictwithnonames = dict: + 8.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/utils/ssdf/tests/test2.ssdf new/visvis-1.12.4/utils/ssdf/tests/test2.ssdf --- old/visvis-1.12.2/utils/ssdf/tests/test2.ssdf 1970-01-01 01:00:00.000000000 +0100 +++ new/visvis-1.12.4/utils/ssdf/tests/test2.ssdf 2016-03-22 09:56:47.000000000 +0100 @@ -0,0 +1,29 @@ +# SSDF supports 7 datatypes + +# 1: float scalars +a_float = 4.0 + +# 2: integer scalars +an_int = 3 + +# 3: Unicode strings3 +a_string = 'SSDF is easy as py' + +# 4: Lists are container elements (and can in turn contain lists or dictionaries) +more_info = list: + 'As in Python, structure is implemented through indentation,' + 'and a colon behind the container element.' + 5 + 'as you can see, elements in a list have no name' + +# 5: A dictionary is a container too +a_dict = dict: + # lists with only floats, ints and strings can be on a single line + another_list = [1.0, 2, 'foo', 'bar'] + +# 6: arrays - SSDF supports readable as well as binary (compressed) arrays. +a_small_array = array 2x3 int32 1, 2, 3, 4, 5, 6 +an_array_with_all_zeros = array 32x32 float32 eJztwQENAAAAwqD3T20PBxQAAADwbhAAAAE= + +# 7: ... +nothing = None # or Null diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/utils/ssdf/tests/test_random.py new/visvis-1.12.4/utils/ssdf/tests/test_random.py --- old/visvis-1.12.2/utils/ssdf/tests/test_random.py 1970-01-01 01:00:00.000000000 +0100 +++ new/visvis-1.12.4/utils/ssdf/tests/test_random.py 2017-06-01 02:05:28.000000000 +0200 @@ -0,0 +1,387 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2011, Almar Klein +# +# SSDF is distributed under the terms of the (new) BSD License. +# See http://www.opensource.org/licenses/bsd-license.php + +""" Script test_random + +Create random ssdf structs, serialize these, read back, and test if +they represent the same data. + +""" +import os +import time +import sys +import random +import string +import numpy as np + +import ssdf + + +# From six.py +PY3 = sys.version_info[0] == 3 +if PY3: + string_types = str, + text_type = str + binary_type = bytes + ascii_type = str # Simple string + unichr = chr + xrange = range +else: + string_types = basestring, + text_type = unicode + binary_type = str + ascii_type = str # Simple string + + +# Get homedir +homedir = '/home/almar/' +if not os.path.isdir(homedir): + homedir = 'c:/almar/' + +# Get printabel chars, add some Unicode characters +CHARS = string.printable + (unichr(169) + unichr(181) + unichr(202) + + unichr(1220) + unichr(1138) + unichr(1297)) +NAMECHARS = str('abcdefghijklmnopqrstuvwxyz_0123456789') + +class Generator: + def random_object(self, level): + if level>0: + id = random.randrange(7) + 1 + else: + id = random.randrange(5) + 1 + + if id == 1: + return None + elif id == 2: + return self.random_int() + elif id == 3: + return self.random_float() + elif id == 4: + return self.random_string() + elif id == 5: + return self.random_array() + elif level>0 and id == 6: + return self.random_list(level) + elif level>0 and id == 7: + return self.random_struct(level) + + def random_int(self): + return random.randint(-2**62, 2**62) + + def random_float(self): + return (random.random()-0.5 ) * 10000 + + def random_string(self, maxn=16): + n = random.randrange(0, maxn) + return ''.join(random.sample(CHARS,n)) + + def random_array(self, maxn=16): + # Get array properties + ndim = random.randrange(0, 4) + shape = random.sample(xrange(maxn), ndim) + dtype = random.choice([key for key in ssdf.ssdf_text._DTYPES.keys()]) + # Create array + if 'int' in dtype: + return np.random.random_integers(0,100, shape).astype(dtype) + else: + return np.random.random_sample(shape).astype(dtype) + + def random_struct(self, level, maxn=16): + level -= 1 + # Create struct and amount of elements + s = ssdf.new() + n = random.randrange(0, maxn) + # Fill + for i in range(n): + # Get name + n = random.randrange(0, maxn) + name = random.choice(NAMECHARS[:-10]) + name += ''.join(random.sample(NAMECHARS,n)) + if name.startswith('__'): + name = 'x' + name + # Get value + s[name] = self.random_object(level) + if random.random() > 0.5: + return s + else: + return s.__dict__ + + def random_list(self, level, maxn=16): + level -= 1 + # Create list and amount of elements + items = [] + n = random.randrange(0, maxn) + # Fill + for i in range(n): + # Get value + items.append( self.random_object(level) ) + if random.random() > 0.5: + return items + else: + return tuple(items) + + + @classmethod + def create_struct(cls, level=8): + gen = cls() + return gen.random_struct(level) + + +def compare(ob1, ob2, verbose=True): + """ compare(ob1, ob2, verbose=True) + + Compare two (ssdf-compatible) objects. If verbose is True (the default) + and the objects are not equal, a message is printed indicating the + first found inequality. + + """ + not_equal = ssdf.ssdf_base._not_equal(ob1, ob2) + if verbose and not_equal: + print(not_equal) + return not not_equal + + +class Tester: + def __init__(self): + self._tests = [] + self._stop = False + self._s = None + + def enable_np(self): + ssdf.np = np + def disable_np(self): + ssdf.np = None + + def run(self, amount=100000): + self._stop = False + t0 = time.time() + maxtests = amount + + while len(self._tests) < maxtests and not self._stop: + + # Create struct + s = Generator.create_struct() + n = ssdf.count(s) + self._s = s + + # times + times = [] + sizes = [] + + # Test text + t1 = time.time() + text = ssdf.saves(s) + times.append(time.time()-t1) + # + t1 = time.time() + s2 = ssdf.loads(text) + times.append(time.time()-t1) + # + if not compare(s, s2): + print('Test text failed after %i iterations.' % len(self._tests)) + break + + # Test binary + t1 = time.time() + bb = ssdf.saveb(s) + times.append(time.time()-t1) + # + t1 = time.time() + s2 = ssdf.loadb(bb) + times.append(time.time()-t1) + # + if not compare(s, s2): + print('Test bin failed after %i iterations.' % len(self._tests)) + break + + # Test text file + fname = homedir+'projects/ssdftest.ssdf' + t1 = time.time() + ssdf.save(fname, s) + times.append(time.time()-t1) + # + t1 = time.time() + s2 = ssdf.load(fname) + times.append(time.time()-t1) + sizes.append(os.stat(fname).st_size) + # + if not compare(s, s2): + print('Test text-file failed after %i iterations.' % len(self._tests)) + break + + # Test binary file + fname = homedir+'projects/ssdftest.bsdf' + t1 = time.time() + ssdf.save(fname, s) + times.append(time.time()-t1) + # + t1 = time.time() + s2 = ssdf.load(fname) + times.append(time.time()-t1) + sizes.append(os.stat(fname).st_size) + # + if not compare(s, s2): + print('Test bin-file failed after %i iterations.' % len(self._tests)) + break + + # Success + self._tests.append( (n, times, sizes) ) + print('%i tests successfull' % len(self._tests)) + time.sleep(0.001) + + + def test_numpy(self, amount=10): + + + + for iter in range(amount): + + # Random struct + s = Generator.create_struct() + self._s = s + + # Text with numpy on writing + self.enable_np() + text = ssdf.saves(s) + # + self.disable_np() + s2 = ssdf.loads(text) + text = ssdf.saves(s2) + # + self.enable_np() + s3 = ssdf.loads(text) +# if not compare(s, s2): +# print('Test text failed after %i iterations.' % iter) +# break + if not compare(s, s3): + print('Test text failed after %i iterations.' % iter) + break + + # Binary with numpy on writing + self.enable_np() + bb = ssdf.saveb(s) + # + self.disable_np() + s2 = ssdf.loadb(bb) + bb = ssdf.saveb(s2) + # + self.enable_np() + s3 = ssdf.loadb(bb) +# if not compare(s, s2): +# print('Test bin failed after %i iterations.' % iter) +# break + if not compare(s, s3): + print('Test bin failed after %i iterations.' % iter) + break + + print('%i tests successfull' % iter) + time.sleep(0.001) + +# # Text with numpy on writing +# self.disable_np() +# s = Generator.create_struct() +# text = ssdf.saves(s) +# # +# self.enable_np() +# s2 = ssdf.loads(text) +# text = ssdf.saves(s2) +# # +# self.disable_np() +# s3 = ssdf.loads(text) +# if not compare(s, s3): +# print('Test text failed after %i iterations.' % iter) +# break +# +# # Binary with numpy on writing +# self.disable_np() +# s = Generator.create_struct() +# bb = ssdf.saveb(s) +# # +# self.enable_np() +# s2 = ssdf.loadb(bb) +# bb = ssdf.saveb(s2) +# # +# self.disable_np() +# s3 = ssdf.loadb(bb) +# if not compare(s, s3): +# print('Test bin failed after %i iterations.' % iter) +# break + + # Finish + self.enable_np() + + +def find(s, name): + """ To find an object with a certain name. + """ + for n in s: + if ssdf.isstruct(s): + v = s[n] + else: + v = n + n = None + + res = None + if n == name: + return v + elif ssdf.isstruct(v) or isinstance(v, dict): + res = find(v, name) + elif isinstance(v, (list, tuple)): + res = find(v, name) + elif n: + print(n) + if res: + return res + + +def show(self): + + import visvis as vv + + # If there are many tests, make a selection + if len(self._tests) > 1000: + tests = random.sample(self._tests, 1000) + else: + tests = self._tests + + # Get ticks + nn = [test[0] for test in tests] + + # Create figure + vv.figure(1) + vv.clf() + + # Prepare kwargs + plotKwargsText = {'ms':'.', 'mc':'b', 'mw':5, 'ls':''} + plotKwargsBin = {'ms':'.', 'mc':'r', 'mw':5, 'ls':''} + + # File size against number of elements + vv.subplot(221) + vv.plot(nn, [test[2][0] for test in tests], **plotKwargsText) + vv.plot(nn, [test[2][1] for test in tests], **plotKwargsBin) + vv.legend('text', 'binary') + vv.title('File size') + + # Speed against number of elements + vv.subplot(223) + vv.plot(nn, [test[1][4] for test in tests], **plotKwargsText) + vv.plot(nn, [test[1][6] for test in tests], **plotKwargsBin) + vv.legend('text', 'binary') + vv.title('Save time') + + # Speed (file) against number of elements + vv.subplot(224) + vv.plot(nn, [test[1][5] for test in tests], **plotKwargsText) + vv.plot(nn, [test[1][7] for test in tests], **plotKwargsBin) + vv.legend('text', 'binary') + vv.title('Load time') + + + +if __name__ == '__main__': + # Instantiate tester + tester = Tester() + tester.run() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/utils/ssdf/tests/test_simple.py new/visvis-1.12.4/utils/ssdf/tests/test_simple.py --- old/visvis-1.12.2/utils/ssdf/tests/test_simple.py 1970-01-01 01:00:00.000000000 +0100 +++ new/visvis-1.12.4/utils/ssdf/tests/test_simple.py 2017-06-01 02:05:28.000000000 +0200 @@ -0,0 +1,11 @@ +import ssdf + +# Load from file +s1 = ssdf.load('test1.ssdf') + +# Write to string and read back +tmp = ssdf.saves(s1) +s2 = ssdf.loads(tmp) + +# Print, manually inspection required to see whether it matches the test file +print(s2) Binary files old/visvis-1.12.2/vvio/__pycache__/__init__.cpython-35.pyc and new/visvis-1.12.4/vvio/__pycache__/__init__.cpython-35.pyc differ Binary files old/visvis-1.12.2/vvio/__pycache__/__init__.cpython-36.pyc and new/visvis-1.12.4/vvio/__pycache__/__init__.cpython-36.pyc differ Binary files old/visvis-1.12.2/vvio/__pycache__/stl.cpython-35.pyc and new/visvis-1.12.4/vvio/__pycache__/stl.cpython-35.pyc differ Binary files old/visvis-1.12.2/vvio/__pycache__/stl.cpython-36.pyc and new/visvis-1.12.4/vvio/__pycache__/stl.cpython-36.pyc differ Binary files old/visvis-1.12.2/vvio/__pycache__/wavefront.cpython-35.pyc and new/visvis-1.12.4/vvio/__pycache__/wavefront.cpython-35.pyc differ Binary files old/visvis-1.12.2/vvio/__pycache__/wavefront.cpython-36.pyc and new/visvis-1.12.4/vvio/__pycache__/wavefront.cpython-36.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/visvis-1.12.2/vvmovie/README.md new/visvis-1.12.4/vvmovie/README.md --- old/visvis-1.12.2/vvmovie/README.md 1970-01-01 01:00:00.000000000 +0100 +++ new/visvis-1.12.4/vvmovie/README.md 2017-05-26 02:34:58.000000000 +0200 @@ -0,0 +1 @@ +THIS CODE IS DEPRECATED; USE IMAGEIO INSTEAD. \ No newline at end of file Binary files old/visvis-1.12.2/vvmovie/__init__.pyc and new/visvis-1.12.4/vvmovie/__init__.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/__init__.cpython-34.pyc and new/visvis-1.12.4/vvmovie/__pycache__/__init__.cpython-34.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/__init__.cpython-35.pyc and new/visvis-1.12.4/vvmovie/__pycache__/__init__.cpython-35.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/__init__.cpython-36.pyc and new/visvis-1.12.4/vvmovie/__pycache__/__init__.cpython-36.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2avi.cpython-34.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2avi.cpython-34.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2avi.cpython-35.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2avi.cpython-35.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2avi.cpython-36.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2avi.cpython-36.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2gif.cpython-34.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2gif.cpython-34.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2gif.cpython-35.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2gif.cpython-35.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2gif.cpython-36.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2gif.cpython-36.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2ims.cpython-34.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2ims.cpython-34.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2ims.cpython-35.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2ims.cpython-35.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2ims.cpython-36.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2ims.cpython-36.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2swf.cpython-34.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2swf.cpython-34.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2swf.cpython-35.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2swf.cpython-35.pyc differ Binary files old/visvis-1.12.2/vvmovie/__pycache__/images2swf.cpython-36.pyc and new/visvis-1.12.4/vvmovie/__pycache__/images2swf.cpython-36.pyc differ Binary files old/visvis-1.12.2/vvmovie/images2avi.pyc and new/visvis-1.12.4/vvmovie/images2avi.pyc differ Binary files old/visvis-1.12.2/vvmovie/images2gif.pyc and new/visvis-1.12.4/vvmovie/images2gif.pyc differ Binary files old/visvis-1.12.2/vvmovie/images2ims.pyc and new/visvis-1.12.4/vvmovie/images2ims.pyc differ Binary files old/visvis-1.12.2/vvmovie/images2swf.pyc and new/visvis-1.12.4/vvmovie/images2swf.pyc differ
