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/apache-airflow/default.nix11
-rw-r--r--pkgs/development/python-modules/audio-metadata/default.nix3
-rw-r--r--pkgs/development/python-modules/bidict/default.nix6
-rw-r--r--pkgs/development/python-modules/capturer/default.nix4
-rw-r--r--pkgs/development/python-modules/cssselect2/default.nix16
-rw-r--r--pkgs/development/python-modules/dm-sonnet/default.nix2
-rw-r--r--pkgs/development/python-modules/fastapi/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-appbuilder/default.nix3
-rw-r--r--pkgs/development/python-modules/gdown/default.nix31
-rw-r--r--pkgs/development/python-modules/google-music-proto/default.nix2
-rw-r--r--pkgs/development/python-modules/google_cloud_secret_manager/default.nix34
-rw-r--r--pkgs/development/python-modules/graphite-web/update-django-tagging.patch15
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--pkgs/development/python-modules/html-sanitizer/default.nix21
-rw-r--r--pkgs/development/python-modules/i3ipc/default.nix7
-rw-r--r--pkgs/development/python-modules/imageio/default.nix8
-rw-r--r--pkgs/development/python-modules/lark-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/marionette-harness/mozfile.nix3
-rw-r--r--pkgs/development/python-modules/meshlabxml/default.nix29
-rw-r--r--pkgs/development/python-modules/mido/default.nix39
-rw-r--r--pkgs/development/python-modules/mido/libportmidi-cdll.patch19
-rw-r--r--pkgs/development/python-modules/nbclient/default.nix24
-rw-r--r--pkgs/development/python-modules/papermill/default.nix4
-rw-r--r--pkgs/development/python-modules/pkuseg/default.nix36
-rw-r--r--pkgs/development/python-modules/progressbar2/default.nix10
-rw-r--r--pkgs/development/python-modules/pydicom/default.nix2
-rw-r--r--pkgs/development/python-modules/pylint/1.9.nix4
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix23
-rw-r--r--pkgs/development/python-modules/python-igraph/default.nix9
-rw-r--r--pkgs/development/python-modules/python-rtmidi/default.nix27
-rw-r--r--pkgs/development/python-modules/pywebview/default.nix23
-rw-r--r--pkgs/development/python-modules/qasm2image/default.nix1
-rw-r--r--pkgs/development/python-modules/qiskit-aer/default.nix17
-rw-r--r--pkgs/development/python-modules/qiskit-aqua/default.nix20
-rw-r--r--pkgs/development/python-modules/qiskit-ibmq-provider/default.nix6
-rw-r--r--pkgs/development/python-modules/qiskit-ignis/default.nix9
-rw-r--r--pkgs/development/python-modules/qiskit-terra/default.nix7
-rw-r--r--pkgs/development/python-modules/qiskit/default.nix6
-rw-r--r--pkgs/development/python-modules/retworkx/default.nix23
-rw-r--r--pkgs/development/python-modules/rtmidi-python/default.nix29
-rw-r--r--pkgs/development/python-modules/selectors2/default.nix3
-rw-r--r--pkgs/development/python-modules/semver/default.nix25
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix6
-rw-r--r--pkgs/development/python-modules/shamir-mnemonic/default.nix2
-rw-r--r--pkgs/development/python-modules/simpy/default.nix14
-rw-r--r--pkgs/development/python-modules/somajo/default.nix4
-rw-r--r--pkgs/development/python-modules/spacy/models.json182
-rw-r--r--pkgs/development/python-modules/spacy/models.nix10
-rw-r--r--pkgs/development/python-modules/sslyze/default.nix4
-rw-r--r--pkgs/development/python-modules/tbm-utils/default.nix7
-rw-r--r--pkgs/development/python-modules/tensorboardx/default.nix31
-rw-r--r--pkgs/development/python-modules/tensorflow-probability/default.nix2
-rw-r--r--pkgs/development/python-modules/tinycss2/default.nix28
-rw-r--r--pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch12
-rw-r--r--pkgs/development/python-modules/trytond/default.nix77
-rw-r--r--pkgs/development/python-modules/webcolors/default.nix2
56 files changed, 801 insertions, 153 deletions
diff --git a/pkgs/development/python-modules/apache-airflow/default.nix b/pkgs/development/python-modules/apache-airflow/default.nix
index f8ef6b9492a..ca2cb03f967 100644
--- a/pkgs/development/python-modules/apache-airflow/default.nix
+++ b/pkgs/development/python-modules/apache-airflow/default.nix
@@ -46,7 +46,6 @@
 , thrift
 , tzlocal
 , unicodecsv
-, werkzeug
 , zope_deprecation
 , enum34
 , typing
@@ -127,7 +126,6 @@ buildPythonPackage rec {
     thrift
     tzlocal
     unicodecsv
-    werkzeug
     zope_deprecation
   ];
 
