summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2018-01-22 16:08:37 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2018-01-22 16:08:37 +0100
commit4c88132d25a1d793da5df67ce0bececd7b864ff5 (patch)
tree9f134748f334089a7e471893798c645fd3a36a54 /pkgs
parent92c0720be970dfc7b3699d84feef665182f6bf2b (diff)
parenta0f8e3a30c971d6bec2eb68f1e3afe4284d8445c (diff)
Merge commit 'a0f8e3a' into HEAD
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/networking/mailreaders/afew/default.nix28
-rw-r--r--pkgs/applications/version-management/nbstripout/default.nix2
-rw-r--r--pkgs/development/interpreters/python/build-python-package-setuptools.nix8
-rw-r--r--pkgs/development/interpreters/python/cpython/2.7/default.nix2
-rw-r--r--pkgs/development/interpreters/python/cpython/3.4/default.nix2
-rw-r--r--pkgs/development/interpreters/python/cpython/3.5/default.nix2
-rw-r--r--pkgs/development/interpreters/python/cpython/3.6/default.nix2
-rw-r--r--pkgs/development/interpreters/python/pypy/2.7/default.nix2
-rw-r--r--pkgs/development/libraries/mesa/default.nix3
-rw-r--r--pkgs/development/python-modules/APScheduler/default.nix4
-rw-r--r--pkgs/development/python-modules/absl-py/default.nix4
-rw-r--r--pkgs/development/python-modules/afew/default.nix34
-rw-r--r--pkgs/development/python-modules/aiohttp/default.nix4
-rw-r--r--pkgs/development/python-modules/alembic/default.nix4
-rw-r--r--pkgs/development/python-modules/ansicolors/default.nix14
-rw-r--r--pkgs/development/python-modules/arrow/default.nix4
-rw-r--r--pkgs/development/python-modules/asana/default.nix4
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix4
-rw-r--r--pkgs/development/python-modules/bleach/default.nix44
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/bpython/default.nix1
-rw-r--r--pkgs/development/python-modules/certifi/default.nix4
-rw-r--r--pkgs/development/python-modules/cffi/default.nix4
-rw-r--r--pkgs/development/python-modules/click-threading/default.nix34
-rw-r--r--pkgs/development/python-modules/crayons/default.nix19
-rw-r--r--pkgs/development/python-modules/curtsies/default.nix2
-rw-r--r--pkgs/development/python-modules/dask/default.nix4
-rw-r--r--pkgs/development/python-modules/decorator/default.nix4
-rw-r--r--pkgs/development/python-modules/devpi-common/default.nix4
-rw-r--r--pkgs/development/python-modules/django-ipware/default.nix4
-rw-r--r--pkgs/development/python-modules/django_guardian/default.nix2
-rw-r--r--pkgs/development/python-modules/ecpy/default.nix4
-rw-r--r--pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--pkgs/development/python-modules/eve/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-common/default.nix20
-rw-r--r--pkgs/development/python-modules/flask-limiter/default.nix19
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix4
-rw-r--r--pkgs/development/python-modules/google_api_core/default.nix4
-rw-r--r--pkgs/development/python-modules/google_auth/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio/default.nix4
-rw-r--r--pkgs/development/python-modules/guzzle_sphinx_theme/default.nix3
-rw-r--r--pkgs/development/python-modules/httpbin/default.nix18
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix12
-rw-r--r--pkgs/development/python-modules/intervaltree/default.nix4
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix4
-rw-r--r--pkgs/development/python-modules/keras/default.nix4
-rw-r--r--pkgs/development/python-modules/keyring/default.nix8
-rw-r--r--pkgs/development/python-modules/libagent/default.nix4
-rw-r--r--pkgs/development/python-modules/libtmux/default.nix10
-rw-r--r--pkgs/development/python-modules/limits/default.nix21
-rw-r--r--pkgs/development/python-modules/maya/default.nix32
-rw-r--r--pkgs/development/python-modules/mdp/default.nix5
-rw-r--r--pkgs/development/python-modules/meinheld/default.nix22
-rw-r--r--pkgs/development/python-modules/moto/default.nix4
-rw-r--r--pkgs/development/python-modules/multidict/default.nix10
-rw-r--r--pkgs/development/python-modules/natsort/default.nix4
-rw-r--r--pkgs/development/python-modules/natsort/setup.patch20
-rw-r--r--pkgs/development/python-modules/nibabel/default.nix36
-rw-r--r--pkgs/development/python-modules/nimfa/default.nix4
-rw-r--r--pkgs/development/python-modules/nipype/default.nix68
-rw-r--r--pkgs/development/python-modules/node-semver/default.nix4
-rw-r--r--pkgs/development/python-modules/pendulum/default.nix22
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--pkgs/development/python-modules/progressbar2/default.nix4
-rw-r--r--pkgs/development/python-modules/prov/default.nix37
-rw-r--r--pkgs/development/python-modules/pydotplus/default.nix28
-rw-r--r--pkgs/development/python-modules/pylast/default.nix4
-rw-r--r--pkgs/development/python-modules/pylti/default.nix51
-rw-r--r--pkgs/development/python-modules/pyodbc/default.nix4
-rw-r--r--pkgs/development/python-modules/pyopencl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyte/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-flake8/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-httpbin/default.nix10
-rw-r--r--pkgs/development/python-modules/pytest-xdist/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest/2_7.nix30
-rw-r--r--pkgs/development/python-modules/pytest/2_8.nix30
-rw-r--r--pkgs/development/python-modules/pytest/2_9.nix30
-rw-r--r--pkgs/development/python-modules/pytest/3_0.nix27
-rw-r--r--pkgs/development/python-modules/pytest/3_2.nix27
-rw-r--r--pkgs/development/python-modules/pytestrunner/default.nix19
-rw-r--r--pkgs/development/python-modules/python-utils/default.nix1
-rw-r--r--pkgs/development/python-modules/pytzdata/default.nix20
-rw-r--r--pkgs/development/python-modules/raven/default.nix11
-rw-r--r--pkgs/development/python-modules/regex/default.nix4
-rw-r--r--pkgs/development/python-modules/schema/default.nix4
-rw-r--r--pkgs/development/python-modules/secp256k1/default.nix48
-rw-r--r--pkgs/development/python-modules/sphinx/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix8
-rw-r--r--pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix4
-rw-r--r--pkgs/development/python-modules/tiros/default.nix4
-rw-r--r--pkgs/development/python-modules/twilio/default.nix2
-rw-r--r--pkgs/development/python-modules/uncertainties/default.nix4
-rw-r--r--pkgs/development/python-modules/whitenoise/default.nix20
-rw-r--r--pkgs/development/python-modules/xvfbwrapper/default.nix26
-rw-r--r--pkgs/development/python-modules/yapf/default.nix4
-rw-r--r--pkgs/development/python-modules/yarl/default.nix4
-rw-r--r--pkgs/tools/admin/awscli/default.nix8
-rw-r--r--pkgs/tools/backup/borg/default.nix3
-rw-r--r--pkgs/tools/misc/tmuxp/default.nix27
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/python-packages.nix272
102 files changed, 836 insertions, 608 deletions
diff --git a/pkgs/applications/networking/mailreaders/afew/default.nix b/pkgs/applications/networking/mailreaders/afew/default.nix
new file mode 100644
index 0000000000000..7fbdf0f6a64c5
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/afew/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, pythonPackages, notmuch }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "afew";
+  version = "1.2.0";
+
+  src = pythonPackages.fetchPypi {
+    inherit pname version;
+    sha256 = "121w7bd53xyibllxxbfykjj76n81kn1vgjqd22izyh67y8qyyk5r";
+  };
+
+  buildInputs = with pythonPackages; [ setuptools_scm ];
+
+  propagatedBuildInputs = with pythonPackages; [
+    pythonPackages.notmuch chardet
+  ] ++ stdenv.lib.optional (!pythonPackages.isPy3k) subprocess32;
+
+  makeWrapperArgs = [
+    ''--prefix PATH ':' "${notmuch}/bin"''
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/afewmail/afew;
+    description = "An initial tagging script for notmuch mail";
+    license = licenses.isc;
+    maintainers = with maintainers; [ garbas andir flokli ];
+  };
+}
diff --git a/pkgs/applications/version-management/nbstripout/default.nix b/pkgs/applications/version-management/nbstripout/default.nix
index c3ed61f31a237..c4c09094edd4d 100644
--- a/pkgs/applications/version-management/nbstripout/default.nix
+++ b/pkgs/applications/version-management/nbstripout/default.nix
@@ -25,7 +25,7 @@ buildPythonApplication rec {
 
   # ignore flake8 tests for the nix wrapped setup.py
   checkPhase = ''
-    PATH=$PATH:$out/bin:${mercurial}/bin pytest --ignore=nix_run_setup.py .
+    PATH=$PATH:$out/bin:${mercurial}/bin pytest .
   '';
 
   meta = {
diff --git a/pkgs/development/interpreters/python/build-python-package-setuptools.nix b/pkgs/development/interpreters/python/build-python-package-setuptools.nix
index a09febb492b1b..bc512357acd58 100644
--- a/pkgs/development/interpreters/python/build-python-package-setuptools.nix
+++ b/pkgs/development/interpreters/python/build-python-package-setuptools.nix
@@ -21,18 +21,18 @@ let
   setuppy = ./run_setup.py;
 
 in attrs // {
-  # we copy nix_run_setup.py over so it's executed relative to the root of the source
+  # we copy nix_run_setup over so it's executed relative to the root of the source
   # many project make that assumption
   buildPhase = attrs.buildPhase or ''
     runHook preBuild
-    cp ${setuppy} nix_run_setup.py
-    ${python.interpreter} nix_run_setup.py ${lib.optionalString (setupPyBuildFlags != []) ("build_ext " + (lib.concatStringsSep " " setupPyBuildFlags))} bdist_wheel
+    cp ${setuppy} nix_run_setup
+    ${python.interpreter} nix_run_setup ${lib.optionalString (setupPyBuildFlags != []) ("build_ext " + (lib.concatStringsSep " " setupPyBuildFlags))} bdist_wheel
     runHook postBuild
   '';
 
   installCheckPhase = attrs.checkPhase or ''
     runHook preCheck
-    ${python.interpreter} nix_run_setup.py test
+    ${python.interpreter} nix_run_setup test
     runHook postCheck
   '';
 
diff --git a/pkgs/development/interpreters/python/cpython/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix
index 9352bb4d52e09..1cb739b4d29fa 100644
--- a/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -227,7 +227,7 @@ in stdenv.mkDerivation {
       '';
       license = stdenv.lib.licenses.psfl;
       platforms = stdenv.lib.platforms.all;
-      maintainers = with stdenv.lib.maintainers; [ chaoflow domenkozar ];
+      maintainers = with stdenv.lib.maintainers; [ fridh ];
       # Higher priority than Python 3.x so that `/bin/python` points to `/bin/python2`
       # in case both 2 and 3 are installed.
       priority = -100;
diff --git a/pkgs/development/interpreters/python/cpython/3.4/default.nix b/pkgs/development/interpreters/python/cpython/3.4/default.nix
index 5c13035be1b16..2e8a95e7329b0 100644
--- a/pkgs/development/interpreters/python/cpython/3.4/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.4/default.nix
@@ -185,6 +185,6 @@ in stdenv.mkDerivation {
     '';
     license = licenses.psfl;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ chaoflow domenkozar cstrahan ];
+    maintainers = with maintainers; [ fridh ];
   };
 }
diff --git a/pkgs/development/interpreters/python/cpython/3.5/default.nix b/pkgs/development/interpreters/python/cpython/3.5/default.nix
index 951cb367528f4..eb8d0a2df38e7 100644
--- a/pkgs/development/interpreters/python/cpython/3.5/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.5/default.nix
@@ -178,6 +178,6 @@ in stdenv.mkDerivation {
     '';
     license = licenses.psfl;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ chaoflow domenkozar cstrahan ];
+    maintainers = with maintainers; [ fridh ];
   };
 }
diff --git a/pkgs/development/interpreters/python/cpython/3.6/default.nix b/pkgs/development/interpreters/python/cpython/3.6/default.nix
index d5ac94c76e6b3..f48f2c19026c9 100644
--- a/pkgs/development/interpreters/python/cpython/3.6/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.6/default.nix
@@ -178,6 +178,6 @@ in stdenv.mkDerivation {
     '';
     license = licenses.psfl;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ chaoflow domenkozar cstrahan kragniz ];
