summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/Cython/default.nix12
-rw-r--r--pkgs/development/python-modules/MechanicalSoup/default.nix23
-rw-r--r--pkgs/development/python-modules/bokeh/default.nix6
-rw-r--r--pkgs/development/python-modules/bootstrapped-pip/default.nix2
-rw-r--r--pkgs/development/python-modules/dbus/default.nix3
-rw-r--r--pkgs/development/python-modules/devpi-common/default.nix26
-rw-r--r--pkgs/development/python-modules/django/1.10-gis-libs.template.patch4
-rw-r--r--pkgs/development/python-modules/django/1_11.nix2
-rw-r--r--pkgs/development/python-modules/graph-tool/2.x.x.nix3
-rw-r--r--pkgs/development/python-modules/guzzle_sphinx_theme/default.nix25
-rw-r--r--pkgs/development/python-modules/h5py/default.nix3
-rw-r--r--pkgs/development/python-modules/html5-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/jsmin/default.nix18
-rw-r--r--pkgs/development/python-modules/keras/default.nix15
-rw-r--r--pkgs/development/python-modules/libnacl/default.nix12
-rw-r--r--pkgs/development/python-modules/libsexy/default.nix2
-rw-r--r--pkgs/development/python-modules/numpy/default.nix11
-rw-r--r--pkgs/development/python-modules/pandas/0.17.1.nix79
-rw-r--r--pkgs/development/python-modules/pelican/default.nix10
-rw-r--r--pkgs/development/python-modules/plyfile/default.nix22
-rw-r--r--pkgs/development/python-modules/pycairo/default.nix3
-rw-r--r--pkgs/development/python-modules/pycangjie/default.nix3
-rw-r--r--pkgs/development/python-modules/pygobject/3.nix3
-rw-r--r--pkgs/development/python-modules/pygobject/default.nix3
-rw-r--r--pkgs/development/python-modules/pygtk/default.nix3
-rw-r--r--pkgs/development/python-modules/pygtksourceview/default.nix3
-rw-r--r--pkgs/development/python-modules/pypcap/default.nix42
-rw-r--r--pkgs/development/python-modules/pyqt/4.x.nix3
-rw-r--r--pkgs/development/python-modules/pyqt/5.x.nix4
-rw-r--r--pkgs/development/python-modules/shapely/default.nix6
-rw-r--r--pkgs/development/python-modules/sip/default.nix4
-rw-r--r--pkgs/development/python-modules/spambayes/default.nix21
-rw-r--r--pkgs/development/python-modules/supervise_api/default.nix29
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix12
-rw-r--r--pkgs/development/python-modules/xarray/default.nix10
-rw-r--r--pkgs/development/python-modules/yowsup/argparse-dependency.patch13
-rw-r--r--pkgs/development/python-modules/yowsup/default.nix30
37 files changed, 419 insertions, 53 deletions
diff --git a/pkgs/development/python-modules/Cython/default.nix b/pkgs/development/python-modules/Cython/default.nix
index 22f3579bae3..0513f67e569 100644
--- a/pkgs/development/python-modules/Cython/default.nix
+++ b/pkgs/development/python-modules/Cython/default.nix
@@ -30,10 +30,12 @@ buildPythonPackage rec {
       tests/run/cpdef_enums.pyx
   '';
 
-  buildInputs = [ glibcLocales pkgconfig gdb ];
-  # For testing
-  nativeBuildInputs = [ numpy ncurses ];
-
+  nativeBuildInputs = [
+    pkgconfig
+    # For testing
+    numpy ncurses
+  ];
+  buildInputs = [ glibcLocales gdb ];
   LC_ALL = "en_US.UTF-8";
 
   # cython's testsuite is not working very well with libc++
@@ -54,4 +56,4 @@ buildPythonPackage rec {
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ fridh ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/MechanicalSoup/default.nix b/pkgs/development/python-modules/MechanicalSoup/default.nix
new file mode 100644
index 00000000000..a022fd9fc41
--- /dev/null
+++ b/pkgs/development/python-modules/MechanicalSoup/default.nix
@@ -0,0 +1,23 @@
+{ fetchPypi, buildPythonPackage, lib
+, requests, beautifulsoup4, six }:
+
+
+buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "MechanicalSoup";
+  version = "0.7.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wh93rml446ipx603n5z5i5bpan46pzliq6sw76d0ms9w7w2658d";
+  };
+
+  propagatedBuildInputs = [ requests beautifulsoup4 six ];
+
+  meta = with lib; {
+    description = "A Python library for automating interaction with websites";
+    homepage = https://github.com/hickford/MechanicalSoup;
+    license = licenses.mit;
+    maintainers = [ maintainers.jgillich ];
+  };
+}
diff --git a/pkgs/development/python-modules/bokeh/default.nix b/pkgs/development/python-modules/bokeh/default.nix
index 43c176a09ec..a1ae95e6d5d 100644
--- a/pkgs/development/python-modules/bokeh/default.nix
+++ b/pkgs/development/python-modules/bokeh/default.nix
@@ -34,11 +34,11 @@
 buildPythonPackage rec {
   pname = "bokeh";
   name = "${pname}${version}";
-  version = "0.12.7";
+  version = "0.12.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2c42c95bf1a418c758dbff8446b4f5e5fc72ac10ea5da4e6b5010067396d0880";
+    sha256 = "00jx3yycy6fziihz45hwj1dsh520h3vmypp28mw0877rxpxl2yxg";
   };
 
   disabled = isPyPy;
