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/aioh2/default.nix23
-rw-r--r--pkgs/development/python-modules/aiohttp-remotes/default.nix34
-rw-r--r--pkgs/development/python-modules/aioprocessing/default.nix26
-rw-r--r--pkgs/development/python-modules/atomman/default.nix40
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--pkgs/development/python-modules/beancount/default.nix12
-rw-r--r--pkgs/development/python-modules/broadlink/default.nix28
-rw-r--r--pkgs/development/python-modules/bsddb3/default.nix7
-rw-r--r--pkgs/development/python-modules/cassandra-driver/default.nix4
-rw-r--r--pkgs/development/python-modules/coilmq/default.nix4
-rw-r--r--pkgs/development/python-modules/datadog/default.nix14
-rw-r--r--pkgs/development/python-modules/datamodeldict/default.nix27
-rw-r--r--pkgs/development/python-modules/django_classytags/default.nix8
-rw-r--r--pkgs/development/python-modules/dlib/default.nix13
-rw-r--r--pkgs/development/python-modules/fastpbkdf2/default.nix26
-rw-r--r--pkgs/development/python-modules/flask-migrate/default.nix4
-rw-r--r--pkgs/development/python-modules/foolscap/default.nix4
-rw-r--r--pkgs/development/python-modules/gevent-websocket/default.nix4
-rw-r--r--pkgs/development/python-modules/gipc/default.nix4
-rw-r--r--pkgs/development/python-modules/gplaycli/default.nix8
-rw-r--r--pkgs/development/python-modules/httmock/default.nix22
-rw-r--r--pkgs/development/python-modules/icalendar/default.nix4
-rw-r--r--pkgs/development/python-modules/imageio/default.nix32
-rw-r--r--pkgs/development/python-modules/libagent/default.nix4
-rw-r--r--pkgs/development/python-modules/mail-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/memory_profiler/default.nix28
-rw-r--r--pkgs/development/python-modules/moviepy/default.nix1
-rw-r--r--pkgs/development/python-modules/mysql-connector/default.nix4
-rw-r--r--pkgs/development/python-modules/nbxmpp/default.nix4
-rw-r--r--pkgs/development/python-modules/netdisco/default.nix14
-rw-r--r--pkgs/development/python-modules/numericalunits/default.nix24
-rw-r--r--pkgs/development/python-modules/owslib/default.nix22
-rw-r--r--pkgs/development/python-modules/pip-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/priority/default.nix23
-rw-r--r--pkgs/development/python-modules/pycares/default.nix4
-rw-r--r--pkgs/development/python-modules/pyramid_multiauth/default.nix4
-rw-r--r--pkgs/development/python-modules/pyro/default.nix22
-rw-r--r--pkgs/development/python-modules/pyro4/default.nix46
-rw-r--r--pkgs/development/python-modules/python-gitlab/default.nix22
-rw-r--r--pkgs/development/python-modules/python-packer/default.nix8
-rw-r--r--pkgs/development/python-modules/pyzmq/default.nix4
-rw-r--r--pkgs/development/python-modules/requests_download/default.nix8
-rw-r--r--pkgs/development/python-modules/salmon-mail/default.nix4
-rw-r--r--pkgs/development/python-modules/selectors34/default.nix32
-rw-r--r--pkgs/development/python-modules/serpent/default.nix34
-rw-r--r--pkgs/development/python-modules/sh/default.nix24
-rw-r--r--pkgs/development/python-modules/sslib/default.nix22
-rw-r--r--pkgs/development/python-modules/sympy/default.nix4
-rw-r--r--pkgs/development/python-modules/trueskill/default.nix28
-rw-r--r--pkgs/development/python-modules/txaio/default.nix4
-rw-r--r--pkgs/development/python-modules/zstd/default.nix49
51 files changed, 677 insertions, 126 deletions
diff --git a/pkgs/development/python-modules/aioh2/default.nix b/pkgs/development/python-modules/aioh2/default.nix
new file mode 100644
index 000000000000..fdeb5fb0082e
--- /dev/null
+++ b/pkgs/development/python-modules/aioh2/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, isPy3k, fetchPypi, h2, priority }:
+
+buildPythonPackage rec {
+  pname = "aioh2";
+  version = "0.2.2";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "03i24wzpw0mrnrpck3w6qy83iigwl7n99sdrndqzxfyrc69b99wd";
+  };
+
+  propagatedBuildInputs = [ h2 priority ];
+
+  doCheck = false; # https://github.com/decentfox/aioh2/issues/17
+
+  meta = with lib; {
+    homepage = https://github.com/decentfox/aioh2;
+    description = "HTTP/2 implementation with hyper-h2 on Python 3 asyncio";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.qyliss ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiohttp-remotes/default.nix b/pkgs/development/python-modules/aiohttp-remotes/default.nix
new file mode 100644
index 000000000000..51120d07121c
--- /dev/null
+++ b/pkgs/development/python-modules/aiohttp-remotes/default.nix
@@ -0,0 +1,34 @@
+{ lib, fetchpatch, buildPythonPackage, fetchPypi
+, aiohttp, pytest, pytestcov, pytest-aiohttp
+}:
+
+buildPythonPackage rec {
+  pname = "aiohttp_remotes";
+  version = "0.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "43c3f7e1c5ba27f29fb4dbde5d43b900b5b5fc7e37bf7e35e6eaedabaec4a3fc";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = https://github.com/aio-libs/aiohttp-remotes/commit/188772abcea038c31dae7d607e487eeed44391bc.patch;
+      sha256 = "0pb1y4jb8ar1szhnjiyj2sdmdk6z9h6c3wrxw59nv9kr3if5igvs";
+    })
+  ];
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  checkInputs = [ pytest pytestcov pytest-aiohttp ];
+  checkPhase = ''
+    python -m pytest
+  '';
+
+  meta = with lib; {
+    homepage = https://github.com/wikibusiness/aiohttp-remotes;
+    description = "A set of useful tools for aiohttp.web server";
+    license = licenses.mit;
+    maintainers = [ maintainers.qyliss ];
+  };
+}
diff --git a/pkgs/development/python-modules/aioprocessing/default.nix b/pkgs/development/python-modules/aioprocessing/default.nix
new file mode 100644
index 000000000000..f2f959112688
--- /dev/null
+++ b/pkgs/development/python-modules/aioprocessing/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "aioprocessing";
+  version = "1.0.1";
+  disabled = !(pythonAtLeast "3.4");
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1yq1gfsky2kjimwdmzqk893sp6387vbl4bw0sbha5hl6cm3jp5dn";
+  };
+
+  # Tests aren't included in pypi package
+  doCheck = false;
+
+  meta = {
+    description = "A library that integrates the multiprocessing module with asyncio";
+    homepage = https://github.com/dano/aioprocessing;
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ uskudnik ];
+  };
+}
diff --git a/pkgs/development/python-modules/atomman/default.nix b/pkgs/development/python-modules/atomman/default.nix
new file mode 100644
index 000000000000..ce4408b84412
--- /dev/null
+++ b/pkgs/development/python-modules/atomman/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, xmltodict
+, datamodeldict
+, numpy
+, matplotlib
+, scipy
+, pandas
+, cython
+, numericalunits
+, pytest
+}:
+
+buildPythonPackage rec {
+  version = "1.2.3";
+  pname = "atomman";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9eb6acc5497263cfa89be8d0f383a9a69f0726b4ac6798c1b1d96f26705ec09c";
+  };
+
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [ xmltodict datamodeldict numpy matplotlib scipy pandas cython numericalunits ];
+
+  # tests not included with Pypi release
+  doCheck = false;
+
+  checkPhase = ''
+    py.test tests
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/usnistgov/atomman/;
+    description = "Atomistic Manipulation Toolkit";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index 4105a5d965f4..01922f98c402 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "18.9.2";
+  version = "18.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mhj64rsnbi6rc0hskmllw280rvd99z045p6dq8h0mw60r7r52yr";
+    sha256 = "448df2e241011ea2948799918930042d81e63d26b01912c472f5a9a37f42f319";
   };
 
   propagatedBuildInputs = [ six txaio twisted zope_interface cffi ] ++