@@ -143,24 +141,25 @@ buildPythonPackage rec {
       --replace "pandas>=0.17.1, <1.0.0" "pandas" \
       --replace "flask-caching>=1.3.3, <1.4.0" "flask-caching" \
       --replace "flask-appbuilder>=1.12.5, <2.0.0" "flask-appbuilder" \
+      --replace "flask-admin==1.5.3" "flask-admin" \
+      --replace "flask-login>=0.3, <0.5" "flask-login" \
       --replace "pendulum==1.4.4" "pendulum" \
       --replace "cached_property~=1.5" "cached_property" \
       --replace "dill>=0.2.2, <0.3" "dill" \
       --replace "configparser>=3.5.0, <3.6.0" "configparser" \
-      --replace "jinja2>=2.7.3, <=2.10.0" "jinja2" \
+      --replace "jinja2>=2.10.1, <2.11.0" "jinja2" \
       --replace "colorlog==4.0.2" "colorlog" \
       --replace "funcsigs==1.0.0" "funcsigs" \
       --replace "flask-swagger==0.2.13" "flask-swagger" \
       --replace "python-daemon>=2.1.1, <2.2" "python-daemon" \
-      --replace "alembic>=0.9, <1.0" "alembic" \
+      --replace "alembic>=1.0, <2.0" "alembic" \
       --replace "markdown>=2.5.2, <3.0" "markdown" \
       --replace "future>=0.16.0, <0.17" "future" \
       --replace "tenacity==4.12.0" "tenacity" \
       --replace "text-unidecode==1.2" "text-unidecode" \
       --replace "tzlocal>=1.4,<2.0.0" "tzlocal" \
       --replace "sqlalchemy~=1.3" "sqlalchemy" \
-      --replace "gunicorn>=19.5.0, <20.0" "gunicorn" \
-      --replace "werkzeug>=0.14.1, <0.15.0" "werkzeug"
+      --replace "gunicorn>=19.5.0, <20.0" "gunicorn"
 
     # dumb-init is only needed for CI and Docker, not relevant for NixOS.
     substituteInPlace setup.py \
diff --git a/pkgs/development/python-modules/audio-metadata/default.nix b/pkgs/development/python-modules/audio-metadata/default.nix
index f477cbfc0a8..1adee4403b9 100644
--- a/pkgs/development/python-modules/audio-metadata/default.nix
+++ b/pkgs/development/python-modules/audio-metadata/default.nix
@@ -19,7 +19,8 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace setup.py \
       --replace "bidict>=0.17,<0.18" "bidict" \
-      --replace "more-itertools>=4.0,<8.0" "more-itertools"
+      --replace "more-itertools>=4.0,<8.0" "more-itertools" \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bidict/default.nix b/pkgs/development/python-modules/bidict/default.nix
index e29263a6b4f..ec0440b9e44 100644
--- a/pkgs/development/python-modules/bidict/default.nix
+++ b/pkgs/development/python-modules/bidict/default.nix
@@ -23,6 +23,12 @@ buildPythonPackage rec {
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ sphinx ];
 
+  # this can be removed >0.19.0
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "setuptools_scm < 4" "setuptools_scm"
+  '';
+
   checkInputs = [
     hypothesis
     py
diff --git a/pkgs/development/python-modules/capturer/default.nix b/pkgs/development/python-modules/capturer/default.nix
index 2dcd075ec0e..821561c0555 100644
--- a/pkgs/development/python-modules/capturer/default.nix
+++ b/pkgs/development/python-modules/capturer/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "capturer";
-  version = "2.4";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-capturer";
     rev = version;
-    sha256 = "07zy264xd0g7pz9sxjqcpwmrck334xcbb7wfss26lmvgdr5nhcb9";
+    sha256 = "0fwrxa049gzin5dck7fvwhdp1856jrn0d7mcjcjsd7ndqvhgvjj1";
   };
 
   propagatedBuildInputs = [ humanfriendly ];
diff --git a/pkgs/development/python-modules/cssselect2/default.nix b/pkgs/development/python-modules/cssselect2/default.nix
index 3aa8ab62240..b1969022d96 100644
--- a/pkgs/development/python-modules/cssselect2/default.nix
+++ b/pkgs/development/python-modules/cssselect2/default.nix
@@ -1,8 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, tinycss2, pytest, pytestrunner }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, tinycss2
+, pytest
+, pytestrunner
+}:
 
 buildPythonPackage rec {
   pname = "cssselect2";
   version = "0.3.0";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
@@ -11,12 +19,10 @@ buildPythonPackage rec {
 
   # We're not interested in code quality tests
   postPatch = ''
-    substituteInPlace setup.py \
+    substituteInPlace setup.cfg \
       --replace "pytest-cov" "" \
       --replace "pytest-flake8" "" \
-      --replace "pytest-isort" ""
-    substituteInPlace setup.cfg \
-      --replace "--cov=cssselect2" "" \
+      --replace "pytest-isort" "" \
       --replace "--flake8" "" \
       --replace "--isort" ""
   '';
diff --git a/pkgs/development/python-modules/dm-sonnet/default.nix b/pkgs/development/python-modules/dm-sonnet/default.nix
index 1f9c61e4ed4..627f8eedaeb 100644
--- a/pkgs/development/python-modules/dm-sonnet/default.nix
+++ b/pkgs/development/python-modules/dm-sonnet/default.nix
@@ -36,7 +36,7 @@ let
     bazelTarget = ":install";
 
     fetchAttrs = {
-      sha256 = "1gag2xghik68zblhwbdd206hs8nxp2sclw182x2qi78jqgfnq5ci";
+      sha256 = "1dka5nap3d28n18pn3wp5xsi4x3z02h1j8rcjdvi3y6dbqjwdw0v";
     };
 
     bazelFlags = [
diff --git a/pkgs/development/python-modules/fastapi/default.nix b/pkgs/development/python-modules/fastapi/default.nix
index 3513f57cdbe..32ebd6a0307 100644
--- a/pkgs/development/python-modules/fastapi/default.nix
+++ b/pkgs/development/python-modules/fastapi/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.54.1";
+  version = "0.55.1";
   format = "flit";
   disabled = !isPy3k;
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "tiangolo";
     repo = "fastapi";
     rev = version;
-    sha256 = "0k0lss8x6lzf0szcli48v28r269fsx1jdkr9q78liz47dz5x03d8";
+    sha256 = "1515nhwari48v0angyl5z3cfpvwn4al2nvqh0cjd9xgxzvm310s8";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/flask-appbuilder/default.nix b/pkgs/development/python-modules/flask-appbuilder/default.nix
index 01bd180a5ae..5119d3c39ac 100644
--- a/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -66,7 +66,8 @@ buildPythonPackage rec {
       --replace "marshmallow>=2.18.0, <4.0.0" "marshmallow" \
       --replace "PyJWT>=1.7.1" "PyJWT" \
       --replace "Flask-SQLAlchemy>=2.4, <3" "Flask-SQLAlchemy" \
-      --replace "Flask-JWT-Extended>=3.18, <4" "Flask-JWT-Extended"
+      --replace "Flask-JWT-Extended>=3.18, <4" "Flask-JWT-Extended" \
+      --replace "Flask-Login>=0.3, <0.5" "Flask-Login"
   '';
 
   # majority of tests require network access or mongo
diff --git a/pkgs/development/python-modules/gdown/default.nix b/pkgs/development/python-modules/gdown/default.nix
new file mode 100644
index 00000000000..74eb5de4865
--- /dev/null
+++ b/pkgs/development/python-modules/gdown/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, filelock
+, requests
+, tqdm
+, setuptools
+}:
+
+buildPythonApplication rec {
+  pname = "gdown";
+  version = "3.11.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1p023812hh7w7d08njjsfn0xzldl4m73yx8p243yb2q49ypjl6nz";
+  };
+
+  propagatedBuildInputs = [ filelock requests tqdm setuptools ];
+
+  checkPhase = ''
+    $out/bin/gdown --help > /dev/null
+  '';
+
+  meta = with lib; {
+    description = "A CLI tool for downloading large files from Google Drive";
+    homepage = "https://github.com/wkentaro/gdown";
+    license = licenses.mit;
+    maintainers = with maintainers; [ breakds ];
+  };
+}
diff --git a/pkgs/development/python-modules/google-music-proto/default.nix b/pkgs/development/python-modules/google-music-proto/default.nix
index af57e3209d1..16363192c81 100644
--- a/pkgs/development/python-modules/google-music-proto/default.nix
+++ b/pkgs/development/python-modules/google-music-proto/default.nix
@@ -19,6 +19,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     sed -i -e "/audio-metadata/c\'audio-metadata'," -e "/marshmallow/c\'marshmallow'," setup.py
+    substituteInPlace setup.py \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google_cloud_secret_manager/default.nix b/pkgs/development/python-modules/google_cloud_secret_manager/default.nix
new file mode 100644
index 00000000000..513b76bafa4
--- /dev/null
+++ b/pkgs/development/python-modules/google_cloud_secret_manager/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchPypi
+, grpc_google_iam_v1, google_api_core
+, pytest, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-secret-manager";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1cm3xqacxnbpv2706bd2jl86mvcsphpjlvhzngz2k2p48a0jjx8r";
+  };
+
+  propagatedBuildInputs = [
+    google_api_core
+    grpc_google_iam_v1
+  ];
+
+  checkInputs = [
+    mock
+    pytest
+  ];
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Secret Manager API: Stores, manages, and secures access to application secrets";
+    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/pkgs/development/python-modules/graphite-web/update-django-tagging.patch b/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
index 48d16d50f42..9774f7e70a7 100644
--- a/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
+++ b/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
@@ -1,12 +1,13 @@
-diff -Nur a/setup.py b/setup.py
---- a/setup.py	2020-03-12 18:45:34.654296302 +0100
-+++ b/setup.py	2020-03-12 18:46:17.476893828 +0100
-@@ -115,7 +115,7 @@
+diff --git a/setup.py b/setup.py
+index a1a21f1..f0d1051 100644
+--- a/setup.py
++++ b/setup.py
+@@ -117,7 +117,7 @@ try:
          ['templates/*', 'local_settings.py.example']},
        scripts=glob('bin/*'),
        data_files=list(webapp_content.items()) + storage_dirs + conf_files + examples,
