GNU bug report logs - #72320
[PATCH 0/2] Add python-slycot and python-control

Previous Next

Package: guix-patches;

Reported by: Vinicius Monego <monego <at> posteo.net>

Date: Sat, 27 Jul 2024 12:22:01 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 72320 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#72320; Package guix-patches. (Sat, 27 Jul 2024 12:22:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Vinicius Monego <monego <at> posteo.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 27 Jul 2024 12:22:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: guix-patches <at> gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 0/2] Add python-slycot and python-control
Date: Sat, 27 Jul 2024 12:18:20 +0000
SLICOT is a Fortran 77 library for control computations. It was free software prior to version ~5.1 after which it became non-commercial, but seems to have been relicensed to bsd-3 in version ~5.8. It's in Debian main repo now and is the base for most Octave packages.

The build system for the fortran library is a little weird and the package would need some work. But I'm sending a package for Slycot (a Python wrapper) which forks it for a seamless integration, and then for python-control which is the main consumer of that wrapper.

Vinicius Monego (2):
  gnu: Add python-slycot.
  gnu: Add python-control.

 gnu/packages/engineering.scm | 66 ++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)


base-commit: 81904c16aed72bb8ea1449587418d2a218d0b103
-- 
2.39.2





Information forwarded to guix-patches <at> gnu.org:
bug#72320; Package guix-patches. (Sat, 27 Jul 2024 12:24:02 GMT) Full text and rfc822 format available.

Message #8 received at 72320 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 72320 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 1/2] gnu: Add python-slycot.
Date: Sat, 27 Jul 2024 12:21:52 +0000
* gnu/packages/engineering.scm (python-slycot): New variable.

Change-Id: If2fa334e2f9c73001570aa7eefd2e683313f1a54
---
 gnu/packages/engineering.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 4e465ddb7d..688465b233 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -912,6 +912,32 @@ (define-public translate2geda
 fonts to gEDA.")
       (license license:gpl2+))))
 
+(define-public python-slycot
+  (package
+    (name "python-slycot")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "slycot" version))
+       (sha256
+        (base32 "08rwvawrcnyal66lljn2b8l9my0lzjg1d5fvykbf0v0cmnfg3v4q"))))
+    (build-system pyproject-build-system)
+    ;; Slycot uses a custom fork of slicot and does not allow to use a system
+    ;; package.  We add gfortran, lapack and openblas to build it.
+    (native-inputs (list gfortran
+                         python-pytest
+                         python-scikit-build
+                         python-scipy   ; for tests
+                         python-setuptools-scm))
+    (inputs (list lapack openblas))
+    (propagated-inputs (list python-numpy))
+    (home-page "https://github.com/python-control/Slycot")
+    (synopsis "Wrapper for the SLICOT control and systems library")
+    (description "This package provides a Python wrapper for the SLICOT
+control and systems library.")
+    (license license:gpl2+)))
+
 (define-public libfive
   (let ((commit "b1ea998d8adb3884ab52798f7388f4354145f452")
         (revision "5"))

base-commit: 81904c16aed72bb8ea1449587418d2a218d0b103
-- 
2.39.2





Information forwarded to guix-patches <at> gnu.org:
bug#72320; Package guix-patches. (Sat, 27 Jul 2024 12:24:02 GMT) Full text and rfc822 format available.

Message #11 received at 72320 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: 72320 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Subject: [PATCH 2/2] gnu: Add python-control.
Date: Sat, 27 Jul 2024 12:21:53 +0000
* gnu/packages/engineering.scm (python-control): New variable.

Change-Id: Idc73713360c28b5e5570baedbaf4d3cde4b59b87
---
 gnu/packages/engineering.scm | 40 ++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 688465b233..b082af532f 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -938,6 +938,46 @@ (define-public python-slycot
 control and systems library.")
     (license license:gpl2+)))
 
+(define-public python-control
+  (package
+    (name "python-control")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "control" version))
+       (sha256
+        (base32 "0lxb1dbdidgdi3w54pwv94cl15p5zglazr5j0zywfibzadkvf61c"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-matplotlib
+                             python-numpy
+                             python-scipy
+                             python-slycot))
+    (native-inputs (list python-pytest python-pytest-timeout))
+    (home-page "https://github.com/python-control/python-control")
+    (synopsis "Python Control Systems Library")
+    (description "The Python Control Systems Library is a Python module that
+implements basic operations for analysis and design of feedback control
+systems.
+
+Features:
+
+@itemize
+@item Linear input/output systems in state-space and frequency domain
+@item Block diagram algebra: serial, parallel, feedback, and other
+interconnections
+@item Time response: initial, step, impulse
+@item Frequency response: Bode, Nyquist, and Nichols plots
+@item Control analysis: stability, reachability, observability, stability
+margins, root locus
+@item Control design: eigenvalue placement, linear quadratic regulator,
+sisotool, hinfsyn, rootlocus_pid_designer
+@item Estimator design: linear quadratic estimator (Kalman filter)
+@item Nonlinear systems: optimization-based control, describing functions,
+differential flatness
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public libfive
   (let ((commit "b1ea998d8adb3884ab52798f7388f4354145f452")
         (revision "5"))
-- 
2.39.2





This bug report was last modified 323 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.