diff --git a/pkgs/development/python-modules/beancount/default.nix b/pkgs/development/python-modules/beancount/default.nix
index 1a005d9e42d7..e023c721b0e6 100644
--- a/pkgs/development/python-modules/beancount/default.nix
+++ b/pkgs/development/python-modules/beancount/default.nix
@@ -1,7 +1,7 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k
 , beautifulsoup4, bottle, chardet, dateutil
 , google_api_python_client, lxml, ply, python_magic
-, nose, requests }:
+, pytest, requests }:
 
 buildPythonPackage rec {
   version = "2.1.3";
@@ -14,13 +14,8 @@ buildPythonPackage rec {
     sha256 = "4b7b0d3633c82ca88d3cb3d31ad2fd2e45a42401cfa94eaa1cb938ffece34f22";
   };
 
-  checkInputs = [ nose ];
-
-  # Automatic tests cannot be run because it needs to import some local modules for tests.
+  # No tests in archive
   doCheck = false;
-  checkPhase = ''
-    nosetests
-  '';
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -32,6 +27,9 @@ buildPythonPackage rec {
     ply
     python_magic
     requests
+    # pytest really is a runtime dependency
+    # https://bitbucket.org/blais/beancount/commits/554e13057551951e113835196770847c788dd592
+    pytest
   ];
 
   meta = {
diff --git a/pkgs/development/python-modules/broadlink/default.nix b/pkgs/development/python-modules/broadlink/default.nix
new file mode 100644
index 000000000000..d1ecddded776
--- /dev/null
+++ b/pkgs/development/python-modules/broadlink/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchPypi, buildPythonPackage
+, pyaes, pycrc }:
+
+buildPythonPackage rec {
+  pname = "broadlink";
+  version = "0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10dnd859yjh1h6qrxhvkslbsj5fh5g654xsq2yqblkkv3xd711rs";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace pyaes==1.6.0 pyaes
+    '';
+
+  propagatedBuildInputs = [ pyaes pycrc ];
+
+  # no tests available
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python API for controlling Broadlink IR controllers";
+    homepage =  http://github.com/mjg59/python-broadlink;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/bsddb3/default.nix b/pkgs/development/python-modules/bsddb3/default.nix
index 971aac70ad8e..700f5b3d0c52 100644
--- a/pkgs/development/python-modules/bsddb3/default.nix
+++ b/pkgs/development/python-modules/bsddb3/default.nix
@@ -3,12 +3,12 @@
 , fetchPypi
 , pkgs
 , isPy3k
+, python
 }:
 
 buildPythonPackage rec {
   pname = "bsddb3";
   version = "6.2.6";
-  disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
@@ -17,8 +17,9 @@ buildPythonPackage rec {
 
   buildInputs = [ pkgs.db ];
 
-  # Judging from SyntaxError in test
-  doCheck = false; # test suite breaks python3 compatibility
+  checkPhase = ''
+    ${python.interpreter} test.py
+  '';
 
   # Path to database need to be set.
   # Somehow the setup.py flag is not propagated.
diff --git a/pkgs/development/python-modules/cassandra-driver/default.nix b/pkgs/development/python-modules/cassandra-driver/default.nix
index 110cd1e0bd5b..c445c21478b0 100644
--- a/pkgs/development/python-modules/cassandra-driver/default.nix
+++ b/pkgs/development/python-modules/cassandra-driver/default.nix
@@ -20,11 +20,11 @@
 
 buildPythonPackage rec {
   pname = "cassandra-driver";
-  version = "3.6.0";
+  version = "3.15.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1aqmy3psn12lxgp659d0zsxkirxzy5lnbnzxf9xjq1a93s3qm704";
+    sha256 = "1xcirbvlj00id8269akhk8gy2sv0mlnbgy3nagi32648jwsrcadg";
   };
 
   buildInputs = [ pkgs.libev cython ];
diff --git a/pkgs/development/python-modules/coilmq/default.nix b/pkgs/development/python-modules/coilmq/default.nix
index 11d39e411ce5..90eb1edc2cda 100644
--- a/pkgs/development/python-modules/coilmq/default.nix
+++ b/pkgs/development/python-modules/coilmq/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchPypi
-, stompclient, pythondaemon, redis, pid, pytest, six, click, coverage
+, stompclient, python-daemon, redis, pid, pytest, six, click, coverage
 , sqlalchemy }:
 
 buildPythonPackage rec {
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "4cbfeb5ed2459df14902c1380157be6267702b1271682924cd316ccad8a29d1d";
   };
 
-  propagatedBuildInputs = [ stompclient pythondaemon redis pid ];
+  propagatedBuildInputs = [ stompclient python-daemon redis pid ];
   buildInputs = [ pytest six click coverage sqlalchemy ];
 
   # The teste data is not included in the distribution
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index 47c206fda5e8..7b15d412610a 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -1,18 +1,14 @@
-{ lib, buildPythonPackage, fetchFromGitHub
+{ lib, buildPythonPackage, fetchPypi
 , decorator, requests, simplejson
 , nose, mock }:
 
 buildPythonPackage rec {
   pname = "datadog";
-  version = "0.20.0";
+  version = "0.23.0";
 
-  # no tests in PyPI tarball
-  # https://github.com/DataDog/datadogpy/pull/259
-  src = fetchFromGitHub {
-    owner = "DataDog";
-    repo = "datadogpy";
-    rev = "v${version}";
-    sha256 = "1p4p14853yrsl8py4ca7za7a12qzw0xwgz64f5kzx8a6vpv3p3md";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6ed9aec2b3a26722b74465c2ed36d2efdb9c9fac1a07a84d81fa2fc0cfa66ae4";
   };
 
   propagatedBuildInputs = [ decorator requests simplejson ];
diff --git a/pkgs/development/python-modules/datamodeldict/default.nix b/pkgs/development/python-modules/datamodeldict/default.nix
new file mode 100644
index 000000000000..9aac803ccae1
--- /dev/null
+++ b/pkgs/development/python-modules/datamodeldict/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  version = "0.9.4";
+  pname = "DataModelDict";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "97d8e999e000cf69c48e57b1a72eb45a27d83576a38c6cd8550c230b018be7af";
+  };
+
+  propagatedBuildInputs = [ xmltodict ];
+
+  # no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/usnistgov/DataModelDict/;
+    description = "Class allowing for data models equivalently represented as Python dictionaries, JSON, and XML";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/django_classytags/default.nix b/pkgs/development/python-modules/django_classytags/default.nix
index 022709bacbe0..d3ed0fd18410 100644
--- a/pkgs/development/python-modules/django_classytags/default.nix
+++ b/pkgs/development/python-modules/django_classytags/default.nix
@@ -6,17 +6,17 @@
 
 buildPythonPackage rec {
   pname = "django-classy-tags";
-  version = "0.6.1";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wxvpmjdzk0aajk33y4himn3wqjx7k0aqlka9j8ay3yfav78bdq0";
+    sha256 = "1f2dc9rq8v9sc4kv4x9hmbzp5c4amdxjkz5nzas5abg2s1hr2bvr";
   };
 
   propagatedBuildInputs = [ django ];
 
-  # tests appear to be broken on 0.6.1 at least
-  doCheck = ( version != "0.6.1" );
+  # pypi version doesn't include runtest.py, needed to run tests
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Class based template tags for Django";
diff --git a/pkgs/development/python-modules/dlib/default.nix b/pkgs/development/python-modules/dlib/default.nix
new file mode 100644
index 000000000000..90e2c526789f
--- /dev/null
+++ b/pkgs/development/python-modules/dlib/default.nix
@@ -0,0 +1,13 @@
+{ buildPythonPackage, dlib, python, pytest }:
+
+buildPythonPackage {
+  inherit (dlib) name src nativeBuildInputs buildInputs meta;
+
+  checkPhase = ''
+    ${python.interpreter} nix_run_setup test --no USE_AVX_INSTRUCTIONS
+  '';
+
+  patches = [ ./build-cores.patch ];
+
+  checkInputs = [ pytest ];
+}
diff --git a/pkgs/development/python-modules/fastpbkdf2/default.nix b/pkgs/development/python-modules/fastpbkdf2/default.nix
new file mode 100644
index 000000000000..63a7565cf55a
--- /dev/null
+++ b/pkgs/development/python-modules/fastpbkdf2/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, buildPythonPackage
+, openssl, pytest, cffi, six }:
+
+buildPythonPackage rec {
+  pname = "fastpbkdf2";
+  version = "0.2";
+
+  # Fetching from GitHub as tests are missing in PyPI
+  src = fetchFromGitHub {
+    owner  = "Ayrx";
+    repo   = "python-fastpbkdf2";
+    rev    = "v${version}";
+    sha256 = "1hvvlk3j28i6nswb6gy3mq7278nq0mgfnpxh1rv6jvi7xhd7qmlc";
+  };
+
+  buildInputs = [ openssl ];
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [ cffi six ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/Ayrx/python-fastpbkdf2;
+    description = "Python bindings for fastpbkdf2";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jqueiroz ];
+  };
+}
diff --git a/pkgs/development/python-modules/flask-migrate/default.nix b/pkgs/development/python-modules/flask-migrate/default.nix
index 89cbdf0fbf82..1f9177832c35 100644
--- a/pkgs/development/python-modules/flask-migrate/default.nix
+++ b/pkgs/development/python-modules/flask-migrate/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 buildPythonPackage rec {
   pname = "Flask-Migrate";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cd1b4e6cb829eeb41c02ad9202d83bef5f4b7a036dd9fad72ce96ad1e22efb07";
+    sha256 = "19rxhva9i5n643vm3d11f8p98jwai2pavysa217p5w5h5cnksnx2";
   };
 
   checkInputs = optional isPy3k glibcLocales;
diff --git a/pkgs/development/python-modules/foolscap/default.nix b/pkgs/development/python-modules/foolscap/default.nix
index 94b90a25d137..8680ff2d2aad 100644
--- a/pkgs/development/python-modules/foolscap/default.nix
+++ b/pkgs/development/python-modules/foolscap/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "foolscap";
-  version = "0.12.6";
+  version = "0.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bpmqq6485mmr5jza9q2c55l9m1bfsvsbd9drsip7p5qcsi22jrz";
+    sha256 = "0sqxp4fshnpcv69c2j04v8c22pjak28iwscxv998h2s3054knxz2";
   };
 
   propagatedBuildInputs = [ mock twisted pyopenssl service-identity ];
