From dff4eac27517b6c5210f89403c4762adfd53105c Mon Sep 17 00:00:00 2001
From: Matt Huszagh <huszaghmatt@gmail.com>
Date: Sat, 23 May 2020 06:34:17 -0700
Subject: [PATCH] python3Packages.pyspice: init at 1.4.3

---
 .../python-modules/pyspice/default.nix        | 51 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 +
 2 files changed, 53 insertions(+)
 create mode 100644 pkgs/development/python-modules/pyspice/default.nix

diff --git a/pkgs/development/python-modules/pyspice/default.nix b/pkgs/development/python-modules/pyspice/default.nix
new file mode 100644
index 00000000000..f2cce09c8b3
--- /dev/null
+++ b/pkgs/development/python-modules/pyspice/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, libngspice
+, numpy
+, ply
+, scipy
+, pyyaml
+, cffi
+, requests
+, matplotlib
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "PySpice";
+  version = "1.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mnyy8nr06d1al99kniyqcm0p9a8dvkg719s42sajl8yf51sayc9";
+  };
+
+  propagatedBuildInputs = [
+    setuptools
+    requests
+    pyyaml
+    cffi
+    matplotlib
+    numpy
+    ply
+    scipy
+    libngspice
+  ];
+
+  doCheck = false;
+  pythonImportsCheck = [ "PySpice" ];
+
+  postPatch = ''
+    substituteInPlace PySpice/Spice/NgSpice/Shared.py --replace \
+        "ffi.dlopen(self.library_path)" \
+        "ffi.dlopen('${libngspice}/lib/libngspice${stdenv.hostPlatform.extensions.sharedLibrary}')"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simulate electronic circuit using Python and the Ngspice / Xyce simulators";
+    homepage = "https://github.com/FabriceSalvaire/PySpice";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index c2c471d9772..03b751ae288 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -5383,6 +5383,8 @@ in {
 
   pyspf = callPackage ../development/python-modules/pyspf { };
 
+  pyspice = callPackage ../development/python-modules/pyspice { };
+
   pyspinel = callPackage ../development/python-modules/pyspinel { };
 
   pyspotify = callPackage ../development/python-modules/pyspotify { };