--      install_requires=['Django>=1.8,<2.3', 'django-tagging==0.4.3', 'pytz', 'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
-+      install_requires=['Django>=1.8,<2.3', 'django-tagging==0.4.6', 'pytz', 'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
+-      install_requires=['Django>=1.8,<3.1', 'django-tagging==0.4.3', 'pytz',
++      install_requires=['Django>=1.8,<3.1', 'django-tagging==0.5.0', 'pytz',
+                         'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
        classifiers=[
            'Intended Audience :: Developers',
-           'Natural Language :: English',
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
index 635ad7a283e..99612882814 100644
--- a/pkgs/development/python-modules/hstspreload/default.nix
+++ b/pkgs/development/python-modules/hstspreload/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2020.5.19";
+  version = "2020.6.9";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "09a5vajzw3f2kpdq9ydzx1f840xmdmzb6br3ns79mnqnsw6nfs6z";
+    sha256 = "12js2xcj4979jklc19hjmv5p2b6689p18p4w9swhjc6cgcwm4jy2";
   };
 
   # tests require network connection
diff --git a/pkgs/development/python-modules/html-sanitizer/default.nix b/pkgs/development/python-modules/html-sanitizer/default.nix
new file mode 100644
index 00000000000..17783f38d1f
--- /dev/null
+++ b/pkgs/development/python-modules/html-sanitizer/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchFromGitHub, lxml, beautifulsoup4, pytest, pytestrunner }:
+
+buildPythonPackage rec {
+  pname = "html-sanitizer";
+  version = "1.9.1";
+
+  src = fetchFromGitHub {
+    owner = "matthiask";
+    repo = pname;
+    rev = version;
+    sha256 = "0nnv34924r0yn01rwlk749j5ijy7yxyj302s1i57yjrkqr3zlvas";
+  };
+
+  propagatedBuildInputs = [ lxml beautifulsoup4 ];
+
+  meta = with lib; {
+    description = "An  allowlist-based and very opinionated HTML sanitizer that can be used both for untrusted and trusted sources.";
+    homepage = "https://github.com/matthiask/html-sanitizer";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/i3ipc/default.nix b/pkgs/development/python-modules/i3ipc/default.nix
index f5a8fc1e46c..4cc8574c842 100644
--- a/pkgs/development/python-modules/i3ipc/default.nix
+++ b/pkgs/development/python-modules/i3ipc/default.nix
@@ -1,20 +1,19 @@
 { stdenv, buildPythonPackage, fetchFromGitHub
-, enum-compat
 , xorgserver, pytest, pytest-xvfb, pytest-asyncio, i3, python, xlib, xdpyinfo
 , makeFontsConf, coreutils
 }:
 
 buildPythonPackage rec {
   pname = "i3ipc";
-  version = "2.1.1";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner  = "acrisci";
     repo   = "i3ipc-python";
     rev    = "v${version}";
-    sha256 = "10zpbiw1gcndn439g1vxcdkxllwp02qcmaal4w7hi2rzgaw1xkdk";
+    sha256 = "13bzs9dcv27czpnnbgz7a037lm8h991c8gk0qzzk5mq5yak24715";
   };
-  propagatedBuildInputs = [ enum-compat xlib ];
+  propagatedBuildInputs = [ xlib ];
 
   fontsConf = makeFontsConf {
     fontDirectories = [ ];
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index 3497d748575..4868f3ae371 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , buildPythonPackage
+, isPy27
 , pathlib
 , fetchPypi
 , pillow
@@ -16,6 +17,7 @@
 buildPythonPackage rec {
   pname = "imageio";
   version = "2.8.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     sha256 = "fb5fd6d3d17126bbaac9af29fe340e2c97a196eb9416d4f28c0e543744a152cf";
@@ -25,11 +27,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest psutil ] ++ stdenv.lib.optionals isPy3k [
     imageio-ffmpeg ffmpeg_3
     ];
-  propagatedBuildInputs = [ numpy pillow ] ++ stdenv.lib.optionals (!isPy3k) [
-    futures
-    enum34
-    pathlib
-  ];
+  propagatedBuildInputs = [ numpy pillow ];
 
   checkPhase = ''
     export IMAGEIO_USERDIR="$TMP"
diff --git a/pkgs/development/python-modules/lark-parser/default.nix b/pkgs/development/python-modules/lark-parser/default.nix
index 41c16548032..a95a8907422 100644
--- a/pkgs/development/python-modules/lark-parser/default.nix
+++ b/pkgs/development/python-modules/lark-parser/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "lark-parser";
-  version = "0.8.5";
+  version = "0.8.8";
 
   src = fetchFromGitHub {
     owner = "lark-parser";
     repo = "lark";
     rev = version;
-    sha256 = "1rfybmr0rlljhc0dpd9npbw8x7r6dvnn2wvclz93rmgkzhmd3zah";
+    sha256 = "1q2dvkkfx9dvag5v5ps0ki4avh7i003gn9sj30jy1rsv1bg4y2mb";
   };
 
   # tests of Nearley support require js2py
diff --git a/pkgs/development/python-modules/marionette-harness/mozfile.nix b/pkgs/development/python-modules/marionette-harness/mozfile.nix
index 829e909535a..2cce0a22124 100644
--- a/pkgs/development/python-modules/marionette-harness/mozfile.nix
+++ b/pkgs/development/python-modules/marionette-harness/mozfile.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
 , six
 }:
 
@@ -14,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "e5dc835582ea150e35ecd57e9d86cb707d3aa3b2505679db7332326dd49fd6b8";
   };
 
-  propagatedBuildInputs = lib.optional isPy27 six;
+  propagatedBuildInputs = [ six ];
 
   # mozhttpd -> moznetwork -> mozinfo -> mozfile
   doCheck = false;
diff --git a/pkgs/development/python-modules/meshlabxml/default.nix b/pkgs/development/python-modules/meshlabxml/default.nix
new file mode 100644
index 00000000000..c1091296d2e
--- /dev/null
+++ b/pkgs/development/python-modules/meshlabxml/default.nix
@@ -0,0 +1,29 @@
+{
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  lib,
+}:
+
+buildPythonPackage rec {
+  pname = "MeshLabXML";
+  version = "2018.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1villmg46hqby5jjkkpxr5bxydr72y5b3cbfngwpyxxdljn091w8";
+  };
+
+  propagatedBuildInputs = [ ];
+
+  doCheck = false; # Upstream not currently have any tests.
+
+  pythonImportsCheck = [ "meshlabxml" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/3DLIRIOUS/MeshLabXML";
+    description = "Create and run MeshLab XML scripts with Python";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ nh2 ];
+  };
+}
diff --git a/pkgs/development/python-modules/mido/default.nix b/pkgs/development/python-modules/mido/default.nix
new file mode 100644
index 00000000000..8312ea783cb
--- /dev/null
+++ b/pkgs/development/python-modules/mido/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, buildPythonPackage, fetchPypi, substituteAll
+, portmidi, pygame, python-rtmidi, rtmidi-python
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "mido";
+  version = "1.2.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1k3sgkxc7j49bapib3b5jnircb1yhyyd8mi0mbfd78zgix9db9y4";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./libportmidi-cdll.patch;
+      libportmidi = "${portmidi.out}/lib/libportmidi${stdenv.targetPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    pygame
+    python-rtmidi
+    rtmidi-python
+  ];
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    py.test . -rs -q
+  '';
+
+  meta = with lib; {
+    description = "MIDI Objects for Python";
+    homepage = "https://mido.readthedocs.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/mido/libportmidi-cdll.patch b/pkgs/development/python-modules/mido/libportmidi-cdll.patch
new file mode 100644
index 00000000000..455064f12b9
--- /dev/null
+++ b/pkgs/development/python-modules/mido/libportmidi-cdll.patch
@@ -0,0 +1,19 @@
+diff --git a/mido/backends/portmidi_init.py b/mido/backends/portmidi_init.py
+index 84bb128..5efcdaa 100644
+--- a/mido/backends/portmidi_init.py
++++ b/mido/backends/portmidi_init.py
+@@ -10,13 +10,7 @@ from ctypes import (CDLL, CFUNCTYPE, POINTER, Structure, c_char_p,
+                     create_string_buffer, byref)
+ import ctypes.util
+ 
+-dll_name = ''
+-if sys.platform == 'darwin':
+-    dll_name = ctypes.util.find_library('libportmidi.dylib')
+-elif sys.platform in ('win32', 'cygwin'):
+-    dll_name = 'portmidi.dll'
+-else:
+-    dll_name = 'libportmidi.so'
++dll_name = '@libportmidi@'
+ 
+ lib = CDLL(dll_name)
+ 
diff --git a/pkgs/development/python-modules/nbclient/default.nix b/pkgs/development/python-modules/nbclient/default.nix
new file mode 100644
index 00000000000..18704eaee08
--- /dev/null
+++ b/pkgs/development/python-modules/nbclient/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder,
+  async_generator, traitlets, nbformat, nest-asyncio, jupyter_client,
+  pytest, xmltodict, nbconvert, ipywidgets
+}:
+
+buildPythonPackage rec {
+  pname = "nbclient";
+  version = "0.4.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1id6m2dllkjpbv2w0yazxhlkhdd9cac6lxv9csf053il9wq322lk";
+  };
+
+  checkInputs = [ pytest xmltodict nbconvert ipywidgets ];
+  propagatedBuildInputs = [ async_generator traitlets nbformat nest-asyncio jupyter_client ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jupyter/nbclient";
+    description = "A client library for executing notebooks";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/papermill/default.nix b/pkgs/development/python-modules/papermill/default.nix
index 591401be226..73f72bd2897 100644
--- a/pkgs/development/python-modules/papermill/default.nix
+++ b/pkgs/development/python-modules/papermill/default.nix
@@ -7,6 +7,7 @@
 , pyyaml
 , nbformat
 , nbconvert
+, nbclient
 , six
 , tqdm
 , jupyter_client
@@ -14,6 +15,7 @@
 , entrypoints
 , tenacity
 , futures
+, black
 , backports_tempfile
 , isPy27
 , pytest
@@ -37,12 +39,14 @@ buildPythonPackage rec {
     pyyaml
     nbformat
     nbconvert
+    nbclient
     six
     tqdm
     jupyter_client
     requests
     entrypoints
     tenacity
+    black
   ] ++ lib.optionals isPy27 [
     futures
     backports_tempfile
diff --git a/pkgs/development/python-modules/pkuseg/default.nix b/pkgs/development/python-modules/pkuseg/default.nix
new file mode 100644
index 00000000000..3b1c2bd5bce
--- /dev/null
+++ b/pkgs/development/python-modules/pkuseg/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, cython
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "pkuseg";
+  version = "0.0.25";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "148yp0l7h8cflxag62pc1iwj5b5liyljnaxwfjaiqwl96vwjn0fx";
+  };
+
+  # Does not seem to have actual tests, but unittest discover
+  # recognizes some non-tests as tests and fails.
+  doCheck = false;
+
+  nativeBuildInputs = [ cython ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  pythonImportsCheck = [ "pkuseg" ];
+
+  meta = with stdenv.lib; {
+    description = "Toolkit for multi-domain Chinese word segmentation";
+    homepage = "https://github.com/lancopku/pkuseg-python";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/pkgs/development/python-modules/progressbar2/default.nix b/pkgs/development/python-modules/progressbar2/default.nix
index a7671d0356a..5136cf20104 100644
--- a/pkgs/development/python-modules/progressbar2/default.nix
+++ b/pkgs/development/python-modules/progressbar2/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "progressbar2";
-  version = "3.51.3";
+  version = "3.51.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ecf687696dd449067f69ef6730c4d4a0189db1f8d1aad9e376358354631d5b2c";
+    sha256 = "0dnfw8mdrz78gck4ibnv64cinbp5f7kw349wjgpwv53z6p7jiwhk";
   };
 
   propagatedBuildInputs = [ python-utils ];
@@ -29,10 +29,10 @@ buildPythonPackage rec {
     pytest sphinx flake8 pytestpep8 pytest-flakes pytestcov
     pytestcache freezegun
   ];
-  # ignore tests on the nix wrapped setup.py and don't flake .eggs directory
+  # ignore tests on the nix wrapped setup.py
   checkPhase = ''
     runHook preCheck
-    ${python.interpreter} setup.py test --addopts "--ignore=.eggs"
+    ${python.interpreter} setup.py test
     runHook postCheck
   '';
 
@@ -40,6 +40,6 @@ buildPythonPackage rec {
     homepage = "https://progressbar-2.readthedocs.io/en/latest/";
     description = "Text progressbar library for python";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ashgillman ];
+    maintainers = with maintainers; [ ashgillman turion ];
   };
 }
diff --git a/pkgs/development/python-modules/pydicom/default.nix b/pkgs/development/python-modules/pydicom/default.nix
index de6f672e27c..b875674df61 100644
--- a/pkgs/development/python-modules/pydicom/default.nix
+++ b/pkgs/development/python-modules/pydicom/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
 , pytestrunner
 , numpy
@@ -10,6 +11,7 @@
 buildPythonPackage rec {
   version = "2.0.0";
   pname = "pydicom";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/pylint/1.9.nix b/pkgs/development/python-modules/pylint/1.9.nix
index 568d85b7e1b..e283cc10d16 100644
--- a/pkgs/development/python-modules/pylint/1.9.nix
+++ b/pkgs/development/python-modules/pylint/1.9.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, astroid, six, isort,
   mccabe, configparser, backports_functools_lru_cache, singledispatch,
-  pytest, pytestrunner, pyenchant, setuptools }:
+  pytest, pytestrunner, setuptools }:
 
 buildPythonPackage rec {
   pname = "pylint";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "004kfapkqxqy2s85pmddqv0fabxdxywxrlbi549p0v237pr2v94p";
   };
 
