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/Babel/default.nix4
-rw-r--r--pkgs/development/python-modules/ROPGadget/default.nix4
-rw-r--r--pkgs/development/python-modules/aiohttp-socks/default.nix4
-rw-r--r--pkgs/development/python-modules/aiohttp/default.nix5
-rw-r--r--pkgs/development/python-modules/aioresponses/default.nix4
-rw-r--r--pkgs/development/python-modules/altair/default.nix2
-rw-r--r--pkgs/development/python-modules/ansible/default.nix4
-rw-r--r--pkgs/development/python-modules/apache-airflow/default.nix1
-rw-r--r--pkgs/development/python-modules/apprise/default.nix4
-rw-r--r--pkgs/development/python-modules/aria2p/default.nix43
-rw-r--r--pkgs/development/python-modules/asdf/default.nix4
-rwxr-xr-xpkgs/development/python-modules/atlassian-python-api/default.nix37
-rw-r--r--pkgs/development/python-modules/authheaders/default.nix22
-rw-r--r--pkgs/development/python-modules/avro-python3/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-media/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-netapp/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-storage-file-share/default.nix45
-rw-r--r--pkgs/development/python-modules/binwalk/default.nix25
-rw-r--r--pkgs/development/python-modules/bitarray/default.nix4
-rw-r--r--pkgs/development/python-modules/blivet/default.nix1
-rw-r--r--pkgs/development/python-modules/boltons/default.nix4
-rw-r--r--pkgs/development/python-modules/braintree/default.nix4
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix4
-rw-r--r--pkgs/development/python-modules/buildbot/pkg.nix4
-rw-r--r--pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--pkgs/development/python-modules/buildbot/worker.nix4
-rw-r--r--pkgs/development/python-modules/bumps/default.nix4
-rw-r--r--pkgs/development/python-modules/cjson/default.nix2
-rw-r--r--pkgs/development/python-modules/cmd2/default.nix4
-rw-r--r--pkgs/development/python-modules/configargparse/default.nix4
-rw-r--r--pkgs/development/python-modules/coreapi/default.nix44
-rw-r--r--pkgs/development/python-modules/coreschema/default.nix34
-rw-r--r--pkgs/development/python-modules/cvxopt/default.nix4
-rw-r--r--pkgs/development/python-modules/dash-core-components/default.nix24
-rw-r--r--pkgs/development/python-modules/dash-html-components/default.nix24
-rw-r--r--pkgs/development/python-modules/dash-renderer/default.nix24
-rw-r--r--pkgs/development/python-modules/dash-table/default.nix24
-rw-r--r--pkgs/development/python-modules/dash/default.nix63
-rw-r--r--pkgs/development/python-modules/dask-ml/default.nix4
-rw-r--r--pkgs/development/python-modules/deap/default.nix4
-rw-r--r--pkgs/development/python-modules/denonavr/default.nix29
-rw-r--r--pkgs/development/python-modules/diff_cover/default.nix4
-rw-r--r--pkgs/development/python-modules/django-auth-ldap/default.nix4
-rw-r--r--pkgs/development/python-modules/django/2_1.nix38
-rw-r--r--pkgs/development/python-modules/django_modelcluster/default.nix4
-rw-r--r--pkgs/development/python-modules/djangorestframework-simplejwt/default.nix23
-rw-r--r--pkgs/development/python-modules/drf-yasg/default.nix40
-rw-r--r--pkgs/development/python-modules/eventlib/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-sockets/default.nix37
-rw-r--r--pkgs/development/python-modules/fluidasserts/default.nix176
-rw-r--r--pkgs/development/python-modules/flux-led/default.nix24
-rw-r--r--pkgs/development/python-modules/getmac/default.nix26
-rw-r--r--pkgs/development/python-modules/glances/default.nix38
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--pkgs/development/python-modules/html2text/default.nix4
-rw-r--r--pkgs/development/python-modules/identify/default.nix4
-rw-r--r--pkgs/development/python-modules/ipython/5.nix10
-rw-r--r--pkgs/development/python-modules/itypes/default.nix31
-rw-r--r--pkgs/development/python-modules/jupyter_console/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--pkgs/development/python-modules/jupytext/default.nix4
-rw-r--r--pkgs/development/python-modules/lark-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/libnacl/default.nix4
-rw-r--r--pkgs/development/python-modules/llfuse/default.nix29
-rw-r--r--pkgs/development/python-modules/loguru/default.nix6
-rw-r--r--pkgs/development/python-modules/mailmanclient/default.nix5
-rw-r--r--pkgs/development/python-modules/marionette-harness/mozdevice.nix4
-rw-r--r--pkgs/development/python-modules/marionette-harness/moznetwork.nix4
-rw-r--r--pkgs/development/python-modules/minio/default.nix4
-rw-r--r--pkgs/development/python-modules/mixpanel/default.nix50
-rw-r--r--pkgs/development/python-modules/musicbrainzngs/default.nix4
-rw-r--r--pkgs/development/python-modules/mysql-connector/default.nix18
-rw-r--r--pkgs/development/python-modules/nest-asyncio/default.nix13
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--pkgs/development/python-modules/plexapi/default.nix26
-rw-r--r--pkgs/development/python-modules/plexauth/default.nix31
-rw-r--r--pkgs/development/python-modules/plexwebsocket/default.nix31
-rw-r--r--pkgs/development/python-modules/plyvel/default.nix4
-rw-r--r--pkgs/development/python-modules/ppft/default.nix9
-rw-r--r--pkgs/development/python-modules/praw/default.nix4
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix20
-rw-r--r--pkgs/development/python-modules/pycodestyle/default.nix19
-rw-r--r--pkgs/development/python-modules/pycurl/default.nix4
-rw-r--r--pkgs/development/python-modules/pydicom/default.nix28
-rw-r--r--pkgs/development/python-modules/pyenchant/default.nix23
-rw-r--r--pkgs/development/python-modules/pyezminc/default.nix33
-rw-r--r--pkgs/development/python-modules/pyfaidx/default.nix4
-rw-r--r--pkgs/development/python-modules/pygdbmi/default.nix4
-rw-r--r--pkgs/development/python-modules/pyhcl/default.nix46
-rw-r--r--pkgs/development/python-modules/pyicloud/default.nix51
-rw-r--r--pkgs/development/python-modules/pykeepass/default.nix4
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix2
-rw-r--r--pkgs/development/python-modules/pynvim/default.nix4
-rw-r--r--pkgs/development/python-modules/pypandoc/default.nix34
-rw-r--r--pkgs/development/python-modules/pyspotify/default.nix4
-rw-r--r--pkgs/development/python-modules/pysqlite/default.nix2
-rw-r--r--pkgs/development/python-modules/pysrt/default.nix4
-rw-r--r--pkgs/development/python-modules/pytesseract/default.nix4
-rw-r--r--pkgs/development/python-modules/python-dbusmock/default.nix12
-rw-r--r--pkgs/development/python-modules/python-dotenv/default.nix4
-rw-r--r--pkgs/development/python-modules/python-ly/default.nix6
-rw-r--r--pkgs/development/python-modules/python-periphery/default.nix4
-rw-r--r--pkgs/development/python-modules/python-telegram-bot/default.nix9
-rw-r--r--pkgs/development/python-modules/pytorch/default.nix2
-rw-r--r--pkgs/development/python-modules/qtawesome/default.nix4
-rw-r--r--pkgs/development/python-modules/robotframework-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/runway-python/default.nix15
-rw-r--r--pkgs/development/python-modules/rxv/default.nix40
-rw-r--r--pkgs/development/python-modules/shodan/default.nix4
-rw-r--r--pkgs/development/python-modules/sipsimple/default.nix2
-rw-r--r--pkgs/development/python-modules/snitun/default.nix5
-rw-r--r--pkgs/development/python-modules/solo-python/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx/2.nix7
-rw-r--r--pkgs/development/python-modules/sphinx/python2-lexer.patch22
-rw-r--r--pkgs/development/python-modules/spotipy/default.nix4
-rw-r--r--pkgs/development/python-modules/statsmodels/default.nix4
-rw-r--r--pkgs/development/python-modules/stringtemplate/default.nix4
-rw-r--r--pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--pkgs/development/python-modules/sympy/default.nix13
-rw-r--r--pkgs/development/python-modules/sysv_ipc/default.nix22
-rw-r--r--pkgs/development/python-modules/tatsu/default.nix12
-rw-r--r--pkgs/development/python-modules/textacy/default.nix2
-rw-r--r--pkgs/development/python-modules/umap-learn/default.nix2
-rw-r--r--pkgs/development/python-modules/uproot/default.nix4
-rw-r--r--pkgs/development/python-modules/uvloop/default.nix6
-rw-r--r--pkgs/development/python-modules/vega/default.nix4
-rw-r--r--pkgs/development/python-modules/venusian/default.nix2
-rw-r--r--pkgs/development/python-modules/web/default.nix2
-rw-r--r--pkgs/development/python-modules/xstatic-jquery-ui/default.nix2
-rw-r--r--pkgs/development/python-modules/zodb/default.nix9
133 files changed, 1503 insertions, 321 deletions
diff --git a/pkgs/development/python-modules/Babel/default.nix b/pkgs/development/python-modules/Babel/default.nix
index ef86aedc527b..1aafee5bec49 100644
--- a/pkgs/development/python-modules/Babel/default.nix
+++ b/pkgs/development/python-modules/Babel/default.nix
@@ -13,6 +13,10 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest freezegun ];
 
+  # Note that a test will fail with an encoding error on Python 2 with Nix < 2.3
+  # due to https://github.com/NixOS/nixpkgs/pull/75676#issuecomment-579008837.
+  # TODO: Remove the above comment when we use a version that includes the fix
+  #       from https://github.com/python-babel/babel/pull/691
   doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/ROPGadget/default.nix b/pkgs/development/python-modules/ROPGadget/default.nix
index 4daf76219adf..310e84a918d4 100644
--- a/pkgs/development/python-modules/ROPGadget/default.nix
+++ b/pkgs/development/python-modules/ROPGadget/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "ROPGadget";
-  version = "5.9";
+  version = "6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0lggiqws4dzq6k6c20l515pmjajl19gymsxfggkv771dv5kr1gbs";
+    sha256 = "02wgrdrg0s0cr9yjsb4945244m8x8rr8jzxr8h8c6k2na4d17xf4";
   };
 
   propagatedBuildInputs = [ capstone ];
diff --git a/pkgs/development/python-modules/aiohttp-socks/default.nix b/pkgs/development/python-modules/aiohttp-socks/default.nix
index d6487c8157b1..782238c3f832 100644
--- a/pkgs/development/python-modules/aiohttp-socks/default.nix
+++ b/pkgs/development/python-modules/aiohttp-socks/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "aiohttp-socks";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchPypi {
     inherit version;
     pname = "aiohttp_socks";
-    sha256 = "21974ce5d782c426ddbf7bdfc5e602a38783b1ee839a4a0ed0990240e2e123b5";
+    sha256 = "1gc74a0i0slq3gn9kv3scn7c9x444z5nwjm3d14qilsgq6civsnd";
   };
 
   propagatedBuildInputs = [ aiohttp attrs ];
diff --git a/pkgs/development/python-modules/aiohttp/default.nix b/pkgs/development/python-modules/aiohttp/default.nix
index 40dec3e1c1ee..0cecdb0291e9 100644
--- a/pkgs/development/python-modules/aiohttp/default.nix
+++ b/pkgs/development/python-modules/aiohttp/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, pythonAtLeast
 , attrs
 , chardet
 , multidict
@@ -25,14 +26,14 @@
 buildPythonPackage rec {
   pname = "aiohttp";
   version = "3.6.2";
+  # https://github.com/aio-libs/aiohttp/issues/4525 python3.8 failures
+  disabled = pythonOlder "3.5" || pythonAtLeast "3.8";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "09pkw6f1790prnrq0k8cqgnf1qy57ll8lpmc6kld09q7zw4vi6i5";
   };
 
