Hello community,

here is the log from the commit of package python-control for openSUSE:Factory 
checked in at 2020-01-18 12:18:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-control (Old)
 and      /work/SRC/openSUSE:Factory/.python-control.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-control"

Sat Jan 18 12:18:30 2020 rev:3 rq:765399 version:0.8.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-control/python-control.changes    
2019-12-04 14:20:23.994439139 +0100
+++ /work/SRC/openSUSE:Factory/.python-control.new.26092/python-control.changes 
2020-01-18 12:19:11.859173226 +0100
@@ -1,0 +2,17 @@
+Sat Jan 18 01:18:39 UTC 2020 - Benjamin Greiner <[email protected]>
+
+- update to version 0.8.3
+- remove patches that were merged upstream:
+    python-control-fixtestaugw.patch
+    python-control-pr317.patch
+    python-control-pr345.patch
+- pr365-copy-PR-320-for-robust_array_test.patch
+  upstream PR#365 the former fixtestaugw patch for the new
+  duplicated array test  
+- pr366-ease-precision-tolerance.patch
+  upstream PR#366 to pass the checks on more architectures
+- remove Python 2 package
+- run all tests in xvfb env and prealloc differently for i586
+  architecture
+  
+-------------------------------------------------------------------

Old:
----
  control-0.8.2.tar.gz
  python-control-fixtestaugw.patch
  python-control-pr317.patch
  python-control-pr345.patch

New:
----
  _service
  control-0.8.3.tar.gz
  pr365-copy-PR-320-for-robust_array_test.patch
  pr366-ease-precision-tolerance.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-control.spec ++++++
--- /var/tmp/diff_new_pack.aPiV8w/_old  2020-01-18 12:19:12.719173688 +0100
+++ /var/tmp/diff_new_pack.aPiV8w/_new  2020-01-18 12:19:12.723173689 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-control
 #
-# Copyright (c) 2019 SUSE LLC
+# 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
@@ -17,16 +17,16 @@
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%define skip_python2 1
 Name:           python-control
-Version:        0.8.2
+Version:        0.8.3
 Release:        0
 Summary:        Python control systems library
 License:        BSD-3-Clause
 URL:            http://python-control.sourceforge.net
 Source:         
https://files.pythonhosted.org/packages/source/c/control/control-%{version}.tar.gz
-Patch0:         python-control-fixtestaugw.patch
-Patch1:         python-control-pr317.patch
-Patch2:         python-control-pr345.patch
+Patch0:         pr365-copy-PR-320-for-robust_array_test.patch
+Patch1:         pr366-ease-precision-tolerance.patch
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
@@ -37,12 +37,11 @@
 # SECTION test requirements
 BuildRequires:  %{python_module matplotlib-qt5}
 BuildRequires:  %{python_module matplotlib}
-BuildRequires:  %{python_module nose-exclude}
 BuildRequires:  %{python_module nose}
 BuildRequires:  %{python_module numpy}
 BuildRequires:  %{python_module scipy}
 BuildRequires:  %{python_module slycot}
-BuildRequires:  libtcmalloc4
+BuildRequires:  libjemalloc2
 BuildRequires:  xvfb-run
 # /SECTION
 %python_subpackages
@@ -55,7 +54,6 @@
 %setup -q -n control-%{version}
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
 
 %build
 %python_build
@@ -66,21 +64,15 @@
 
 %check
 # The default Agg backend does not define the toolbar attribute in the Figure
-# Manager used by some tests, so we run those tests with the Qt5 backend in a
+# Manager used by some tests, so we run the tests with the Qt5 backend in a
 # virtual X server environment
 %if %{_arch} == i386
