about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/interpreters/python/cpython/3.6/default.nix4
-rw-r--r--pkgs/development/interpreters/python/cpython/3.7/default.nix4
-rw-r--r--pkgs/development/libraries/boehm-gc/default.nix4
-rw-r--r--pkgs/development/libraries/freetds/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix8
-rw-r--r--pkgs/development/libraries/gstreamer/base/default.nix8
-rw-r--r--pkgs/development/libraries/gstreamer/core/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ges/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/libav/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ugly/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/vaapi/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/validate/default.nix4
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix4
-rw-r--r--pkgs/development/libraries/imlib2/default.nix4
-rw-r--r--pkgs/development/libraries/libssh/default.nix16
-rw-r--r--pkgs/development/libraries/libwacom/default.nix14
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix4
-rw-r--r--pkgs/development/python-modules/Cython/default.nix5
-rw-r--r--pkgs/development/python-modules/aioeventlet/default.nix35
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--pkgs/development/python-modules/bootstrapped-pip/default.nix4
-rw-r--r--pkgs/development/python-modules/fasteners/default.nix35
-rw-r--r--pkgs/development/python-modules/geoalchemy2/default.nix25
-rw-r--r--pkgs/development/python-modules/geopy/default.nix30
-rw-r--r--pkgs/development/python-modules/gst-python/default.nix40
-rw-r--r--pkgs/development/python-modules/gst-python/different-path-with-pygobject.patch20
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix4
-rw-r--r--pkgs/development/python-modules/isodate/default.nix30
-rw-r--r--pkgs/development/python-modules/kaa-base/default.nix51
-rw-r--r--pkgs/development/python-modules/kaa-metadata/default.nix56
-rw-r--r--pkgs/development/python-modules/lz4/default.nix24
-rw-r--r--pkgs/development/python-modules/mmpython/default.nix26
-rw-r--r--pkgs/development/python-modules/mongodict/default.nix24
-rw-r--r--pkgs/development/python-modules/mox3/default.nix40
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix12
-rw-r--r--pkgs/development/python-modules/numpy/default.nix32
-rw-r--r--pkgs/development/python-modules/pagerduty/default.nix23
-rw-r--r--pkgs/development/python-modules/pamqp/default.nix28
-rw-r--r--pkgs/development/python-modules/parsedatetime/default.nix27
-rw-r--r--pkgs/development/python-modules/parsel/default.nix34
-rw-r--r--pkgs/development/python-modules/paste/default.nix31
-rw-r--r--pkgs/development/python-modules/pastedeploy/default.nix24
-rw-r--r--pkgs/development/python-modules/pastescript/default.nix32
-rw-r--r--pkgs/development/python-modules/patch/default.nix26
-rw-r--r--pkgs/development/python-modules/pathos/default.nix30
-rw-r--r--pkgs/development/python-modules/pdfkit/default.nix25
-rw-r--r--pkgs/development/python-modules/pep8/default.nix26
-rw-r--r--pkgs/development/python-modules/percol/default.nix24
-rw-r--r--pkgs/development/python-modules/pexif/default.nix21
-rw-r--r--pkgs/development/python-modules/pg8000/default.nix25
-rw-r--r--pkgs/development/python-modules/pgpdump/default.nix24
-rw-r--r--pkgs/development/python-modules/pickleshare/default.nix30
-rw-r--r--pkgs/development/python-modules/piep/default.nix27
-rw-r--r--pkgs/development/python-modules/pika/default.nix35
-rw-r--r--pkgs/development/python-modules/posix_ipc/default.nix21
-rw-r--r--pkgs/development/python-modules/pox/default.nix21
-rw-r--r--pkgs/development/python-modules/ppft/default.nix24
-rw-r--r--pkgs/development/python-modules/prettytable/default.nix28
-rw-r--r--pkgs/development/python-modules/process-tests/default.nix24
-rw-r--r--pkgs/development/python-modules/ptest/default.nix23
-rw-r--r--pkgs/development/python-modules/purepng/default.nix21
-rw-r--r--pkgs/development/python-modules/py/default.nix4
-rw-r--r--pkgs/development/python-modules/pyacoustid/default.nix34
-rw-r--r--pkgs/development/python-modules/pyacoustid/pyacoustid-py3.patch (renamed from pkgs/development/python-modules/pyacoustid-py3.patch)0
-rw-r--r--pkgs/development/python-modules/pyalgotrade/default.nix28
-rw-r--r--pkgs/development/python-modules/pyaudio/default.nix26
-rw-r--r--pkgs/development/python-modules/pybcrypt/default.nix21
-rw-r--r--pkgs/development/python-modules/pyblock/default.nix38
-rw-r--r--pkgs/development/python-modules/pyblosxom/default.nix31
-rw-r--r--pkgs/development/python-modules/pycapnp/default.nix34
-rw-r--r--pkgs/development/python-modules/pycarddav/default.nix31
-rw-r--r--pkgs/development/python-modules/pycdio/default.nix44
-rw-r--r--pkgs/development/python-modules/pycodestyle/default.nix10
-rw-r--r--pkgs/development/python-modules/pycryptopp/default.nix34
-rw-r--r--pkgs/development/python-modules/pycurl2/default.nix34
-rw-r--r--pkgs/development/python-modules/pydispatcher/default.nix28
-rw-r--r--pkgs/development/python-modules/pydot_ng/default.nix34
-rw-r--r--pkgs/development/python-modules/pyelftools/default.nix31
-rw-r--r--pkgs/development/python-modules/pyenchant/default.nix36
-rw-r--r--pkgs/development/python-modules/pyexcelerator/default.nix28
-rw-r--r--pkgs/development/python-modules/pyfantom/default.nix24
-rw-r--r--pkgs/development/python-modules/pyicu/default.nix37
-rw-r--r--pkgs/development/python-modules/pyinotify/default.nix25
-rw-r--r--pkgs/development/python-modules/pyinputevent/default.nix24
-rw-r--r--pkgs/development/python-modules/pyinsane2/default.nix45
-rw-r--r--pkgs/development/python-modules/pykickstart/default.nix36
-rw-r--r--pkgs/development/python-modules/pyliblo/default.nix26
-rw-r--r--pkgs/development/python-modules/pymaging/default.nix24
-rw-r--r--pkgs/development/python-modules/pymaging_png/default.nix27
-rw-r--r--pkgs/development/python-modules/pymongo/2_9_1.nix24
-rw-r--r--pkgs/development/python-modules/pynzb/default.nix30
-rw-r--r--pkgs/development/python-modules/pyopengl/default.nix50
-rw-r--r--pkgs/development/python-modules/pyparted/default.nix49
-rw-r--r--pkgs/development/python-modules/pypdf/default.nix25
-rw-r--r--pkgs/development/python-modules/pypdf2/default.nix35
-rw-r--r--pkgs/development/python-modules/pyplatec/default.nix21
-rw-r--r--pkgs/development/python-modules/pyptlib/default.nix26
-rw-r--r--pkgs/development/python-modules/pyqtgraph/default.nix31
-rw-r--r--pkgs/development/python-modules/pyquery/default.nix30
-rw-r--r--pkgs/development/python-modules/pyreport/default.nix26
-rw-r--r--pkgs/development/python-modules/pyrsistent/default.nix32
-rw-r--r--pkgs/development/python-modules/pyrss2gen/default.nix25
-rw-r--r--pkgs/development/python-modules/pysaml2/default.nix66
-rw-r--r--pkgs/development/python-modules/pyscss/default.nix39
-rw-r--r--pkgs/development/python-modules/pysendfile/default.nix28
-rw-r--r--pkgs/development/python-modules/pysftp/default.nix31
-rw-r--r--pkgs/development/python-modules/pysmi/default.nix28
-rw-r--r--pkgs/development/python-modules/pysnmp/default.nix30
-rw-r--r--pkgs/development/python-modules/pysocks/default.nix23
-rw-r--r--pkgs/development/python-modules/pysqlite/default.nix57
-rw-r--r--pkgs/development/python-modules/pysvn/default.nix58
-rw-r--r--pkgs/development/python-modules/pytest/default.nix4
-rw-r--r--pkgs/development/python-modules/python-etcd/default.nix37
-rw-r--r--pkgs/development/python-modules/python-jenkins/default.nix38
-rw-r--r--pkgs/development/python-modules/python-wifi/default.nix27
-rw-r--r--pkgs/development/python-modules/python3pika/default.nix33
-rw-r--r--pkgs/development/python-modules/python_keyczar/default.nix27
-rw-r--r--pkgs/development/python-modules/pyutil/default.nix50
-rw-r--r--pkgs/development/python-modules/pywebkitgtk/default.nix27
-rw-r--r--pkgs/development/python-modules/pyx/default.nix27
-rw-r--r--pkgs/development/python-modules/qpid-python/default.nix26
-rw-r--r--pkgs/development/python-modules/qscintilla/default.nix41
-rw-r--r--pkgs/development/python-modules/qserve/default.nix24
-rw-r--r--pkgs/development/python-modules/qutip/default.nix44
-rw-r--r--pkgs/development/python-modules/rabbitpy/default.nix27
-rw-r--r--pkgs/development/python-modules/rbtools/default.nix31
-rw-r--r--pkgs/development/python-modules/readme/default.nix37
-rw-r--r--pkgs/development/python-modules/recaptcha_client/default.nix23
-rw-r--r--pkgs/development/python-modules/rencode/default.nix27
-rw-r--r--pkgs/development/python-modules/repocheck/default.nix23
-rw-r--r--pkgs/development/python-modules/repoze_who/default.nix25
-rw-r--r--pkgs/development/python-modules/resampy/default.nix33
-rw-r--r--pkgs/development/python-modules/retry_decorator/default.nix21
-rw-r--r--pkgs/development/python-modules/retrying/default.nix27
-rw-r--r--pkgs/development/python-modules/robotframework-requests/default.nix28
-rw-r--r--pkgs/development/python-modules/robotframework-selenium2library/default.nix30
-rw-r--r--pkgs/development/python-modules/robotframework-tools/default.nix29
-rw-r--r--pkgs/development/python-modules/routes/default.nix29
-rw-r--r--pkgs/development/python-modules/rpyc/default.nix25
-rw-r--r--pkgs/development/python-modules/rsa/default.nix26
-rw-r--r--pkgs/development/python-modules/ruamel_base/default.nix21
-rw-r--r--pkgs/development/python-modules/ruamel_ordereddict/default.nix24
-rw-r--r--pkgs/development/python-modules/ruamel_yaml/default.nix31
-rw-r--r--pkgs/development/python-modules/runsnakerun/default.nix25
-rw-r--r--pkgs/development/python-modules/scipy/default.nix7
-rw-r--r--pkgs/development/python-modules/scripttest/default.nix27
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix4
-rw-r--r--pkgs/development/python-modules/setuptoolsdarcs/default.nix30
-rw-r--r--pkgs/development/python-modules/setuptoolstrial/default.nix38
-rw-r--r--pkgs/development/python-modules/shortuuid/default.nix25
-rw-r--r--pkgs/development/python-modules/shouldbe/default.nix28
-rw-r--r--pkgs/development/python-modules/simplebayes/default.nix36
-rw-r--r--pkgs/development/python-modules/simpleparse/default.nix26
-rw-r--r--pkgs/development/python-modules/slob/default.nix34
-rw-r--r--pkgs/development/python-modules/slowaes/default.nix24
-rw-r--r--pkgs/development/python-modules/sopel/default.nix40
-rw-r--r--pkgs/development/python-modules/sqlite3dbm/default.nix23
-rw-r--r--pkgs/development/python-modules/sqlobject/default.nix29
-rw-r--r--pkgs/development/python-modules/squaremap/default.nix23
-rw-r--r--pkgs/development/python-modules/txaio/default.nix9
-rw-r--r--pkgs/development/python-modules/wheel/default.nix4
-rw-r--r--pkgs/development/python-modules/xattr/default.nix32
-rw-r--r--pkgs/development/python-modules/xlrd/default.nix28
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix4
166 files changed, 4105 insertions, 128 deletions
diff --git a/pkgs/development/interpreters/python/cpython/3.6/default.nix b/pkgs/development/interpreters/python/cpython/3.6/default.nix
index 5b5041f5bcd38..4c9d0c2a89621 100644
--- a/pkgs/development/interpreters/python/cpython/3.6/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.6/default.nix
@@ -26,7 +26,7 @@ with stdenv.lib;
 
 let
   majorVersion = "3.6";
-  minorVersion = "6";
+  minorVersion = "7";
   minorVersionSuffix = "";
   version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
   libPrefix = "python${majorVersion}";
@@ -51,7 +51,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
-    sha256 = "0vz1wqg50zq6g15givdx1s2rq5752y5g2f1978bs6wvf8mfw36yp";
+    sha256 = "0zgp8nvz3rkiz5cxd42vgpah4rvw3kmg9qz9lfq36rfnm40i9zc1";
   };
 
   NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/development/interpreters/python/cpython/3.7/default.nix b/pkgs/development/interpreters/python/cpython/3.7/default.nix
index be503d29b3a78..093d8599690cd 100644
--- a/pkgs/development/interpreters/python/cpython/3.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.7/default.nix
@@ -26,7 +26,7 @@ with stdenv.lib;
 
 let
   majorVersion = "3.7";
-  minorVersion = "0";
+  minorVersion = "1";
   minorVersionSuffix = "";
   version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
   libPrefix = "python${majorVersion}";
@@ -48,7 +48,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
-    sha256 = "0j9mic5c9lbd2b20wka7hily7szz740wy9ilfrczxap63rnrk0h3";
+    sha256 = "0v9x4h22rh5cwpsq1mwpdi3c9lc9820lzp2nmn9g20llij72nzps";
   };
 
   NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/development/libraries/boehm-gc/default.nix b/pkgs/development/libraries/boehm-gc/default.nix
index 012c1d123b623..ad7aff6b54079 100644
--- a/pkgs/development/libraries/boehm-gc/default.nix
+++ b/pkgs/development/libraries/boehm-gc/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   name = "boehm-gc-${version}";
-  version = "7.6.8";
+  version = "8.0.0";
 
   src = fetchurl {
     urls = [
       "http://www.hboehm.info/gc/gc_source/gc-${version}.tar.gz"
       "https://github.com/ivmai/bdwgc/releases/download/v${version}/gc-${version}.tar.gz"
     ];
-    sha256 = "0n720a0i584ghcwmdsjiq6bl9ig0p9mrja29rp4cgsqvpz6wa2h4";
+    sha256 = "014gjv3f1qycsv5yh3fyhvrvsig60yc288pipzr0ml4312igj8wg";
   };
 
   buildInputs = [ libatomic_ops ];
diff --git a/pkgs/development/libraries/freetds/default.nix b/pkgs/development/libraries/freetds/default.nix
index 4f07316bd3f19..42313fc4e5e90 100644
--- a/pkgs/development/libraries/freetds/default.nix
+++ b/pkgs/development/libraries/freetds/default.nix
@@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
 
 stdenv.mkDerivation rec {
   name = "freetds-${version}";
-  version = "1.00.94";
+  version = "1.00.104";
 
   src = fetchurl {
     url    = "http://www.freetds.org/files/stable/${name}.tar.bz2";
-    sha256 = "1r03ns0jp2sbbivys5bks376vbdqbnx8v764kjh74gpbajjmkksz";
+    sha256 = "0mlg027mppv2348f4wwdpxpac9baqkdsg7xqx21kyx5dx5kmr71g";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index 3f030b7469e14..5d9c03b19190d 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchpatch, meson, ninja, gettext
-, pkgconfig, python, gst-plugins-base, orc
+, pkgconfig, python3, gst-plugins-base, orc
 , faacSupport ? false, faac ? null
 , faad2, libass, libkate, libmms, librdf, ladspaH
 , libnice, webrtc-audio-processing, lilv, lv2, serd, sord, sratom
@@ -18,7 +18,7 @@ let
 in
 stdenv.mkDerivation rec {
   name = "gst-plugins-bad-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with stdenv.lib; {
     description = "Gstreamer Bad Plugins";
@@ -54,12 +54,12 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-bad/${name}.tar.xz";
-    sha256 = "1bqy3dn7q4kdkd4lqznyly8fv854d0hhncv88jk6ai4rf3dbgyil";
+    sha256 = "1r8dma3x127rbx42yab7kwq7q1bhkmvz2ykn0rnqnzl95q74w2wi";
   };
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ meson ninja pkgconfig python gettext ];
+  nativeBuildInputs = [ meson ninja pkgconfig python3 gettext ];
 
   buildInputs = [
     gst-plugins-base orc
diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix
index a5f8e34064238..c67526fb712d4 100644
--- a/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/pkgs/development/libraries/gstreamer/base/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchpatch, lib
 , pkgconfig, meson, ninja, gettext, gobjectIntrospection
-, python, gstreamer, orc, pango, libtheora
+, python3, gstreamer, orc, pango, libtheora
 , libintl, libopus
 , enableX11 ? stdenv.isLinux, libXv
 , enableWayland ? stdenv.isLinux, wayland
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   name = "gst-plugins-base-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with lib; {
     description = "Base plugins and helper libraries";
@@ -22,12 +22,12 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz";
-    sha256 = "0z0wy0p0nxxqhsis3n517d6ykldm02g7rca9fhq9kxb9m05yidx4";
+    sha256 = "0qbllw4kphchwhy4p7ivdysigx69i97gyw6q0rvkx1j81r4kjqfa";
   };
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkgconfig python gettext gobjectIntrospection ]
+  nativeBuildInputs = [ pkgconfig python3 gettext gobjectIntrospection ]
 
   # Broken meson with Darwin. Should hopefully be fixed soon. Tracking
   # in https://bugzilla.gnome.org/show_bug.cgi?id=781148.
diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
index b4a324d68d962..c1f2b2f006c38 100644
--- a/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   name = "gstreamer-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with lib ;{
     description = "Open source multimedia framework";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gstreamer/${name}.tar.xz";