-  disabled = pythonOlder "3.5";
-
   checkInputs = [
     pytestrunner pytest gunicorn pytest-timeout async_generator pytest_xdist
     pytest-mock pytestcov trustme brotlipy freezegun
diff --git a/pkgs/development/python-modules/aioresponses/default.nix b/pkgs/development/python-modules/aioresponses/default.nix
index 13a9e4b546be..446bb9e63791 100644
--- a/pkgs/development/python-modules/aioresponses/default.nix
+++ b/pkgs/development/python-modules/aioresponses/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "aioresponses";
-  version = "0.6.1";
+  version = "0.6.2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fab9607d11a2e05050ef766006b8fdd9424e7122c2bd6f34a5376be4c728e242";
+    sha256 = "0srqbxxxffi3idqd161n5b90xyqy9gibigxxmvqag3nxab5vw1j6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/altair/default.nix b/pkgs/development/python-modules/altair/default.nix
index 9cb362a7bd16..db3c2d27c8b6 100644
--- a/pkgs/development/python-modules/altair/default.nix
+++ b/pkgs/development/python-modules/altair/default.nix
@@ -47,6 +47,8 @@ buildPythonPackage rec {
 
   checkPhase = ''
     export LANG=en_US.UTF-8
+    # histogram_responsive.py attempt network access, and cannot be disabled through pytest flags
+    rm altair/examples/histogram_responsive.py
     pytest --doctest-modules altair
   '';
 
diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix
index 96be51e82f0c..df9c5e82cd13 100644
--- a/pkgs/development/python-modules/ansible/default.nix
+++ b/pkgs/development/python-modules/ansible/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "ansible";
-  version = "2.8.7";
+  version = "2.9.2";
 
   src = fetchFromGitHub {
     owner = "ansible";
     repo = "ansible";
     rev = "v${version}";
-    sha256 = "08vqjk85j0g1x0iad03d7ysws433dikii8j2lr3a1mlx6d186vv8";
+    sha256 = "06vxvn5q13rxzndwzq3g6yxiqm361ma9zcvwbrfn630xkmsg4pd8";
   };
 
   prePatch = ''
diff --git a/pkgs/development/python-modules/apache-airflow/default.nix b/pkgs/development/python-modules/apache-airflow/default.nix
index c15aac61b5c0..7bb805e4f35d 100644
--- a/pkgs/development/python-modules/apache-airflow/default.nix
+++ b/pkgs/development/python-modules/apache-airflow/default.nix
@@ -154,6 +154,7 @@ buildPythonPackage rec {
      --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"
  
   # dumb-init is only needed for CI and Docker, not relevant for NixOS.
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index 6ac9acfac323..38157e136159 100644
--- a/pkgs/development/python-modules/apprise/default.nix
+++ b/pkgs/development/python-modules/apprise/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m0pddqrpfm526f0fyzzjpcp7hi3d6pj0bgk2vl004lkas4li1hw";
+    sha256 = "1j925g7x0j8fzns431360myr8844swb8mb78wacw2vlj6x1c558c";
   };
 
   nativeBuildInputs = [ Babel ];
diff --git a/pkgs/development/python-modules/aria2p/default.nix b/pkgs/development/python-modules/aria2p/default.nix
new file mode 100644
index 000000000000..51b523c010aa
--- /dev/null
+++ b/pkgs/development/python-modules/aria2p/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+, aria2, poetry, pytest, pytestcov, pytest_xdist, responses
+, asciimatics, loguru, requests, setuptools, websocket_client
+}:
+
+buildPythonPackage rec {
+  pname = "aria2p";
+  version = "0.7.0";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "pawamoy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1inak3y2win58zbzykfzy6xp00f276sqsz69h2nfsd93mpr74wf6";
+  };
+  
+  nativeBuildInputs = [ poetry ];
+
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  checkInputs = [ aria2 responses pytest pytestcov pytest_xdist ];
+
+  # Tests are not all stable/deterministic,
+  # they rely on actually running an aria2c daemon and communicating with it,
+  # race conditions and deadlocks were observed,
+  # thus the corresponding tests are disabled
+  checkPhase = ''
+    pytest -nauto -k "not test_api and not test_cli and not test_interface"
+  '';
+
+  propagatedBuildInputs = [ asciimatics loguru requests setuptools websocket_client ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/pawamoy/aria2p";
+    description = "Command-line tool and library to interact with an aria2c daemon process with JSON-RPC";
+    license = licenses.isc;
+    maintainers = with maintainers; [ koral ];
+  };
+}
diff --git a/pkgs/development/python-modules/asdf/default.nix b/pkgs/development/python-modules/asdf/default.nix
index 6d685429e50b..384421c8966f 100644
--- a/pkgs/development/python-modules/asdf/default.nix
+++ b/pkgs/development/python-modules/asdf/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "asdf";
-  version = "2.4.2";
+  version = "2.5.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1wlgx8469wwsczc2gjka9k1a03yzird67zg3va0kg8y6j1qmbwvg";
+    sha256 = "1qddczr5vhlbhmzmw6bwmkrvsj8dml76zf9gnk22qzab60ali99j";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/atlassian-python-api/default.nix b/pkgs/development/python-modules/atlassian-python-api/default.nix
new file mode 100755
index 000000000000..3de3277a72d5
--- /dev/null
+++ b/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, certifi
+, chardet
+, idna
+, oauthlib
+, requests
+, requests_oauthlib
+, six
+, urllib3
+, pytestrunner
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "atlassian-python-api";
+  version = "1.14.9";
+  
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "28ff793cb43152384a810efc6ee572473daf3dc44bf7c1c295efb270a6d29251";
+  };
+  
+  checkInputs = [ pytestrunner pytest ];
+  
+  propagatedBuildInputs = [ oauthlib requests requests_oauthlib six ];
+  
+  meta = with lib; {
+    description = "Python Atlassian REST API Wrapper";
+    homepage = "https://github.com/atlassian-api/atlassian-python-api";
+    license = licenses.asl20;
+    maintainers = [ maintainers.arnoldfarkas ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/authheaders/default.nix b/pkgs/development/python-modules/authheaders/default.nix
new file mode 100644
index 000000000000..fdb478bc143b
--- /dev/null
+++ b/pkgs/development/python-modules/authheaders/default.nix
@@ -0,0 +1,22 @@
+{ buildPythonPackage, fetchPypi, isPy27, lib
+, authres, dnspython, dkimpy, ipaddress, publicsuffix
+}:
+
+buildPythonPackage rec {
+  pname = "authheaders";
+  version = "0.12.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hf1p6ws3jma608pmcb5qsl58xg33wz2s51qqzi9zix0llcnyc97";
+  };
+
+  propagatedBuildInputs = [ authres dnspython dkimpy publicsuffix ]
+                          ++ lib.optional isPy27 ipaddress;
+
+  meta = {
+    description = "Python library for the generation of email authentication headers";
+    homepage = https://github.com/ValiMail/authentication-headers;
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/avro-python3/default.nix b/pkgs/development/python-modules/avro-python3/default.nix
index c9db39a325fa..46272a5418d1 100644
--- a/pkgs/development/python-modules/avro-python3/default.nix
+++ b/pkgs/development/python-modules/avro-python3/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "avro-python3";
-  version = "1.8.2";
+  version = "1.9.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f82cf0d66189600b1e6b442f650ad5aca6c189576723dcbf6f9ce096eab81bd6";
+    sha256 = "daab2cea71b942a1eb57d700d4a729e9d6cd93284d4dd4d65a378b9f958aa0d2";
   };
 
   doCheck = false;        # No such file or directory: './run_tests.py
diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index 5d1e3e6e3a97..41124e448541 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "8.1.0";
+  version = "8.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "21fabdd393ba2ff1162a490cfa0d2b72a715da8462b1645bd986241137fc771f";
+    sha256 = "0czn781ywbwi8px54nlccsvw5s13y4wqmxhcrxkkl0y7rblqi5pr";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
index 6cda959448cf..4b8aef08f1c5 100644
--- a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.3.0";
+  version = "1.4.0";
   pname = "azure-mgmt-hdinsight";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "55e129da3c3750cd5a26b91035990590a3f97aef4971de62d84de00f4fd6f1e4";
+    sha256 = "0zmmfj7z1zrayjqwqybcn3bwm47d2ngyxm1g6fh2iw5c2f9czycv";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-media/default.nix b/pkgs/development/python-modules/azure-mgmt-media/default.nix
index 90b45d0e3f05..f3dfaba6d9cb 100644
--- a/pkgs/development/python-modules/azure-mgmt-media/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-media/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-media";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "b144e66cb8b947b871354edbcee15b78e107fb8f3a337d46d04cd8b73300741b";
+    sha256 = "1py0hch0wghzfxazdrrs7p0kln2zn9jh3fmkzwd2z8qggj38q6gm";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
index 8e18986bfcbb..6bf207c6e4c5 100644
--- a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.7.0";
+  version = "0.8.0";
   pname = "azure-mgmt-netapp";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0cf4pknb5y2yz4jqwg7xm626zkfx8i8hqcr3dkvq21lrx7fz96r3";
+    sha256 = "0vbg5mpahrnnnbj80flgzxxiffic94wsc9srm4ir85y2j5rprpv7";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix b/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
index 1f3056b90985..990f494ecedc 100644
--- a/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservicesbackup";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0jhq8fi3dn2cncyv2rrgr4kldd254f30zgwf6p85rdgvg2p9k4hl";
+    sha256 = "13s2k4jl8570bj6jkqzm0w29z29rl7h5i7czd3kr6vqar5wj9xjd";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-storage-file-share/default.nix b/pkgs/development/python-modules/azure-storage-file-share/default.nix
new file mode 100644
index 000000000000..78950d2971e8
--- /dev/null
+++ b/pkgs/development/python-modules/azure-storage-file-share/default.nix
@@ -0,0 +1,45 @@
+{ buildPythonPackage
+, fetchPypi
+, isPy3k
+, lib
+
+# pythonPackages
+, azure-core
+, cryptography
+, msrest
+, futures
+}:
+
+buildPythonPackage rec {
+  pname = "azure-storage-file-share";
+  version = "12.0.0";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "15f5vk3vd2amggqqznx186raak9wgr57j0l1p9qa62kcl10bs9lg";
+  };
+
+  propagatedBuildInputs = [
+    azure-core
+    cryptography
+    msrest
+  ];
+
+  # requires checkout from monorepo
+  doCheck = false;
+  pythonImportsCheck = [
+    "azure.core"
+    "azure.storage"
+  ];
+
+  meta = with lib; {
+    description = "Microsoft Azure File Share Storage Client Library for Python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/binwalk/default.nix b/pkgs/development/python-modules/binwalk/default.nix
index ec613527e92b..97c6b957a437 100644
--- a/pkgs/development/python-modules/binwalk/default.nix
+++ b/pkgs/development/python-modules/binwalk/default.nix
@@ -10,24 +10,39 @@
 , p7zip
 , cabextract
 , lzma
+, nose
 , pycrypto
 , pyqtgraph ? null }:
 
-let visualizationSupport = (pyqtgraph != null);
+let
+  visualizationSupport = (pyqtgraph != null);
+  version = "2.2.0";
 in
 buildPythonPackage {
   pname = "binwalk";
-  version = "2.1.1";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "devttys0";
     repo = "binwalk";
-    rev = "291a03595d17f848c73b74cb6ca508da782cd8f7";
-    sha256 = "0grid93yz6i6jb2zggrqncp5awdf7qi88j5y2k7dq0k9r6b8zydw";
+    rev = "be738a52e09b0da2a6e21470e0dbcd5beb42ed1b";
+    sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc";
   };
 
   propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract lzma pycrypto ]
-    ++ stdenv.lib.optional visualizationSupport pyqtgraph;
+  ++ stdenv.lib.optional visualizationSupport pyqtgraph;
+
+  # setup.py only installs version.py during install, not test
+  postPatch = ''
+    echo '__version__ = "${version}"' > src/binwalk/core/version.py
+  '';
+
+  # binwalk wants to access ~/.config/binwalk/magic
+  preCheck = ''
+    HOME=$(mktemp -d)
+  '';
+
+  checkInputs = [ nose ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/ReFirmLabs/binwalk";
diff --git a/pkgs/development/python-modules/bitarray/default.nix b/pkgs/development/python-modules/bitarray/default.nix
index f119aedc4b82..d89ab9c3107c 100644
--- a/pkgs/development/python-modules/bitarray/default.nix
+++ b/pkgs/development/python-modules/bitarray/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  version = "1.2.0";
+  version = "1.2.1";
   pname = "bitarray";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4f8706b651243c9faa981f075bcbdef2fab83e9b9bc9211ed2cb5849f9a68342";
+    sha256 = "1kxrlxfj9nrx512sfwifwl9z4v6ky3qschl0zmk3s3dvc3s7bmif";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/blivet/default.nix b/pkgs/development/python-modules/blivet/default.nix
index 9bf93fe8c380..4b96e86193d8 100644
--- a/pkgs/development/python-modules/blivet/default.nix
+++ b/pkgs/development/python-modules/blivet/default.nix
@@ -34,7 +34,6 @@ in buildPythonPackage rec {
     six
   ];
 
-  # Tests are in nixos/tests/blivet.nix.
   doCheck = false;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/boltons/default.nix b/pkgs/development/python-modules/boltons/default.nix
index 8b7139f5a627..6470b7da859d 100644
--- a/pkgs/development/python-modules/boltons/default.nix
+++ b/pkgs/development/python-modules/boltons/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "boltons";
-  version = "19.3.0";
+  version = "20.0.0";
 
   # No tests in PyPi Tarball
   src = fetchFromGitHub {
     owner = "mahmoud";
     repo = "boltons";
     rev = version;
-    sha256 = "0pgqr2hf7lxag8nc8wnh8hpp8fd2lxccq9h0bb8lb9x8npnzhnbn";
+    sha256 = "0scdslqi28b899i42m4c9pvhwv3kkw4wpi3n9zm5n64ggn5ngfbz";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/braintree/default.nix b/pkgs/development/python-modules/braintree/default.nix
index 6f51dcf858f4..b96e0b7874a6 100644
--- a/pkgs/development/python-modules/braintree/default.nix
+++ b/pkgs/development/python-modules/braintree/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "braintree";
-  version = "3.57.1";
+  version = "3.58.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1g5w733dim3rc6hwklvknnxqkradjwip728i77pbsw5ihgdxahhi";
+    sha256 = "0n8k9m3kifj34rzi2a3jgjsik91w8z32xaaxcmvqs7x8m5m3kjj4";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index e627667f3ec2..611cb5ad5ffe 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -25,11 +25,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "2.5.1";
+    version = "2.6.0";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "13ddpcbndb22zlg9gjsf2pbgad45g1w5cg4a3z83085fkgnib7sr";
+      sha256 = "1l3ajhy68jddbgbizaa5hq65lgqkll6389hss4p2j36cbxbn7hiv";
     };
 
     propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/buildbot/pkg.nix b/pkgs/development/python-modules/buildbot/pkg.nix
index ff2be45bf32a..4f3a0ea04b8f 100644
--- a/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/pkgs/development/python-modules/buildbot/pkg.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "buildbot-pkg";
-  version = "2.5.1";
+  version = "2.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1g87pddsyas1r0f6z29047cwnz7ds4925f6n9g7b0pkj3k73ci06";
+    sha256 = "07ynk46c9h47ibbdm93h15xbrzflsl4llm0jr4c8pm6krs6byb4z";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/buildbot/plugins.nix b/pkgs/development/python-modules/buildbot/plugins.nix
index 8722a6629e49..4bb82b598568 100644
--- a/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "00k5dbcwzqlyk4lcp5qh1q8xbrxmg9gzqs7vl2r6f3wxi4ydb5nw";
+      sha256 = "0njix8g6g1dgfviick55p9calm82nnkhhgkikh7a5yvqk524cprg";
     };
 
     # Remove unneccessary circular dependency on buildbot
@@ -36,7 +36,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0ai334y779jwqabrn2yjma41pw0a9k1qy7v68qbjd22n4my227ma";
+      sha256 = "1wmay9bbb1wwf0zh9rw95swmdc7bxabgvx2n6dyyzs4p8k92px10";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -58,7 +58,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1j450hwvg729mivzijbrx8ngalx56qvrx8mwwgy8arfwpnyfkr9l";
+      sha256 = "14b28vpkk68yk6zmdd64n7izb1r3barb7y711n4g37skqd13jygb";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -80,7 +80,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "19w8is5s7d7l60mlchh1zd9nidpkswi8fivfa36b97plibn0jgw1";
+      sha256 = "1m8kbycjq7jsl72xbrzjj48hb65r53lfxx78yvlnhc2f9ian5vnh";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -102,7 +102,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1zl7y08rkw7bya6cli44msvcdgirsyfg3kxpf2z82vwgc6bwi785";
+      sha256 = "1sbp13qimv8kc7dp0xz1pmda1x1n4948zgrz2pc45rwlbbn5h69r";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/python-modules/buildbot/worker.nix b/pkgs/development/python-modules/buildbot/worker.nix
index 048fb44a93bc..6352b22b55d6 100644
--- a/pkgs/development/python-modules/buildbot/worker.nix
+++ b/pkgs/development/python-modules/buildbot/worker.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage (rec {
   pname = "buildbot-worker";
-  version = "2.5.1";
+  version = "2.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kpj85x8xflrccvy840v9bl3q1j63rk9kahj1qirbai1fxwvzbik";
+    sha256 = "0hr42fp3sw6c59qahihm9440618z7prwsy4z0ax553zvw47pc22l";
   };
 
   propagatedBuildInputs = [ twisted future ];
diff --git a/pkgs/development/python-modules/bumps/default.nix b/pkgs/development/python-modules/bumps/default.nix
index 05506a12db00..c1e19eb85600 100644
--- a/pkgs/development/python-modules/bumps/default.nix
+++ b/pkgs/development/python-modules/bumps/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "bumps";
-  version = "0.7.13";
+  version = "0.7.14";
 
   propagatedBuildInputs = [six];
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fdcf335b800d892edfdbc87fdd539cb45166d8667edbec3dfbb1a3b5c3a35547";
+    sha256 = "0l0ljm7n19522m6mb0jnbcwdyqya15vfj3li3mvfsyv4rkxvy18b";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/cjson/default.nix b/pkgs/development/python-modules/cjson/default.nix
index 2042a2d629bb..c9b5be5e6048 100644
--- a/pkgs/development/python-modules/cjson/default.nix
+++ b/pkgs/development/python-modules/cjson/default.nix
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "A very fast JSON encoder/decoder for Python";
-    homepage = http://ag-projects.com/;
+    homepage = https://ag-projects.com/;
     license = licenses.lgpl2;
   };
 }