-    export LD_PRELOAD="%{_libdir}/libtcmalloc_minimal.so.4"
+    # preload malloc library to avoid free() error on i586 architecture
+    export LD_PRELOAD="%{_libdir}/libjemalloc.so.2"
 %endif
 %{python_expand export PYTHONPATH=%{buildroot}%{$python_sitelib}
-export MPLBACKEND="Agg"
-nosetests-%$python_bin_suffix \
-    --exclude-test control.tests.sisotool_test \
-    --exclude-test control.tests.rlocus_test
 export MPLBACKEND="Qt5Agg"
-export LD_PRELOAD="%{_libdir}/libtcmalloc_minimal.so.4"
-xvfb-run -a nosetests-%$python_bin_suffix \
-    control.tests.sisotool_test \
-    control.tests.rlocus_test
+xvfb-run -a $python setup.py test 
 }
 
 %files %{python_files}

++++++ _service ++++++
<services>
  <service name="download_files" mode="disabled" />
</services>
++++++ control-0.8.2.tar.gz -> control-0.8.3.tar.gz ++++++
++++ 15087 lines of diff (skipped)

++++++ pr365-copy-PR-320-for-robust_array_test.patch ++++++
>From b4b3d10c1ab5ef1bbf4d992f045408f6f6e88de7 Mon Sep 17 00:00:00 2001
From: Benjamin Greiner <[email protected]>
Date: Sat, 4 Jan 2020 22:30:42 -0800
Subject: [PATCH] copy PR 320 for robust_array_test

---
 control/tests/robust_array_test.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/control/tests/robust_array_test.py 
b/control/tests/robust_array_test.py
index 51114f87..62cf8c6c 100644
--- a/control/tests/robust_array_test.py
+++ b/control/tests/robust_array_test.py
@@ -261,7 +261,7 @@ def testMimoW3(self):
     @unittest.skipIf(not slycot_check(), "slycot not installed")
     def testMimoW123(self):
         """MIMO plant with all weights"""
-        from control import augw, ss, append
+        from control import augw, ss, append, minreal
         g = ss([[-1., -2], [-3, -4]],
                [[1., 0.], [0., 1.]],
                [[1., 0.], [0., 1.]],
@@ -311,10 +311,10 @@ def testMimoW123(self):
         self.siso_almost_equal(w2[1, 1], p[3, 3])
         # u->z3 should be w3*g
         w3g = w3 * g;
-        self.siso_almost_equal(w3g[0, 0], p[4, 2])
-        self.siso_almost_equal(w3g[0, 1], p[4, 3])
-        self.siso_almost_equal(w3g[1, 0], p[5, 2])
-        self.siso_almost_equal(w3g[1, 1], p[5, 3])
+        self.siso_almost_equal(w3g[0, 0], minreal(p[4, 2]))
+        self.siso_almost_equal(w3g[0, 1], minreal(p[4, 3]))
+        self.siso_almost_equal(w3g[1, 0], minreal(p[5, 2]))
+        self.siso_almost_equal(w3g[1, 1], minreal(p[5, 3]))
         # u->v should be -g
         self.siso_almost_equal(-g[0, 0], p[6, 2])
         self.siso_almost_equal(-g[0, 1], p[6, 3])
++++++ pr366-ease-precision-tolerance.patch ++++++
>From f4915eb44c45b17a9ac271e7acec58470243b5fa Mon Sep 17 00:00:00 2001
From: Benjamin Greiner <[email protected]>
Date: Mon, 6 Jan 2020 12:19:56 -0800
Subject: [PATCH] ease precision tolerenace for iosys tests

---
 control/tests/iosys_test.py | 42 ++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py
index aaf2243c..9fdac09c 100644
--- a/control/tests/iosys_test.py
+++ b/control/tests/iosys_test.py
@@ -60,7 +60,7 @@ def test_linear_iosys(self):
         lti_t, lti_y, lti_x = ct.forced_response(linsys, T, U, X0)
         ios_t, ios_y = ios.input_output_response(iosys, T, U, X0)
         np.testing.assert_array_almost_equal(lti_t, ios_t)
-        np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=3)
+        np.testing.assert_allclose(lti_y, ios_y,atol=0.002,rtol=0.)
 
     @unittest.skipIf(StrictVersion(sp.__version__) < "1.0",
                      "requires SciPy 1.0 or greater")