-  checkInputs = [ pytest pytestrunner pyenchant ];
+  checkInputs = [ pytest pytestrunner ];
 
   propagatedBuildInputs = [ astroid six isort mccabe configparser backports_functools_lru_cache singledispatch setuptools ];
 
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index 12d9daf5b3d..2cd0a0a020f 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, glibcLocales, numpy, pydispatcher, sympy, requests, monty, ruamel_yaml, six, scipy, tabulate, enum34, matplotlib, palettable, spglib, pandas, networkx }:
+{ stdenv, buildPythonPackage, fetchPypi, glibcLocales, numpy, pydispatcher, sympy, requests, monty, ruamel_yaml, six, scipy, tabulate, enum34, matplotlib, palettable, spglib, pandas, plotly, networkx }:
 
 buildPythonPackage rec {
   pname = "pymatgen";
@@ -10,7 +10,26 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ glibcLocales ];
-  propagatedBuildInputs = [ numpy pydispatcher sympy requests monty ruamel_yaml six scipy tabulate enum34 matplotlib palettable spglib pandas networkx ];
+
+
+  propagatedBuildInputs = [
+    enum34
+    matplotlib
+    monty
+    networkx
+    numpy
+    palettable
+    pandas
+    plotly
+    pydispatcher
+    requests
+    ruamel_yaml
+    scipy
+    six
+    spglib
+    sympy
+    tabulate
+  ];
 
   # No tests in pypi tarball.
   doCheck = false;
diff --git a/pkgs/development/python-modules/python-igraph/default.nix b/pkgs/development/python-modules/python-igraph/default.nix
index a2bf20188ff..12a327be2a6 100644
--- a/pkgs/development/python-modules/python-igraph/default.nix
+++ b/pkgs/development/python-modules/python-igraph/default.nix
@@ -1,5 +1,6 @@
 { buildPythonPackage, fetchPypi, lib, isPy3k
-, pkgconfig, igraph }:
+, pkgconfig, igraph
+, texttable }:
 
 buildPythonPackage rec {
   pname = "python-igraph";
@@ -7,12 +8,18 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ igraph ];
+  propagatedBuildInputs = [ texttable ];
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "4601638d7d22eae7608cdf793efac75e6c039770ec4bd2cecf76378c84ce7d72";
   };
 
+  # NB: We want to use our igraph, not vendored igraph, but even with
+  # pkg-config on the PATH, their custom setup.py still needs to be explicitly
+  # told to do it. ~ C.
+  setupPyGlobalFlags = [ "--use-pkg-config" ];
+
   doCheck = !isPy3k;
 
   meta = {
diff --git a/pkgs/development/python-modules/python-rtmidi/default.nix b/pkgs/development/python-modules/python-rtmidi/default.nix
new file mode 100644
index 00000000000..24d86289bf2
--- /dev/null
+++ b/pkgs/development/python-modules/python-rtmidi/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, tox, flake8, alabaster
+}:
+
+buildPythonPackage rec {
+  pname = "python-rtmidi";
+  version = "1.4.1";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0b0y3hnjl2fvm3jyfvp1msfikp19vbqqqi7lawgy3azisvdyrgq7";
+  };
+
+  checkInputs = [
+    tox
+    flake8
+    alabaster
+  ];
+
+  meta = with lib; {
+    description = "A Python binding for the RtMidi C++ library implemented using Cython";
+    homepage = "https://chrisarndt.de/projects/python-rtmidi/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pywebview/default.nix b/pkgs/development/python-modules/pywebview/default.nix
index f12d943aad7..545fb236732 100644
--- a/pkgs/development/python-modules/pywebview/default.nix
+++ b/pkgs/development/python-modules/pywebview/default.nix
@@ -1,23 +1,32 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, importlib-resources, pytest, xvfb_run }:
 
 buildPythonPackage rec {
   pname = "pywebview";
-  version = "3.2";
+  version = "3.3.1";
+  disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "r0x0r";
     repo = "pywebview";
     rev = version;
-    sha256 = "0anwm6s0pp7xmgylr4m52v7lw825sdby7fajcl929l099n757gq7";
+    sha256 = "015z7n0hdgkzn0p7aw1xsv6lwc260p8q67jx0zyd1zghnwyj8k79";
   };
 
-  # disabled due to error in loading unittest
-  # don't know how to make test from: None
-  doCheck = false;
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [ importlib-resources ];
+
+  checkInputs = [ pytest xvfb_run ];
+
+  checkPhase = ''
+    pushd tests
+    patchShebangs run.sh
+    xvfb-run -s '-screen 0 800x600x24' ./run.sh
+    popd
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/r0x0r/pywebview";
-    description = "Lightweight cross-platform wrapper around a webview.";
+    description = "Lightweight cross-platform wrapper around a webview";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jojosch ];
   };
diff --git a/pkgs/development/python-modules/qasm2image/default.nix b/pkgs/development/python-modules/qasm2image/default.nix
index 9748e3e4348..962ba62f509 100644
--- a/pkgs/development/python-modules/qasm2image/default.nix
+++ b/pkgs/development/python-modules/qasm2image/default.nix
@@ -48,5 +48,6 @@ buildPythonPackage {
     maintainers = with lib.maintainers; [
       pandaman
     ];
+    broken = true;  # last update Oct 2018, failed tests don't error the build, and out-of-date with latest python3Packages.qiskit
   };
 }
diff --git a/pkgs/development/python-modules/qiskit-aer/default.nix b/pkgs/development/python-modules/qiskit-aer/default.nix
index 7c74ddab2b1..3f0439efc7a 100644
--- a/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aer";
-  version = "0.5.1";
+  version = "0.5.2";
 
   disabled = pythonOlder "3.5";
 
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     repo = "qiskit-aer";
     rev = version;
     fetchSubmodules = true; # fetch muparserx and other required libraries