diff --git a/pkgs/development/python-modules/cmd2/default.nix b/pkgs/development/python-modules/cmd2/default.nix
index 2dba7e433913..6cc91f4b74cb 100644
--- a/pkgs/development/python-modules/cmd2/default.nix
+++ b/pkgs/development/python-modules/cmd2/default.nix
@@ -6,11 +6,11 @@
 }:
 buildPythonPackage rec {
   pname = "cmd2";
-  version = "0.9.22";
+  version = "0.9.23";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ba244b07c0b465ff54a6838dc61919599141dc92de1bf00bb0a70875189155e6";
+    sha256 = "17ic6lxzz9yrwxh3l1skcqgr59c47w5fidj5qmrk1l26rkrjxlca";
   };
 
   LC_ALL="en_US.UTF-8";
diff --git a/pkgs/development/python-modules/configargparse/default.nix b/pkgs/development/python-modules/configargparse/default.nix
index 82a3aac6e1d3..e2532f23709c 100644
--- a/pkgs/development/python-modules/configargparse/default.nix
+++ b/pkgs/development/python-modules/configargparse/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ConfigArgParse";
-  version = "0.15.2";
+  version = "1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "558738aff623d6667aa5b85df6093ad3828867de8a82b66a6d458fb42567beb3";
+    sha256 = "0cvinm7bb03qfjpq2zhfacm0qs4ip4378nvya8x41p4wpi2q4dxz";
   };
 
   # no tests in tarball
diff --git a/pkgs/development/python-modules/coreapi/default.nix b/pkgs/development/python-modules/coreapi/default.nix
new file mode 100644
index 000000000000..216d1ee69850
--- /dev/null
+++ b/pkgs/development/python-modules/coreapi/default.nix
@@ -0,0 +1,44 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  django,
+  coreschema,
+  itypes,
+  uritemplate,
+  requests,
+  pytest,
+}:
+
+buildPythonPackage rec {
+  pname = "coreapi";
+  version = "2.3.3";
+
+  src = fetchFromGitHub {
+    repo = "python-client";
+    owner = "core-api";
+    rev = version;
+    sha256 = "1c6chm3q3hyn8fmjv23qgc79ai1kr3xvrrkp4clbqkssn10k7mcw";
+  };
+
+  propagatedBuildInputs = [
+    django
+    coreschema
+    itypes
+    uritemplate
+    requests
+  ];
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    cd ./tests
+    pytest
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python client library for Core API";
+    homepage = https://github.com/core-api/python-client;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ivegotasthma ];
+  };
+}
diff --git a/pkgs/development/python-modules/coreschema/default.nix b/pkgs/development/python-modules/coreschema/default.nix
new file mode 100644
index 000000000000..949fa31df958
--- /dev/null
+++ b/pkgs/development/python-modules/coreschema/default.nix
@@ -0,0 +1,34 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  jinja2,
+  pytest,
+}:
+
+buildPythonPackage rec {
+  pname = "coreschema";
+  version = "0.0.4";
+
+  src = fetchFromGitHub {
+    repo = "python-coreschema";
+    owner = "core-api";
+    rev = version;
+    sha256 = "027pc753mkgbb3r1v1x7dsdaarq93drx0f79ppvw9pfkcjcq6wb1";
+  };
+
+  propagatedBuildInputs = [ jinja2 ];
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    cd ./tests
+    pytest
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python client library for Core Schema";
+    homepage = https://github.com/ivegotasthma/python-coreschema;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ivegotasthma ];
+  };
+}
diff --git a/pkgs/development/python-modules/cvxopt/default.nix b/pkgs/development/python-modules/cvxopt/default.nix
index 201c8ccda705..a842baca2289 100644
--- a/pkgs/development/python-modules/cvxopt/default.nix
+++ b/pkgs/development/python-modules/cvxopt/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "cvxopt";
-  version = "1.2.3";
+  version = "1.2.4";
 
   disabled = isPyPy; # hangs at [translation:info]
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ea62a2a1b8e2db3a6ae44ac394f58e4620149af226c250c6f2b18739b48cfc21";
+    sha256 = "1h9g79gxpgpy6xciqyypihw5q4ngp322lpkka1nkwk0ysybfsp7s";
   };
 
   # similar to Gsl, glpk, fftw there is also a dsdp interface