-    sha256 = "029fi3v0vrravysgfwhfkrb3ndg64sjmigbb0iwr7wpkk5r15mjb";
+    sha256 = "1izzhnlsy83rgr4zl3jcl1sryxqbbigrrqw3j4x3nnphqnb6ckzr";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix
index d2c3cbcc6ac3a..56d17b49cbbb7 100644
--- a/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -5,7 +5,7 @@
 
 stdenv.mkDerivation rec {
   name = "gstreamer-editing-services-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with stdenv.lib; {
     description = "Library for creation of audio/video non-linear editors";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gstreamer-editing-services/${name}.tar.xz";
-    sha256 = "0d0zqvgxp51mmffz5vvscsdzqqw9mjsv6bnk6ivg2dxnkv8q1ch5";
+    sha256 = "0pxk65jib3mqszjkyvlzklwia4kbdj6j2b6jw1d502b06mdx5lak";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index 45f700e158a9b..d4e7b8c5da429 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -16,7 +16,7 @@ let
 in
 stdenv.mkDerivation rec {
   name = "gst-plugins-good-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with stdenv.lib; {
     description = "Gstreamer Good Plugins";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-good/${name}.tar.xz";
-    sha256 = "1bfa4n6xhr4v4wga8pv1y00rm1aka498snw6kgszy2w624l5wmy0";
+    sha256 = "0y89qynb4b6fry3h43z1r99qslmi3m8xhlq0i5baq2nbc0r5b2sz";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
index f78015704fcef..7f7393bba28ef 100644
--- a/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -10,7 +10,7 @@ assert withSystemLibav -> libav != null;
 
 stdenv.mkDerivation rec {
   name = "gst-libav-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = {
     homepage = https://gstreamer.freedesktop.org;
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-libav/${name}.tar.xz";
-    sha256 = "1pknqpjxq1l3vlprdsmxxwk0lwqa555fqd543k9vphngqlwiqdca";
+    sha256 = "1nk5g24z2xx5kaw5cg8dv8skdc516inahmkymcz8bxqxj28qbmyz";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index 4166f357cdaa6..624b967765cd1 100644
--- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   name = "gst-rtsp-server-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with stdenv.lib; {
     description = "Gstreamer RTSP server";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-rtsp-server/${name}.tar.xz";
-    sha256 = "161c49hg21xpkdw5ppc7ljbg6kyslxd1y3v1shsg7ibarxapff7p";
+    sha256 = "1wc4d0y57hpfvv9sykjg8mxj86dw60mf696fbqbiqq6dzlmcw3ix";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
index b5256bf4b4c75..6bc2ea8af896a 100644
--- a/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   name = "gst-plugins-ugly-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with lib; {
     description = "Gstreamer Ugly Plugins";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.xz";
-    sha256 = "0s9xrz8knfv06fj1nbv3iq4xj7dj4cnzj3xvgb7zs89rv7crgq2m";
+    sha256 = "08vd1xgwmapnviah47zv5h2r02qdd20y4f07rvv5zhv6y4vxh0mc";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
index be7ee8f12787c..e84f8dce91252 100644
--- a/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "gst-vaapi-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   src = fetchurl {
     url = "${meta.homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz";
-    sha256 = "12hdyfma2lnfj38dj6y891vsxnxrlbqjbd36xx13mgasgzi6843z";
+    sha256 = "18yha6119v7mwz47idv2vykzfssqfmh6hc824wqqsshwjvzdn66f";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/validate/default.nix b/pkgs/development/libraries/gstreamer/validate/default.nix
index 63893bbc523e7..abcdd0b9305e5 100644
--- a/pkgs/development/libraries/gstreamer/validate/default.nix
+++ b/pkgs/development/libraries/gstreamer/validate/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   name = "gst-validate-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = {
     description = "Integration testing infrastructure for the GStreamer framework";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-validate/${name}.tar.xz";
-    sha256 = "17zilvmwv13l6rbj0a7dnbg4kz5bwwa1gshaibpqbvvhahz457pa";
+    sha256 = "1ismv4i7ldi04swq76pcpd5apxqd52yify5hvlyan2yw9flwrp0q";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index 130bc6f97bf0f..67e4cef0c3bec 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -8,7 +8,7 @@
 }:
 
 let
-  version = "1.9.0";
+  version = "2.0.0";
   inherit (stdenv.lib) optional optionals optionalString;
 in
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.bz2";
-    sha256 = "004b4j812wgfv8pmcypyrlwrjfa6149lwpz5df6rnm5cy0msdv0i";
+    sha256 = "0rc93p62r74aq11h7pjb6fbwqdipq8gzh94xi0jn9kn475l3z5yc";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/imlib2/default.nix b/pkgs/development/libraries/imlib2/default.nix
index 18b42ea4b4fa4..2576580908a31 100644
--- a/pkgs/development/libraries/imlib2/default.nix
+++ b/pkgs/development/libraries/imlib2/default.nix
@@ -5,11 +5,11 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "imlib2-1.5.0";
+  name = "imlib2-1.5.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/enlightenment/${name}.tar.bz2";
-    sha256 = "0kg28b5wp886hiy12v7abdybrvlymb7g3nvg0ysn2y8h883s5w8m";
+    sha256 = "1bms2iwmvnvpz5jqq3r52glarqkafif47zbh1ykz8hw85d2mfkps";
   };
 
   buildInputs = [ libjpeg libtiff giflib libpng bzip2 freetype libid3tag ]
diff --git a/pkgs/development/libraries/libssh/default.nix b/pkgs/development/libraries/libssh/default.nix
index 1ec15e88f13d7..e67ecea077648 100644
--- a/pkgs/development/libraries/libssh/default.nix
+++ b/pkgs/development/libraries/libssh/default.nix
@@ -1,23 +1,13 @@
 { stdenv, fetchurl, fetchpatch, pkgconfig, cmake, zlib, openssl, libsodium }:
 
 stdenv.mkDerivation rec {
-  name = "libssh-0.7.6";
+  name = "libssh-0.8.4";
 
   src = fetchurl {
-    url = "https://www.libssh.org/files/0.7/libssh-0.7.6.tar.xz";
-    sha256 = "14hhdpn2hflywsi9d5bz2pfjxqkyi07znjij89cpakr7b4w7sq0x";
+    url = "https://www.libssh.org/files/0.8/${name}.tar.xz";
+    sha256 = "06xqfm1alfb6faqzjhyhjs0arjcd8rnc7ci046x8d18s089pgc3b";
   };
 
-  patches = [
-    # Fix mysql-workbench compilation
-    # https://bugs.mysql.com/bug.php?id=91923
-    (fetchpatch {
-      name = "include-fix-segfault-in-getissuebanner-add-missing-wrappers-in-libsshpp.patch";
-      url = https://git.libssh.org/projects/libssh.git/patch/?id=5ea81166bf885d0fd5d4bb232fc22633f5aaf3c4;
-      sha256 = "12q818l3nasqrfrsghxdvjcyya1bfcg0idvsf8xwm5zj7criln0a";
-    })
-  ];
-
   postPatch = ''
     # Fix headers to use libsodium instead of NaCl
     sed -i 's,nacl/,sodium/,g' ./include/libssh/curve25519.h src/curve25519.c
diff --git a/pkgs/development/libraries/libwacom/default.nix b/pkgs/development/libraries/libwacom/default.nix
index 67563e41d01fd..6cfc5060b6108 100644
--- a/pkgs/development/libraries/libwacom/default.nix
+++ b/pkgs/development/libraries/libwacom/default.nix
@@ -1,15 +1,17 @@
-{ fetchurl, stdenv, glib, pkgconfig, udev, libgudev }:
+{ stdenv, fetchFromGitHub, autoreconfHook, glib, pkgconfig, udev, libgudev }:
 
 stdenv.mkDerivation rec {
   name = "libwacom-${version}";
-  version = "0.29";
+  version = "0.31";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/linuxwacom/libwacom/${name}.tar.bz2";
-    sha256 = "1diklgcjhmvcxi9p1ifp6wcnyr6k7z9jhrlzfhzjqd6zipk01slw";
+  src = fetchFromGitHub {
+    owner = "linuxwacom";
+    repo = "libwacom";
+    rev = "libwacom-${version}";
+    sha256 = "0qjd4bn2abwzic34cm0sw3srx02spszbsvfdbzbpn2cb62b5gjmw";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ glib udev libgudev ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index 471684ea7ddc8..e1b4067b5c363 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -18,11 +18,11 @@ let inherit (stdenv.lib) optional; in
 
 stdenv.mkDerivation rec {
   name = "nghttp2-${version}";
-  version = "1.32.0";
+  version = "1.34.0";
 
   src = fetchurl {
     url = "https://github.com/nghttp2/nghttp2/releases/download/v${version}/nghttp2-${version}.tar.bz2";
-    sha256 = "0jlndbp4bnyvdg8b59pznrzz0bvwb9nmag7zgcflg51lm1pq2q06";
+    sha256 = "1l5rir8d73x97p3p1x4l8cawjc9m2adnippnb27fmrbcd3rfaxbl";
   };
 
   outputs = [ "bin" "out" "dev" "lib" ];
diff --git a/pkgs/development/python-modules/Cython/default.nix b/pkgs/development/python-modules/Cython/default.nix
index 53e9ec270acfd..d419173197336 100644
--- a/pkgs/development/python-modules/Cython/default.nix
+++ b/pkgs/development/python-modules/Cython/default.nix
@@ -13,6 +13,7 @@
 
 let
   excludedTests = []
+    ++ [ "reimport_from_subinterpreter" ]
     # cython's testsuite is not working very well with libc++
     # We are however optimistic about things outside of testsuite still working
     ++ stdenv.lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ]
@@ -25,11 +26,11 @@ let
 
 in buildPythonPackage rec {
   pname = "Cython";
-  version = "0.28.5";
+  version = "0.29";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b64575241f64f6ec005a4d4137339fb0ba5e156e826db2fdb5f458060d9979e0";
+    sha256 = "15zama7fgp7yyi3z39xp3z2lvwcgch8fn3ycscw2cs37vqg6v4cl";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aioeventlet/default.nix b/pkgs/development/python-modules/aioeventlet/default.nix
new file mode 100644
index 0000000000000..73d4b278058ef
--- /dev/null
+++ b/pkgs/development/python-modules/aioeventlet/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, eventlet
+, trollius
+, asyncio
+, mock
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "aioeventlet";
+  version = "0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "19krvycaiximchhv1hcfhz81249m3w3jrbp2h4apn1yf4yrc4y7y";
+  };
+
+  propagatedBuildInputs = [ eventlet trollius asyncio ];
+  buildInputs = [ mock ];
+
+  # 2 tests error out
+  doCheck = false;
+  checkPhase = ''
+    ${python.interpreter} runtests.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "aioeventlet implements the asyncio API (PEP 3156) on top of eventlet. It makes";
+    homepage = http://aioeventlet.readthedocs.org/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index 01922f98c402b..0174bb3a02906 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "18.8.2";
+  version = "18.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "448df2e241011ea2948799918930042d81e63d26b01912c472f5a9a37f42f319";
+    sha256 = "b5767bebd94ba13fc286604f889f208e7babc77d72d9f372d331bc14c89c5a40";
   };
 
   propagatedBuildInputs = [ six txaio twisted zope_interface cffi ] ++
diff --git a/pkgs/development/python-modules/bootstrapped-pip/default.nix b/pkgs/development/python-modules/bootstrapped-pip/default.nix
index d482b7a8c88b4..869eaa1663ff3 100644
--- a/pkgs/development/python-modules/bootstrapped-pip/default.nix
+++ b/pkgs/development/python-modules/bootstrapped-pip/default.nix
@@ -3,9 +3,9 @@
 let
   wheel_source = fetchPypi {
     pname = "wheel";
-    version = "0.32.1";
+    version = "0.32.2";
     format = "wheel";
-    sha256 = "15hizylh761jcaz8zfdc3wg30jf33izaakyv1p82ppx2y5rgg8cz";
+    sha256 = "1216licil12jjixfqvkb84xkync5zz0fdc2kgzhl362z3xqjsgn9";
   };
   setuptools_source = fetchPypi {
     pname = "setuptools";
diff --git a/pkgs/development/python-modules/fasteners/default.nix b/pkgs/development/python-modules/fasteners/default.nix
new file mode 100644
index 0000000000000..77a6f9b040884
--- /dev/null
+++ b/pkgs/development/python-modules/fasteners/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, monotonic
+, testtools
+, python
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "fasteners";
+  version = "0.14.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "063y20kx01ihbz2mziapmjxi2cd0dq48jzg587xdsdp07xvpcz22";
+  };
+
+  propagatedBuildInputs = [ six monotonic testtools ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  # Tests are written for Python 3.x only (concurrent.futures)
+  doCheck = isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Fasteners";
+    homepage = https://github.com/harlowja/fasteners;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/geoalchemy2/default.nix b/pkgs/development/python-modules/geoalchemy2/default.nix
new file mode 100644
index 0000000000000..ca99f73c02135
--- /dev/null
+++ b/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, sqlalchemy
+, shapely
+}:
+
+buildPythonPackage rec {
+  pname = "GeoAlchemy2";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0p2h1kgl5b0jz8wadx485vjh1mmm5s67p71yxh9lhp1441hkfswf";
+  };
+
+  propagatedBuildInputs = [ sqlalchemy shapely ];
+
+  meta = with stdenv.lib; {
+    homepage =  http://geoalchemy.org/;
+    license = licenses.mit;
+    description = "Toolkit for working with spatial databases";
+  };
+
+}
diff --git a/pkgs/development/python-modules/geopy/default.nix b/pkgs/development/python-modules/geopy/default.nix
new file mode 100644
index 0000000000000..160a519ee1041
--- /dev/null
+++ b/pkgs/development/python-modules/geopy/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, mock
+, tox
+, pylint
+}:
+
+buildPythonPackage rec {
+  pname = "geopy";
+  version = "1.11.0";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04j1lxcsfyv03h0n0q7p2ig7a4n13x4x20fzxn8bkazpx6lyal22";
+  };
+
+  doCheck = false;  # too much
+
+  buildInputs = [ mock tox pylint ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/geopy/geopy";
+    description = "Python Geocoding Toolbox";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix
index 49f44bb16e44b..8cbc08dbbfd04 100644
--- a/pkgs/development/python-modules/gst-python/default.nix
+++ b/pkgs/development/python-modules/gst-python/default.nix
@@ -1,38 +1,52 @@
-{ buildPythonPackage, fetchurl, stdenv, meson, ninja, pkgconfig, python, pygobject3
-, gst-plugins-base, ncurses
+{ buildPythonPackage, fetchurl, meson, ninja, stdenv, pkgconfig, python, pygobject3
+, gobjectIntrospection, gst-plugins-base, isPy3k
 }:
 
 let
   pname = "gst-python";
-  version = "1.14.2";
+  version = "1.14.4";
   name = "${pname}-${version}";
 in buildPythonPackage rec {
   inherit pname version;
   format = "other";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchurl {
     urls = [
       "${meta.homepage}/src/gst-python/${name}.tar.xz"
       "mirror://gentoo/distfiles/${name}.tar.xz"
       ];
-    sha256 = "08nb011acyvlz48fqh8c084k0dlssz9b7wha7zzk797inidbwh6w";
+    sha256 = "06ssx19fs6pg4d32p9ph9w4f0xwmxaw2dxfj17rqkn5njd7v5zfh";
   };
 
-  outputs = [ "out" "dev" ];
+  patches = [
+    # Meson build does not support Python 2 at the moment
+    # https://bugzilla.gnome.org/show_bug.cgi?id=796092
+    (fetchurl {
+      name = "0002-meson-use-new-python-module.patch";
+      url = https://bugzilla.gnome.org/attachment.cgi?id=371989;
+      sha256 = "1k46nvw175c1wvkqnx783i9d4w9vn431spcl48jb3y224jj3va08";
+    })
+  ];
 
-  nativeBuildInputs = [ meson ninja pkgconfig python ];
+  # TODO: First python_dep in meson.build needs to be removed
+  postPatch = ''
+    substituteInPlace meson.build --replace python3 python${if isPy3k then "3" else "2"}
+  '';
 
-  # XXX: in the Libs.private field of python3.pc
-  buildInputs = [ ncurses ];
+  nativeBuildInputs = [ meson ninja pkgconfig python gobjectIntrospection ];
 
   mesonFlags = [
-    "-Dpygi-overrides-dir=${python.sitePackages}/gi/overrides"
+    "-Dpython=python${if isPy3k then "3" else "2"}"
+    "-Dpygi-overrides-dir=${placeholder "out"}/${python.sitePackages}/gi/overrides"
   ];
 
-  postPatch = ''
-    chmod +x scripts/pythondetector # patchShebangs requires executable file
-    patchShebangs scripts/pythondetector
-  '';
+  doCheck = true;
+
+  # TODO: Meson setup hook does not like buildPythonPackage
+  # https://github.com/NixOS/nixpkgs/issues/47390
+  installCheckPhase = "meson test --print-errorlogs";
 
   propagatedBuildInputs = [ gst-plugins-base pygobject3 ];
 
diff --git a/pkgs/development/python-modules/gst-python/different-path-with-pygobject.patch b/pkgs/development/python-modules/gst-python/different-path-with-pygobject.patch
deleted file mode 100644
index 7326b3630f703..0000000000000
--- a/pkgs/development/python-modules/gst-python/different-path-with-pygobject.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -Nru gst-python-1.2.0-orig/gi/overrides/Makefile.in gst-python-1.2.0/gi/overrides/Makefile.in
---- gst-python-1.2.0-orig/gi/overrides/Makefile.in	2014-03-22 21:47:56.235364405 +0800
-+++ gst-python-1.2.0/gi/overrides/Makefile.in	2014-03-22 21:48:28.737958066 +0800
-@@ -356,7 +356,7 @@
- 
- # We install everything in the gi/overrides folder
- pygioverridesdir = $(PYGI_OVERRIDES_DIR)
--pygioverrides_PYTHON = Gst.py GstPbutils.py
-+pygioverrides_PYTHON = Gst.py GstPbutils.py __init__.py
- pygioverridesexecdir = $(PYGI_OVERRIDES_DIR)
- EXTRA_DIST = Gst.py
- INCLUDES = $(PYTHON_INCLUDES)
-diff -Nru gst-python-1.2.0-orig/gi/overrides/__init__.py gst-python-1.2.0/gi/overrides/__init__.py
---- gst-python-1.2.0-orig/gi/overrides/__init__.py	1970-01-01 08:00:00.000000000 +0800
-+++ gst-python-1.2.0/gi/overrides/__init__.py	2014-03-22 21:48:15.442124287 +0800
-@@ -0,0 +1,4 @@
-+from pkgutil import extend_path
-+
-+__path__ = extend_path(__path__, __name__)
-+print(__path__, __name__)
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index 5694ea92405c6..71eced5c7eeb6 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -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.66.2";
+  version = "3.79.3";
   pname = "hypothesis";
 
   # Use github tarballs that includes tests
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis-python";
     rev = "hypothesis-python-${version}";
-    sha256 = "17ywbwa76z7f0pgash0003fvm25fsj7hxdrdiprdbv99y3i8bm88";
+    sha256 = "1ay0kwh5315scv7yz9xxrr7shynyx6flgplc1qzbz3j21cyx3yn7";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
diff --git a/pkgs/development/python-modules/isodate/default.nix b/pkgs/development/python-modules/isodate/default.nix
new file mode 100644
index 0000000000000..cc4594e97709a
--- /dev/null
+++ b/pkgs/development/python-modules/isodate/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "isodate";
+  version = "0.5.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "42105c41d037246dc1987e36d96f3752ffd5c0c24834dd12e4fdbe1e79544e31";
+  };
+
+  # Judging from SyntaxError
+  doCheck = !(isPy3k);
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -s src/isodate/tests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "ISO 8601 date/time parser";
+    homepage = http://cheeseshop.python.org/pypi/isodate;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/kaa-base/default.nix b/pkgs/development/python-modules/kaa-base/default.nix
new file mode 100644
index 0000000000000..f0994cebe1115
--- /dev/null
+++ b/pkgs/development/python-modules/kaa-base/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, isPy3k
+, python
+}:
+
+buildPythonPackage rec {
+  version = "0.99.2dev-384-2b73caca";
+  pname = "kaa-base";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0k3zzz84wzz9q1fl3vvqr2ys96z9pcf4viq9q6s2a63zaysmcfd2";
+  };
+
+  doCheck = false;
+
+  disabled = isPyPy || isPy3k;
+
+  # Same as in buildPythonPackage except that it does not pass --old-and-unmanageable
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/lib/${python.libPrefix}/site-packages"
+
+    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+
+    ${python}/bin/${python.executable} setup.py install \
+      --install-lib=$out/lib/${python.libPrefix}/site-packages \
+      --prefix="$out"
+
+    eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
+    if [ -e "$eapth" ]; then
+    mv "$eapth" $(dirname "$eapth")/${pname}-${version}.pth
+    fi
+
+    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Generic application framework, providing the foundation for other modules";
+    homepage = https://github.com/freevo/kaa-base;
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/kaa-metadata/default.nix b/pkgs/development/python-modules/kaa-metadata/default.nix
new file mode 100644
index 0000000000000..d78adf7fd39d1
--- /dev/null
+++ b/pkgs/development/python-modules/kaa-metadata/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, kaa-base
+, isPyPy
+, isPy3k
+, python
+, pkgs
+}:
+
+buildPythonPackage rec {
+  version = "0.7.8dev-r4569-20111003";
+  pname = "kaa-metadata";
+  disabled = isPyPy || isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0bkbzfgxvmby8lvzkqjp86anxvv3vjd9nksv2g4l7shsk1n7y27a";
+  };
+
+  doCheck = false;
+
+  buildInputs = [ pkgs.libdvdread ];
+
+  propagatedBuildInputs = [ kaa-base ];
+
+  # Same as in buildPythonPackage except that it does not pass --old-and-unmanageable
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/lib/${python.libPrefix}/site-packages"
+
+    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+
+    ${python}/bin/${python.executable} setup.py install \
+      --install-lib=$out/lib/${python.libPrefix}/site-packages \
+      --prefix="$out"
+
+    eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
+    if [ -e "$eapth" ]; then
+    mv "$eapth" $(dirname "$eapth")/${pname}-${version}.pth
+    fi
+
+    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python library for parsing media metadata, which can extract metadata (e.g., such as id3 tags) from a wide range of media files";
+    homepage = https://github.com/freevo/kaa-metadata;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/lz4/default.nix b/pkgs/development/python-modules/lz4/default.nix
new file mode 100644
index 0000000000000..adc0042a52e52
--- /dev/null
+++ b/pkgs/development/python-modules/lz4/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "lz4";
+  version = "0.8.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1irad4sq4hdr30fr53smvv3zzk4rddcf9b4jx19w8s9xsxhr1x3b";
+  };
+
+  buildInputs = [ nose ];
+
+  meta = with stdenv.lib; {
+    description = "Compression library";
+    homepage = https://github.com/python-lz4/python-lz4;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mmpython/default.nix b/pkgs/development/python-modules/mmpython/default.nix
new file mode 100644
index 0000000000000..c35b2e35cfb89
--- /dev/null
+++ b/pkgs/development/python-modules/mmpython/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPyPy
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "0.4.10";
+  pname = "mmpython";
+
+  src = fetchurl {
+    url = http://sourceforge.net/projects/mmpython/files/latest/download;
+    sha256 = "1b7qfad3shgakj37gcj1b9h78j1hxlz6wp9k7h76pb4sq4bfyihy";
+    name = "${pname}-${version}.tar.gz";
+  };
+
+  disabled = isPyPy || isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Media Meta Data retrieval framework";
+    homepage = https://sourceforge.net/projects/mmpython/;
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mongodict/default.nix b/pkgs/development/python-modules/mongodict/default.nix
new file mode 100644
index 0000000000000..932160bb9fad6
--- /dev/null
+++ b/pkgs/development/python-modules/mongodict/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pymongo
+}:
+
+buildPythonPackage rec {
+  pname = "mongodict";
+  version = "0.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nv5amfs337m0gbxpjb0585s20rndqfc3mfrzq1iwgnds5gxcrlw";
+  };
+
+  propagatedBuildInputs = [ pymongo ];
+
+  meta = with stdenv.lib; {
+    description = "MongoDB-backed Python dict-like interface";
+    homepage = "https://github.com/turicas/mongodict/";
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mox3/default.nix b/pkgs/development/python-modules/mox3/default.nix
new file mode 100644
index 0000000000000..8701ea177b022
--- /dev/null
+++ b/pkgs/development/python-modules/mox3/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, subunit
+, testrepository
+, testtools
+, six
+, pbr
+, fixtures
+, isPy36
+}:
+
+buildPythonPackage rec {
+  pname = "mox3";
+  version = "0.23.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0q26sg0jasday52a7y0cch13l0ssjvr4yqnvswqxsinj1lv5ld88";
+  };
+
+  patchPhase = ''
+    sed -i 's@python@${python.interpreter}@' .testr.conf
+  '';
+
+  buildInputs = [ subunit testrepository testtools six ];
+  propagatedBuildInputs = [ pbr fixtures ];
+
+  #  FAIL: mox3.tests.test_mox.RegexTest.testReprWithFlags
+  #  ValueError: cannot use LOCALE flag with a str pattern
+  doCheck = !isPy36;
+
+  meta = with stdenv.lib; {
+    description = "Mock object framework for Python";
+    homepage = https://docs.openstack.org/mox3/latest/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
index 6e237b2bd9edd..acf41fb539e3c 100644
--- a/pkgs/development/python-modules/numexpr/default.nix
+++ b/pkgs/development/python-modules/numexpr/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , python
 , numpy
+, llvmPackages ? null
 }:
 
 buildPythonPackage rec {
@@ -14,6 +15,17 @@ buildPythonPackage rec {
     sha256 = "ee8bc7201aa2f1962c67d27c326a11eef9df887d7b87b1278a1d4e722bf44375";
   };
 
+  # Remove existing site.cfg, use the one we built for numpy.
+  # Somehow openmp needs to be added to LD_LIBRARY_PATH
+  # https://software.intel.com/en-us/forums/intel-system-studio/topic/611682
+  preBuild = ''
+    rm site.cfg
+    ln -s ${numpy.cfg} site.cfg
+    export LD_LIBRARY_PATH=${llvmPackages.openmp}/lib
+  '';
+
+  buildInputs = [] ++ lib.optional (numpy.blasImplementation == "mkl") llvmPackages.openmp;
+
   propagatedBuildInputs = [ numpy ];
 
   # Run the test suite.
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index 87428f4563d90..5710c9cc7a4e1 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -1,13 +1,27 @@
-{ stdenv, lib, fetchPypi, python, buildPythonPackage, isPyPy, gfortran, pytest, blas }:
+{ stdenv, lib, fetchPypi, python, buildPythonPackage, isPyPy, gfortran, pytest, blas, writeTextFile }:
 
-buildPythonPackage rec {
+let
+  blasImplementation = lib.nameFromURL blas.name "-";
+  cfg = writeTextFile {
+    name = "site.cfg";
+    text = (lib.generators.toINI {} {
+      "${blasImplementation}" = {
+        include_dirs = "${blas}/include";
+        library_dirs = "${blas}/lib";
+      } // lib.optionalAttrs (blasImplementation == "mkl") {
+        mkl_libs = "mkl_rt";
+        lapack_libs = "";
+      };
+    });
+  };
+in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.15.2";
+  version = "1.15.3";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "27a0d018f608a3fe34ac5e2b876f4c23c47e38295c47dd0775cc294cd2614bc1";
+    sha256 = "1c0c80e74759fa4942298044274f2c11b08c86230b25b8b819e55e644f5ff2b6";
   };
 
   disabled = isPyPy;