diff --git a/pkgs/development/python-modules/gevent-websocket/default.nix b/pkgs/development/python-modules/gevent-websocket/default.nix
index 28dab3a257f0..78986ec7d306 100644
--- a/pkgs/development/python-modules/gevent-websocket/default.nix
+++ b/pkgs/development/python-modules/gevent-websocket/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "gevent-websocket";
-  version = "0.9.3";
+  version = "0.10.1";
   # SyntaxError in tests.
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07rqwfpbv13mk6gg8mf0bmvcf6siyffjpgai1xd8ky7r801j4xb4";
+    sha256 = "1c2zv2rahp1gil3cj66hfsqgy0n35hz9fny3ywhr2319d0lz7bky";
   };
 
   propagatedBuildInputs = [ gevent ];
diff --git a/pkgs/development/python-modules/gipc/default.nix b/pkgs/development/python-modules/gipc/default.nix
index 9780b46fa5a0..4b174468a7ab 100644
--- a/pkgs/development/python-modules/gipc/default.nix
+++ b/pkgs/development/python-modules/gipc/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "gipc";
-  version = "0.5.0";
+  version = "0.6.0";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "08c35xzv7nr12d9xwlywlbyzzz2igy0yy6y52q2nrkmh5d4slbpc";
+    sha256 = "0pd9by719qh882hqs6xpby61sn1x5h98hms5p2p8yqnycrf1s0h2";
   };
 
   propagatedBuildInputs = [ gevent ];