diff --git a/pkgs/development/python-modules/dash-core-components/default.nix b/pkgs/development/python-modules/dash-core-components/default.nix
new file mode 100644
index 000000000000..dfcbb9b6404a
--- /dev/null
+++ b/pkgs/development/python-modules/dash-core-components/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "dash_core_components";
+  version = "1.7.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16jjanq4glj6c2cwyw94954hrqqv49fknisbxj03lfmflg61j32k";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A dash component starter pack";
+    homepage = https://dash.plot.ly/dash-core-components;
+    license = licenses.mit;
+    maintainers = [ maintainers.antoinerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash-html-components/default.nix b/pkgs/development/python-modules/dash-html-components/default.nix
new file mode 100644
index 000000000000..4e9ef39b411b
--- /dev/null
+++ b/pkgs/development/python-modules/dash-html-components/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "dash_html_components";
+  version = "1.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "166agkrl52j5qin2npsdl2a96jccxz5f1jvcz0hxsnjg0ix0k4l9";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with lib; {
+    description = "HTML components for Dash";
+    homepage = https://dash.plot.ly/dash-html-components;
+    license = licenses.mit;
+    maintainers = [ maintainers.antoinerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash-renderer/default.nix b/pkgs/development/python-modules/dash-renderer/default.nix
new file mode 100644
index 000000000000..97942a13043b
--- /dev/null
+++ b/pkgs/development/python-modules/dash-renderer/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "dash_renderer";
+  version = "1.2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ccsykv24dz9xj24106aaj7f0w7x7sv7mamjbx0m6k0wyhh58vw1";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Renderer for the Dash framework";
+    homepage = https://dash.plot.ly/;
+    license = licenses.mit;
+    maintainers = [ maintainers.antoinerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash-table/default.nix b/pkgs/development/python-modules/dash-table/default.nix
new file mode 100644
index 000000000000..4a9a6c42ff48
--- /dev/null
+++ b/pkgs/development/python-modules/dash-table/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "dash_table";
+  version = "4.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01wzac09ac6nr27if1liaxafzdf67x00vw1iq5vaad1147rdh36k";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A First-Class Interactive DataTable for Dash";
+    homepage = https://dash.plot.ly/datatable;
+    license = licenses.mit;
+    maintainers = [ maintainers.antoinerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix
new file mode 100644
index 000000000000..2106235230f8
--- /dev/null
+++ b/pkgs/development/python-modules/dash/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, plotly
+, flask
+, flask-compress
+, future
+, dash-core-components
+, dash-renderer
+, dash-html-components
+, dash-table
+, pytest
+, pytest-mock
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "dash";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "plotly";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11skbvjlj93aw1pqx6j56h73sy9r06jwq7z5h64fd1a3d4z2gsvy";
+  };
+
+  propagatedBuildInputs = [
+    plotly
+    flask
+    flask-compress
+    future
+    dash-core-components
+    dash-renderer
+    dash-html-components
+    dash-table
+  ];
+
+  checkInputs = [
+    pytest
+    pytest-mock
+    mock
+  ];
+
+  checkPhase = ''
+    pytest tests/unit/test_configs.py
+    pytest tests/unit/test_fingerprint.py
+    pytest tests/unit/test_import.py
+    pytest tests/unit/test_resources.py
+    pytest tests/unit/dash/
+  '';
+
+  pythonImportsCheck = [
+    "dash"
+  ];
+
+  meta = with lib; {
+    description = "Python framework for building analytical web applications";
+    homepage = https://dash.plot.ly/;
+    license = licenses.mit;
+    maintainers = [ maintainers.antoinerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/dask-ml/default.nix b/pkgs/development/python-modules/dask-ml/default.nix
index 06c5f1753d47..c5fafa495aa6 100644
--- a/pkgs/development/python-modules/dask-ml/default.nix
+++ b/pkgs/development/python-modules/dask-ml/default.nix
@@ -20,13 +20,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.1.1";
+  version = "1.2.0";
   pname = "dask-ml";
   disabled = pythonOlder "3.6"; # >= 3.6
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yad9b9hd02rbdf6m1gfj74cjgcbyp7lxdj22d5h5rhv7xa3127x";
+    sha256 = "0ppg8licvkxz1af2q87cxms2p6ss2r5d4fdkbcivph56r0v0ci2k";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/deap/default.nix b/pkgs/development/python-modules/deap/default.nix
index e78a3f5eba03..9c49057398c9 100644
--- a/pkgs/development/python-modules/deap/default.nix
+++ b/pkgs/development/python-modules/deap/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "deap";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "102r11pxb36xkq5bjv1lpkss77v278f5xdv6lvkbjdvqryydf3yd";
+    sha256 = "0bvshly83c4h5jhxaa97z192viczymz5fxp6vl8awjmmrs9l9x8i";
   };
 
   propagatedBuildInputs = [ numpy matplotlib ];
diff --git a/pkgs/development/python-modules/denonavr/default.nix b/pkgs/development/python-modules/denonavr/default.nix
new file mode 100644
index 000000000000..33c1570060e5
--- /dev/null
+++ b/pkgs/development/python-modules/denonavr/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, requests
+, pytest, testtools, requests-mock }:
+
+buildPythonPackage rec {
+  pname = "denonavr";
+  version = "0.7.10";
+
+  src = fetchFromGitHub {
+    owner = "scarface-4711";
+    repo = "denonavr";
+    rev = version;
+    sha256 = "078nhr69f68nfazhmkf2sl7wiadqx96a5ry3ziggiy1xs04vflj7";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  doCheck = !isPy27;
+  checkInputs = [ pytest testtools requests-mock ];
+  checkPhase = ''
+    pytest tests
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/scarface-4711/denonavr";
+    description = "Automation Library for Denon AVR receivers.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/pkgs/development/python-modules/diff_cover/default.nix b/pkgs/development/python-modules/diff_cover/default.nix
index ed16f7f95e52..7066a188c773 100644
--- a/pkgs/development/python-modules/diff_cover/default.nix
+++ b/pkgs/development/python-modules/diff_cover/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "diff_cover";
-  version = "2.5.0";
+  version = "2.5.2";
 
   preCheck = ''
     export LC_ALL=en_US.UTF-8;
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2ba4e8dcd5439a245287fac056db02a9261432b1a44a5cffbe593032de86f1c7";
+    sha256 = "09pgzx2m04hzpckwgz4iz9590ll5fk1mirlra89qps8ig1xmz5m5";
   };
 
   propagatedBuildInputs = [ jinja2 jinja2_pluralize pygments six inflect ];
diff --git a/pkgs/development/python-modules/django-auth-ldap/default.nix b/pkgs/development/python-modules/django-auth-ldap/default.nix
index 3e95e7ff16ba..f0de263f1300 100644
--- a/pkgs/development/python-modules/django-auth-ldap/default.nix
+++ b/pkgs/development/python-modules/django-auth-ldap/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi, isPy27
-, ldap , django_2_2 
+, ldap , django 
 , mock
 }:
 
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "5f48232c85ddfa33e3573153e6080526ac2eef5e7ec9cf42b5c4ba3c62afb96d";
   };
 
-  propagatedBuildInputs = [ ldap django_2_2 ]; 
+  propagatedBuildInputs = [ ldap django ]; 
   checkInputs = [ mock ]; 
 
   # django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
diff --git a/pkgs/development/python-modules/django/2_1.nix b/pkgs/development/python-modules/django/2_1.nix
deleted file mode 100644
index 19e8b0c1a751..000000000000
--- a/pkgs/development/python-modules/django/2_1.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, substituteAll,
-  isPy3k,
-  geos, gdal, pytz,
-  withGdal ? false
-}:
-
-buildPythonPackage rec {
-  pname = "Django";
-  version = "2.1.15";
-
-  disabled = !isPy3k;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a794f7a2f4b7c928eecfbc4ebad03712ff27fb545abe269bf01aa8500781eb1c";
-  };
-
-  patches = stdenv.lib.optionals withGdal [
-    (substituteAll {
-      src = ./1.10-gis-libs.template.patch;
-      geos = geos;
-      gdal = gdal;
-      extension = stdenv.hostPlatform.extensions.sharedLibrary;
-    })
-  ];
-
-  propagatedBuildInputs = [ pytz ];
-
-  # too complicated to setup
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "A high-level Python Web framework";
-    homepage = https://www.djangoproject.com/;
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ georgewhewell ];
-  };
-}
diff --git a/pkgs/development/python-modules/django_modelcluster/default.nix b/pkgs/development/python-modules/django_modelcluster/default.nix
index 4efd2002b1fd..943f94914985 100644
--- a/pkgs/development/python-modules/django_modelcluster/default.nix
+++ b/pkgs/development/python-modules/django_modelcluster/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "django-modelcluster";
-  version = "5.0";
+  version = "5.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zcn1b0lp9dg6xvz8p8v1hrrgqj71izqalqz2dp1nz5rbj3s34x2";
+    sha256 = "1fk7fh30i0fzi0hjd841vxh25iryvgp4lirmxfpq428w4nq7p1bg";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix b/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
new file mode 100644
index 000000000000..626d704f1d8a
--- /dev/null
+++ b/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, django, djangorestframework, pyjwt }:
+
+buildPythonPackage rec {
+  pname = "djangorestframework_simplejwt";
+  version = "4.4.0";
+  
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c315be70aa12a5f5790c0ab9acd426c3a58eebea65a77d0893248c5144a5080c";
+  };
+  
+  propagatedBuildInputs = [ django djangorestframework pyjwt ];
+  
+  # Test raises django.core.exceptions.ImproperlyConfigured
+  doCheck = false;
+  
+  meta = with lib; {
+    description = "A minimal JSON Web Token authentication plugin for Django REST Framework";
+    homepage = "https://github.com/davesque/django-rest-framework-simplejwt";
+    license = licenses.mit;
+    maintainers = [ maintainers.arnoldfarkas ];
+  };
+}
diff --git a/pkgs/development/python-modules/drf-yasg/default.nix b/pkgs/development/python-modules/drf-yasg/default.nix
new file mode 100644
index 000000000000..707b1e5bc6e2
--- /dev/null
+++ b/pkgs/development/python-modules/drf-yasg/default.nix
@@ -0,0 +1,40 @@
+{
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  inflection,
+  ruamel_yaml,
+  setuptools_scm,
+  six,
+  coreapi,
+  djangorestframework,
+}:
+
+buildPythonPackage rec {
+  pname = "drf-yasg";
+  version = "1.16.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ri5h5xsacm99c6gvb4ldwisbqgiv2vq8qbn7vrh6vplzlpyvzb8";
+  };
+
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
+
+  propagatedBuildInputs = [
+    six
+    inflection
+    ruamel_yaml
+    coreapi
+    djangorestframework
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Generation of Swagger/OpenAPI schemas for Django REST Framework";
+    homepage = https://github.com/axnsan12/drf-yasg;
+    maintainers = with maintainers; [ ivegotasthma ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/eventlib/default.nix b/pkgs/development/python-modules/eventlib/default.nix
index 837ffa0d86d7..4f684612f184 100644
--- a/pkgs/development/python-modules/eventlib/default.nix
+++ b/pkgs/development/python-modules/eventlib/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Eventlib bindings for python";
-    homepage    = "http://ag-projects.com/";
+    homepage    = "https://ag-projects.com/";
     license     = licenses.lgpl2;
   };
 
diff --git a/pkgs/development/python-modules/flask-sockets/default.nix b/pkgs/development/python-modules/flask-sockets/default.nix
new file mode 100644
index 000000000000..aa29fd4fbc94
--- /dev/null
+++ b/pkgs/development/python-modules/flask-sockets/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flask
+, gevent
+, gevent-websocket
+}:
+
+buildPythonPackage rec {
+  pname = "Flask-Sockets";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "072927da8edca0e81e024f5787e643c87d80b351b714de95d723becb30e0643b";
+  };
+
+  propagatedBuildInputs = [
+    flask
+    gevent
+    gevent-websocket
+  ];
+
+  # upstream doesn't have any tests, single file
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "flask_sockets"
+  ];
+
+  meta = with lib; {
+    description = "Elegant WebSockets for your Flask apps";
+    homepage = "https://github.com/heroku-python/flask-sockets";
+    license = licenses.mit;
+    maintainers = [ maintainers.prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/fluidasserts/default.nix b/pkgs/development/python-modules/fluidasserts/default.nix
new file mode 100644
index 000000000000..78405ed8a660
--- /dev/null
+++ b/pkgs/development/python-modules/fluidasserts/default.nix
@@ -0,0 +1,176 @@
+{ buildPythonPackage
+, fetchPypi
+, isPy37
+, lib
+
+# pythonPackages
+, aiohttp
+, androguard
+, azure-identity
+, azure-keyvault-keys
+, azure-keyvault-secrets
+, azure-mgmt-compute
+, azure-mgmt-keyvault
+, azure-mgmt-network
+, azure-mgmt-resource
+, azure-mgmt-security
+, azure-mgmt-storage
+, azure-mgmt-web
+, azure-storage-file
+, azure-storage-file-share
+, bandit
+, bcrypt
+, beautifulsoup4
+, boto3
+, cfn-flip
+, cython
+, dnspython
+, colorama
+, configobj
+, defusedxml
+, GitPython
+, google_api_python_client
+, kubernetes
+, ldap3
+, mixpanel
+, mysql-connector
+, names
+, ntplib
+, oyaml
+, paramiko
+, pillow
+, psycopg2
+, pycrypto
+, pygments
+, pyhcl
+, pyjks
+, pynacl
+, pyopenssl
+, pypdf2
+, pysmb
+, python_magic
+, pytz
+, requirements-detector
+, selenium
+, tlslite-ng
+, viewstate
+
+# pythonPackages to test the derivation
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "fluidasserts";
+  version = "20.1.33141";
+  disabled = !isPy37;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "01l6yb3r19q8b4kwqkrzn7mpfsr65zsgzax2fbs43hb6pq6vavnx";
+  };
+
+  patchPhase = ''
+    # Version mismatches between current FluidAsserts and Nixpkgs
+    substituteInPlace ./setup.py \
+      --replace 'tlslite-ng==0.8.0-alpha36' 'tlslite-ng==0.7.5' \
+      --replace 'boto3==1.11.7' 'boto3==1.10.1' \
+      --replace 'cfn-flip==1.2.2' 'cfn-flip==1.1.0.post1' \
+      --replace 'typed-ast==1.4.1' 'typed-ast==1.4.0' \
+      --replace 'pillow==7.0.0' 'pillow==6.2.1' \
+
+    # Functionality that will be not present for the momment
+    #   but that we'll work to add in the future
+    # Just a minimal portion of fluidasserts use this
+    substituteInPlace ./setup.py \
+      --replace "'pymssql==2.1.4'," "" \
+      --replace "'pytesseract==0.3.1'," "" \
+      --replace "'pywinrm==0.4.1'," "" \
+      --replace "'mitmproxy==5.0.1'," "" \
+
+  '';
+
+  propagatedBuildInputs = [
+    # pythonPackages
+    aiohttp
+    androguard
+    azure-identity
+    azure-keyvault-keys
+    azure-keyvault-secrets
+    azure-mgmt-compute
+    azure-mgmt-keyvault
+    azure-mgmt-network
+    azure-mgmt-resource
+    azure-mgmt-security
+    azure-mgmt-storage
+    azure-mgmt-web
+    azure-storage-file
+    azure-storage-file-share
+    bandit
+    bcrypt
+    beautifulsoup4
+    boto3
+    cfn-flip
+    cython
+    dnspython
+    colorama
+    configobj
+    defusedxml
+    GitPython
+    google_api_python_client
+    kubernetes
+    ldap3
+    mixpanel
+    mysql-connector
+    names
+    ntplib
+    oyaml
+    paramiko
+    pillow
+    psycopg2
+    pycrypto
+    pygments
+    pyhcl
+    pyjks
+    pynacl
+    pyopenssl
+    pypdf2
+    pysmb
+    python_magic
+    pytz
+    requirements-detector
+    selenium
+    tlslite-ng
+    viewstate
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    # This file launches mock docker containers and servers
+    #   let's remove it to create a custom test environment
+    rm test/conftest.py
+
+    pytest \
+      test/test_cloud_aws_terraform_{ebs,ec2}.py \
+      test/test_cloud_aws_cloudformation_{cloudfront,dynamodb,ec2,elb,elb2}.py \
+      test/test_cloud_aws_cloudformation_{fsx,iam,kms,rds,s3,secretsmanager}.py \
+      test/test_format_{apk,jks,jwt,pdf,pkcs12,string}.py \
+      test/test_helper_{asynchronous,crypto}.py \
+      test/test_lang_{javascript,java}.py \
+      test/test_lang_{core,csharp,docker,dotnetconfig,html,php,python,rpgle}.py \
+      test/test_utils_generic.py
+
+  '';
+
+  meta = with lib; {
+    description = "Assertion Library for Security Assumptions";
+    homepage = "https://gitlab.com/fluidattacks/asserts";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/flux-led/default.nix b/pkgs/development/python-modules/flux-led/default.nix
new file mode 100644
index 000000000000..1cbfca78462f
--- /dev/null
+++ b/pkgs/development/python-modules/flux-led/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub
+, aiohttp, zigpy
+, pytest, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "flux_led";
+  version = "0.22";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "Danielhiversen";
+    repo = "flux_led";
+    rev = version;
+    sha256 = "1zgajlkhclyrqhkmivna4ha2lyvfpk5929s042gy59p7mzpkvjx7";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A Python library to communicate with the flux_led smart bulbs";
+    homepage = "https://github.com/Danielhiversen/flux_led";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ colemickens ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/getmac/default.nix b/pkgs/development/python-modules/getmac/default.nix
new file mode 100644
index 000000000000..51ce0ef05031
--- /dev/null
+++ b/pkgs/development/python-modules/getmac/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, pytest, pytest-benchmark, pytest-mock }:
+
+buildPythonPackage rec {
+  pname = "getmac";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "GhostofGoes";
+    repo = "getmac";
+    rev = version;
+    sha256 = "08d4iv5bjl1s4i9qhzf3pzjgj1rgbwi0x26qypf3ycgdj0a6gvh2";
+  };
+
+  checkInputs = [ pytest pytest-benchmark pytest-mock ];
+  checkPhase = ''
+    pytest --ignore tests/test_cli.py
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/GhostofGoes/getmac";
+    description = "Pure-Python package to get the MAC address of network interfaces and hosts on the local network.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/pkgs/development/python-modules/glances/default.nix b/pkgs/development/python-modules/glances/default.nix
index f248dffb4fff..0a0864e52b6c 100644
--- a/pkgs/development/python-modules/glances/default.nix
+++ b/pkgs/development/python-modules/glances/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchFromGitHub, fetchpatch, isPyPy, lib
+{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, isPyPy, lib
 , psutil, setuptools, bottle, batinfo, pysnmp
 , hddtemp, future
 # Optional dependencies:
@@ -20,19 +20,38 @@ buildPythonPackage rec {
   };
 
   # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
-  patches = lib.optional doCheck ./skip-failing-tests.patch
-    ++ [ (fetchpatch {
-      # Correct unitest
-      url = "https://github.com/nicolargo/glances/commit/abf64ffde31113f5f46ef286703ff061fc57395f.patch";
-      sha256 = "00krahqq89jvbgrqx2359cndmvq5maffhpj163z10s1n7q80kxp1";
-    }) ];
+  patches = lib.optional (doCheck && stdenv.isLinux) ./skip-failing-tests.patch
+    ++ [
+      (fetchpatch {
+        # Correct unitest
+        url = "https://github.com/nicolargo/glances/commit/abf64ffde31113f5f46ef286703ff061fc57395f.patch";
+        sha256 = "00krahqq89jvbgrqx2359cndmvq5maffhpj163z10s1n7q80kxp1";
+      })
+
+      (fetchpatch {
+        # Fix IP plugin initialization issue
+        url = "https://github.com/nicolargo/glances/commit/48cb5ef8053d823302e7e53490fb22cec2fabb0f.patch";
+        sha256 = "1590qgcr8w3d9ddpgd9mk5j6q6aq29341vr8bi202yjwwiv2bia9";
+      })
+    ];
+
+  # On Darwin this package segfaults due to mismatch of pure and impure
+  # CoreFoundation. This issues was solved for binaries but for interpreted
+  # scripts a workaround below is still required.
+  # Relevant: https://github.com/NixOS/nixpkgs/issues/24693
+  makeWrapperArgs = lib.optionals stdenv.isDarwin [
+    "--set" "DYLD_FRAMEWORK_PATH" "/System/Library/Frameworks"
+  ];
 
   doCheck = true;
   checkInputs = [ unittest2 ];
+  preCheck = lib.optional stdenv.isDarwin ''
+    export DYLD_FRAMEWORK_PATH=/System/Library/Frameworks
+  '';
 
-  propagatedBuildInputs = [ psutil setuptools bottle batinfo pysnmp hddtemp future
+  propagatedBuildInputs = [ psutil setuptools bottle batinfo pysnmp future
     netifaces
-  ];
+  ] ++ lib.optional stdenv.isLinux hddtemp;
 
   preConfigure = ''
     sed -i 's/data_files\.append((conf_path/data_files.append(("etc\/glances"/' setup.py;
@@ -43,5 +62,6 @@ buildPythonPackage rec {
     description = "Cross-platform curses-based monitoring tool";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ primeos koral ];
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
index a276bd33b592..918ed268afa5 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 = "2019.12.25";
+  version = "2020.1.17";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "1aa7jccwldxw3s0z668qqb0i0plsark1q3jvkmqkyp645w5bfilk";
+    sha256 = "08qcisiscnx74pwavh3ai3lg92zfrikwzr06p700kwk1gp8xhf3v";
   };
 
   # tests require network connection
diff --git a/pkgs/development/python-modules/html2text/default.nix b/pkgs/development/python-modules/html2text/default.nix
index 9b289032514e..a0462795d232 100644
--- a/pkgs/development/python-modules/html2text/default.nix
+++ b/pkgs/development/python-modules/html2text/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "html2text";
-  version = "2019.9.26";
+  version = "2020.1.16";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "Alir3z4";
     repo = pname;
     rev = version;
-    sha256 = "1gzcx4n6q71plq4zvb1z0fy3brrln0qqrd6jc89iiqn7r1ix8h87";
+    sha256 = "1y924clp2hiqg3a9437z808p29mqcx537j5fmz71plx8qrcm5jf9";
   };
 
   # python setup.py test is broken, use pytest
diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix
index bfe039382aca..86d1617852b8 100644
--- a/pkgs/development/python-modules/identify/default.nix
+++ b/pkgs/development/python-modules/identify/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "1.4.9";
+  version = "1.4.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f44e637caa40d1b4cb37f6ed3b262ede74901d28b1cc5b1fc07360871edd65d";
+    sha256 = "0q1k22n8w7mmab1vh2r3bsqbxkxbb2zka548rcnn2rd9yg8rxnca";
   };
 
   # Tests not included in PyPI tarball
diff --git a/pkgs/development/python-modules/ipython/5.nix b/pkgs/development/python-modules/ipython/5.nix
index 15e7d00bcece..dd0c97fc3c56 100644
--- a/pkgs/development/python-modules/ipython/5.nix
+++ b/pkgs/development/python-modules/ipython/5.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 # Build dependencies
 , glibcLocales
 # Test dependencies
@@ -36,6 +37,15 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "'gnureadline'" " "
   '';
 
+  patches = [
+    # Use the proper pygments lexer for python2 (https://github.com/ipython/ipython/pull/12095)
+    (fetchpatch {
+      name = "python2-lexer.patch";
+      url = "https://github.com/ipython/ipython/pull/12095/commits/8805293b5e4bce9150cc2ad9c5d6d984849ae447.patch";
+      sha256 = "16p4gl7a49v76w33j39ih7yspy6x2d14p9bh4wdpg9cafhw9nbc0";
+    })
+  ];
+
   buildInputs = [ glibcLocales ];
 
   checkInputs = [ nose pygments testpath ] ++ lib.optional isPy27 mock;
diff --git a/pkgs/development/python-modules/itypes/default.nix b/pkgs/development/python-modules/itypes/default.nix
new file mode 100644
index 000000000000..1386ba39a268
--- /dev/null
+++ b/pkgs/development/python-modules/itypes/default.nix
@@ -0,0 +1,31 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytest,
+}:
+
+buildPythonPackage rec {
+  pname = "itypes";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "tomchristie";
+    rev = version;
+    sha256 = "0zkhn16wpslkxkq77dqw5rxa28nrchcb6nd3vgnxv91p4skyfm62";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    mv itypes.py itypes.py.hidden
+    pytest tests.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple immutable types for python";
+    homepage = https://github.com/tomchristie/itypes;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ivegotasthma ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyter_console/default.nix b/pkgs/development/python-modules/jupyter_console/default.nix
index 9200e004d0c6..42f50c203e3d 100644
--- a/pkgs/development/python-modules/jupyter_console/default.nix
+++ b/pkgs/development/python-modules/jupyter_console/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "jupyter_console";
-  version = "6.0.0";
+  version = "6.1.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "308ce876354924fb6c540b41d5d6d08acfc946984bf0c97777c1ddcb42e0b2f5";
+    sha256 = "06s3kr5vx0l1y1b7fxb04dmrppscl7q69sl9yyfr0d057d1ssvkg";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index 32d3ad0bada3..ece3b4e3ed5c 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "1.2.4";
+  version = "1.2.5";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6adb88acd05b51512c37df477a18c36240823a591c2a51bf6556198414026d8f";
+    sha256 = "086zl3pdsq2jwcxv7ppp3lpwh25mgnn0y0s6scmkrz158yj55kp3";
   };
 
   propagatedBuildInputs = [ jupyterlab_server notebook ];
