Package Details: python-control 0.9.2-1

Git Clone URL: https://aur.archlinux.org/python-control.git (read-only, click to copy)
Package Base: python-control
Description: Implements basic operations for analysis and design of feedback control systems in Python
Upstream URL: https://github.com/python-control/python-control
Licenses: BSD
Submitter: calcmogul
Maintainer: bnavigator
Last Packager: bnavigator
Votes: 6
Popularity: 0.010262
First Submitted: 2015-09-05 22:38 (UTC)
Last Updated: 2022-07-09 10:26 (UTC)

Latest Comments

1 2 Next › Last »

Jona commented on 2023-09-16 11:38 (UTC) (edited on 2023-09-16 19:20 (UTC) by Jona)

I can confirm that the changes done in PKGBUILD are working ok on aarch64 (RaspberryPi 400, but for any other board the result should be the same), using makepkg.

There is a problem with the check function:

/usr/bin/xvfb-run: línea 180: 23106 Violación de segmento  (`core' generado) DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@"

that it is solved after installing tk package (does not come by default when installing python on raspberry pi) or configuring a Matplotlib backend.

Pytest results:

========================================================================================== short test summary info ===========================================================================================
SKIPPED [1] control/tests/frd_test.py:519: pandas not installed
SKIPPED [1] control/tests/matlab2_test.py:204: skipping test_check_convert_shape, need to update test
SKIPPED [1] control/tests/matlab2_test.py:275: need to update test
SKIPPED [1] control/tests/passivity_test.py:14: cvxopt not installed
SKIPPED [1] control/tests/passivity_test.py:31: cvxopt not installed
SKIPPED [1] control/tests/passivity_test.py:41: cvxopt not installed
SKIPPED [1] control/tests/passivity_test.py:62: cvxopt not installed
SKIPPED [1] control/tests/passivity_test.py:83: cvxopt not installed
SKIPPED [5] control/tests/passivity_test.py:101: cvxopt not installed
SKIPPED [1] control/tests/passivity_test.py:113: cvxopt not installed
SKIPPED [1] control/tests/passivity_test.py:124: cvxopt not installed
SKIPPED [1] control/tests/passivity_test.py:132: cvxopt not installed
SKIPPED [1] control/tests/statesp_test.py:185: obsolete test
SKIPPED [4] control/tests/timeresp_test.py:418: test system does not settle
SKIPPED [6] control/tests/timeresp_test.py:874: No continuous forced_response without time vector.
SKIPPED [1] control/tests/timeresp_test.py:1179: pandas not installed
SKIPPED [1] control/tests/type_conversion_test.py:163: future test; conversions not yet fully implemented
SKIPPED [1] control/tests/xferfcn_test.py:90: outdated test
SKIPPED [2] control/tests/xferfcn_test.py:741: .__matmul__ not implemented
XFAIL control/tests/flatsys_test.py::TestFlatSys::test_kinematic_car[basis3] - reason: system is open loop unstable => errors can build
XFAIL control/tests/lti_test.py::TestLTI::test_timebaseEqual_deprecated[None-True-True] - returns false
XFAIL control/tests/optimal_test.py::test_optimal_doc[shooting-3-None-xfail] - reason: optimization fails to converge
XFAIL control/tests/optimal_test.py::test_optimal_doc[shooting-3-zero-xfail] - reason: optimization fails to converge
XFAIL control/tests/optimal_test.py::test_optimal_doc[shooting-3-input-endpoint] - reason: optimization does not converge to endpoint
XFAIL control/tests/optimal_test.py::test_optimal_doc[shooting-5-input-endpoint] - reason: optimization does not converge to endpoint
XFAIL control/tests/optimal_test.py::test_optimal_doc[collocation-3-u0-endpoint] - reason: optimization does not converge to endpoint
XFAIL control/tests/optimal_test.py::test_optimal_doc[collocation-5-u0-endpoint] - reason: optimization does not converge to endpoint
XFAIL control/tests/statefbk_test.py::TestStatefbk::testLQR_warning - warning not implemented
XFAIL control/tests/statefbk_test.py::TestStatefbk::testDLQR_warning - warning not implemented
FAILED control/tests/nyquist_test.py::test_nyquist_basic - Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.
FAILED control/tests/optimal_test.py::test_optimal_doc[shooting-3-u0-None] - AssertionError: 
====================================================== 2 failed, 3359 passed, 32 skipped, 22 deselected, 10 xfailed, 215 warnings in 760.50s (0:12:40) =======================================================

To avoid dependency on xvfb-run, the check() function can be modified to:

check() {
  cd control-$pkgver
  export MPLBACKEND=agg
  # slycot 0.4 precision errors
  donttest="test_bdschur or test_modal_form or testBalred"
  #xvfb-run --auto-servernum pytest control/tests -k "not ($donttest)"
  pytest control/tests -k "not ($donttest)"
}

Jona commented on 2023-09-14 19:28 (UTC) (edited on 2023-09-14 19:31 (UTC) by Jona)

For those struggling with installation of this package with current versions of python-numpy (please check also my comment in python-slycot, and if the maintainer has some spare time he can also update this PKGBUILD):

# Maintainer: Tyler Veness <calcmogul at gmail dot com>

pkgname=python-control
pkgver=0.9.4
pkgrel=1
pkgdesc="Implements basic operations for analysis and design of feedback control systems in Python"
arch=('any')
license=('BSD')
url="https://github.com/python-control/python-control"
depends=('python-scipy'
         'python-matplotlib')
optdepends=('python-slycot: matrix equation support, model simplification tools, and state feedback')
makedepends=('python-setuptools' 'python-setuptools-scm')
checkdepends=('python-pytest' 'python-pytest-timeout' 'python-slycot' 'xorg-server-xvfb')
options=('staticlibs')
source=("https://files.pythonhosted.org/packages/source/c/control/control-${pkgver}.tar.gz")
md5sums=('42c8b00dbdc1144430e49e4f2b740e71')

build() {
  export LDFLAGS="$LDFLAGS -shared"

  cd control-$pkgver
  python -m build --wheel --no-isolation -x 
}

check() {
  cd control-$pkgver
  # slycot 0.4 precision errors
  donttest="test_bdschur or test_modal_form or testBalred"
  xvfb-run --auto-servernum pytest control/tests -k "not ($donttest)"
}

package() {
  export LDFLAGS="$LDFLAGS -shared"

  cd "$srcdir/control-$pkgver"
  python -m installer --destdir="${pkgdir}" dist/*.whl

  install -m755 -d "${pkgdir}/usr/share/licenses/python-control"
  install -m644 LICENSE "${pkgdir}/usr/share/licenses/python-control/"
}

Vial commented on 2023-09-05 21:03 (UTC) (edited on 2023-09-05 21:03 (UTC) by Vial)

I get the following error during installation:

"Missing dependency python-numpy<1.23.0"

While numpy is currently at 1.25.1

bnavigator commented on 2021-03-24 23:42 (UTC)

Python2 is no longer supported

amael commented on 2021-03-24 20:00 (UTC)

I got an error building the package: pytest was not available

You may want to add python-pytest to the check dependencies, I did that and it worked for me.

fernando_morais commented on 2019-11-03 14:06 (UTC)

m-pilia, the python2-scikit-build package maintainer, recommends the following workaround:

"As a workaround, since this seems to be only an issue with the pytest setup, you can delete or comment out the check() function from the PKGBUILD file" (of the python2-scikit-build package).

It worked and python-control installation was completed.

calcmogul commented on 2019-10-29 02:14 (UTC)

The PKGBUILD already depends on python-slycot as of this commit: https://aur.archlinux.org/cgit/aur.git/commit/?h=python-control&id=8d96210bb1c8

fernando_morais commented on 2019-10-29 01:29 (UTC)

@calcmogul: python2-scikit-build was updated on 2019-10-03. https://aur.archlinux.org/packages/python2-scikit-build/

calcmogul commented on 2019-09-29 03:54 (UTC)

python-slycot currently doesn't compile because python2-scikit-build doesn't exist (and that's been brought up in a comment on python-scikit-build). I'll update the dependency once that's fixed.

bnavigator commented on 2019-09-28 18:35 (UTC)

I made a PKGBUILD for python-slycot. python-control should depend on that instead of python-slycot-git