@@ -39,12 +53,7 @@ buildPythonPackage rec {
   '';
 
   preBuild = ''
-    echo "Creating site.cfg file..."
-    cat << EOF > site.cfg
-    [openblas]
-    include_dirs = ${blas}/include
-    library_dirs = ${blas}/lib
-    EOF
+    ln -s ${cfg} site.cfg
   '';
 
   enableParallelBuilding = true;
@@ -59,8 +68,11 @@ buildPythonPackage rec {
 
   passthru = {
     blas = blas;
+    inherit blasImplementation cfg;
   };
 
+  doCheck = blasImplementation != "mkl";
+
   # Disable two tests
   # - test_f2py: f2py isn't yet on path.
   # - test_large_file_support: takes a long time and can cause the machine to run out of disk space
diff --git a/pkgs/development/python-modules/pagerduty/default.nix b/pkgs/development/python-modules/pagerduty/default.nix
new file mode 100644
index 0000000000000..634de3947a67d
--- /dev/null
+++ b/pkgs/development/python-modules/pagerduty/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pagerduty";
+  version = "0.2.1";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e8c237239d3ffb061069aa04fc5b3d8ae4fb0af16a9713fe0977f02261d323e9";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/samuel/python-pagerduty;
+    description = "Library for the PagerDuty service API";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pamqp/default.nix b/pkgs/development/python-modules/pamqp/default.nix
new file mode 100644
index 0000000000000..89e88476e3775
--- /dev/null
+++ b/pkgs/development/python-modules/pamqp/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+, nose
+, pep8
+, pylint
+, mccabe
+}:
+
+buildPythonPackage rec {
+  version = "1.6.1";
+  pname = "pamqp";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vmyvynqzx5zvbipaxff4fnzy3h3dvl3zicyr15yb816j93jl2ca";
+  };
+
+  buildInputs = [ mock nose pep8 pylint mccabe ];
+
+  meta = with stdenv.lib; {
+    description = "RabbitMQ Focused AMQP low-level library";
+    homepage = https://pypi.python.org/pypi/pamqp;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/parsedatetime/default.nix b/pkgs/development/python-modules/parsedatetime/default.nix
new file mode 100644
index 0000000000000..6548e39078eaf
--- /dev/null
+++ b/pkgs/development/python-modules/parsedatetime/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestrunner
+, future
+}:
+
+buildPythonPackage rec {
+  pname = "parsedatetime";
+  version = "2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vkrmd398s11h1zn3zaqqsiqhj9lwy1ikcg6irx2lrgjzjg3rjll";
+  };
+
+  buildInputs = [ pytest pytestrunner ];
+  propagatedBuildInputs = [ future ];
+
+  meta = with stdenv.lib; {
+    description = "Parse human-readable date/time text";
+    homepage = "https://github.com/bear/parsedatetime";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/parsel/default.nix b/pkgs/development/python-modules/parsel/default.nix
new file mode 100644
index 0000000000000..ef6c795773c8d
--- /dev/null
+++ b/pkgs/development/python-modules/parsel/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestrunner
+, six
+, w3lib
+, lxml
+, cssselect
+}:
+
+buildPythonPackage rec {
+  pname = "parsel";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0a34d1c0bj1fzb5dk5744m2ag6v3b8glk4xp0amqxdan9ldbcd97";
+  };
+
+  buildInputs = [ pytest pytestrunner ];
+  propagatedBuildInputs = [ six w3lib lxml cssselect ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/scrapy/parsel";
+    description = "Parsel is a library to extract data from HTML and XML using XPath and CSS selectors";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/paste/default.nix b/pkgs/development/python-modules/paste/default.nix
new file mode 100644
index 0000000000000..e8aceae062f51
--- /dev/null
+++ b/pkgs/development/python-modules/paste/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "paste";
+  version = "2.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "062jk0nlxf6lb2wwj6zc20rlvrwsnikpkh90y0dn8cjch93s6ii3";
+  };
+
+  checkInputs = [ nose ];
+  propagatedBuildInputs = [ six ];
+
+  # Certain tests require network
+  checkPhase = ''
+    NOSE_EXCLUDE=test_ok,test_form,test_error,test_stderr,test_paste_website nosetests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tools for using a Web Server Gateway Interface stack";
+    homepage = http://pythonpaste.org/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pastedeploy/default.nix b/pkgs/development/python-modules/pastedeploy/default.nix
new file mode 100644
index 0000000000000..433a67da51c9b
--- /dev/null
+++ b/pkgs/development/python-modules/pastedeploy/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  version = "1.5.2";
+  pname = "PasteDeploy";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d5858f89a255e6294e63ed46b73613c56e3b9a2d82a42f1df4d06c8421a9e3cb";
+  };
+
+  buildInputs = [ nose ];
+
+  meta = with stdenv.lib; {
+    description = "Load, configure, and compose WSGI applications and servers";
+    homepage = http://pythonpaste.org/deploy/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pastescript/default.nix b/pkgs/development/python-modules/pastescript/default.nix
new file mode 100644
index 0000000000000..06e71cf790b27
--- /dev/null
+++ b/pkgs/development/python-modules/pastescript/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, six
+, paste
+, PasteDeploy
+, cheetah
+, argparse
+}:
+
+buildPythonPackage rec {
+  version = "1.7.5";
+  pname = "PasteScript";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2b685be69d6ac8bc0fe6f558f119660259db26a15e16a4943c515fbee8093539";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ six paste PasteDeploy cheetah argparse ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A pluggable command-line frontend, including commands to setup package file layouts";
+    homepage = http://pythonpaste.org/script/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/patch/default.nix b/pkgs/development/python-modules/patch/default.nix
new file mode 100644
index 0000000000000..1a7ce9539476e
--- /dev/null
+++ b/pkgs/development/python-modules/patch/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchzip
+}:
+
+buildPythonPackage rec {
+  version = "1.16";
+  pname = "patch";
+
+  src = fetchzip {
+    url = "mirror://pypi/p/${pname}/${pname}-${version}.zip";
+    sha256 = "1nj55hvyvzax4lxq7vkyfbw91pianzr3hp7ka7j12pgjxccac50g";
+    stripRoot = false;
+  };
+
+  # No tests included in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A library to parse and apply unified diffs";
+    homepage = https://github.com/techtonik/python-patch/;
+    license = licenses.mit;
+    maintainers = [ maintainers.igsha ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pathos/default.nix b/pkgs/development/python-modules/pathos/default.nix
new file mode 100644
index 0000000000000..081e5bb3aa486
--- /dev/null
+++ b/pkgs/development/python-modules/pathos/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, dill
+, pox
+, ppft
+, multiprocess
+}:
+
+buildPythonPackage rec {
+  pname = "pathos";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e35418af733bf434da83746d46acca94375d6e306b3df330b2a1808db026a188";
+  };
+
+  propagatedBuildInputs = [ dill pox ppft multiprocess ];
+
+  # Require network
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Parallel graph management and execution in heterogeneous computing";
+    homepage = http://www.cacr.caltech.edu/~mmckerns/pathos.htm;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pdfkit/default.nix b/pkgs/development/python-modules/pdfkit/default.nix
new file mode 100644
index 0000000000000..c797c57c40f99
--- /dev/null
+++ b/pkgs/development/python-modules/pdfkit/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pdfkit";
+  version = "0.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1p1m6gp51ql3wzjs2iwds8sc3hg1i48yysii9inrky6qc3s6q5vf";
+  };
+
+  # tests are not distributed
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/pdfkit;
+    description = "Wkhtmltopdf python wrapper to convert html to pdf using the webkit rendering engine and qt";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pep8/default.nix b/pkgs/development/python-modules/pep8/default.nix
new file mode 100644
index 0000000000000..9e31063b46111
--- /dev/null
+++ b/pkgs/development/python-modules/pep8/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "pep8";
+  version = "1.7.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a113d5f5ad7a7abacef9df5ec3f2af23a20a28005921577b15dd584d099d5900";
+  };
+
+  # FAIL: test_checkers_testsuite (testsuite.test_all.Pep8TestCase)
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "http://pep8.readthedocs.org/";
+    description = "Python style guide checker";
+    license = licenses.mit;
+    maintainers = with maintainers; [ garbas ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/percol/default.nix b/pkgs/development/python-modules/percol/default.nix
new file mode 100644
index 0000000000000..2ecb6de2d2364
--- /dev/null
+++ b/pkgs/development/python-modules/percol/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "percol";
+  version = "0.0.8";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "169s5mhw1s60qbsd6pkf9bb2x6wfgx8hn8nw9d4qgc68qnnpp2cj";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mooz/percol;
+    description = "Adds flavor of interactive filtering to the traditional pipe concept of shell";
+    license = licenses.mit;
+    maintainers = with maintainers; [ koral ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pexif/default.nix b/pkgs/development/python-modules/pexif/default.nix
new file mode 100644
index 0000000000000..ac1c7de86820b
--- /dev/null
+++ b/pkgs/development/python-modules/pexif/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pexif";
+  version = "0.15";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "45a3be037c7ba8b64bbfc48f3586402cc17de55bb9d7357ef2bc99954a18da3f";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A module for editing JPEG EXIF data";
+    homepage = http://www.benno.id.au/code/pexif/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix
new file mode 100644
index 0000000000000..65301a8c4067b
--- /dev/null
+++ b/pkgs/development/python-modules/pg8000/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "pg8000";
+  version = "1.10.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "188658db63c2ca931ae1bf0167b34efaac0ecc743b707f0118cc4b87e90ce488";
+  };
+
+  propagatedBuildInputs = [ pytz ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/realazthat/aiopg8000;
+    description = "PostgreSQL interface library, for asyncio";
+    maintainers = with maintainers; [ garbas domenkozar ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pgpdump/default.nix b/pkgs/development/python-modules/pgpdump/default.nix
new file mode 100644
index 0000000000000..ea9ef0a156f06
--- /dev/null
+++ b/pkgs/development/python-modules/pgpdump/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pgpdump";
+  version = "1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0s4nh8h7qsdj2yf29bspjs1zvxd4lcd11r6g11dp7fppgf2h0iqw";
+  };
+
+  # Disabling check because of: https://github.com/toofishes/python-pgpdump/issues/18
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python library for parsing PGP packets";
+    homepage = https://github.com/toofishes/python-pgpdump;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pickleshare/default.nix b/pkgs/development/python-modules/pickleshare/default.nix
new file mode 100644
index 0000000000000..4ca4218476586
--- /dev/null
+++ b/pkgs/development/python-modules/pickleshare/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pathpy
+, pathlib2
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  version = "0.7.4";
+  pname = "pickleshare";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "84a9257227dfdd6fe1b4be1319096c20eb85ff1e82c7932f36efccfe1b09737b";
+  };
+
+  propagatedBuildInputs = [ pathpy ]
+    ++ stdenv.lib.optional (pythonOlder "3.4") pathlib2;
+
+  # No proper test suite
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Tiny 'shelve'-like database with concurrency support";
+    homepage = https://github.com/vivainio/pickleshare;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/piep/default.nix b/pkgs/development/python-modules/piep/default.nix
new file mode 100644
index 0000000000000..671f631a40c6e
--- /dev/null
+++ b/pkgs/development/python-modules/piep/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pygments
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "0.8.0";
+  pname = "piep";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wgkg1kc28jpya5k4zvbc9jmpa60b3d5c3gwxfbp15hw6smyqirj";
+  };
+
+  propagatedBuildInputs = [ pygments ];
+
+  meta = with stdenv.lib; {
+    description = "Bringing the power of python to stream editing";
+    homepage = https://github.com/timbertson/piep;
+    maintainers = with maintainers; [ timbertson ];
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pika/default.nix b/pkgs/development/python-modules/pika/default.nix
new file mode 100644
index 0000000000000..3cc1ba3b00fd4
--- /dev/null
+++ b/pkgs/development/python-modules/pika/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, nose
+, mock
+, pyyaml
+, unittest2
+, pyev
+, twisted
+, tornado
+}:
+
+buildPythonPackage rec {
+  pname = "pika";
+  version = "0.10.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nb4h08di432lv7dy2v9kpwgk0w92f24sqc2hw2s9vwr5b8v8xvj";
+  };
+
+  # Tests require twisted which is only availalble for python-2.x
+  doCheck = !isPy3k;
+
+  buildInputs = [ nose mock pyyaml unittest2 pyev ]
+    ++ stdenv.lib.optionals (!isPy3k) [ twisted tornado ];
+
+  meta = with stdenv.lib; {
+    description = "Pure-Python implementation of the AMQP 0-9-1 protocol";
+    homepage = https://pika.readthedocs.org;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/posix_ipc/default.nix b/pkgs/development/python-modules/posix_ipc/default.nix
new file mode 100644
index 0000000000000..0114c9b66eb5e
--- /dev/null
+++ b/pkgs/development/python-modules/posix_ipc/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "posix_ipc";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1jzg66708pi5n9w07fbz6rlxx30cjds9hp2yawjjfryafh1hg4ww";
+  };
+
+  meta = with stdenv.lib; {
+    description = "POSIX IPC primitives (semaphores, shared memory and message queues)";
+    license = licenses.bsd3;
+    homepage = http://semanchuk.com/philip/posix_ipc/;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pox/default.nix b/pkgs/development/python-modules/pox/default.nix
new file mode 100644
index 0000000000000..29a24343f2568
--- /dev/null
+++ b/pkgs/development/python-modules/pox/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pox";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "22e97ac6d2918c754e65a9581dbe02e9d00ae4a54ca48d05118f87c1ea92aa19";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Utilities for filesystem exploration and automated builds";
+    license = licenses.bsd3;
+    homepage = http://www.cacr.caltech.edu/~mmckerns/pox.htm;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ppft/default.nix b/pkgs/development/python-modules/ppft/default.nix
new file mode 100644
index 0000000000000..2a1dd73f96c7f
--- /dev/null
+++ b/pkgs/development/python-modules/ppft/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "ppft";
+  version = "1.6.4.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6f99c861822884cb00badbd5f364ee32b90a157084a6768040793988c6b92bff";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  meta = with stdenv.lib; {
+    description = "Distributed and parallel python";
+    homepage = https://github.com/uqfoundation;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/prettytable/default.nix b/pkgs/development/python-modules/prettytable/default.nix
new file mode 100644
index 0000000000000..2ab9221714440
--- /dev/null
+++ b/pkgs/development/python-modules/prettytable/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, glibcLocales
+}:
+
+buildPythonPackage rec {
+  pname = "prettytable";
+  version = "0.7.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "599bc5b4b9602e28294cf795733c889c26dd934aa7e0ee9cff9b905d4fbad188";
+  };
+
+  buildInputs = [ glibcLocales ];
+
+  preCheck = ''
+    export LANG="en_US.UTF-8"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
+    homepage = http://code.google.com/p/prettytable/;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/process-tests/default.nix b/pkgs/development/python-modules/process-tests/default.nix
new file mode 100644
index 0000000000000..8f8bbc59d4fef
--- /dev/null
+++ b/pkgs/development/python-modules/process-tests/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "process-tests";
+  version = "1.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "65c9d7a0260f31c15b4a22a851757e61f7072d0557db5f8a976112fbe81ff7e9";
+  };
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Tools for testing processes";
+    license = licenses.bsd2;
+    homepage = https://github.com/ionelmc/python-process-tests;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ptest/default.nix b/pkgs/development/python-modules/ptest/default.nix
new file mode 100644
index 0000000000000..0de6f98828fe5
--- /dev/null
+++ b/pkgs/development/python-modules/ptest/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "ptest";
+  version =  "1.5.3";
+
+  src = fetchFromGitHub {
+    owner = "KarlGong";
+    repo = pname;
+    rev = version + "-release";
+    sha256 = "1r50lm6n59jzdwpp53n0c0hp3aj1jxn304bk5gh830226gsaf2hn";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Test classes and test cases using decorators, execute test cases by command line, and get clear reports";
+    homepage = https://pypi.python.org/pypi/ptest;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/purepng/default.nix b/pkgs/development/python-modules/purepng/default.nix
new file mode 100644
index 0000000000000..49e4d93a5342f
--- /dev/null
+++ b/pkgs/development/python-modules/purepng/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "purepng";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1kcl7a6d7d59360fbz2jwfk6ha6pmqgn396962p4s62j893d2r0d";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Pure Python library for PNG image encoding/decoding";
+    homepage    = https://github.com/scondo/purepng;
+    license     = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/py/default.nix b/pkgs/development/python-modules/py/default.nix
index 14ffb8e2773a1..5f41a88d26e8d 100644
--- a/pkgs/development/python-modules/py/default.nix
+++ b/pkgs/development/python-modules/py/default.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
 buildPythonPackage rec {
   pname = "py";
-  version = "1.5.4";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3fd59af7435864e1a243790d322d763925431213b6b8529c6ca71081ace3bbf7";
+    sha256 = "bf92637198836372b520efcba9e020c330123be8ce527e535d185ed4b6f45694";
   };
 
   # Circular dependency on pytest
diff --git a/pkgs/development/python-modules/pyacoustid/default.nix b/pkgs/development/python-modules/pyacoustid/default.nix
new file mode 100644
index 0000000000000..ba7879554a836
--- /dev/null
+++ b/pkgs/development/python-modules/pyacoustid/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, requests
+, audioread
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pyacoustid";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0117039cb116af245e6866e8e8bf3c9c8b2853ad087142bd0c2dfc0acc09d452";
+  };
+
+  propagatedBuildInputs = [ requests audioread ];
+
+  patches = [ ./pyacoustid-py3.patch ];
+
+  postPatch = ''
+    sed -i \
+        -e '/^FPCALC_COMMAND *=/s|=.*|= "${pkgs.chromaprint}/bin/fpcalc"|' \
+        acoustid.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Bindings for Chromaprint acoustic fingerprinting";
+    homepage = "https://github.com/sampsyo/pyacoustid";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyacoustid-py3.patch b/pkgs/development/python-modules/pyacoustid/pyacoustid-py3.patch
index f79b35fd345e6..f79b35fd345e6 100644
--- a/pkgs/development/python-modules/pyacoustid-py3.patch
+++ b/pkgs/development/python-modules/pyacoustid/pyacoustid-py3.patch
diff --git a/pkgs/development/python-modules/pyalgotrade/default.nix b/pkgs/development/python-modules/pyalgotrade/default.nix
new file mode 100644
index 0000000000000..b9752a71f5151
--- /dev/null
+++ b/pkgs/development/python-modules/pyalgotrade/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, numpy
+, scipy
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "pyalgotrade";
+  version = "0.16";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a253617254194b91cfebae7bfd184cb109d4e48a8c70051b9560000a2c0f94b3";
+  };
+
+  propagatedBuildInputs = [ numpy scipy pytz ];
+
+  meta = with stdenv.lib; {
+    description = "Python Algorithmic Trading";
+    homepage = http://gbeced.github.io/pyalgotrade/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyaudio/default.nix b/pkgs/development/python-modules/pyaudio/default.nix
new file mode 100644
index 0000000000000..2f788966718c5
--- /dev/null
+++ b/pkgs/development/python-modules/pyaudio/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "python-pyaudio";
+  version = "0.2.9";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "bfd694272b3d1efc51726d0c27650b3c3ba1345f7f8fdada7e86c9751ce0f2a1";
+  };
+
+  buildInputs = [ pkgs.portaudio ];
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for PortAudio";
+    homepage = "http://people.csail.mit.edu/hubert/pyaudio/";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pybcrypt/default.nix b/pkgs/development/python-modules/pybcrypt/default.nix
new file mode 100644
index 0000000000000..3f9f3b69a78a8
--- /dev/null
+++ b/pkgs/development/python-modules/pybcrypt/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pybcrypt";
+  version = "0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5fa13bce551468350d66c4883694850570f3da28d6866bb638ba44fe5eabda78";
+  };
+
+  meta = with stdenv.lib; {
+    description = "bcrypt password hashing and key derivation";
+    homepage = https://code.google.com/p/py-bcrypt2;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyblock/default.nix b/pkgs/development/python-modules/pyblock/default.nix
new file mode 100644
index 0000000000000..1be0ad1d4c733
--- /dev/null
+++ b/pkgs/development/python-modules/pyblock/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchurl
+, python
+, pkgs
+, isPy3k
+}:
+
+stdenv.mkDerivation rec {
+  name = "pyblock-${version}";
+  version = "0.53";
+  md5_path = "f6d33a8362dee358517d0a9e2ebdd044";
+
+  src = pkgs.fetchurl rec {
+    url = "http://src.fedoraproject.org/repo/pkgs/python-pyblock/"
+        + "${name}.tar.bz2/${md5_path}/${name}.tar.bz2";
+    sha256 = "f6cef88969300a6564498557eeea1d8da58acceae238077852ff261a2cb1d815";
+  };
+
+  postPatch = ''
+    sed -i -e 's|/usr/include/python|${python}/include/python|' \
+           -e 's/-Werror *//' -e 's|/usr/|'"$out"'/|' Makefile
+  '';
+
+  buildInputs = [ python pkgs.lvm2 pkgs.dmraid ];
+
+  makeFlags = [
+    "USESELINUX=0"
+    "SITELIB=$(out)/${python.sitePackages}"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://www.centos.org/docs/5/html/5.4/Technical_Notes/python-pyblock.html;
+    description = "Interface for working with block devices";
+    license = licenses.gpl2Plus;
+    broken = isPy3k; # doesn't build on python 3, 2018-04-11
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyblosxom/default.nix b/pkgs/development/python-modules/pyblosxom/default.nix
new file mode 100644
index 0000000000000..dfb3e94ba2765
--- /dev/null
+++ b/pkgs/development/python-modules/pyblosxom/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pygments
+, markdown
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyblosxom";
+  version = "1.5.3";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = "https://github.com/pyblosxom/pyblosxom/archive/v${version}.tar.gz";
+    sha256 = "0de9a7418f4e6d1c45acecf1e77f61c8f96f036ce034493ac67124626fd0d885";
+  };
+
+  propagatedBuildInputs = [ pygments markdown ];
+
+  # FAIL:test_generate_entry and test_time
+  # both tests fail due to time issue that doesn't seem to matter in practice
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "http://pyblosxom.github.io";
+    description = "File-based blogging engine";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycapnp/default.nix b/pkgs/development/python-modules/pycapnp/default.nix
new file mode 100644
index 0000000000000..2ba0e653e774a
--- /dev/null
+++ b/pkgs/development/python-modules/pycapnp/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, capnproto
+, cython
+, isPyPy
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pycapnp";
+  version = "0.6.3";
+  disabled = isPyPy || isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b3c5a1fcc93fd02fdc070aeccb89654b87f20bdc740f643cc6378925ed6d4c17";
+  };
+
+  buildInputs = [ capnproto cython ];
+
+  # import setuptools as soon as possible, to minimize monkeypatching mayhem.
+  postConfigure = ''
+    sed -i '3iimport setuptools' setup.py
+  '';
+
+  meta = with stdenv.lib; {
+    maintainers = with maintainers; [ cstrahan ];
+    license = licenses.bsd2;
+    homepage = "http://jparyani.github.io/pycapnp/index.html";
+    broken = true; # 2018-04-11
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycarddav/default.nix b/pkgs/development/python-modules/pycarddav/default.nix
new file mode 100644
index 0000000000000..c5c6182e4e064
--- /dev/null
+++ b/pkgs/development/python-modules/pycarddav/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+, vobject
+, lxml
+, requests
+, urwid
+, pyxdg
+}:
+
+buildPythonPackage rec {
+  version = "0.7.0";
+  pname = "pycarddav";
+  disabled = isPy3k || isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0avkrcpisfvhz103v7vmq2jd83hvmpqrb4mlbx6ikkk1wcvclsx8";
+  };
+
+  propagatedBuildInputs = [ vobject lxml requests urwid pyxdg ];
+
+  meta = with stdenv.lib; {
+    description = "Command-line interface carddav client";
+    homepage = http://lostpackets.de/pycarddav;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycdio/default.nix b/pkgs/development/python-modules/pycdio/default.nix
new file mode 100644
index 0000000000000..4c7dc52e79b90
--- /dev/null
+++ b/pkgs/development/python-modules/pycdio/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, nose
+, pkgs
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "pycdio";
+  version = "2.0.0";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1a1h0lmfl56a2a9xqhacnjclv81nv3906vdylalybxrk4bhrm3hj";
+  };
+
+  prePatch = "sed -i -e '/DRIVER_BSDI/d' pycdio.py";
+
+  preConfigure = ''
+    patchShebangs .
+  '';
+
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  buildInputs = [ setuptools nose pkgs.swig pkgs.libcdio ]
+    ++ stdenv.lib.optional stdenv.isDarwin pkgs.libiconv;
+
+  # Run tests using nosetests but first need to install the binaries
+  # to the root source directory where they can be found.
+  checkPhase = ''
+    ./setup.py install_lib -d .
+    nosetests
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gnu.org/software/libcdio/;
+    description = "Wrapper around libcdio (CD Input and Control library)";
+    maintainers = with maintainers; [ rycee ];
+    license = licenses.gpl3Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycodestyle/default.nix b/pkgs/development/python-modules/pycodestyle/default.nix
index 69b8e2bc0d150..43a8e6f9f450a 100644
--- a/pkgs/development/python-modules/pycodestyle/default.nix
+++ b/pkgs/development/python-modules/pycodestyle/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi, fetchpatch }:
 
 buildPythonPackage rec {
   pname = "pycodestyle";
@@ -9,6 +9,14 @@ buildPythonPackage rec {
     sha256 = "cbfca99bd594a10f674d0cd97a3d802a1fdef635d4361e1a2658de47ed261e3a";
   };
 
+  patches = [
+    # https://github.com/PyCQA/pycodestyle/pull/801
+    (fetchpatch {
+      url = https://github.com/PyCQA/pycodestyle/commit/397463014fda3cdefe8d6c9d117ae16d878dc494.patch;
+      sha256 = "01zask2y2gim5il9lcmlhr2qaadv9v7kaw1y619l8xbjhpbq2zh8";
+    })
+  ];
+
   meta = with lib; {
     description = "Python style guide checker (formerly called pep8)";
     homepage = https://pycodestyle.readthedocs.io;
diff --git a/pkgs/development/python-modules/pycryptopp/default.nix b/pkgs/development/python-modules/pycryptopp/default.nix
new file mode 100644
index 0000000000000..785da4f6dc883
--- /dev/null
+++ b/pkgs/development/python-modules/pycryptopp/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+, setuptoolsDarcs
+, darcsver
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pycryptopp";
+  version = "0.6.0.1206569328141510525648634803928199668821045408958";
+  disabled = isPy3k || isPyPy;  # see https://bitbucket.org/pypy/pypy/issue/1190/
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0n90h1yg7bfvlbhnc54xb6dbqm286ykaksyg04kxlhyjgf8mhq8i";
+  };
+
+  # Prefer crypto++ library from the Nix store over the one that's included
+  # in the pycryptopp distribution.
+  preConfigure = "export PYCRYPTOPP_DISABLE_EMBEDDED_CRYPTOPP=1";
+
+  buildInputs = [ setuptoolsDarcs darcsver pkgs.cryptopp ];
+
+  meta = with stdenv.lib; {
+    homepage = http://allmydata.org/trac/pycryptopp;
+    description = "Python wrappers for the Crypto++ library";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycurl2/default.nix b/pkgs/development/python-modules/pycurl2/default.nix
new file mode 100644
index 0000000000000..9b04f2b6fcb4e
--- /dev/null
+++ b/pkgs/development/python-modules/pycurl2/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, isPy3k
+, simplejson
+, unittest2
+, nose
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pycurl2";
+  version = "7.20.0";
+  disabled = isPy3k;
+
+  src = fetchgit {
+    url = "https://github.com/Lispython/pycurl.git";
+    rev = "0f00109950b883d680bd85dc6e8a9c731a7d0d13";
+    sha256 = "1qmw3cm93kxj94s71a8db9lwv2cxmr2wjv7kp1r8zildwdzhaw7j";
+  };
+
+  # error: (6, "Couldn't resolve host 'h.wrttn.me'")
+  doCheck = false;
+
+  buildInputs = [ pkgs.curl simplejson unittest2 nose ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/pycurl2;
+    description = "A fork from original PycURL library that no maintained from 7.19.0";
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pydispatcher/default.nix b/pkgs/development/python-modules/pydispatcher/default.nix
new file mode 100644
index 0000000000000..29d464587a0ad
--- /dev/null
+++ b/pkgs/development/python-modules/pydispatcher/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  version = "2.0.5";
+  pname = "pydispatcher";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bswbmhlbqdxlgbxlb6xrlm4k253sg8nvpl1whgsys8p3fg0cw2m";
+  };
+
+  buildInputs = [ pytest ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://pydispatcher.sourceforge.net/;
+    description = "Signal-registration and routing infrastructure for use in multiple contexts";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pydot_ng/default.nix b/pkgs/development/python-modules/pydot_ng/default.nix
new file mode 100644
index 0000000000000..a96c03bed4f15
--- /dev/null
+++ b/pkgs/development/python-modules/pydot_ng/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyparsing
+, pytest
+, unittest2
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pydot_ng";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0h8k8wlzvnb40v4js7afgfyhp3wasmb1kg4gr6z7ck63iv8fq864";
+  };
+
+  buildInputs = [ pytest unittest2 ];
+  propagatedBuildInputs = [ pkgs.graphviz pyparsing ];
+
+  checkPhase = ''
+    mkdir test/my_tests
+    py.test test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://pypi.python.org/pypi/pydot-ng";
+    description = "Python 3-compatible update of pydot, a Python interface to Graphviz's Dot";
+    license = licenses.mit;
+    maintainers = [ maintainers.bcdarwin ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyelftools/default.nix b/pkgs/development/python-modules/pyelftools/default.nix
new file mode 100644
index 0000000000000..cb3e77f0e8d92
--- /dev/null
+++ b/pkgs/development/python-modules/pyelftools/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pyelftools";
+  version = "0.24";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17259kf6hwwsmizr5myp9jv3k9g5i3dvmnl8m646pfd5hpb9gpg9";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} test/all_tests.py
+  '';
+
+  # Tests cannot pass against system-wide readelf
+  # https://github.com/eliben/pyelftools/issues/65
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A library for analyzing ELF files and DWARF debugging information";
+    homepage = https://github.com/eliben/pyelftools;
+    license = licenses.publicDomain;
+    maintainers = [ maintainers.igsha ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyenchant/default.nix b/pkgs/development/python-modules/pyenchant/default.nix
new file mode 100644
index 0000000000000..f775612d90ff1
--- /dev/null
+++ b/pkgs/development/python-modules/pyenchant/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pyenchant";
+  version = "1.6.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "25c9d2667d512f8fc4410465fdd2e868377ca07eb3d56e2b6e534a86281d64d3";
+  };
+
+  propagatedBuildInputs = [ pkgs.enchant ];
+
+  patchPhase = let
+    path_hack_script = "s|LoadLibrary(e_path)|LoadLibrary('${pkgs.enchant}/lib/' + e_path)|";
+  in ''
+    sed -i "${path_hack_script}" enchant/_enchant.py
+
+    # They hardcode a bad path for Darwin in their library search code
+    substituteInPlace enchant/_enchant.py --replace '/opt/local/lib/' ""
+  '';
+
+  # dictionaries needed for tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "pyenchant: Python bindings for the Enchant spellchecker";
+    homepage = https://pythonhosted.org/pyenchant/;
+    license = licenses.lgpl21;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyexcelerator/default.nix b/pkgs/development/python-modules/pyexcelerator/default.nix
new file mode 100644
index 0000000000000..2dfb5831f7fee
--- /dev/null
+++ b/pkgs/development/python-modules/pyexcelerator/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyexcelerator";
+  version = "0.6.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18rcnc9f71lj06h8nppnv6idzb7xfmh2rp1zfqayskcg686lilrb";
+  };
+
+  disabled = isPy3k;
+
+  # No tests are included in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "library for generating Excel 97/2000/XP/2003 and OpenOffice Calc compatible spreadsheets.";
+    homepage = "https://sourceforge.net/projects/pyexcelerator";
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ womfoo ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyfantom/default.nix b/pkgs/development/python-modules/pyfantom/default.nix
new file mode 100644
index 0000000000000..1abf04079880e
--- /dev/null
+++ b/pkgs/development/python-modules/pyfantom/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+}:
+
+buildPythonPackage rec {
+  pname = "pyfantom";
+  version = "unstable-2013-12-18";
+
+  src = fetchgit {
+    url = "http://git.ni.fr.eu.org/pyfantom.git";
+    sha256 = "1m53n8bxslq5zmvcf7i1xzsgq5bdsf1z529br5ypmj5bg0s86j4q";
+  };
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://pyfantom.ni.fr.eu.org/;
+    description = "Wrapper for the LEGO Mindstorms Fantom Driver";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyicu/default.nix b/pkgs/development/python-modules/pyicu/default.nix
new file mode 100644
index 0000000000000..4b984566e9194
--- /dev/null
+++ b/pkgs/development/python-modules/pyicu/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, six
+, fetchpatch
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "PyICU";
+  version = "2.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pzss3l0b0vcsyr7wlqdd6pkcqldspajfgd9k2iijf6r152d2ln4";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = https://sources.debian.org/data/main/p/pyicu/2.0.3-1/debian/patches/icu_test.patch;
+      sha256 = "1iavdkyqixm9i753svl17barla93b7jzgkw09dn3hnggamx7zwx9";
+    })
+  ];
+
+  buildInputs = [ pkgs.icu pytest ];
+  propagatedBuildInputs = [ six ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/PyICU/;
+    description = "Python extension wrapping the ICU C++ API";
+    license = licenses.mit;
+    platforms = platforms.linux; # Maybe other non-darwin Unix
+    maintainers = [ maintainers.rycee ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyinotify/default.nix b/pkgs/development/python-modules/pyinotify/default.nix
new file mode 100644
index 0000000000000..0e070d8a89d9e
--- /dev/null
+++ b/pkgs/development/python-modules/pyinotify/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pyinotify";
+  version = "0.9.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1x3i9wmzw33fpkis203alygfnrkcmq9w1aydcm887jh6frfqm6cw";
+  };
+
+  # No tests distributed
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/seb-m/pyinotify/wiki;
+    description = "Monitor filesystems events on Linux platforms with inotify";
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyinputevent/default.nix b/pkgs/development/python-modules/pyinputevent/default.nix
new file mode 100644
index 0000000000000..4709cf0d1167b
--- /dev/null
+++ b/pkgs/development/python-modules/pyinputevent/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  name = "pyinputevent";
+  version = "2016-10-18";
+
+  src = fetchFromGitHub {
+    owner = "ntzrmtthihu777";
+    repo = "pyinputevent";
+    rev = "d2075fa5db5d8a402735fe788bb33cf9fe272a5b";
+    sha256 = "0rkis0xp8f9jc00x7jb9kbvhdla24z1vl30djqa6wy6fx0cr6sib";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ntzrmtthihu777/pyinputevent";
+    description = "Python interface to the Input Subsystem's input_event and uinput";
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyinsane2/default.nix b/pkgs/development/python-modules/pyinsane2/default.nix
new file mode 100644
index 0000000000000..cf44538b746b6
--- /dev/null
+++ b/pkgs/development/python-modules/pyinsane2/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, pillow
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pyinsane2";
+  version = "2.0.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "00d1wqb3w9bn1rxb2dwmdqbar2lr96izq855l5vzprc17dkgip3j";
+  };
+
+  # This is needed by setup.py regardless of whether tests are enabled.
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ pillow ];
+
+  postPatch = ''
+    # pyinsane2 forks itself, so we need to re-inject the PYTHONPATH.
+    sed -i -e '/os.putenv.*PYINSANE_DAEMON/ {
+      a \        os.putenv("PYTHONPATH", ":".join(sys.path))
+    }' pyinsane2/sane/abstract_proc.py
+
+    sed -i -e 's,"libsane.so.1","${pkgs.sane-backends}/lib/libsane.so",' \
+      pyinsane2/sane/rawapi.py
+  '';
+
+  # Tests require a scanner to be physically connected, so let's just do a
+  # quick check whether initialization works.
+  checkPhase = ''
+    python -c 'import pyinsane2; pyinsane2.init()'
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jflesch/pyinsane";
+    description = "Access and use image scanners";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pykickstart/default.nix b/pkgs/development/python-modules/pykickstart/default.nix
new file mode 100644
index 0000000000000..98b26387d01d7
--- /dev/null
+++ b/pkgs/development/python-modules/pykickstart/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, urlgrabber
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pykickstart";
+  version = "1.99.39";
+  md5_path = "d249f60aa89b1b4facd63f776925116d";
+
+  src = fetchurl rec {
+    url = "http://src.fedoraproject.org/repo/pkgs/pykickstart/"
+    + "${pname}-${version}.tar.gz/${md5_path}/${pname}-${version}.tar.gz";
+    sha256 = "e0d0f98ac4c5607e6a48d5c1fba2d50cc804de1081043f9da68cbfc69cad957a";
+  };
+
+  postPatch = ''
+    sed -i -e "s/for tst in tstList/for tst in sorted(tstList, \
+               key=lambda m: m.__name__)/" tests/baseclass.py
+  '';
+
+  propagatedBuildInputs = [ urlgrabber ];
+
+  checkPhase = ''
+    ${python.interpreter} tests/baseclass.py -vv
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://fedoraproject.org/wiki/Pykickstart";
+    description = "Read and write Fedora kickstart files";
+    license = licenses.gpl2Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyliblo/default.nix b/pkgs/development/python-modules/pyliblo/default.nix
new file mode 100644
index 0000000000000..9dc57aa9c7279
--- /dev/null
+++ b/pkgs/development/python-modules/pyliblo/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPyPy
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pyliblo";
+  version = "0.9.2";
+  disabled = isPyPy;
+
+  src = fetchurl {
+    url = "http://das.nasophon.de/download/${pname}-${version}.tar.gz";
+    sha256 = "382ee7360aa00aeebf1b955eef65f8491366657a626254574c647521b36e0eb0";
+  };
+
+  propagatedBuildInputs = [ pkgs.liblo ];
+
+  meta = with stdenv.lib; {
+    homepage = http://das.nasophon.de/pyliblo/;
+    description = "Python wrapper for the liblo OSC library";
+    license = licenses.lgpl21;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pymaging/default.nix b/pkgs/development/python-modules/pymaging/default.nix
new file mode 100644
index 0000000000000..34620c55c80f3
--- /dev/null
+++ b/pkgs/development/python-modules/pymaging/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  name = "pymaging";
+  version = "unstable-2016-11-16";
+
+  src = fetchFromGitHub {
+    owner = "ojii";
+    repo = "pymaging";
+    rev = "596a08fce5664e58d6e8c96847393fbe987783f2";
+    sha256 = "18g3n7kfrark30l4vzykh0gdbnfv5wb1zvvjbs17sj6yampypn38";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Pure Python imaging library with Python 2.6, 2.7, 3.1+ support";
+    homepage    = http://pymaging.rtfd.org;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ mic92 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pymaging_png/default.nix b/pkgs/development/python-modules/pymaging_png/default.nix
new file mode 100644
index 0000000000000..6756f9deee38c
--- /dev/null
+++ b/pkgs/development/python-modules/pymaging_png/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pymaging
+}:
+
+buildPythonPackage rec {
+  name = "pymaging-png";
+  version = "unstable-2016-11-16";
+
+  src = fetchFromGitHub {
+    owner = "ojii";
+    repo = "pymaging-png";
+    rev = "83d85c44e4b2342818e6c068065e031a9f81bb9f";
+    sha256 = "1mknxvsq0lr1ffm8amzm3w2prn043c6ghqgpxlkw83r988p5fn57";
+  };
+
+  propagatedBuildInputs = [ pymaging ];
+
+  meta = with stdenv.lib; {
+    description = "Pure Python imaging library with Python 2.6, 2.7, 3.1+ support";
+    homepage    = https://github.com/ojii/pymaging-png/;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ mic92 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pymongo/2_9_1.nix b/pkgs/development/python-modules/pymongo/2_9_1.nix
new file mode 100644
index 0000000000000..181d99a93f6f0
--- /dev/null
+++ b/pkgs/development/python-modules/pymongo/2_9_1.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pymongo";
+  version = "2.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1nrr1fxyrlxd69bgxl7bvaj2j4z7v3zaciij5sbhxg0vqiz6ny50";
+  };
+
+  # Tests call a running mongodb instance
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mongodb/mongo-python-driver;
+    license = licenses.asl20;
+    description = "Python driver for MongoDB ";
+  };
+
+}
diff --git a/pkgs/development/python-modules/pynzb/default.nix b/pkgs/development/python-modules/pynzb/default.nix
new file mode 100644
index 0000000000000..4225d30c6fe41
--- /dev/null
+++ b/pkgs/development/python-modules/pynzb/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pynzb";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0735b3889a1174bbb65418ee503629d3f5e4a63f04b16f46ffba18253ec3ef17";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest -s pynzb -t .
+  '';
+
+  # Can't get them working
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/ericflo/pynzb;
+    description = "Unified API for parsing NZB files";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyopengl/default.nix b/pkgs/development/python-modules/pyopengl/default.nix
new file mode 100644
index 0000000000000..11a51f354d9f8
--- /dev/null
+++ b/pkgs/development/python-modules/pyopengl/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+, pillow
+}:
+
+buildPythonPackage rec {
+  pname = "pyopengl";
+  version = "3.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9b47c5c3a094fa518ca88aeed35ae75834d53e4285512c61879f67a48c94ddaf";
+  };
+
+  propagatedBuildInputs = [ pkgs.libGLU_combined pkgs.freeglut pillow ];
+
+  patchPhase = let
+    ext = stdenv.hostPlatform.extensions.sharedLibrary; in ''
+    substituteInPlace OpenGL/platform/glx.py \
+      --replace "'GL'" "'${pkgs.libGL}/lib/libGL${ext}'" \
+      --replace "'GLU'" "'${pkgs.libGLU}/lib/libGLU${ext}'" \
+      --replace "'glut'" "'${pkgs.freeglut}/lib/libglut${ext}'"
+    substituteInPlace OpenGL/platform/darwin.py \
+      --replace "'OpenGL'" "'${pkgs.libGL}/lib/libGL${ext}'" \
+      --replace "'GLUT'" "'${pkgs.freeglut}/lib/libglut${ext}'"
+  '';
+
+  # Need to fix test runner
+  # Tests have many dependencies
+  # Extension types could not be found.
+  # Should run test suite from $out/${python.sitePackages}
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://pyopengl.sourceforge.net/;
+    description = "PyOpenGL, the Python OpenGL bindings";
+    longDescription = ''
+      PyOpenGL is the cross platform Python binding to OpenGL and
+      related APIs.  The binding is created using the standard (in
+      Python 2.5) ctypes library, and is provided under an extremely
+      liberal BSD-style Open-Source license.
+    '';
+    license = "BSD-style";
+    platforms = platforms.mesaPlatforms;
+  };
+
+
+}
diff --git a/pkgs/development/python-modules/pyparted/default.nix b/pkgs/development/python-modules/pyparted/default.nix
new file mode 100644
index 0000000000000..1db09842fa984
--- /dev/null
+++ b/pkgs/development/python-modules/pyparted/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPyPy
+, pkgs
+, python
+}:
+
+buildPythonPackage rec {
+  name = "pyparted-${version}";
+  version = "3.10.7";
+  disabled = isPyPy;
+
+  src = pkgs.fetchurl {
+    url = "https://github.com/rhinstaller/pyparted/archive/v${version}.tar.gz";
+    sha256 = "0c9ljrdggwawd8wdzqqqzrna9prrlpj6xs59b0vkxzip0jkf652r";
+  };
+
+  postPatch = ''
+    sed -i -e 's|mke2fs|${pkgs.e2fsprogs}/bin/mke2fs|' tests/baseclass.py
+    sed -i -e '
+      s|e\.path\.startswith("/tmp/temp-device-")|"temp-device-" in e.path|
+    ' tests/test__ped_ped.py
+  '' + stdenv.lib.optionalString stdenv.isi686 ''
+    # remove some integers in this test case which overflow on 32bit systems
+    sed -i -r -e '/class *UnitGetSizeTestCase/,/^$/{/[0-9]{11}/d}' \
+      tests/test__ped_ped.py
+  '';
+
+  preConfigure = ''
+    PATH="${pkgs.parted}/sbin:$PATH"
+  '';
+
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  propagatedBuildInputs = [ pkgs.parted ];
+
+  checkPhase = ''
+    patchShebangs Makefile
+    make test PYTHON=${python.executable}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://fedorahosted.org/pyparted/";
+    description = "Python interface for libparted";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pypdf/default.nix b/pkgs/development/python-modules/pypdf/default.nix
new file mode 100644
index 0000000000000..5842e1c510af6
--- /dev/null
+++ b/pkgs/development/python-modules/pypdf/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyPdf";
+  version = "1.13";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3aede4c3c9c6ad07c98f059f90db0b09ed383f7c791c46100f649e1cabda0e3b";
+  };
+
+  # Not supported. Package is no longer maintained.
+  disabled = isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Pure-Python PDF toolkit";
+    homepage = "http://pybrary.net/pyPdf/";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pypdf2/default.nix b/pkgs/development/python-modules/pypdf2/default.nix
new file mode 100644
index 0000000000000..1c3b908396ec4
--- /dev/null
+++ b/pkgs/development/python-modules/pypdf2/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, glibcLocales
+, python
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "PyPDF2";
+  version = "1.26.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11a3aqljg4sawjijkvzhs3irpw0y67zivqpbjpm065ha5wpr13z2";
+  };
+
+  LC_ALL = "en_US.UTF-8";
+  buildInputs = [ glibcLocales ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -s Tests
+  '';
+
+  # Tests broken on Python 3.x
+  doCheck = !(isPy3k);
+
+  meta = with stdenv.lib; {
+    description = "A Pure-Python library built as a PDF toolkit";
+    homepage = "http://mstamy2.github.com/PyPDF2/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ desiderius vrthra ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyplatec/default.nix b/pkgs/development/python-modules/pyplatec/default.nix
new file mode 100644
index 0000000000000..a17c650e0f0e4
--- /dev/null
+++ b/pkgs/development/python-modules/pyplatec/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "PyPlatec";
+  version = "1.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0kqx33flcrrlipccmqs78d14pj5749bp85b6k5fgaq2c7yzz02jg";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Library to simulate plate tectonics with Python bindings";
+    homepage    = https://github.com/Mindwerks/plate-tectonics;
+    license     = licenses.lgpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyptlib/default.nix b/pkgs/development/python-modules/pyptlib/default.nix
new file mode 100644
index 0000000000000..6349b56b4749f
--- /dev/null
+++ b/pkgs/development/python-modules/pyptlib/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyptlib";
+  version = "0.0.6";
+  disabled = isPyPy || isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01y6vbwncqb0hxlnin6whd9wrrm5my4qzjhk76fnix78v7ip515r";
+  };
+
+  doCheck = false;  # No such file or directory errors on 32bit
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.org/project/pyptlib/;
+    description = "A python implementation of the Pluggable Transports for Circumvention specification for Tor";
+    license = licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyqtgraph/default.nix b/pkgs/development/python-modules/pyqtgraph/default.nix
new file mode 100644
index 0000000000000..5eb24f830c7df
--- /dev/null
+++ b/pkgs/development/python-modules/pyqtgraph/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, scipy
+, numpy
+, pyqt4
+, pyopengl
+}:
+
+buildPythonPackage rec {
+  pname = "pyqtgraph";
+  version = "0.9.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "188pcxf3sxxjf0aipjn820lx2rf9f42zzp0sibmcl90955a3ipf1";
+  };
+
+  propagatedBuildInputs = [ scipy numpy pyqt4 pyopengl ];
+
+  doCheck = false;  # "PyQtGraph requires either PyQt4 or PySide; neither package could be imported."
+
+  meta = with stdenv.lib; {
+    description = "Scientific Graphics and GUI Library for Python";
+    homepage = http://www.pyqtgraph.org/;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ koral ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyquery/default.nix b/pkgs/development/python-modules/pyquery/default.nix
new file mode 100644
index 0000000000000..70f144b625813
--- /dev/null
+++ b/pkgs/development/python-modules/pyquery/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, cssselect
+, lxml
+, webob
+}:
+
+buildPythonPackage rec {
+  pname = "pyquery";
+  version = "1.2.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "00p6f1dfma65192hc72dxd506491lsq3g5wgxqafi1xpg2w1xia6";
+  };
+
+  propagatedBuildInputs = [ cssselect lxml webob ];
+
+  # circular dependency on webtest
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/gawel/pyquery;
+    description = "A jquery-like library for python";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyreport/default.nix b/pkgs/development/python-modules/pyreport/default.nix
new file mode 100644
index 0000000000000..d75119b6e3286
--- /dev/null
+++ b/pkgs/development/python-modules/pyreport/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyreport";
+  version = "0.3.4c";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1584607596b7b310bf0b6ce79f424bd44238a017fd870aede11cd6732dbe0d4d";
+  };
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/pyreport;
+    license = licenses.bsd0;
+    description = "Pyreport makes notes out of a python script";
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyrsistent/default.nix b/pkgs/development/python-modules/pyrsistent/default.nix
new file mode 100644
index 0000000000000..376b306cbb2b2
--- /dev/null
+++ b/pkgs/development/python-modules/pyrsistent/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, pytest
+, hypothesis
+}:
+
+buildPythonPackage rec {
+  pname = "pyrsistent";
+  version = "0.11.12";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0jgyhkkq36wn36rymn4jiyqh2vdslmradq4a2mjkxfbk2cz6wpi5";
+  };
+
+  propagatedBuildInputs = [ six ];
+  buildInputs = [ pytest hypothesis ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/tobgu/pyrsistent/;
+    description = "Persistent/Functional/Immutable data structures";
+    license = licenses.mit;
+    maintainers = with maintainers; [ desiderius ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyrss2gen/default.nix b/pkgs/development/python-modules/pyrss2gen/default.nix
new file mode 100644
index 0000000000000..1c65d7ca5c71d
--- /dev/null
+++ b/pkgs/development/python-modules/pyrss2gen/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "PyRSS2Gen";
+  version = "1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rvf5jw9hknqz02rp1vg8abgb1lpa0bc65l7ylmlillqx7bswq3r";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://www.dalkescientific.om/Python/PyRSS2Gen.html;
+    description = "Library for generating RSS 2.0 feeds";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysaml2/default.nix b/pkgs/development/python-modules/pysaml2/default.nix
new file mode 100644
index 0000000000000..1e9ce18afb9ac
--- /dev/null
+++ b/pkgs/development/python-modules/pysaml2/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, repoze_who
+, paste
+, cryptography
+, pycrypto
+, pyopenssl
+, ipaddress
+, six
+, cffi
+, idna
+, enum34
+, pytz
+, setuptools
+, zope_interface
+, dateutil
+, requests
+, pyasn1
+, webob
+, decorator
+, pycparser
+, defusedxml
+, Mako
+, pytest
+, memcached
+, pymongo
+, mongodict
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pysaml2";
+  version = "3.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0y2iw1dddcvi13xjh3l52z1mvnrbc41ik9k4nn7lwj8x5kimnk9n";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "CVE-2016-10127.patch";
+      url = "https://sources.debian.net/data/main/p/python-pysaml2/3.0.0-5/debian/patches/fix-xxe-in-xml-parsing.patch";
+      sha256 = "184lkwdayjqiahzsn4yp15parqpmphjsb1z7zwd636jvarxqgs2q";
+    })
+  ];
+
+  propagatedBuildInputs = [ repoze_who paste cryptography pycrypto pyopenssl ipaddress six cffi idna enum34 pytz setuptools zope_interface dateutil requests pyasn1 webob decorator pycparser defusedxml ];
+  buildInputs = [ Mako pytest memcached pymongo mongodict pkgs.xmlsec ];
+
+  preConfigure = ''
+    sed -i 's/pymongo==3.0.1/pymongo/' setup.py
+  '';
+
+  # 16 failed, 427 passed, 17 error in 88.85 seconds
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/rohe/pysaml2";
+    description = "Python implementation of SAML Version 2 Standard";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyscss/default.nix b/pkgs/development/python-modules/pyscss/default.nix
new file mode 100644
index 0000000000000..cf63d3660ef53
--- /dev/null
+++ b/pkgs/development/python-modules/pyscss/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+, six
+, enum34
+, pathlib
+, ordereddict
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyScss";
+  version = "1.3.5";
+
+  src = fetchFromGitHub {
+    sha256 = "0lfsan74vcw6dypb196gmbprvlbran8p7w6czy8hyl2b1l728mhz";
+    rev = "v1.3.5";
+    repo = "pyScss";
+    owner = "Kronuz";
+  };
+
+  checkInputs = [ pytest ];
+
+  propagatedBuildInputs = [ six ]
+    ++ (stdenv.lib.optionals (pythonOlder "3.4") [ enum34 pathlib ])
+    ++ (stdenv.lib.optionals (pythonOlder "2.7") [ ordereddict ]);
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Scss compiler for Python";
+    homepage = http://pyscss.readthedocs.org/en/latest/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysendfile/default.nix b/pkgs/development/python-modules/pysendfile/default.nix
new file mode 100644
index 0000000000000..b49ec5030f9a4
--- /dev/null
+++ b/pkgs/development/python-modules/pysendfile/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pysendfile";
+  version = "2.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05qf0m32isflln1zjgxlpw0wf469lj86vdwwqyizp1h94x5l22ji";
+  };
+
+  checkPhase = ''
+    # this test takes too long
+    sed -i 's/test_big_file/noop/' test/test_sendfile.py
+    ${python.executable} test/test_sendfile.py
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/giampaolo/pysendfile";
+    description = "A Python interface to sendfile(2)";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysftp/default.nix b/pkgs/development/python-modules/pysftp/default.nix
new file mode 100644
index 0000000000000..0ed5790a51976
--- /dev/null
+++ b/pkgs/development/python-modules/pysftp/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, paramiko
+}:
+
+buildPythonPackage rec {
+  pname = "pysftp";
+  version = "0.2.9";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0jl5qix5cxzrv4lb8rfpjkpcghbkacnxkb006ikn7mkl5s05mxgv";
+  };
+
+  propagatedBuildInputs = [ paramiko ];
+
+  meta = with stdenv.lib; {
+    homepage = https://bitbucket.org/dundeemt/pysftp;
+    description = "A friendly face on SFTP";
+    license = licenses.mit;
+    longDescription = ''
+      A simple interface to SFTP. The module offers high level abstractions
+      and task based routines to handle your SFTP needs. Checkout the Cook
+      Book, in the docs, to see what pysftp can do for you.
+    '';
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysmi/default.nix b/pkgs/development/python-modules/pysmi/default.nix
new file mode 100644
index 0000000000000..0471e948f2ff2
--- /dev/null
+++ b/pkgs/development/python-modules/pysmi/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, ply
+}:
+
+buildPythonPackage rec {
+  version = "0.0.7";
+  pname = "pysmi";
+
+ src = fetchPypi {
+    inherit pname version;
+    sha256 = "05h1lv2a687b9qjc399w6728ildx7majbn338a0c4k3gw6wnv7wr";
+  };
+
+  propagatedBuildInputs = [ ply ];
+
+  # Tests require pysnmp, which in turn requires pysmi => infinite recursion
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://pysmi.sf.net;
+    description = "SNMP SMI/MIB Parser";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ koral ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysnmp/default.nix b/pkgs/development/python-modules/pysnmp/default.nix
new file mode 100644
index 0000000000000..22fdf17b3b653
--- /dev/null
+++ b/pkgs/development/python-modules/pysnmp/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyasn1
+, pycrypto
+, pysmi
+}:
+
+buildPythonPackage rec {
+  version = "4.3.2";
+  pname = "pysnmp";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xw925f3p02vdpb3f0ls60qj59w44aiyfs3s0nhdr9vsy4fxhavw";
+  };
+
+  # NameError: name 'mibBuilder' is not defined
+  doCheck = false;
+
+  propagatedBuildInputs = [ pyasn1 pycrypto pysmi ];
+
+  meta = with stdenv.lib; {
+    homepage = http://pysnmp.sf.net;
+    description = "A pure-Python SNMPv1/v2c/v3 library";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ koral ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysocks/default.nix b/pkgs/development/python-modules/pysocks/default.nix
new file mode 100644
index 0000000000000..83437cd1201a9
--- /dev/null
+++ b/pkgs/development/python-modules/pysocks/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pysocks";
+  version = "1.6.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0h9zwr8z9j6l313ns335irjrkk6qnk4qzvwmjqygrp7mbwi9lh82";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "SOCKS module for Python";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysqlite/default.nix b/pkgs/development/python-modules/pysqlite/default.nix
new file mode 100644
index 0000000000000..c1118aeeecd7b
--- /dev/null
+++ b/pkgs/development/python-modules/pysqlite/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pysqlite";
+  version = "2.8.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17d3335863e8cf8392eea71add33dab3f96d060666fe68ab7382469d307f4490";
+  };
+
+  # Need to use the builtin sqlite3 on Python 3
+  disabled = isPy3k;
+
+  # Since the `.egg' file is zipped, the `NEEDED' of the `.so' files
+  # it contains is not taken into account.  Thus, we must explicitly make
+  # it a propagated input.
+  propagatedBuildInputs = [ pkgs.sqlite ];
+
+  patchPhase = ''
+    substituteInPlace "setup.cfg"                                     \
+            --replace "/usr/local/include" "${pkgs.sqlite.dev}/include"   \
+            --replace "/usr/local/lib" "${pkgs.sqlite.out}/lib"
+    ${stdenv.lib.optionalString (!stdenv.isDarwin) ''export LDSHARED="$CC -pthread -shared"''}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://pysqlite.org/;
+    description = "Python bindings for the SQLite embedded relational database engine";
+    longDescription = ''
+      pysqlite is a DB-API 2.0-compliant database interface for SQLite.
+
+      SQLite is a relational database management system contained in
+      a relatively small C library.  It is a public domain project
+      created by D. Richard Hipp.  Unlike the usual client-server
+      paradigm, the SQLite engine is not a standalone process with
+      which the program communicates, but is linked in and thus
+      becomes an integral part of the program.  The library
+      implements most of SQL-92 standard, including transactions,
+      triggers and most of complex queries.
+
+      pysqlite makes this powerful embedded SQL engine available to
+      Python programmers.  It stays compatible with the Python
+      database API specification 2.0 as much as possible, but also
+      exposes most of SQLite's native API, so that it is for example
+      possible to create user-defined SQL functions and aggregates
+      in Python.
+    '';
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysvn/default.nix b/pkgs/development/python-modules/pysvn/default.nix
new file mode 100644
index 0000000000000..2dcb7908522ae
--- /dev/null
+++ b/pkgs/development/python-modules/pysvn/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pkgs
+, isPy3k
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pysvn";
+  version = "1.8.0";
+  disabled = isPy3k;
+  format = "other";
+
+  src = fetchurl {
+    url = "http://pysvn.barrys-emacs.org/source_kits/${pname}-${version}.tar.gz";
+    sha256 = "0srjr2qgxfs69p65d9vvdib2lc142x10w8afbbdrqs7dhi46yn9r";
+  };
+
+  buildInputs = [ pkgs.subversion pkgs.apr pkgs.aprutil pkgs.expat pkgs.neon pkgs.openssl ]
+    ++ (if stdenv.isLinux then [pkgs.e2fsprogs] else []);
+
+  # There seems to be no way to pass that path to configure.
+  NIX_CFLAGS_COMPILE="-I${pkgs.aprutil.dev}/include/apr-1";
+
+  preConfigure = ''
+    cd Source
+    ${python.interpreter} setup.py backport
+    ${python.interpreter} setup.py configure \
+      --apr-inc-dir=${pkgs.apr.dev}/include \
+      --apu-inc-dir=${pkgs.aprutil.dev}/include \
+      --apr-lib-dir=${pkgs.apr.out}/lib \
+      --svn-lib-dir=${pkgs.subversion.out}/lib \
+      --svn-bin-dir=${pkgs.subversion.out}/bin \
+      --svn-root-dir=${pkgs.subversion.dev}
+  '' + (if !stdenv.isDarwin then "" else ''
+    sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile
+  '');
+
+  checkPhase = "make -C ../Tests";
+
+  installPhase = ''
+    dest=$(toPythonPath $out)/pysvn
+    mkdir -p $dest
+    cp pysvn/__init__.py $dest/
+    cp pysvn/_pysvn*.so $dest/
+    mkdir -p $out/share/doc
+    mv -v ../Docs $out/share/doc/pysvn-1.7.2
+    rm -v $out/share/doc/pysvn-1.7.2/generate_cpp_docs_from_html_docs.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for Subversion";
+    homepage = http://pysvn.tigris.org/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix
index cdfdb8a64c95e..93d257f4bfffa 100644
--- a/pkgs/development/python-modules/pytest/default.nix
+++ b/pkgs/development/python-modules/pytest/default.nix
@@ -3,7 +3,7 @@
 , atomicwrites, mock, writeText, pathlib2
 }:
 buildPythonPackage rec {
-  version = "3.7.4";
+  version = "3.9.2";
   pname = "pytest";
 
   preCheck = ''
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d7c49e931316cc7d1638a3e5f54f5d7b4e5225972b3c9838f3584788d27f349";
+    sha256 = "212be78a6fa5352c392738a49b18f74ae9aeec1040f47c81cadbfd8d1233c310";
   };
 
   checkInputs = [ hypothesis mock ];