diff --git a/pkgs/development/python-modules/jupytext/default.nix b/pkgs/development/python-modules/jupytext/default.nix
index 961eb43f03b5..41eb2b58ca88 100644
--- a/pkgs/development/python-modules/jupytext/default.nix
+++ b/pkgs/development/python-modules/jupytext/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "jupytext";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "132bad60c63debfb371a691cb6668a19938ec268599e9c49f1531a3bf0be7b1c";
+    sha256 = "081c8dbql93bpl72pzg0z8vg482r3f350490mhqn965s10bz8say";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/lark-parser/default.nix b/pkgs/development/python-modules/lark-parser/default.nix
index 38e51ac0ac68..1ba7df00ea3a 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.7.8";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "lark-parser";
     repo = "lark";
     rev = version;
-    sha256 = "0gd5c3scpyir3h8clhwb5jsf8dkmh1vh7rx8135lkx9fxx01q0az";
+    sha256 = "1mjicdvrzh9r9q3xrjrzaiaxk04r60a3l6l0vnp1hq3xfc9ccqc8";
   };
 
   # tests of Nearley support require js2py
diff --git a/pkgs/development/python-modules/libnacl/default.nix b/pkgs/development/python-modules/libnacl/default.nix
index 54b98cf21368..893789d961d9 100644
--- a/pkgs/development/python-modules/libnacl/default.nix
+++ b/pkgs/development/python-modules/libnacl/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "libnacl";
-  version = "1.6.1";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "saltstack";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05iamhbsqm8binqhc2zchfqdkajlx2icf8xl5vkd5fbrhw6yylad";
+    sha256 = "10rpim9lf0qd861a3miq8iqg8w87slqwqni7nq66h72jdk130axg";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/llfuse/default.nix b/pkgs/development/python-modules/llfuse/default.nix
index 6a4973584044..02adb5a8d161 100644
--- a/pkgs/development/python-modules/llfuse/default.nix
+++ b/pkgs/development/python-modules/llfuse/default.nix
@@ -1,7 +1,11 @@
-{ stdenv, fetchurl, buildPythonPackage, pkgconfig, pytest, fuse, attr, which
-, contextlib2
+{ stdenv, fetchurl, fetchpatch, buildPythonPackage, pkgconfig, pytest, fuse, attr, which
+, contextlib2, osxfuse
 }:
 
+let
+  inherit (stdenv.lib) optionals optionalString;
+in
+
 buildPythonPackage rec {
   pname = "llfuse";
   version = "1.3.6";
@@ -11,14 +15,29 @@ buildPythonPackage rec {
     sha256 = "1j9fzxpgmb4rxxyl9jcf84zvznhgi3hnh4hg5vb0qaslxkvng8ii";
   };
 
+  patches = [
+    # https://github.com/python-llfuse/python-llfuse/pull/23 (2 commits)
+    (fetchpatch {
+      url = "https://github.com/python-llfuse/python-llfuse/commit/7579b0e626da1a7882b13caedcdbd4a834702e94.diff";
+      sha256 = "0vpybj4k222h20lyn0q7hz86ziqlapqs5701cknw8d11jakbhhb0";
+    })
+    (fetchpatch {
+      url = "https://github.com/python-llfuse/python-llfuse/commit/438c00ab9e10d6c485bb054211c01b7f8524a736.diff";
+      sha256 = "1zhb05b7k3c9mjqshy9in8yzpbihy7f33x1myq5kdjip1k50cwrn";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ fuse ];
-  checkInputs = [ pytest attr which ];
+  buildInputs =
+    optionals stdenv.isLinux [ fuse ]
+    ++ optionals stdenv.isDarwin [ osxfuse ];
+  checkInputs = [ pytest which ] ++
+    optionals stdenv.isLinux [ attr ];
 
   propagatedBuildInputs = [ contextlib2 ];
 
   checkPhase = ''
-    py.test -k "not test_listdir"
+    py.test -k "not test_listdir" ${optionalString stdenv.isDarwin ''-m "not uses_fuse"''}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/loguru/default.nix b/pkgs/development/python-modules/loguru/default.nix
index ceb9f841a461..c12084f008ec 100644
--- a/pkgs/development/python-modules/loguru/default.nix
+++ b/pkgs/development/python-modules/loguru/default.nix
@@ -2,18 +2,18 @@
 
 buildPythonPackage rec {
   pname = "loguru";
-  version = "0.4.0";
+  version = "0.4.1";
   
   disabled = isPy27;
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d5ddf363b7e0e562652f283f74a89bf35601baf16b70f2cd2736a2f8c6638748";
+    sha256 = "a6101fd435ac89ba5205a105a26a6ede9e4ddbb4408a6e167852efca47806d11";
   };
 
   checkInputs = [ pytestCheckHook colorama ];
 
   disabledTests = [ "test_time_rotation_reopening" "test_file_buffering" ]
-    ++ stdenv.lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" ];
+    ++ stdenv.lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" "test_await_complete_inheritance" ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/Delgan/loguru;
diff --git a/pkgs/development/python-modules/mailmanclient/default.nix b/pkgs/development/python-modules/mailmanclient/default.nix
index 9fe9adbe6cfd..247a7ed1b004 100644
--- a/pkgs/development/python-modules/mailmanclient/default.nix
+++ b/pkgs/development/python-modules/mailmanclient/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, httplib2, requests }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, six, httplib2, requests }:
 
 buildPythonPackage rec {
   pname = "mailmanclient";
   version = "3.3.0";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
@@ -16,7 +17,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mailmanclient" ];
 
   meta = with stdenv.lib; {
-    homepage = "http://www.gnu.org/software/mailman/";
+    homepage = "https://www.gnu.org/software/mailman/";
     description = "REST client for driving Mailman 3";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/development/python-modules/marionette-harness/mozdevice.nix b/pkgs/development/python-modules/marionette-harness/mozdevice.nix
index 9b5216899367..9f1a682c2ce3 100644
--- a/pkgs/development/python-modules/marionette-harness/mozdevice.nix
+++ b/pkgs/development/python-modules/marionette-harness/mozdevice.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "mozdevice";
-  version = "3.0.6";
+  version = "3.0.7";
   format = "wheel";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1gw2lk16fz2n1953i29hgw47s2h0c6z911zzg8am1in8qq2318xv";
+    sha256 = "1n7l3drdh3rm3320v98c9hhh37ljk9l861hyw18psca7jdd717n5";
     format = "wheel";
   };
 
diff --git a/pkgs/development/python-modules/marionette-harness/moznetwork.nix b/pkgs/development/python-modules/marionette-harness/moznetwork.nix
index 3901f7c310d0..106a94b50e28 100644
--- a/pkgs/development/python-modules/marionette-harness/moznetwork.nix
+++ b/pkgs/development/python-modules/marionette-harness/moznetwork.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "moznetwork";
-  version = "0.27";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09ypx5wif0mly6fk3491nlzg8whg6qw24x7h9w70hykdqindbh2s";
+    sha256 = "0ws20l4ggb6mj7ycwrk5h7hj1jmj3mj0ca48k5jzsa4n042ahwrd";
   };
 
   propagatedBuildInputs = [ mozlog mozinfo ]; 
diff --git a/pkgs/development/python-modules/minio/default.nix b/pkgs/development/python-modules/minio/default.nix
index 61567d851e9b..a27867467edf 100644
--- a/pkgs/development/python-modules/minio/default.nix
+++ b/pkgs/development/python-modules/minio/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "5.0.5";
+  version = "5.0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a5886b3ccb9b46cb4a322a486e06674d1f287b773f20b24cdc3de8450ff935a7";
+    sha256 = "1p6gnbapwzpg7h0wv52fn4dd3dlhxl5qziadkiqjl8xaz8yp3vys";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/mixpanel/default.nix b/pkgs/development/python-modules/mixpanel/default.nix
index e770eedbfc31..fac1afe2c97b 100644
--- a/pkgs/development/python-modules/mixpanel/default.nix
+++ b/pkgs/development/python-modules/mixpanel/default.nix
@@ -1,30 +1,46 @@
-{ stdenv
-, buildPythonPackage
-, fetchzip
-, pytest
+
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy37
+, lib
+
+# Python Dependencies
 , mock
+, pytest
 , six
-, isPy3k
 }:
 
 buildPythonPackage rec {
-  version = "4.0.2";
   pname = "mixpanel";
-  disabled = isPy3k;
+  version = "4.5.0";
+  disabled = !isPy37;
 
-  src = fetchzip {
-    url = "https://github.com/mixpanel/mixpanel-python/archive/${version}.zip";
-    sha256 = "0yq1bcsjzsz7yz4rp69izsdn47rvkld4wki2xmapp8gg2s9i8709";
+  src = fetchFromGitHub {
+    owner = "mixpanel";
+    repo = "mixpanel-python";
+    rev = version;
+    sha256 = "1hlc717wcn71i37ngsfb3c605rlyjhsn3v6b5bplq00373r4d39z";
   };
 
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ six ];
-  checkPhase = "py.test tests.py";
+  propagatedBuildInputs = [
+    six
+  ];
 
-  meta = with stdenv.lib; {
-    homepage = https://github.com/mixpanel/mixpanel-python;
-    description = ''This is the official Mixpanel Python library'';
+  checkInputs = [
+    mock
+    pytest
+  ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/mixpanel/mixpanel-python";
+    description = "Official Mixpanel Python library";
     license = licenses.asl20;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
   };
-
 }
diff --git a/pkgs/development/python-modules/musicbrainzngs/default.nix b/pkgs/development/python-modules/musicbrainzngs/default.nix
index 71bdcc8b547c..7ae3445377e6 100644
--- a/pkgs/development/python-modules/musicbrainzngs/default.nix
+++ b/pkgs/development/python-modules/musicbrainzngs/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "musicbrainzngs";
-  version = "0.6";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dddarpjawryll2wss65xq3v9q8ln8dan7984l5dxzqx88d2dvr8";
+    sha256 = "09z6k07pxncfgfc8clfmmxl2xqbd7h8x8bjzwr95hc0bzl00275b";
   };
 
   buildInputs = [ pkgs.glibcLocales ];
diff --git a/pkgs/development/python-modules/mysql-connector/default.nix b/pkgs/development/python-modules/mysql-connector/default.nix
index 00d869cb3913..61a055b5ea8a 100644
--- a/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/pkgs/development/python-modules/mysql-connector/default.nix
@@ -1,19 +1,27 @@
 { lib, buildPythonPackage, fetchFromGitHub
-, protobuf
+, python3, protobuf3_6
 }:
 
-buildPythonPackage rec {
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      protobuf = super.protobuf.override {
+        protobuf = protobuf3_6;
+      };
+    };
+  };
+in buildPythonPackage rec {
   pname = "mysql-connector";
-  version = "8.0.18";
+  version = "8.0.19";
 
   src = fetchFromGitHub {
     owner = "mysql";
     repo = "mysql-connector-python";
     rev = version;
-    sha256 = "0pf91vbjigjv621dar47r741yvmdmapxh60wp20nzvlx0xchbmcm";
+    sha256 = "1jscmc5s7mwx43gvxjlqc30ylp5jjpmkqx7s3b9nllbh926p3ixg";
   };
 
-  propagatedBuildInputs = [ protobuf ];
+  propagatedBuildInputs = with python.pkgs; [ protobuf dnspython ];
 
   # Tests are failing (TODO: unknown reason)
   # TypeError: __init__() missing 1 required positional argument: 'string'
diff --git a/pkgs/development/python-modules/nest-asyncio/default.nix b/pkgs/development/python-modules/nest-asyncio/default.nix
index a88c07c99687..334edd0cf1eb 100644
--- a/pkgs/development/python-modules/nest-asyncio/default.nix
+++ b/pkgs/development/python-modules/nest-asyncio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 , pythonAtLeast
@@ -14,10 +14,15 @@ buildPythonPackage rec {
     sha256 = "7d4d7c1ca2aad0e5c2706d0222c8ff006805abfd05caa97e6127c8811d0f6adc";
   };
 
-  meta = with stdenv.lib; {
-    homepage = https://github.com/erdewit/nest_asyncio;
+  # tests not packaged with source dist as of 1.2.1/1.2.2, and
+  # can't check tests out of GitHub easily without specific commit IDs (no tagged releases)
+  doCheck = false;
+  pythonImportsCheck = [ "nest_asyncio" ];
+
+  meta = with lib; {
     description = "Patch asyncio to allow nested event loops";
+    homepage = "https://github.com/erdewit/nest_asyncio";
     license = licenses.bsdOriginal;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index 461d70497bf0..c0e86dd37514 100644
--- a/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/pkgs/development/python-modules/phonenumbers/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.11.1";
+  version = "8.11.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "239507184ee5b1b83557005af1d5fcce70f83ae18f5dff45b94a67226db10d63";
+    sha256 = "0j73mr3d3rf2r4nkaxbvl7323xima0l95pjagjzgk2piqwa3nbd2";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/plexapi/default.nix b/pkgs/development/python-modules/plexapi/default.nix
new file mode 100644
index 000000000000..ed95de9ffde6
--- /dev/null
+++ b/pkgs/development/python-modules/plexapi/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, requests
+, tqdm, websocket_client, pytest, pillow, mock, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "PlexAPI";
+  version = "3.2.0";
+
+  src = fetchFromGitHub {
+    owner = "pkkid";
+    repo = "python-plexapi";
+    rev = version;
+    sha256 = "1rzy018zcsws56mcghnphhzwj650pwj7qg6nh9z1kjvgwwjfmghf";
+  };
+
+  propagatedBuildInputs = [ requests tqdm websocket_client ];
+
+  checkInputs = [ pytest pillow ]
+    ++ lib.optionals isPy27 [ mock ];
+
+  meta = with lib; {
+    homepage = "https://github.com/pkkid/python-plexapi";
+    description = "Python bindings for the Plex API";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/pkgs/development/python-modules/plexauth/default.nix b/pkgs/development/python-modules/plexauth/default.nix
new file mode 100644
index 000000000000..91407a907a44
--- /dev/null
+++ b/pkgs/development/python-modules/plexauth/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchFromGitHub, aiohttp, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "plexauth";
+  version = "0.0.5";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "jjlawren";
+    repo = "python-plexauth";
+    rev = "v${version}";
+    sha256 = "1wbrn22iywl4ccz64r3w3f17k0r7vi2cqkqd2mrdkx5xqhscn9hz";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # package does not include tests
+  doCheck = false;
+
+  # at least guarantee the module can be imported
+  pythonImportsCheck = [
+    "plexauth"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jjlawren/python-plexauth/";
+    description = "Handles the authorization flow to obtain tokens from Plex.tv via external redirection";
+    license = licenses.mit;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/pkgs/development/python-modules/plexwebsocket/default.nix b/pkgs/development/python-modules/plexwebsocket/default.nix
new file mode 100644
index 000000000000..383a37cee3fe
--- /dev/null
+++ b/pkgs/development/python-modules/plexwebsocket/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchFromGitHub, aiohttp, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "plexwebsocket";
+  version = "0.0.6";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "jjlawren";
+    repo = "python-plexwebsocket";
+    rev = "v${version}";
+    sha256 = "1sy9khxksimcmdvghg1ksk65mkiihjvhi7m7ms2kzmy7mrg3s3i7";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # package does not include tests
+  doCheck = false;
+
+  # at least guarantee the module can be imported
+  pythonImportsCheck = [
+    "plexwebsocket"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jjlawren/python-plexwebsocket/";
+    description = "Async library to react to events issued over Plex websockets";
+    license = licenses.mit;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/pkgs/development/python-modules/plyvel/default.nix b/pkgs/development/python-modules/plyvel/default.nix
index b66d32311461..26c9a8af5e6f 100644
--- a/pkgs/development/python-modules/plyvel/default.nix
+++ b/pkgs/development/python-modules/plyvel/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "plyvel";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1icsycqqjj8048a0drj3j75a71yiv2cmijh4w3jf9zxahh3k2c9p";
+    sha256 = "1xkgj58i66w4h6gwp6fn6xj5nkrad6kxz3byhy9q1j94jml1ns1x";
   };
 
   buildInputs = [ pkgs.leveldb ] ++ stdenv.lib.optional isPy3k pytest;
diff --git a/pkgs/development/python-modules/ppft/default.nix b/pkgs/development/python-modules/ppft/default.nix
index 101c10b1d12d..8731c997aa73 100644
--- a/pkgs/development/python-modules/ppft/default.nix
+++ b/pkgs/development/python-modules/ppft/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, python
 , six
 }:
 
@@ -15,8 +16,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  # tests no longer packages on pypi
-  doCheck = false;
+  # darwin seems to hang
+  doCheck = !stdenv.isDarwin;
+  checkPhase = ''
+    cd examples
+    ${python.interpreter} -m ppft.tests
+  '';
 
   meta = with stdenv.lib; {
     description = "Distributed and parallel python";
diff --git a/pkgs/development/python-modules/praw/default.nix b/pkgs/development/python-modules/praw/default.nix
index 14166b4f43cb..47715b9e5679 100644
--- a/pkgs/development/python-modules/praw/default.nix
+++ b/pkgs/development/python-modules/praw/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "praw";
-  version = "6.4.0";
+  version = "6.5.1";
 
   src = fetchFromGitHub {
     owner = "praw-dev";
     repo = "praw";
     rev = "v${version}";
-    sha256 = "0j92wqyppif2k80zhzq30b04r8ljwjviply400kn4rjn54hxd4hb";
+    sha256 = "0d5whaw4731gllffhwrh2qqnlki4j8q83xaf3v4spkd40ps3q7b4";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
new file mode 100644
index 000000000000..cb91196fc7e6
--- /dev/null
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchPypi, requests }:
+
+buildPythonPackage rec {
+  pname = "pyTelegramBotAPI";
+  version = "3.6.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "00vycd7jvfnzmvmmhkjx9vf40vkcrwv7adas5i81r2jhjy7sks54";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  meta = with lib; {
+    homepage = "https://github.com/eternnoir/pyTelegramBotAPI";
+    description = "A simple, but extensible Python implementation for the Telegram Bot API";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ das_j ];
+  };
+}
diff --git a/pkgs/development/python-modules/pycodestyle/default.nix b/pkgs/development/python-modules/pycodestyle/default.nix
index 286f42e2f30b..acaf78cc4d29 100644
--- a/pkgs/development/python-modules/pycodestyle/default.nix
+++ b/pkgs/development/python-modules/pycodestyle/default.nix
@@ -1,4 +1,7 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ buildPythonPackage
+, fetchPypi
+, lib
+}:
 
 buildPythonPackage rec {
   pname = "pycodestyle";
@@ -6,13 +9,23 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c";
+    sha256 = "0v4prb05n21bm8650v0a01k1nyqjdmkrsm3zycfxh2j5k9n962p4";
   };
 
+  # https://github.com/PyCQA/pycodestyle/blob/2.5.0/tox.ini#L14
+  checkPhase = ''
+    python pycodestyle.py --max-doc-length=72 --testsuite testsuite
+    python pycodestyle.py --statistics pycodestyle.py
+    python pycodestyle.py --max-doc-length=72 --doctest
+    python setup.py test
+  '';
+
   meta = with lib; {
     description = "Python style guide checker (formerly called pep8)";
     homepage = https://pycodestyle.readthedocs.io;
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pycurl/default.nix b/pkgs/development/python-modules/pycurl/default.nix
index 153a6e0377db..36e5b96319e3 100644
--- a/pkgs/development/python-modules/pycurl/default.nix
+++ b/pkgs/development/python-modules/pycurl/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
     flaky
   ];
 
+  # skip impure or flakey tests
   checkPhase = ''
     HOME=$TMPDIR pytest tests -k "not test_ssl_in_static_libs \
                      and not test_keyfunction \
@@ -42,7 +43,8 @@ buildPythonPackage rec {
                      and not test_libcurl_ssl_gnutls \
                      and not test_libcurl_ssl_nss \
                      and not test_libcurl_ssl_openssl" \
-                 --ignore=tests/getinfo_test.py
+                 --ignore=tests/getinfo_test.py \
+                 --ignore=tests/memory_mgmt_test.py
   '';
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/pydicom/default.nix b/pkgs/development/python-modules/pydicom/default.nix
new file mode 100644
index 000000000000..d281193be231
--- /dev/null
+++ b/pkgs/development/python-modules/pydicom/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestrunner
+, numpy
+, pillow
+}:
+
+buildPythonPackage rec {
+  version = "1.3.0";
+  pname = "pydicom";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1j11lsykqbnw9d6gzgj6kfn6lawvm5d9azd9palj3l1xhj0hlnsq";
+  };
+
+  propagatedBuildInputs = [ numpy pillow ];
+  checkInputs = [ pytest pytestrunner ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pydicom.github.io;
+    description = "Pure-Python package for working with DICOM files";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyenchant/default.nix b/pkgs/development/python-modules/pyenchant/default.nix
index cd645a8d89b7..f144cf555525 100644
--- a/pkgs/development/python-modules/pyenchant/default.nix
+++ b/pkgs/development/python-modules/pyenchant/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, pkgs
+, enchant2
 }:
 
 buildPythonPackage rec {
@@ -13,15 +13,21 @@ buildPythonPackage rec {
     sha256 = "fc31cda72ace001da8fe5d42f11c26e514a91fa8c70468739216ddd8de64e2a0";
   };
 
-  propagatedBuildInputs = [ pkgs.enchant1 ];
+  propagatedBuildInputs = [ enchant2 ];
 
-  patchPhase = let
-    path_hack_script = "s|LoadLibrary(e_path)|LoadLibrary('${pkgs.enchant1}/lib/' + e_path)|";
+  postPatch = let
+    libext = stdenv.hostPlatform.extensions.sharedLibrary;
   in ''
-    sed -i "${path_hack_script}" enchant/_enchant.py
-
-    # They hardcode a bad path for Darwin in their library search code
-    substituteInPlace enchant/_enchant.py --replace '/opt/local/lib/' ""
+    # Use the $PYENCHANT_LIBRARY_PATH envvar lookup line to hard-code the
+    # location of the nix enchant-2 library into _enchant.py.
+    #
+    # Also, they hardcode a bad path for Darwin in their library search code;
+    # This code should never be hit, but in case it does, we don't want to have
+    # it "accidentally" work by pulling something from /opt.
+    substituteInPlace enchant/_enchant.py                  \
+      --replace 'os.environ.get("PYENCHANT_LIBRARY_PATH")' \
+                "'${enchant2}/lib/libenchant-2${libext}'"  \
+      --replace '/opt/local/lib/' ""
   '';
 
   # dictionaries needed for tests
@@ -31,7 +37,6 @@ buildPythonPackage rec {
     description = "pyenchant: Python bindings for the Enchant spellchecker";
     homepage = https://github.com/pyenchant/pyenchant;
     license = licenses.lgpl21;
-    badPlatforms = [ "x86_64-darwin" ];
   };
 
 }
diff --git a/pkgs/development/python-modules/pyezminc/default.nix b/pkgs/development/python-modules/pyezminc/default.nix
deleted file mode 100644
index 614a1555cbef..000000000000
--- a/pkgs/development/python-modules/pyezminc/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ buildPythonPackage, isPy3k, fetchFromGitHub, stdenv,
-  netcdf, hdf5, libminc, ezminc,
-  cython, numpy, scipy
-}:
-
-buildPythonPackage rec {
-  pname = "pyezminc";
-  version = "1.2.01";
- 
-  disabled = isPy3k;
-
-  src = fetchFromGitHub {
-    owner  = "BIC-MNI";
-    repo   = "pyezminc";
-    rev    = "release-${version}";
-    sha256 = "13smvramacisbwj8qsl160dnvv6ynngn1jmqwhvy146nmadphyv1";
-  };
-
-  nativeBuildInputs = [ cython ];
-  buildInputs = [ netcdf hdf5 libminc ezminc ];
-  propagatedBuildInputs = [ numpy scipy ];
-
-  NIX_CFLAGS_COMPILE = "-fpermissive";
-
-  doCheck = false;  # e.g., expects test data in /opt
-
-  meta = {
-    homepage = https://github.com/BIC-MNI/pyezminc;
-    description = "Python API for libminc using EZMINC";
-    license = stdenv.lib.licenses.gpl2;
-    maintainers = with stdenv.lib.maintainers; [ bcdarwin ];
-  };
-}
diff --git a/pkgs/development/python-modules/pyfaidx/default.nix b/pkgs/development/python-modules/pyfaidx/default.nix
index eb0b573c4387..7188ac8ce4af 100644
--- a/pkgs/development/python-modules/pyfaidx/default.nix
+++ b/pkgs/development/python-modules/pyfaidx/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyfaidx";
-  version = "0.5.7";
+  version = "0.5.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "512c409b36eadfe39c40e46112d8f96b29fdc1032dc424da2bdc783d476f5b0a";
+    sha256 = "038xi3a6zvrxbyyfpp64ka8pcjgsdq4fgw9cl5lpxbvmm1bzzw2q";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/pygdbmi/default.nix b/pkgs/development/python-modules/pygdbmi/default.nix
index fc19ab26573a..c294b02c31d9 100644
--- a/pkgs/development/python-modules/pygdbmi/default.nix
+++ b/pkgs/development/python-modules/pygdbmi/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "pygdbmi";
-  version = "0.9.0.0";
+  version = "0.9.0.2";
 
   src = fetchFromGitHub {
     #inherit pname version;
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     owner = "cs01";
     repo = "pygdbmi";
     rev = version;
-    sha256 = "12xq9iajgqz23dska5x63hrx75icr5bwwswnmba0y69y39s0jpsj";
+    sha256 = "01isx7912dbalmc3xsafk1a1n6bzzfrjn2363djcq0v57rqii53d";
   };
 
   checkInputs = [ gdb ];
diff --git a/pkgs/development/python-modules/pyhcl/default.nix b/pkgs/development/python-modules/pyhcl/default.nix
new file mode 100644
index 000000000000..e409282980d6
--- /dev/null
+++ b/pkgs/development/python-modules/pyhcl/default.nix
@@ -0,0 +1,46 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, lib
+
+# pythonPackages
+, coverage
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pyhcl";
+  version = "0.4.0";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "virtuald";
+    repo = pname;
+    rev = version;
+    sha256 = "09kwm3digbwn3kmbk76jswxgwfcfchik6cfa2xbhjanh4xs893hs";
+  };
+
+  # https://github.com/virtuald/pyhcl/blob/51a7524b68fe21e175e157b8af931016d7a357ad/setup.py#L64
+  configurePhase = ''
+    echo '__version__ = "${version}"' > ./src/hcl/version.py
+  '';
+
+  checkInputs = [
+    coverage
+    pytest
+  ];
+
+  # https://github.com/virtuald/pyhcl/blob/51a7524b68fe21e175e157b8af931016d7a357ad/tests/run_tests.sh#L4
+  checkPhase = ''
+    coverage run --source hcl -m pytest tests
+  '';
+
+  meta = with lib; {
+    description = "HCL is a configuration language. pyhcl is a python parser for it";
+    homepage = "https://github.com/virtuald/pyhcl";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyicloud/default.nix b/pkgs/development/python-modules/pyicloud/default.nix
new file mode 100644
index 000000000000..50dd1a09890f
--- /dev/null
+++ b/pkgs/development/python-modules/pyicloud/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, keyring
+, keyrings-alt
+, click
+, six
+, tzlocal
+, certifi
+, bitstring
+, unittest2
+}:
+
+buildPythonPackage rec {
+  pname = "pyicloud";
+  version = "0.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "580b52e95f67a41ed86c56a514aa2b362f53fbaf23f16c69fb24e0d19fd373ee";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    keyring
+    keyrings-alt
+    click
+    six
+    tzlocal
+    certifi
+    bitstring
+  ];
+
+  checkInputs = [ unittest2 ];
+
+  postPatch = ''
+    sed -i \
+      -e 's!click>=6.0,<7.0!click!' \
+      -e 's!keyring>=8.0,<9.0!keyring!' \
+      -e 's!keyrings.alt>=1.0,<2.0!keyrings.alt!' \
+      requirements.txt
+  '';
+
+  meta = with lib; {
+    description = "PyiCloud is a module which allows pythonistas to interact with iCloud webservices";
+    homepage = https://github.com/picklepete/pyicloud;
+    license = licenses.mit;
+    maintainers = [ maintainers.mic92 ];
+  };
+}
diff --git a/pkgs/development/python-modules/pykeepass/default.nix b/pkgs/development/python-modules/pykeepass/default.nix
index 1467783d76a2..a8fff00ae151 100644
--- a/pkgs/development/python-modules/pykeepass/default.nix
+++ b/pkgs/development/python-modules/pykeepass/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname   = "pykeepass";
-  version = "3.1.2";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "280b0884243d059df888a61fd3fc77b2ea76dce4fdb1c1f60f3ab9139ca1259c";
+    sha256 = "1ysjn92bixq8wkwhlbhrjj9z0h80qnlnj7ks5478ndkzdw5gxvm1";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index ecc35d357360..4f99d0021e0e 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "A robust materials analysis code that defines core object representations for structures and molecules";
-    homepage = http://pymatgen.org/;
+    homepage = https://pymatgen.org/;
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
   };
