about summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/arrow/default.nix2
-rw-r--r--pkgs/development/python-modules/caldav/default.nix18
-rw-r--r--pkgs/development/python-modules/certifi/default.nix2
-rw-r--r--pkgs/development/python-modules/evernote/default.nix2
-rw-r--r--pkgs/development/python-modules/fastjsonschema/default.nix39
-rw-r--r--pkgs/development/python-modules/geopandas/default.nix2
-rw-r--r--pkgs/development/python-modules/holoviews/default.nix4
-rw-r--r--pkgs/development/python-modules/panel/default.nix6
-rw-r--r--pkgs/development/python-modules/param/default.nix4
-rw-r--r--pkgs/development/python-modules/pyclipper/default.nix35
-rw-r--r--pkgs/development/python-modules/pymavlink/default.nix4
-rw-r--r--pkgs/development/python-modules/python-constraint/default.nix29
-rw-r--r--pkgs/development/python-modules/pyviz-comms/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-aer/default.nix11
-rw-r--r--pkgs/development/python-modules/qiskit-aqua/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-ibmq-provider/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-ignis/default.nix34
-rw-r--r--pkgs/development/python-modules/qiskit-terra/default.nix51
-rw-r--r--pkgs/development/python-modules/qiskit/default.nix4
-rw-r--r--pkgs/development/python-modules/retworkx/default.nix59
-rw-r--r--pkgs/development/python-modules/scikitlearn/0.20.nix2
-rw-r--r--pkgs/development/python-modules/scikitlearn/default.nix2
-rw-r--r--pkgs/development/python-modules/scipy/default.nix2
-rw-r--r--pkgs/development/python-modules/scrapy/default.nix4
-rw-r--r--pkgs/development/python-modules/subdownloader/default.nix2
-rw-r--r--pkgs/development/python-modules/untangle/default.nix2
26 files changed, 263 insertions, 69 deletions
diff --git a/pkgs/development/python-modules/arrow/default.nix b/pkgs/development/python-modules/arrow/default.nix
index 04295dce261f..141ce20fdcbc 100644
--- a/pkgs/development/python-modules/arrow/default.nix
+++ b/pkgs/development/python-modules/arrow/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Python library for date manipulation";
-    license     = "apache";
+    license = licenses.asl20;
     maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/development/python-modules/caldav/default.nix b/pkgs/development/python-modules/caldav/default.nix
index 895775eb87f5..7a7a175362ac 100644
--- a/pkgs/development/python-modules/caldav/default.nix
+++ b/pkgs/development/python-modules/caldav/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi
-, tzlocal, requests, vobject, lxml, nose }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, tzlocal
+, requests
+, vobject
+, lxml
+, nose
+}:
 
 buildPythonPackage rec {
   pname = "caldav";
@@ -12,11 +19,16 @@ buildPythonPackage rec {
     sha256 = "80c33b143539da3a471148ac89512f67d9df3a5286fae5a023e2ad3923246c0d";
   };
 
+  # xandikos is only a optional test dependency, not available for python3
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace ", 'xandikos'" ""
+  '';
+
   meta = with lib; {
     description = "This project is a CalDAV (RFC4791) client library for Python.";
     homepage = "https://pythonhosted.org/caldav/";
     license = licenses.asl20;
     maintainers = with maintainers; [ marenz ];
-    broken = true; # missing xandikos package
   };
 }
diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix
index 35df76e68cdb..04ae5a78bdbb 100644
--- a/pkgs/development/python-modules/certifi/default.nix
+++ b/pkgs/development/python-modules/certifi/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   };
 
   meta = {
-    homepage = "http://certifi.io/";
+    homepage = "https://certifi.io/";
     description = "Python package for providing Mozilla's CA Bundle";
     license = lib.licenses.isc;
     maintainers = with lib.maintainers; [ koral ];
diff --git a/pkgs/development/python-modules/evernote/default.nix b/pkgs/development/python-modules/evernote/default.nix
index 55b60315c500..b245ff117474 100644
--- a/pkgs/development/python-modules/evernote/default.nix
+++ b/pkgs/development/python-modules/evernote/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
    meta = with stdenv.lib; {
     description = "Evernote SDK for Python";
-    homepage = "http://dev.evernote.com";
+    homepage = "https://dev.evernote.com";
     license = licenses.asl20;
     maintainers = with maintainers; [ hbunke ];
    };
diff --git a/pkgs/development/python-modules/fastjsonschema/default.nix b/pkgs/development/python-modules/fastjsonschema/default.nix
new file mode 100644
index 000000000000..b49f31e40221
--- /dev/null
+++ b/pkgs/development/python-modules/fastjsonschema/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+  # Check inputs
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "fastjsonschema";
+  version = "2.14.4";
+
+  disabled = pythonOlder "3.3";
+
+  src = fetchFromGitHub {
+    owner = "horejsek";
+    repo = "python-fastjsonschema";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "0c3q31lqzrc52gacnqc271k5952qbyl0z4kagsqvl7fiwk84hqlz";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+  dontUseSetuptoolsCheck = true;
+  disabledTests = [
+    "benchmark"
+
+    # these tests require network access
+    "remote ref"
+    "definitions"
+  ];
+
+  meta = with lib; {
+    description = "Fast JSON schema validator for Python.";
+    homepage = "https://horejsek.github.io/python-fastjsonschema/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix
index 6b1b74cae8a8..9a86acf83b50 100644
--- a/pkgs/development/python-modules/geopandas/default.nix
+++ b/pkgs/development/python-modules/geopandas/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Python geospatial data analysis framework";
-    homepage = "http://geopandas.org";
+    homepage = "https://geopandas.org";
     license = licenses.bsd3;
     maintainers = with maintainers; [ knedlsepp ];
   };
diff --git a/pkgs/development/python-modules/holoviews/default.nix b/pkgs/development/python-modules/holoviews/default.nix
index 51f1e20662a6..7b54d8cd5f1b 100644
--- a/pkgs/development/python-modules/holoviews/default.nix
+++ b/pkgs/development/python-modules/holoviews/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "holoviews";
-  version = "1.12.7";
+  version = "1.13.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c63f76d1ce2261eb0cd147a24be25daff399e7df2c3d6ade3e813d2e9cb7d42f";
+    sha256 = "00i8732qib86xqa3652vkr178ib3682cls4jcv5g52y0rlkd8bfg";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index ef1553e6d09a..fe401d9483e2 100644
--- a/pkgs/development/python-modules/panel/default.nix
+++ b/pkgs/development/python-modules/panel/default.nix
@@ -7,15 +7,16 @@
 , markdown
 , pyct
 , testpath
+, tqdm
 }:
 
 buildPythonPackage rec {
   pname = "panel";
-  version = "0.7.0";
+  version = "0.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71d446f469b424cb190bc896e78d0415b2bbebf17c6e5b024ed1a73b4448f8f4";
+    sha256 = "0iz20k7mqn0560r4358yrzvrrfn00h8s6dim7p7y4icpgjw2mjnb";
   };
 
   propagatedBuildInputs = [
@@ -25,6 +26,7 @@ buildPythonPackage rec {
     markdown
     pyct
     testpath
+    tqdm
   ];
 
   # infinite recursion in test dependencies (hvplot)
diff --git a/pkgs/development/python-modules/param/default.nix b/pkgs/development/python-modules/param/default.nix
index 3467cb488f50..096bb2cfb910 100644
--- a/pkgs/development/python-modules/param/default.nix
+++ b/pkgs/development/python-modules/param/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "param";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a2dcb07c6a4ff48bade69bb5d30d84a96911a7e9dcb76b6de975453f933332f8";
+    sha256 = "10crjlsn5vx03xwlnhga9faqq2rlw0qwabi45vnvhmz22qbd8w43";
   };
 
   checkInputs = [ flake8 nose ];
diff --git a/pkgs/development/python-modules/pyclipper/default.nix b/pkgs/development/python-modules/pyclipper/default.nix
new file mode 100644
index 000000000000..eaf20baf75c3
--- /dev/null
+++ b/pkgs/development/python-modules/pyclipper/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, setuptools_scm
+, cython
+}:
+
+buildPythonPackage rec {
+  pname = "pyclipper";
+  version = "1.1.0.post3";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "164yksvqwqvwzh8f8lq92asg87hd8rvcy2xb5vm4y4ccvd5xgb7i";
+  };
+
+  nativeBuildInputs = [
+    setuptools_scm
+    cython
+  ];
+
+  # Requires pytest_runner to perform tests, which requires deprecated
+  # features of setuptools. Seems better to not run tests. This should
+  # be fixed upstream.
+  doCheck = false;
+  pythonImportsCheck = [ "pyclipper" ];
+
+  meta = with stdenv.lib; {
+    description = "Cython wrapper for clipper library";
+    homepage    = "https://github.com/fonttools/pyclipper";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/pkgs/development/python-modules/pymavlink/default.nix b/pkgs/development/python-modules/pymavlink/default.nix
index d47ea812ca8f..51b057e740ce 100644
--- a/pkgs/development/python-modules/pymavlink/default.nix
+++ b/pkgs/development/python-modules/pymavlink/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymavlink";
-  version = "2.4.6";
+  version = "2.4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c8bxbm18h4idfdxqgklcz4n5bgsyl9y14gl9314fpflwa2c7ds8";
+    sha256 = "1djzr6cg3l19icwplmpii7zzr8gms9qcc2lfr8yc05siqzclk5xk";
   };
 
   propagatedBuildInputs = [ future lxml ];