diff --git a/pkgs/development/python-modules/gplaycli/default.nix b/pkgs/development/python-modules/gplaycli/default.nix
index 0a8826934089..0c7fa8db01c5 100644
--- a/pkgs/development/python-modules/gplaycli/default.nix
+++ b/pkgs/development/python-modules/gplaycli/default.nix
@@ -4,18 +4,18 @@
 
 buildPythonPackage rec {
   pname = "gplaycli";
-  version = "3.21";
+  version = "3.25";
 
   src = fetchFromGitHub {
     owner = "matlink";
     repo = "gplaycli";
     rev = version;
-    sha256 = "1r5nzi9yzswam0866gypjcvv3f1rw13jwx9s49chp8byxy1dyrs2";
+    sha256 = "1rygx5cg4b1vwpkiaq6jcpbc1ly7cspslv3sy7x8n8ba61ryq6h4";
   };
 
- disabled = !isPy3k;
+  disabled = !isPy3k;
 
- propagatedBuildInputs = [ libffi pyasn1 clint ndg-httpsclient protobuf requests args gpapi pyaxmlparser ];
+  propagatedBuildInputs = [ libffi pyasn1 clint ndg-httpsclient protobuf requests args gpapi pyaxmlparser ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/matlink/gplaycli;
diff --git a/pkgs/development/python-modules/httmock/default.nix b/pkgs/development/python-modules/httmock/default.nix
new file mode 100644
index 000000000000..b50753c55864
--- /dev/null
+++ b/pkgs/development/python-modules/httmock/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, requests }:
+
+buildPythonPackage rec {
+  pname   = "httmock";
+  version = "1.2.6";
+
+  src = fetchFromGitHub {
+    owner = "patrys";
+    repo = "httmock";
+    rev = version;
+    sha256 = "0iya8qsb2jm03s9p6sf1yzgm1irxl3dcq0k0a9ygl0skzjz5pvab";
+  };
+
+  checkInputs = [ requests ];
+
+  meta = with stdenv.lib; {
+    description = "A mocking library for requests";
+    homepage    = https://github.com/patrys/httmock;
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/icalendar/default.nix b/pkgs/development/python-modules/icalendar/default.nix
index b83785211f88..e2e833f7c476 100644
--- a/pkgs/development/python-modules/icalendar/default.nix
+++ b/pkgs/development/python-modules/icalendar/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.9.0";
+  version = "4.0.3";
   pname = "icalendar";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "93d0b94eab23d08f62962542309916a9681f16de3d5eca1c75497f30f1b07792";
+    sha256 = "0mk3dk1dxkcm46jy48v27j2w2349iv4sbimqj1yb5js43mx49hh7";
   };
 
   buildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index cdbcfee7180f..de8380280670 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -1,28 +1,42 @@
 { stdenv
 , buildPythonPackage
-, fetchurl
+, fetchPypi
+, pillow
+, psutil
 , pytest
 , numpy
+, isPy3k
+, futures
+, enum34
 }:
 
 buildPythonPackage rec {
   pname = "imageio";
-  version = "1.6";
+  version = "2.4.1";
 
-  src = fetchurl {
-    url = "https://github.com/imageio/imageio/archive/v${version}.tar.gz";
-    sha256 = "195snkk3fsbjqd5g1cfsd9alzs5q45gdbi2ka9ph4yxqb31ijrbv";
+  src = fetchPypi {
+    sha256 = "0jjiwf6wjipmykh33prjh448qv8mpgngfi77ndc7mym5r1xhgf0n";
+    inherit pname version;
   };
 
-  buildInputs = [ pytest ];
-  propagatedBuildInputs = [ numpy ];
+  checkInputs = [ pytest psutil ];
+  propagatedBuildInputs = [ numpy pillow ] ++ stdenv.lib.optionals (!isPy3k) [
+    futures
+    enum34
+  ];
 
   checkPhase = ''
+    export IMAGEIO_USERDIR="$TMP"
+    export IMAGEIO_NO_INTERNET="true"
+    export HOME="$(mktemp -d)"
     py.test
   '';
 
-  # Tries to write in /var/tmp/.imageio
-  doCheck = false;
+  # For some reason, importing imageio also imports xml on Nix, see
+  # https://github.com/imageio/imageio/issues/395
+  postPatch = ''
+    substituteInPlace tests/test_meta.py --replace '"urllib",' "\"urllib\",\"xml\""
+  '';
 
   meta = with stdenv.lib; {
     description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats";
diff --git a/pkgs/development/python-modules/libagent/default.nix b/pkgs/development/python-modules/libagent/default.nix
index f70d538bb8d0..f93958860409 100644
--- a/pkgs/development/python-modules/libagent/default.nix
+++ b/pkgs/development/python-modules/libagent/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchPypi, buildPythonPackage, ed25519, ecdsa , semver, mnemonic,
   unidecode, mock, pytest , backports-shutil-which, ConfigArgParse,
-  pythondaemon, pymsgbox }:
+  python-daemon, pymsgbox }:
 
 buildPythonPackage rec {
   pname = "libagent";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ unidecode backports-shutil-which ConfigArgParse
-    pythondaemon pymsgbox ecdsa ed25519 mnemonic semver ];
+    python-daemon pymsgbox ecdsa ed25519 mnemonic semver ];
 
   checkInputs = [ mock pytest ];
 
diff --git a/pkgs/development/python-modules/mail-parser/default.nix b/pkgs/development/python-modules/mail-parser/default.nix
index e05dc3f2861f..da74830f8798 100644
--- a/pkgs/development/python-modules/mail-parser/default.nix
+++ b/pkgs/development/python-modules/mail-parser/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "mail-parser";
-  version = "3.3.1";
+  version = "3.4.1";
 
   # no tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "SpamScope";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1b1v61zwgdx2xjzds3hp6bv53yq424hhlrhf445n4faj1l0c4lkg";
+    sha256 = "0nxilshq4gwpicdklja9p275yf8l5kr1lk620c3cx9w4qai4cmbv";
   };
 
   LC_ALL = "en_US.utf-8";
diff --git a/pkgs/development/python-modules/memory_profiler/default.nix b/pkgs/development/python-modules/memory_profiler/default.nix
index 7587e5f33c95..cf976f06ff08 100644
--- a/pkgs/development/python-modules/memory_profiler/default.nix
+++ b/pkgs/development/python-modules/memory_profiler/default.nix
@@ -1,32 +1,28 @@
 { stdenv
-, buildPythonPackage
-, fetchPypi
-, psutil
 , python
 }:
 
-buildPythonPackage rec {
+python.pkgs.buildPythonPackage rec {
   pname = "memory_profiler";
   version = "0.54.0";
 
-  src = fetchPypi {
+  src = python.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "d64342a23f32e105f4929b408a8b89d9222c3ce8afbbb3359817555811448d1a";
+    sha256 = "06ld8h8mhm8pk0sv7fxgx0y2q8nri65qlh4vjbs0bq9j7yi44hyn";
   };
 
-  propagatedBuildInputs = [ psutil ];
-
-  checkPhase = ''
-    make test PYTHON=${python.interpreter}
-  '';
-
-  # Tests don't import profile
-  # doCheck = false;
+  propagatedBuildInputs = with python.pkgs; [
+    psutil # needed to profile child processes
+    matplotlib # needed for plotting memory usage
+  ];
 
   meta = with stdenv.lib; {
-    description = "A module for monitoring memory usage of a python program";
+    description = "A module for monitoring memory usage of a process";
+    longDescription = ''
+      This is a python module for monitoring memory consumption of a process as
+      well as line-by-line analysis of memory consumption for python programs.
+    '';
     homepage = https://pypi.python.org/pypi/memory_profiler;
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/moviepy/default.nix b/pkgs/development/python-modules/moviepy/default.nix
index 63613b516868..637c014cb1ab 100644
--- a/pkgs/development/python-modules/moviepy/default.nix
+++ b/pkgs/development/python-modules/moviepy/default.nix
@@ -4,6 +4,7 @@
 , numpy
 , decorator
 , imageio
+, isPy3k
 , tqdm
 }:
 
diff --git a/pkgs/development/python-modules/mysql-connector/default.nix b/pkgs/development/python-modules/mysql-connector/default.nix
index 4af0c6487b3f..579fc4631f66 100644
--- a/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/pkgs/development/python-modules/mysql-connector/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "mysql-connector";
-  version = "8.0.12";
+  version = "8.0.13";
 
   src = fetchFromGitHub {
     owner = "mysql";
     repo = "mysql-connector-python";
     rev = version;
-    sha256 = "1i3148dka4zfqzz4n4n5k0qaqbc585bdpmjwgx5vp6iiv7pgvrxp";
+    sha256 = "1qb6m3cp6zxmr49bp6g5g5b75yszgac1h26i2hza61mrvd235688";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/nbxmpp/default.nix b/pkgs/development/python-modules/nbxmpp/default.nix
index 696796740f8b..888e1de6aa57 100644
--- a/pkgs/development/python-modules/nbxmpp/default.nix
+++ b/pkgs/development/python-modules/nbxmpp/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "nbxmpp";
-  version = "0.6.6";
+  version = "0.6.8";
   name = "${pname}-${version}";
 in buildPythonPackage rec {
   inherit pname version;
@@ -11,7 +11,7 @@ in buildPythonPackage rec {
     name = "${name}.tar.bz2";
     url = "https://dev.gajim.org/gajim/python-nbxmpp/repository/archive.tar.bz2?"
         + "ref=${name}";
-    sha256 = "10n7z613p00q15dplsvdrz11s9yq26jy2qack6nd8k7fivfhlcmz";
+    sha256 = "09zrqz01j45kvayfscd66avkrnn237lbjg9li5hjhyw92h6hkkc4";
   };
 
   propagatedBuildInputs = [ pyopenssl ];
diff --git a/pkgs/development/python-modules/netdisco/default.nix b/pkgs/development/python-modules/netdisco/default.nix
index 1e404370284c..036d6f9dea7c 100644
--- a/pkgs/development/python-modules/netdisco/default.nix
+++ b/pkgs/development/python-modules/netdisco/default.nix
@@ -1,17 +1,14 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, requests, zeroconf, netifaces, pytest }:
+{ stdenv, buildPythonPackage, isPy3k, fetchPypi, requests, zeroconf, netifaces, pytest }:
 
 buildPythonPackage rec {
   pname = "netdisco";
-  version = "2.0.0";
+  version = "2.2.0";
 
   disabled = !isPy3k;
 
-  # PyPI is missing tests/ directory
-  src = fetchFromGitHub {
-    owner = "home-assistant";
-    repo = pname;
-    rev = version;
-    sha256 = "08x5ab7v6a20753y9br7pvfm6a054ywn7y7gh6fydqski0gad6l7";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b5e810721a266660f7f90fc43f12c4635ec95c3db87d9e30ca408bb922cb1007";
   };
 
   propagatedBuildInputs = [ requests zeroconf netifaces ];
@@ -26,7 +23,6 @@ buildPythonPackage rec {
     description = "Python library to scan local network for services and devices";
     homepage = https://github.com/home-assistant/netdisco;
     license = licenses.asl20;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/numericalunits/default.nix b/pkgs/development/python-modules/numericalunits/default.nix
new file mode 100644
index 000000000000..1212bf0039c9
--- /dev/null
+++ b/pkgs/development/python-modules/numericalunits/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "1.16";
+  pname = "numericalunits";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "71ae8e236c7a223bccefffb670dca68be476dd63b7b9009641fc64099455da25";
+  };
+
+  # no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://pypi.python.org/pypi/numericalunits;
+    description = "A package that lets you define quantities with unit";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/owslib/default.nix b/pkgs/development/python-modules/owslib/default.nix
new file mode 100644
index 000000000000..7331511568fa
--- /dev/null
+++ b/pkgs/development/python-modules/owslib/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi, dateutil, requests, pytz, pyproj , pytest } :
+buildPythonPackage rec {
+  pname = "OWSLib";
+  version = "0.17.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1px2nmbpbpp556kjq0ym0a7j24nbvs4w829727b2gr4a4ff86hxc";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ dateutil pyproj pytz requests ];
+
+  # 'tests' dir not included in pypy distribution archive.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "client for Open Geospatial Consortium web service interface standards";
+    license = licenses.bsd3;
+    homepage = https://www.osgeo.org/projects/owslib/;
+  };
+}
diff --git a/pkgs/development/python-modules/pip-tools/default.nix b/pkgs/development/python-modules/pip-tools/default.nix
index 89b0d56a4016..de35a06d6d47 100644
--- a/pkgs/development/python-modules/pip-tools/default.nix
+++ b/pkgs/development/python-modules/pip-tools/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   pname = "pip-tools";
-  version = "2.0.2";
+  version = "3.1.0";
   name = pname + "-" + version;
 
   src = fetchurl {
     url = "mirror://pypi/p/pip-tools/${name}.tar.gz";
-    sha256 = "f11fc3bf1d87a0b4a68d4d595f619814e2396e92d75d7bdd2500edbf002ea6de";
+    sha256 = "0w1qdkr5n612nb3b890mbdyjb3cxn2mna1c7ysr4d0x4nh1wmkmi";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/priority/default.nix b/pkgs/development/python-modules/priority/default.nix
new file mode 100644
index 000000000000..90b58b665de8
--- /dev/null
+++ b/pkgs/development/python-modules/priority/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, pytest, hypothesis }:
+
+buildPythonPackage rec {
+  pname = "priority";
+  version = "1.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1gpzn9k9zgks0iw5wdmad9b4dry8haiz2sbp6gycpjkzdld9dhbb";
+  };
+
+  checkInputs = [ pytest hypothesis ];
+  checkPhase = ''
+    PYTHONPATH="src:$PYTHONPATH" pytest
+  '';
+
+  meta = with lib; {
+    homepage = https://python-hyper.org/priority/;
+    description = "A pure-Python implementation of the HTTP/2 priority tree";
+    license = licenses.mit;
+    maintainers = [ maintainers.qyliss ];
+  };
+}
diff --git a/pkgs/development/python-modules/pycares/default.nix b/pkgs/development/python-modules/pycares/default.nix
index bf863fae57b9..4755bf908fda 100644
--- a/pkgs/development/python-modules/pycares/default.nix
+++ b/pkgs/development/python-modules/pycares/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pycares";
-  version = "1.0.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a18341ea030e2cc0743acdf4aa72302bdf6b820938b36ce4bd76e43faa2276a3";
+    sha256 = "0h4fxw5drrhfyslzmfpljk0qnnpbhhb20hnnndzahhbwylyw1x1n";
   };
 
   propagatedBuildInputs = [ pkgs.c-ares ];