+    maintainers = with maintainers; [ fridh kragniz ];
   };
 }
diff --git a/pkgs/development/interpreters/python/pypy/2.7/default.nix b/pkgs/development/interpreters/python/pypy/2.7/default.nix
index 2b9c3f5958b82..1bce746f3c2de 100644
--- a/pkgs/development/interpreters/python/pypy/2.7/default.nix
+++ b/pkgs/development/interpreters/python/pypy/2.7/default.nix
@@ -139,6 +139,6 @@ in stdenv.mkDerivation rec {
     description = "Fast, compliant alternative implementation of the Python language (2.7.13)";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ domenkozar ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index e1fe061a96515..d343bd1112d0a 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -98,7 +98,7 @@ stdenv.mkDerivation {
 
   # TODO: Figure out how to enable opencl without having a runtime dependency on clang
   configureFlags = [
-    "--sysconfdir=/etc"
+    "--sysconfdir=${driverLink}/etc"
     "--localstatedir=/var"
     "--with-dri-driverdir=$(drivers)/lib/dri"
     "--with-dri-searchpath=${driverLink}/lib/dri"
@@ -197,7 +197,6 @@ stdenv.mkDerivation {
   '';
 
   # TODO:
-  #  @vcunat isn't sure if drirc will be found when in $out/etc/;
   #  check $out doesn't depend on llvm: builder failures are ignored
   #  for some reason grep -qv '${llvmPackages.llvm}' -R "$out";
   postFixup = ''
diff --git a/pkgs/development/python-modules/APScheduler/default.nix b/pkgs/development/python-modules/APScheduler/default.nix
index 931239c098724..8af07ece6873c 100644
--- a/pkgs/development/python-modules/APScheduler/default.nix
+++ b/pkgs/development/python-modules/APScheduler/default.nix
@@ -20,12 +20,12 @@
 
 buildPythonPackage rec {
   pname = "APScheduler";
-  version = "3.5.0";
+  version = "3.5.1";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ce44d5132b7951f4614067c88ca34cfee1ff97f6f0892581d79b636d83eab89";
+    sha256 = "952c8f46a11f32b9d5bfbe3e347dac2cdf0680d8b4799590dc9c3a9865b73b65";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/absl-py/default.nix b/pkgs/development/python-modules/absl-py/default.nix
index ca43e122a307c..5e295bb9516e6 100644
--- a/pkgs/development/python-modules/absl-py/default.nix
+++ b/pkgs/development/python-modules/absl-py/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "absl-py";
-  version = "0.1.7";
+  version = "0.1.9";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4ea22ae860f3a556511291e7f1284942199c81377f47ec4248163defb1b9e6ee";
+    sha256 = "1c787e3bc7ef8fea7a8a79cf36b0c550b4bd66e13c05d1352fbc5786488befb0";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/afew/default.nix b/pkgs/development/python-modules/afew/default.nix
deleted file mode 100644
index ca00477d4086d..0000000000000
--- a/pkgs/development/python-modules/afew/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
-, isPy3k , setuptools_scm, notmuch, chardet, subprocess32 }:
-
-buildPythonPackage rec {
-  pname = "afew";
-  version = "1.2.0";
-  name = "${pname}-${version}";
-
-  src = fetchFromGitHub {
-    owner = "afewmail";
-    repo = "afew";
-    rev = "3405475276a2433e1238be330e538ebf2a976e5e";
-    sha256 = "1h974avnfc6636az130yjqwm28z3aaqm49bjhpy3razx6zvyhzlf";
-  };
-
-  buildInputs = [ setuptools_scm ];
-  SETUPTOOLS_SCM_PRETEND_VERSION = "${version}";
-
-  propagatedBuildInputs = [
-    notmuch
-    chardet
-  ] ++ stdenv.lib.optional (!isPy3k) subprocess32;
-
-  postInstall = ''
-    wrapProgram $out/bin/afew \
-      --prefix LD_LIBRARY_PATH : ${notmuch}/lib
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = https://github.com/afewmail/afew;
-    description = "An initial tagging script for notmuch mail";
-    maintainers = with maintainers; [ garbas andir flokli ];
-  };
-}
diff --git a/pkgs/development/python-modules/aiohttp/default.nix b/pkgs/development/python-modules/aiohttp/default.nix
index 44e19072057f4..f1eb7a64d79eb 100644
--- a/pkgs/development/python-modules/aiohttp/default.nix
+++ b/pkgs/development/python-modules/aiohttp/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "aiohttp";
-  version = "2.3.7";
+  version = "2.3.9";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fe294df38e9c67374263d783a7a29c79372030f5962bd5734fa51c6f4bbfee3b";
+    sha256 = "6003bed78dc591d31bd89ef16e630a1c4fd97a3cd17b975ec945c0f46d6fc881";
   };
 
   disabled = pythonOlder "3.4";
diff --git a/pkgs/development/python-modules/alembic/default.nix b/pkgs/development/python-modules/alembic/default.nix
index 364f4cf9a3ab1..54e1a753597cc 100644
--- a/pkgs/development/python-modules/alembic/default.nix
+++ b/pkgs/development/python-modules/alembic/default.nix
@@ -6,11 +6,11 @@
 buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "alembic";
-  version = "0.9.6";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "042851ebe9efa07be6dc1395b1793b6c1d8964a39b73a0ce1649e2bcd41ea732";
+    sha256 = "46f4849c6dce69f54dd5001b3215b6a983dee6b17512efee10e237fa11f20cfa";
   };
 
   buildInputs = [ pytest pytestcov mock coverage ];
diff --git a/pkgs/development/python-modules/ansicolors/default.nix b/pkgs/development/python-modules/ansicolors/default.nix
index 9192186cd7179..a737cb06ea226 100644
--- a/pkgs/development/python-modules/ansicolors/default.nix
+++ b/pkgs/development/python-modules/ansicolors/default.nix
@@ -1,15 +1,21 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ stdenv, buildPythonPackage, fetchPypi, pytest }:
 
 buildPythonPackage rec {
   pname = "ansicolors";
-  version = "1.0.2";
-  name = "${pname}-${version}";
+  version = "1.1.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02lmh2fbqcwr98cq13l9ql0fvyad1dcb3ap3c5xq9qwjp45m6r3n";
+    extension = "zip";
+    sha256 = "99f94f5e3348a0bcd43c82e5fc4414013ccc19d70bd939ad71e0133ce9c372e0";
   };
 
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    py.test
+  '';
+
   meta = with stdenv.lib; {
     homepage = https://github.com/verigak/colors/;
     description = "ANSI colors for Python";
diff --git a/pkgs/development/python-modules/arrow/default.nix b/pkgs/development/python-modules/arrow/default.nix
index 374b82225a1a4..65f4ae79f4b33 100644
--- a/pkgs/development/python-modules/arrow/default.nix
+++ b/pkgs/development/python-modules/arrow/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "arrow";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a15ecfddf334316e3ac8695e48c15d1be0d6038603b33043930dcf0e675c86ee";
+    sha256 = "a558d3b7b6ce7ffc74206a86c147052de23d3d4ef0e17c210dd478c53575c4cd";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/asana/default.nix b/pkgs/development/python-modules/asana/default.nix
index 41a111c3167af..7990ece749b55 100644
--- a/pkgs/development/python-modules/asana/default.nix
+++ b/pkgs/development/python-modules/asana/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "asana";
-  version = "0.6.5";
+  version = "0.6.7";
   name = "${pname}-${version}";
 
   meta = {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eab8d24c2a4670b541b75da2f4bf5b995fe71559c1338da53ce9039f7b19c9a0";
+    sha256 = "d576601116764050c4cf63b417f1c24700b76cf6686f0e51e6b0b77d450e7973";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/asgiref/default.nix b/pkgs/development/python-modules/asgiref/default.nix
index fedd4b81a9d43..d88f44149bf23 100644
--- a/pkgs/development/python-modules/asgiref/default.nix
+++ b/pkgs/development/python-modules/asgiref/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchurl, six }:
 buildPythonPackage rec {
-  version = "2.0.1";
+  version = "2.1.0";
   pname = "asgiref";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://pypi/a/asgiref/${name}.tar.gz";
-    sha256 = "c3d70c473a2b7e525e18e68504630943e107f5b32f440c00c8543f94f565c855";
+    sha256 = "2bfd70fcc51df4036768b91d7b13524090dc8f366d79fa44ba2b0aeb47306344";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/bleach/default.nix b/pkgs/development/python-modules/bleach/default.nix
new file mode 100644
index 0000000000000..e4ccb0c92d66f
--- /dev/null
+++ b/pkgs/development/python-modules/bleach/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestrunner
+, six
+, html5lib
+}:
+
+buildPythonPackage rec {
+  pname = "bleach";
+  version = "2.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "38fc8cbebea4e787d8db55d6f324820c7f74362b70db9142c1ac7920452d1a19";
+  };
+
+  checkInputs = [ pytest pytestrunner ];
+  propagatedBuildInputs = [ six html5lib ];
+
+  postPatch = ''
+    substituteInPlace setup.py --replace ",<3dev" ""
+  '';
+
+  meta = {
+    description = "An easy, HTML5, whitelisting HTML sanitizer";
+    longDescription = ''
+      Bleach is an HTML sanitizing library that escapes or strips markup and
+      attributes based on a white list. Bleach can also linkify text safely,
+      applying filters that Django's urlize filter cannot, and optionally
+      setting rel attributes, even on links already in the text.
+
+      Bleach is intended for sanitizing text from untrusted sources. If you
+      find yourself jumping through hoops to allow your site administrators
+      to do lots of things, you're probably outside the use cases. Either
+      trust those users, or don't.
+    '';
+    homepage = https://github.com/mozilla/bleach;
+    downloadPage = https://github.com/mozilla/bleach/releases;
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ prikhi ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index e50f1d46f49f1..8f9c0fd74e6b5 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -12,11 +12,11 @@
 buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "botocore";
-  version = "1.8.26";
+  version = "1.8.33";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09j3b80l401hwc3ha0s2c2qq6z45x846an09ybc9y8cb1ky0kdlv";
+    sha256 = "fa29ea54f26b1193682332d3b4cdde7aa79b4eaccb23f70e88672509c24546f4";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bpython/default.nix b/pkgs/development/python-modules/bpython/default.nix
index e0f953256b560..f9ab331a3f649 100644
--- a/pkgs/development/python-modules/bpython/default.nix
+++ b/pkgs/development/python-modules/bpython/default.nix
@@ -3,7 +3,6 @@
 buildPythonPackage rec {
   pname = "bpython";
   version = "0.17";
-  name  = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix
index 79eea05745468..d36f0f308d331 100644
--- a/pkgs/development/python-modules/certifi/default.nix
+++ b/pkgs/development/python-modules/certifi/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "certifi";
-  version = "2017.7.27.1";
+  version = "2018.1.18";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "40523d2efb60523e113b44602298f0960e900388cf3bb6043f645cf57ea9e3f5";
+    sha256 = "edbc3f203427eef571f79a7692bb160a2b0f7ccaa31953e99bd17e307cf63f7d";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix
index f8e313d660ebc..cc6ad6a32a7ef 100644
--- a/pkgs/development/python-modules/cffi/default.nix
+++ b/pkgs/development/python-modules/cffi/default.nix
@@ -2,12 +2,12 @@
 
 if isPyPy then null else buildPythonPackage rec {
   pname = "cffi";
-  version = "1.11.2";
+  version = "1.11.4";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ab87dd91c0c4073758d07334c1e5f712ce8fe48f007b86f8238773963ee700a6";
+    sha256 = "df9083a992b17a28cd4251a3f5c879e0198bb26c9e808c4647e0a18739f1d11d";
   };
 
   patches = stdenv.lib.optional (isPy27 && stdenv.cc.isClang) ./clang.patch;
diff --git a/pkgs/development/python-modules/click-threading/default.nix b/pkgs/development/python-modules/click-threading/default.nix
new file mode 100644
index 0000000000000..5be41007c6a95
--- /dev/null
+++ b/pkgs/development/python-modules/click-threading/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, click
+, isPy3k
+, futures
+}:
+
+buildPythonPackage rec {
+  pname = "click-threading";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "400b0bb63d9096b6bf2806efaf742a1cc8b6c88e0484f0afe7d7a7f0e9870609";
+  };
+
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [ click ] ++ lib.optional (!isPy3k) futures;
+
+  checkPhase = ''
+    py.test
+  '';
+
+  # Tests are broken on 3.x
+  doCheck = !isPy3k;
+
+  meta = {
+    homepage = https://github.com/click-contrib/click-threading/;
+    description = "Multithreaded Click apps made easy";
+    license = lib.licenses.mit;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/crayons/default.nix b/pkgs/development/python-modules/crayons/default.nix
new file mode 100644
index 0000000000000..16b3998eb8566
--- /dev/null
+++ b/pkgs/development/python-modules/crayons/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchPypi, buildPythonPackage, colorama }:
+
+buildPythonPackage rec {
+  pname = "crayons";
+  version = "0.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17c0v0dkk8sn8kyyy2w7myxq9981glrbczh6h8sdcr750lb6j5sy";
+  };
+
+  propagatedBuildInputs = [ colorama ];
+
+  meta = with stdenv.lib; {
+    description = "TextUI colors for Python";
+    homepage = https://github.com/kennethreitz/crayons;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/curtsies/default.nix b/pkgs/development/python-modules/curtsies/default.nix
index a1e5f23523564..d9505b384af86 100644
--- a/pkgs/development/python-modules/curtsies/default.nix
+++ b/pkgs/development/python-modules/curtsies/default.nix
@@ -3,8 +3,6 @@
 buildPythonPackage rec {
   pname = "curtsies";
   version = "0.2.11";
-  name  = "${pname}-${version}";
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "1vljmw3sy6lrqahhpyg4gk13mzcx3mwhvg8s41698ms3cpgkjipc";
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index c3b45dc3c867c..79e423d4847b8 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "0.16.0";
+  version = "0.16.1";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "40d150b73e3366c9521e9dde206046a66906330074f87be901b1e1013ce6cb73";
+    sha256 = "07a0609ce053c8c2675037e6d5242899f90ecfb5262e1d0b2d7264fe8814099c";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/decorator/default.nix b/pkgs/development/python-modules/decorator/default.nix
index e3ee3117501b0..e852ac0385ca1 100644
--- a/pkgs/development/python-modules/decorator/default.nix
+++ b/pkgs/development/python-modules/decorator/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "decorator";
-  version = "4.1.2";
+  version = "4.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7cb64d38cb8002971710c8899fbdfb859a23a364b7c99dab19d1f719c2ba16b5";
+    sha256 = "7d46dd9f3ea1cf5f06ee0e4e1277ae618cf48dfb10ada7c8427cd46c42702a0e";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/devpi-common/default.nix b/pkgs/development/python-modules/devpi-common/default.nix
index f2be8ec563817..c43d34a9b5550 100644
--- a/pkgs/development/python-modules/devpi-common/default.nix
+++ b/pkgs/development/python-modules/devpi-common/default.nix
@@ -2,12 +2,12 @@
 
 with pythonPackages;buildPythonPackage rec {
   pname = "devpi-common";
-  version = "3.2.0";
+  version = "3.2.1";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rh119iw5hk41gsvbjr0wixvl1i4f0b1vcnw9ym35rmcp517z0wb";
+    sha256 = "e9afa277a9b227d92335c49fab40be2e9bb112c0f4dda84906c14addb1ded2f7";
   };
 
   propagatedBuildInputs = [ requests py ];
diff --git a/pkgs/development/python-modules/django-ipware/default.nix b/pkgs/development/python-modules/django-ipware/default.nix
index c4d993ac03ba0..1f3aedab81026 100644
--- a/pkgs/development/python-modules/django-ipware/default.nix
+++ b/pkgs/development/python-modules/django-ipware/default.nix
@@ -3,7 +3,7 @@
 buildPythonPackage rec {
   pname = "django-ipware";
   name = "${pname}-${version}";
-  version = "1.1.6";
+  version = "2.0.1";
 
   meta = {
     description = "A Django application to retrieve user's IP address";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00zah4g2h93nbsijz556j97v9qkn9sxcia1a2wrwdwnav2fhzack";
+    sha256 = "3fba8821298c8533ce5609debf31dc8a22f228c50e100f42d97637a9f9357d43";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django_guardian/default.nix b/pkgs/development/python-modules/django_guardian/default.nix
index a92a7038cd31b..d2f8361bc7d69 100644
--- a/pkgs/development/python-modules/django_guardian/default.nix
+++ b/pkgs/development/python-modules/django_guardian/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ django six ];
 
   checkPhase = ''
-    ${python.interpreter} nix_run_setup.py test --addopts="--ignore build"
+    ${python.interpreter} nix_run_setup test --addopts="--ignore build"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/ecpy/default.nix b/pkgs/development/python-modules/ecpy/default.nix
index 25ca8dabf2bff..84830e7f2b834 100644
--- a/pkgs/development/python-modules/ecpy/default.nix
+++ b/pkgs/development/python-modules/ecpy/default.nix
@@ -5,11 +5,11 @@
 buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "ECPy";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0509a90714448ef47ef727cb7aee3415995c883c945e972521b5838fa4c50e24";
+    sha256 = "ef3d95419d53368f52fb7d4b883b8df0dfc2dd19a76243422d24981c3e5f27bd";
   };
 
   buildInputs = [ hidapi pycrypto pillow protobuf future ];
diff --git a/pkgs/development/python-modules/elasticsearch/default.nix b/pkgs/development/python-modules/elasticsearch/default.nix
index 9b90b09c5f5fc..88399d3169753 100644
--- a/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/pkgs/development/python-modules/elasticsearch/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage (rec {
   pname = "elasticsearch";
-  version = "6.0.0";
+  version = "6.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "029q603g95fzkh87xkbxxmjfq5s9xkr9y27nfik6d4prsl0zxmlz";
+    sha256 = "8d91a3fce12123a187b673f18c23bcffa6e7b49ba057555d59eeeded0ba15dce";
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/pkgs/development/python-modules/eve/default.nix b/pkgs/development/python-modules/eve/default.nix
index d77b912fe0de6..fe6daf73339f3 100644
--- a/pkgs/development/python-modules/eve/default.nix
+++ b/pkgs/development/python-modules/eve/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   pname = "Eve";
-  version = "0.7.5";
+  version = "0.7.6";
   name  = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dd4ffbc4725220ffdc8e32f8566c8870efaecdc238d0f96b18e1e83227eca55d";
+    sha256 = "1ba84ab471bc2203a728fe4707a9279c44420224180b418601778125f51577ff";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/flask-common/default.nix b/pkgs/development/python-modules/flask-common/default.nix
new file mode 100644
index 0000000000000..31fe2a677c39f
--- /dev/null
+++ b/pkgs/development/python-modules/flask-common/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchPypi, buildPythonPackage
+, crayons, flask, flask_cache, gunicorn, maya, meinheld, whitenoise }:
+
+buildPythonPackage rec {
+  pname = "Flask-Common";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1f6ibvkxpxgczxs4qcbh5bj8rf9ggggbagi2dkaphx5w29xbbys4";
+  };
+
+  propagatedBuildInputs = [ crayons flask flask_cache gunicorn maya meinheld whitenoise ];
+
+  meta = with stdenv.lib; {
+    description = "Flask extension with lots of common time-savers";
+    homepage = https://github.com/kennethreitz/flask-common;
+    license = licenses.asl20; # XXX: setup.py lists BSD but git repo has Apache 2.0 LICENSE
+  };
+}
diff --git a/pkgs/development/python-modules/flask-limiter/default.nix b/pkgs/development/python-modules/flask-limiter/default.nix
new file mode 100644
index 0000000000000..a60c5a993ea3d
--- /dev/null
+++ b/pkgs/development/python-modules/flask-limiter/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchPypi, buildPythonPackage, flask, limits }:
+
+buildPythonPackage rec {
+  pname = "Flask-Limiter";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1f0diannnc6rc0ngsh222lws3qf89wxm0aschaxxvwjvybf9iklc";
+  };
+
+  propagatedBuildInputs = [ flask limits ];
+
+  meta = with stdenv.lib; {
+    description = "Rate limiting for flask applications";
+    homepage = https://flask-limiter.readthedocs.org/;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index f7dfb5a8edf5a..80fc3893f17c0 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "3.21.1";
+  version = "3.21.2";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1whama3bm34xp9l7f543sz2h9dms77ci820sdbxi5dl9krs4xkxb";
+    sha256 = "96b636793c806206b1925e21224f4ab2ce5bea8ae0990ed181b8ac8d30848f47";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/google_api_core/default.nix b/pkgs/development/python-modules/google_api_core/default.nix
index c4275c47a4248..2899eeb4a8af8 100644
--- a/pkgs/development/python-modules/google_api_core/default.nix
+++ b/pkgs/development/python-modules/google_api_core/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03bc4b1ab69c0e113af07e706edee50f583abe8219fe1e1d529dee191cb8e0bf";
+    sha256 = "0144d467083ed54d2e8ccb4212d42c3724fe0b844b7d3a0ff85aea54b7ae8347";
   };
 
   propagatedBuildInputs = [ google_auth protobuf googleapis_common_protos requests grpcio ];
diff --git a/pkgs/development/python-modules/google_auth/default.nix b/pkgs/development/python-modules/google_auth/default.nix
index 04dfd26a0e8c4..2076f3c344414 100644
--- a/pkgs/development/python-modules/google_auth/default.nix
+++ b/pkgs/development/python-modules/google_auth/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "041qpwlvpawggasvbfpkx39mkg4dgvivj831x7kinidayrf46w3i";
+    sha256 = "d119b5954393d81c4a986ab420cf2c8129fc95ff5c4c6bb8ab5c8f3e6446394f";
   };
 
   checkInputs = [ pytest mock oauth2client flask requests urllib3 pytest-localserver ];
diff --git a/pkgs/development/python-modules/grpcio/default.nix b/pkgs/development/python-modules/grpcio/default.nix
index 3fe7dc751c86b..c22f2c2f4d7b0 100644
--- a/pkgs/development/python-modules/grpcio/default.nix
+++ b/pkgs/development/python-modules/grpcio/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "grpcio";
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6ce5fd3093ddc09a152981d5c477ac645eda19dfcc819e45d8c57da6b743bd53";
+    sha256 = "88d87aab9c7889b3ab29dd74aac1a5493ed78b9bf5afba1c069c9dd5531f951d";
   };
 
   propagatedBuildInputs = [ six protobuf ]
diff --git a/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix b/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix
index e0b36de567295..08b42b807999b 100644
--- a/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix
+++ b/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix
@@ -1,11 +1,8 @@
 { stdenv, buildPythonPackage, sphinx, fetchPypi }:
 
-
 buildPythonPackage rec {
-  name = "${pname}-${version}";
   pname = "guzzle_sphinx_theme";
   version = "0.7.11";
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "1rnkzrrsbnifn3vsb4pfaia3nlvgvw6ndpxp7lzjrh23qcwid34v";
diff --git a/pkgs/development/python-modules/httpbin/default.nix b/pkgs/development/python-modules/httpbin/default.nix
index 2f24a1ab72bd2..77dc27f1096e5 100644
--- a/pkgs/development/python-modules/httpbin/default.nix
+++ b/pkgs/development/python-modules/httpbin/default.nix
@@ -1,24 +1,38 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , flask
+, flask-common
+, flask-limiter
 , markupsafe
 , decorator
 , itsdangerous
+, raven
 , six
+, brotlipy
 }:
 
 buildPythonPackage rec {
   pname = "httpbin";
   version = "0.6.2";
-  name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "0afa0486a76305cac441b5cc80d5d4ccd82b20875da7c5119ecfe616cefef45f";
   };
 
-  propagatedBuildInputs = [ flask markupsafe decorator itsdangerous six ];
+  patches = [
+    # https://github.com/kennethreitz/httpbin/issues/403
+    # https://github.com/kennethreitz/flask-common/issues/7
+    # https://github.com/evansd/whitenoise/issues/166
+    (fetchpatch {
+      url = "https://github.com/javabrett/httpbin/commit/5735c888e1e51b369fcec41b91670a90535e661e.patch";
+      sha256 = "167h8mscdjagml33dyqk8nziiz3dqbggnkl6agsirk5270nl5f7q";
+    })
+  ];
+
+  propagatedBuildInputs = [ brotlipy flask flask-common flask-limiter markupsafe decorator itsdangerous raven six ];
 
   # No tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index ab56cde9c131d..91939d1468879 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, python
 , pythonOlder, pythonAtLeast, enum34
-, doCheck ? true, pytest, pytest_xdist, flake8, flaky
+, doCheck ? true, pytest, pytest_xdist, flake8, flaky, mock
 }:
 buildPythonPackage rec {
   # http://hypothesis.readthedocs.org/en/latest/packaging.html
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   # pytz fake_factory django numpy pytest
   # If you need these, you can just add them to your environment.
 
-  version = "3.11.1";
+  version = "3.27.0";
   pname = "hypothesis";
   name = "${pname}-${version}";
 
@@ -18,10 +18,10 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis-python";
     rev = "${version}";
-    sha256 = "0damf6zbm0db2a3gfwrbbj92yal576wpmhhchc0w0np8vdnax70n";
-  };
+    sha256 = "1lvhd8jrwajyc5w1alb9vinsi97fjfqpkxkh8g8j527831lig0j0";
+ };
 