diff --git a/pkgs/development/python-modules/python-constraint/default.nix b/pkgs/development/python-modules/python-constraint/default.nix
new file mode 100644
index 000000000000..e6fcc4f8ab7a
--- /dev/null
+++ b/pkgs/development/python-modules/python-constraint/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+  # Check inputs
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "python-constraint";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "python-constraint";
+    repo = "python-constraint";
+    rev = version;
+    sha256 = "1dv11406yxmmgkkhwzqicajbg2bmla5xfad7lv57zyahxz8jzz94";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+  dontUseSetuptoolsCheck = true;
+
+  meta = with lib; {
+    description = "Constraint Solving Problem resolver for Python.";
+    homepage = "https://labix.org/doc/constraint/";
+    downloadPage = "https://github.com/python-constraint/python-constraint/releases";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyviz-comms/default.nix b/pkgs/development/python-modules/pyviz-comms/default.nix
index c62399db1178..4bb0bce52eb0 100644
--- a/pkgs/development/python-modules/pyviz-comms/default.nix
+++ b/pkgs/development/python-modules/pyviz-comms/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyviz_comms";
-  version = "0.7.2";
+  version = "0.7.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c1722a496b08eb20ae3f2fedcc1ebcd207567b62e6453c7198a0b8f78ae96049";
+    sha256 = "092nl8pq1jqdylj0xyqwgi5qxvhy6qj2nx2lwwfkbnixlg6g8bbi";
   };
 
   propagatedBuildInputs = [ param ];
diff --git a/pkgs/development/python-modules/qiskit-aer/default.nix b/pkgs/development/python-modules/qiskit-aer/default.nix
index 7c36328f557b..70c5ba38fea5 100644
--- a/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -18,16 +18,16 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aer";
-  version = "0.4.1";
+  version = "0.5.0";
 
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "Qiskit";
-    repo = pname;
+    repo = "qiskit-aer";
     rev = version;
     fetchSubmodules = true; # fetch muparserx and other required libraries