diff --git a/pkgs/development/python-modules/python-etcd/default.nix b/pkgs/development/python-modules/python-etcd/default.nix
new file mode 100644
index 0000000000000..d1780fc782b58
--- /dev/null
+++ b/pkgs/development/python-modules/python-etcd/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, mock
+, pyopenssl
+, urllib3
+, dnspython
+}:
+
+buildPythonPackage rec {
+  pname = "python-etcd";
+  version = "0.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cf53262b3890d185fe637eed15fe39c8d7a8261864ddcd7037b22c961456d7fc";
+  };
+
+  buildInputs = [ nose mock pyopenssl ];
+
+  propagatedBuildInputs = [ urllib3 dnspython ];
+
+  postPatch = ''
+    sed -i '19s/dns/"dnspython"/' setup.py
+  '';
+
+  # Some issues with etcd not in path even though most tests passed
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A python client for Etcd";
+    homepage = https://github.com/jplana/python-etcd;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python-jenkins/default.nix b/pkgs/development/python-modules/python-jenkins/default.nix
new file mode 100644
index 0000000000000..8509caa279442
--- /dev/null
+++ b/pkgs/development/python-modules/python-jenkins/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, mock
+, pbr
+, pyyaml
+, six
+, multi_key_dict
+, testtools
+, testscenarios
+, testrepository
+, kerberos
+}:
+
+buildPythonPackage rec {
+  pname = "python-jenkins";
+  version = "0.4.14";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n8ikvd9jf4dlki7nqlwjlsn8wpsx4x7wg4h3d6bkvyvhwwf8yqf";
+  };
+
+  patchPhase = ''
+    sed -i 's@python@${python.interpreter}@' .testr.conf
+  '';
+
+  buildInputs = [ mock ];
+  propagatedBuildInputs = [ pbr pyyaml six multi_key_dict testtools testscenarios testrepository kerberos ];
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for the remote Jenkins API";
+    homepage = https://pypi.python.org/pypi/python-jenkins;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python-wifi/default.nix b/pkgs/development/python-modules/python-wifi/default.nix
new file mode 100644
index 0000000000000..7e4f2ebccf05c
--- /dev/null
+++ b/pkgs/development/python-modules/python-wifi/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "python-wifi";
+  version = "0.6.1";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "tar.bz2";
+    sha256 = "149c3dznb63d82143cz5hqdim0mqjysz6p3yk0zv271vq3xnmzvv";
+  };
+
+  meta = with stdenv.lib; {
+    inherit version;
+    description = "Read & write wireless card capabilities using the Linux Wireless Extensions";
+    homepage = http://pythonwifi.tuxfamily.org/;
+    # From the README: "pythonwifi is licensed under LGPLv2+, however, the
+    # examples (e.g. iwconfig.py and iwlist.py) are licensed under GPLv2+."
+    license = with licenses; [ lgpl2Plus gpl2Plus ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/python3pika/default.nix b/pkgs/development/python-modules/python3pika/default.nix
new file mode 100644
index 0000000000000..4f75acff02ec4
--- /dev/null
+++ b/pkgs/development/python-modules/python3pika/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, nose
+, mock
+, pyyaml
+, unittest2
+}:
+
+buildPythonPackage rec {
+  pname = "python3-pika";
+  version = "0.9.14";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c3hifwvn04kvlja88iawf0awyz726jynwnpcb6gn7376b4nfch7";
+  };
+
+  # Unit tests adds dependencies on pyev, tornado and twisted (and twisted is disabled for Python 3)
+  doCheck = false;
+
+  buildInputs = [ nose mock pyyaml ];
+  propagatedBuildInputs = [ unittest2 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pika.readthedocs.org/;
+    description = "Pika Python AMQP Client Library";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python_keyczar/default.nix b/pkgs/development/python-modules/python_keyczar/default.nix
new file mode 100644
index 0000000000000..b2cbe101f3d25
--- /dev/null
+++ b/pkgs/development/python-modules/python_keyczar/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyasn1
+, pycrypto
+}:
+
+buildPythonPackage rec {
+  pname = "python-keyczar";
+  version = "0.71c";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18mhiwqq6vp65ykmi8x3i5l3gvrvrrr8z2kv11z1rpixmyr7sw1p";
+  };
+
+  buildInputs = [ pyasn1 pycrypto ];
+
+  meta = with stdenv.lib; {
+    description = "Toolkit for safe and simple cryptography";
+    homepage    = https://pypi.python.org/pypi/python-keyczar;
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyutil/default.nix b/pkgs/development/python-modules/pyutil/default.nix
new file mode 100644
index 0000000000000..8f875acac1bc7
--- /dev/null
+++ b/pkgs/development/python-modules/pyutil/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptoolsDarcs
+, setuptoolsTrial
+, simplejson
+, zbase32
+, argparse
+, twisted
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "pyutil";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1fsg9yz5mi2sb0h6c1vvcqchx56i89nbvdb5gfgv1ia3b2w5ra8c";
+  };
+
+  buildInputs = [ setuptoolsDarcs setuptoolsTrial ] ++ (if doCheck then [ simplejson ] else []);
+  propagatedBuildInputs = [ zbase32 argparse twisted ];
+
+  # Tests fail because they try to write new code into the twisted
+  # package, apparently some kind of plugin.
+  doCheck = false;
+
+  prePatch = stdenv.lib.optionalString isPyPy ''
+    grep -rl 'utf-8-with-signature-unix' ./ | xargs sed -i -e "s|utf-8-with-signature-unix|utf-8|g"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Pyutil, a collection of mature utilities for Python programmers";
+
+    longDescription = ''
+      These are a few data structures, classes and functions which
+      we've needed over many years of Python programming and which
+      seem to be of general use to other Python programmers. Many of
+      the modules that have existed in pyutil over the years have
+      subsequently been obsoleted by new features added to the
+      Python language or its standard library, thus showing that
+      we're not alone in wanting tools like these.
+    '';
+
+    homepage = http://allmydata.org/trac/pyutil;
+    license = licenses.gpl2Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pywebkitgtk/default.nix b/pkgs/development/python-modules/pywebkitgtk/default.nix
new file mode 100644
index 0000000000000..5448f5c6951d2
--- /dev/null
+++ b/pkgs/development/python-modules/pywebkitgtk/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pkgs
+, pygtk
+}:
+
+buildPythonPackage rec {
+  pname = "pywebkitgtk";
+  version = "1.1.8";
+  format = "other";
+
+  src = fetchurl {
+    url = "http://pywebkitgtk.googlecode.com/files/${pname}-${version}.tar.bz2";
+    sha256 = "1svlwyl61rvbqbcbalkg6pbf38yjyv7qkq9sx4x35yk69lscaac2";
+  };
+
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  buildInputs = [ pygtk pkgs.gtk2 pkgs.libxml2 pkgs.libxslt pkgs.libsoup pkgs.webkitgtk24x-gtk2 pkgs.icu ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://code.google.com/p/pywebkitgtk/";
+    description = "Python bindings for the WebKit GTK+ port";
+    license = licenses.lgpl2Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyx/default.nix b/pkgs/development/python-modules/pyx/default.nix
new file mode 100644
index 0000000000000..a377845563aa7
--- /dev/null
+++ b/pkgs/development/python-modules/pyx/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyx";
+  version = "0.14.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05d1b7fc813379d2c12fcb5bd0195cab522b5aabafac88f72913f1d47becd912";
+  };
+
+  disabled = !isPy3k;
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python package for the generation of PostScript, PDF, and SVG files";
+    homepage = http://pyx.sourceforge.net/;
+    license = with licenses; [ gpl2 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/qpid-python/default.nix b/pkgs/development/python-modules/qpid-python/default.nix
new file mode 100644
index 0000000000000..713e9db566e42
--- /dev/null
+++ b/pkgs/development/python-modules/qpid-python/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "qpid-python";
+  version = "0.32";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = "http://www.us.apache.org/dist/qpid/${version}/${pname}-${version}.tar.gz";
+    sha256 = "09hdfjgk8z4s3dr8ym2r6xn97j1f9mkb2743pr6zd0bnj01vhsv4";
+  };
+
+  # needs a broker running and then ./qpid-python-test
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://qpid.apache.org/;
+    description = "Python client implementation and AMQP conformance tests for Apache Qpid";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/qscintilla/default.nix b/pkgs/development/python-modules/qscintilla/default.nix
new file mode 100644
index 0000000000000..c4ea8ff2e734c
--- /dev/null
+++ b/pkgs/development/python-modules/qscintilla/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, buildPythonPackage
+, disabledIf
+, isPy3k
+, isPyPy
+, pkgs
+, python
+, pyqt4
+}:
+
+disabledIf (isPy3k || isPyPy)
+  (buildPythonPackage rec {
+    # TODO: Qt5 support
+    name = "qscintilla-${version}";
+    version = pkgs.qscintilla.version;
+    format = "other";
+
+    src = pkgs.qscintilla.src;
+
+    buildInputs = [ pkgs.xorg.lndir pyqt4.qt pyqt4 ];
+
+    preConfigure = ''
+      mkdir -p $out
+      lndir ${pyqt4} $out
+      rm -rf "$out/nix-support"
+      cd Python
+      ${python.executable} ./configure-old.py \
+          --destdir $out/lib/${python.libPrefix}/site-packages/PyQt4 \
+          --apidir $out/api/${python.libPrefix} \
+          -n ${pkgs.qscintilla}/include \
+          -o ${pkgs.qscintilla}/lib \
+          --sipdir $out/share/sip
+    '';
+
+    meta = with stdenv.lib; {
+      description = "A Python binding to QScintilla, Qt based text editing control";
+      license = licenses.lgpl21Plus;
+      maintainers = with maintainers; [ danbst ];
+      platforms = platforms.unix;
+    };
+  })
diff --git a/pkgs/development/python-modules/qserve/default.nix b/pkgs/development/python-modules/qserve/default.nix
new file mode 100644
index 0000000000000..ad1a7fd2ca366
--- /dev/null
+++ b/pkgs/development/python-modules/qserve/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "qserve";
+  version = "0.2.8";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "0b04b2d4d11b464ff1efd42a9ea9f8136187d59f4076f57c9ba95361d41cd7ed";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Job queue server";
+    homepage = "https://github.com/pediapress/qserve";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix
new file mode 100644
index 0000000000000..4a8460ddfdbe4
--- /dev/null
+++ b/pkgs/development/python-modules/qutip/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, numpy
+, scipy
+, matplotlib
+, pyqt4
+, cython
+, pkgs
+, nose
+}:
+
+buildPythonPackage rec {
+  name = "qutip";
+  version = "2.2.0";
+
+  src = fetchurl {
+    url = "https://qutip.googlecode.com/files/QuTiP-2.2.0.tar.gz";
+    sha256 = "a26a639d74b2754b3a1e329d91300e587e8c399d8a81d8f18a4a74c6d6f02ba3";
+  };
+
+  propagatedBuildInputs = [ numpy scipy matplotlib pyqt4 cython ];
+
+  buildInputs = [ pkgs.gcc pkgs.qt4 pkgs.blas nose ];
+
+  meta = with stdenv.lib; {
+    description = "QuTiP - Quantum Toolbox in Python";
+    longDescription = ''
+      QuTiP is open-source software for simulating the dynamics of
+      open quantum systems. The QuTiP library depends on the
+      excellent Numpy and Scipy numerical packages. In addition,
+      graphical output is provided by Matplotlib. QuTiP aims to
+      provide user-friendly and efficient numerical simulations of a
+      wide variety of Hamiltonians, including those with arbitrary
+      time-dependence, commonly found in a wide range of physics
+      applications such as quantum optics, trapped ions,
+      superconducting circuits, and quantum nanomechanical
+      resonators.
+    '';
+    homepage = http://qutip.org/;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rabbitpy/default.nix b/pkgs/development/python-modules/rabbitpy/default.nix
new file mode 100644
index 0000000000000..b9ec712759bd6
--- /dev/null
+++ b/pkgs/development/python-modules/rabbitpy/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+, nose
+, pamqp
+}:
+
+buildPythonPackage rec {
+  version = "0.26.2";
+  pname = "rabbitpy";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pgijv7mgxc4sm7p9s716dhl600l8isisxzyg4hz7ng1sk09p1w3";
+  };
+
+  buildInputs = [ mock nose ];
+  propagatedBuildInputs = [ pamqp ];
+
+  meta = with stdenv.lib; {
+    description = "A pure python, thread-safe, minimalistic and pythonic RabbitMQ client library";
+    homepage = https://pypi.python.org/pypi/rabbitpy;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rbtools/default.nix b/pkgs/development/python-modules/rbtools/default.nix
new file mode 100644
index 0000000000000..127188ac3fbdf
--- /dev/null
+++ b/pkgs/development/python-modules/rbtools/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, nose
+, six
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  name = "rbtools";
+  version = "0.7.2";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = "http://downloads.reviewboard.org/releases/RBTools/0.7/RBTools-0.7.2.tar.gz";
+    sha256 = "1ng8l8cx81cz23ls7fq9wz4ijs0zbbaqh4kj0mj6plzcqcf8na4i";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ six ];
+
+  checkPhase = "nosetests";
+
+  meta = with stdenv.lib; {
+    homepage = https://www.reviewboard.org/docs/rbtools/dev/;
+    description = "RBTools is a set of command line tools for working with Review Board and RBCommons";
+    license = licenses.mit;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/readme/default.nix b/pkgs/development/python-modules/readme/default.nix
new file mode 100644
index 0000000000000..4bc7e1cc233a3
--- /dev/null
+++ b/pkgs/development/python-modules/readme/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, six
+, docutils
+, pygments
+, bleach
+, html5lib
+}:
+
+buildPythonPackage rec {
+  pname = "readme";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08j2w67nilczn1i5r7h22vag9673i6vnfhyq2rv27r1bdmi5a30m";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ six docutils pygments bleach html5lib ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  # Tests fail, possibly broken.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Readme is a library for rendering readme descriptions for Warehouse";
+    homepage = "https://github.com/pypa/readme";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/recaptcha_client/default.nix b/pkgs/development/python-modules/recaptcha_client/default.nix
new file mode 100644
index 0000000000000..09090540a5b04
--- /dev/null
+++ b/pkgs/development/python-modules/recaptcha_client/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "recaptcha-client";
+  version = "1.0.6";
+  disabled = pythonAtLeast "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "28c6853c1d13d365b7dc71a6b05e5ffb56471f70a850de318af50d3d7c0dea2f";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A CAPTCHA for Python using the reCAPTCHA service";
+    homepage = http://recaptcha.net/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rencode/default.nix b/pkgs/development/python-modules/rencode/default.nix
new file mode 100644
index 0000000000000..ac041d664ae42
--- /dev/null
+++ b/pkgs/development/python-modules/rencode/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, isPy33
+, fetchgit
+, cython
+}:
+
+buildPythonPackage rec {
+  pname = "rencode";
+  version = "git20150810";
+  disabled = isPy33;
+
+  src = fetchgit {
+    url = https://github.com/aresch/rencode;
+    rev = "b45e04abdca0dea36e383a8199783269f186c99e";
+    sha256 = "b4bd82852d4220e8a9493d3cfaecbc57b1325708a2d48c0f8acf262edb10dc40";
+  };
+
+  buildInputs = [ cython ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/aresch/rencode;
+    description = "Fast (basic) object serialization similar to bencode";
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/repocheck/default.nix b/pkgs/development/python-modules/repocheck/default.nix
new file mode 100644
index 0000000000000..17dea17105eeb
--- /dev/null
+++ b/pkgs/development/python-modules/repocheck/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  name = "repocheck";
+  version = "2015-08-05";
+
+  src = fetchFromGitHub {
+    sha256 = "1jc4v5zy7z7xlfmbfzvyzkyz893f5x2k6kvb3ni3rn2df7jqhc81";
+    rev = "ee48d0e88d3f5814d24a8d1f22d5d83732824688";
+    repo = "repocheck";
+    owner = "kynikos";
+  };
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "Check the status of code repositories under a root directory";
+    license = licenses.gpl3Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/repoze_who/default.nix b/pkgs/development/python-modules/repoze_who/default.nix
new file mode 100644
index 0000000000000..227fbdeca650d
--- /dev/null
+++ b/pkgs/development/python-modules/repoze_who/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_interface
+, webob
+}:
+
+buildPythonPackage rec {
+  pname = "repoze.who";
+  version = "2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "12wsviar45nwn35w2y4i8b929dq2219vmwz8013wx7bpgkn2j9ij";
+  };
+
+  propagatedBuildInputs = [ zope_interface webob ];
+
+  meta = with stdenv.lib; {
+    description = "WSGI Authentication Middleware / API";
+    homepage = "http://www.repoze.org";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/resampy/default.nix b/pkgs/development/python-modules/resampy/default.nix
new file mode 100644
index 0000000000000..8e69b423c9b6f
--- /dev/null
+++ b/pkgs/development/python-modules/resampy/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestcov
+, numpy
+, scipy
+, cython
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "resampy";
+  version = "0.1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cf4f149d8699af70a1b4b0769fa16fab21835d936ea7ff25e98446aa49e743d4";
+  };
+
+  checkInputs = [ pytest pytestcov ];
+  propagatedBuildInputs = [ numpy scipy cython six ];
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/bmcfee/resampy;
+    description = "Efficient signal resampling";
+    license = licenses.isc;
+  };
+
+}
diff --git a/pkgs/development/python-modules/retry_decorator/default.nix b/pkgs/development/python-modules/retry_decorator/default.nix
new file mode 100644
index 0000000000000..15ab826b0a646
--- /dev/null
+++ b/pkgs/development/python-modules/retry_decorator/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "retry_decorator";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "086zahyb6yn7ggpc58909c5r5h3jz321i1694l1c28bbpaxnlk88";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/pnpnpn/retry-decorator;
+    description = "Retry Decorator for python functions";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/retrying/default.nix b/pkgs/development/python-modules/retrying/default.nix
new file mode 100644
index 0000000000000..9074634e9b6ab
--- /dev/null
+++ b/pkgs/development/python-modules/retrying/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "retrying";
+  version = "1.3.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0fwp86xv0rvkncjdvy2mwcvbglw4w9k0fva25i7zx8kd19b3kh08";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  # doesn't ship tests in tarball
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/rholder/retrying;
+    description = "General-purpose retrying library";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/robotframework-requests/default.nix b/pkgs/development/python-modules/robotframework-requests/default.nix
new file mode 100644
index 0000000000000..eeaf74fb8f91a
--- /dev/null
+++ b/pkgs/development/python-modules/robotframework-requests/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, robotframework
+, lxml
+, requests
+}:
+
+buildPythonPackage rec {
+  version = "0.4.6";
+  pname = "robotframework-requests";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0416rxg7g0pfg77akljnkass0xz0id26v4saag2q2h1fgwrm7n4q";
+  };
+
+  buildInputs = [ unittest2 ];
+  propagatedBuildInputs = [ robotframework lxml requests ];
+
+  meta = with stdenv.lib; {
+    description = "Robot Framework keyword library wrapper around the HTTP client library requests";
+    homepage = https://github.com/bulkan/robotframework-requests;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/robotframework-selenium2library/default.nix b/pkgs/development/python-modules/robotframework-selenium2library/default.nix
new file mode 100644
index 0000000000000..15fd977936bc8
--- /dev/null
+++ b/pkgs/development/python-modules/robotframework-selenium2library/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, robotframework
+, selenium
+, docutils
+, decorator
+}:
+
+buildPythonPackage rec {
+  version = "1.6.0";
+  pname = "robotframework-selenium2library";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1asdwrpb4s7q08bx641yrh3yicgba14n3hxmsqs58mqf86ignwly";
+  };
+
+  # error: invalid command 'test'
+  #doCheck = false;
+
+  propagatedBuildInputs = [ robotframework selenium docutils decorator ];
+
+  meta = with stdenv.lib; {
+    description = "Web testing library for Robot Framework";
+    homepage = http://robotframework.org/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/robotframework-tools/default.nix b/pkgs/development/python-modules/robotframework-tools/default.nix
new file mode 100644
index 0000000000000..98bed064b1fc9
--- /dev/null
+++ b/pkgs/development/python-modules/robotframework-tools/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, robotframework
+, moretools
+, pathpy
+, six
+, setuptools
+}:
+
+buildPythonPackage rec {
+  version = "0.1a115";
+  pname = "robotframework-tools";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04gkn1zpf3rsvbqdxrrjqqi8sa0md9gqwh6n5w2m03fdwjg4lc7q";
+  };
+
+  propagatedBuildInputs = [ robotframework moretools pathpy six setuptools ];
+
+  meta = with stdenv.lib; {
+    description = "Python Tools for Robot Framework and Test Libraries";
+    homepage = https://bitbucket.org/userzimmermann/robotframework-tools;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/routes/default.nix b/pkgs/development/python-modules/routes/default.nix
new file mode 100644
index 0000000000000..1e2e67c6206d2
--- /dev/null
+++ b/pkgs/development/python-modules/routes/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, repoze_lru
+, six
+, webob
+, coverage
+, webtest
+}:
+
+buildPythonPackage rec {
+  pname = "Routes";
+  version = "2.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zamff3m0kc4vyfniyhxpkkcqv1rrgnmh37ykxv34nna1ws47vi6";
+  };
+
+  propagatedBuildInputs = [ repoze_lru six webob ];
+  checkInputs = [ coverage webtest ];
+
+  meta = with stdenv.lib; {
+    description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions";
+    homepage = http://routes.groovie.org/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rpyc/default.nix b/pkgs/development/python-modules/rpyc/default.nix
new file mode 100644
index 0000000000000..42176b134eca2
--- /dev/null
+++ b/pkgs/development/python-modules/rpyc/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, plumbum
+}:
+
+buildPythonPackage rec {
+  pname = "rpyc";
+  version = "3.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "43fa845314f0bf442f5f5fab15bb1d1b5fe2011a8fc603f92d8022575cef8b4b";
+  };
+
+  propagatedBuildInputs = [ nose plumbum ];
+
+  meta = with stdenv.lib; {
+    description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
+    homepage = http://rpyc.readthedocs.org;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rsa/default.nix b/pkgs/development/python-modules/rsa/default.nix
new file mode 100644
index 0000000000000..82eedf70cb09f
--- /dev/null
+++ b/pkgs/development/python-modules/rsa/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, pyasn1
+}:
+
+buildPythonPackage rec {
+  pname = "rsa";
+  version = "3.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1dcxvszbikgzh99ybdc7jq0zb9wspy2ds8z9mjsqiyv3q884xpr5";
+  };
+
+  nativeBuildInputs = [ unittest2 ];
+  propagatedBuildInputs = [ pyasn1 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://stuvel.eu/rsa;
+    license = licenses.asl20;
+    description = "A pure-Python RSA implementation";
+  };
+
+}
diff --git a/pkgs/development/python-modules/ruamel_base/default.nix b/pkgs/development/python-modules/ruamel_base/default.nix
new file mode 100644
index 0000000000000..ba6a79fdd634e
--- /dev/null
+++ b/pkgs/development/python-modules/ruamel_base/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "ruamel.base";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wswxrn4givsm917mfl39rafgadimf1sldpbjdjws00g1wx36hf0";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Common routines for ruamel packages";
+    homepage = https://bitbucket.org/ruamel/base;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ruamel_ordereddict/default.nix b/pkgs/development/python-modules/ruamel_ordereddict/default.nix
new file mode 100644
index 0000000000000..fa7bd815b6862
--- /dev/null
+++ b/pkgs/development/python-modules/ruamel_ordereddict/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "ruamel.ordereddict";
+  version = "0.4.9";
+  disabled = isPy3k || isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1xmkl8v9l9inm2pyxgc1fm5005yxm7fkd5gv74q7lj1iy5qc8n3h";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A version of dict that keeps keys in insertion resp. sorted order";
+    homepage = https://bitbucket.org/ruamel/ordereddict;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ruamel_yaml/default.nix b/pkgs/development/python-modules/ruamel_yaml/default.nix
new file mode 100644
index 0000000000000..59674d82c90c7
--- /dev/null
+++ b/pkgs/development/python-modules/ruamel_yaml/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, ruamel_base
+, typing
+, ruamel_ordereddict
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "ruamel.yaml";
+  version = "0.15.35";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xggyfaj6vprggahf7cq8kp9j79rb7hn8ndk3bxj2sxvwhhliiwd";
+  };
+
+  # Tests cannot load the module to test
+  doCheck = false;
+
+  propagatedBuildInputs = [ ruamel_base typing ]
+    ++ stdenv.lib.optional (!isPy3k) ruamel_ordereddict;
+
+  meta = with stdenv.lib; {
+    description = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order";
+    homepage = https://bitbucket.org/ruamel/yaml;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/runsnakerun/default.nix b/pkgs/development/python-modules/runsnakerun/default.nix
new file mode 100644
index 0000000000000..eba8871fd0229
--- /dev/null
+++ b/pkgs/development/python-modules/runsnakerun/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, squaremap
+, wxPython
+}:
+
+buildPythonPackage rec {
+  pname = "runsnakerun";
+  version = "2.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "61d03a13f1dcb3c1829f5a146da1fe0cc0e27947558a51e848b6d469902815ef";
+  };
+
+  propagatedBuildInputs = [ squaremap wxPython ];
+
+  meta = with stdenv.lib; {
+    description = "GUI Viewer for Python profiling runs";
+    homepage = http://www.vrplumber.com/programming/runsnakerun/;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index 5fdffedc6f279..597a8e0783a26 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -29,12 +29,7 @@ buildPythonPackage rec {
   '';
 
   preBuild = ''
-    echo "Creating site.cfg file..."
-    cat << EOF > site.cfg
-    [openblas]
-    include_dirs = ${numpy.blas}/include
-    library_dirs = ${numpy.blas}/lib
-    EOF
+    ln -s ${numpy.cfg} site.cfg
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/python-modules/scripttest/default.nix b/pkgs/development/python-modules/scripttest/default.nix
new file mode 100644
index 0000000000000..2ae7a4c8e361c
--- /dev/null
+++ b/pkgs/development/python-modules/scripttest/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  version = "1.3";
+  pname = "scripttest";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "951cfc25219b0cd003493a565f2e621fd791beaae9f9a3bdd7024d8626419c38";
+  };
+
+  buildInputs = [ pytest ];
+
+  # Tests are not included. See https://github.com/pypa/scripttest/issues/11
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A library for testing interactive command-line applications";
+    homepage = https://pypi.python.org/pypi/ScriptTest/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index b61af72909ff1..ac3d0e4739581 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -8,13 +8,13 @@
 # Should use buildPythonPackage here somehow
 stdenv.mkDerivation rec {
   pname = "setuptools";
-  version = "40.2.0";
+  version = "40.4.3";
   name = "${python.libPrefix}-${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "47881d54ede4da9c15273bac65f9340f8929d4f0213193fa7894be384f2dcfa6";
+    sha256 = "acbc5740dd63f243f46c2b4b8e2c7fd92259c2ddb55a4115b16418a2ed371b15";
   };
 
   nativeBuildInputs = [ unzip wrapPython ];