-  checkInputs = stdenv.lib.optionals doCheck [ pytest pytest_xdist flake8 flaky ];
+  checkInputs = stdenv.lib.optionals doCheck [ pytest pytest_xdist flake8 flaky mock];
   propagatedBuildInputs = stdenv.lib.optionals (pythonOlder "3.4") [ enum34 ];
 
   inherit doCheck;
@@ -38,7 +38,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "A Python library for property based testing";
-    homepage = https://github.com/DRMacIver/hypothesis;
+    homepage = https://github.com/HypothesisWorks/hypothesis;
     license = licenses.mpl20;
   };
 }
diff --git a/pkgs/development/python-modules/intervaltree/default.nix b/pkgs/development/python-modules/intervaltree/default.nix
index 69b35df29738b..feccdff683e7e 100644
--- a/pkgs/development/python-modules/intervaltree/default.nix
+++ b/pkgs/development/python-modules/intervaltree/default.nix
@@ -17,10 +17,8 @@ buildPythonPackage rec {
 
   checkPhase = ''
     runHook preCheck
-    # pytest will try to run tests for nix_run_setup.py / files in build/lib which fails
-    mv nix_run_setup.py run_setup
     rm build -rf
-    ${python.interpreter} run_setup test
+    ${python.interpreter} nix_run_setup test
     runHook postCheck
   '';
 
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index 8547a3ef99e94..330141fcd06ea 100644
--- a/pkgs/development/python-modules/ipykernel/default.nix
+++ b/pkgs/development/python-modules/ipykernel/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "ipykernel";
-  version = "4.7.0";
+  version = "4.8.0";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "354986612a38f0555c43d5af2425e2a67506b63b313a0325e38904003b9d977b";
+    sha256 = "dedc199df6a38725c732986dfa606c245fb8fe0fe999b33a0c305b73d80c6774";
   };
 
   buildInputs = [ nose ] ++ lib.optional isPy27 mock;
diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix
index b6c56cc8bc687..8ef263cdfa80d 100644
--- a/pkgs/development/python-modules/keras/default.nix
+++ b/pkgs/development/python-modules/keras/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "Keras";
-  version = "2.1.2";
+  version = "2.1.3";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3ee56fc129d9d00b1916046e50056047836f97ada59df029e5661fb34442d5e8";
+    sha256 = "7ca3a381523bad40a6922e88951a316664cb088fd01cea07e5ec8ada3327e3c7";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/keyring/default.nix b/pkgs/development/python-modules/keyring/default.nix
index f88bdb84e0c39..0f99152766a32 100644
--- a/pkgs/development/python-modules/keyring/default.nix
+++ b/pkgs/development/python-modules/keyring/default.nix
@@ -1,23 +1,23 @@
 { stdenv, buildPythonPackage, fetchPypi
 , secretstorage
 , fs, gdata, python_keyczar, pyasn1, pycrypto, six, setuptools_scm
-, mock, pytest_28, pytestrunner }:
+, mock, pytest, pytestrunner }:
 
 buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "keyring";
-  version = "10.5.1";
+  version = "10.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f10674bb6ecbf82e2b713627c48ad0e84178e1c9d3dc1f0373261a0765402fb2";
+    sha256 = "69c2b69d66a0db1165c6875c1833c52f4dc62179959692b30c8c4a4b8390d895";
   };
 
   buildInputs = [
     fs gdata python_keyczar pyasn1 pycrypto six setuptools_scm
   ];
 
-  checkInputs = [ mock pytest_28 pytestrunner ];
+  checkInputs = [ mock pytest pytestrunner ];
 
   propagatedBuildInputs = [ secretstorage ];
 
diff --git a/pkgs/development/python-modules/libagent/default.nix b/pkgs/development/python-modules/libagent/default.nix
index e8cecda75897e..d6c96534d7485 100644
--- a/pkgs/development/python-modules/libagent/default.nix
+++ b/pkgs/development/python-modules/libagent/default.nix
@@ -5,11 +5,11 @@
 buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "libagent";
-  version = "0.9.5";
+  version = "0.9.7";
 
   src = fetchPypi{
     inherit pname version;
-    sha256 = "982b81c19dc9ee1158dc32fedbe1c36aff2b6872fa0dd42173b639b965ccfb2e";
+    sha256 = "3ae14dc14859f7b4b92583ab0d40884ac07f26dbe00c7b747df2d50f4b1af098";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/libtmux/default.nix b/pkgs/development/python-modules/libtmux/default.nix
index 57f8d2c8114e4..3fe0b3911c264 100644
--- a/pkgs/development/python-modules/libtmux/default.nix
+++ b/pkgs/development/python-modules/libtmux/default.nix
@@ -1,7 +1,6 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest_29 }:
+{ stdenv, fetchPypi, buildPythonPackage, pytest }:
 
 buildPythonPackage rec {
-  name = "${pname}-${version}";
   pname = "libtmux";
   version = "0.7.7";
 
@@ -10,11 +9,14 @@ buildPythonPackage rec {
     sha256 = "5670c8da8d0192d932ac1e34f010e0eeb098cdb2af6daad0307b5418e7a37733";
   };
 
-  buildInputs = [ pytest_29 ];
-  patchPhase = ''
+  checkInputs = [ pytest ];
+  postPatch = ''
     sed -i 's/==.*$//' requirements/test.txt
   '';
 
+  # No tests in archive
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Scripting library for tmux";
     homepage = https://libtmux.readthedocs.io/;
diff --git a/pkgs/development/python-modules/limits/default.nix b/pkgs/development/python-modules/limits/default.nix
new file mode 100644
index 0000000000000..672cad5bfe174
--- /dev/null
+++ b/pkgs/development/python-modules/limits/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchPypi, buildPythonPackage, six }:
+
+buildPythonPackage rec {
+  pname = "limits";
+  version = "1.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0dfbrmqixsvhvzqgd4s8rfj933k1w5q4bm23pp9zyp70xlb0mfmd";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  doCheck = false; # ifilter
+
+  meta = with stdenv.lib; {
+    description = "Rate limiting utilities";
+    license = licenses.mit;
+    homepage = https://limits.readthedocs.org/;
+  };
+}
diff --git a/pkgs/development/python-modules/maya/default.nix b/pkgs/development/python-modules/maya/default.nix
new file mode 100644
index 0000000000000..9c6cb241fea51
--- /dev/null
+++ b/pkgs/development/python-modules/maya/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchPypi, fetchpatch, buildPythonPackage
+, dateparser, humanize, pendulum, ruamel_yaml, tzlocal }:
+
+buildPythonPackage rec {
+  pname = "maya";
+  version = "0.3.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1x88k4irpckvd7jf2yvqjw1s52hjqbxym1r1d928yb3fkj7rvlxs";
+  };
+
+  patches = [
+    (fetchpatch {
+      # https://github.com/kennethreitz/maya/issues/112
+      # Merged, so should be in next release.
+      url = "https://github.com/kennethreitz/maya/commit/f69a93b1103130139cdec30511777823957fb659.patch";
+      sha256 = "152ba7amv9dhhx1wcklfalsdzsxggik9f7rsrikms921lq9xqc8h";
+    })
+  ];
+
+  propagatedBuildInputs = [ dateparser humanize pendulum ruamel_yaml tzlocal ];
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Datetimes for Humans";
+    homepage = https://github.com/kennethreitz/maya;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/mdp/default.nix b/pkgs/development/python-modules/mdp/default.nix
index 28f6057e56337..9fbaced9b6572 100644
--- a/pkgs/development/python-modules/mdp/default.nix
+++ b/pkgs/development/python-modules/mdp/default.nix
@@ -1,16 +1,15 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest_29, future, numpy }:
+{ stdenv, buildPythonPackage, fetchPypi, pytest, future, numpy }:
 
 buildPythonPackage rec {
   pname = "MDP";
   version = "3.5";
-  name  = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "0aw1zxmyvx6gfmmnixbqmdaah28jl7rmqkzhxv53091asc23iw9k";
   };
 
-  checkInputs = [ pytest_29 ];
+  checkInputs = [ pytest ];
   propagatedBuildInputs = [ future numpy ];
 
   # Tests disabled because of missing dependencies not in nix
diff --git a/pkgs/development/python-modules/meinheld/default.nix b/pkgs/development/python-modules/meinheld/default.nix
new file mode 100644
index 0000000000000..526cd3ed4eeca
--- /dev/null
+++ b/pkgs/development/python-modules/meinheld/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchPypi, buildPythonPackage, greenlet }:
+
+buildPythonPackage rec {
+  pname = "meinheld";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0rg5878njn66cc0x2fwrakikz24946r0cxxl6j8vvz5phd4zygi9";
+  };
+
+  propagatedBuildInputs = [ greenlet ];
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "High performance asynchronous Python WSGI Web Server";
+    homepage = http://meinheld.org/;
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index d5c40c67b36b2..84096d8aa9217 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "moto";
-  version = "1.1.25";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d427d6e1a81e926c2b6a071453807b05f4736d65068493e1f3055ac7ee24ea21";
+    sha256 = "c42b894cdf35412c95f0c6b40309cf802436e049cd172dc5db7516c7b845191b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/multidict/default.nix b/pkgs/development/python-modules/multidict/default.nix
index acde86de60df4..5ce6969da7575 100644
--- a/pkgs/development/python-modules/multidict/default.nix
+++ b/pkgs/development/python-modules/multidict/default.nix
@@ -1,5 +1,5 @@
 { lib
-, fetchurl
+, fetchPypi
 , buildPythonPackage
 , cython
 , pytest, psutil, pytestrunner
@@ -7,13 +7,13 @@
 }:
 
 let