-    sha256 = "0pbi8ldz8f1zm7pf2n5229g6kccriq21f24q9cb7bd4j5gdky5sk";
+    sha256 = "0vw6b69h8pvzxhaz3k8sg9ac792gz3kklfv0izs6ra83y1dfwhjz";
   };
 
   nativeBuildInputs = [
@@ -48,14 +48,6 @@ buildPythonPackage rec {
     pybind11
   ];
 
-  patches = [
-    (fetchpatch{
-      name = "qiskit-aer-pr-727-fix-random-unitary-test.patch";
-      url = "https://github.com/Qiskit/qiskit-aer/commit/09afb3b6b0710042ab65d88e863363f2c843dcb0.patch";
-      sha256 = "0521b7i4fpc5brqs08w381g3c655f9cbn6my1740jnk7dv5lhsv9";
-    })
-  ];
-
   postPatch = ''
     # remove dependency on PyPi cmake package, which isn't in Nixpkgs
     substituteInPlace setup.py --replace "'cmake!=3.17,!=3.17.0'" ""
@@ -85,6 +77,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
   dontUseSetuptoolsCheck = true;  # Otherwise runs tests twice
+  disabledTests = [
+    # broken with cvxpy >= 1.1.0, see https://github.com/Qiskit/qiskit-aer/issues/779.
+    # TODO: Remove once resolved, probably next qiskit-aer version
+    "test_clifford"
+  ];
 
   preCheck = ''
     # Tests include a compiled "circuit" which is auto-built in $HOME
diff --git a/pkgs/development/python-modules/qiskit-aqua/default.nix b/pkgs/development/python-modules/qiskit-aqua/default.nix
index 8037d28f82c..fe90ee63e00 100644
--- a/pkgs/development/python-modules/qiskit-aqua/default.nix
+++ b/pkgs/development/python-modules/qiskit-aqua/default.nix
@@ -3,7 +3,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 # , cplex
-, cvxopt
+, cvxpy
 , dlx
 , docplex
 , fastdtw
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aqua";
-  version = "0.7.0";
+  version = "0.7.3";
 
   disabled = pythonOlder "3.5";
 
@@ -33,13 +33,13 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aqua";
     rev = version;
-    sha256 = "0yykw6k1rb3f2ihcp0y9pb0695mcmy29nyqlj89qs4da0503vxvh";
+    sha256 = "04zcnrc0vi6dfjahp1019h2ngdgi7l7jvfs9aw0y306nd9g6qgjc";
   };
 
   # Optional packages: pyscf (see below NOTE) & pytorch. Can install via pip/nix if needed.
   propagatedBuildInputs = [
     # cplex
-    cvxopt
+    cvxpy
     docplex
     dlx # Python Dancing Links package
     fastdtw
@@ -81,7 +81,6 @@ buildPythonPackage rec {
         "You must install it yourself via pip or add it to your environment from the Nix User Repository." \
         "', ImportWarning)\n" \
       >> qiskit/optimization/__init__.py
-
   '';
 
   postInstall = "rm -rf $out/${python.sitePackages}/docs";  # Remove docs dir b/c it can cause conflicts.
@@ -106,6 +105,9 @@ buildPythonPackage rec {
     # Disabled due to missing pyscf
     "test_validate" # test/chemistry/test_inputparser.py
 
+    "test_binary" # in SklearnSVM, seems to have trouble with eigenvectors converging
+    "test_pauli_expect_single"  # fails for unknown reason, 3e-3 out of tolerance
+
     # Disabling slow tests > 10 seconds
     "TestVQE"
     "TestVQC"
@@ -127,9 +129,15 @@ buildPythonPackage rec {
     "test_shor_no_factors_1_5"
     "test_shor_no_factors_2_7"
     "test_evolve_2___suzuki___1__3_"
-    "test_delta_4"
+    "test_delta"
     "test_swaprz"
     "test_deprecated_algo_result"
+    "test_unsorted_grouping"
+    "test_ad_hoc_data"
+    "test_nft"
+    "test_oh"
+    "test_confidence_intervals_00001"
+    "test_eoh"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index 5f8f0d94e4f..02cdb8397cb 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.7.0";
+  version = "0.7.2";
 
   disabled = pythonOlder "3.6";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "1n13jjx1cx5gswwk8rpxfjqyk97cwx1n2hwsabkcbi7fksw3c5jk";
+    sha256 = "11h1ca4v11pajzn1cxqhim1hfziqzj27xzakwln13g8zmiqx3csp";
   };
 
   propagatedBuildInputs = [
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   ];
 
   # websockets seems to be pinned b/c in v8+ it drops py3.5 support. Not an issue here (usually py3.7+, and disabled for older py3.6)
-  prePatch = ''
+  postPatch = ''
     substituteInPlace requirements.txt --replace "websockets>=7,<8" "websockets"
     substituteInPlace setup.py --replace "websockets>=7,<8" "websockets"
   '';
diff --git a/pkgs/development/python-modules/qiskit-ignis/default.nix b/pkgs/development/python-modules/qiskit-ignis/default.nix
index 79998a84325..bfd2bffbf47 100644
--- a/pkgs/development/python-modules/qiskit-ignis/default.nix
+++ b/pkgs/development/python-modules/qiskit-ignis/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-ignis";
-  version = "0.3.0";
+  version = "0.3.3";
 
   disabled = pythonOlder "3.6";
 
@@ -25,14 +25,9 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-ignis";
     rev = version;
-    sha256 = "16h04n9hxw669nq2ii16l6h75x8afisvp3j062n4c62kcqci0x4x";
+    sha256 = "0sy9qpw0jqirsk9y61j5kr18jrw1wa812n7y98fjj6w668rrv560";
   };
 
-  # 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
diff --git a/pkgs/development/python-modules/qiskit-terra/default.nix b/pkgs/development/python-modules/qiskit-terra/default.nix
index 78c28a282cb..c1c0dd92837 100644
--- a/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -36,7 +36,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-terra";
-  version = "0.14.1";
+  version = "0.14.2";
 
   disabled = pythonOlder "3.5";
 
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "0pd7x2jrqy7q1s38ychqw9bayjn2rvi6rq7c2c0kd160rwj1l2sc";
+    sha256 = "0p5wapjvy81pnks100xbb23kbs2wyys9ykyc8z4968wl487lq4g5";
   };
 
   nativeBuildInputs = [ cython ];
@@ -94,6 +94,9 @@ buildPythonPackage rec {
     "qiskit.transpiler.passes.routing.cython.stochastic_swap.swap_trial"
   ];
 
+  disabledTests = [
+    "test_random_clifford_valid"  # random test, fails at least once when testing locally.
+  ];
   pytestFlagsArray = [
     "--ignore=test/randomized/test_transpiler_equivalence.py" # collection requires qiskit-aer, which would cause circular dependency
   ];
diff --git a/pkgs/development/python-modules/qiskit/default.nix b/pkgs/development/python-modules/qiskit/default.nix
index ded9c68e6fe..81468da30fb 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.19.1";
+  version = "0.19.6";
 
   disabled = pythonOlder "3.5";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit";
     rev = version;
-    sha256 = "0p1sahgf6qgbkvxb067mnyj6ya8nv7y57yyiiaadhjw242sjkjy5";
+    sha256 = "0liby6ffgrla6wr4k742qkg8m80im372p6hmr4gkz47nmc76zy1i";
   };
 
   propagatedBuildInputs = [
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
   dontUseSetuptoolsCheck = true;
   # following doesn't work b/c they are distributed across different nix sitePackages dirs. Tested with pytest though.
-  # pythonImportsCheck = [ "qiskit" "qiskit.terra" "qiskit.ignis" "qiskit.aer" "qiskit.aqua" ];
+  pythonImportsCheck = [ "qiskit" "qiskit.circuit" "qiskit.ignis" "qiskit.providers.aer" "qiskit.aqua" ];
 
   meta = {
     description = "Software for developing quantum computing programs";
diff --git a/pkgs/development/python-modules/retworkx/default.nix b/pkgs/development/python-modules/retworkx/default.nix
index 531edab2746..309f3532cfc 100644
--- a/pkgs/development/python-modules/retworkx/default.nix
+++ b/pkgs/development/python-modules/retworkx/default.nix
@@ -2,27 +2,30 @@
 , buildPythonPackage
 , pythonOlder
 , pythonAtLeast
-, isPy37
-, isPy38
+, python
 , 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";
+  rx-version = "0.3.4";
+
+  wheel-hashes = {
+    "3.7" = { python = "cp37"; sha256 = "1hfrdj8svkfdraa299gcj18a601l4zn646fkgq7m56brpagssf9l"; };
+    "3.8" = { python = "cp38"; sha256 = "0jm10ywaqr0b456pcp01pb7035nawlndfi998jv8p1a2f5xwjgiq"; };
+  };
+  lookup = set: key: default: if (builtins.hasAttr key set) then (builtins.getAttr key set) else default;
+  wheel-args = lookup
+    wheel-hashes
+    python.pythonVersion
+    (throw "retworkx 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";
+    sha256 = "0cd3x64y49q9a3jrkiknlfkiccxkxgl624x5pqk7gm34s1lnzl8h";
   };
 in
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rtmidi-python/default.nix b/pkgs/development/python-modules/rtmidi-python/default.nix
new file mode 100644
index 00000000000..68927cc9ca0
--- /dev/null
+++ b/pkgs/development/python-modules/rtmidi-python/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi
+, alsaLib
+}:
+
+buildPythonPackage rec {
+  pname = "rtmidi-python";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wpcaxfpbmsjc78g8841kpixr0a3v6zn0ak058s3mm25kcysp4m0";
+  };
+
+  buildInputs = [ alsaLib ];
+
+  # package has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "rtmidi_python"
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for RtMidi";
+    homepage = "https://github.com/superquadratic/rtmidi-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/selectors2/default.nix b/pkgs/development/python-modules/selectors2/default.nix
index 159047eafd7..96917f45be0 100644
--- a/pkgs/development/python-modules/selectors2/default.nix
+++ b/pkgs/development/python-modules/selectors2/default.nix
@@ -17,7 +17,8 @@ buildPythonPackage rec {
     # Trick to disable certain tests that depend on timing which
     # will always fail on hydra
     export TRAVIS=""
-    nosetests tests/test_selectors2.py
+    nosetests tests/test_selectors2.py \
+      --exclude=test_above_fd_setsize
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/semver/default.nix b/pkgs/development/python-modules/semver/default.nix
index bc0262a89c9..5aca34b52f1 100644
--- a/pkgs/development/python-modules/semver/default.nix
+++ b/pkgs/development/python-modules/semver/default.nix
@@ -1,24 +1,27 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pytest }:
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, pytestCheckHook
+, pytestcov
+}:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "semver";
-  version = "2.8.1";
+  version = "2.10.2";
 
   src = fetchFromGitHub {
-    owner = "k-bx";
+    owner = "python-semver";
     repo = "python-semver";
-    rev = "41775dd5f143dfa6ca94885056c9ef5b3ed4e6e1"; # not tagged in repository
-    sha256 = "1rqaakha4sw06k9h0h4g1wmk66zkmhpq92y2rw0kyfpp6xk1zbk2";
+    rev = version;
+    sha256 = "0yxjmcgk5iwp53l9z1cg0ajrj18i09ircs11ifpdrggzm8n1blf3";
   };
 
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    py.test
-  '';
+  preCheck = "rm -rf dist"; # confuses source vs dist imports in pytest
+  checkInputs = [ pytestCheckHook pytestcov ];
 
   meta = with stdenv.lib; {
     description = "Python package to work with Semantic Versioning (http://semver.org/)";
-    homepage = "https://github.com/k-bx/python-semver";
+    homepage = "https://python-semver.readthedocs.io/en/latest/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ np ];
   };
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index ef2680bc4c6..9d2a533ecb6 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -17,6 +17,8 @@
 , stdenv
 , tornado
 , urllib3
