Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 fetchFromGitHub,
4 buildPythonPackage,
5 numpy,
6 scipy,
7 matplotlib,
8 setuptools,
9 setuptools-scm,
10 cvxopt,
11 pytest-timeout,
12 pytestCheckHook,
13}:
14
15buildPythonPackage rec {
16 pname = "control";
17 version = "0.10.2";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "python-control";
22 repo = "python-control";
23 tag = version;
24 hash = "sha256-E9RZDUK01hzjutq83XdLr3d97NwjmQzt65hqVg2TBGE=";
25 };
26
27 build-system = [
28 setuptools
29 setuptools-scm
30 ];
31
32 dependencies = [
33 numpy
34 scipy
35 matplotlib
36 ];
37
38 optional-dependencies = {
39 # slycot is not in nixpkgs
40 # slycot = [ slycot ];
41 cvxopt = [ cvxopt ];
42 };
43
44 pythonImportsCheck = [ "control" ];
45
46 nativeCheckInputs = [
47 cvxopt
48 pytest-timeout
49 pytestCheckHook
50 ];
51
52 meta = {
53 changelog = "https://github.com/python-control/python-control/releases/tag/${src.tag}";
54 description = "Python Control Systems Library";
55 homepage = "https://github.com/python-control/python-control";
56 license = lib.licenses.bsd3;
57 maintainers = with lib.maintainers; [ Peter3579 ];
58 };
59}