1
0
Files
python-control/python-control.spec

85 lines
2.7 KiB
RPMSpec
Raw Normal View History

#
# spec file for package python-control
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define skip_python2 1
%define skip_python36 1
Name: python-control
Version: 0.9.1
Release: 0
Summary: Python control systems library
License: BSD-3-Clause
- Update to version 0.9.0 * Version 0.9.0 of the Python Control Toolbox (python-control) contains a number of enhanced features and changes to functions. Some of these changes may require modifications to existing user code and, in addition, some default settings have changed that may affect the appearance of plots or operation of certain functions. * Significant new additions including improvements in the I/O systems modules that allow automatic interconnection of signals having the same name (via the interconnect function), generation and plotting of describing functions for closed loop systems with static nonlinearities, and a new optimal control module that allows basic computation of optimal controls (including model predictive controllers). Some of the changes that may break use code include the deprecation of the NumPy matrix type (2D NumPy arrays are used instead), changes in the return value for Nyquist plots (now returns number of encirclements rather than the frequency response), switching the default timebase of systems to be 0 rather than None (no timebase), and changes in the processing of return values for time and frequency responses (to make them more consistent). In many cases, the earlier behavior can be restored by calling use_legacy_defaults('0.8.4'). New Features: * Optimal control module, including rudimentary MPC control (#549 by murrayrm) * Describing functions plots (#521 by murrayrm) * MIMO impulse and step response (#514 by murrayrm) OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=28
2021-03-21 10:23:31 +00:00
URL: http://python-control.org
Source: https://files.pythonhosted.org/packages/source/c/control/control-%{version}.tar.gz
Source1: %{name}-rpmlintrc
# PATCH-FIX-UPSTREAM - https://github.com/python-control/python-control/pull/688
Patch1: 688.patch
BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-matplotlib
Requires: python-numpy
Requires: python-scipy
Recommends: python-slycot
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module matplotlib-qt5}
BuildRequires: %{python_module matplotlib}
BuildRequires: %{python_module numpy}
BuildRequires: %{python_module pytest-xvfb}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module scipy}
BuildRequires: %{python_module slycot}
BuildRequires: libjemalloc2
# /SECTION
%python_subpackages
%description
The Python Control Systems Library is a Python module that implements basic
operations for analysis and design of feedback control systems.
%prep
- Update to version 0.9.0 * Version 0.9.0 of the Python Control Toolbox (python-control) contains a number of enhanced features and changes to functions. Some of these changes may require modifications to existing user code and, in addition, some default settings have changed that may affect the appearance of plots or operation of certain functions. * Significant new additions including improvements in the I/O systems modules that allow automatic interconnection of signals having the same name (via the interconnect function), generation and plotting of describing functions for closed loop systems with static nonlinearities, and a new optimal control module that allows basic computation of optimal controls (including model predictive controllers). Some of the changes that may break use code include the deprecation of the NumPy matrix type (2D NumPy arrays are used instead), changes in the return value for Nyquist plots (now returns number of encirclements rather than the frequency response), switching the default timebase of systems to be 0 rather than None (no timebase), and changes in the processing of return values for time and frequency responses (to make them more consistent). In many cases, the earlier behavior can be restored by calling use_legacy_defaults('0.8.4'). New Features: * Optimal control module, including rudimentary MPC control (#549 by murrayrm) * Describing functions plots (#521 by murrayrm) * MIMO impulse and step response (#514 by murrayrm) OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=28
2021-03-21 10:23:31 +00:00
%autosetup -p1 -n control-%{version}
#remove shebang
Accepting request 859108 from home:bnavigator:branches:devel:languages:python:numeric - Update to version 0.8.4 * Improved default time vector for time response functions (bnavigator, sawyerbfuller) * New use_legacy_defaults function to allow compatibility with previous versions (sawyerbfuller) * Allow creation of non-proper transfer functions (bnavigator, rlegnain) * Added ability to set arrow head length and width option in nyquist_plot (geekonloose) * Added ability to 'prewarp' the conversion of continuous to discrete-time systems (sawyerbfuller) * Added rlocus capability for discrete-time systems (sawyerbfuller) * Updated pzmap grid to be compatible with matplotlib updates (bnavigator) * Implement loadable string representation (repr) for tf, ss, and frd (repagh) * Fixed margin computation for discrete time systems (bnavigator) * Fixed indexing bug in bdalg.connect (sawyerbfuller) * Fixed InterconnectedSystem naming bugs, improved conventions (samlaf) * Fixed LinearIOSystem output bug in output function (francescoseccamonte) * Fixed bug in forced_response that overrode squeeze parameter (bnavigator) * Use rad/sec for Bode plot in MATLAB bode (was erroneously defaulting to Hertz) (paulvicioso) * Removed deprecated scipy calls and updated to latest numpy (bnavigator) * Multiple documentation updates (bnavigator, laurensvalk) * New and improved examples for sisotool, pvtol (repagh, samlaf) * The rlocus function no longer automatically creates a new figure * Updated unit tests + switch to pytest (bnavigator, sawyerbfuller) * Return type for eigenvalues in lqe changed to 1D array (matches lqr) * Small fixes + documentation updates to markov - Remove forbidden arch macros in noarch package - Drop patches merged upstream * pr365-copy-PR-320-for-robust_array_test.patch * pr366-ease-precision-tolerance.patch * pr380-fix-pytest-discovery.patch * pr430-numpy119delete.patch OBS-URL: https://build.opensuse.org/request/show/859108 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=23
2020-12-28 22:15:15 +00:00
sed -i '1{\@^#!/usr/bin/env@ d}' control/tests/*.py
%build
%python_build
%install
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
# 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"
Accepting request 859108 from home:bnavigator:branches:devel:languages:python:numeric - Update to version 0.8.4 * Improved default time vector for time response functions (bnavigator, sawyerbfuller) * New use_legacy_defaults function to allow compatibility with previous versions (sawyerbfuller) * Allow creation of non-proper transfer functions (bnavigator, rlegnain) * Added ability to set arrow head length and width option in nyquist_plot (geekonloose) * Added ability to 'prewarp' the conversion of continuous to discrete-time systems (sawyerbfuller) * Added rlocus capability for discrete-time systems (sawyerbfuller) * Updated pzmap grid to be compatible with matplotlib updates (bnavigator) * Implement loadable string representation (repr) for tf, ss, and frd (repagh) * Fixed margin computation for discrete time systems (bnavigator) * Fixed indexing bug in bdalg.connect (sawyerbfuller) * Fixed InterconnectedSystem naming bugs, improved conventions (samlaf) * Fixed LinearIOSystem output bug in output function (francescoseccamonte) * Fixed bug in forced_response that overrode squeeze parameter (bnavigator) * Use rad/sec for Bode plot in MATLAB bode (was erroneously defaulting to Hertz) (paulvicioso) * Removed deprecated scipy calls and updated to latest numpy (bnavigator) * Multiple documentation updates (bnavigator, laurensvalk) * New and improved examples for sisotool, pvtol (repagh, samlaf) * The rlocus function no longer automatically creates a new figure * Updated unit tests + switch to pytest (bnavigator, sawyerbfuller) * Return type for eigenvalues in lqe changed to 1D array (matches lqr) * Small fixes + documentation updates to markov - Remove forbidden arch macros in noarch package - Drop patches merged upstream * pr365-copy-PR-320-for-robust_array_test.patch * pr366-ease-precision-tolerance.patch * pr380-fix-pytest-discovery.patch * pr430-numpy119delete.patch OBS-URL: https://build.opensuse.org/request/show/859108 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=23
2020-12-28 22:15:15 +00:00
# preload malloc library to avoid free() error on i586 architecture
if [[ $(getconf LONG_BIT) == 32 ]]; then
export LD_PRELOAD="%{_libdir}/libjemalloc.so.2"
fi
%pytest
%files %{python_files}
%doc ChangeLog README.rst
%license LICENSE
%{python_sitelib}/control
%{python_sitelib}/control-%{version}-py*.egg-info
%changelog