@@ -79,4 +79,4 @@ buildPythonPackage rec {
     homepage = "http://github.com/bokeh/bokeh";
     license = lib.licenses.bsd3;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/bootstrapped-pip/default.nix b/pkgs/development/python-modules/bootstrapped-pip/default.nix
index 1d41e3fbafd..0cb817844c7 100644
--- a/pkgs/development/python-modules/bootstrapped-pip/default.nix
+++ b/pkgs/development/python-modules/bootstrapped-pip/default.nix
@@ -18,7 +18,7 @@ let
   # https://github.com/NixOS/nixpkgs/issues/26392
   # https://github.com/pypa/setuptools/issues/885
   pkg_resources = fetchurl {
-    url = "https://raw.githubusercontent.com/pypa/setuptools/v36.4.0/pkg_resources/__init__.py";
+    url = "https://raw.githubusercontent.com/pypa/setuptools/v36.0.1/pkg_resources/__init__.py";
     sha256 = "1wdnq3mammk75mifkdmmjx7yhnpydvnvi804na8ym4mj934l2jkv";
   };
 
diff --git a/pkgs/development/python-modules/dbus/default.nix b/pkgs/development/python-modules/dbus/default.nix
index ab6e70a9a64..c8f122098da 100644
--- a/pkgs/development/python-modules/dbus/default.nix
+++ b/pkgs/development/python-modules/dbus/default.nix
@@ -14,7 +14,8 @@ if isPyPy then throw "dbus-python not supported for interpreter ${python.executa
 
   postPatch = "patchShebangs .";
 
-  buildInputs = [ pkgconfig dbus dbus_glib ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ dbus dbus_glib ]
     ++ lib.optionals doCheck [ dbus_tools pygobject3 ]
     # My guess why it's sometimes trying to -lncurses.
     # It seems not to retain the dependency anyway.
diff --git a/pkgs/development/python-modules/devpi-common/default.nix b/pkgs/development/python-modules/devpi-common/default.nix
new file mode 100644
index 00000000000..971d53e3ddd
--- /dev/null
+++ b/pkgs/development/python-modules/devpi-common/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, pythonPackages }:
+
+with pythonPackages;buildPythonPackage rec {
+  pname = "devpi-common";
+  version = "3.2.0rc1";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ws35g1r0j2xccsna4r6fc9a08przfi28kf9hciq3rmd6ndbr9c9";
+  };
+
+  propagatedBuildInputs = [ requests py ];
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/devpi/devpi;
+    description = "Utilities jointly used by devpi-server and devpi-client";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lewo makefu ];
+  };
+}
diff --git a/pkgs/development/python-modules/django/1.10-gis-libs.template.patch b/pkgs/development/python-modules/django/1.10-gis-libs.template.patch
index be196d000bc..da154554d1b 100644
--- a/pkgs/development/python-modules/django/1.10-gis-libs.template.patch
+++ b/pkgs/development/python-modules/django/1.10-gis-libs.template.patch
@@ -6,7 +6,7 @@ diff --git a/django/contrib/gis/gdal/libgdal.py b/django/contrib/gis/gdal/libgda
  except (AttributeError, EnvironmentError,
          ImportError, ImproperlyConfigured):
 -    lib_path = None
-+    lib_path = "@gdal@/lib/libgdal.so"
++    lib_path = "@gdal@/lib/libgdal@extension@"
  
  if lib_path:
      lib_names = None
@@ -18,7 +18,7 @@ diff --git a/django/contrib/gis/geos/libgeos.py b/django/contrib/gis/geos/libgeo
      except (AttributeError, EnvironmentError,
              ImportError, ImproperlyConfigured):
 -        lib_path = None