@@ -75,7 +75,7 @@ def test_tf2io(self):
         lti_t, lti_y, lti_x = ct.forced_response(linsys, T, U, X0)
         ios_t, ios_y = ios.input_output_response(iosys, T, U, X0)
         np.testing.assert_array_almost_equal(lti_t, ios_t)
-        np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=3)
+        np.testing.assert_allclose(lti_y, ios_y,atol=0.002,rtol=0.)
 
     def test_ss2io(self):
         # Create an input/output system from the linear system
@@ -161,7 +161,7 @@ def test_nonlinear_iosys(self):
         lti_t, lti_y, lti_x = ct.forced_response(linsys, T, U, X0)
         ios_t, ios_y = ios.input_output_response(nlsys, T, U, X0)
         np.testing.assert_array_almost_equal(lti_t, ios_t)
-        np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=3)
+        np.testing.assert_allclose(lti_y, ios_y,atol=0.002,rtol=0.)
 
     def test_linearize(self):
         # Create a single input/single output linear system
@@ -214,7 +214,7 @@ def test_connect(self):
             iosys_series, T, U, X0, return_x=True)
         lti_t, lti_y, lti_x = ct.forced_response(linsys_series, T, U, X0)
         np.testing.assert_array_almost_equal(lti_t, ios_t)
-        np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=3)
+        np.testing.assert_allclose(lti_y, ios_y,atol=0.002,rtol=0.)
 
         # Connect systems with different timebases
         linsys2c = self.siso_linsys
@@ -231,7 +231,7 @@ def test_connect(self):
             iosys_series, T, U, X0, return_x=True)
         lti_t, lti_y, lti_x = ct.forced_response(linsys_series, T, U, X0)
         np.testing.assert_array_almost_equal(lti_t, ios_t)
-        np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=3)
+        np.testing.assert_allclose(lti_y, ios_y,atol=0.002,rtol=0.)
 
         # Feedback interconnection
         linsys_feedback = ct.feedback(linsys1, linsys2)
@@ -246,7 +246,7 @@ def test_connect(self):
             iosys_feedback, T, U, X0, return_x=True)
         lti_t, lti_y, lti_x = ct.forced_response(linsys_feedback, T, U, X0)
         np.testing.assert_array_almost_equal(lti_t, ios_t)
-        np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=3)
+        np.testing.assert_allclose(lti_y, ios_y,atol=0.002,rtol=0.)
 
     @unittest.skipIf(StrictVersion(sp.__version__) < "1.0",
                      "requires SciPy 1.0 or greater")
@@ -357,7 +357,7 @@ def test_summer(self):
 
         lin_t, lin_y, lin_x = ct.forced_response(linsys_parallel, T, U, X0)
         ios_t, ios_y = ios.input_output_response(iosys_parallel, T, U, X0)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
     @unittest.skipIf(StrictVersion(sp.__version__) < "1.0",
                      "requires SciPy 1.0 or greater")
@@ -420,7 +420,7 @@ def test_feedback(self):
 
         ios_t, ios_y = ios.input_output_response(iosys, T, U, X0)
         lti_t, lti_y, lti_x = ct.forced_response(linsys, T, U, X0)
-        np.testing.assert_array_almost_equal(ios_y, lti_y, decimal=3)
+        np.testing.assert_allclose(ios_y, lti_y,atol=0.002,rtol=0.)
 
     @unittest.skipIf(StrictVersion(sp.__version__) < "1.0",
                      "requires SciPy 1.0 or greater")
@@ -442,7 +442,7 @@ def test_bdalg_functions(self):
         iosys_series = ct.series(linio1, linio2)
         lin_t, lin_y, lin_x = ct.forced_response(linsys_series, T, U, X0)
         ios_t, ios_y = ios.input_output_response(iosys_series, T, U, X0)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
         # Make sure that systems don't commute
         linsys_series = ct.series(linsys2, linsys1)