+
+in buildPythonPackage rec {
   pname = "multidict";
   version = "4.0.0";
-in buildPythonPackage rec {
-  name = "${pname}-${version}";
 
-  src = fetchurl {
-    url = "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${name}.tar.gz";
+  src = fetchPypi {
+    inherit pname version;
     sha256 = "0y0pg3r9hlknny0zwg906wz81h8in6lgvnpbmzvl911bmnrqc95p";
   };
 
diff --git a/pkgs/development/python-modules/natsort/default.nix b/pkgs/development/python-modules/natsort/default.nix
index 4fc1f7255c605..8e81f923b916e 100644
--- a/pkgs/development/python-modules/natsort/default.nix
+++ b/pkgs/development/python-modules/natsort/default.nix
@@ -39,9 +39,7 @@ buildPythonPackage rec {
     sha256 = "9ffbfb74bf3fc3905be1b9b052ed865675651e38fcd972ed1ed5c64a02f93cbd";
   };
 
-  # do not run checks on nix_run_setup.py
-  patches = lib.singleton ./setup.patch
-         ++ lib.optional (isPy35 || isPy36) ./python-3.6.3-test-failures.patch;
+  patches = lib.optional (isPy35 || isPy36) ./python-3.6.3-test-failures.patch;
 
   # testing based on project's tox.ini
   checkPhase = ''
diff --git a/pkgs/development/python-modules/natsort/setup.patch b/pkgs/development/python-modules/natsort/setup.patch
deleted file mode 100644
index 4c52b740152c9..0000000000000
--- a/pkgs/development/python-modules/natsort/setup.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/setup.cfg b/setup.cfg
-index 604994d..e38c3ec 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -6,6 +6,7 @@ formats = gztar
- 
- [tool:pytest]
- flakes-ignore = 
-+	nix_run_setup.py ALL
- 	natsort/compat/py23.py UndefinedName
- 	natsort/__init__.py UnusedImport
- 	natsort/compat/* UnusedImport
-@@ -14,6 +15,7 @@ flakes-ignore =
- 	test_natsort/test_locale_help.py UnusedImport RedefinedWhileUnused
- 	test_natsort/compat/* UnusedImport
- pep8ignore = 
-+	nix_run_setup.py ALL
- 	natsort/ns_enum.py E126 E241 E123 E221
- 	test_natsort/test_*.py E501 E241 E221
- 	test_natsort/test_natsort_keygen.py E501 E241 E221 E701
diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix
new file mode 100644
index 0000000000000..7db4378a6e636
--- /dev/null
+++ b/pkgs/development/python-modules/nibabel/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, numpy
+, nose
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "nibabel";
+  version = "2.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1h6nhi1s2ab7sdyyl3qjnvlw0kggcnam7vn4b3z56ay20596kvhw";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    nose
+    six
+  ];
+
+  # Failing tests
+  # nibabel.tests.test_minc1.test_old_namespace
+  # nibabel.gifti.tests.test_parse_gifti_fast.test_parse_dataarrays
+  # nibabel.gifti.tests.test_giftiio.test_read_deprecated
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://nipy.org/nibabel/;
+    description = "Access a multitude of neuroimaging data formats";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ashgillman ];
+  };
+}
diff --git a/pkgs/development/python-modules/nimfa/default.nix b/pkgs/development/python-modules/nimfa/default.nix
index b38aea7d28c03..26f1ea3294bba 100644
--- a/pkgs/development/python-modules/nimfa/default.nix
+++ b/pkgs/development/python-modules/nimfa/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "nimfa";
-  version = "1.3.2";
+  version = "1.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0iqcrr48jwy7nh8g13xf4rvpw9wq5qs3hyd6gqlh30mgyn9i85w7";
+    sha256 = "651376eba6b049fe270dc0d29d4b2abecb5e998c2013df6735a97875503e2ffe";
   };
 
   propagatedBuildInputs = [ numpy scipy ];
diff --git a/pkgs/development/python-modules/nipype/default.nix b/pkgs/development/python-modules/nipype/default.nix
new file mode 100644
index 0000000000000..8ee6eeb104b4c
--- /dev/null
+++ b/pkgs/development/python-modules/nipype/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+# python dependencies
+, click
+, configparser ? null
+, dateutil
+, funcsigs
+, future
+, mock
+, networkx
+, nibabel
+, numpy
+, packaging
+, prov
+, psutil
+, pydot
+, pytest
+, scipy
+, simplejson
+, traits
+, xvfbwrapper
+# other dependencies
+, which
+}:
+
+assert !isPy3k -> configparser != null;
+
+buildPythonPackage rec {
+  pname = "nipype";
+  version = "0.14.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0airdrh93vwmbfkqxp5cqfzm0zzqcvjnvphv3zhg197y39xxpl1k";
+  };
+
+  doCheck = false;  # fails with TypeError: None is not callable
+  checkInputs = [ which ];
+  buildInputs = [ pytest mock ];  # required in installPhase
+  propagatedBuildInputs = [
+    click
+    dateutil
+    funcsigs
+    future
+    networkx
+    nibabel
+    numpy
+    packaging
+    prov
+    psutil
+    pydot
+    scipy
+    simplejson
+    traits
+    xvfbwrapper
+  ] ++ stdenv.lib.optional (!isPy3k) [
+    configparser
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://nipy.org/nipype/;
+    description = "Neuroimaging in Python: Pipelines and Interfaces";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ashgillman ];
+  };
+}
diff --git a/pkgs/development/python-modules/node-semver/default.nix b/pkgs/development/python-modules/node-semver/default.nix
index 8c518f9b7ff4a..7351d2edfd3f5 100644
--- a/pkgs/development/python-modules/node-semver/default.nix
+++ b/pkgs/development/python-modules/node-semver/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   name = "${pname}-${version}";
-  version = "0.2.0";
+  version = "0.3.0";
   pname = "node-semver";
 
   buildInputs = [ pytest tox ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c32bfc976fd9e003c4a15665e5fe9f337366ba6b60aeb34e4479da9d7bbb0081";
+    sha256 = "d8a3906e7677f8ab05aeb3fc94c7a2fa163def5507271452ce6831282f23f1cb";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/pendulum/default.nix b/pkgs/development/python-modules/pendulum/default.nix
new file mode 100644
index 0000000000000..e75a264de3db8
--- /dev/null
+++ b/pkgs/development/python-modules/pendulum/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchPypi, buildPythonPackage, dateutil, pytzdata, tzlocal }:
+
+buildPythonPackage rec {
+  pname = "pendulum";
+  version = "1.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1j6hdsdhhw4d6fy9byr0vyxqnb53ap8bh2a0cibl7p0ks0zvb14j";
+  };
+
+  propagatedBuildInputs = [ dateutil pytzdata tzlocal ];
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python datetimes made easy";
+    homepage = https://github.com/sdispater/pendulum;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index 69808a7bff3b8..14e59ce3a9553 100644
--- a/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/pkgs/development/python-modules/phonenumbers/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.8.8";
+  version = "8.8.9";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ff2f492e49c212bb7185954efe09e68583a67daec586c02c49bc728c343d4eb0";
+    sha256 = "d819299c3aa8f85f248295ab8559e202af429b4017301b122a0b4c387aed10d2";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/progressbar2/default.nix b/pkgs/development/python-modules/progressbar2/default.nix
index 214f81ef0de3c..212c06cc9421f 100644
--- a/pkgs/development/python-modules/progressbar2/default.nix
+++ b/pkgs/development/python-modules/progressbar2/default.nix
@@ -14,6 +14,7 @@
 , pytestcov
 , pytestcache
 , pep8
+, pytestrunner
 }:
 
 buildPythonPackage rec {
@@ -30,6 +31,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ python-utils ];
+  nativeBuildInputs = [ pytestrunner ];
   checkInputs = [
     pytest sphinx coverage execnet flake8 pytestpep8 pytestflakes pytestcov
     pytestcache pep8
@@ -37,7 +39,7 @@ buildPythonPackage rec {
   # ignore tests on the nix wrapped setup.py and don't flake .eggs directory
   checkPhase = ''
     runHook preCheck
-    ${python.interpreter} setup.py test --addopts "--ignore=nix_run_setup.py --ignore=.eggs"
+    ${python.interpreter} setup.py test --addopts "--ignore=.eggs"
     runHook postCheck
   '';
 
diff --git a/pkgs/development/python-modules/prov/default.nix b/pkgs/development/python-modules/prov/default.nix
new file mode 100644
index 0000000000000..9dac8677c33bd
--- /dev/null
+++ b/pkgs/development/python-modules/prov/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, lxml
+, networkx
+, dateutil
+, six
+, pydotplus
+, rdflib
+}:
+
+buildPythonPackage rec {
+  pname = "prov";
+  version = "1.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7a2d72b0df43cd9c6e374d815c8ce3cd5ca371d54f98f837853ac9fcc98aee4c";
+  };
+
+  propagatedBuildInputs = [
+    lxml
+    networkx
+    dateutil
+    six
+    pydotplus
+    rdflib
+  ];
+  doCheck = false; # takes ~60 mins
+
+  meta = with stdenv.lib; {
+    description = "A Python library for W3C Provenance Data Model (PROV)";
+    homepage = https://github.com/trungdong/prov;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ashgillman ];
+  };
+}
diff --git a/pkgs/development/python-modules/pydotplus/default.nix b/pkgs/development/python-modules/pydotplus/default.nix
new file mode 100644
index 0000000000000..03b594a131a0b
--- /dev/null
+++ b/pkgs/development/python-modules/pydotplus/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyparsing
+, graphviz
+}:
+
+buildPythonPackage rec {
+  pname = "pydotplus";
+  version = "2.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1i05cnk3yh722fdyaq0asr7z9xf7v7ikbmnpxa8j6pdqx6g5xs4i";
+  };
+
+  propagatedBuildInputs = [
+    pyparsing
+    graphviz
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/erocarrera/pydot;
+    description = "An improved version of the old pydot project that provides a Python Interface to Graphviz’s Dot language";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ashgillman ];
+  };
+}
diff --git a/pkgs/development/python-modules/pylast/default.nix b/pkgs/development/python-modules/pylast/default.nix
index 1fcc721150498..e9b4db49dbd9b 100644
--- a/pkgs/development/python-modules/pylast/default.nix
+++ b/pkgs/development/python-modules/pylast/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "2.0.0";
+  version = "2.1.0";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e4d4962aa12d67bd357e1aa596a146b2e97afd943b5c9257e555014d13b3065";
+    sha256 = "b9b51dc40a7d3ac3eee17ab5b462b8efb7f2c2ff195261ea846ae4e1168e1c5b";
   };
 
   propagatedBuildInputs = [ certifi six ];
diff --git a/pkgs/development/python-modules/pylti/default.nix b/pkgs/development/python-modules/pylti/default.nix
new file mode 100644
index 0000000000000..8d61c2bf9e989
--- /dev/null
+++ b/pkgs/development/python-modules/pylti/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, httplib2
+, oauth
+, oauth2
+, semantic-version
+, flask
+, httpretty
+, oauthlib
+, pyflakes
+, pytest
+, pytestcache
+, pytestcov
+, covCore
+, pytestflakes
+, pytestpep8
+, sphinx
+, mock
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "PyLTI";
+  version = "0.5.1";
+
+  disabled = !isPy27;
+
+  # There is no need to fix mock. https://github.com/mitodl/pylti/pull/48
+  postPatch = ''
+    substituteInPlace setup.py --replace "mock==1.0.1" "mock"
+  '';
+
+  propagatedBuildInputs = [ httplib2 oauth oauth2 semantic-version ];
+  checkInputs = [
+    flask httpretty oauthlib pyflakes pytest pytestcache pytestcov covCore
+    pytestflakes pytestpep8 sphinx mock
+  ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "32093d961bf95e508bf27667289155da1e082ed9989bb84a76c54c6974c941e1";
+  };
+
+  meta = {
+    description = "Implementation of IMS LTI interface that works with edX";
+    homepage = "https://github.com/mitodl/pylti";
+    license = lib.licenses.bsdOriginal;
+    maintainers = with lib.maintainers; [ layus ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/pyodbc/default.nix b/pkgs/development/python-modules/pyodbc/default.nix
index b236715a5d654..0fab9979aaca4 100644
--- a/pkgs/development/python-modules/pyodbc/default.nix
+++ b/pkgs/development/python-modules/pyodbc/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pyodbc";
-  version = "4.0.21";
+  version = "4.0.22";
   name = "${pname}-${version}";
   disabled = isPyPy;  # use pypypdbc instead
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9655f84ca9e5cb2dfffff705601017420c840d55271ba62dd44f05383eff0329";
+    sha256 = "e2d742b42c8b92b10018c51d673fe72d925ab90d4dbaaccd4f209e10e228ba73";
   };
 
   buildInputs = [ libiodbc ];
diff --git a/pkgs/development/python-modules/pyopencl/default.nix b/pkgs/development/python-modules/pyopencl/default.nix
index 07ff8735b52fb..a2d019374c963 100644
--- a/pkgs/development/python-modules/pyopencl/default.nix
+++ b/pkgs/development/python-modules/pyopencl/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyopencl";
-  version = "2017.2.2";
+  version = "2018.1";
 
   checkInputs = [ pytest ];
   buildInputs = [ opencl-headers ocl-icd ];
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d2f7b04d2e819c6e90d6366b7712a7452a39fba218e51b11b02c85ab07fd2983";
+    sha256 = "b692966bbaaa65ef8949ee25660d6b0cc7cbadc7f4a35eb9c5139dfa4dde6d4a";
   };
 
   # py.test is not needed during runtime, so remove it from `install_requires`
diff --git a/pkgs/development/python-modules/pyte/default.nix b/pkgs/development/python-modules/pyte/default.nix
index 2bd7107058152..ed408feec811b 100644
--- a/pkgs/development/python-modules/pyte/default.nix
+++ b/pkgs/development/python-modules/pyte/default.nix
@@ -3,8 +3,6 @@
 buildPythonPackage rec {
   pname = "pyte";
   version = "0.7.0";
-  name  = "${pname}-${version}";
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "1an54hvyjm8gncx8cgabz9mkpgjkdb0bkyjlkh7g7f94nr3wnfl7";
diff --git a/pkgs/development/python-modules/pytest-flake8/default.nix b/pkgs/development/python-modules/pytest-flake8/default.nix
index 2b615e5820e96..d79f32a676623 100644
--- a/pkgs/development/python-modules/pytest-flake8/default.nix
+++ b/pkgs/development/python-modules/pytest-flake8/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   };
 
   checkPhase = ''
-    pytest --ignore=nix_run_setup.py .
+    pytest .
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/pytest-httpbin/default.nix b/pkgs/development/python-modules/pytest-httpbin/default.nix
index 6f6f79109d9b0..caa2c27e3f85d 100644
--- a/pkgs/development/python-modules/pytest-httpbin/default.nix
+++ b/pkgs/development/python-modules/pytest-httpbin/default.nix
@@ -11,21 +11,17 @@
 
 buildPythonPackage rec {
   pname = "pytest-httpbin";
-  name = "${pname}-${version}";
-  version = "0.2.3";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "kevin1024";
     repo = "pytest-httpbin";
     rev = "v${version}";
-    sha256 = "0j3n12jjy8cm0va8859wqra6abfyajrgh2qj8bhcngf3a72zl9ks";
+    sha256 = "0p86ljx775gxxicscs1dydmmx92r1g9bs00vdvxrsl3qdll1ksfm";
   };
 
-  checkPhase = ''
-    py.test -k "not test_chunked_encoding"
-  '';
+  checkInputs = [ pytest ];
 
-  buildInputs = [ pytest ];
   propagatedBuildInputs = [ flask decorator httpbin six requests ];
 
   meta = {
diff --git a/pkgs/development/python-modules/pytest-xdist/default.nix b/pkgs/development/python-modules/pytest-xdist/default.nix
index 2e2975e65968a..d671fd9654a4f 100644
--- a/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -3,11 +3,11 @@
 buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "pytest-xdist";
-  version = "1.21.0";
+  version = "1.22.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b8622435e3c0650a8d5a07b73a7f9c4f79b52d7ed060536a6041f0da423ba8e";
+    sha256 = "65228a859191f2c74ee68c127317eefe35eedd3d43fc1431f19240663b0cafcd";
   };
 
   buildInputs = [ pytest setuptools_scm pytest-forked];
diff --git a/pkgs/development/python-modules/pytest/2_7.nix b/pkgs/development/python-modules/pytest/2_7.nix
deleted file mode 100644
index e63c3f5ebbd61..0000000000000
--- a/pkgs/development/python-modules/pytest/2_7.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, pkgs, buildPythonPackage, fetchurl, isPy26, argparse, py, selenium }:
-buildPythonPackage rec {
-  pname = "pytest";
-  version = "2.7.3";
-  name = pname + "-" + version;
-
-  src = fetchurl {
-    url = "mirror://pypi/p/pytest/${name}.tar.gz";
-    sha256 = "1z4yi986f9n0p8qmzmn21m21m8j1x78hk3505f89baqm6pdw7afm";
-  };
-
-  # Disabled temporarily because of Hydra issue with namespaces
-  doCheck = false;
-
-  preCheck = ''
-    # don't test bash builtins
-    rm testing/test_argcomplete.py
-  '';
-
-  propagatedBuildInputs = [ py ]
-    ++ (stdenv.lib.optional isPy26 argparse)
-    ++ stdenv.lib.optional
-      pkgs.config.pythonPackages.pytest.selenium or false
-      selenium;
-
-  meta = with stdenv.lib; {
-    maintainers = with maintainers; [ domenkozar lovek323 madjar ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/python-modules/pytest/2_8.nix b/pkgs/development/python-modules/pytest/2_8.nix
deleted file mode 100644
index 963154b11ce1d..0000000000000
--- a/pkgs/development/python-modules/pytest/2_8.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, pkgs, buildPythonPackage, fetchurl, isPy26, argparse, py, selenium }:
-buildPythonPackage rec {
-  pname = "pytest";
-  version = "2.8.7";
-  name = pname + "-" + version;
-
-  src = fetchurl {
-    url = "mirror://pypi/p/pytest/${name}.tar.gz";
-    sha256 = "1bwb06g64x2gky8x5hcrfpg6r351xwvafimnhm5qxq7wajz8ck7w";
-  };
-
-  # Disabled temporarily because of Hydra issue with namespaces
-  doCheck = false;
-
-  preCheck = ''
-    # don't test bash builtins
-    rm testing/test_argcomplete.py
-  '';
-
-  propagatedBuildInputs = [ py ]
-    ++ (stdenv.lib.optional isPy26 argparse)
-    ++ stdenv.lib.optional
-      pkgs.config.pythonPackages.pytest.selenium or false
-      selenium;
-
-  meta = with stdenv.lib; {
-    maintainers = with maintainers; [ domenkozar lovek323 madjar ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/python-modules/pytest/2_9.nix b/pkgs/development/python-modules/pytest/2_9.nix
deleted file mode 100644
index 2d28517441b0d..0000000000000
--- a/pkgs/development/python-modules/pytest/2_9.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, pkgs, buildPythonPackage, fetchurl, isPy26, argparse, py, selenium }:
-buildPythonPackage rec {
-  pname = "pytest";
-  version = "2.9.2";
-  name = pname + "-" + version;
-
-  src = fetchurl {
-    url = "mirror://pypi/p/pytest/${name}.tar.gz";
-    sha256 = "1n6igbc1b138wx1q5gca4pqw1j6nsyicfxds5n0b5989kaxqmh8j";
-  };
-
-  # Disabled temporarily because of Hydra issue with namespaces
-  doCheck = false;
-
-  preCheck = ''
-    # don't test bash builtins
-    rm testing/test_argcomplete.py
-  '';
-
-  propagatedBuildInputs = [ py ]
-    ++ (stdenv.lib.optional isPy26 argparse)
-    ++ stdenv.lib.optional
-      pkgs.config.pythonPackages.pytest.selenium or false
-      selenium;
-
-  meta = with stdenv.lib; {
-    maintainers = with maintainers; [ domenkozar lovek323 madjar ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/python-modules/pytest/3_0.nix b/pkgs/development/python-modules/pytest/3_0.nix
deleted file mode 100644
index 487fe1b73c76d..0000000000000
--- a/pkgs/development/python-modules/pytest/3_0.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy26, argparse, hypothesis, py
-, setuptools_scm
-}:
-buildPythonPackage rec {
-  version = "3.0.7";
-  pname = "pytest";
-  name = "${pname}-${version}";
-
-  preCheck = ''
-    # don't test bash builtins
-    rm testing/test_argcomplete.py
-  '';
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b70696ebd1a5e6b627e7e3ac1365a4bc60aaf3495e843c1e70448966c5224cab";
-  };
-
-  buildInputs = [ hypothesis setuptools_scm ];
-  propagatedBuildInputs = [ py ]
-    ++ (stdenv.lib.optional isPy26 argparse);
-
-  meta = with stdenv.lib; {
-    maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
-    platforms = platforms.unix;
-  };
-}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/pytest/3_2.nix b/pkgs/development/python-modules/pytest/3_2.nix
deleted file mode 100644
index d7a0b1bdad34e..0000000000000
--- a/pkgs/development/python-modules/pytest/3_2.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy26, argparse, hypothesis, py
-, setuptools_scm, setuptools
-}:
-buildPythonPackage rec {
-  version = "3.2.5";
-  pname = "pytest";
-
-  preCheck = ''
-    # don't test bash builtins
-    rm testing/test_argcomplete.py
-  '';
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6d5bd4f7113b444c55a3bbb5c738a3dd80d43563d063fc42dcb0aaefbdd78b81";
-  };
-
-  checkInputs = [ hypothesis ];
-  buildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ py setuptools ]
-    ++ (stdenv.lib.optional isPy26 argparse);
-
-  meta = with stdenv.lib; {
-    maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
-    platforms = platforms.unix;
-  };
-}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/pytestrunner/default.nix b/pkgs/development/python-modules/pytestrunner/default.nix
new file mode 100644
index 0000000000000..67af195b68a65
--- /dev/null
+++ b/pkgs/development/python-modules/pytestrunner/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm, pytest }:
+
+buildPythonPackage rec {
+  pname = "pytest-runner";
+  version = "3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "00v7pi09q60yx0l1kzyklnmr5bp597mir85a9gsi7bdfyly3lz0g";
+  };
+
+  buildInputs = [ setuptools_scm pytest ];
+
+  meta = with stdenv.lib; {
+    description = "Invoke py.test as distutils command with dependency resolution";
+    homepage = https://bitbucket.org/pytest-dev/pytest-runner;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/python-utils/default.nix b/pkgs/development/python-modules/python-utils/default.nix
index a7826758af050..654b851b66354 100644
--- a/pkgs/development/python-modules/python-utils/default.nix
+++ b/pkgs/development/python-modules/python-utils/default.nix
@@ -23,7 +23,6 @@ buildPythonPackage rec {
   doCheck = false;
 
   checkPhase = ''
-    rm nix_run_setup.py
     py.test
   '';
 
diff --git a/pkgs/development/python-modules/pytzdata/default.nix b/pkgs/development/python-modules/pytzdata/default.nix
new file mode 100644
index 0000000000000..6de0431edb36d
--- /dev/null
+++ b/pkgs/development/python-modules/pytzdata/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchPypi, buildPythonPackage }:
+
+buildPythonPackage rec {
+  pname = "pytzdata";
+  version = "2017.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wi3jh39zsa9iiyyhynhj7w5b2p9wdyd0ppavpsrmf3wxvr7cwz8";
+  };
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Timezone database for Python";
+    homepage = https://github.com/sdispater/pytzdata;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/raven/default.nix b/pkgs/development/python-modules/raven/default.nix
index 6f1a8d9904eca..b6cc70ed787c4 100644
--- a/pkgs/development/python-modules/raven/default.nix
+++ b/pkgs/development/python-modules/raven/default.nix
@@ -1,20 +1,19 @@
-{ lib, buildPythonPackage, fetchurl, isPy3k, contextlib2 }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, contextlib2, blinker }:
 
 buildPythonPackage rec {
   pname = "raven";
   version = "6.5.0";
-  name = pname + "-" + version;
 
-  src = fetchurl {
-    url = "mirror://pypi/r/raven/${name}.tar.gz";
-    sha256 = "0fsgdq1dcjh33rqg5fkzg9b86zhpsvzrdwl84ggin69r8w8pbnl4";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "84da75114739191bdf2388f296ffd6177e83567a7fbaf2701e034ad6026e4f3b";
   };
 
   # way too many dependencies to run tests
   # see https://github.com/getsentry/raven-python/blob/master/setup.py
   doCheck = false;
 
-  propagatedBuildInputs = lib.optionals (!isPy3k) [ contextlib2 ];
+  propagatedBuildInputs = [ blinker ] ++ lib.optionals (!isPy3k) [ contextlib2 ];
 
   meta = {
     description = "A Python client for Sentry (getsentry.com)";
diff --git a/pkgs/development/python-modules/regex/default.nix b/pkgs/development/python-modules/regex/default.nix
index a1349ae5c36d2..c6279f5e7c410 100644
--- a/pkgs/development/python-modules/regex/default.nix
+++ b/pkgs/development/python-modules/regex/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "regex";
-  version = "2017.12.12";
+  version = "2018.01.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee069308c2757e565cc2b6f417ba5288e76cfe4c1764b6826063f4fbd53219d7";
+    sha256 = "139678fc013b75e486e580c39b4c52d085ed7362e400960f8be1711a414f16b5";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/schema/default.nix b/pkgs/development/python-modules/schema/default.nix
index 2c57ce2958256..2c8e63e5ed2f0 100644
--- a/pkgs/development/python-modules/schema/default.nix
+++ b/pkgs/development/python-modules/schema/default.nix
@@ -3,12 +3,12 @@
 buildPythonPackage rec {
 
   pname = "schema";
-  version = "0.6.6";
+  version = "0.6.7";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lw28j9w9vxyigg7vkfkvi6ic9lgjkdnfvnxdr7pklslqvzmk2vm";
+    sha256 = "410f44cb025384959d20deef00b4e1595397fa30959947a4f0d92e9c84616f35";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/secp256k1/default.nix b/pkgs/development/python-modules/secp256k1/default.nix
new file mode 100644
index 0000000000000..6b9f00783fd26
--- /dev/null
+++ b/pkgs/development/python-modules/secp256k1/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pkgconfig
+, pytest
+, pytestrunner
+, cffi
+, secp256k1
+}:
+
+buildPythonPackage rec {
+  pname = "secp256k1";
+  version = "0.13.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a3b43e02d321c09eafa769a6fc2c156f555cab3a7db62175ef2fd21e16cdf20c";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  checkInputs = [ pytest pytestrunner ];
+  propagatedBuildInputs = [ cffi secp256k1 ];
+
+  # Tests are not included in archive
+  doCheck = false;
+
+  preConfigure = ''
+    cp -r ${secp256k1.src} libsecp256k1
+    touch libsecp256k1/autogen.sh
+    export INCLUDE_DIR=${secp256k1}/include
+    export LIB_DIR=${secp256k1}/lib
+  '';
+
+  checkPhase = ''
+    py.test tests
+  '';
+
+  postPatch = ''
+    substituteInPlace setup.py --replace ", 'pytest-runner==2.6.2'" ""
+  '';
+
+  meta = {
+    homepage = https://github.com/ludbb/secp256k1-py;
+    description = "Python FFI bindings for secp256k1";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ chris-martin ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix
index e83ab1c724aac..6f3d0b3c117b1 100644
--- a/pkgs/development/python-modules/sphinx/default.nix
+++ b/pkgs/development/python-modules/sphinx/default.nix
@@ -27,10 +27,10 @@
 buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "Sphinx";
-  version = "1.6.5";
+  version = "1.6.6";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6de5dbdbb7a0d7d2757f4389cc00e8f6eb3c49e1772378967a12cfcf2cfe098";
+    sha256 = "c39a6fa41bd3ec6fc10064329a664ed3a3ca2e27640a823dc520c682e4433cdb";
   };
   LC_ALL = "en_US.UTF-8";
 
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index 488e78cb4ee44..175aa4a6c3abe 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchPypi
 , buildPythonPackage
-, pytest_30
+, pytest
 , mock
 , pytest_xdist
 , isPy3k
@@ -11,15 +11,15 @@
 buildPythonPackage rec {
   pname = "SQLAlchemy";
   name = "${pname}-${version}";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7dda3e0b1b12215e3bb05368d1abbf7d747112a43738e0a4e6deb466b83fd88e";
+    sha256 = "9ede7070d6fd18f28058be88296ed67893e2637465516d6a596cd9afea97b154";
   };
 
   checkInputs = [
-    pytest_30
+    pytest
     mock
 #     Disable pytest_xdist tests for now, because our version seems to be too new.
 #     pytest_xdist
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index e2a88a9f10b5b..22c047fc54e2b 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "1.77.0";
+  version = "1.77.1";
   name = "${pname}-${version}";
 
   # Tests require network connectivity and there's no easy way to disable
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6503851d2309dd9c1307e3f0a1cb33ac1427fee25d38ecba1f8bf73a0d74defc";
+    sha256 = "d1c638b417301849ff4ee0327332cfdec96edda83c79b08af307339138077d59";
   };
 
   buildInputs = [ unittest2 mock ];
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index 3acc42ce2cc31..b0c3131785f3e 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "0.13.0";
+  version = "0.13.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rqx2bar6dcsbmzq68mjh5bsyjzhbkqxi2dsv7j0vdbnjs5dfq9q";
+    sha256 = "43d3903e8ea4542aaa4759ec3683641555d3a15e68fa5a41aaf14cce4110641a";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/tiros/default.nix b/pkgs/development/python-modules/tiros/default.nix
index a620c6eb58df1..7bf21b0252196 100644
--- a/pkgs/development/python-modules/tiros/default.nix
+++ b/pkgs/development/python-modules/tiros/default.nix
@@ -5,11 +5,11 @@
 buildPythonPackage rec {
   pname = "tiros";
   name = "${pname}-${version}";
-  version = "1.0.40";
+  version = "1.0.42";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "841ca13564e3cddfd1404cbc60b3433bcc1e31c2753ecea20d0ad68173b80169";
+    sha256 = "d0f9bc6d463654c971a78e02a3159ec62a2db684a217a7e940e66d4a381bdd52";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index faca6edace5e1..5a32a64c29625 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -4,8 +4,6 @@
 buildPythonPackage rec {
   pname = "twilio";
   version = "6.8.0";
-  name = "${pname}-${version}";
-
   # tests not included in PyPi, so fetch from github instead
   src = fetchFromGitHub {
     owner = "twilio";
diff --git a/pkgs/development/python-modules/uncertainties/default.nix b/pkgs/development/python-modules/uncertainties/default.nix
index e60ed958223b2..d90ada6063216 100644
--- a/pkgs/development/python-modules/uncertainties/default.nix
+++ b/pkgs/development/python-modules/uncertainties/default.nix
@@ -3,11 +3,11 @@
 buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "uncertainties";
-  version = "3.0.1";
+  version = "3.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "de0765cac6911e5afa93ee941063a07b4a98dbd9c314c5eea4ab14bfff0054a4";
+    sha256 = "91db922d54dff6094b4ea0d6e058f713a992cdf42e3ebaf73278e1893bfa2942";
   };
 
   buildInputs = [ nose numpy ];
diff --git a/pkgs/development/python-modules/whitenoise/default.nix b/pkgs/development/python-modules/whitenoise/default.nix
new file mode 100644
index 0000000000000..d2359b2195f01
--- /dev/null
+++ b/pkgs/development/python-modules/whitenoise/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchPypi, buildPythonPackage }:
+
+buildPythonPackage rec {
+  pname = "whitenoise";
+  version = "4.0b4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ra2bbsihwfhnf1ibahzzabgfjfghxqcrbfx6r5r50mlil5n8bf4";
+  };
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Radically simplified static file serving for WSGI applications";
+    homepage = http://whitenoise.evans.io/;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/xvfbwrapper/default.nix b/pkgs/development/python-modules/xvfbwrapper/default.nix
new file mode 100644
index 0000000000000..4ba9cd61d4c5b
--- /dev/null
+++ b/pkgs/development/python-modules/xvfbwrapper/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, xorgserver
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "xvfbwrapper";
+  version = "0.2.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "097wxhvp01ikqpg1z3v8rqhss6f1vwr399zpz9a05d2135bsxx5w";
+  };
+  propagatedBuildInputs = [ xorgserver ];
+
+  checkInputs = [ mock ];
+
+  meta = with stdenv.lib; {
+    description = "Run headless display inside X virtual framebuffer (Xvfb)";
+    homepage = https://github.com/cgoldberg/xvfbwrapper;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ashgillman ];
+  };
+}
diff --git a/pkgs/development/python-modules/yapf/default.nix b/pkgs/development/python-modules/yapf/default.nix
index d7617ae1551be..05913ab61c5eb 100644
--- a/pkgs/development/python-modules/yapf/default.nix
+++ b/pkgs/development/python-modules/yapf/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "yapf";
-  version = "0.20.0";
+  version = "0.20.1";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ff28f8839a9a105854a099026a33f4cbec8bd933554bfed658aec359bfc88ae8";
+    sha256 = "bd19f246be7193ad2acdc04702b92315f1ae28d49c82f6671afdeefe9d32f468";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/yarl/default.nix b/pkgs/development/python-modules/yarl/default.nix
index cf95803d5af40..fe6b806ab7175 100644
--- a/pkgs/development/python-modules/yarl/default.nix
+++ b/pkgs/development/python-modules/yarl/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "yarl";
-  version = "0.17.0";
+  version = "1.0.0";
   name = "${pname}-${version}";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e4e1aec650ad80e73e7063941cd8aadb48e72487ec680a093ad364cc61efe64";
+    sha256 = "5ea610467a04d99bfc8878186330b28859eafc6ca589cdd24ba6fb7234c4b011";
   };
 
   checkInputs = [ pytest pytestrunner ];
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index fa9bcebdee157..bad9ccae799dd 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -18,20 +18,20 @@ let
     name = "${pname}-${version}";
     pname = "colorama";
     version = "0.3.7";
-    src = fetchPypi {
-      inherit pname version;
+    src = old.src.override {
+      inherit version;
       sha256 = "0avqkn6362v7k2kg3afb35g4sfdvixjgy890clip4q174p9whhz0";
     };
   });
 
 in buildPythonPackage rec {
   pname = "awscli";
-  version = "1.14.22";
+  version = "1.14.29";
   namePrefix = "";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13pivyyivwb3xy0l45083gcman2b0xiv00fl9ww0m8jccgxsdzd0";
+    sha256 = "96edb1dd72fbc13638967fe07c436e95133169759cc962b973bb79ba959bc652";
   };
 
   # No tests included
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index 19b375137e484..eb40dfefb83c7 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -41,9 +41,6 @@ python3Packages.buildPythonApplication rec {
     cp -R docs/_build/man $out/share/man/man1
   '';
 
-  # tests fail due to missing test command in nix_run_setup.py
-  doCheck = false;
-
   meta = with stdenv.lib; {
     description = "A deduplicating backup program (attic fork)";
     homepage = https://borgbackup.github.io/;
diff --git a/pkgs/tools/misc/tmuxp/default.nix b/pkgs/tools/misc/tmuxp/default.nix
index 24486980b4ba5..33a4ebd70b373 100644
--- a/pkgs/tools/misc/tmuxp/default.nix
+++ b/pkgs/tools/misc/tmuxp/default.nix
@@ -1,26 +1,29 @@
-{ stdenv, fetchurl, pythonPackages }:
+{ stdenv, fetchurl, python }:
 
-pythonPackages.buildPythonApplication rec {
-  name = "tmuxp-${version}";
-  version = "1.3.4";
+with python.pkgs;
 
-  namePrefix = "";
+buildPythonApplication rec {
+  pname = "tmuxp";
+  version = "1.3.5";
 
-  src = fetchurl {
-    url = "mirror://pypi/t/tmuxp/${name}.tar.gz";
-    sha256 = "149n35rr27n2c6yna1bla20x3w1zz9gxnjj3m3xxdfp4fbsd2y31";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "bdbbbf5980d6ec21838396a46cd5b599787e8540782b8e2e3f20d2135560a5d3";
   };
 
-  patchPhase = ''
+  postPatch = ''
     sed -i 's/==.*$//' requirements/base.txt requirements/test.txt
   '';
 
-  buildInputs = with pythonPackages; [
-    pytest_29
+  checkInputs = [
+    pytest
     pytest-rerunfailures
   ];
 
-  propagatedBuildInputs = with pythonPackages; [
+  # No tests in archive
+  doCheck = false;
+
+  propagatedBuildInputs = [
     click colorama kaptan libtmux
   ];
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 81350b8fcc0b1..b9e2465cc0120 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -414,6 +414,8 @@ with pkgs;
 
   aescrypt = callPackage ../tools/misc/aescrypt { };
 
+  afew = callPackage ../applications/networking/mailreaders/afew { pythonPackages = python3Packages; };
+
   afio = callPackage ../tools/archivers/afio { };
 
   afl = callPackage ../tools/security/afl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 16b143f62f5ff..a7e47b0c51703 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -390,8 +390,6 @@ in {
 
   adal = callPackage ../development/python-modules/adal { };
 
-  afew = callPackage ../development/python-modules/afew { };
-
   aiodns = callPackage ../development/python-modules/aiodns { };
 
   aiofiles = callPackage ../development/python-modules/aiofiles { };
@@ -1746,38 +1744,7 @@ in {
 
   httpserver = callPackage ../development/python-modules/httpserver {};
 
-  bleach = buildPythonPackage rec {
-    pname = "bleach";
-    version = "2.0.0";
-    name = "${pname}-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${name}.tar.gz";
-      sha256 = "0c5w7hh70lqzca7ir71j891csvch1899r8q09zgswk1y00q22lmr";
-    };
-
-    buildInputs = with self; [ pytest pytestrunner ];
-    propagatedBuildInputs = with self; [ six html5lib ];
-
-    meta = {
-      description = "An easy, HTML5, whitelisting HTML sanitizer";
-      longDescription = ''
-        Bleach is an HTML sanitizing library that escapes or strips markup and
-        attributes based on a white list. Bleach can also linkify text safely,
-        applying filters that Django's urlize filter cannot, and optionally
-        setting rel attributes, even on links already in the text.
-
-        Bleach is intended for sanitizing text from untrusted sources. If you
-        find yourself jumping through hoops to allow your site administrators
-        to do lots of things, you're probably outside the use cases. Either
-        trust those users, or don't.
-      '';
-      homepage = https://github.com/mozilla/bleach;
-      downloadPage = https://github.com/mozilla/bleach/releases;
-      license = licenses.asl20;
-      maintainers = with maintainers; [ prikhi ];
-    };
-  };
+  bleach = callPackage ../development/python-modules/bleach { };
 
   # needed for tensorflow-tensorboard
   bleach_1_5_0 = self.bleach.overridePythonAttrs rec {
@@ -2440,32 +2407,7 @@ in {
 
   click-plugins = callPackage ../development/python-modules/click-plugins {};
 
-  click-threading = buildPythonPackage rec {
-    version = "0.4.2";
-    name = "click-threading-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/click-threading/${name}.tar.gz";
-      sha256 = "400b0bb63d9096b6bf2806efaf742a1cc8b6c88e0484f0afe7d7a7f0e9870609";
-    };
-
-    checkInputs = with self; [ pytest_29 ];
-    propagatedBuildInputs = with self; [ click ] ++ optional (!isPy3k) futures;
-
-    checkPhase = ''
-      py.test
-    '';
-
-    # Tests are broken on 3.x
-    doCheck = !isPy3k;
-
-    meta = {
-      homepage = https://github.com/click-contrib/click-threading/;
-      description = "Multithreaded Click apps made easy";
-      license = licenses.mit;
-      maintainers = with maintainers; [ ];
-    };
-  };
+  click-threading = callPackage ../development/python-modules/click-threading {};
 
   cligj = callPackage ../development/python-modules/cligj { };
 
@@ -3276,28 +3218,6 @@ in {
 
   pytest = self.pytest_33;
 
-  pytest_27 = callPackage ../development/python-modules/pytest/2_7.nix {};
-
-  pytest_28 = callPackage ../development/python-modules/pytest/2_8.nix {};
-
-  pytest_29 = callPackage ../development/python-modules/pytest/2_9.nix {};
-
-  pytest_30 = callPackage ../development/python-modules/pytest/3_0.nix {
-    hypothesis = self.hypothesis.override {
-      # hypothesis requires pytest that causes dependency cycle
-      doCheck = false;
-      pytest = null;
-    };
-  };
-
-  pytest_32 = callPackage ../development/python-modules/pytest/3_2.nix{
-    hypothesis = self.hypothesis.override {
-      # hypothesis requires pytest that causes dependency cycle
-      doCheck = false;
-      pytest = null;
-    };
-  };
-
   pytest_33 = callPackage ../development/python-modules/pytest/default.nix{
     hypothesis = self.hypothesis.override {
       # hypothesis requires pytest that causes dependency cycle
@@ -3492,26 +3412,7 @@ in {
     };
   };
 
-  pytestrunner = buildPythonPackage rec {
-    version = "2.6.2";
-    name = "pytest-runner-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pytest-runner/${name}.tar.gz";
-      sha256 = "e775a40ee4a3a1d45018b199c44cc20bbe7f3df2dc8882f61465bb4141c78cdb";
-    };
-
-    buildInputs = with self; [setuptools_scm pytest];
-
-    meta = {
-      description = "Invoke py.test as distutils command with dependency resolution";
-      homepage = https://bitbucket.org/pytest-dev/pytest-runner;
-      license = licenses.mit;
-    };
-
-    # Trying to run tests fails with # RuntimeError: dictionary changed size during iteration
-    doCheck = false;
-  };
+  pytestrunner = callPackage ../development/python-modules/pytestrunner { };
 
   pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
 
@@ -5660,35 +5561,7 @@ in {
     };
   };
 
-  PyLTI = buildPythonPackage rec {
-    version = "0.4.1";
-    name = "PyLTI-${version}";
-
-    disabled = !isPy27;
-
-    # There is no need to fix mock. https://github.com/mitodl/pylti/pull/48
-    postPatch = ''
-      substituteInPlace setup.py --replace "mock==1.0.1" "mock"
-    '';
-
-    propagatedBuildInputs = with self; [ httplib2 oauth oauth2 semantic-version ];
-    buildInputs = with self; [
-      flask httpretty oauthlib pyflakes pytest_27 pytestcache pytestcov covCore
-      pytestflakes pytestpep8 sphinx mock
-    ];
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/P/PyLTI/${name}.tar.gz";
-      sha256 = "076llj10j85zw3zq2gygx2pcfqi9rgcld5m4vq1iai1fk15x60fz";
-    };
-
-    meta = {
-      description = "Implementation of IMS LTI interface that works with edX";
-      homepage = "https://github.com/mitodl/pylti";
-      license = licenses.bsdOriginal;
-      maintainers = with maintainers; [ layus ];
-    };
-  };
+  PyLTI = callPackage ../development/python-modules/pylti { };
 
   lmdb = buildPythonPackage rec {
     pname = "lmdb";
@@ -6180,6 +6053,8 @@ in {
     };
   };
 
+  prov = callPackage ../development/python-modules/prov { };
+
   pudb = buildPythonPackage rec {
     name = "pudb-2016.2";
 
@@ -6277,6 +6152,8 @@ in {
     inherit (pkgs.stdenv) mkDerivation;
   };
 
+  pydotplus = callPackage ../development/python-modules/pydotplus { };
+
   pyphen = callPackage ../development/python-modules/pyphen {};
 
   pypoppler = buildPythonPackage rec {
@@ -7155,6 +7032,8 @@ in {
 
   chardet = callPackage ../development/python-modules/chardet { };
 
+  crayons = callPackage ../development/python-modules/crayons{ };
+
   django = self.django_1_11;
 
   django_1_11 = callPackage ../development/python-modules/django/1_11.nix {
@@ -8045,12 +7924,16 @@ in {
     };
   };
 
+  flask-common = callPackage ../development/python-modules/flask-common { };
+
   flask-compress = callPackage ../development/python-modules/flask-compress { };
 
   flask-cors = callPackage ../development/python-modules/flask-cors { };
 
   flask_elastic = callPackage ../development/python-modules/flask-elastic { };
 
+  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
+
   flask_login = callPackage ../development/python-modules/flask-login { };
 
   flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
@@ -9841,6 +9724,8 @@ in {
   libxslt = disabledIf isPy3k
     (toPythonModule (pkgs.libxslt.override{pythonSupport=true; python2=python; inherit (self) libxml2;})).py;
 
+  limits = callPackage ../development/python-modules/limits { };
+
   limnoria = buildPythonPackage rec {
     name = "limnoria-${version}";
     version = "2016.05.06";
@@ -10192,6 +10077,8 @@ in {
 
   matrix-client = callPackage ../development/python-modules/matrix-client/default.nix { };
 
+  maya = callPackage ../development/python-modules/maya { };
+
   mccabe = callPackage ../development/python-modules/mccabe { };
 
   mechanize = buildPythonPackage (rec {
@@ -10237,6 +10124,8 @@ in {
 
   meliae = callPackage ../development/python-modules/meliae {};
 
+  meinheld = callPackage ../development/python-modules/meinheld { };
+
   memcached = buildPythonPackage rec {
     name = "memcached-1.51";
 
@@ -10436,6 +10325,8 @@ in {
     };
   };
 
+  pendulum = callPackage ../development/python-modules/pendulum { };
+
   pocket = buildPythonPackage rec {
     name = "pocket-${version}";
     version = "0.3.6";
@@ -10855,14 +10746,6 @@ in {
     ];
     LC_ALL = "en_US.UTF-8";
 
-    # Remove test that fails due to missing encoding in nix_run_setup.py, a
-    # file that buildPythonPackage copies to source trees at build time.
-    # PR with fix: https://github.com/NixOS/nixpkgs/pull/17430
-    # ("python: add file encoding to run_setup.py")
-    preBuild = ''
-      rm tests/test_encoding.py
-    '';
-
     meta = {
       description = "Python multimedia tagging library";
       homepage = http://code.google.com/p/mutagen;
@@ -11340,31 +11223,7 @@ in {
     };
   });
 
-  nibabel = buildPythonPackage rec {
-    version = "2.0.2";
-    name = "nibabel-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/nibabel/${name}.tar.gz";
-      sha256 = "0k8mv5zmwb6vc8kwrydl3pp0pnw937rf5mz10figkxczrw6dkk7h";
-    };
-
-    propagatedBuildInputs = with self; [
-      numpy
-      nose
-    ];
-
-    # Failing tests
-    # nibabel.tests.test_minc1.test_old_namespace
-    # nisext.tests.test_testers.test_back_tick
-    doCheck = false;
-
-    meta = {
-      homepage = http://nipy.org/nibabel/;
-      description = "Access a multitude of neuroimaging data formats";
-      license = licenses.mit;
-    };
-  };
+  nibabel = callPackage ../development/python-modules/nibabel {};
 
   nilearn = callPackage ../development/python-modules/nilearn {};
 
@@ -11413,36 +11272,8 @@ in {
     };
   };
 
-  nipype = buildPythonPackage rec {
-    version = "0.10.0";
-    name = "nipype-${version}";
-
-    # Uses python 2 print. Master seems to be Py3 compatible.
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/nipype/${name}.tar.gz";
-      sha256 = "7fb143cd4d05f18db1cb7f0b83dba13d3dcf55b4eb3d16df08c97033ccae507b";
-    };
-
-    # Tests fail due to getcwd returning ENOENT???
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [
-     numpy
-     dateutil
-     nose
-     traits
-     scipy
-     nibabel
-     networkx
-   ];
-
-    meta = {
-      homepage = http://nipy.org/nipype/;
-      description = "Neuroimaging in Python: Pipelines and Interfaces";
-      license = licenses.bsd3;
-    };
+  nipype = callPackage ../development/python-modules/nipype {
+    inherit (pkgs) which;
   };
 
   nose = buildPythonPackage rec {
@@ -15139,6 +14970,8 @@ in {
     };
   };
 
+  pytzdata = callPackage ../development/python-modules/pytzdata { };
+
   pyutil = buildPythonPackage (rec {
     name = "pyutil-2.0.0";
 
@@ -15627,11 +15460,11 @@ in {
 
 
   rdflib = buildPythonPackage (rec {
-    name = "rdflib-4.1.2";
+    name = "rdflib-4.2.2";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/r/rdflib/${name}.tar.gz";
-      sha256 = "0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w";
+      sha256 = "0398c714znnhaa2x7v51b269hk20iz073knq2mvmqp2ma92z27fs";
     };
 
     # error: invalid command 'test'
@@ -16852,39 +16685,8 @@ in {
     };
   };
 
-  secp256k1 = buildPythonPackage rec {
-    name = "secp256k1-${version}";
-    version = "0.12.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/secp256k1/${name}.tar.gz";
-      sha256 = "0zrjxvzxqm4bz2jcy8sras8jircgbs6dkrw8j3nc6jhvzlikwwxl";
-    };
-
-    nativeBuildInputs = [ pkgs.pkgconfig ];
-    buildInputs = [ self.pytest_28 self.pytestrunner ];
-    propagatedBuildInputs = [ self.cffi pkgs.secp256k1 ];
-
-    # Tests are not included in archive
-    doCheck = false;
-
-    preConfigure = ''
-      cp -r ${pkgs.secp256k1.src} libsecp256k1
-      touch libsecp256k1/autogen.sh
-      export INCLUDE_DIR=${pkgs.secp256k1}/include
-      export LIB_DIR=${pkgs.secp256k1}/lib
-    '';
-
-    checkPhase = ''
-      py.test tests
-    '';
-
-    meta = {
-      homepage = https://github.com/ludbb/secp256k1-py;
-      description = "Python FFI bindings for secp256k1";
-      license = with licenses; [ mit ];
-      maintainers = with maintainers; [ chris-martin ];
-    };
+  secp256k1 = callPackage ../development/python-modules/secp256k1 {
+    inherit (pkgs) secp256k1 pkgconfig;
   };
 
   semantic-version = callPackage ../development/python-modules/semantic-version { };
@@ -17855,11 +17657,11 @@ in {
 
   traits = buildPythonPackage rec {
     name = "traits-${version}";
-    version = "4.5.0";
+    version = "4.6.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/t/traits/${name}.tar.gz";
-      sha256 = "5293a8786030b0b243e059f52004355b6939d7c0f1be2eb5a605b63cca484c84";
+      sha256 = "0w43qv36wnrimlh0nzzgg81315a18yza3vk494wqxf1l19g390jx";
     };
 
     # Use pytest because its easier to discover tests
@@ -17872,7 +17674,7 @@ in {
     # https://github.com/enthought/traits/issues/187
     # https://github.com/enthought/traits/pull/188
     # Furthermore, some tests fail due to being in a chroot
-    doCheck = false;
+    doCheck = isPy33;
 
     propagatedBuildInputs = with self; [ numpy ];
 
@@ -21680,6 +21482,10 @@ EOF
     };
   };
 
+  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper {
+    inherit (pkgs.xorg) xorgserver;
+  };
+
   hidapi = callPackage ../development/python-modules/hidapi {
     inherit (pkgs) udev libusb1;
   };
@@ -22512,6 +22318,8 @@ EOF
 
   vine = callPackage ../development/python-modules/vine { };
 
+  whitenoise = callPackage ../development/python-modules/whitenoise { };
+
   wp_export_parser = buildPythonPackage rec {
     name = "${pname}-${version}";
     pname = "wp_export_parser";