diff --git a/pkgs/development/python-modules/pyramid_multiauth/default.nix b/pkgs/development/python-modules/pyramid_multiauth/default.nix
index 7130e8b499f3..7c01e3e093bd 100644
--- a/pkgs/development/python-modules/pyramid_multiauth/default.nix
+++ b/pkgs/development/python-modules/pyramid_multiauth/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyramid_multiauth";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lq292qakrm4ixi4vaif8dqywzj08pn6qy0wi4gw28blh39p0msk";
+    sha256 = "0lprqjyg3zcji6033p1l3s4nigjigc5423wgivkfhz46vq0jmniy";
   };
 
   propagatedBuildInputs = [ pyramid ];
diff --git a/pkgs/development/python-modules/pyro/default.nix b/pkgs/development/python-modules/pyro/default.nix
deleted file mode 100644
index 3a74a1fe6fa7..000000000000
--- a/pkgs/development/python-modules/pyro/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, buildPythonPackage, isPy3k }:
-
-buildPythonPackage rec {
-  pname = "Pyro";
-  version = "3.16";
-  name = pname + "-" + version;
-
-  disabled = isPy3k;
-
-  src = fetchurl {
-    url = "mirror://pypi/P/Pyro/${name}.tar.gz";
-    sha256 = "1bed508453ef7a7556b51424a58101af2349b662baab7e7331c5cb85dbe7e578";
-  };
-
-  meta = with stdenv.lib; {
-    description = "Distributed object middleware for Python (IPC/RPC)";
-    homepage = https://pythonhosted.org/Pyro/;
-    license = licenses.mit;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ bjornfor ];
-  };
-}
diff --git a/pkgs/development/python-modules/pyro4/default.nix b/pkgs/development/python-modules/pyro4/default.nix
new file mode 100644
index 000000000000..df8df2cb93ca
--- /dev/null
+++ b/pkgs/development/python-modules/pyro4/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, lib
+, python
+, serpent
+, dill
+, cloudpickle
+, msgpack
+, isPy27
+, isPy33
+, selectors34
+}:
+
+buildPythonPackage rec {
+
+  name = "${pname}-${version}";
+  pname = "Pyro4";
+  version = "4.74";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "89ed7b12c162e5124f322f992f9506c44f5e1a379926cf01ee73ef810d3bf75f";
+  };
+
+  propagatedBuildInputs = [
+    serpent
+  ] ++ lib.optionals (isPy27 || isPy33) [ selectors34 ];
+
+  buildInputs = [
+    dill
+    cloudpickle
+    msgpack
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} setup.py test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Distributed object middleware for Python (RPC)";
+    homepage = https://github.com/irmen/Pyro4;
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+    };
+}
diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix
new file mode 100644
index 000000000000..24ab69f1a0bc
--- /dev/null
+++ b/pkgs/development/python-modules/python-gitlab/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildPythonPackage, fetchPypi, requests, six, mock, httmock }:
+
+buildPythonPackage rec {
+  pname   = "python-gitlab";
+  version = "1.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "20ceb9232f9a412ce6554056a6b5039013d0755261d57b5c8ada7035773de795";
+  };
+
+  propagatedBuildInputs = [ requests six ];
+
+  checkInputs = [ mock httmock ];
+
+  meta = with stdenv.lib; {
+    description = "Interact with GitLab API";
+    homepage    = https://github.com/python-gitlab/python-gitlab;
+    license     = licenses.lgpl3;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-packer/default.nix b/pkgs/development/python-modules/python-packer/default.nix
index 3f0c1f8138f9..ff3d28b47466 100644
--- a/pkgs/development/python-modules/python-packer/default.nix
+++ b/pkgs/development/python-modules/python-packer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, sh }:
+{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, sh }:
 
 buildPythonPackage rec {
   pname = "python-packer";
@@ -9,6 +9,12 @@ buildPythonPackage rec {
     sha256 = "fd363dae9bd2efd447739bbf7a4f29c1e4741596ae7b02d252fe525b2b4176e7";
   };
 
+  patches = fetchpatch {
+    url = "${meta.homepage}/commit/de3421bf13bf7c3ec11fe0a381f0944e102b1d97.patch";
+    excludes = [ "dev-requirements.txt" ];
+    sha256 = "0rgmkyn7i6y1xs8m75dpl8hq7j2ns2s3dvp7kv9j4zwic93rrlsc";
+  };
+
   propagatedBuildInputs = [ sh ];
   
   # Tests requires network connections
diff --git a/pkgs/development/python-modules/pyzmq/default.nix b/pkgs/development/python-modules/pyzmq/default.nix
index 31b08d0a9e0b..71243ef6f76e 100644
--- a/pkgs/development/python-modules/pyzmq/default.nix
+++ b/pkgs/development/python-modules/pyzmq/default.nix
@@ -2,7 +2,7 @@
 , fetchPypi
 , pytest
 , tornado
-, zeromq3
+, zeromq
 , py
 , python
 }:
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [  pytest tornado ];
-  buildInputs = [ zeromq3];
+  buildInputs = [ zeromq ];
   propagatedBuildInputs = [ py ];
 
   # test_socket.py seems to be hanging