@@ -454,21 +454,21 @@ def test_bdalg_functions(self):
         iosys_parallel = ct.parallel(linio1, linio2)
         lin_t, lin_y, lin_x = ct.forced_response(linsys_parallel, T, U, X0)
         ios_t, ios_y = ios.input_output_response(iosys_parallel, T, U, X0)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
         # Negation
         linsys_negate = ct.negate(linsys1)
         iosys_negate = ct.negate(linio1)
         lin_t, lin_y, lin_x = ct.forced_response(linsys_negate, T, U, X0)
         ios_t, ios_y = ios.input_output_response(iosys_negate, T, U, X0)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
         # Feedback interconnection
         linsys_feedback = ct.feedback(linsys1, linsys2)
         iosys_feedback = ct.feedback(linio1, linio2)
         lin_t, lin_y, lin_x = ct.forced_response(linsys_feedback, T, U, X0)
         ios_t, ios_y = ios.input_output_response(iosys_feedback, T, U, X0)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
     @unittest.skipIf(StrictVersion(sp.__version__) < "1.0",
                      "requires SciPy 1.0 or greater")
@@ -496,26 +496,26 @@ def test_nonsquare_bdalg(self):
         iosys_multiply = iosys_3i2o * iosys_2i3o
         lin_t, lin_y, lin_x = ct.forced_response(linsys_multiply, T, U2, X0)
         ios_t, ios_y = ios.input_output_response(iosys_multiply, T, U2, X0)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
         linsys_multiply = linsys_2i3o * linsys_3i2o
         iosys_multiply = iosys_2i3o * iosys_3i2o
         lin_t, lin_y, lin_x = ct.forced_response(linsys_multiply, T, U3, X0)
         ios_t, ios_y = ios.input_output_response(iosys_multiply, T, U3, X0)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
         # Right multiplication
         # TODO: add real tests once conversion from other types is supported
         iosys_multiply = ios.InputOutputSystem.__rmul__(iosys_3i2o, iosys_2i3o)
         ios_t, ios_y = ios.input_output_response(iosys_multiply, T, U3, X0)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
         # Feedback
         linsys_multiply = ct.feedback(linsys_3i2o, linsys_2i3o)
         iosys_multiply = iosys_3i2o.feedback(iosys_2i3o)
         lin_t, lin_y, lin_x = ct.forced_response(linsys_multiply, T, U3, X0)
         ios_t, ios_y = ios.input_output_response(iosys_multiply, T, U3, X0)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
         # Mismatch should generate exception
         args = (iosys_3i2o, iosys_3i2o)
@@ -536,8 +536,8 @@ def test_discrete(self):
         # Simulate and compare to LTI output
         ios_t, ios_y = ios.input_output_response(lnios, T, U, X0)
         lin_t, lin_y, lin_x = ct.forced_response(linsys, T, U, X0)
-        np.testing.assert_array_almost_equal(ios_t, lin_t, decimal=3)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_t, lin_t,atol=0.002,rtol=0.)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
         # Test MIMO system, converted to discrete time
         linsys = ct.StateSpace(self.mimo_linsys1)
@@ -552,8 +552,8 @@ def test_discrete(self):
         # Simulate and compare to LTI output
         ios_t, ios_y = ios.input_output_response(lnios, T, U, X0)
         lin_t, lin_y, lin_x = ct.forced_response(linsys, T, U, X0)
-        np.testing.assert_array_almost_equal(ios_t, lin_t, decimal=3)
-        np.testing.assert_array_almost_equal(ios_y, lin_y, decimal=3)
+        np.testing.assert_allclose(ios_t, lin_t,atol=0.002,rtol=0.)
+        np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.)
 
     def test_find_eqpts(self):
         """Test find_eqpt function"""
@@ -738,7 +738,7 @@ def test_params(self):
 
         # Check to make sure results are OK
         np.testing.assert_array_almost_equal(lti_t, ios_t)
-        np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=3)
+        np.testing.assert_allclose(lti_y, ios_y,atol=0.002,rtol=0.)
 
     def test_named_signals(self):
         sys1 = ios.NonlinearIOSystem(

Reply via email to