diff --git a/pkgs/development/python-modules/pynvim/default.nix b/pkgs/development/python-modules/pynvim/default.nix
index a4765434f74e..93cba65ae5e7 100644
--- a/pkgs/development/python-modules/pynvim/default.nix
+++ b/pkgs/development/python-modules/pynvim/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "pynvim";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mp9ajsgrb9k2f3s8g7vdflj5mg02ii0d0wk4n6dmvjx52rqpzbi";
+    sha256 = "0n2cx22lrmbq7xk7356lyn6k77ryqvkxplw9k0fglk35ckb1isam";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pypandoc/default.nix b/pkgs/development/python-modules/pypandoc/default.nix
index 3af86dabe215..41576c5ad1fc 100644
--- a/pkgs/development/python-modules/pypandoc/default.nix
+++ b/pkgs/development/python-modules/pypandoc/default.nix
@@ -1,33 +1,33 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, pip, pandoc, glibcLocales, haskellPackages, texlive }:
+{ stdenv, buildPythonPackage, fetchFromGitHub
+, pandoc, haskellPackages, texlive }:
 
 buildPythonPackage rec {
   pname = "pypandoc";
-  version = "1.4";
+  version = "unstable-2018-06-18";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e914e6d5f84a76764887e4d909b09d63308725f0cbb5293872c2c92f07c11a5b";
+  src = fetchFromGitHub {
+    owner = "bebraw";
+    repo = pname;
+    rev = "87912f0f17e0a71c1160008df708c876d32e5819";
+    sha256 = "0l6knkxxhmni4lx8hyvbb71svnhza08ivyklqlk5fw637gznc0hx";
   };
 
-  # Fix tests: first requires network access, second is a bug (reported upstream)
-  preConfigure = ''
+  postPatch = ''
+    # set pandoc path statically
+    sed -i '/^__pandoc_path = None$/c__pandoc_path = "${pandoc}/bin/pandoc"' pypandoc/__init__.py
+
+    # Fix tests: requires network access
     substituteInPlace tests.py --replace "pypandoc.convert(url, 'html')" "'GPL2 license'"
-    substituteInPlace tests.py --replace "pypandoc.convert_file(file_name, lua_file_name)" "'<h1 id=\"title\">title</h1>'"
   '';
 
-  LC_ALL="en_US.UTF-8";
-
-  propagatedBuildInputs = [ pip ];
-
-  buildInputs = [ pandoc texlive.combined.scheme-small haskellPackages.pandoc-citeproc glibcLocales ];
+  preCheck = ''
+    export PATH="${haskellPackages.pandoc-citeproc}/bin:${texlive.combined.scheme-small}/bin:$PATH"
+  '';
 
   meta = with stdenv.lib; {
     description = "Thin wrapper for pandoc";
     homepage = https://github.com/bebraw/pypandoc;
     license = licenses.mit;
-    maintainers = with maintainers; [ bennofs ];
-
-    broken = true; # incompatible with pandoc v2
+    maintainers = with maintainers; [ sternenseemann bennofs ];
   };
 }