diff --git a/pkgs/development/python-modules/requests_download/default.nix b/pkgs/development/python-modules/requests_download/default.nix
index 6d1264dee67e..8062834e1803 100644
--- a/pkgs/development/python-modules/requests_download/default.nix
+++ b/pkgs/development/python-modules/requests_download/default.nix
@@ -6,18 +6,18 @@
 
 buildPythonPackage rec {
   pname = "requests_download";
-  version = "0.1.1";
+  version = "0.1.2";
 
   format = "wheel";
 
   #src = pkgs.fetchurl {
-  #  url = https://files.pythonhosted.org/packages/60/af/10f899f0574a81cbc511124c08d7c7dc46c20d4f956a6a3c793ad4330bb4/requests_download-0.1.1-py2.py3-none-any.whl;
-  #  sha256 = "07832a93314bcd619aaeb08611ae245728e66672efb930bc2a300a115a47dab7";
+  #  url = https://files.pythonhosted.org/packages/60/af/10f899f0574a81cbc511124c08d7c7dc46c20d4f956a6a3c793ad4330bb4/requests_download-0.1.2-py2.py3-none-any.whl;
+  #  sha256 = "1ballx1hljpdpyvqzqn79m0dc21z2smrnxk2ylb6dbpg5crrskcr";
   #};
 
   src = fetchPypi {
     inherit pname version format;
-    sha256 = "07832a93314bcd619aaeb08611ae245728e66672efb930bc2a300a115a47dab7";
+    sha256 = "1ballx1hljpdpyvqzqn79m0dc21z2smrnxk2ylb6dbpg5crrskcr";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/salmon-mail/default.nix b/pkgs/development/python-modules/salmon-mail/default.nix
index b278d26b5dda..9486899c6061 100644
--- a/pkgs/development/python-modules/salmon-mail/default.nix
+++ b/pkgs/development/python-modules/salmon-mail/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchPypi, nose, dnspython
-,  chardet, lmtpd, pythondaemon, six, jinja2, mock }:
+,  chardet, lmtpd, python-daemon, six, jinja2, mock }:
 
 buildPythonPackage rec {
   pname = "salmon-mail";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ nose jinja2 mock ];