-+        lib_path = "@geos@/lib/libgeos_c.so"
++        lib_path = "@geos@/lib/libgeos_c@extension@"
  
      # Setting the appropriate names for the GEOS-C library.
      if lib_path:
diff --git a/pkgs/development/python-modules/django/1_11.nix b/pkgs/development/python-modules/django/1_11.nix
index f727751eda5..483a8eb23d0 100644
--- a/pkgs/development/python-modules/django/1_11.nix
+++ b/pkgs/development/python-modules/django/1_11.nix
@@ -2,6 +2,7 @@
   pythonOlder,
   geos, gdal, pytz
 }:
+
 buildPythonPackage rec {
   pname = "Django";
   name = "${pname}-${version}";
@@ -19,6 +20,7 @@ buildPythonPackage rec {
       src = ./1.10-gis-libs.template.patch;
       geos = geos;
       gdal = gdal;
+      extension = stdenv.hostPlatform.extensions.sharedLibrary;
     })
   ];
 
diff --git a/pkgs/development/python-modules/graph-tool/2.x.x.nix b/pkgs/development/python-modules/graph-tool/2.x.x.nix
index 4f39d1097b1..36181bfb3f9 100644
--- a/pkgs/development/python-modules/graph-tool/2.x.x.nix
+++ b/pkgs/development/python-modules/graph-tool/2.x.x.nix
@@ -24,7 +24,8 @@ stdenv.mkDerivation rec {
     "--enable-openmp"
   ];
 