+, trytond
+, werkzeug
 }:
 
 buildPythonPackage rec {
@@ -28,10 +30,10 @@ buildPythonPackage rec {
     sha256 = "0e5e947d0f7a969314aa23669a94a9712be5a688ff069ff7b9fc36c66adc160c";
   };
 
-  checkInputs = [ django flask tornado bottle rq falcon sqlalchemy ]
+  checkInputs = [ django flask tornado bottle rq falcon sqlalchemy werkzeug ]
   ++ stdenv.lib.optionals isPy3k [ celery pyramid sanic aiohttp ];
 
-  propagatedBuildInputs = [ urllib3 certifi ];
+  propagatedBuildInputs = [ urllib3 certifi trytond ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/getsentry/sentry-python";
diff --git a/pkgs/development/python-modules/shamir-mnemonic/default.nix b/pkgs/development/python-modules/shamir-mnemonic/default.nix
index 13a946aeafd..099c89803ab 100644
--- a/pkgs/development/python-modules/shamir-mnemonic/default.nix
+++ b/pkgs/development/python-modules/shamir-mnemonic/default.nix
@@ -17,6 +17,6 @@ buildPythonPackage rec {
     description = "Reference implementation of SLIP-0039";
     homepage = "https://github.com/trezor/python-shamir-mnemonic";
     license = licenses.mit;
-    maintainers = [ maintainers."1000101" ];
+    maintainers = with maintainers; [ maintainers."1000101" ];
   };
 }
diff --git a/pkgs/development/python-modules/simpy/default.nix b/pkgs/development/python-modules/simpy/default.nix
index 2ea72441d10..f718b3655f6 100644
--- a/pkgs/development/python-modules/simpy/default.nix
+++ b/pkgs/development/python-modules/simpy/default.nix
@@ -1,21 +1,27 @@
-{ buildPythonPackage, fetchPypi, lib, setuptools_scm, pytestCheckHook }:
+{ buildPythonPackage, fetchPypi, isPy27, lib, setuptools, setuptools_scm
+, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "simpy";
   version = "4.0.1";
 
+  disabled = isPy27;
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "b36542e2faab612f861c5ef4da17220ac1553f5892b3583c67281dbe4faad404";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ setuptools ];
+
   checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    homepage = "https://simpy.readthedocs.io/en/latest/";
-    description = "A process-based discrete-event simulation framework based on standard Python.";
+    homepage = "https://simpy.readthedocs.io/en/${version}/";
+    description = "Process-based discrete-event simulation framework based on standard Python";
     license = [ licenses.mit ];
-    maintainers = with maintainers; [ shlevy ];
+    maintainers = with maintainers; [ dmrauh shlevy ];
   };
 }
diff --git a/pkgs/development/python-modules/somajo/default.nix b/pkgs/development/python-modules/somajo/default.nix
index 958c9ab8266..c9415999262 100644
--- a/pkgs/development/python-modules/somajo/default.nix
+++ b/pkgs/development/python-modules/somajo/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "SoMaJo";
-  version = "2.0.6";
+  version = "2.1.0";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tsproisl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "08nicj3nj6pi6djli26gf0kf3s2da9ysn1cpkyw7j88v8vav0p7s";
+    sha256 = "17ybm5rgwc6jy3i1c8nm05j7fd418n6hp44zv0q77kzhd66am6pp";
   };
 
   propagatedBuildInputs = [ regex ];