-  propagatedBuildInputs = [ chardet dnspython lmtpd pythondaemon six ];
+  propagatedBuildInputs = [ chardet dnspython lmtpd python-daemon six ];
 
   # The tests use salmon executable installed by salmon itself so we need to add
   # that to PATH
diff --git a/pkgs/development/python-modules/selectors34/default.nix b/pkgs/development/python-modules/selectors34/default.nix
new file mode 100644
index 000000000000..76f6232bafa7
--- /dev/null
+++ b/pkgs/development/python-modules/selectors34/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, lib
+, python
+, six
+}:
+
+buildPythonPackage rec {
+
+  name = "${pname}-${version}";
+  pname = "selectors34";
+  version = "1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09f5066337f8a76fb5233f267873f89a27a17c10bf79575954894bb71686451c";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  checkPhase = ''
+    ${python.interpreter} setup.py test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A backport of the selectors module from Python 3.4";
+    homepage = https://github.com/berkerpeksag/selectors34;
+    license = licenses.psfl;
+    maintainers = with maintainers; [ prusnak ];
+    };
+}
diff --git a/pkgs/development/python-modules/serpent/default.nix b/pkgs/development/python-modules/serpent/default.nix
new file mode 100644
index 000000000000..5ea59eb6a2a3
--- /dev/null
+++ b/pkgs/development/python-modules/serpent/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, lib
+, python
+, isPy27
+, isPy33
+, enum34
+}:
+
+buildPythonPackage rec {
+
+  name = "${pname}-${version}";
+  pname = "serpent";
+  version = "1.27";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6f8dc4317fb5b5a9629b5e518846bc9fee374b8171533726dc68df52b36ee912";
+  };
+
+  propagatedBuildInputs = lib.optionals (isPy27 || isPy33) [ enum34 ];
+
+  checkPhase = ''
+    ${python.interpreter} setup.py test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A simple serialization library based on ast.literal_eval";
+    homepage = https://github.com/irmen/Serpent;
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+    };
+}
diff --git a/pkgs/development/python-modules/sh/default.nix b/pkgs/development/python-modules/sh/default.nix
new file mode 100644
index 000000000000..37388bf46900
--- /dev/null
+++ b/pkgs/development/python-modules/sh/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi, coverage }:
+
+buildPythonPackage rec {
+  pname = "sh";
+  version = "1.12.14";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1z2hx357xp3v4cv44xmqp7lli3frndqpyfmpbxf7n76h7s1zaaxm";
+  };
+
+  checkInputs = [ coverage ];
+
+  # A test needs the HOME directory to be different from $TMPDIR.
+  preCheck = ''
+    HOME=$(mktemp -d)
+  '';
+
+  meta = {
+    description = "Python subprocess interface";
+    homepage = https://pypi.python.org/pypi/sh/;
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/sslib/default.nix b/pkgs/development/python-modules/sslib/default.nix
new file mode 100644
index 000000000000..3e5be211d42b
--- /dev/null
+++ b/pkgs/development/python-modules/sslib/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchPypi, buildPythonPackage, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "sslib";
+  version = "0.2.0";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0b5zrjkvx4klmv57pzhcmvbkdlyn745mn02k7hp811hvjrhbz417";
+  };
+
+  # No tests available
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/jqueiroz/python-sslib;
+    description = "A Python3 library for sharing secrets";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jqueiroz ];
+  };
+}
diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix
index fb702e046a48..1bf7511d2bb9 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.2"; # Upgrades may break sage. Please test.
+  version = "1.3"; # Upgrades may break sage. Please test or ping @timokau.
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0pr2v7dl51ngch1cfs423qsb472l9ys1m8m7vrhhh99fsxqa0v18";
+    sha256 = "0m0vhyv15zszn19mk5xq3py4iijjbr7f3fpy1s57b8q7c9arncg1";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/trueskill/default.nix b/pkgs/development/python-modules/trueskill/default.nix
new file mode 100644
index 000000000000..2106e4d2e76c
--- /dev/null
+++ b/pkgs/development/python-modules/trueskill/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, six }:
+
+buildPythonPackage rec {
+  pname = "trueskill";
+  version = "0.4.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1fv7g1szyjykja9mzax2w4js7jm2z7wwzgnr5dqrsdi84j6v8qlx";
+  };
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  # Can't build distribute, see https://github.com/NixOS/nixpkgs/pull/49340
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "The video game rating system";
+    homepage = https://trueskill.org;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [
+      eadwu
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/txaio/default.nix b/pkgs/development/python-modules/txaio/default.nix
index 01d7b04b3dd6..2bfdbae918a1 100644
--- a/pkgs/development/python-modules/txaio/default.nix
+++ b/pkgs/development/python-modules/txaio/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "txaio";
-  version = "18.8.1";
+  version = "18.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zmpdph6zddgrnkkcykh6qk5s46l7s5mzfqrh82m4b5iffn61qv7";
+    sha256 = "701de939e90bb80f7e085357081552437526752199def5541dddfc34c0b0593f";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/zstd/default.nix b/pkgs/development/python-modules/zstd/default.nix
new file mode 100644
index 000000000000..53c3c8969abf
--- /dev/null
+++ b/pkgs/development/python-modules/zstd/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, pkgconfig, fetchpatch, fetchFromGitHub, buildPythonPackage
+, zstd, pytest }:
+
+buildPythonPackage rec {
+  pname = "zstd";
+  version = "1.3.5.1";
+
+  # Switch back to fetchPypi when tests/ is included, see https://github.com/NixOS/nixpkgs/pull/49339
+  src = fetchFromGitHub {
+    owner = "sergey-dryabzhinsky";
+    repo = "python-zstd";
+    rev = "v${version}";
+    sha256 = "08n1vz4zavas4cgzpdfcbpy33lnv39xxhq5mgj0zv3xi03ypc1rl";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "/usr/bin/pkg-config" "${pkgconfig}/bin/pkg-config"
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ zstd ];
+
+  setupPyBuildFlags = [
+    "--external"
+    "--include-dirs=${zstd}/include"
+    "--libraries=zstd"
+    "--library-dirs=${zstd}/lib"
+  ];
+
+  # Running tests via setup.py triggers an attempt to recompile with the vendored zstd
+  ZSTD_EXTERNAL = 1;
+  VERSION = zstd.version;
+  PKG_VERSION = version;
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple python bindings to Yann Collet ZSTD compression library";
+    homepage = https://github.com/sergey-dryabzhinsky/python-zstd;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [
+      eadwu
+    ];
+  };
+}