diff --git a/pkgs/development/python-modules/setuptoolsdarcs/default.nix b/pkgs/development/python-modules/setuptoolsdarcs/default.nix
new file mode 100644
index 0000000000000..d696a5be08fa1
--- /dev/null
+++ b/pkgs/development/python-modules/setuptoolsdarcs/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, darcsver
+}:
+
+buildPythonPackage rec {
+  pname = "setuptools_darcs";
+  version = "1.2.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wsh0g1fn10msqk87l5jrvzs0yj5mp6q9ld3gghz6zrhl9kqzdn1";
+  };
+
+  # In order to break the dependency on darcs -> ghc, we don't add
+  # darcs as a propagated build input.
+  propagatedBuildInputs = [ darcsver ];
+
+  # ugly hack to specify version that should otherwise come from darcs
+  patchPhase = ''
+    substituteInPlace setup.py --replace "name=PKG" "name=PKG, version='${version}'"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Setuptools plugin for the Darcs version control system";
+    homepage = http://allmydata.org/trac/setuptools_darcs;
+    license = licenses.bsd0;
+  };
+}
diff --git a/pkgs/development/python-modules/setuptoolstrial/default.nix b/pkgs/development/python-modules/setuptoolstrial/default.nix
new file mode 100644
index 0000000000000..b393d0eb2003b
--- /dev/null
+++ b/pkgs/development/python-modules/setuptoolstrial/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, virtualenv
+, pytestrunner
+, pytest-virtualenv
+, twisted
+, pathlib2
+}:
+
+buildPythonPackage rec {
+  pname = "setuptools_trial";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "14220f8f761c48ba1e2526f087195077cf54fad7098b382ce220422f0ff59b12";
+  };
+
+  buildInputs = [ pytest virtualenv pytestrunner pytest-virtualenv ];
+  propagatedBuildInputs = [ twisted pathlib2 ];
+
+  postPatch = ''
+    sed -i '12,$d' tests/test_main.py
+  '';
+
+  # Couldn't get tests working
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Setuptools plugin that makes unit tests execute with trial instead of pyunit.";
+    homepage = "https://github.com/rutsky/setuptools-trial";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ryansydnor nand0p ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/shortuuid/default.nix b/pkgs/development/python-modules/shortuuid/default.nix
new file mode 100644
index 0000000000000..43cf9806ba67d
--- /dev/null
+++ b/pkgs/development/python-modules/shortuuid/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pep8
+}:
+
+buildPythonPackage rec {
+  pname = "shortuuid";
+  version = "0.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4606dbb19124d98109c00e2cafae2df8117aec02115623e18fb2abe3f766d293";
+  };
+
+  buildInputs = [pep8];
+
+  meta = with stdenv.lib; {
+    description = "A generator library for concise, unambiguous and URL-safe UUIDs";
+    homepage = https://github.com/stochastic-technologies/shortuuid/;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ zagy ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/shouldbe/default.nix b/pkgs/development/python-modules/shouldbe/default.nix
new file mode 100644
index 0000000000000..df868bb4d5e5e
--- /dev/null
+++ b/pkgs/development/python-modules/shouldbe/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, forbiddenfruit
+}:
+
+buildPythonPackage rec {
+  version = "0.1.0";
+  pname = "shouldbe";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07pchxpv1xvjbck0xy44k3a1jrvklg0wbyccn14w0i7d135d4174";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ forbiddenfruit ];
+
+  doCheck = false;  # Segmentation fault on py 3.5
+
+  meta = with stdenv.lib; {
+    description = "Python Assertion Helpers inspired by Shouldly";
+    homepage =  https://pypi.python.org/pypi/shouldbe/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/simplebayes/default.nix b/pkgs/development/python-modules/simplebayes/default.nix
new file mode 100644
index 0000000000000..705b755937252
--- /dev/null
+++ b/pkgs/development/python-modules/simplebayes/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, mock
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "simplebayes";
+  version = "1.5.8";
+
+  # Use GitHub instead of pypi, because it contains tests.
+  src = fetchFromGitHub {
+    repo = "simplebayes";
+    owner = "hickeroar";
+    # NOTE: This is actually 1.5.8 but the tag is wrong!
+    rev = "1.5.7";
+    sha256 = "0mp7rvfdmpfxnka4czw3lv5kkh6gdxh6dm4r6hcln1zzfg9lxp4h";
+  };
+
+  checkInputs = [ nose mock ];
+
+  postPatch = stdenv.lib.optionalString isPy3k ''
+    sed -i -e 's/open *(\([^)]*\))/open(\1, encoding="utf-8")/' setup.py
+  '';
+
+  checkPhase = "nosetests tests/test.py";
+
+  meta = with stdenv.lib; {
+    description = "Memory-based naive bayesian text classifier";
+    homepage = "https://github.com/hickeroar/simplebayes";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/simpleparse/default.nix b/pkgs/development/python-modules/simpleparse/default.nix
new file mode 100644
index 0000000000000..025331a49e933
--- /dev/null
+++ b/pkgs/development/python-modules/simpleparse/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  version = "2.1.1";
+  pname = "simpleparse";
+  disabled = isPy3k || isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n8msk71lpl3kv086xr2sv68ppgz6228575xfnbszc6p1mwr64rg";
+  };
+
+  doCheck = false;  # weird error
+
+  meta = with stdenv.lib; {
+    description = "A Parser Generator for Python";
+    homepage = https://pypi.python.org/pypi/SimpleParse;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/slob/default.nix b/pkgs/development/python-modules/slob/default.nix
new file mode 100644
index 0000000000000..490113d6952a1
--- /dev/null
+++ b/pkgs/development/python-modules/slob/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, PyICU
+, python
+}:
+
+buildPythonPackage rec {
+  name = "slob";
+  verison = "unstable-2016-11-03";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "itkach";
+    repo = "slob";
+    rev = "d1ed71e4778729ecdfc2fe27ed783689a220a6cd";
+    sha256 = "1r510s4r124s121wwdm9qgap6zivlqqxrhxljz8nx0kv0cdyypi5";
+  };
+
+  propagatedBuildInputs = [ PyICU ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest slob
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/itkach/slob/;
+    description = "Reference implementation of the slob (sorted list of blobs) format";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.rycee ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/slowaes/default.nix b/pkgs/development/python-modules/slowaes/default.nix
new file mode 100644
index 0000000000000..f9175e507b463
--- /dev/null
+++ b/pkgs/development/python-modules/slowaes/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "slowaes";
+  version = "0.1a1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "83658ae54cc116b96f7fdb12fdd0efac3a4e8c7c7064e3fac3f4a881aa54bf09";
+  };
+
+  disabled = isPy3k;
+
+  meta = with stdenv.lib; {
+    homepage = "http://code.google.com/p/slowaes/";
+    description = "AES implemented in pure python";
+    license = with licenses; [ asl20 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/sopel/default.nix b/pkgs/development/python-modules/sopel/default.nix
new file mode 100644
index 0000000000000..1103e0fa3d303
--- /dev/null
+++ b/pkgs/development/python-modules/sopel/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, praw
+, xmltodict
+, pytz
+, pyenchant
+, pygeoip
+, python
+, isPyPy
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "sopel";
+  version = "6.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1swvw7xw8n5anb8ah8jilk4vk1y30y62fkibfd9vm9fbk45d1q48";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ praw xmltodict pytz pyenchant pygeoip ];
+
+  disabled = isPyPy || isPy27;
+
+  checkPhase = ''
+    ${python.interpreter} test/*.py                                         #*/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple and extensible IRC bot";
+    homepage = "http://sopel.chat";
+    license = licenses.efl20;
+    maintainers = with maintainers; [ mog ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/sqlite3dbm/default.nix b/pkgs/development/python-modules/sqlite3dbm/default.nix
new file mode 100644
index 0000000000000..bc49c0e426ba6
--- /dev/null
+++ b/pkgs/development/python-modules/sqlite3dbm/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "sqlite3dbm";
+  version = "0.1.4";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4721607e0b817b89efdba7e79cab881a03164b94777f4cf796ad5dd59a7612c5";
+  };
+
+  meta = with stdenv.lib; {
+    description = "sqlite-backed dictionary";
+    homepage = https://github.com/Yelp/sqlite3dbm;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sqlobject/default.nix b/pkgs/development/python-modules/sqlobject/default.nix
new file mode 100644
index 0000000000000..7a3551e88a0ca
--- /dev/null
+++ b/pkgs/development/python-modules/sqlobject/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, FormEncode
+, PasteDeploy
+, paste
+, pydispatcher
+}:
+
+buildPythonPackage rec {
+  pname = "SQLObject";
+  version = "3.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0p2dxrxh7xrv5yys09v5z95d0z40w22aq3xc01ghdidd7hr79xy9";
+  };
+
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [ FormEncode PasteDeploy paste pydispatcher ];
+
+  meta = with stdenv.lib; {
+    description = "Object Relational Manager for providing an object interface to your database";
+    homepage = "http://www.sqlobject.org/";
+    license = licenses.lgpl21;
+  };
+
+}
diff --git a/pkgs/development/python-modules/squaremap/default.nix b/pkgs/development/python-modules/squaremap/default.nix
new file mode 100644
index 0000000000000..3a0e95ab77e36
--- /dev/null
+++ b/pkgs/development/python-modules/squaremap/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "squaremap";
+  version = "1.0.4";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "feab6cb3b222993df68440e34825d8a16de2c74fdb290ae3974c86b1d5f3eef8";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Hierarchic visualization control for wxPython";
+    homepage = https://launchpad.net/squaremap;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/txaio/default.nix b/pkgs/development/python-modules/txaio/default.nix
index 2bfdbae918a1d..5536c68e2bec9 100644
--- a/pkgs/development/python-modules/txaio/default.nix
+++ b/pkgs/development/python-modules/txaio/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted }:
+{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted,isPy37 }:
 
 buildPythonPackage rec {
   pname = "txaio";
-  version = "18.7.1";
+  version = "18.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "701de939e90bb80f7e085357081552437526752199def5541dddfc34c0b0593f";
+    sha256 = "67e360ac73b12c52058219bb5f8b3ed4105d2636707a36a7cdafb56fe06db7fe";
   };
 
   checkInputs = [ pytest mock ];
@@ -17,6 +17,9 @@ buildPythonPackage rec {
     py.test -k "not test_sdist"
   '';
 
+  # Needs some fixing for 3.7
+  doCheck = !isPy37;
+
   meta = with stdenv.lib; {
     description = "Utilities to support code that runs unmodified on Twisted and asyncio.";
     homepage    = "https://github.com/crossbario/txaio";
diff --git a/pkgs/development/python-modules/wheel/default.nix b/pkgs/development/python-modules/wheel/default.nix
index f8868f02c2c2e..fee7f8f73cdad 100644
--- a/pkgs/development/python-modules/wheel/default.nix
+++ b/pkgs/development/python-modules/wheel/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "wheel";
-  version = "0.31.1";
+  version = "0.32.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a2e54558a0628f2145d2fc822137e322412115173e8a2ddbe1c9024338ae83c";
+    sha256 = "196c9842d79262bb66fcf59faa4bd0deb27da911dbc7c6cdca931080eb1f0783";
   };
 
   checkInputs = [ pytest pytestcov coverage ];
diff --git a/pkgs/development/python-modules/xattr/default.nix b/pkgs/development/python-modules/xattr/default.nix
new file mode 100644
index 0000000000000..a3da58eb9f336
--- /dev/null
+++ b/pkgs/development/python-modules/xattr/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, cffi
+}:
+
+buildPythonPackage rec {
+  pname = "xattr";
+  version = "0.7.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nbqfghgy26jyp5q7wl3rj78wr8s39m5042df2jlldg3fx6j0417";
+  };
+
+  propagatedBuildInputs = [ cffi ];
+
+  # https://github.com/xattr/xattr/issues/43
+  doCheck = false;
+
+  postBuild = ''
+    ${python.interpreter} -m compileall -f xattr
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/xattr/xattr;
+    description = "Python wrapper for extended filesystem attributes";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/xlrd/default.nix b/pkgs/development/python-modules/xlrd/default.nix
new file mode 100644
index 0000000000000..4e94078b9bf64
--- /dev/null
+++ b/pkgs/development/python-modules/xlrd/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "xlrd";
+  version = "0.9.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8e8d3359f39541a6ff937f4030db54864836a06e42988c452db5b6b86d29ea72";
+  };
+
+  buildInputs = [ nose ];
+
+  checkPhase = ''
+    nosetests -v
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.python-excel.org/;
+    description = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index ccc2cf9b4ab5a..a371bc2e00221 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, gdb, llvm, cctools, xnu, bootstrap_cmds }:
 
 stdenv.mkDerivation rec {
-  name = "valgrind-3.13.0";
+  name = "valgrind-3.14.0";
 
   src = fetchurl {
     url = "https://sourceware.org/pub/valgrind/${name}.tar.bz2";
-    sha256 = "0fqc3684grrbxwsic1rc5ryxzxmigzjx9p5vf3lxa37h0gpq0rnp";
+    sha256 = "19ds42jwd89zrsjb94g7gizkkzipn8xik3xykrpcqxylxyzi2z03";
   };
 
   outputs = [ "out" "dev" "man" "doc" ];