-    sha256 = "1j2pv6jx5dlzanjp1qnf32s53d8jrlpv96nvymznkcnjvqn60gv9";
+    sha256 = "05lsirrdnnr5yqhwkgv08d9aib8xq4xpd6aq2pfqsi9qkii2fff1";
   };
 
   nativeBuildInputs = [
@@ -49,7 +49,7 @@ buildPythonPackage rec {
 
   prePatch = ''
     # remove dependency on PyPi cmake package, which isn't in Nixpkgs
-    substituteInPlace setup.py --replace "'cmake'" ""
+    substituteInPlace setup.py --replace "'cmake!=3.17,!=3.17.0'" ""
   '';
 
   dontUseCmakeConfigure = true;
@@ -92,7 +92,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "High performance simulators for Qiskit";
-    homepage = "https://github.com/QISKit/qiskit-aer";
+    homepage = "https://qiskit.org/aer";
+    downloadPage = "https://github.com/QISKit/qiskit-aer/releases";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
     # Doesn't build on aarch64 (libmuparserx issue).
diff --git a/pkgs/development/python-modules/qiskit-aqua/default.nix b/pkgs/development/python-modules/qiskit-aqua/default.nix
index ee01a5c4cb56..9ff6404f2fcf 100644
--- a/pkgs/development/python-modules/qiskit-aqua/default.nix
+++ b/pkgs/development/python-modules/qiskit-aqua/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aqua";
-  version = "0.6.5";
+  version = "0.6.6";
 
   disabled = pythonOlder "3.5";
 
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aqua";
     rev = version;
-    sha256 = "03c0gl2qxyngf3cccjghjb0bhp0w78sdbvhim08cimf3cd577ldz";
+    sha256 = "080m5nsy3ia6bcdypq5d3ijb7762yl1l9llygmxsi6si449zl2cp";
   };
 
   # Optional packages: pyscf (see below NOTE) & pytorch. Can install via pip/nix if needed.
diff --git a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index bed1bffe1a67..ea14bef2b9e4 100644
--- a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
+++ b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-ibmq-provider";
-  version = "0.6.0";
+  version = "0.6.1";
 
   disabled = pythonOlder "3.6";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "0arbhwaa2kx04jbrj6hk3vvn92wdk6lrr9zx36pr6p22r0yyxnj9";
+    sha256 = "16c73m9gp1wcrygr6mnc0a9ps0i872bgc7v1zbqyh50kxbcrnpnz";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qiskit-ignis/default.nix b/pkgs/development/python-modules/qiskit-ignis/default.nix
index 2f0a99dc0f82..a421b5f84adc 100644
--- a/pkgs/development/python-modules/qiskit-ignis/default.nix
+++ b/pkgs/development/python-modules/qiskit-ignis/default.nix
@@ -5,42 +5,37 @@
 , fetchpatch
 , numpy
 , qiskit-terra
+, scikitlearn
 , scipy
   # Check Inputs
+, ddt
 , pytestCheckHook
 , qiskit-aer
 }:
 
 buildPythonPackage rec {
   pname = "qiskit-ignis";
-  version = "0.2.0";
+  version = "0.3.0";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.6";
 
   # Pypi's tarball doesn't contain tests
   src = fetchFromGitHub {
     owner = "Qiskit";
-    repo = pname;
+    repo = "qiskit-ignis";
     rev = version;
-    sha256 = "08a60xk5dq5wmqc23r4hr2v2nsf9hs0ybz832vbnd6d80dl6izyc";
+    sha256 = "16h04n9hxw669nq2ii16l6h75x8afisvp3j062n4c62kcqci0x4x";
   };
 
-  patches = [
-    # Update tests for compatibility with qiskit-aer 0.4 (#342). Remove in version > 0.2.0
-    (fetchpatch {
-      url = "https://github.com/Qiskit/qiskit-ignis/commit/d78c494579f370058e68e360f10149db81b52477.patch";
-      sha256 = "0ygkllf95c0jfvjg7gn399a5fd0wshsjpcn279kj7855m8j306h6";
-    })
-    # Fix statevector test over-eager validation (PR #333)
-    (fetchpatch {
-      url = "https://github.com/Qiskit/qiskit-ignis/commit/7cc8eb2e852b383ea429233fa43d3728931f1707.patch";
-      sha256 = "0mdygykilg4qivdaa731z3y56l3ax4jp1sil9npqv0gn4p03c9g5";
-    })
-  ];
+  # Fixed qiskit-ignis PR #385, figured this is easier than fetchpatch
+  postPatch = ''
+    substituteInPlace qiskit/ignis/logging/ignis_logging.py --replace "self.configure_logger" "self._configure_logger"
+  '';
 
   propagatedBuildInputs = [
     numpy
     qiskit-terra
+    scikitlearn
     scipy
   ];
 
@@ -49,13 +44,18 @@ buildPythonPackage rec {
   dontUseSetuptoolsCheck = true;
   preCheck = ''export HOME=$TMPDIR'';
   checkInputs = [
+    ddt
     pytestCheckHook
     qiskit-aer
   ];
+  # Test is in test/verification/test_entanglemet.py. test fails due to out-of-date calls & bad logic with this file since qiskit-ignis#328
+  # see qiskit-ignis#386 for all issues. Should be able to re-enable in future.
+  disabledTests = [ "TestEntanglement" ];
 
   meta = with lib; {
     description = "Qiskit tools for quantum hardware verification, noise characterization, and error correction";
-    homepage = "https://github.com/QISKit/qiskit-ignis";
+    homepage = "https://qiskit.org/ignis";
+    downloadPage = "https://github.com/QISKit/qiskit-ignis/releases";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/qiskit-terra/default.nix b/pkgs/development/python-modules/qiskit-terra/default.nix
index 4a015e15d5d6..14497b20b0d0 100644
--- a/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -2,35 +2,41 @@
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
+  # Python requirements
 , cython
 , dill
+, fastjsonschema
 , jsonschema
 , numpy
 , marshmallow
 , marshmallow-polyfield
-, matplotlib
 , networkx
 , ply
 , psutil
+, python-constraint
+, retworkx
 , scipy
 , sympy
+  # Python visualization requirements, semi-optional
+, ipywidgets
+, matplotlib
+, pillow
+, pydot
+, pygments
+, pylatexenc
+, seaborn
   # test requirements
 , ddt
 , hypothesis
-, ipywidgets
 , nbformat
 , nbconvert
-, pillow
-, pydot
-, python
-, pygraphviz
-, pylatexenc
 , pytestCheckHook
+, python
 }:
 
 buildPythonPackage rec {
   pname = "qiskit-terra";
-  version = "0.12.0";
+  version = "0.13.0";
 
   disabled = pythonOlder "3.5";
 
@@ -38,13 +44,14 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "1yarfziy2w8n1d7zyyxykfs68608j8md4kwfyhbyc6wy483fk9sy";
+    sha256 = "03fgqmyahgmkf5dbw19n9c1v8p4kmpk50wxhhc8435cclvs26x9j";
   };
 
   nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     dill
+    fastjsonschema
     jsonschema
     numpy
     marshmallow
@@ -53,34 +60,41 @@ buildPythonPackage rec {
     networkx
     ply
     psutil
+    python-constraint
+    retworkx
     scipy
     sympy
+    # Optional/visualization inputs
+    ipywidgets
+    matplotlib
+    pillow
+    pydot
+    pygments
+    pylatexenc
+    seaborn
   ];
 
+  postPatch = ''
+    # Fix relative imports in tests
+    touch test/python/dagcircuit/__init__.py
+  '';
 
   # *** Tests ***
   checkInputs = [
     ddt
     hypothesis
-    ipywidgets
     nbformat
     nbconvert
-    pillow
-    pydot
-    pygraphviz
-    pylatexenc
     pytestCheckHook
   ];
+  dontUseSetuptoolsCheck = true;  # can't find setup.py, so fails. tested by pytest
 
   pythonImportsCheck = [
     "qiskit"
     "qiskit.transpiler.passes.routing.cython.stochastic_swap.swap_trial"
   ];
 
-  dontUseSetuptoolsCheck = true;  # can't find setup.py, so fails. tested by pytest
-
   disabledTests = [
-    "test_long_name"  # generated circuit images differ for some reason
     "test_jupyter_jobs_pbars" # needs IBMQ provider package (qiskit-ibmq-provider), circular dependency
   ];
 
@@ -112,7 +126,8 @@ buildPythonPackage rec {
     longDescription = ''
       Allows the user to write quantum circuits easily, and takes care of the constraints of real hardware.
     '';
-    homepage = "https://github.com/QISKit/qiskit-terra";
+    homepage = "https://qiskit.org/terra";
+    downloadPage = "https://github.com/QISKit/qiskit-terra/releases";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/qiskit/default.nix b/pkgs/development/python-modules/qiskit/default.nix
index 3b5c9e706dc4..ca0988955d52 100644
--- a/pkgs/development/python-modules/qiskit/default.nix
+++ b/pkgs/development/python-modules/qiskit/default.nix
@@ -15,7 +15,7 @@
 buildPythonPackage rec {
   pname = "qiskit";
   # NOTE: This version denotes a specific set of subpackages. See https://qiskit.org/documentation/release_notes.html#version-history
-  version = "0.17.0";
+  version = "0.18.2";
 
   disabled = pythonOlder "3.5";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit";
     rev = version;
-    sha256 = "1cnjcvvzklyq102fipqnwd5ham0sp0451gp7j79cwwsxzvji6pcc";
+    sha256 = "05pwpcps1ksqx6m6hwq90l8sbak64fsz76yv4q3jplfjf6597k6p";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/retworkx/default.nix b/pkgs/development/python-modules/retworkx/default.nix
new file mode 100644
index 000000000000..531edab27467
--- /dev/null
+++ b/pkgs/development/python-modules/retworkx/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, pythonAtLeast
+, isPy37
+, isPy38
+, fetchFromGitHub
+, fetchPypi
+  # Check inputs
+, pytestCheckHook
+}:
+
+let
+  rx-version = "0.3.3";
+  wheel-args = if isPy37 then
+      { python = "cp37"; sha256 = "1gbz7sh9i4h41xs9c40lixfdigmvfykkgxgzwsrs8v0smx20dczy"; }
+    else if isPy38 then
+      { python = "cp38"; sha256 = "09xxgp4ac4q6mfkj6lsqqfrzz1cb02vxy7wlv0bq3z2hd0jcanxk"; }
+    else throw "python version & hash not included. Override attribute `wheel-args` with version & hash at https://pypi.org/project/retworkx";
+
+  github-source = fetchFromGitHub {
+    owner = "Qiskit";
+    repo = "retworkx";
+    rev = rx-version;
+    sha256 = "160w5vkzrl5rzcrdwhjq820i5lmc527m6hg0kxx0k6n2bz9qn26g";
+  };
+in
+buildPythonPackage rec {
+  pname = "retworkx";
+  version = rx-version;
+  format = "wheel";
+
+  disabled = pythonOlder "3.5" || pythonAtLeast "3.9"; # compiled versions only included for 3.5 <= py <= 3.8
+
+  src = fetchPypi {
+    inherit pname version format;
+    inherit (wheel-args) python sha256;
+    abi = if pythonOlder "3.8" then "${wheel-args.python}m" else wheel-args.python;
+    platform = "manylinux2010_x86_64"; # i686, aarch64, and ppc64 also available, restricting to x86 for simplicity
+  };
+
+  pythonImportsCheck = [ "retworkx" ];
+
+  checkInputs = [ pytestCheckHook ];
+  preCheck = ''
+    pushd $(mktemp -d)
+    cp -r ${github-source}/$sourceRoot/tests .
+  '';
+  postCheck = "popd";
+
+  meta = with lib; {
+    description = "A python graph library implemented in Rust.";
+    homepage = "https://retworkx.readthedocs.io/en/latest/index.html";
+    downloadPage = "https://github.com/Qiskit/retworkx/releases";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/development/python-modules/scikitlearn/0.20.nix b/pkgs/development/python-modules/scikitlearn/0.20.nix
index 790c29703767..4d8e8d00f434 100644
--- a/pkgs/development/python-modules/scikitlearn/0.20.nix
+++ b/pkgs/development/python-modules/scikitlearn/0.20.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "A set of python modules for machine learning and data mining";
-    homepage = "http://scikit-learn.org";
+    homepage = "https://scikit-learn.org";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/scikitlearn/default.nix b/pkgs/development/python-modules/scikitlearn/default.nix
index d5d5ee8b7881..c7519ee39624 100644
--- a/pkgs/development/python-modules/scikitlearn/default.nix
+++ b/pkgs/development/python-modules/scikitlearn/default.nix
@@ -61,7 +61,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "A set of python modules for machine learning and data mining";
-    homepage = "http://scikit-learn.org";
+    homepage = "https://scikit-learn.org";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index a9947e7e689f..ace6c248ab2c 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -53,6 +53,8 @@ in buildPythonPackage rec {
 
   setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
 
+  SCIPY_USE_G77_ABI_WRAPPER = 1;
+
   meta = {
     description = "SciPy (pronounced 'Sigh Pie') is open-source software for mathematics, science, and engineering. ";
     homepage = "https://www.scipy.org/";
diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix
index 05c0c43c15c7..2827f7151f4d 100644
--- a/pkgs/development/python-modules/scrapy/default.nix
+++ b/pkgs/development/python-modules/scrapy/default.nix
@@ -26,7 +26,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.1";
+  version = "2.1.0";
   pname = "Scrapy";
 
   disabled = isPy27;
@@ -78,7 +78,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "85581a01f4160a103ca9906ffa4e44474f4ecd1685f0934728892c58ebf111f6";
+    sha256 = "640aea0f9be9b055f5cfec5ab78ee88bb37a5be3809b138329bd2af51392ec7f";
   };
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/subdownloader/default.nix b/pkgs/development/python-modules/subdownloader/default.nix
index 8c5ab94f9d62..c4d57bef0ea9 100644
--- a/pkgs/development/python-modules/subdownloader/default.nix
+++ b/pkgs/development/python-modules/subdownloader/default.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Tool for automatic download/upload subtitles for videofiles using fast hashing";
-    homepage = "http://www.subdownloader.net";
+    homepage = "https://www.subdownloader.net";
     license = licenses.gpl3;
   };
 
diff --git a/pkgs/development/python-modules/untangle/default.nix b/pkgs/development/python-modules/untangle/default.nix
index f8f172e78b13..9b8e915a8ba7 100644
--- a/pkgs/development/python-modules/untangle/default.nix
+++ b/pkgs/development/python-modules/untangle/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   
   meta = with lib; {
     description = "Convert XML documents into Python objects";
-    homepage = "http://github.com/stchris/untangle";
+    homepage = "https://github.com/stchris/untangle";
     license = licenses.mit;
     maintainers = [ maintainers.arnoldfarkas ];
   };