diff --git a/pkgs/development/python-modules/spacy/models.json b/pkgs/development/python-modules/spacy/models.json
index 1c02b05d303..3a427f8932a 100644
--- a/pkgs/development/python-modules/spacy/models.json
+++ b/pkgs/development/python-modules/spacy/models.json
@@ -1,79 +1,145 @@
 [{
+  "pname": "da_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "18y1jany1ha27jkwb9563haxsbylm0axkh5c8009lsfxc8y2w9hr",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "da_core_news_md",
+  "version": "2.3.0",
+  "sha256": "06nm5grj5jdx0rja7vw1f91vvd69p6vhafrwpfr1npqk24j6cacb",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "da_core_news_sm",
+  "version": "2.3.0",
+  "sha256": "00byhlrcbg4wxplr473g9b3126pvk4vwy0q34xg0zx4994qb6rgn",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "de_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "0rixhgdz4z7sq6f2b1w3n5cn1645cr37g40hbd9xzlvdzdf5cg6d",
+  "license": "mit"
+},
+{
   "pname": "de_core_news_md",
   "version": "2.3.0",
   "sha256": "0kxir1w000r5fn1kpa38m7688xinkn2mk1m82aiwqlck3r72jdi6",
-  "license": "cc-by-sa-40"
+  "license": "mit"
 },
 {
   "pname": "de_core_news_sm",
   "version": "2.3.0",
   "sha256": "00cbmrf4njg28laysapdnp4rv4lw4yw03rxkynw1ain5fwb0izl7",
-  "license": "cc-by-sa-40"
+  "license": "mit"
+},
+{
+  "pname": "el_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "001c19dd1kirlvzbdv2i89zw8nf6c4icv2w0chm7rd6x9m3i13gd",
+  "license": "cc-by-nc-sa-30"
 },
 {
   "pname": "el_core_news_md",
   "version": "2.3.0",
   "sha256": "170x8bzm5nf02mhkxyxjk58yk2639hsjb5b9prcc69500c0vmnp0",
-  "license": "cc-by-sa-40"
+  "license": "cc-by-nc-sa-30"
 },
 {
   "pname": "el_core_news_sm",
   "version": "2.3.0",
   "sha256": "10mh3za4jvr07rawzk8ps642rp11s3smraj9xvrxflik4fqkz18b",
-  "license": "cc-by-sa-40"
+  "license": "cc-by-nc-sa-30"
 },
 {
   "pname": "en_core_web_lg",
   "version": "2.3.0",
   "sha256": "0mfa5wz31ya295jhyj489gb4qy806zmpq1zc11bvv5alv2m35if2",
-  "license": "cc-by-sa-40"
+  "license": "mit"
 },
 {
   "pname": "en_core_web_md",
   "version": "2.3.0",
   "sha256": "1ys8sqkhiap1mq6mhbkbq8bc07lvl68xngbx725xkwvirzl5gabh",
-  "license": "cc-by-sa-40"
+  "license": "mit"
 },
 {
   "pname": "en_core_web_sm",
   "version": "2.3.0",
   "sha256": "04icv9qf4pj53ll8vqxcjl2a723q1k00i7lifk8wx5saif28g37a",
-  "license": "cc-by-sa-40"
+  "license": "mit"
 },
 {
   "pname": "en_vectors_web_lg",
   "version": "2.3.0",
   "sha256": "13g012rwh0bcxx3ii5mmygqzyryah1y3zd000zhidnacc1x1g743",
-  "license": "cc-by-sa-40"
+  "license": "cc-by-sa-30"
+},
+{
+  "pname": "es_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "1r0pr0lzs3j9w7rd5z9nw87iayjm36v7f7gamvaiiphs6bc5p7ls",
+  "license": "gpl3"
 },
 {
   "pname": "es_core_news_md",
   "version": "2.3.0",
   "sha256": "0nz33bmpr3rxqbnv6vb1id8pkfsvh8ii8vqplwgb3b8772kmpzy2",
-  "license": "cc-by-sa-40"
+  "license": "gpl3"
 },
 {
   "pname": "es_core_news_sm",
   "version": "2.3.0",
   "sha256": "02xqhg4m0gg5r9yibvl02zixkll6w0nsmbdhp07y5yyaqjarc90d",
-  "license": "cc-by-sa-40"
+  "license": "gpl3"
+},
+{
+  "pname": "fr_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "1yliamws8nqqjhpk9gr2dzlk0dms2mr958zbj21biv8fimbq60ik",
+  "license": "lgpllr"
 },
 {
   "pname": "fr_core_news_md",
   "version": "2.3.0",
   "sha256": "04fk212ksac3bp9dj7dmzsdcnbqmbsgymsic6ddcv9zbfdv5d0db",
-  "license": "cc-by-sa-40"
+  "license": "lgpllr"
 },
 {
   "pname": "fr_core_news_sm",
   "version": "2.3.0",
   "sha256": "0kldww855z67qfc9maa9z1lsvdf5vj5vc8gj0x3h68kv5n1xr4h0",
-  "license": "cc-by-sa-40"
+  "license": "lgpllr"
+},
+{
+  "pname": "it_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "192rdmqnwl3ajxzhnw4r1cqv5bkziv0yc2bbzckmzqss64wk7k70",
+  "license": "cc-by-nc-sa-30"
+},
+{
+  "pname": "it_core_news_md",
+  "version": "2.3.0",
+  "sha256": "019ih4vwq1w6j38j0wc8pyyg1an6yy37wxq2w4amwppynmmcnd5w",
+  "license": "cc-by-nc-sa-30"
 },
 {
   "pname": "it_core_news_sm",
   "version": "2.3.0",
   "sha256": "1c3ywqa8li0j7cyvd1xqbb096y61978hd6qv7rc6cxxjdhmkrrds",
+  "license": "cc-by-nc-sa-40"
+},
+{
+  "pname": "lt_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "0hn5w8n7mgv33i6gvnaxl1j44n9gz4j86gg1a9jjlgdw5z98n0p2",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "lt_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1xya79cz2xd5vgzg6qg0ww5j2bmv7kppdk3mdjf6zpwrlzwdbk5d",
   "license": "cc-by-sa-40"
 },
 {
@@ -83,26 +149,116 @@
   "license": "cc-by-sa-40"
 },
 {
+  "pname": "nb_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "18mblypw3c82004qz5w1p3262iqwn99wl9b781dq7aqwxskr02d6",
+  "license": "mit"
+},
+{
+  "pname": "nb_core_news_md",
+  "version": "2.3.0",
+  "sha256": "0iw97k9glxbar8mrpvnmmcb1nffgdhb83akn99p53pwmqbzxy9p3",
+  "license": "mit"
+},
+{
   "pname": "nb_core_news_sm",
   "version": "2.3.0",
   "sha256": "07b7xri2q3m7fvn9a2gjc1044a3f14231vr32hrw96h7k6vg95h7",
   "license": "mit"
 },
 {
+  "pname": "nl_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "016166kzpgi0p3m0x3k308a0r60a28yz7npagjvmpl1dfm9lzhnv",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "nl_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1anfhig531k9k14s0cbgsvmvifp3h50qi1h8dhx894kjmq10k2lg",
+  "license": "cc-by-sa-40"
+},
+{
   "pname": "nl_core_news_sm",
   "version": "2.3.0",
   "sha256": "0alvz7pn7cj0yax8h5gp71vrdblh3mcsmyhzgiddsd44ry35nxnj",
   "license": "cc-by-sa-40"
 },
 {
+  "pname": "pl_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "1acchp8pv1h4c6cwvxz07lh4ychn6aw809zfg3mbbsxgsgd2ahjr",
+  "license": "gpl3"
+},
+{
+  "pname": "pl_core_news_md",
+  "version": "2.3.0",
+  "sha256": "19jjjjvbys3ayibkm3cx497b4bh63ll39hfq04wx116rj4ajpwwg",
+  "license": "gpl3"
+},
+{
+  "pname": "pl_core_news_sm",
+  "version": "2.3.0",
+  "sha256": "166mqlfkgiszcc6hwg2mr6sir9y88y22nd81a1nidq0fiif5lfji",
+  "license": "gpl3"
+},
+{
+  "pname": "pt_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "18gvdmfwyy2sbq6206imglhghyagd6a4gb6wcfkwhm7lzbnq714d",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "pt_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1yxnpwby2aq6ydvd35lylc4fs141fisfnzlx8pl88pp2b2gxijvl",
+  "license": "cc-by-sa-40"
+},
+{
   "pname": "pt_core_news_sm",
   "version": "2.3.0",
   "sha256": "1vcvzdg9f93x0vaafkk9l9xhpmaavfj0cf0l3p06c5kx2d76f9ph",
   "license": "cc-by-sa-40"
 },
 {
+  "pname": "ro_core_news_sm",
+  "version": "2.3.0",
+  "sha256": "0lsmbdwsaczv37y5sa1vvgwszy2hs8jp24a0nvc5qm8vb71rxj8w",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "ro_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1igwkz3yd1117gi2g78yilh9ln8n5yrdimas4prfxjgzwid3q8bc",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "ro_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "0id1y32kjfans7llh1i55rgr4n2x6xn208y4qf6yl3pbc17i0n9z",
+  "license": "cc-by-sa-40"
+},
+{
   "pname": "xx_ent_wiki_sm",
   "version": "2.3.0",
   "sha256": "0x3zmmybl5kh4dn5prkfmr4q5j9bh13p40qc3rhdfi0i3jxc11pn",
-  "license": "cc-by-sa-40"
+  "license": "mit"
+},
+{
+  "pname": "zh_core_web_lg",
+  "version": "2.3.1",
+  "sha256": "17zxk7cz47k07yb3qaigc3sx4dj4zwilr1lsn2jq6w7jc8k2h1ll",
+  "license": "mit"
+},
+{
+  "pname": "zh_core_web_md",
+  "version": "2.3.1",
+  "sha256": "1n4iwxyam4ykn0f9jdzwkhczack8r9c3kkbyga3c4h6iwqsflzcj",
+  "license": "mit"
+},
+{
+  "pname": "zh_core_web_sm",
+  "version": "2.3.1",
+  "sha256": "1lj5nwhx38cpwnvajwxlfkf84dr1xx2h6wwbg3scycsh459i9fpc",
+  "license": "mit"
 }]