diff --git a/pkgs/development/python-modules/pyspotify/default.nix b/pkgs/development/python-modules/pyspotify/default.nix
index c30b8ee891a6..e329d4f7b6e0 100644
--- a/pkgs/development/python-modules/pyspotify/default.nix
+++ b/pkgs/development/python-modules/pyspotify/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pyspotify";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchurl {
     url = "https://github.com/mopidy/pyspotify/archive/v${version}.tar.gz";
-    sha256 = "0g3dvwpaz7pqrdx53kyzkh31arlmdzz1hb7jp8m488lbsf47w6nd";
+    sha256 = "1y1zqkqi9jz5m9bb2z7wmax7g40c1snm3c6di6b63726qrf26rb7";
   };
 
   propagatedBuildInputs = [ cffi ];
diff --git a/pkgs/development/python-modules/pysqlite/default.nix b/pkgs/development/python-modules/pysqlite/default.nix
index c1118aeeecd7..b13cd1781d28 100644
--- a/pkgs/development/python-modules/pysqlite/default.nix
+++ b/pkgs/development/python-modules/pysqlite/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = http://pysqlite.org/;
+    homepage = https://pysqlite.org/;
     description = "Python bindings for the SQLite embedded relational database engine";
     longDescription = ''
       pysqlite is a DB-API 2.0-compliant database interface for SQLite.
diff --git a/pkgs/development/python-modules/pysrt/default.nix b/pkgs/development/python-modules/pysrt/default.nix
index 514ff6eb8fe1..f383854d5b44 100644
--- a/pkgs/development/python-modules/pysrt/default.nix
+++ b/pkgs/development/python-modules/pysrt/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pysrt";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "byroot";
     repo = "pysrt";
     rev = "v${version}";
-    sha256 = "0rwjaf26885vxhxnas5d8zwasvj7x88y4y2pdivjd4vdcpqrqdjn";
+    sha256 = "1f5hxyzlh5mdvvi52qapys9qcinffr6ghgivb6k4jxa92cbs3mfg";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/pytesseract/default.nix b/pkgs/development/python-modules/pytesseract/default.nix
index b6d45980e537..1b185070bf72 100644
--- a/pkgs/development/python-modules/pytesseract/default.nix
+++ b/pkgs/development/python-modules/pytesseract/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytesseract";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1j7d4aa6v1nd3pd1vrfmkv8mbmw0x78cjfpkq3nxpy1r4hj5nwq3";
+    sha256 = "1b6hmz9dqfn8il1g5vyz6izsxqjrbvrr2gs8gwwadyz8fx4vghx8";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/python-dbusmock/default.nix b/pkgs/development/python-modules/python-dbusmock/default.nix
index 57f6fd7bf676..9cfc68dee465 100644
--- a/pkgs/development/python-modules/python-dbusmock/default.nix
+++ b/pkgs/development/python-modules/python-dbusmock/default.nix
@@ -1,15 +1,17 @@
-{ lib, buildPythonPackage, fetchPypi, runtimeShell,
+{ lib, buildPythonPackage, fetchFromGitHub, runtimeShell,
   nose, dbus, dbus-python, pygobject3,
   which, pyflakes, pycodestyle, bluez, networkmanager
 }:
 
 buildPythonPackage rec {
   pname = "python-dbusmock";
-  version = "0.18.3";
+  version = "0.19";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "994a178268b6d74aeb158c0f155cd141e9a0cfae14226a764cd022c4949fe242";
+  src = fetchFromGitHub {
+    owner = "martinpitt";
+    repo = pname;
+    rev = version;
+    sha256 = "09j338lmrjabbd3fpajr4piz4r20sl33030szfsqfzlwrrmvkyi0";
   };
 
   prePatch = ''
diff --git a/pkgs/development/python-modules/python-dotenv/default.nix b/pkgs/development/python-modules/python-dotenv/default.nix
index ba74817a63fd..f43d8d0575b9 100644
--- a/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/pkgs/development/python-modules/python-dotenv/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "python-dotenv";
-  version = "0.10.3";
+  version = "0.10.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i25gh8wi87l4g0iflp81rlgmps4cdmp90hwypalp7gcbwfxfmzi";
+    sha256 = "16s2x5ghrhz9ljm6h3y0pbwh97558vbs7l0yiicag4s0xyn0nzq0";
   };
 
   propagatedBuildInputs = [ click ] ++ lib.optionals isPy27 [ typing ];
diff --git a/pkgs/development/python-modules/python-ly/default.nix b/pkgs/development/python-modules/python-ly/default.nix
index 4c1bd05f4a0f..f8b7f023717c 100644
--- a/pkgs/development/python-modules/python-ly/default.nix
+++ b/pkgs/development/python-modules/python-ly/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-ly";
-  version = "0.9.5";
+  version = "0.9.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0x98dv7p8mg26p4816yy8hz4f34zf6hpnnfmr56msgh9jnsm2qfl";
+    sha256 = "0s5hvsf17f4w1xszrf4pg29wfv9znkj195klq1v2qhlpxfp6772d";
   };
 
   # tests not shipped on `pypi` and
@@ -16,6 +16,6 @@ buildPythonPackage rec {
   meta = with stdenv.lib; {
     description = "Tool and library for manipulating LilyPond files";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/python-periphery/default.nix b/pkgs/development/python-modules/python-periphery/default.nix
index 4d10c985092b..1c6cdcc28a1f 100644
--- a/pkgs/development/python-modules/python-periphery/default.nix
+++ b/pkgs/development/python-modules/python-periphery/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-periphery";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1arsibmc19iyzr70lqfrkq0fk6gd6imm3zxa7zxv93b6lwl5bw1d";
+    sha256 = "1v0qpv0i2kqhjvl6wvvvy29hazjdcym7nn14qzv4r5zq1zsdb92x";
   };
 
   # Some tests require physical probing and additional physical setup
diff --git a/pkgs/development/python-modules/python-telegram-bot/default.nix b/pkgs/development/python-modules/python-telegram-bot/default.nix
index 52fe5209ade2..9b70d76bfed7 100644
--- a/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "12.2.0";
+  version = "12.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "346d42771c2b23384c59f5f41e05bd7e801a0ce118d8dcb95209bb73d5f694c5";
+    sha256 = "0yrg5342zz0hpf2pc85ffwx57msa6jpcmvvjfkzh8nh2lc98aq21";
   };
 
   prePatch = ''
@@ -23,7 +23,8 @@ buildPythonPackage rec {
       --replace "import telegram.vendor.ptb_urllib3.urllib3 as urllib3" "import urllib3 as urllib3" \
       --replace "import telegram.vendor.ptb_urllib3.urllib3.contrib.appengine as appengine" "import urllib3.contrib.appengine as appengine" \
       --replace "from telegram.vendor.ptb_urllib3.urllib3.connection import HTTPConnection" "from urllib3.connection import HTTPConnection" \
-      --replace "from telegram.vendor.ptb_urllib3.urllib3.util.timeout import Timeout" "from urllib3.util.timeout import Timeout"
+      --replace "from telegram.vendor.ptb_urllib3.urllib3.util.timeout import Timeout" "from urllib3.util.timeout import Timeout" \
+      --replace "from telegram.vendor.ptb_urllib3.urllib3.fields import RequestField" "from urllib3.fields import RequestField"
 
     touch LICENSE.dual
   '';
@@ -38,6 +39,6 @@ buildPythonPackage rec {
     description = "This library provides a pure Python interface for the Telegram Bot API.";
     homepage = https://python-telegram-bot.org;
     license = licenses.lgpl3;
-    maintainers = with maintainers; [ veprbl ];
+    maintainers = with maintainers; [ veprbl pingiun ];
   };
 }
diff --git a/pkgs/development/python-modules/pytorch/default.nix b/pkgs/development/python-modules/pytorch/default.nix
index d55be70ae490..0556ff93c13c 100644
--- a/pkgs/development/python-modules/pytorch/default.nix
+++ b/pkgs/development/python-modules/pytorch/default.nix
@@ -105,7 +105,7 @@ let
     path = "${cudatoolkit}/lib/stubs/libcuda.so";
   }];
   cudaStubEnv = lib.optionalString cudaSupport
-    "LD_LIBRARY_PATH=${cudaStub}\${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} ";
+    "LD_LIBRARY_PATH=${cudaStub}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH ";
 
 in buildPythonPackage rec {
   version = "1.2.0";
diff --git a/pkgs/development/python-modules/qtawesome/default.nix b/pkgs/development/python-modules/qtawesome/default.nix
index a6c431764be6..9392504ce263 100644
--- a/pkgs/development/python-modules/qtawesome/default.nix
+++ b/pkgs/development/python-modules/qtawesome/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "QtAwesome";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05qypwlzjkw31x7qgn01d4kcf40mbymg5c9h3i7cx2r8sw29akjy";
+    sha256 = "1w4im0hzx497binyx6a6awbyszk1bsz34prm4j72gl5kszkiq7yq";
   };
 
   propagatedBuildInputs = [ qtpy six ];
diff --git a/pkgs/development/python-modules/robotframework-requests/default.nix b/pkgs/development/python-modules/robotframework-requests/default.nix
index 141353ee1d46..9baf3e40227a 100644
--- a/pkgs/development/python-modules/robotframework-requests/default.nix
+++ b/pkgs/development/python-modules/robotframework-requests/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.2";
+  version = "0.6.3";
   pname = "robotframework-requests";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "30669de238f7efd171ccab1c19c7f30ed6b77f43db534c173c1fa1568194d4cb";
+    sha256 = "f29844eee373775fd590b80f80a7d5a4325094a4f0a3c48e972d24712dbd2ce4";
   };
 
   buildInputs = [ unittest2 ];
diff --git a/pkgs/development/python-modules/runway-python/default.nix b/pkgs/development/python-modules/runway-python/default.nix
index 5c60b6379e93..fca11c100cf0 100644
--- a/pkgs/development/python-modules/runway-python/default.nix
+++ b/pkgs/development/python-modules/runway-python/default.nix
@@ -2,29 +2,38 @@
 , buildPythonPackage
 , fetchPypi
 , flask
+, flask-compress
 , flask-cors
+, flask-sockets
 , numpy
+, scipy
 , pillow
 , gevent
 , wget
 , six
 , colorcet
+, unidecode
+, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "runway-python";
-  version = "0.5.7";
+  version = "0.5.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06e0138cc4cf2ddb7304502f5c7b53269ce73679c5784c8d6b423db04d179c18";
+    sha256 = "1d75c44008275213034977c75bc2dc6f419e7f11d087984e3faea1e0cf6da69d";
   };
 
-  propagatedBuildInputs = [ flask flask-cors numpy pillow gevent wget six colorcet ];
+  propagatedBuildInputs = [ flask flask-compress flask-cors flask-sockets numpy scipy pillow gevent wget six colorcet unidecode urllib3 ];
 
   # tests are not packaged in the released tarball
   doCheck = false;
 
+  pythonImportsCheck = [
+    "runway"
+  ];
+
   meta = {
     description = "Helper library for creating Runway models";
     homepage = https://github.com/runwayml/model-sdk;
diff --git a/pkgs/development/python-modules/rxv/default.nix b/pkgs/development/python-modules/rxv/default.nix
new file mode 100644
index 000000000000..8133936798ed
--- /dev/null
+++ b/pkgs/development/python-modules/rxv/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, defusedxml
+, requests
+, pytest
+, requests-mock
+, mock
+, pytestcov
+, pytest-timeout
+, testtools
+}:
+
+buildPythonPackage rec {
+  pname = "rxv";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "wuub";
+    repo = pname;
+    # Releases are not tagged
+    rev = "9b586203665031f93960543a272bb1a8f541ed37";
+    sha256 = "1dw3ayrzknai2279bhkgzcapzw06rhijlny33rymlbp7irp0gvnj";
+  };
+
+  propagatedBuildInputs = [ defusedxml requests ];
+
+  checkInputs = [ pytest requests-mock mock pytestcov pytest-timeout testtools ];
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Automation Library for Yamaha RX-V473, RX-V573, RX-V673, RX-V773 receivers";
+    homepage = https://github.com/wuub/rxv;
+    license = licenses.mit;
+    maintainers = with maintainers; [ flyfloh ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/shodan/default.nix b/pkgs/development/python-modules/shodan/default.nix
index 52dc89e3a962..909c54788b2c 100644
--- a/pkgs/development/python-modules/shodan/default.nix
+++ b/pkgs/development/python-modules/shodan/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "shodan";
-  version = "1.21.1";
+  version = "1.21.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "834dfd084fed290b2b445545b0d1cac7822f3c0ed6ba09707efb1716bb485ede";
+    sha256 = "1pbfmab3ixvaa845qp6ms2djcwp9c5vnlsr2bf9prmx5973khg7d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sipsimple/default.nix b/pkgs/development/python-modules/sipsimple/default.nix
index 7839a77f9f5e..63425d2b8bde 100644
--- a/pkgs/development/python-modules/sipsimple/default.nix
+++ b/pkgs/development/python-modules/sipsimple/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "SIP SIMPLE implementation for Python";
-    homepage = http://sipsimpleclient.org/;
+    homepage = https://sipsimpleclient.org/;
     license = licenses.gpl3;
     maintainers = with maintainers; [ pSub ];
   };
