diff --git a/control-0.10.0.tar.gz b/control-0.10.0.tar.gz new file mode 100644 index 0000000..e2423c2 --- /dev/null +++ b/control-0.10.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c18b767537f45c7fd07b2e4afe8fbe5964019499b5f52f888edb5d8560bab53 +size 8956376 diff --git a/control-0.9.4.tar.gz b/control-0.9.4.tar.gz deleted file mode 100644 index 795e79c..0000000 --- a/control-0.9.4.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0fa57d2216b7ac4e9339c09eab6827660318a641779335864feee940bd19c9ce -size 5972686 diff --git a/python-control-pr961-py312.patch b/python-control-pr961-py312.patch deleted file mode 100644 index 84bdd8d..0000000 --- a/python-control-pr961-py312.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/control/config.py b/control/config.py -index 59f0e4825..0ae883f49 100644 ---- a/control/config.py -+++ b/control/config.py -@@ -48,6 +48,20 @@ def __missing__(self, key): - else: - raise KeyError(key) - -+ # New get function for Python 3.12+ to replicate old behavior -+ def get(self, key, defval=None): -+ # If the key exists, return it -+ if self.__contains__(key): -+ return self[key] -+ -+ # If not, see if it is deprecated -+ repl = self._check_deprecation(key) -+ if self.__contains__(repl): -+ return self.get(repl, defval) -+ -+ # Otherwise, call the usual dict.get() method -+ return super().get(key, defval) -+ - def _check_deprecation(self, key): - if self.__contains__(f"deprecated.{key}"): - repl = self[f"deprecated.{key}"] diff --git a/python-control.changes b/python-control.changes index 49cda7f..b43fcec 100644 --- a/python-control.changes +++ b/python-control.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Apr 5 14:22:32 UTC 2024 - Ben Greiner + +- Update to 0.10.0 + * Multivariable interconnect functionality by @murrayrm in #881 + * Remove NumPy matrix class by @murrayrm in #913 + * I/O system class restructuring by @murrayrm in #916 + * Documentation fixes by @KybernetikJo in #919, #921, #922, #923 + * Add two MRAC siso examples by @KybernetikJo in #914 + * Time response plots by @murrayrm in #920 + * Print a connection table for interconnected systems by + @sawyerbfuller in #925 + * Update frequency response plots to use _response/_plot pattern + by @murrayrm in #924 + * create_statefbk_iosystem and optimal control enhancements by + @murrayrm in #930 + * Add unit test illustrating issue #935 + add method keyword for + tf2ss by @murrayrm in #937 + * Vectorize optimal control cost calculation by @urpok23 in #940 + * Improved speed of ctrb and obsv functions by @Jpickard1 in #941 + * Fix sphinx bug (erroneous use of class template) by @murrayrm + in #943 + * Fix bug in matched transformation + address other issues in + #950 by @murrayrm in #951 + * Fix typo in header of Hinf example by @jrforbes in #946 + * Fix typo in stochresp.py by @alex-damjanovic in #945 + * Fix TimeResponseData.to_pandas() to handle zero state case by + @murrayrm in #958 + * Update pole/zero and root locus plots to use _map/_plot pattern + by @murrayrm in #953 + * Fix CI warnings by @murrayrm in #955 + * Support Python 3.12, bump minimum support according to SPEC 0 + by @bnavigator in #961 + * Fix typos in pzmap.py by @matejkarasek in #962 + * Fix examples to work with SciPy 1.12 by @bnavigator in #965 + * Fix config test for missing old key warning by @bnavigator in + #972 + * Implementation of system norms by @henriks76 in #971, #976 + * Updated gram() to support discrete-time systems by @billtubbs + in #969 + * Update unit test infrastructure by @murrayrm in #981, #986 + * Remove external/ directory by @murrayrm in #983 + * Reimplementation of 2D phase plots by @murrayrm in #980 + * Update readthedocs to Python 3.12 by @murrayrm in #985 + * Fix warning messages in tests; update rlocus/pzmap limits by + @murrayrm in #984 + * Allow passing and saving of params in time responses by + @murrayrm in #982 +- Drop python-control-pr961-py312.patch + ------------------------------------------------------------------- Sun Feb 4 10:46:16 UTC 2024 - Ben Greiner diff --git a/python-control.spec b/python-control.spec index b676401..83d3185 100644 --- a/python-control.spec +++ b/python-control.spec @@ -17,15 +17,13 @@ Name: python-control -Version: 0.9.4 +Version: 0.10.0 Release: 0 Summary: Python control systems library License: BSD-3-Clause URL: https://python-control.org Source: https://files.pythonhosted.org/packages/source/c/control/control-%{version}.tar.gz Source1: %{name}-rpmlintrc -# PATCH-FIX-UPSTREAM python-control-pr961-py312.patch gh#python-control/python-control#961 -Patch0: python-control-pr961-py312.patch BuildRequires: %{python_module base >= 3.8} BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools_scm} @@ -72,7 +70,8 @@ sed -i '1{\@^#!/usr/bin/env@ d}' control/tests/*.py # The default Agg backend does not define the toolbar attribute in the Figure # Manager used by some tests, so we run the tests with the Qt5 backend export MPLBACKEND="Qt5Agg" -donttest="dummyprefix" +# precision issues +donttest="test_lti_nlsys_response" # gh#python-control/python-control#838 [ "${RPM_ARCH}" != "x86_64" ] && donttest="$donttest or (test_optimal_doc and shooting-3-u0-None)" # causes i586 segfaults in matplotlib after successful balanced model reduction tests