diff --git a/pkgs/development/python-modules/spacy/models.nix b/pkgs/development/python-modules/spacy/models.nix
index b091c3b7d56..b83ae5d7ddc 100644
--- a/pkgs/development/python-modules/spacy/models.nix
+++ b/pkgs/development/python-modules/spacy/models.nix
@@ -1,6 +1,9 @@
-{ stdenv, buildPythonPackage, fetchurl, spacy }:
+{ stdenv, lib, buildPythonPackage, fetchurl, jieba, pkuseg, spacy }:
 let
-  buildModelPackage = { pname, version, sha256, license }: buildPythonPackage {
+  buildModelPackage = { pname, version, sha256, license }:
+  let
+    lang = builtins.substring 0 2 pname;
+  in buildPythonPackage {
     inherit pname version;
 
     src = fetchurl {
@@ -8,7 +11,8 @@ let
       inherit sha256;
     };
 
-    propagatedBuildInputs = [ spacy ];
+    propagatedBuildInputs = [ spacy ]
+      ++ lib.optionals (lang == "zh") [ jieba pkuseg ];
 
     meta = with stdenv.lib; {
       description = "Models for the spaCy NLP library";
diff --git a/pkgs/development/python-modules/sslyze/default.nix b/pkgs/development/python-modules/sslyze/default.nix
index 78824515a45..c127f6ea2e5 100644
--- a/pkgs/development/python-modules/sslyze/default.nix
+++ b/pkgs/development/python-modules/sslyze/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "sslyze";
-  version = "3.0.7";
+  version = "3.0.8";
 
   src = fetchFromGitHub {
     owner = "nabla-c0d3";
     repo = pname;
     rev = version;
-    sha256 = "1ahwldsh3xvagin09dy5q73bdw5k4siqy2qqgxwj4wdyd7pjb4p9";
+    sha256 = "06mwzxw6xaqin2gwzcqb9r7qhbyx3k7zcxygxywi2bpxyjv9lq32";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/tbm-utils/default.nix b/pkgs/development/python-modules/tbm-utils/default.nix
index bb3cd946206..2d0efeceda0 100644
--- a/pkgs/development/python-modules/tbm-utils/default.nix
+++ b/pkgs/development/python-modules/tbm-utils/default.nix
@@ -20,6 +20,13 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ attrs pendulum pprintpp wrapt ];
 
+  # this versioning was done to prevent normal pip users from encountering
+  # issues with package failing to build from source, but nixpkgs is better
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
+  '';
+
   # No tests in archive.
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/tensorboardx/default.nix b/pkgs/development/python-modules/tensorboardx/default.nix
new file mode 100644
index 00000000000..d2532777d00
--- /dev/null
+++ b/pkgs/development/python-modules/tensorboardx/default.nix
@@ -0,0 +1,31 @@
+{ boto3, buildPythonPackage, crc32c, fetchFromGitHub, lib, matplotlib, moto
+, numpy, pillow, pytorch, protobuf, six, pytestCheckHook
+, tensorflow-tensorboard, torchvision }:
+
+buildPythonPackage rec {
+  pname = "tensorboardx";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "lanpa";
+    repo = "tensorboardX";
+    rev = "v${version}";
+    sha256 = "0qqalq0fhbx0wnd8wdwhyhkkv2brvj9qbk3373vk3wjxbribf5c7";
+  };
+
+  checkInputs = [
+    pytestCheckHook boto3 crc32c matplotlib moto pillow pytorch tensorflow-tensorboard torchvision
+  ];
+
+  propagatedBuildInputs = [ numpy protobuf six ];
+
+  disabledTests = [ "test_TorchVis"  "test_onnx_graph" ];
+
+  meta = with lib; {
+    description = "Library for writing tensorboard-compatible logs";
+    homepage = "https://github.com/lanpa/tensorboardX";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lebastr akamaus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/python-modules/tensorflow-probability/default.nix b/pkgs/development/python-modules/tensorflow-probability/default.nix
index 9466b85a6a4..76367919059 100644
--- a/pkgs/development/python-modules/tensorflow-probability/default.nix
+++ b/pkgs/development/python-modules/tensorflow-probability/default.nix
@@ -61,7 +61,7 @@ let
     bazelTarget = ":pip_pkg";
 
     fetchAttrs = {
-      sha256 = "1bh6lsi0732fzhrfs6p33qg2qfvq73r6qmijbpnv592aq8yiy1h5";
+      sha256 = "1qw7vkwnxy45z4vm94isq5m96xiz35sigag7vjg1xb2sklbymxh8";
     };
 
     buildAttrs = {
diff --git a/pkgs/development/python-modules/tinycss2/default.nix b/pkgs/development/python-modules/tinycss2/default.nix
index 2d8581cfb90..7504df7a4de 100644
--- a/pkgs/development/python-modules/tinycss2/default.nix
+++ b/pkgs/development/python-modules/tinycss2/default.nix
@@ -1,6 +1,16 @@
-{ lib, buildPythonPackage, pythonOlder, fetchPypi
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, fetchpatch
 , webencodings
-, pytest, pytestrunner, pytestcov, pytest-flake8, pytest-isort }:
+# Check inputs
+, pytest
+, pytestrunner
+, pytestcov
+, pytest-flake8
+, pytest-isort
+}:
 
 buildPythonPackage rec {
   pname = "tinycss2";
@@ -12,11 +22,23 @@ buildPythonPackage rec {
     sha256 = "1kw84y09lggji4krkc58jyhsfj31w8npwhznr7lf19d0zbix09v4";
   };
 
-  patches = [ ./remove-redundant-dependency.patch ];
+  patches = [
+    (
+      fetchpatch {
+        name = "tinycss2-fix-pytest-flake8-fail.patch";
+        url = "https://github.com/Kozea/tinycss2/commit/6556604fb98c2153412384d6f0f705db2da1aa60.patch";
+        sha256 = "1srvdzg1bak65fawd611rlskcgn5abmwmyjnk8qrrrasr554bc59";
+      }
+    )
+  ];
 
   propagatedBuildInputs = [ webencodings ];
 
   checkInputs = [ pytest pytestrunner pytestcov pytest-flake8 pytest-isort ];
+  preCheck = ''
+    # this fails a flake lint-type check, so just remove it
+    rm tinycss2/css-parsing-tests/make_color3_hsl.py
+  '';
 
   meta = with lib; {
     description = "Low-level CSS parser for Python";
diff --git a/pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch b/pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch
deleted file mode 100644
index 27ec511c55f..00000000000
--- a/pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/setup.cfg b/setup.cfg
-index b3b3c2d..480f3e6 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -33,7 +33,6 @@ project_urls =
- 
- [options]
- packages = find:
--setup_requires = pytest-runner
- install_requires = 
- 	setuptools >= 39.2.0
- 	webencodings >= 0.4
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
new file mode 100644
index 00000000000..4b8afbddb37
--- /dev/null
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, buildPythonApplication
+, fetchPypi
+, mock
+, lxml
+, relatorio
+, genshi
+, dateutil
+, polib
+, python-sql
+, werkzeug
+, wrapt
+, passlib
+, bcrypt
+, pydot
+, python-Levenshtein
+, simplejson
+, html2text
+, psycopg2
+, withPostgresql ? true
+}:
+
+with stdenv.lib;
+
+buildPythonApplication rec {
+  pname = "trytond";
+  version = "5.6.2";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mlfl34zmmqrwip39mvhkk0h6dsljqwff2mk1ldahm253d4vzflp";
+  };
+
+  # Tells the tests which database to use
+  DB_NAME = ":memory:";
+
+  buildInputs = [
+    mock
+  ];
+  propagatedBuildInputs = [
+    lxml
+    relatorio
+    genshi
+    dateutil
+    polib
+    python-sql
+    werkzeug
+    wrapt
+    passlib
+
+    # extra dependencies
+    bcrypt
+    pydot
+    python-Levenshtein
+    simplejson
+    html2text
+  ] ++ stdenv.lib.optional withPostgresql psycopg2;
+
+  # If unset, trytond will try to mkdir /homeless-shelter
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  meta = {
+    description = "The server of the Tryton application platform";
+    longDescription = ''
+      The server for Tryton, a three-tier high-level general purpose
+      application platform under the license GPL-3 written in Python and using
+      PostgreSQL as database engine.
+
+      It is the core base of a complete business solution providing
+      modularity, scalability and security.
+    '';
+    homepage = "http://www.tryton.org/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ udono johbo ];
+  };
+}
diff --git a/pkgs/development/python-modules/webcolors/default.nix b/pkgs/development/python-modules/webcolors/default.nix
index 4acc5a369b0..273cd7ac5d1 100644
--- a/pkgs/development/python-modules/webcolors/default.nix
+++ b/pkgs/development/python-modules/webcolors/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , python
 , six
 }:
@@ -8,6 +9,7 @@
 buildPythonPackage rec {
   pname = "webcolors";
   version = "1.11.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;