diff --git a/pkgs/development/python-modules/snitun/default.nix b/pkgs/development/python-modules/snitun/default.nix
index da9dbd798450..8212379e3d48 100644
--- a/pkgs/development/python-modules/snitun/default.nix
+++ b/pkgs/development/python-modules/snitun/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, python, fetchFromGitHub, attrs, cryptography, async-timeout, pytest-aiohttp, pytest }:
+{ lib, stdenv, buildPythonPackage, python, fetchFromGitHub, attrs, cryptography, async-timeout, pytest-aiohttp, pytest }:
 
 buildPythonPackage rec {
   pname = "snitun";
@@ -16,7 +16,8 @@ buildPythonPackage rec {
   checkInputs = [ pytest pytest-aiohttp ];
 
   checkPhase = ''
-    pytest tests/
+    # https://github.com/NabuCasa/snitun/issues/61
+    pytest ${lib.optionalString stdenv.isDarwin "-k 'not test_multiplexer_data_channel_abort_full'"} tests/
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/solo-python/default.nix b/pkgs/development/python-modules/solo-python/default.nix
index 216e5a2a84f6..1b1896187f9d 100644
--- a/pkgs/development/python-modules/solo-python/default.nix
+++ b/pkgs/development/python-modules/solo-python/default.nix
@@ -3,7 +3,7 @@
 
  buildPythonPackage rec {
   pname = "solo-python";
-  version = "0.0.21";
+  version = "0.0.23";
   format = "flit";
   disabled = pythonOlder "3.6"; # only python>=3.6 is supported
 
@@ -11,7 +11,7 @@
     owner = "solokeys";
     repo = pname;
     rev = version;
-    sha256 = "07r451dp3ma1mh735b2kjv86a4jkjhmag70cjqf73z7b61dmzl1q";
+    sha256 = "0r9cq0sd8pqnavgwa5cqgdxzbgly2baq8fpclnnz6anb2974kg3f";
   };
 
   # replaced pinned fido, with unrestricted fido version
diff --git a/pkgs/development/python-modules/sphinx/2.nix b/pkgs/development/python-modules/sphinx/2.nix
index b6374989690e..541c292fe8f1 100644
--- a/pkgs/development/python-modules/sphinx/2.nix
+++ b/pkgs/development/python-modules/sphinx/2.nix
@@ -60,6 +60,13 @@ buildPythonPackage rec {
   # Lots of tests. Needs network as well at some point.
   doCheck = false;
 
+  patches = [
+    # Since pygments 2.5, PythonLexer refers to python3. If we want to use
+    # python2, we need to explicitly specify Python2Lexer.
+    # Not upstreamed since there doesn't seem to be any upstream maintenance
+    # branch for 1.8 (and this patch doesn't make any sense for 2.x).
+    ./python2-lexer.patch
+  ];
   # https://github.com/NixOS/nixpkgs/issues/22501
   # Do not run `python sphinx-build arguments` but `sphinx-build arguments`.
   postPatch = ''
diff --git a/pkgs/development/python-modules/sphinx/python2-lexer.patch b/pkgs/development/python-modules/sphinx/python2-lexer.patch
new file mode 100644
index 000000000000..cf4a243315a2
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx/python2-lexer.patch
@@ -0,0 +1,22 @@
+diff --git a/sphinx/highlighting.py b/sphinx/highlighting.py
+index ac2bd1b06..63ca52de2 100644
+--- a/sphinx/highlighting.py
++++ b/sphinx/highlighting.py
+@@ -16,7 +16,7 @@ from pygments.filters import ErrorToken
+ from pygments.formatters import HtmlFormatter, LatexFormatter
+ from pygments.lexer import Lexer  # NOQA
+ from pygments.lexers import get_lexer_by_name, guess_lexer
+-from pygments.lexers import PythonLexer, Python3Lexer, PythonConsoleLexer, \
++from pygments.lexers import Python2Lexer, Python3Lexer, PythonConsoleLexer, \
+     CLexer, TextLexer, RstLexer
+ from pygments.styles import get_style_by_name
+ from pygments.util import ClassNotFound
+@@ -40,7 +40,7 @@ logger = logging.getLogger(__name__)
+ 
+ lexers = dict(
+     none = TextLexer(stripnl=False),
+-    python = PythonLexer(stripnl=False),
++    python = Python2Lexer(stripnl=False),
+     python3 = Python3Lexer(stripnl=False),
+     pycon = PythonConsoleLexer(stripnl=False),
+     pycon3 = PythonConsoleLexer(python3=True, stripnl=False),
diff --git a/pkgs/development/python-modules/spotipy/default.nix b/pkgs/development/python-modules/spotipy/default.nix
index 70471aedbd76..e728739c294d 100644
--- a/pkgs/development/python-modules/spotipy/default.nix
+++ b/pkgs/development/python-modules/spotipy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "spotipy";
-  version = "2.4.4";
+  version = "2.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1l8ya0cln936x0mx2j5ngl1xwpc0r89hs3wcvb8x8paw3d4dl1ab";
+    sha256 = "1jpj9ljc5g89jbnzwnmgz5s6jdrsgd6g9s09igvbw3pppi9070h0";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/statsmodels/default.nix b/pkgs/development/python-modules/statsmodels/default.nix
index e45ccdd49c67..61d354c8d5f5 100644
--- a/pkgs/development/python-modules/statsmodels/default.nix
+++ b/pkgs/development/python-modules/statsmodels/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "statsmodels";
-  version = "0.10.2";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9cd2194c6642a8754e85f9a6e6912cdf996bebf6ff715d3cc67f65dadfd37cc9";
+    sha256 = "0wcc7xbwlf8r2diw9fnzf4bg9h5cg406w7phd3dz37hx17yfi3ha";
   };
 
   checkInputs = with self; [ nose ];
diff --git a/pkgs/development/python-modules/stringtemplate/default.nix b/pkgs/development/python-modules/stringtemplate/default.nix
index 3d2b2337be4c..7326f7d48e1b 100644
--- a/pkgs/development/python-modules/stringtemplate/default.nix
+++ b/pkgs/development/python-modules/stringtemplate/default.nix
@@ -5,7 +5,7 @@ buildPythonPackage rec {
   version = "3.2b1";
 
   src = fetchurl {
-    url = "http://www.stringtemplate.org/download/${pname}-${version}.tar.gz";
+    url = "https://www.stringtemplate.org/download/${pname}-${version}.tar.gz";
     sha256 = "0lbib0l8c1q7i1j610rwcdagymr1idahrql4dkgnm5rzyg2vk3ml";
   };
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    homepage = http://www.stringtemplate.org/;
+    homepage = https://www.stringtemplate.org/;
     description = "Text Templating Library";
     platforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index d564adbc6e25..3f1c1e53c7c2 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "2.41.0";
+  version = "2.42.0";
 
   # Tests require network connectivity and there's no easy way to disable
   # them. ~ C.
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2f0ec677136985ece9cca232f106c2a87193261cac1fe58d4e959215310a0da8";
+    sha256 = "1vrs0mydj2j789slzfv5413qxa067zi7p34h2p63612gm3vdrcl9";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix
index 2128be1a3c0e..3a03fae154d7 100644
--- a/pkgs/development/python-modules/sympy/default.nix
+++ b/pkgs/development/python-modules/sympy/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "sympy";
-  version = "1.5"; # Upgrades may break sage. Please test or ping @timokau.
+  version = "1.5.1"; # Upgrades may break sage. Please test or ping @timokau.
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s4w7q8gndim2ky825a84jmwcf7ryfn10wm8yxz9dw5z2307smii";
+    sha256 = "d77901d748287d15281f5ffe5b0fef62dd38f357c2b827c44ff07f35695f4e7e";
   };
 
   checkInputs = [ glibcLocales ];
@@ -21,15 +21,16 @@ buildPythonPackage rec {
 
   # tests take ~1h
   doCheck = false;
+  pythonImportsCheck = [ "sympy" ];
 
   preCheck = ''
     export LANG="en_US.UTF-8"
   '';
 
-  meta = {
+  meta = with lib; {
     description = "A Python library for symbolic mathematics";
-    homepage    = https://www.sympy.org/;
-    license     = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ lovek323 timokau ];
+    homepage    = "https://www.sympy.org/";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ lovek323 timokau ];
   };
 }
diff --git a/pkgs/development/python-modules/sysv_ipc/default.nix b/pkgs/development/python-modules/sysv_ipc/default.nix
new file mode 100644
index 000000000000..37853980f43a
--- /dev/null
+++ b/pkgs/development/python-modules/sysv_ipc/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "sysv_ipc";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1p5lx3yz4p40rfb453m80a4hh8341yp4dki2nhhxz7bq2zfi1zwf";
+  };
+
+  meta = with stdenv.lib; {
+    description = "SysV IPC primitives (semaphores, shared memory and message queues)";
+    license = licenses.bsd3;
+    homepage = http://semanchuk.com/philip/sysv_ipc/;
+    maintainers = with maintainers; [ ris ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/tatsu/default.nix b/pkgs/development/python-modules/tatsu/default.nix
index 539cbdca3ee1..922ca1b9b957 100644
--- a/pkgs/development/python-modules/tatsu/default.nix
+++ b/pkgs/development/python-modules/tatsu/default.nix
@@ -6,15 +6,23 @@
 
 buildPythonPackage rec {
   pname = "TatSu";
-  version = "4.4.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "neogeny";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jjd73yr3x56ij2ggxf6s62mf90i9v7wn3i0h67zxys55hlp2yh4";
+    sha256 = "1c16fcxf0xjkh5py9bnj6ljb9krhrj57mkwayl1w1dvzwl5lkgj3";
   };
 
+  # Since version 5.0.0 only >=3.8 is officially supported, but ics is not
+  # compatible with Python 3.8 due to aiohttp:
+  disabled = pythonOlder "3.7";
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "python_requires='>=3.8'," "python_requires='>=3.7',"
+  '';
+
   nativeBuildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ colorama mypy pyyaml regex ]
     ++ stdenv.lib.optionals (pythonOlder "3.7") [ dataclasses ]
diff --git a/pkgs/development/python-modules/textacy/default.nix b/pkgs/development/python-modules/textacy/default.nix
index 454cff5e4a87..9d44ce98898e 100644
--- a/pkgs/development/python-modules/textacy/default.nix
+++ b/pkgs/development/python-modules/textacy/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Higher-level text processing, built on spaCy";
-    homepage = "http://textacy.readthedocs.io/";
+    homepage = "https://textacy.readthedocs.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ rvl ];
   };
diff --git a/pkgs/development/python-modules/umap-learn/default.nix b/pkgs/development/python-modules/umap-learn/default.nix
index a97f69652e8e..465c02beb4f4 100644
--- a/pkgs/development/python-modules/umap-learn/default.nix
+++ b/pkgs/development/python-modules/umap-learn/default.nix
@@ -42,7 +42,7 @@ def test_umap_transform_on_iris()"
 
   meta = with lib; {
     description = "Uniform Manifold Approximation and Projection";
-    homepage = http://github.com/lmcinnes/umap;
+    homepage = https://github.com/lmcinnes/umap;
     license = licenses.bsd3;
     maintainers = [ maintainers.costrouc ];
   };
diff --git a/pkgs/development/python-modules/uproot/default.nix b/pkgs/development/python-modules/uproot/default.nix
index 812ff15242cd..f5f20ad86d3f 100644
--- a/pkgs/development/python-modules/uproot/default.nix
+++ b/pkgs/development/python-modules/uproot/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "uproot";
-  version = "3.11.0";
+  version = "3.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a9521786d0e16d00a457807e364229ba844ea5f8b0ac6653b00277351f12ab49";
+    sha256 = "1m6yjvdbffyk32gmfki7h01frlg9vhqf8g734m4gxyyf8m8g60zd";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/uvloop/default.nix b/pkgs/development/python-modules/uvloop/default.nix
index b1fbf26e43b1..36c5af1d7180 100644
--- a/pkgs/development/python-modules/uvloop/default.nix
+++ b/pkgs/development/python-modules/uvloop/default.nix
@@ -6,6 +6,7 @@
 , libuv
 , psutil
 , isPy27
+, pythonAtLeast
 , CoreServices
 , ApplicationServices
 }:
@@ -13,7 +14,8 @@
 buildPythonPackage rec {
   pname = "uvloop";
   version = "0.14.0";
-  disabled = isPy27;
+  # python 3.8 hangs on tests, assuming it's subtly broken with race condition
+  disabled = isPy27 || pythonAtLeast "3.8";
 
   src = fetchPypi {
     inherit pname version;
@@ -38,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Fast implementation of asyncio event loop on top of libuv";
-    homepage = http://github.com/MagicStack/uvloop;
+    homepage = https://github.com/MagicStack/uvloop;
     license = licenses.mit;
     maintainers = [ maintainers.costrouc ];
   };
diff --git a/pkgs/development/python-modules/vega/default.nix b/pkgs/development/python-modules/vega/default.nix
index 2bfeccccc59f..73485329ef76 100644
--- a/pkgs/development/python-modules/vega/default.nix
+++ b/pkgs/development/python-modules/vega/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage , fetchPypi
-, pytest, jupyter_core, pandas }:
+, pytest, jupyter_core, pandas, ipywidgets }:
 
 buildPythonPackage rec {
   pname = "vega";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ pytest ];
-  propagatedBuildInputs = [ jupyter_core pandas ];
+  propagatedBuildInputs = [ jupyter_core pandas ipywidgets ];
 
   meta = with stdenv.lib; {
     description = "An IPython/Jupyter widget for Vega and Vega-Lite";
diff --git a/pkgs/development/python-modules/venusian/default.nix b/pkgs/development/python-modules/venusian/default.nix
index fb81a79f10e3..7a67fdf727b3 100644
--- a/pkgs/development/python-modules/venusian/default.nix
+++ b/pkgs/development/python-modules/venusian/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "A library for deferring decorator actions";
-    homepage = http://pylonsproject.org/;
+    homepage = https://pylonsproject.org/;
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
   };
diff --git a/pkgs/development/python-modules/web/default.nix b/pkgs/development/python-modules/web/default.nix
index c6a25c7d1b77..ea1ffc7826fb 100644
--- a/pkgs/development/python-modules/web/default.nix
+++ b/pkgs/development/python-modules/web/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
       Think about the ideal way to write a web app.
       Write the code to make it happen.
     '';
-    homepage = "http://webpy.org/";
+    homepage = "https://webpy.org/";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ layus ];
   };
diff --git a/pkgs/development/python-modules/xstatic-jquery-ui/default.nix b/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
index 3424c8fcf6f2..c47dfbc05d85 100644
--- a/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
+++ b/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ xstatic-jquery ];
 
   meta = with lib;{
-    homepage = http://jqueryui.com/;
+    homepage = https://jqueryui.com/;
     description = "jquery-ui packaged static files for python";
     license = licenses.mit;
     maintainers = with maintainers; [ makefu ];
diff --git a/pkgs/development/python-modules/zodb/default.nix b/pkgs/development/python-modules/zodb/default.nix
index c79352085368..f15cefaa4757 100644
--- a/pkgs/development/python-modules/zodb/default.nix
+++ b/pkgs/development/python-modules/zodb/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchPypi
+, fetchpatch
 , buildPythonPackage
 , python
 , zope_testrunner
@@ -23,6 +24,14 @@ buildPythonPackage rec {
       sha256 = "20155942fa326e89ad8544225bafd74237af332ce9d7c7105a22318fe8269666";
     };
 
+    patches = [
+      # Compatibility with transaction v3.0
+      (fetchpatch {
+        url = "https://github.com/zopefoundation/ZODB/commit/0adcc6877f690186c97cc5da7e13788946d5e0df.patch";
+        sha256 = "1zmbgm7r36nj5w7icpinp61fm81svh2wk213pzr3l0jxzr9i5qi4";
+      })
+    ];
+
     # remove broken test
     postPatch = ''
       rm -vf src/ZODB/tests/testdocumentation.py