-  buildInputs = [ pkgconfig autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ ];
 
   propagatedBuildInputs = [
     boost
diff --git a/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix b/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix
new file mode 100644
index 00000000000..e0b36de5672
--- /dev/null
+++ b/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildPythonPackage, sphinx, fetchPypi }:
+
+
+buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "guzzle_sphinx_theme";
+  version = "0.7.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rnkzrrsbnifn3vsb4pfaia3nlvgvw6ndpxp7lzjrh23qcwid34v";
+  };
+
+  doCheck = false; # no tests
+
+  propagatedBuildInputs = [ sphinx ];
+
+  meta = with stdenv.lib; {
+    description = "Sphinx theme used by Guzzle: http://guzzlephp.org";
+    homepage = https://github.com/guzzle/guzzle_sphinx_theme/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ flokli ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix
index 9b2821380b9..e9bae3f8206 100644
--- a/pkgs/development/python-modules/h5py/default.nix
+++ b/pkgs/development/python-modules/h5py/default.nix
@@ -28,7 +28,8 @@ in buildPythonPackage rec {
 
   preBuild = if mpiSupport then "export CC=${mpi}/bin/mpicc" else "";
 
-  buildInputs = [ hdf5 cython pkgconfig ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ hdf5 cython ]
     ++ optional mpiSupport mpi
     ;
   propagatedBuildInputs = [ numpy six]
diff --git a/pkgs/development/python-modules/html5-parser/default.nix b/pkgs/development/python-modules/html5-parser/default.nix
index 6a579cffccf..faddfe2bfdd 100644
--- a/pkgs/development/python-modules/html5-parser/default.nix
+++ b/pkgs/development/python-modules/html5-parser/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "b9f3a1d4cdb8742e8e4ecafab04bff541bde4ff09af233293ed0b94028ec1ab5";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ chardet lxml pkgs.libxml2 ];
 
   doCheck = false; # No such file or directory: 'run_tests.py'
diff --git a/pkgs/development/python-modules/jsmin/default.nix b/pkgs/development/python-modules/jsmin/default.nix
new file mode 100644
index 00000000000..16be096f2ba
--- /dev/null
+++ b/pkgs/development/python-modules/jsmin/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "jsmin";
+  version = "2.2.2";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0fsmqbjvpxvff0984x7c0y8xmf49ax9mncz48b9xjx8wrnr9kpxn";
+  };
+
+  meta = with lib; {
+    description = "JavaScript minifier";
+    homepage = "https://github.com/tikitu/jsmin/";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix
index 1379d93c6dd..877fbe9470d 100644
--- a/pkgs/development/python-modules/keras/default.nix
+++ b/pkgs/development/python-modules/keras/default.nix
@@ -1,13 +1,6 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, pytest
-, pytestcov
-, pytestpep8
-, pytest_xdist
-, six
-, Theano
-, pyyaml
+{ stdenv, lib, buildPythonPackage, fetchPypi
+, pytest, pytestcov, pytestpep8, pytest_xdist
+, six, numpy, scipy, pyyaml
 }:
 
 buildPythonPackage rec {
@@ -28,7 +21,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    six Theano pyyaml
+    six pyyaml numpy scipy
   ];
 
   # Couldn't get tests working
diff --git a/pkgs/development/python-modules/libnacl/default.nix b/pkgs/development/python-modules/libnacl/default.nix
index f70c9a57e5f..3704045d79a 100644
--- a/pkgs/development/python-modules/libnacl/default.nix
+++ b/pkgs/development/python-modules/libnacl/default.nix
@@ -1,13 +1,15 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, libsodium }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, pytest, libsodium }:
 
 buildPythonPackage rec {
   pname = "libnacl";
-  version = "1.5.2";
+  version = "1.6.0";
   name = "${pname}-${version}";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "c58390b0d191db948fc9ab681f07fdfce2a573cd012356bada47d56795d00ee2";
+  src = fetchFromGitHub {
+    owner = "saltstack";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0iaql3mrj3hf48km8177bi6nmjdar26kmqjc3jw8mrjc940v99fk";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/libsexy/default.nix b/pkgs/development/python-modules/libsexy/default.nix
index 69d9dde6cba..a88a6097611 100644
--- a/pkgs/development/python-modules/libsexy/default.nix
+++ b/pkgs/development/python-modules/libsexy/default.nix
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "05bgcsxwkp63rlr8wg6znd46cfbhrzc5wh70jabsi654pxxjb39d";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [
     pygtk libsexy gtk2 glib pango libxml2
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index 19d135fc0e1..ffb74021d8d 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -1,13 +1,14 @@
-{lib, fetchurl, python, buildPythonPackage, isPy27, isPyPy, gfortran, nose, blas}:
+{lib, fetchPypi, python, buildPythonPackage, isPy27, isPyPy, gfortran, nose, blas}:
 
 buildPythonPackage rec {
   pname = "numpy";
-  version = "1.13.1";
+  version = "1.13.2";
   name = "${pname}-${version}";
 
-  src = fetchurl {
-    url = "mirror://pypi/n/numpy/numpy-${version}.zip";
-    sha256 = "c9b0283776085cb2804efff73e9955ca279ba4edafd58d3ead70b61d209c4fbb";
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1fmq8923q91xyjf6fngl0n6jlysryyzx06288b5qdvv97mlfpklh";
   };
 
   disabled = isPyPy;
diff --git a/pkgs/development/python-modules/pandas/0.17.1.nix b/pkgs/development/python-modules/pandas/0.17.1.nix
new file mode 100644
index 00000000000..02b8211a256
--- /dev/null
+++ b/pkgs/development/python-modules/pandas/0.17.1.nix
@@ -0,0 +1,79 @@
+{ buildPythonPackage
+, fetchPypi
+, python
+, stdenv
+, fetchurl
+, pytest
+, glibcLocales
+, cython
+, dateutil
+, scipy
+, numexpr
+, pytz
+, xlrd
+, bottleneck
+, sqlalchemy
+, lxml
+, html5lib
+, beautifulsoup4
+, openpyxl
+, tables
+, xlwt
+, libcxx ? null
+}:
+
+let
+  inherit (stdenv.lib) optional optionalString concatStringsSep;
+  inherit (stdenv) isDarwin;
+in buildPythonPackage rec {
+  pname = "pandas";
+  version = "0.17.1";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cfd7214a7223703fe6999fbe34837749540efee1c985e6aee9933f30e3f72837";
+  };
+
+  LC_ALL = "en_US.UTF-8";
+  buildInputs = [ pytest glibcLocales ] ++ optional isDarwin libcxx;
+  propagatedBuildInputs = [
+    cython
+    dateutil
+    scipy
+    numexpr
+    pytz
+    xlrd
+    bottleneck
+    sqlalchemy
+    lxml
+    html5lib
+    beautifulsoup4
+    openpyxl
+    tables
+    xlwt
+  ];
+
+  doCheck = false;
+
+  # For OSX, we need to add a dependency on libcxx, which provides
+  # `complex.h` and other libraries that pandas depends on to build.
+  postPatch = optionalString isDarwin ''
+    cpp_sdk="${libcxx}/include/c++/v1";
+    echo "Adding $cpp_sdk to the setup.py common_include variable"
+    substituteInPlace setup.py \
+      --replace "['pandas/src/klib', 'pandas/src']" \
+                "['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
+  '';
+
+  meta = {
+    # https://github.com/pandas-dev/pandas/issues/14866
+    # pandas devs are no longer testing i686 so safer to assume it's broken
+    broken = stdenv.isi686;
+    homepage = http://pandas.pydata.org/;
+    description = "Python Data Analysis Library";
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ shlevy ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/python-modules/pelican/default.nix b/pkgs/development/python-modules/pelican/default.nix
index ea582afd96f..e48623ef5b3 100644
--- a/pkgs/development/python-modules/pelican/default.nix
+++ b/pkgs/development/python-modules/pelican/default.nix
@@ -45,6 +45,16 @@ buildPythonPackage rec {
 
   LC_ALL="en_US.UTF-8";
 
+
+  # We only want to patch shebangs in /bin, and not those
+  # of the project scripts that are created by Pelican.
+  # See https://github.com/NixOS/nixpkgs/issues/30116
+  dontPatchShebangs = true;
+
+  postFixup = ''
+    patchShebangs $out/bin
+  '';
+
   meta = with stdenv.lib; {
     description = "A tool to generate a static blog from reStructuredText or Markdown input files";
     homepage = http://getpelican.com/;
diff --git a/pkgs/development/python-modules/plyfile/default.nix b/pkgs/development/python-modules/plyfile/default.nix
new file mode 100644
index 00000000000..410a633c46b
--- /dev/null
+++ b/pkgs/development/python-modules/plyfile/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchPypi, buildPythonPackage, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "plyfile";
+  version = "0.5";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1cspvhfy2nw1rfwpvrd69wkz0b6clr4wzqpwpmdk872vk2q89yzi";
+  };
+
+  propagatedBuildInputs = [ numpy ];
+
+  meta = with lib; {
+    description = "NumPy-based text/binary PLY file reader/writer for Python";
+    homepage    = "https://github.com/dranjan/python-plyfile";
+    maintainers = with maintainers; [ abbradar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycairo/default.nix b/pkgs/development/python-modules/pycairo/default.nix
index 284736fd475..b4366ab791f 100644
--- a/pkgs/development/python-modules/pycairo/default.nix
+++ b/pkgs/development/python-modules/pycairo/default.nix
@@ -31,7 +31,8 @@ in buildPythonPackage rec {
     })
   ];
 
-  buildInputs = [ python pkgconfig cairo xlibsWrapper ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ python cairo xlibsWrapper ];
 
   configurePhase = ''
     (
diff --git a/pkgs/development/python-modules/pycangjie/default.nix b/pkgs/development/python-modules/pycangjie/default.nix
index f8ca06eec86..4995a714693 100644
--- a/pkgs/development/python-modules/pycangjie/default.nix
+++ b/pkgs/development/python-modules/pycangjie/default.nix
@@ -13,8 +13,9 @@ stdenv.mkDerivation rec {
     sha256 = "12yi09nyffmn4va7lzk4irw349qzlbxgsnb89dh15cnw0xmrin05";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    autoconf automake libtool pkgconfig libcangjie sqlite python cython
+    autoconf automake libtool libcangjie sqlite python cython
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix
index ce7210391c6..6afd10596bc 100644
--- a/pkgs/development/python-modules/pygobject/3.nix
+++ b/pkgs/development/python-modules/pygobject/3.nix
@@ -13,7 +13,8 @@ buildPythonPackage rec {
 
   outputs = [ "out" "dev" ];
 
-  buildInputs = [ pkgconfig glib gobjectIntrospection ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib gobjectIntrospection ]
                  ++ stdenv.lib.optionals stdenv.isDarwin [ which ncurses ];
   propagatedBuildInputs = [ pycairo cairo ];
 
diff --git a/pkgs/development/python-modules/pygobject/default.nix b/pkgs/development/python-modules/pygobject/default.nix
index b72bd8b9b52..63a21cb2bef 100644
--- a/pkgs/development/python-modules/pygobject/default.nix
+++ b/pkgs/development/python-modules/pygobject/default.nix
@@ -20,7 +20,8 @@ buildPythonPackage rec {
 
   configureFlags = "--disable-introspection";
 
-  buildInputs = [ pkgconfig glib ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib ];
 
   # in a "normal" setup, pygobject and pygtk are installed into the
   # same site-packages: we need a pth file for both. pygtk.py would be
diff --git a/pkgs/development/python-modules/pygtk/default.nix b/pkgs/development/python-modules/pygtk/default.nix
index 0940ef00ac9..9b9adc64b75 100644
--- a/pkgs/development/python-modules/pygtk/default.nix
+++ b/pkgs/development/python-modules/pygtk/default.nix
@@ -11,7 +11,8 @@ buildPythonPackage rec {
     sha256 = "04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d";
   };
 
-  buildInputs = [ pkgconfig ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ]
     ++ stdenv.lib.optional (libglade != null) libglade;
 
   propagatedBuildInputs = [ gtk2 pygobject2 pycairo ];
diff --git a/pkgs/development/python-modules/pygtksourceview/default.nix b/pkgs/development/python-modules/pygtksourceview/default.nix
index 499634236ac..7b89e6d1b28 100644
--- a/pkgs/development/python-modules/pygtksourceview/default.nix
+++ b/pkgs/development/python-modules/pygtksourceview/default.nix
@@ -13,7 +13,8 @@ buildPythonPackage {
 
   patches = [ ./codegendir.patch ];
 
-  buildInputs = [ python pkgconfig pygobject2 glib pygtk gnome2.gtksourceview ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ python pygobject2 glib pygtk gnome2.gtksourceview ];
 
   meta = {
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/python-modules/pypcap/default.nix b/pkgs/development/python-modules/pypcap/default.nix
new file mode 100644
index 00000000000..ab4c5f6034f
--- /dev/null
+++ b/pkgs/development/python-modules/pypcap/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, writeText, buildPythonPackage, fetchPypi, isPy3k, libpcap, dpkt }:
+
+buildPythonPackage rec {
+  pname = "pypcap";
+  version = "1.1.6";
+  name = "${pname}-${version}";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1cx7qm0w2a91g5z8k3kmlwz0b8dkr0h8dlb64rwgyhp2laa33syi";
+  };
+
+  patches = [
+    # The default setup.py searchs for pcap.h in a static list of default
+    # folders. So we have to add the path to libpcap in the nix-store.
+    (writeText "libpcap-path.patch"
+      ''
+      --- a/setup.py
+      +++ b/setup.py
+      @@ -27,7 +27,8 @@ def recursive_search(path, target_files):
+
+       def get_extension():
+           # A list of all the possible search directories
+      -    dirs = ['/usr', sys.prefix] + glob.glob('/opt/libpcap*') + \
+      +    dirs = ['${libpcap}', '/usr', sys.prefix] + \
+      +        glob.glob('/opt/libpcap*') + \
+               glob.glob('../libpcap*') + glob.glob('../wpdpack*') + \
+               glob.glob('/Applications/Xcode.app/Contents/Developer/Platforms/' +
+                         'MacOSX.platform/Developer/SDKs/*')
+      '')
+  ];
+
+  buildInputs = [ libpcap dpkt ];
+
+  meta = {
+    homepage = https://github.com/pynetwork/pypcap;
+    description = "Simplified object-oriented Python wrapper for libpcap";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ geistesk ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyqt/4.x.nix b/pkgs/development/python-modules/pyqt/4.x.nix
index cf1e17d3141..b4376730e62 100644
--- a/pkgs/development/python-modules/pyqt/4.x.nix
+++ b/pkgs/development/python-modules/pyqt/4.x.nix
@@ -37,7 +37,8 @@ in buildPythonPackage {
     ${python.executable} configure.py $configureFlags "''${configureFlagsArray[@]}"
   '';
 
-  buildInputs = [ pkgconfig makeWrapper qt4 lndir dbus_libs ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ makeWrapper qt4 lndir dbus_libs ];
 
   propagatedBuildInputs = [ sip ];
 
diff --git a/pkgs/development/python-modules/pyqt/5.x.nix b/pkgs/development/python-modules/pyqt/5.x.nix
index 5d98544da88..9b3700bcd2a 100644
--- a/pkgs/development/python-modules/pyqt/5.x.nix
+++ b/pkgs/development/python-modules/pyqt/5.x.nix
@@ -2,7 +2,7 @@
 , lndir, makeWrapper, qmake }:
 
 let
-  version = "5.8.1";
+  version = "5.9";
   inherit (pythonPackages) buildPythonPackage python dbus-python sip;
 in buildPythonPackage {
   name = "PyQt-${version}";
@@ -18,7 +18,7 @@ in buildPythonPackage {
 
   src = fetchurl {
     url = "mirror://sourceforge/pyqt/PyQt5/PyQt-${version}/PyQt5_gpl-${version}.tar.gz";
-    sha256 = "0biak7l574i2gc8lj1s45skajbxsmmx66nlvs6xaakzkc6r293qy";
+    sha256 = "15hh4z5vd45dcswjla58q6rrfr6ic7jfz2n7c8lwfb10rycpj3mb";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper qmake ];
diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix
index 48d4fa68f65..85052a34a56 100644
--- a/pkgs/development/python-modules/shapely/default.nix
+++ b/pkgs/development/python-modules/shapely/default.nix
@@ -6,11 +6,11 @@
 buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "Shapely";
-  version = "1.5.15";
+  version = "1.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0lfqxb3kpdn0g9zzlhzg79yc8iyy4fpsk0p5nd80gar1mmhr8pg7";
+    sha256 = "1iyhrkm6g233gwbd20sf4aq4by0kg52cz1d2k7imnqgzjpmkgqas";
   };
 
   buildInputs = [ geos glibcLocales cython ];
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     libc = if stdenv.isDarwin then "libc.dylib" else "libc.so.6";
   in ''
     sed -i "s|_lgeos = load_dll('geos_c', fallbacks=.*)|_lgeos = load_dll('geos_c', fallbacks=['${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}'])|" shapely/geos.py
-    sed -i "s|free = load_dll('c').free|free = load_dll('c', fallbacks=['${stdenv.cc.libc}/lib/${stdenv.cc.libc}']).free|" shapely/geos.py
+    sed -i "s|free = load_dll('c').free|free = load_dll('c', fallbacks=['${stdenv.cc.libc}/lib/${libc}']).free|" shapely/geos.py
   '';
 
   # tests/test_voctorized fails because the vectorized extension is not
diff --git a/pkgs/development/python-modules/sip/default.nix b/pkgs/development/python-modules/sip/default.nix
index b6094f37c3a..af885fcf5a2 100644
--- a/pkgs/development/python-modules/sip/default.nix
+++ b/pkgs/development/python-modules/sip/default.nix
@@ -2,13 +2,13 @@
 
 if isPyPy then throw "sip not supported for interpreter ${python.executable}" else buildPythonPackage rec {
   pname = "sip";
-  version = "4.19.1";
+  version = "4.19.3";
   name = "${pname}-${version}";
   format = "other";
 
   src = fetchurl {
     url = "mirror://sourceforge/pyqt/sip/${name}/${name}.tar.gz";
-    sha256 = "501852b8325349031b769d1c03d6eab04f7b9b97f790ec79f3d3d04bf065d83e";
+    sha256 = "0x2bghbprwl3az1ni3p87i0bq8r99694la93kg65vi0cz12gh3bl";
   };
 
   configurePhase = ''
diff --git a/pkgs/development/python-modules/spambayes/default.nix b/pkgs/development/python-modules/spambayes/default.nix
new file mode 100644
index 00000000000..3386fdd1e2a
--- /dev/null
+++ b/pkgs/development/python-modules/spambayes/default.nix
@@ -0,0 +1,21 @@
+{ buildPythonPackage, isPy3k, fetchPypi, bsddb3, pydns, lockfile }:
+
+buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "spambayes";
+  version = "1.1b2";
+
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1542dwdsmkav38cfjlbgf3bzz3z8nk7wzq173ya8ipk7g8g6s64d";
+  };
+
+  propagatedBuildInputs = [ bsddb3 pydns lockfile ];
+
+  meta = {
+    description = "Statistical anti-spam filter, initially based on the work of Paul Graham";
+    homepage = http://spambayes.sourceforge.net/;
+  };
+}
diff --git a/pkgs/development/python-modules/supervise_api/default.nix b/pkgs/development/python-modules/supervise_api/default.nix
new file mode 100644
index 00000000000..5b98aa3415b
--- /dev/null
+++ b/pkgs/development/python-modules/supervise_api/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, supervise
+}:
+
+buildPythonPackage rec {
+  pname = "supervise_api";
+  version = "0.1.5";
+
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1pqqlw80cjdgrlpvdmydkyhsrr4s531mn6bfkshm68j9gk4kq6px";
+  };
+
+  propagatedBuildInputs = [ supervise ];
+
+  # no tests
+  doCheck = false;
+
+  meta = {
+    description = "An API for running processes safely and securely";
+    homepage = https://github.com/catern/supervise;
+    license = lib.licenses.lgpl3;
+    maintainers = with lib.maintainers; [ catern ];
+  };
+}
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index ab604c17300..00a5df843c5 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, symlinkJoin
 , lib
 , fetchurl
 , buildPythonPackage
@@ -35,6 +36,13 @@ buildPythonPackage rec {
   format = "wheel";
   disabled = ! (isPy35 || isPy36 || isPy27);
 
+  # cudatoolkit is split (see https://github.com/NixOS/nixpkgs/commit/bb1c9b027d343f2ce263496582d6b56af8af92e6)
+  # However this means that libcusolver is not loadable by tensor flow. So we undo the split here.
+  cudatoolkit_joined = symlinkJoin {
+    name = "unsplit_cudatoolkit";
+    paths = [ cudatoolkit.out
+              cudatoolkit.lib ];};
+
   src = let
       tfurl = sys: proc: pykind:
         let
@@ -112,7 +120,7 @@ buildPythonPackage rec {
   propagatedBuildInputs =
     [ numpy six protobuf mock backports_weakref ]
     ++ lib.optional (!isPy36) tensorflow-tensorboard
-    ++ lib.optionals cudaSupport [ cudatoolkit cudnn stdenv.cc ];
+    ++ lib.optionals cudaSupport [ cudatoolkit_joined cudnn stdenv.cc ];
 
   # tensorflow-gpu depends on tensorflow_tensorboard, which cannot be
   # built at the moment (some of its dependencies do not build
@@ -126,7 +134,7 @@ buildPythonPackage rec {
   postFixup = let
     rpath = stdenv.lib.makeLibraryPath
       (if cudaSupport then
-        [ stdenv.cc.cc.lib zlib cudatoolkit cudnn
+        [ stdenv.cc.cc.lib zlib cudatoolkit_joined cudnn
           linuxPackages.nvidia_x11 ]
       else
         [ stdenv.cc.cc.lib zlib ]
diff --git a/pkgs/development/python-modules/xarray/default.nix b/pkgs/development/python-modules/xarray/default.nix
index 7b9712dfd02..1215e613f6f 100644
--- a/pkgs/development/python-modules/xarray/default.nix
+++ b/pkgs/development/python-modules/xarray/default.nix
@@ -5,6 +5,7 @@
 , numpy
 , pandas
 , python
+, fetchurl
 }:
 
 buildPythonPackage rec {
@@ -17,6 +18,15 @@ buildPythonPackage rec {
     sha256 = "f649a41d43b5a6c64bdcbd57e994932656b689f9593a86dd0be95778a2b47494";
   };
 
+  # Temporary patch until next release (later than 0.9.6) to fix
+  # a broken test case.
+  patches = [
+    (fetchurl {
+      url = "https://github.com/pydata/xarray/commit/726c6a3638ecf95889c541d84e892a106c2f2f92.patch";
+      sha256 = "1i2hsj5v5qlvqfj48vyn9931yndsf4k4wrk3qpqpywh32s7r007b";
+    })
+  ];
+
   buildInputs = [ pytest ];
   propagatedBuildInputs = [numpy pandas];
 
diff --git a/pkgs/development/python-modules/yowsup/argparse-dependency.patch b/pkgs/development/python-modules/yowsup/argparse-dependency.patch
new file mode 100644
index 00000000000..364f0054fe7
--- /dev/null
+++ b/pkgs/development/python-modules/yowsup/argparse-dependency.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index 053ed07..60f0d9a 100755
+--- a/setup.py
++++ b/setup.py
+@@ -5,7 +5,7 @@ import yowsup
+ import platform
+ import sys
+ 
+-deps = ['python-dateutil', 'argparse', 'python-axolotl>=0.1.39', 'six']
++deps = ['python-dateutil', 'python-axolotl>=0.1.39', 'six']
+ 
+ if sys.version_info < (2,7):
+     deps += ['importlib']
diff --git a/pkgs/development/python-modules/yowsup/default.nix b/pkgs/development/python-modules/yowsup/default.nix
new file mode 100644
index 00000000000..fce974ccd3a
--- /dev/null
+++ b/pkgs/development/python-modules/yowsup/default.nix
@@ -0,0 +1,30 @@
+{ buildPythonPackage, stdenv, fetchFromGitHub, six, python-axolotl, pytest }:
+
+buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "yowsup";
+  version = "2.5.2";
+
+  src = fetchFromGitHub {
+    owner = "tgalal";
+    repo = "yowsup";
+    rev = "v${version}";
+    sha256 = "16l8jmr32wwvl11m0a4r4id3dkfqj2n7dn6gky1077xwmj2da4fl";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    HOME=$(mktemp -d) py.test yowsup
+  '';
+
+  patches = [ ./argparse-dependency.patch ];
+
+  propagatedBuildInputs = [ six python-axolotl ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/tgalal/yowsup";
+    description = "The python WhatsApp library";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ ma27 ];
+  };
+}