about summary refs log tree commit diff
path: root/pkgs/top-level/python-packages.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level/python-packages.nix')
-rw-r--r--pkgs/top-level/python-packages.nix3357
1 files changed, 2747 insertions, 610 deletions
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 3dc6a36bb7e0..0e93505f0e93 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1,43 +1,53 @@
-{ pkgs, python, lowPrio }:
+{ pkgs, python }:
+  with pkgs.lib;
 
 let
-isPy26 = python.majorVersion == "2.6";
-isPy27 = python.majorVersion == "2.7";
-optional = pkgs.lib.optional;
-optionals = pkgs.lib.optionals;
-modules = python.modules or { readline = null; sqlite3 = null; curses = null; curses_panel = null; ssl = null; crypt = null; };
+  isPy26 = python.majorVersion == "2.6";
+  isPy27 = python.majorVersion == "2.7";
+  isPy33 = python.majorVersion == "3.3";
+  isPy34 = python.majorVersion == "3.4";
+  isPyPy = python.executable == "pypy";
+
+  # Unique python version identifier
+  pythonName =
+    if isPy26 then "python26" else
+    if isPy27 then "python27" else
+    if isPy33 then "python33" else
+    if isPy34 then "python34" else
+    if isPyPy then "pypy" else "";
+
+  modules = python.modules or { readline = null; sqlite3 = null; curses = null; curses_panel = null; ssl = null; crypt = null; };
 
 pythonPackages = modules // import ./python-packages-generated.nix {
   inherit pkgs python;
   inherit (pkgs) stdenv fetchurl;
   self = pythonPackages;
-} // rec {
+} //
 
-  inherit python;
-  inherit (pkgs) fetchurl fetchsvn fetchgit stdenv;
+# Python packages for all python versions
+rec {
+
+  inherit python isPy26 isPy27 isPy33 isPy34 isPyPy pythonName;
+  inherit (pkgs) fetchurl fetchsvn fetchgit stdenv unzip;
 
   # helpers
 
-  callPackage = pkgs.lib.callPackageWith (pkgs // pythonPackages);
+  callPackage = callPackageWith (pkgs // pythonPackages);
 
-  buildPythonPackage = import ../development/python-modules/generic {
-    inherit (pkgs) lib;
-    inherit python wrapPython setuptools recursivePthLoader offlineDistutils;
-  };
+  # global distutils config used by buildPythonPackage
+  distutils-cfg = callPackage ../development/python-modules/distutils-cfg { };
+
+  buildPythonPackage = callPackage ../development/python-modules/generic { };
 
   wrapPython = pkgs.makeSetupHook
     { deps = pkgs.makeWrapper;
       substitutions.libPrefix = python.libPrefix;
+      substitutions.executable = "${python}/bin/${python.executable}";
     }
    ../development/python-modules/generic/wrap.sh;
 
   # specials
 
-  offlineDistutils = import ../development/python-modules/offline-distutils {
-    inherit (pkgs) stdenv;
-    inherit python;
-  };
-
   recursivePthLoader = import ../development/python-modules/recursive-pth-loader {
     inherit (pkgs) stdenv;
     inherit python;
@@ -45,21 +55,46 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   setuptools = import ../development/python-modules/setuptools {
     inherit (pkgs) stdenv fetchurl;
-    inherit python wrapPython;
-  };
-
-  setuptoolsSite = import ../development/python-modules/setuptools/site.nix {
-    inherit (pkgs) stdenv;
-    inherit python setuptools;
+    inherit python wrapPython distutils-cfg;
   };
 
   # packages defined elsewhere
 
   blivet = callPackage ../development/python-modules/blivet { };
 
+  dbus = import ../development/python-modules/dbus {
+    inherit (pkgs) stdenv fetchurl pkgconfig dbus dbus_glib dbus_tools;
+    inherit python;
+  };
+
+  discid = buildPythonPackage rec {
+    name = "discid-1.1.0";
+
+    meta = with stdenv.lib; {
+      description = "Python binding of libdiscid";
+      homepage    = "https://python-discid.readthedocs.org/";
+      license     = licenses.lgpl3Plus;
+      platforms   = platforms.linux;
+      maintainer  = with maintainers; [ iyzsong ];
+    };
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/discid/${name}.tar.gz";
+      md5 = "2ad2141452dd10b03ad96ccdad075235";
+    };
+
+    patchPhase = ''
+      substituteInPlace discid/libdiscid.py \
+        --replace '_open_library(_LIB_NAME)' "_open_library('${pkgs.libdiscid}/lib/libdiscid.so.0')"
+    '';
+  };
+
   ipython = import ../shells/ipython {
     inherit (pkgs) stdenv fetchurl sip pyqt4;
     inherit buildPythonPackage pythonPackages;
+    qtconsoleSupport = !pkgs.stdenv.isDarwin; # qt is not supported on darwin
+    pylabQtSupport = !pkgs.stdenv.isDarwin;
+    pylabSupport = !pkgs.stdenv.isDarwin; # cups is not supported on darwin
   };
 
   ipythonLight = lowPrio (import ../shells/ipython {
@@ -87,7 +122,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
   pycairo = import ../development/python-modules/pycairo {
-    inherit (pkgs) stdenv fetchurl pkgconfig cairo x11;
+    inherit (pkgs) stdenv fetchurl fetchpatch pkgconfig cairo x11;
     inherit python;
   };
 
@@ -96,11 +131,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     inherit python buildPythonPackage;
   };
 
-  pycrypto25 = import ../development/python-modules/pycrypto/2.5.nix {
-    inherit (pkgs) fetchurl stdenv gmp;
-    inherit python buildPythonPackage;
-  };
-
   pygobject = import ../development/python-modules/pygobject {
     inherit (pkgs) stdenv fetchurl pkgconfig glib;
     inherit python;
@@ -126,8 +156,36 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     inherit python buildPythonPackage pygobject pycairo;
   };
 
-  # A patched version of buildout, useful for buildout based development on Nix
-  zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
+  pyqt4 = import ../development/python-modules/pyqt/4.x.nix {
+    inherit (pkgs) stdenv fetchurl pkgconfig qt4 makeWrapper;
+    inherit (pkgs.xorg) lndir;
+    inherit python sip;
+    pythonDBus = dbus;
+  };
+
+  pyqt5 = import ../development/python-modules/pyqt/5.x.nix {
+    inherit (pkgs) stdenv fetchurl pkgconfig qt5 makeWrapper;
+    inherit (pkgs.xorg) lndir;
+    inherit python;
+    sip = sip_4_16;
+    pythonDBus = dbus;
+  };
+
+  sip = import ../development/python-modules/sip {
+    inherit (pkgs) stdenv fetchurl;
+    inherit python;
+  };
+
+  sip_4_16 = import ../development/python-modules/sip/4.16.nix {
+    inherit (pkgs) stdenv fetchurl;
+    inherit python;
+  };
+
+  tables = import ../development/python-modules/tables {
+    inherit (pkgs) stdenv fetchurl bzip2 lzo;
+    inherit python buildPythonPackage cython numpy numexpr;
+    hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
+  };
 
   # packages defined here
 
@@ -162,18 +220,19 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   actdiag = buildPythonPackage rec {
-    name = "actdiag-0.4.3";
+    name = "actdiag-0.5.1";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/a/actdiag/${name}.tar.gz";
-      md5 = "428aaab849f04668fa12388b964a56ea";
+      md5 = "171c47bc1f70e5fadfffd9df0c3157be";
     };
 
     buildInputs = [ pep8 nose unittest2 docutils ];
 
     propagatedBuildInputs = [ blockdiag ];
 
-    # One test fails, because of missing simple.diag input file
+    # One test fails:
+    #   UnicodeEncodeError: 'ascii' codec can't encode character u'\u3042' in position 0: ordinal not in range(128)
     doCheck = false;
 
     meta = with stdenv.lib; {
@@ -187,20 +246,29 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   afew = buildPythonPackage rec {
-    rev = "6bb3915636aaf86f046a017ffffd9a4ef395e199";
+    rev = "9744c18c4d6b0a3e7f57b01e5fe145a60fc82a47";
     name = "afew-1.0_${rev}";
 
     src = fetchurl {
       url = "https://github.com/teythoon/afew/tarball/${rev}";
       name = "${name}.tar.bz";
-      sha256 = "74926d9ddfa69534cfbd08a82f0acccab2c649558062654d5d2ff2999d201384";
+      sha256 = "1qyban022aji2hl91dh0j3xa6ikkxl5argc6w71yp2x8b02kp3mf";
     };
 
-    propagatedBuildInputs = [ pythonPackages.notmuch pkgs.dbacl ];
+    buildInputs = [ pkgs.dbacl ];
+
+    propagatedBuildInputs = [
+      pythonPackages.notmuch
+      pythonPackages.subprocess32
+      pythonPackages.chardet
+    ];
 
-    # error: invalid command 'test'
     doCheck = false;
 
+    preConfigure = ''
+      substituteInPlace afew/DBACL.py --replace "'dbacl'" "'${pkgs.dbacl}/bin/dbacl'"
+    '';
+
     postInstall = ''
       wrapProgram $out/bin/afew \
         --prefix LD_LIBRARY_PATH : ${pkgs.notmuch}/lib
@@ -243,7 +311,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     buildInputs = [
       pkgs.which
-      pkgs.unzip
       pythonPackages.coverage
       pythonPackages.mock
       pythonPackages.tissue
@@ -272,13 +339,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       pythonPackages.waitress
       pythonPackages.webhelpers
       pythonPackages.zope_sqlalchemy
+      pythonPackages.psycopg2
     ];
 
     postInstall = ''
-      ln -s ${pyramid}/bin/pserve $out/bin
       ln -s ${pkgs.bacula}/bin/bconsole $out/bin
-      wrapProgram "$out/bin/pserve" \
-        --suffix PYTHONPATH : "$out/lib/python2.7/site-packages"
     '';
 
     meta = {
@@ -289,13 +354,13 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   alot = buildPythonPackage rec {
-    rev = "0711cf8efaf1a4cca24617c3406210a415006457";
-    name = "alot-0.3.4_${rev}";
+    rev = "fa4ddf000dc2ac4933852b210901b649634a5f86";
+    name = "alot-0.3.5_${rev}";
 
     src = fetchurl {
       url = "https://github.com/pazz/alot/tarball/${rev}";
       name = "${name}.tar.bz";
-      sha256 = "1rxkx9cjajsv9x1dl4xp1r3vr0kb66sglxaqzjiwaknqzahmmji5";
+      sha256 = "0h11lqyxg0xbkc9y1xqjvd0kmfm5pdwnmv9chmlsi1614dxn08n0";
     };
 
     # error: invalid command 'test'
@@ -366,7 +431,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       sha1 = "fa4aec08e59fa5964197f59ba42408d64031675b";
     };
 
-    buildInputs = [ pkgs.unzip pkgs.sqlite ];
+    buildInputs = [ pkgs.sqlite ];
 
     # python: double free or corruption (fasttop): 0x0000000002fd4660 ***
     doCheck = false;
@@ -395,6 +460,19 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   });
 
 
+  async = buildPythonPackage rec {
+    name = "async-0.6.1";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    buildInputs = [ pkgs.zlib ];
+    doCheck = false;
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/a/async/${name}.tar.gz";
+      sha256 = "1lfmjm8apy9qpnpbq8g641fd01qxh9jlya5g2d6z60vf8p04rla1";
+    };
+  };
+
   argparse = buildPythonPackage (rec {
     name = "argparse-1.2.1";
 
@@ -403,15 +481,13 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       sha256 = "192174mys40m0bwk6l5jlfnzps0xi81sxm34cqms6dc3c454pbyx";
     };
 
-    buildInputs = [ pkgs.unzip ];
-
     # error: invalid command 'test'
     doCheck = false;
 
     meta = {
       homepage = http://code.google.com/p/argparse/;
 
-      license = "Apache License 2.0";
+      license = stdenv.lib.licenses.asl20;
 
       description = "argparse: Python command line parser";
 
@@ -426,6 +502,99 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   });
 
+  astroid = buildPythonPackage (rec {
+    name = "astroid-1.1.1";
+    propagatedBuildInputs = [ logilab_common ];
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/a/astroid/${name}.tar.gz";
+      sha256 = "1x7103mlzndgg66yas6xrfwkwpihcq4bi9m8py1fjnhz8p5ka1vq";
+    };
+  });
+
+  autopep8 = buildPythonPackage (rec {
+    name = "autopep8-1.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/a/autopep8/${name}.tar.gz";
+      md5 = "41782e66efcbaf9d761bb45a2d2929bb";
+    };
+
+    propagatedBuildInputs = [ pep8 ];
+
+    # One test fails:
+    # FAIL: test_recursive_should_not_crash_on_unicode_filename (test.test_autopep8.CommandLineTests)
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+      description = "A tool that automatically formats Python code to conform to the PEP 8 style guide";
+      homepage = https://pypi.python.org/pypi/autopep8/;
+      license = licenses.mit;
+      platforms = platforms.all;
+      maintainers = [ maintainers.bjornfor ];
+    };
+  });
+
+  avro = buildPythonPackage (rec {
+    name = "avro-1.7.6";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/a/avro/${name}.tar.gz";
+      md5 = "7f4893205e5ad69ac86f6b44efb7df72";
+    };
+
+    meta = with stdenv.lib; {
+      description = "A serialization and RPC framework";
+      homepage = "https://pypi.python.org/pypi/avro/";
+    };
+  });
+
+  avro3k = pkgs.lowPrio (buildPythonPackage (rec {
+    name = "avro3k-1.7.7-SNAPSHOT";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/a/avro3k/${name}.tar.gz";
+      sha256 = "15ahl0irwwj558s964abdxg4vp6iwlabri7klsm2am6q5r0ngsky";
+    };
+
+    doCheck = false;        # No such file or directory: './run_tests.py
+
+    meta = with stdenv.lib; {
+      description = "A serialization and RPC framework";
+      homepage = "https://pypi.python.org/pypi/avro3k/";
+    };
+  }));
+
+  backports_ssl_match_hostname_3_4_0_2 = pythonPackages.buildPythonPackage rec {
+    name = "backports.ssl_match_hostname-3.4.0.2";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/b/backports.ssl_match_hostname/backports.ssl_match_hostname-3.4.0.2.tar.gz";
+      md5 = "788214f20214c64631f0859dc79f23c6";
+    };
+
+    meta = {
+      description = "The Secure Sockets layer is only actually *secure*";
+      homepage = http://bitbucket.org/brandon/backports.ssl_match_hostname;
+    };
+  };
+
+  bcdoc = buildPythonPackage rec {
+    name = "bcdoc-0.12.1";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/b/bcdoc/bcdoc-0.12.1.tar.gz";
+      md5 = "7c8617347c294ea4d36ec73fb5b2c26e";
+    };
+
+    buildInputs = [ pythonPackages.docutils pythonPackages.six ];
+
+    meta = {
+      homepage = https://github.com/botocore/bcdoc;
+      license = stdenv.lib.licenses.asl20;
+      description = "ReST document generation tools for botocore";
+    };
+  };
+
   beautifulsoup = buildPythonPackage (rec {
     name = "beautifulsoup-3.2.1";
 
@@ -493,16 +662,44 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
+  bedup = buildPythonPackage rec {
+    name = "bedup-20140206";
+
+    src = fetchgit {
+      url = "https://github.com/g2p/bedup.git";
+      rev = "80cb217d4819a03e159e42850a9a3f14e2b278a3";
+      sha256 = "1rik7a62v708ivfcy0pawhfnrb84b7gm3qr54x6jsxl0iqz078h6";
+    };
+
+    buildInputs = [ pkgs.btrfsProgs ];
+    propagatedBuildInputs = with pkgs; [ contextlib2 sqlalchemy pyxdg pycparser cffi alembic ];
+
+    meta = {
+      description = "Deduplication for Btrfs";
+      longDescription = ''
+        Deduplication for Btrfs. bedup looks for new and changed files, making sure that multiple
+        copies of identical files share space on disk. It integrates deeply with btrfs so that scans
+        are incremental and low-impact.
+      '';
+      homepage = https://github.com/g2p/bedup;
+      license = stdenv.lib.licenses.gpl2;
+
+      platforms = stdenv.lib.platforms.linux;
+
+      maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
+    };
+  };
+
   beets = buildPythonPackage rec {
-    name = "beets-1.0.0";
+    name = "beets-1.3.6";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/b/beets/${name}.tar.gz";
-      md5 = "88ad09a93aa0d69ce813205cf23b2a6c";
+      md5 = "59615a54b3ac3983159e77ff9dda373e";
     };
 
     # tests depend on $HOME setting
-    configurePhase = "export HOME=$TMPDIR";
+    preConfigure = "export HOME=$TMPDIR";
 
     propagatedBuildInputs =
       [ pythonPackages.pyyaml
@@ -510,17 +707,72 @@ pythonPackages = modules // import ./python-packages-generated.nix {
         pythonPackages.mutagen
         pythonPackages.munkres
         pythonPackages.musicbrainzngs
+        pythonPackages.enum34
+        pythonPackages.pylast
+        pythonPackages.rarfile
+        pythonPackages.flask
         modules.sqlite3
         modules.readline
       ];
+      
+    buildInputs = with pythonPackages; [ mock pyechonest six responses nose ];
+    
+    # 10 tests are failing
+    doCheck = false;
 
     meta = {
       homepage = http://beets.radbox.org;
       description = "Music tagger and library organizer";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
+  
+  responses = pythonPackages.buildPythonPackage rec {
+    name = "responses-0.2.2";
+
+    propagatedBuildInputs = with pythonPackages; [ requests mock six pytest flake8 ];
+    
+    doCheck = false;
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/responses/responses-0.2.2.tar.gz";
+      md5 = "5d79fd425cf8d858dfc8afa6475395d3";
+    };
+
+  };
+ 
+  rarfile = pythonPackages.buildPythonPackage rec {
+    name = "rarfile-2.6";
+
+    propagatedBuildInputs = with pythonPackages; [  ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/rarfile/rarfile-2.6.tar.gz";
+      md5 = "50ce3f3fdb9196a00059a5ea7b3739fd";
+    };
+
+    meta = with stdenv.lib; {
+      description = "rarfile - RAR archive reader for Python";
+      homepage = https://github.com/markokr/rarfile;
+    };
+  };
+  
+  pyechonest = pythonPackages.buildPythonPackage rec {
+    name = "pyechonest-8.0.2";
+
+    propagatedBuildInputs = with pythonPackages; [  ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pyechonest/pyechonest-8.0.2.tar.gz";
+      md5 = "5586fe8ece7af4e24f71ea740185127e";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Tap into The Echo Nest's Musical Brain for the best music search, information, recommendations and remix tools on the web";
+      homepage = https://github.com/echonest/pyechonest;
+    };
+  };
 
 
   bitbucket_api = buildPythonPackage rec {
@@ -538,7 +790,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = https://github.com/Sheeprider/BitBucket-api;
       description = "Python library to interact with BitBucket REST API";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
+    };
+  };
+
+  bitbucket-cli = buildPythonPackage rec {
+    name = "bitbucket-cli-0.4.1";
+    src = fetchurl {
+       url = "https://pypi.python.org/packages/source/b/bitbucket-cli/${name}.tar.gz";
+       md5 = "79cdbdc6c95dfa313d12cbdef406c9f2";
+    };
+
+    pythonPath = [ requests ];
+
+    meta = with stdenv.lib; {
+      description = "Bitbucket command line interface";
+      homepage = "https://bitbucket.org/zhemao/bitbucket-cli";
+      maintainers = [ maintainers.refnil ];
     };
   };
 
@@ -551,8 +819,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       sha256 = "1i1p3rkj4ad108f23xyib34r4rcy571gy65paml6fk77knh0k66p";
     };
 
-    buildInputs = [ pkgs.unzip ];
-
     # error: invalid command 'test'
     doCheck = false;
 
@@ -567,16 +833,16 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   blockdiag = buildPythonPackage rec {
-    name = "blockdiag-1.2.4";
+    name = "blockdiag-1.3.2";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/b/blockdiag/${name}.tar.gz";
-      md5 = "244334f60cc10b0cb73b5df5279bcdd1";
+      md5 = "602a8750f312eeee84d6d138055dfae7";
     };
 
     buildInputs = [ pep8 nose unittest2 docutils ];
 
-    propagatedBuildInputs = [ pil webcolors funcparserlib ];
+    propagatedBuildInputs = [ pillow webcolors funcparserlib ];
 
     # One test fails:
     #   ...
@@ -642,11 +908,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   boto = buildPythonPackage rec {
     name = "boto-${version}";
-    version = "2.9.9";
+    version = "2.32.0";
 
     src = fetchurl {
       url = "https://github.com/boto/boto/archive/${version}.tar.gz";
-      sha256 = "18wqpzd1zf8nivcn2rl1wnladf7hhyy5p75b5l6kafynm4l9j6jq";
+      sha256 = "0bl5y7m0m84rz4q7hx783kxpj1n9wcm7dhv54bnx8cnanyd13cxn";
     };
 
     # The tests seem to require AWS credentials.
@@ -669,12 +935,12 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   botocore = buildPythonPackage rec {
-    version = "0.13.1";
+    version = "0.33.0";
     name = "botocore-${version}";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/b/botocore/${name}.tar.gz";
-      sha256 = "192kxgw76b22zmk5mxjkij5rskibb9jfaggvpznzy3ggsgja7yy8";
+      md5 = "6743c73a2e148abaa9c487a6e2ee53a3";
     };
 
     propagatedBuildInputs =
@@ -716,7 +982,27 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   buildout = zc_buildout;
   buildout152 = zc_buildout152;
 
+  # A patched version of buildout, useful for buildout based development on Nix
+  zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
+
+  zc_recipe_egg = zc_recipe_egg_buildout171;
   zc_buildout = zc_buildout171;
+  zc_buildout2 = zc_buildout221;
+  zc_buildout221 = buildPythonPackage rec {
+    name = "zc.buildout-2.2.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz";
+      md5 = "476a06eed08506925c700109119b6e41";
+    };
+
+   meta = {
+      homepage = "http://www.buildout.org";
+      description = "A software build and configuration system";
+      license = licenses.zpt21;
+      maintainers = [ stdenv.lib.maintainers.garbas ];
+    };
+  };
   zc_buildout171 = buildPythonPackage rec {
     name = "zc.buildout-1.7.1";
 
@@ -728,7 +1014,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
    meta = {
       homepage = "http://www.buildout.org";
       description = "A software build and configuration system";
-      license = pkgs.lib.licenses.zpt21;
+      license = licenses.zpt21;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   };
@@ -749,11 +1035,45 @@ pythonPackages = modules // import ./python-packages-generated.nix {
    meta = {
       homepage = "http://www.buildout.org";
       description = "A software build and configuration system";
-      license = pkgs.lib.licenses.zpt21;
+      license = licenses.zpt21;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   };
 
+  zc_recipe_egg_fun = { buildout, version, md5 }: buildPythonPackage rec {
+    inherit version;
+    name = "zc.recipe.egg-${version}";
+
+    buildInputs = [ buildout ];
+    doCheck = false;
+
+    src = fetchurl {
+      inherit md5;
+      url = "https://pypi.python.org/packages/source/z/zc.recipe.egg/zc.recipe.egg-${version}.tar.gz";
+    };
+  };
+  zc_recipe_egg_buildout171 = zc_recipe_egg_fun {
+    buildout = zc_buildout171;
+    version = "1.3.2";
+    md5 = "1cb6af73f527490dde461d3614a36475";
+  };
+  zc_recipe_egg_buildout2 = zc_recipe_egg_fun {
+    buildout = zc_buildout2;
+    version = "2.0.1";
+    md5 = "5e81e9d4cc6200f5b1abcf7c653dd9e3";
+  };
+
+  bunch = buildPythonPackage (rec {
+    name = "bunch-1.0.1";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/b/bunch/${name}.tar.gz";
+      sha256 = "1akalx2pd1fjlvrq69plvcx783ppslvikqdm93z2sdybq07pmish";
+    };
+    doCheck = false;
+  });
+
 
   carrot = buildPythonPackage rec {
     name = "carrot-0.10.7";
@@ -816,6 +1136,20 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   });
 
 
+  click = buildPythonPackage {
+    name = "click-2.1";
+    src = fetchurl {
+      url = https://pypi.python.org/packages/source/c/click/click-2.1.tar.gz;
+      md5 = "0ba97ba09af82c56e2d35f3412d0aa6e";
+    };
+    meta = {
+      homepage = "http://click.pocoo.org/";
+      description = "Click is a Python package for creating beautiful command line interfaces in a composable way with as little code as necessary.";
+      license = "bsd, 3-clause";
+    };
+  };
+
+
   clepy = buildPythonPackage rec {
     name = "clepy-0.3.20";
 
@@ -901,7 +1235,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "5f39727415b837abd02651eeb2721749";
     };
 
-    propagatedBuildInputs = [ pythonPackages.stompclient pythonPackages.distribute ];
+    propagatedBuildInputs = [ pythonPackages.stompclient ];
+
+    preConfigure = ''
+      sed -i '/distribute/d' setup.py
+    '';
 
     buildInputs = [ pythonPackages.coverage pythonPackages.sqlalchemy ];
 
@@ -912,17 +1250,17 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "Simple, lightweight, and easily extensible STOMP message broker";
       homepage = http://code.google.com/p/coilmq/;
-      license = pkgs.lib.licenses.asl20;
+      license = licenses.asl20;
     };
   });
 
 
   colander = buildPythonPackage rec {
-    name = "colander-1.0a5";
+    name = "colander-1.0b1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/c/colander/${name}.tar.gz";
-      md5 = "569dea523561f5d94338ef9d9a98d249";
+      md5 = "89f2cf4b5c87d43f7917d6a0d4872e6a";
     };
 
     propagatedBuildInputs = [ pythonPackages.translationstring ];
@@ -954,7 +1292,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "Autogenerate Colander schemas based on SQLAlchemy models.";
       homepage = https://github.com/stefanofontanelli/ColanderAlchemy;
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
@@ -973,12 +1311,35 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "Config file reading, writing and validation.";
       homepage = http://pypi.python.org/pypi/configobj;
-      license = pkgs.lib.licenses.bsd3;
+      license = licenses.bsd3;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   });
 
 
+  configshell_fb = buildPythonPackage rec {
+    version = "1.1.fb10";
+    name = "configshell-fb-${version}";
+
+    src = fetchurl {
+      url = "https://github.com/agrover/configshell-fb/archive/v${version}.tar.gz";
+      sha256 = "1dd87xvm98nk3jzybb041gjdahi2z9b53pwqhyxcfj4a91y82ndy";
+    };
+
+    propagatedBuildInputs = [
+      pyparsing
+      modules.readline
+      urwid
+    ];
+
+    meta = {
+      description = "A Python library for building configuration shells";
+      homepage = "https://github.com/agrover/configshell-fb";
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
+
+
   construct = buildPythonPackage rec {
     name = "construct-2.5.1";
 
@@ -999,6 +1360,15 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
+  contextlib2 = buildPythonPackage rec {
+    name = "contextlib2-0.4.0";
+
+    src = fetchurl rec {
+      url = "https://pypi.python.org/packages/source/c/contextlib2/${name}.tar.gz";
+      md5 = "ea687207db25f65552061db4a2c6727d";
+    };
+  };
+
   coverage = buildPythonPackage rec {
     name = "coverage-3.6";
 
@@ -1010,8 +1380,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "Code coverage measurement for python";
       homepage = http://nedbatchelder.com/code/coverage/;
-      license = pkgs.lib.licenses.bsd3;
-      maintainers = [ stdenv.lib.maintainers.shlevy ];
+      license = licenses.bsd3;
     };
   };
 
@@ -1027,6 +1396,24 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     propagatedBuildInputs = [ pythonPackages.coverage ];
   };
 
+  cython = buildPythonPackage rec {
+    name = "Cython-0.20.1";
+
+    src = fetchurl {
+      url = "http://www.cython.org/release/${name}.tar.gz";
+      sha256 = "0v3nc9z5ynnnjdgcgkyy5g9wazmkjv53nnpjal1v3mr199s6799i";
+    };
+
+    setupPyBuildFlags = ["--build-base=$out"];
+
+    buildInputs = [ pkgs.pkgconfig ];
+
+    meta = {
+      description = "An interpreter to help writing C extensions for Python 2";
+      platforms = stdenv.lib.platforms.all;
+    };
+  };
+
   cryptacular = buildPythonPackage rec {
     name = "cryptacular-1.4.1";
 
@@ -1046,6 +1433,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  detox = pythonPackages.buildPythonPackage rec {
+    name = "detox-0.9.3";
+
+    propagatedBuildInputs = with pythonPackages; [ tox py eventlet ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/detox/detox-0.9.3.tar.gz";
+      md5 = "b52588ec61cd4c2d33e419677a5eac8c";
+    };
+
+    meta = with stdenv.lib; {
+      description = "What is detox?";
+      homepage = http://bitbucket.org/hpk42/detox;
+    };
+  };
+
+
   pbkdf2 = buildPythonPackage rec {
     name = "pbkdf2-1.3";
 
@@ -1092,6 +1496,30 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  pycollada = buildPythonPackage rec {
+    name = "pycollada-0.4";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pycollada/${name}.tar.gz";
+      md5 = "5d0f00c035491b945cdccdfd8a698ad2";
+    };
+
+    # pycollada-0.4 needs python-dateutil==1.5
+    buildInputs = [ dateutil_1_5 numpy ];
+
+    # Some tests fail because they refer to test data files that don't exist
+    # (upstream packaging issue)
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+      description = "Python library for reading and writing collada documents";
+      homepage = http://pycollada.github.io/;
+      license = "BSD"; # they don't specify which BSD variant
+      platforms = with platforms; linux ++ darwin;
+      maintainers = [ maintainers.bjornfor ];
+    };
+  };
+
   pycparser = buildPythonPackage rec {
     name = "pycparser-2.10";
 
@@ -1109,21 +1537,33 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
   pytest = buildPythonPackage rec {
-    name = "pytest-2.3.5";
+    name = "pytest-2.5.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pytest/${name}.tar.gz";
-      md5 = "18f150e7be96b5fe3c388b0e817b8087";
+      md5 = "4e155a0134e6757b37cc6698c20f3e9f";
     };
 
-    propagatedBuildInputs = [ pythonPackages.py ]
+    preCheck = ''
+      # broken on python3, fixed in master, remove in next release
+      rm doc/en/plugins_index/test_plugins_index.py
+
+      # don't test bash builtins
+      rm testing/test_argcomplete.py
+
+      # yaml test are failing
+      rm doc/en/example/nonpython/test_simple.yml
+    '';
+
+    propagatedBuildInputs = [ py ]
+      ++ (optional isPy26 argparse)
       ++ stdenv.lib.optional
         pkgs.config.pythonPackages.pytest.selenium or false
         pythonPackages.selenium;
 
     meta = with stdenv.lib; {
       maintainers = with maintainers; [ iElectric lovek323 ];
-      platforms   = platforms.unix;
+      platforms = platforms.unix;
     };
   };
 
@@ -1135,7 +1575,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "9c0b8efe9d43b460f8cf049fa46ce14d";
     };
 
-    buildInputs = [ pkgs.unzip pytest ];
+    buildInputs = [ pytest ];
     propagatedBuildInputs = [ execnet ];
 
     meta = {
@@ -1162,7 +1602,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       sha256 = "139yfm9yz9k33kgqw4khsljs10rkhhxyywbq9i82bh2r31cil1pp";
     };
 
-    buildInputs = [ pkgs.unzip pythonPackages.mock ];
+    buildInputs = [ pythonPackages.mock ];
 
     # couple of failing tests
     doCheck = false;
@@ -1172,16 +1612,16 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
       homepage = http://code.google.com/p/cssutils/;
 
-      license = "LGPLv3+";
+      license = stdenv.lib.licenses.lgpl3Plus;
     };
   });
 
   darcsver = buildPythonPackage (rec {
-    name = "darcsver-1.7.2";
+    name = "darcsver-1.7.4";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/d/darcsver/${name}.tar.gz";
-      md5 = "94ca7e8c9ea0f69c0f3fc6f9fc88f65a";
+      sha256 = "1yb1c3jxqvy4r3qiwvnb86qi5plw6018h15r3yk5ji3nk54qdcb6";
     };
 
     buildInputs = [ pythonPackages.mock ];
@@ -1205,11 +1645,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   dateutil = buildPythonPackage (rec {
-    name = "dateutil-2.1";
+    name = "dateutil-2.2";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/python-dateutil/python-${name}.tar.gz";
-      sha256 = "1vlx0lpsxjxz64pz87csx800cwfqznjyr2y7nk3vhmzhkwzyqi2c";
+      sha256 = "0s74ad6r789810s10dxgvaf48ni6adac2icrdad34zxygqq6bj7f";
     };
 
     propagatedBuildInputs = [ pythonPackages.six ];
@@ -1241,11 +1681,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   decorator = buildPythonPackage rec {
-    name = "decorator-3.3.1";
+    name = "decorator-3.4.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/d/decorator/${name}.tar.gz";
-      md5 = "a8fc62acd705f487a71bc406e19e0cc6";
+      md5 = "1e8756f719d746e2fc0dd28b41251356";
     };
 
     meta = {
@@ -1255,11 +1695,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   deform = buildPythonPackage rec {
-    name = "deform-0.9.8";
+    name = "deform-0.9.9";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/d/deform/${name}.tar.gz";
-      sha256 = "15500rm33n6kxsdpqyn3ih25y3rvab4nxy2yzsj2754kdlhlyjpx";
+      sha256 = "0ympsjhxz5v8h4hi1mv811h064221bh26d68l9hv1x6m7sxbxpd0";
     };
 
     buildInputs = [] ++ optional isPy26 unittest2;
@@ -1326,6 +1766,122 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  derpconf = pythonPackages.buildPythonPackage rec {
+    name = "derpconf-0.4.9";
+
+    propagatedBuildInputs = [ six ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/derpconf/${name}.tar.gz";
+      md5 = "a164807d7bf0c4adf1de781305f29b82";
+    };
+
+    meta = {
+      description = "derpconf abstracts loading configuration files for your app";
+      homepage = https://github.com/globocom/derpconf;
+      license = licenses.mit;
+    };
+  };
+
+  dogpile_cache = buildPythonPackage rec {
+    name = "dogpile.cache-0.5.4";
+
+    propagatedBuildInputs = [ dogpile_core ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/dogpile.cache/dogpile.cache-0.5.4.tar.gz";
+      md5 = "513b77ba1bd0c31bb15dd9dd0d8471af";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "A caching front-end based on the Dogpile lock.";
+      homepage = http://bitbucket.org/zzzeek/dogpile.cache;
+      license = licenses.bsd3;
+    };
+  };
+
+  dogpile_core = buildPythonPackage rec {
+    name = "dogpile.core-0.4.1";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/dogpile.core/dogpile.core-0.4.1.tar.gz";
+      md5 = "01cb19f52bba3e95c9b560f39341f045";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "A 'dogpile' lock, typically used as a component of a larger caching solution";
+      homepage = http://bitbucket.org/zzzeek/dogpile.core;
+      license = licenses.bsd3;
+    };
+  };
+
+  dpkt = buildPythonPackage rec {
+    name = "dpkt-1.8";
+
+    src = fetchurl {
+      url = "https://dpkt.googlecode.com/files/${name}.tar.gz";
+      sha256 = "01q5prynymaqyfsfi2296xncicdpid2hs3yyasim8iigvkwy4vf5";
+    };
+
+    # error: invalid command 'test'
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+      description = "Fast, simple packet creation / parsing, with definitions for the basic TCP/IP protocols";
+      homepage = https://code.google.com/p/dpkt/;
+      license = licenses.bsd3;
+      maintainers = [ maintainers.bjornfor ];
+      platforms = stdenv.lib.platforms.all;
+    };
+  };
+
+  urllib3 = buildPythonPackage rec {
+    name = "urllib3-1.8";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/u/urllib3/${name}.tar.gz";
+      sha256 = "0pdigfxkq8mhzxxsn6isx8c4h9azqywr1k18yanwyxyj8cdzm28s";
+    };
+
+    preConfigure = ''
+      substituteInPlace test-requirements.txt --replace 'nose==1.3' 'nose'
+    '';
+
+    checkPhase = ''
+      nosetests --cover-min-percentage 70
+    '';
+
+    buildInputs = [ coverage tornado mock nose ];
+
+    meta = with stdenv.lib; {
+      description = "A Python library for Dropbox's HTTP-based Core and Datastore APIs";
+      homepage = https://www.dropbox.com/developers/core/docs;
+      license = licenses.mit;
+    };
+  };
+
+
+  dropbox = buildPythonPackage rec {
+    name = "dropbox-2.0.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/dropbox/${name}.zip";
+      sha256 = "1bi2z1lql6ryylfflmizhqn98ab55777vn7n5krhqz40pdcjilkx";
+    };
+
+    propagatedBuildInputs = [ urllib3 mock setuptools ];
+
+    meta = with stdenv.lib; {
+      description = "A Python library for Dropbox's HTTP-based Core and Datastore APIs";
+      homepage = https://www.dropbox.com/developers/core/docs;
+      license = licenses.mit;
+    };
+  };
+
 
   evdev = buildPythonPackage rec {
     version = "0.3.2";
@@ -1394,8 +1950,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "be885ccd9612966bb81839670d2da099";
     };
 
-    buildInputs = [ pkgs.unzip ];
-
     meta = {
       description = "rapid multi-Python deployment";
       license = stdenv.lib.licenses.gpl2;
@@ -1443,6 +1997,35 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     buildInputs = [ fudge nose ];
   };
 
+  fedora_cert = stdenv.mkDerivation (rec {
+    name = "fedora-cert-0.5.9.2";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    src = fetchurl {
+      url = "https://fedorahosted.org/releases/f/e/fedora-packager/fedora-packager-0.5.9.2.tar.bz2";
+      sha256 = "105swvzshgn3g6bjwk67xd8pslnhpxwa63mdsw6cl4c7cjp2blx9";
+    };
+
+    propagatedBuildInputs = [ python python_fedora wrapPython ];
+    postInstall = "mv $out/bin/fedpkg $out/bin/fedora-cert-fedpkg";
+    doCheck = false;
+
+    postFixup = "wrapPythonPrograms";
+  });
+
+  fedpkg = buildPythonPackage (rec {
+    name = "fedpkg-1.14";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    src = fetchurl {
+      url = "https://fedorahosted.org/releases/f/e/fedpkg/fedpkg-1.14.tar.bz2";
+      sha256 = "0rj60525f2sv34g5llafnkmpvbwrfbmfajxjc14ldwzymp8clc02";
+    };
+
+    patches = [ ../development/python-modules/fedpkg-buildfix.diff ];
+    propagatedBuildInputs = [ rpkg offtrac urlgrabber fedora_cert ];
+  });
+
   fudge = buildPythonPackage rec {
     name = "fudge-0.9.4";
     src = fetchurl {
@@ -1470,6 +2053,43 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  gcutil = buildPythonPackage rec {
+    name = "gcutil-1.15.0";
+    meta.maintainers = [ stdenv.lib.maintainers.phreedom ];
+
+    src = fetchurl {
+      url = https://dl.google.com/dl/cloudsdk/release/artifacts/gcutil-1.15.0.tar.gz;
+      sha256 = "12c98ivhjr01iz6lkga574xm8p0bsil6arydvpblyw8sjkgim5sq";
+    };
+
+    propagatedBuildInputs = [ gflags iso8601_0_1_4 ipaddr httplib2 google_apputils google_api_python_client ];
+  };
+
+  gitdb = buildPythonPackage rec {
+    name = "gitdb-0.5.4";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+    doCheck = false;
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/g/gitdb/${name}.tar.gz";
+      sha256 = "10rpmmlln59aq44cd5vkb77hslak5pa1rbmigg6ski5f1nn2spfy";
+    };
+
+    propagatedBuildInputs = [ smmap async ];
+  };
+
+  GitPython = buildPythonPackage rec {
+    name = "GitPython-0.3.2";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/G/GitPython/GitPython-0.3.2.RC1.tar.gz";
+      sha256 = "1q4lc2ps12l517mmrxc8iq6gxyhj6d77bnk1p7mxf38d99l8crzx";
+    };
+
+    buildInputs = [ nose ];
+    propagatedBuildInputs = [ gitdb ];
+  };
 
   googlecl = buildPythonPackage rec {
     version = "0.9.14";
@@ -1492,14 +2112,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
   gtimelog = buildPythonPackage rec {
-    name = "gtimelog-0.8.1";
+    name = "gtimelog-${version}";
+    version = "0.8.1";
+
     src = fetchurl {
-      url = https://launchpad.net/gtimelog/devel/0.8.1/+download/gtimelog-0.8.1.tar.gz;
-      sha256 = "010sbw4rmslf5ifg9bgicn0f6mgsy76v8218xi0jndi9z6pva7y6";
+      url = "https://github.com/gtimelog/gtimelog/archive/${version}.tar.gz";
+      sha256 = "0nwpfv284b26q97mfpagqkqb4n2ilw46cx777qsyi3plnywk1xa0";
     };
+
     propagatedBuildInputs = [ pygtk ];
+
+    checkPhase = ''
+      patchShebangs ./runtests
+      ./runtests
+    '';
+
     meta = with stdenv.lib; {
-      description = "A small Gtk+ app for keeping track of your time. It's main goal is to be as unintrusive as possible.";
+      description = "A small Gtk+ app for keeping track of your time. It's main goal is to be as unintrusive as possible";
       homepage = http://mg.pov.lt/gtimelog/;
       license = licenses.gpl2Plus;
       maintainers = [ maintainers.ocharles ];
@@ -1507,25 +2136,67 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  itsdangerous = buildPythonPackage rec {
+    name = "itsdangerous-0.24";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/i/itsdangerous/${name}.tar.gz";
+      sha256 = "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb";
+    };
+
+    meta = with stdenv.lib; {
+      description = "helpers to pass trusted data to untrusted environments and back";
+      homepage = "https://pypi.python.org/pypi/itsdangerous/";
+    };
+  };
+
+  # TODO: this shouldn't use a buildPythonPackage
+  koji = buildPythonPackage (rec {
+    name = "koji-1.8";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    src = fetchurl {
+      url = "https://fedorahosted.org/released/koji/koji-1.8.0.tar.bz2";
+      sha256 = "10dph209h4jgajb5jmbjhqy4z4hd22i7s2d93vm3ikdf01i8iwf1";
+    };
+
+    configurePhase = ":";
+    buildPhase = ":";
+    installPhase = "make install DESTDIR=$out/ && cp -R $out/nix/store/*/* $out/ && rm -rf $out/nix";
+    doCheck = false;
+    propagatedBuildInputs = [ pythonPackages.pycurl ];
+
+  });
+
   logilab_astng = buildPythonPackage rec {
-    name = "logilab-astng-0.24.1";
+    name = "logilab-astng-0.24.3";
 
     src = fetchurl {
       url = "http://download.logilab.org/pub/astng/${name}.tar.gz";
-      sha256 = "00qxaxsax80sknwv25xl1r49lc4gbhkxs1kjywji4ad8y1npax0s";
+      sha256 = "0np4wpxyha7013vkkrdy54dvnil67gzi871lg60z8lap0l5h67wn";
     };
 
     propagatedBuildInputs = [ logilab_common ];
   };
 
 
+  logster = buildPythonPackage {
+    name = "logster-7475c53822";
+    src = fetchgit {
+      url = git://github.com/etsy/logster;
+      rev = "7475c53822";
+      sha256 = "1ls007qmziwb50c5iikxhqin0xbn673gbd25m5k09861435cknvr";
+    };
+  };
+
+
   paver = buildPythonPackage rec {
-    version = "1.2.1";
+    version = "1.2.2";
     name    = "Paver-${version}";
 
     src = fetchurl {
       url    = "https://pypi.python.org/packages/source/P/Paver/Paver-${version}.tar.gz";
-      sha256 = "1b1023jks1gi1rwphdy3y2zx7dh4bvwk2050kclp95j7xym1ya0y";
+      sha256 = "0lix9d33ndb3yk56sm1zlj80fbmxp0w60yk0d9pr2xqxiwi88sqy";
     };
 
     buildInputs = [ cogapp mock virtualenv ];
@@ -1561,6 +2232,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  pew = buildPythonPackage rec {
+    name = "pew-0.1.9";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pew/${name}.tar.gz";
+      md5 = "90a82400074b50a9e73c3045ed9ac217";
+    };
+
+    propagatedBuildInputs = [ virtualenv virtualenv-clone ];
+
+    meta = with stdenv.lib; {
+      description = "Tools to manage multiple virtualenvs written in pure python, a virtualenvwrapper rewrite";
+      license = licenses.mit;
+      platforms = platforms.all;
+    };
+  };
+
 
   pudb = buildPythonPackage rec {
     name = "pudb-2013.3.6";
@@ -1581,11 +2269,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pyramid = buildPythonPackage rec {
-    name = "pyramid-1.4.3";
+    name = "pyramid-1.5";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid/${name}.tar.gz";
-      md5 = "28fabf42cf585ecec7a57b5acc1174e3";
+      md5 = "8747658dcbab709a9c491e43d3b0d58b";
     };
 
     buildInputs = [
@@ -1597,8 +2285,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     ] ++ optional isPy26 unittest2;
 
     propagatedBuildInputs = [
-      chameleon
-      Mako
       paste_deploy
       repoze_lru
       repoze_sphinx_autointerface
@@ -1636,15 +2322,36 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
+  pyramid_chameleon = buildPythonPackage rec {
+    name = "pyramid_chameleon-0.1";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pyramid_chameleon/${name}.tar.gz";
+      md5 = "39b1327a9890f382200bbfde943833d7";
+    };
+
+    propagatedBuildInputs = [
+      chameleon
+      pyramid
+      zope_interface
+      setuptools
+    ];
+
+    meta = with stdenv.lib; {
+      maintainers = [ maintainers.iElectric ];
+    };
+  };
+
+
   pyramid_jinja2 = buildPythonPackage rec {
-    name = "pyramid_jinja2-1.6";
+    name = "pyramid_jinja2-1.9";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_jinja2/${name}.zip";
-      md5 = "b7df1ab97f90f39529d27ba6da1f6b1c";
+      md5 = "a6728117cad24749ddb39d2827cd9033";
     };
 
-    buildInputs = [ pkgs.unzip webtest ];
+    buildInputs = [ webtest ];
     propagatedBuildInputs = [ jinja2 pyramid ];
 
     meta = {
@@ -1654,12 +2361,38 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
+  pyramid_debugtoolbar = buildPythonPackage rec {
+    name = "pyramid_debugtoolbar-1.0.9";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pyramid_debugtoolbar/${name}.tar.gz";
+      sha256 = "1vnzg1qnnyisv7znxg7pasayfyr3nz7rrs5nqr4fmdgwj9q2pyv0";
+    };
+
+    buildInputs = [ ];
+    propagatedBuildInputs = [ pyramid pyramid_mako ];
+  };
+
+
+  pyramid_mako = buildPythonPackage rec {
+    name = "pyramid_mako-0.3.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pyramid_mako/${name}.tar.gz";
+      sha256 = "00811djmsc4rz20kpy2paam05fbx6dmrv2i5jf90f6xp6zw4isy6";
+    };
+
+    buildInputs = [ webtest ];
+    propagatedBuildInputs = [ pyramid Mako ];
+  };
+
+
   pyramid_exclog = buildPythonPackage rec {
-    name = "pyramid_exclog-0.6";
+    name = "pyramid_exclog-0.7";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_exclog/${name}.tar.gz";
-      md5 = "5c18706f5500605416afff311120c933";
+      md5 = "05df86758b0d30ee6f8339ff36cef7a0";
     };
 
     propagatedBuildInputs = [ pyramid ];
@@ -1682,11 +2415,15 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "6dc917d262c69366630c542bd21859a3";
     };
 
+    # tests are failing in version 0.7 but are fixed in trunk
+    doCheck = false;
+
     propagatedBuildInputs = [ transaction pyramid ];
     meta = {
       maintainers = [
         stdenv.lib.maintainers.garbas
         stdenv.lib.maintainers.iElectric
+        stdenv.lib.maintainers.matejc
       ];
       platforms = stdenv.lib.platforms.all;
     };
@@ -1710,6 +2447,37 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  radicale = buildPythonPackage rec {
+    name = "radicale-${version}";
+    namePrefix = "";
+    version = "0.9b1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/R/Radicale/Radicale-${version}.tar.gz";
+      sha256 = "3a8451909de849f173f577ddec0a085f19040dbb6aa13d5256208a0f8e11d88d";
+    };
+
+    propagatedBuildInputs = with pythonPackages; [
+      flup
+      ldap
+      sqlalchemy
+    ];
+
+    doCheck = false;
+
+    meta = {
+      homepage = "http://www.radicale.org/";
+      longDescription = ''
+        The Radicale Project is a complete CalDAV (calendar) and CardDAV
+        (contact) server solution. Calendars and address books are available for
+        both local and remote access, possibly limited through authentication
+        policies. They can be viewed and edited by calendar and contact clients
+        on mobile phones or computers.
+      '';
+      license = stdenv.lib.licenses.gpl3Plus;
+      maintainers = [ stdenv.lib.maintainers.edwtjo ];
+    };
+  };
 
   raven = buildPythonPackage rec {
     name = "raven-3.4.1";
@@ -1736,7 +2504,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       url = "http://pypi.python.org/packages/source/h/hypatia/${name}.tar.gz";
       md5 = "3a67683c578754cd8f23317db6d28ffd";
     };
- 
+
     buildInputs = [ zope_interface zodb3 ];
 
     meta = {
@@ -1752,8 +2520,8 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       url = "http://pypi.python.org/packages/source/z/zope.copy/${name}.zip";
       md5 = "36aa2c96dec4cfeea57f54da2b733eb9";
     };
- 
-    buildInputs = [ pkgs.unzip zope_interface zope_location zope_schema ];
+
+    buildInputs = [ zope_interface zope_location zope_schema ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -1768,7 +2536,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       url = "http://pypi.python.org/packages/source/s/statsd/${name}.tar.gz";
       md5 = "476ef5b9004f6e2cb25c7da440bb53d0";
     };
- 
+
     buildInputs = [ ];
 
     meta = {
@@ -1784,7 +2552,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       url = "http://pypi.python.org/packages/source/p/pyramid_zodbconn/${name}.tar.gz";
       md5 = "22e88cc82cafbbe00274e7378434e5fe";
     };
- 
+
     buildInputs = [ pyramid mock ];
     propagatedBuildInputs = [ zodb3 zodburi ];
 
@@ -1801,7 +2569,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       url = "http://pypi.python.org/packages/source/p/pyramid_mailer/${name}.tar.gz";
       md5 = "43800c7c894097a23140da58e3638c93";
     };
- 
+
     buildInputs = [ pyramid transaction ];
     propagatedBuildInputs = [ repoze_sendmail ];
 
@@ -1810,6 +2578,27 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  pyrtlsdr = buildPythonPackage rec {
+    name = "pyrtlsdr-0.2.0";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pyrtlsdr/${name}.zip";
+      md5 = "646336675a00d38e6f54e77a17011b95";
+    };
+
+    postPatch = ''
+      sed "s|driver_files =.*|driver_files = ['${pkgs.rtl-sdr}/lib/librtlsdr.so']|" -i rtlsdr/librtlsdr.py
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Python wrapper for librtlsdr (a driver for Realtek RTL2832U based SDR's)";
+      homepage = https://github.com/roger-/pyrtlsdr;
+      license = licenses.gpl3;
+      platforms = platforms.linux;
+      maintainers = [ maintainers.bjornfor ];
+    };
+  };
+
 
   repoze_sendmail = buildPythonPackage rec {
     name = "repoze.sendmail-4.1";
@@ -1818,7 +2607,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       url = "http://pypi.python.org/packages/source/r/repoze.sendmail/${name}.tar.gz";
       md5 = "81d15f1f03cc67d6f56f2091c594ef57";
     };
- 
+
     buildInputs = [ transaction ];
 
     meta = {
@@ -1834,7 +2623,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       url = "http://pypi.python.org/packages/source/z/zodburi/${name}.tar.gz";
       md5 = "52cc13c32ffe4ee7b5f5abc79f70f3c2";
     };
- 
+
     buildInputs = [ zodb3 mock ];
 
     meta = {
@@ -1883,11 +2672,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   repoze_lru = buildPythonPackage rec {
-    name = "repoze.lru-0.4";
+    name = "repoze.lru-0.6";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/r/repoze.lru/${name}.tar.gz";
-      md5 = "9f6ab7a4ff871ba795cadf56c20fb0f0";
+      md5 = "2c3b64b17a8e18b405f55d46173e14dd";
     };
 
     meta = {
@@ -1927,7 +2716,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       sha256 = "0d2if633m3kbiricd5hgn1csccd8xab6lnab1bq9prdr9ks9i8h6";
     };
 
-    buildInputs = [ pkgs.alsaLib pkgs.jackaudio ];
+    preConfigure = ''
+      sed -i "/use_setuptools/d" setup.py
+    '';
+
+    buildInputs = [ pkgs.alsaLib pkgs.jack2 ];
 
     meta = with stdenv.lib; {
       description = "A Python wrapper for the RtMidi C++ library written with Cython";
@@ -1941,11 +2734,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   zope_deprecation = buildPythonPackage rec {
-    name = "zope.deprecation-3.5.0";
+    name = "zope.deprecation-3.5.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.deprecation/${name}.tar.gz";
-      md5 = "1e7db82583013127aab3e7e790b1f2b6";
+      md5 = "836cfea5fad548cd5a0d9af1300ec05e";
     };
 
     buildInputs = [ zope_testing ];
@@ -1982,11 +2775,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   chameleon = buildPythonPackage rec {
-    name = "Chameleon-2.11";
+    name = "Chameleon-2.15";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/C/Chameleon/${name}.tar.gz";
-      md5 = "df72458bf3dd26a744dcff5ad555c34b";
+      md5 = "0214647152fcfcb9ce357624f8f9f203";
     };
 
     buildInputs = [] ++ optionals isPy26 [ ordereddict unittest2 ];
@@ -2003,46 +2796,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
-
-  distribute = stdenv.mkDerivation rec {
-    name = "distribute-0.6.34";
-
-    src = fetchurl {
-      url = "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz";
-      md5 = "4576ab843a6db5100fb22a72deadf56d";
-    };
-
-    buildInputs = [ python wrapPython offlineDistutils ];
-
-    pythonPath = [ recursivePthLoader ];
-
-    installPhase=''
-      dst="$out/lib/${python.libPrefix}/site-packages"
-      mkdir -p $dst
-      PYTHONPATH="${offlineDistutils}/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
-      export PYTHONPATH="$dst:$PYTHONPATH"
-
-      ${python}/bin/${python.executable} setup.py install --prefix="$out"
-
-      eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
-      if [ -e "$eapth" ]; then
-          # move colliding easy_install.pth to specifically named one
-          mv "$eapth" $(dirname "$eapth")/${name}.pth
-      fi
-
-      rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
-
-      wrapPythonPrograms
-    '';
-
-    meta = {
-      description = "Easily download, build, install, upgrade, and uninstall Python packages";
-      homepage = http://packages.python.org/distribute;
-      license = "PSF or ZPL";
-    };
-  };
-
-
   distutils_extra = buildPythonPackage rec {
     name = "distutils-extra-2.26";
 
@@ -2066,7 +2819,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
 
     propagatedBuildInputs = with pkgs; [
-      pyGtkGlade libtorrentRasterbar twisted Mako chardet pyxdg pyopenssl
+      pyGtkGlade libtorrentRasterbar twisted Mako chardet pyxdg pyopenssl modules.curses
     ];
 
     postInstall = ''
@@ -2098,7 +2851,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = http://freedesktop.org/wiki/Software/pyxdg;
       description = "Contains implementations of freedesktop.org standards";
-      license = "LGPLv2";
+      license = stdenv.lib.licenses.lgpl2;
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
@@ -2114,18 +2867,20 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = https://github.com/erikrose/chardet;
       description = "Universal encoding detector";
-      license = "LGPLv2";
+      license = stdenv.lib.licenses.lgpl2;
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
 
-  django = buildPythonPackage rec {
+  django = django_1_6;
+
+  django_1_6 = buildPythonPackage rec {
     name = "Django-${version}";
-    version = "1.4.1";
+    version = "1.6.3";
 
     src = fetchurl {
-      url = "http://www.djangoproject.com/m/releases/1.4/${name}.tar.gz";
-      sha256 = "16s0anvpaccbqmdrhl71z73k0dy2sl166nnc2fbd5lshlgmj13ad";
+      url = "http://www.djangoproject.com/m/releases/1.6/${name}.tar.gz";
+      sha256 = "1wdqb2x0w0c10annbyz7rrrgrv9mpa9f8pz8006lf2csix33r7bd";
     };
 
     # error: invalid command 'test'
@@ -2137,6 +2892,41 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  django_1_5 = buildPythonPackage rec {
+    name = "Django-${version}";
+    version = "1.5.6";
+
+    src = fetchurl {
+      url = "http://www.djangoproject.com/m/releases/1.5/${name}.tar.gz";
+      sha256 = "1bxzz71sfvh0zgdzv4x3wdr4ffzd5cfnvq7iq2g1i282sacwnzwv";
+    };
+
+    # error: invalid command 'test'
+    doCheck = false;
+
+    meta = {
+      description = "A high-level Python Web framework";
+      homepage = https://www.djangoproject.com/;
+    };
+  };
+
+  django_1_4 = buildPythonPackage rec {
+    name = "Django-${version}";
+    version = "1.4.11";
+
+    src = fetchurl {
+      url = "http://www.djangoproject.com/m/releases/1.4/${name}.tar.gz";
+      sha256 = "00f2jlls3fhddrg7q4sjkwj6dmclh28n0vqm1m7kzcq5fjrxh6a8";
+    };
+
+    # error: invalid command 'test'
+    doCheck = false;
+
+    meta = {
+      description = "A high-level Python Web framework";
+      homepage = https://www.djangoproject.com/;
+    };
+  };
 
   django_1_3 = buildPythonPackage rec {
     name = "Django-1.3.7";
@@ -2211,17 +3001,14 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   dulwich = buildPythonPackage rec {
-    name = "dulwich-0.8.1";
+    name = "dulwich-0.8.7";
 
     src = fetchurl {
       url = "http://samba.org/~jelmer/dulwich/${name}.tar.gz";
-      sha256 = "1a1619e9c7e63fe9bdc93356ee893be1016b7ea12ad953f4e1f1f5c0c5056ee8";
+      sha256 = "041qp5v2x8fbwkmws6hwwiny74lavkz723dj8gwbm40b2383d8vv";
     };
 
     buildPhase = "make build";
-    installCommand = ''
-      ${python}/bin/${python.executable} setup.py install --prefix="$out" --root=/ --record="$out/lib/${python.libPrefix}/site-packages/dulwich/list.txt" --single-version-externally-managed
-    '';
 
     # For some reason "python setup.py test" doesn't work with Python 2.6.
     # pretty sure that is about import behaviour.
@@ -2252,11 +3039,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   docutils = buildPythonPackage rec {
-    name = "docutils-0.8.1";
+    name = "docutils-0.11";
 
     src = fetchurl {
       url = "mirror://sourceforge/docutils/${name}.tar.gz";
-      sha256 = "0wfz4nxl95jcr2f2mc5gijgighavcghg33plzbz5jyi531jpffss";
+      sha256 = "1jbybs5a396nrjy9m13pgvsxdwaj7jw7nsawkhl4fi1nvxm1dx4s";
     };
 
     # error: invalid command 'test'
@@ -2357,6 +3144,15 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  enum34 = buildPythonPackage rec {
+    name = "enum34-1.0";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/e/enum34/${name}.tar.gz";
+      md5 = "9d57f5454c70c11707998ea26c1b0a7c";
+    };
+
+  };
 
   epc = buildPythonPackage rec {
     name = "epc-0.0.3";
@@ -2416,14 +3212,14 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   flake8 = buildPythonPackage (rec {
-    name = "flake8-2.0";
+    name = "flake8-2.1.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/f/flake8/${name}.tar.gz";
-      md5 = "176c6b3613777122721db181560aa1e3";
+      md5 = "cf326cfb88a1db6c5b29a3a6d9efb257";
     };
 
-    buildInputs = [ nose ];
+    buildInputs = [ nose mock ];
     propagatedBuildInputs = [ pyflakes pep8 mccabe ];
 
     # 3 failing tests
@@ -2432,18 +3228,18 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "code checking using pep8 and pyflakes.";
       homepage = http://pypi.python.org/pypi/flake8;
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   });
 
 
   flask = buildPythonPackage {
-    name = "flask-0.9";
+    name = "flask-0.10.1";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/F/Flask/Flask-0.9.tar.gz";
-      md5 = "4a89ef2b3ab0f151f781182bd0cc8933";
+      url = "http://pypi.python.org/packages/source/F/Flask/Flask-0.10.1.tar.gz";
+      md5 = "378670fe456957eb3c27ddaef60b2b24";
     };
 
     propagatedBuildInputs = [ werkzeug jinja2 ];
@@ -2456,17 +3252,24 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
   flexget = buildPythonPackage rec {
-    name = "FlexGet-1.1.121";
+    name = "FlexGet-1.2.161";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/F/FlexGet/${name}.tar.gz";
-      md5 = "44521bcbc2c1e941b656ecfa358adcaa";
+      md5 = "f7533e7b1df49cc8027fc4a2cde0290d";
     };
 
     buildInputs = [ nose ];
-    propagatedBuildInputs = [ beautifulsoup4 pyrss2gen feedparser pynzb html5lib dateutil
-        beautifulsoup flask jinja2 requests sqlalchemy pyyaml cherrypy progressbar deluge
-        python_tvrage jsonschema ];
+    # dateutil dependancy: requirement is dateutil !=2.0 and != 2.2,
+    # dateutil_1_5 is used as it's supported, but a newer version could be used
+    propagatedBuildInputs = [ paver feedparser sqlalchemy pyyaml rpyc
+	    beautifulsoup4 html5lib pyrss2gen pynzb progressbar jinja2 flask
+	    cherrypy requests dateutil_1_5 jsonschema python_tvrage tmdb3 ]
+	# enable deluge and transmission plugin support, if they're installed
+	++ stdenv.lib.optional (pkgs.config.pythonPackages.deluge or false)
+	    pythonpackages.deluge
+	++ stdenv.lib.optional (pkgs.transmission != null)
+	    pythonPackages.transmissionrpc;
 
     meta = {
       homepage = http://flexget.com/;
@@ -2558,12 +3361,32 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       '';
 
       # See http://foolscap.lothar.com/trac/browser/LICENSE.
-      license = "MIT";
+      license = stdenv.lib.licenses.mit;
 
       maintainers = [ ];
     };
   });
 
+  fs = buildPythonPackage rec {
+    name = "fs-0.4.0";
+
+    src = fetchurl {
+      url    = "https://pyfilesystem.googlecode.com/files/fs-0.4.0.tar.gz";
+      sha256 = "1fk7ilwd01qgj4anw9k1vjp0amxswzzxbp6bk4nncp7210cxp3vz";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Filesystem abstraction";
+      homepage    = http://pypi.python.org/pypi/fs;
+      license     = licenses.bsd3;
+      maintainers = with maintainers; [ lovek323 ];
+      platforms   = platforms.unix;
+    };
+
+    # Fails: "error: invalid command 'test'"
+    doCheck = false;
+  };
+
   fuse = buildPythonPackage (rec {
     baseName = "fuse";
     version = "0.2.1";
@@ -2644,6 +3467,31 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
+  gevent-socketio = buildPythonPackage rec {
+    name = "gevent-socketio-0.3.6";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/g/gevent-socketio/${name}.tar.gz";
+      sha256 = "1zra86hg2l1jcpl9nsnqagy3nl3akws8bvrbpgdxk15x7ywllfak";
+    };
+
+    buildInputs = [ versiontools gevent-websocket mock pytest ];
+    propagatedBuildInputs = [ gevent ];
+
+  };
+
+  gevent-websocket = buildPythonPackage rec {
+    name = "gevent-websocket-0.9.3";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/g/gevent-websocket/${name}.tar.gz";
+      sha256 = "07rqwfpbv13mk6gg8mf0bmvcf6siyffjpgai1xd8ky7r801j4xb4";
+    };
+
+    propagatedBuildInputs = [ gevent ];
+
+  };
+
   genzshcomp = buildPythonPackage {
     name = "genzshcomp-0.5.1";
 
@@ -2662,11 +3510,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   gflags = buildPythonPackage rec {
-    name = "gflags-1.5.1";
+    name = "gflags-2.0";
 
     src = fetchurl {
       url = "http://python-gflags.googlecode.com/files/python-${name}.tar.gz";
-      sha256 = "1p8blsc3z1wasi9dhbjij7m2czps17dll3cpj37v97fv5ww7al9v";
+      sha256 = "1mkc7315bpmh39vbn0jq237jpw34zsrjr1sck98xi36bg8hnc41i";
     };
 
     meta = {
@@ -2704,7 +3552,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     src = fetchurl {
       url = "https://github.com/nicolargo/glances/archive/v${meta.version}.tar.gz";
-      sha256 = "0g2yg9qf7qgjwv13x0rx51rzhn99pcmjpb3vk0g3gmmdsqyqi0d6";
+      sha256 = "19pin04whc1z4gmwv2rqa7mh08d6007r8dyrhihnxj0v35ghp5i0";
     };
 
     buildInputs = [ pkgs.hddtemp ];
@@ -2718,12 +3566,68 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     '';
 
     meta = {
-      version = "1.7.1";
+      version = "1.7.4";
       homepage = "http://nicolargo.github.io/glances/";
       description = "Cross-platform curses-based monitoring tool";
     };
   };
 
+  goobook = buildPythonPackage rec {
+    name = "goobook-1.5";
+
+    src = fetchurl {
+      url    = "https://pypi.python.org/packages/source/g/goobook/${name}.tar.gz";
+      sha256 = "05vpriy391l5i05ckl5ja5bswqyvl3rwrbmks9pi46w1813j7p5z";
+    };
+
+    preConfigure = ''
+      sed -i '/distribute/d' setup.py
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Search your google contacts from the command-line or mutt.";
+      homepage    = "https://pypi.python.org/pypi/goobook";
+      license     = licenses.gpl3;
+      maintainers = with maintainers; [ lovek323 ];
+      platforms   = platforms.unix;
+    };
+
+    propagatedBuildInputs = [ gdata hcs_utils keyring simplejson ];
+  };
+
+  google_api_python_client = buildPythonPackage rec {
+    name = "google-api-python-client-1.2";
+
+    src = fetchurl {
+      url = "https://google-api-python-client.googlecode.com/files/google-api-python-client-1.2.tar.gz";
+      sha256 = "0xd619w71xk4ldmikxqhaaqn985rc2hy4ljgwfp50jb39afg7crw";
+    };
+
+    propagatedBuildInputs = [ httplib2 ];
+
+    meta = with stdenv.lib; {
+      description = "The core Python library for accessing Google APIs";
+      homepage = "https://code.google.com/p/google-api-python-client/";
+      license = licenses.asl20;
+      platforms = platforms.unix;
+    };
+  };
+
+   google_apputils = buildPythonPackage rec {
+    name = "google-apputils-0.4.0";
+
+    src = fetchurl {
+      url = http://pypi.python.org/packages/source/g/google-apputils/google-apputils-0.4.0.tar.gz;
+      sha256 = "18wlivnqxvx1wsw177lckpl32nmr6cq7f5nhk8r72fvjy8wynq5j";
+    };
+
+    propagatedBuildInputs = [ pytz gflags dateutil_1_5 mox ];
+
+    meta = with stdenv.lib; {
+      description = "Google Application Utilities for Python";
+      homepage = http://code.google.com/p/google-apputils-python;
+    };
+  };
 
   greenlet = buildPythonPackage rec {
     name = "greenlet-0.3.1";
@@ -2741,17 +3645,16 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   gyp = buildPythonPackage rec {
-    rev = "1738";
+    rev = "1944";
     name = "gyp-r${rev}";
 
     src = fetchsvn {
       url = "http://gyp.googlecode.com/svn/trunk";
       inherit rev;
-      sha256 = "155k7v6453j2kg02xqfqbkzkbaqc8aynxs2k462jmrp638vxia9s";
+      sha256 = "15k3ivk3jyhx4rwdf1mn6qpyrwixvy01jpkir8d14c4g9hax1dx1";
     };
 
     patches = optionals pkgs.stdenv.isDarwin [
-      ../development/python-modules/gyp/no-xcode.patch
       ../development/python-modules/gyp/no-darwin-cflags.patch
     ];
 
@@ -2762,15 +3665,48 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  gunicorn = buildPythonPackage rec {
+    name = "gunicorn-19.1.0";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/g/gunicorn/${name}.tar.gz";
+      md5 = "3d759bec3c46a680ff010775258c4c56";
+    };
+
+    buildInputs = [ pytest ];
+
+    meta = {
+      homepage = http://pypi.python.org/pypi/gunicorn;
+      description = "WSGI HTTP Server for UNIX";
+    };
+  };
+
+  hcs_utils = buildPythonPackage rec {
+    name = "hcs_utils-1.3";
+
+    src = fetchurl {
+      url    = "https://pypi.python.org/packages/source/h/hcs_utils/hcs_utils-1.3.tar.gz";
+      sha256 = "0mcjfc0ssil86i74dg323z7mikkw1xazqyr92347x1y33zyffgxh";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Library collecting some useful snippets";
+      homepage    = https://pypi.python.org/pypi/hcs_utils/1.3;
+      license     = licenses.isc;
+      maintainers = with maintainers; [ lovek323 ];
+      platforms   = platforms.unix;
+    };
+  };
+
 
   hetzner = buildPythonPackage rec {
     name = "hetzner-${version}";
-    version = "0.6.0";
+    version = "0.7.0";
 
     src = fetchurl {
       url = "https://github.com/RedMoonStudios/hetzner/archive/"
           + "v${version}.tar.gz";
-      sha256 = "1cgi77f453ahw3ad6hvqwbyp6fwnh90rlzfgl9cp79wg58wyar4w";
+      sha256 = "1ldbhwy6yk18frv6n9znvdsrqfnpch4mfvc70jrpq3f9fw236src";
     };
 
     # not there yet, but coming soon.
@@ -2840,22 +3776,72 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   });
 
+  httpbin = buildPythonPackage rec {
+    name = "httpbin-0.2.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/h/httpbin/${name}.tar.gz";
+      md5 = "9b2bb2fab45f5fa839e9a776a64d6089";
+    };
+
+    propagatedBuildInputs = [ flask markupsafe decorator itsdangerous six ];
+
+    meta = {
+      homepage = https://github.com/kennethreitz/httpbin;
+      description = "HTTP Request & Response Service";
+      license = licenses.mit;
+    };
+
+  };
+
   httplib2 = buildPythonPackage rec {
-    name = "httplib2-0.8";
+    name = "httplib2-0.9";
 
     src = fetchurl {
-      url = "http://httplib2.googlecode.com/files/${name}.tar.gz";
-      sha256 = "0gww8axb4j1vysbk9kfsk5vrws9a403gh30dxchmga8hrg1rns5g";
+      url = "https://pypi.python.org/packages/source/h/httplib2/${name}.tar.gz";
+      sha256 = "1asi5wpncnc6ki3bz33mhb9xh2lrkb24y4qng8bmqnczdmm8rsir";
     };
 
     meta = {
       homepage = http://code.google.com/p/httplib2;
       description = "A comprehensive HTTP client library";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   };
 
+  httpretty = buildPythonPackage rec {
+    name = "httpretty-${version}";
+    version = "0.8.3";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/h/httpretty/${name}.tar.gz";
+      md5 = "50b02560a49fe928c90c53a49791f621";
+    };
+
+    buildInputs = [ tornado requests httplib2 sure nose coverage ];
+
+    propagatedBuildInputs = [ urllib3 ];
+
+    postPatch = ''
+      sed -i -e 's/==.*$//' *requirements.txt
+      # XXX: Drop this after version 0.8.4 is released.
+      patch httpretty/core.py <<DIFF
+      ***************
+      *** 566 ****
+      !                 'content-length': len(self.body)
+      --- 566 ----
+      !                 'content-length': str(len(self.body))
+      DIFF
+    '';
+
+    meta = {
+      homepage = "http://falcao.it/HTTPretty/";
+      description = "HTTP client request mocking tool";
+      license = licenses.mit;
+    };
+  };
+
   importlib = if isPy26 then (buildPythonPackage {
     name = "importlib-1.0.2";
     src = fetchurl {
@@ -2899,13 +3885,28 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+
+  ipaddr = buildPythonPackage {
+    name = "ipaddr-2.1.10";
+    src = fetchurl {
+      url = "http://ipaddr-py.googlecode.com/files/ipaddr-2.1.10.tar.gz";
+      sha256 = "18ycwkfk3ypb1yd09wg20r7j7zq2a73d7j6j10qpgra7a7abzhyj";
+    };
+
+    meta = {
+      description = "Google's IP address manipulation library";
+      homepage = http://code.google.com/p/ipaddr-py/;
+      license = licenses.asl20;
+    };
+  };
+
   ipdb = buildPythonPackage {
     name = "ipdb-0.7";
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/i/ipdb/ipdb-0.7.tar.gz";
       md5 = "d879f9b2b0f26e0e999809585dcaec61";
     };
-    propagatedBuildInputs = [ pythonPackages.ipython ];
+    propagatedBuildInputs = [ pythonPackages.ipythonLight ];
   };
 
   ipdbplugin = buildPythonPackage {
@@ -2914,32 +3915,45 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       url = "https://pypi.python.org/packages/source/i/ipdbplugin/ipdbplugin-1.4.tar.gz";
       md5 = "f9a41512e5d901ea0fa199c3f648bba7";
     };
-    propagatedBuildInputs = [ pythonPackages.nose pythonPackages.ipython ];
+    propagatedBuildInputs = [ pythonPackages.nose pythonPackages.ipythonLight ];
   };
 
+  iso8601_0_1_4 = buildPythonPackage {
+    name = "iso8601-0.1.4";
+    src = fetchurl {
+      url = https://pypi.python.org/packages/source/i/iso8601/iso8601-0.1.4.tar.gz;
+      sha256 = "03gnjxpfq0wwimqnsvz32xcngq0hrdqryn3zm8qh95hnnggwqa3s";
+    };
+
+    meta = {
+      homepage = https://bitbucket.org/micktwomey/pyiso8601/;
+      description = "Simple module to parse ISO 8601 dates";
+      maintainers = [ stdenv.lib.maintainers.phreedom ];
+    };
+  };
 
   jedi = buildPythonPackage (rec {
-    name = "jedi-0.6.0";
+    name = "jedi-0.8.0-final0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/j/jedi/${name}.tar.gz";
-      sha256 = "0k27nai69ypi9whipg45s1myqr477wj7jaryqv37bqqij4jc85hg";
+      sha256 = "0jnhwh0b1hy5cssi3n5a4j7z9pgpcckyv5s52ba4jnq5bwgdpbcf";
     };
 
     meta = {
       homepage = "https://github.com/davidhalter/jedi";
       description = "An autocompletion tool for Python that can be used for text editors.";
-      license = pkgs.lib.licenses.lgpl3Plus;
+      license = licenses.lgpl3Plus;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   });
 
   jinja2 = buildPythonPackage rec {
-    name = "Jinja2-2.7";
+    name = "Jinja2-2.7.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/J/Jinja2/${name}.tar.gz";
-      sha256 = "0kgsd7h27jl2jpqa1ks88h93z50bsg0yr7qkicqpxbl9s4c1aks7";
+      sha256 = "12scn3zmmj76rzyc0axjzf6dsazyj9xgp0l46q41rjhxm23s1h2w";
     };
 
     propagatedBuildInputs = [ pythonPackages.markupsafe ];
@@ -2958,11 +3972,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   jmespath = buildPythonPackage rec {
-    name = "jmespath-0.0.2";
+    name = "jmespath-0.2.1";
 
     src = fetchurl {
-      url = "https://github.com/boto/jmespath/archive/0.0.2.tar.gz";
-      sha256 = "0wr1gq3gdyn3n21pvj62csdm095512zxd10gkg5ai1vvxh0mbn3r";
+      url = "https://pypi.python.org/packages/source/j/jmespath/jmespath-0.2.1.tar.gz";
+      md5 = "7800775aa12c6303f9ad597b6a8fa03c";
     };
 
     propagatedBuildInputs = [ ply ];
@@ -2974,6 +3988,35 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  keyring = buildPythonPackage rec {
+    name = "keyring-3.2";
+
+    src = fetchurl {
+      url    = "https://pypi.python.org/packages/source/k/keyring/${name}.zip";
+      sha256 = "1flccphpyrb8y8dra2fq2s2v3fg615d77kjjmzl0gmiidabkkdqf";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Store and access your passwords safely";
+      homepage    = "https://pypi.python.org/pypi/keyring";
+      license     = licenses.psfl;
+      maintainers = with maintainers; [ lovek323 ];
+      platforms   = platforms.unix;
+    };
+
+    buildInputs =
+      [ fs gdata python_keyczar mock pyasn1 pycrypto pytest ];
+  };
+
+  kitchen = buildPythonPackage (rec {
+    name = "kitchen-1.1.1";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/k/kitchen/kitchen-1.1.1.tar.gz";
+      sha256 = "0ki840hjk1q19w6icv0dj2jxb00966nwy9b1jib0dgdspj00yrr5";
+    };
+  });
 
   pylast = buildPythonPackage rec {
     name = "pylast-${version}";
@@ -2990,22 +4033,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = http://code.google.com/p/pylast/;
       description = "A python interface to last.fm (and compatibles)";
-      license = pkgs.lib.licenses.asl20;
+      license = licenses.asl20;
     };
   };
 
 
   libcloud = buildPythonPackage (rec {
-    name = "libcloud-0.3.1";
+    name = "libcloud-0.14.1";
 
     src = fetchurl {
-      url = mirror://apache/incubator/libcloud/apache-libcloud-incubating-0.3.1.tar.bz2;
-      sha256 = "11qilrs4sd4c1mkd64ikrjsc2vwrshhc54n5mh4xrark9c7ayp0y";
+      url = https://pypi.python.org/packages/source/a/apache-libcloud/apache-libcloud-0.14.1.tar.bz2;
+      sha256 = "1l6190pjv54c7y8pzr089ij727qv7bqhhaznr2mkvimgr1wzsql5";
     };
 
-    buildInputs = [ zope_interface mock ];
+    buildInputs = [  mock ];
 
-    preConfigure = "cp test/secrets.py-dist test/secrets.py";
+    propagatedBuildInputs = [ pycrypto ];
+    preConfigure = "cp libcloud/test/secrets.py-dist libcloud/test/secrets.py";
 
     # failing tests for 26 and 27
     doCheck = false;
@@ -3058,11 +4102,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
   logilab_common = buildPythonPackage rec {
-    name = "logilab-common-0.58.2";
+    name = "logilab-common-0.61.0";
 
     src = fetchurl {
       url = "http://download.logilab.org/pub/common/${name}.tar.gz";
-      sha256 = "0qfdyj2is0scpnkgpnqm12lh4yl27617l0irlilhk25cpgbbfbf9";
+      sha256 = "09apsrcvjliawbxmfrmi1l8hlbaj87mb7n4lrlivy5maxs6yg4hd";
     };
 
     propagatedBuildInputs = [ unittest2 ];
@@ -3077,9 +4121,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     buildInputs = [ pkgs.libxml2 pkgs.libxslt ];
     propagatedBuildInputs = [  ];
     doCheck = false;
-    installCommand = ''
-      easy_install --always-unzip --no-deps --prefix="$out" .
-    '';
 
     meta = {
       description = "Pythonic binding for the libxml2 and libxslt libraries";
@@ -3131,21 +4172,15 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
-  magic = pkgs.stdenv.mkDerivation rec {
-    name = "python-${pkgs.file.name}";
+  magic = buildPythonPackage rec {
+    name = "${pkgs.file.name}";
 
     src = pkgs.file.src;
 
     patches = [ ../tools/misc/file/python.patch ];
     buildInputs = [ python pkgs.file ];
 
-    configurePhase = "cd python";
-
-    buildPhase = "${python}/bin/${python.executable} setup.py build";
-
-    installPhase = ''
-      ${python}/bin/${python.executable} setup.py install --prefix=$out
-    '';
+    preConfigure = "cd python";
 
     meta = {
       description = "A Python wrapper around libmagic";
@@ -3165,7 +4200,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     buildInputs = [ pkgs.swig pkgs.openssl ];
 
-    buildPhase = "${python}/bin/${python.executable} setup.py build_ext --openssl=${pkgs.openssl}";
+    preBuild = "${python}/bin/${python.executable} setup.py build_ext --openssl=${pkgs.openssl}";
 
     doCheck = false; # another test that depends on the network.
 
@@ -3177,11 +4212,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   Mako = buildPythonPackage rec {
-    name = "Mako-0.8.1";
+    name = "Mako-0.9.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/M/Mako/${name}.tar.gz";
-      md5 = "96d962464ce6316004af0cc48495d73e";
+      md5 = "fe3f394ef714776d09ec6133923736a7";
     };
 
     buildInputs = [ markupsafe nose ];
@@ -3190,7 +4225,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "Super-fast templating language.";
       homepage = http://www.makotemplates.org;
-      license = "MIT";
+      license = stdenv.lib.licenses.mit;
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
@@ -3214,11 +4249,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   manuel = buildPythonPackage rec {
     name = "manuel-${version}";
-    version = "1.6.0";
+    version = "1.6.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/m/manuel/${name}.tar.gz";
-      md5 = "53d6a6905301a20f6095e41d11968fff";
+      sha256 = "1h35ys31zkjd9jssqn9lzwmw8s17ikr4jn2xp5zby1v771ibbbqr";
     };
 
     propagatedBuildInputs = [ six zope_testing ];
@@ -3248,32 +4283,20 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
-  # not sure if this is the best way to accomplish this -- needed to provide
-  # objective-c compiler on darwin
-  matplotlibStdenv = if stdenv.isDarwin
-    then pkgs.clangStdenv
-    else pkgs.stdenv;
-
-  matplotlib = matplotlibStdenv.mkDerivation (rec {
-    name = "matplotlib-1.2.1";
+  matplotlib = buildPythonPackage rec {
+    name = "matplotlib-1.3.1";
 
     src = fetchurl {
-      url = "http://downloads.sourceforge.net/matplotlib/${name}.tar.gz";
-      sha256 = "16x2ksdxx5p92v98qngh29hdz1bnqy77fhggbjq30pyqmrr8kqaj";
+      url = "mirror://sourceforge/matplotlib/${name}.tar.gz";
+      sha256 = "0smgpn7lwbn02nbyhawyn0n6r3pb65zk501f21bjgavnjjfnf5pa";
     };
 
-    # error: invalid command 'test'
-    doCheck = false;
-
-    buildInputs = [ python pkgs.which pkgs.ghostscript ];
+    buildInputs = [ python pkgs.which pkgs.ghostscript ] ++
+        (if stdenv.isDarwin then [ pkgs.clangStdenv ] else [ pkgs.stdenv ]);
 
     propagatedBuildInputs =
-      [ dateutil numpy pkgs.freetype pkgs.libpng pkgs.pkgconfig pkgs.tcl
-        pkgs.tk pkgs.xlibs.libX11 ];
-
-    buildPhase = "python setup.py build";
-
-    installPhase = "python setup.py install --prefix=$out";
+      [ dateutil nose numpy pyparsing tornado pkgs.freetype pkgs.libpng pkgs.pkgconfig
+        pygtk ];
 
     meta = with stdenv.lib; {
       description = "python plotting library, making publication quality plots";
@@ -3281,7 +4304,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       maintainers = with maintainers; [ lovek323 ];
       platforms   = platforms.unix;
     };
-  });
+  };
 
 
   mccabe = buildPythonPackage (rec {
@@ -3297,7 +4320,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "McCabe checker, plugin for flake8";
       homepage = "https://github.com/flintwork/mccabe";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   });
@@ -3324,11 +4347,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   meld3 = buildPythonPackage rec {
-    name = "meld3-0.6.10";
+    name = "meld3-1.0.0";
 
     src = fetchurl {
-      url = https://pypi.python.org/packages/source/m/meld3/meld3-0.6.10.tar.gz;
-      md5 = "42e58624e9d427be7659d7a28e2b0b6f";
+      url = https://pypi.python.org/packages/source/m/meld3/meld3-1.0.0.tar.gz;
+      md5 = "ca270506dd4ecb20ae26fa72fbd9b0be";
     };
 
     doCheck = false;
@@ -3336,7 +4359,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "An HTML/XML templating engine used by supervisor";
       homepage = https://github.com/supervisor/meld3;
-      license = "ZPL";
+      license = "free-non-copyleft";
     };
   };
 
@@ -3373,6 +4396,24 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  minimock = buildPythonPackage rec {
+    version = "1.2.8";
+    name = "minimock-${version}";
+
+    src = fetchurl {
+      url = "https://bitbucket.org/jab/minimock/get/${version}.zip";
+      sha256 = "c88fa8a7120623f23990a7f086a9657f6ced09025a55e3be8649a30b4945441a";
+    };
+
+    buildInputs = [ nose ];
+
+    checkPhase = "./test";
+
+    meta = {
+      description = "A minimalistic mocking library for python";
+      homepage = https://pypi.python.org/pypi/MiniMock;
+    };
+  };
 
   mitmproxy = buildPythonPackage rec {
     baseName = "mitmproxy";
@@ -3380,7 +4421,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     src = fetchurl {
       url = "${meta.homepage}/download/${name}.tar.gz";
-      sha256 = "1ddqni6d4kc8ypl6yig4nc00izvbk359sz6hykb9g0lfcpfqlngj";
+      sha256 = "0mpyw8iw4l4jv175qlbn0rrlgiz1k79m44jncbdxfj8ddvvvyz2j";
     };
 
     buildInputs = [
@@ -3397,10 +4438,10 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     '';
 
     meta = {
-      version = "0.9";
+      version = "0.10.1";
       description = ''Man-in-the-middle proxy'';
       homepage = "http://mitmproxy.org/";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
@@ -3423,6 +4464,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   });
 
+  moinmoin = let ver="1.9.7"; in buildPythonPackage (rec {
+    name = "moinmoin-${ver}";
+
+    src = fetchurl {
+      url = "http://static.moinmo.in/files/moin-${ver}.tar.gz";
+      sha256 = "f4ba1b5c956bd96d2a61e27e68d297aa63d1afbc80d5740e139dcdf0affb4db5";
+    };
+
+    meta = {
+      description = "Advanced, easy to use and extensible WikiEngine";
+
+      homepage = http://moinmo.in/;
+
+      license = stdenv.lib.licenses.gpl2Plus;
+    };
+  });
+
 
   mox = buildPythonPackage rec {
     name = "mox-0.5.3";
@@ -3442,16 +4500,41 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
+  mpmath = buildPythonPackage rec {
+    name = "mpmath-0.17";
+
+    src = fetchurl {
+      url    = "https://mpmath.googlecode.com/files/${name}.tar.gz";
+      sha256 = "1blgzwq4irzaf8abb4z0d2r48903n9zxf51fhnv3gv09bgxjqzxh";
+    };
+
+    meta = with stdenv.lib; {
+      homepage    = http://mpmath.googlecode.com;
+      description = "A pure-Python library for multiprecision floating arithmetic";
+      license     = licenses.bsd3;
+      maintainers = with maintainers; [ lovek323 ];
+      platforms   = platforms.unix;
+    };
+
+    # error: invalid command 'test'
+    doCheck = false;
+  };
+
+
   mrbob = buildPythonPackage rec {
     name = "mrbob-${version}";
-    version = "0.1a9";
+    version = "0.1.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/m/mr.bob/mr.bob-${version}.zip";
-      md5 = "2d27d9bd1fc6269a3ecfd1a1ae47cd8a";
+      md5 = "84a117c9a75b86842b0fa5f5c9c767f3";
     };
 
-    buildInputs = [ pkgs.unzip ];
+    # some files in tests dir include unicode names
+    preBuild = ''
+      export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
+      export LC_ALL="en_US.UTF-8"
+    '';
 
     propagatedBuildInputs = [ argparse jinja2 six modules.readline ] ++
                             (optionals isPy26 [ importlib ordereddict ]);
@@ -3477,41 +4560,44 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = http://bmc.github.com/munkres/;
       description = "Munkres algorithm for the Assignment Problem";
-      license = pkgs.lib.licenses.bsd3;
+      license = licenses.bsd3;
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
 
 
   musicbrainzngs = buildPythonPackage rec {
-    name = "musicbrainzngs-0.2";
+    name = "musicbrainzngs-0.5";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/m/musicbrainzngs/${name}.tar.gz";
-      md5 = "bc32aa1cf121f29c3ca1c06e9668865f";
+      md5 = "9e17a181af72d04a291c9a960bc73d44";
     };
 
     meta = {
       homepage = http://alastair/python-musicbrainz-ngs;
       description = "Python bindings for musicbrainz NGS webservice";
-      license = pkgs.lib.licenses.bsd2;
+      license = licenses.bsd2;
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
 
 
   mutagen = buildPythonPackage (rec {
-    name = "mutagen-1.20";
+    name = "mutagen-1.23";
 
     src = fetchurl {
-      url = "http://mutagen.googlecode.com/files/${name}.tar.gz";
-      sha256 = "1rz63nh7r6qj3zsidf8d3a7ih647prvvqzi51p8dqkqmvrwc8mky";
+      url = "http://pypi.python.org/packages/source/m/mutagen/${name}.tar.gz";
+      sha256 = "12f70aaf5ggdzll76bhhkn64b27xy9s1acx417dbsaqnnbis8s76";
     };
+    
+    # one unicode test fails
+    doCheck = false;
 
     meta = {
       description = "Python multimedia tagging library";
       homepage = http://code.google.com/p/mutagen;
-      license = "LGPLv2";
+      license = stdenv.lib.licenses.lgpl2;
     };
   });
 
@@ -3530,7 +4616,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "Utilities for use with console mail clients, like mutt";
       homepage = http://www.blacktrash.org/hg/muttils;
-      license = "GPLv2+";
+      license = stdenv.lib.licenses.gpl2Plus;
     };
   });
 
@@ -3611,6 +4697,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   });
 
 
+  nbxmpp = buildPythonPackage rec {
+    name = "nbxmpp-0.5";
+
+    src = fetchurl {
+      name = "${name}.tar.gz";
+      url = "https://python-nbxmpp.gajim.org/downloads/5";
+      sha256 = "0y270c9v4i9n58p4ghlm18h50qcfichmfkgcpqd3bypx4fkmdx90";
+    };
+
+    meta = {
+      homepage = "https://python-nbxmpp.gajim.org/";
+      description = "Non-blocking Jabber/XMPP module";
+      license = stdenv.lib.licenses.gpl3;
+    };
+  };
+
+
   netaddr = buildPythonPackage rec {
     name = "netaddr-0.7.5";
 
@@ -3650,7 +4753,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     src = fetchurl {
       url = "https://github.com/cortesi/netlib/archive/v${meta.version}.tar.gz";
       name = "${name}.tar.gz";
-      sha256 = "1y8lx2j1jrr93mqfb06zg1x5jm9lllw744sb61ib8dagw43nnq3v";
+      sha256 = "1x2n126b7fal64fb5fzkp4by7ym0iswn3w9mh6pm4c1vjdpnk592";
     };
 
     buildInputs = [
@@ -3660,10 +4763,10 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     doCheck = false;
 
     meta = {
-      version = "0.9";
+      version = "0.10";
       description = ''Man-in-the-middle proxy'';
       homepage = "https://github.com/cortesi/netlib";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
@@ -3709,12 +4812,12 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   });
 
   nose = buildPythonPackage rec {
-    version = "1.3.0";
+    version = "1.3.3";
     name = "nose-${version}";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/n/nose/${name}.tar.gz";
-      sha256 = "0q2j9zz39h3liwbp6lb94kl3sxb9z9rbwh5dzyccyxfy4lrwqqsf";
+      sha256 = "09h3a74hzw1cfx4ic19ibxq8kg6sl1n64px2mmb57f5yd3r2y35l";
     };
 
     buildInputs = [ coverage ];
@@ -3723,6 +4826,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     checkPhase = if python.is_py3k or false then ''
       ${python}/bin/${python.executable} setup.py build_tests
     '' else "" + ''
+      rm functional_tests/test_multiprocessing/test_concurrent_shared.py* # see https://github.com/nose-devs/nose/commit/226bc671c73643887b36b8467b34ad485c2df062
       ${python}/bin/${python.executable} selftest.py
     '';
 
@@ -3731,6 +4835,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  nose-selecttests = buildPythonPackage rec {
+    version = "0.4";
+    name = "nose-selecttests-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/n/nose-selecttests/${name}.zip";
+      sha256 = "0lgrfgp3sq8xi8d9grrg0z8jsyk0wl8a3rxw31hb7vdncin5b7n5";
+    };
+
+    propagatedBuildInputs = [ nose ];
+
+    meta = {
+      description = "Simple nose plugin that enables developers to run subset of collected tests to spare some waiting time for better things";
+    };
+  };
+
+
   nose2 = if isPy26 then null else (buildPythonPackage rec {
     name = "nose2-0.4.5";
     src = fetchurl {
@@ -3790,7 +4911,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       sha256 = "1kh4spwgqxm534qlzzf2ijchckvs0pwjxl1irhicjmlg7mybnfvx";
     };
 
-    patches = pkgs.lib.singleton (fetchurl {
+    patches = singleton (fetchurl {
       name = "libnotify07.patch";
       url = "http://pkgs.fedoraproject.org/cgit/notify-python.git/plain/"
           + "libnotify07.patch?id2=289573d50ae4838a1658d573d2c9f4c75e86db0c";
@@ -3812,19 +4933,14 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   });
 
-  notmuch = pkgs.stdenv.mkDerivation rec {
+  notmuch = buildPythonPackage rec {
     name = "python-${pkgs.notmuch.name}";
 
     src = pkgs.notmuch.src;
 
-    buildInputs = [ python pkgs.notmuch ];
-    #propagatedBuildInputs = [ python pkgs.notmuch ];
-
-    configurePhase = "cd bindings/python";
+    sourceRoot = "${pkgs.notmuch.name}/bindings/python";
 
-    buildPhase = "python setup.py build";
-
-    installPhase = "python setup.py install --prefix=$out";
+    buildInputs = [ python pkgs.notmuch ];
 
     meta = {
       description = "A Python wrapper around notmuch";
@@ -3833,6 +4949,44 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  numexpr = buildPythonPackage rec {
+    version = "2.4";
+    name = "numexpr-${version}";
+
+    src = fetchgit {
+      url = https://github.com/pydata/numexpr.git;
+      rev = "606cc9a110711e947d35ac2770749c00dab184c8";
+      sha256 = "1gxgkg7ncgjhnifn444iha5nrjhyr8sr6w5yp204186a1ysz858g";
+    };
+
+    propagatedBuildInputs = with pkgs; [ numpy ];
+
+    # Run the test suite.
+    # It requires the build path to be in the python search path.
+    checkPhase = ''
+      ${python}/bin/${python.executable} <<EOF
+      import sysconfig
+      import sys
+      import os
+      f = "lib.{platform}-{version[0]}.{version[1]}"
+      lib = f.format(platform=sysconfig.get_platform(),
+                     version=sys.version_info)
+      build = os.path.join(os.getcwd(), 'build', lib)
+      sys.path.insert(0, build)
+      import numexpr
+      r = numexpr.test()
+      if not r.wasSuccessful():
+          sys.exit(1)
+      EOF
+    '';
+
+    meta = {
+      description = "Fast numerical array expression evaluator for NumPy";
+      homepage = "https://github.com/pydata/numexpr";
+      license = licenses.mit;
+    };
+  };
+
   numpy = buildPythonPackage ( rec {
     name = "numpy-1.7.1";
 
@@ -3843,15 +4997,15 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     preConfigure = ''
       sed -i 's/-faltivec//' numpy/distutils/system_info.py
+      sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
     '';
 
-    # TODO: add ATLAS=${pkgs.atlas}
-    installCommand = ''
+    preBuild = ''
       export BLAS=${pkgs.blas} LAPACK=${pkgs.liblapack}
-      ${python}/bin/${python.executable} setup.py build --fcompiler="gnu95"
-      ${python}/bin/${python.executable} setup.py install --prefix=$out
     '';
 
+    setupPyBuildFlags = ["--fcompiler='gnu95'"];
+
     # error: invalid command 'test'
     doCheck = false;
 
@@ -3866,11 +5020,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   nwdiag = buildPythonPackage rec {
-    name = "nwdiag-0.9.4";
+    name = "nwdiag-1.0.0";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/n/nwdiag/${name}.tar.gz";
-      md5 = "199b22f66ec3012c3999177d376a3842";
+      md5 = "d81581a028840f8f7362ab21bf73e941";
     };
 
     buildInputs = [ pep8 nose unittest2 docutils ];
@@ -3889,6 +5043,30 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  livestreamer = if isPy34 then null else (buildPythonPackage rec {
+    version = "1.8.2";
+    name = "livestreamer-${version}";
+
+    src = fetchurl {
+      url = "https://github.com/chrippa/livestreamer/archive/v${version}.tar.gz";
+      sha256 = "130h97qdb7qx8xg0gz54p5a6cb2zbffi5hsi305xf0ah9nf4rbrc";
+    };
+
+    buildInputs = [ pkgs.makeWrapper ];
+    propagatedBuildInputs = [ requests pkgs.rtmpdump pycrypto ];
+    postInstall = ''
+      wrapProgram $out/bin/livestreamer --prefix PATH : ${pkgs.rtmpdump}/bin
+    '';
+
+    meta = {
+      homepage = http://livestreamer.tanuki.se;
+      description = ''
+        Livestreamer is CLI program that extracts streams from various
+        services and pipes them into a video player of choice.
+      '';
+      license = "bsd";
+    };
+  });
 
   oauth2 = buildPythonPackage (rec {
     name = "oauth2-1.5.211";
@@ -3908,7 +5086,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = "https://github.com/simplegeo/python-oauth2";
       description = "library for OAuth version 1.0";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
       maintainers = [ stdenv.lib.maintainers.garbas ];
       platforms = stdenv.lib.platforms.linux;
     };
@@ -3950,6 +5128,17 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   });
 
+  offtrac = buildPythonPackage rec {
+    name = "offtrac-0.1.0";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/o/offtrac/${name}.tar.gz";
+      sha256 = "06vd010pa1z7lyfj1na30iqzffr4kzj2k2sba09spik7drlvvl56";
+    };
+    doCheck = false;
+  };
+
   # optfunc = buildPythonPackage ( rec {
   #   name = "optfunc-git";
   #
@@ -4014,12 +5203,29 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   });
 
+  osc = buildPythonPackage (rec {
+    name = "osc-0.133+git";
+
+    src = fetchgit {
+      url = git://gitorious.org/opensuse/osc.git;
+      rev = "6cd541967ee2fca0b89e81470f18b97a3ffc23ce";
+      sha256 = "a39ce0e321e40e9758bf7b9128d316c71b35b80eabc84f13df492083bb6f1cc6";
+    };
+
+    buildPhase = "python setup.py build";
+    doCheck = false;
+    postInstall = "ln -s $out/bin/osc-wrapper.py $out/bin/osc";
+
+    propagatedBuildInputs = [ pythonPackages.m2crypto ];
+
+  });
+
   pandas = buildPythonPackage rec {
-    name = "pandas-0.12.0";
+    name = "pandas-0.14.0";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/p/pandas/${name}.tar.gz";
-      sha256 = "0vf865wh1kcq33189ykqgngb25nxhxxch6skfdl3c6w024v4r6xy";
+      sha256 = "f7997debca756c4dd5ccdf5a010dfe3d1c7dac98ee706b715d994cf7c9d35528";
     };
 
     buildInputs = [ nose ];
@@ -4038,11 +5244,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
   paramiko = buildPythonPackage rec {
-    name = "paramiko-1.12.0";
+    name = "paramiko-1.12.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/paramiko/${name}.tar.gz";
-      md5 = "4187f77b1a5a313c899993930e30c321";
+      md5 = "ae4544dc0a1419b141342af89fcf0dd9";
     };
 
     propagatedBuildInputs = [ pycrypto ecdsa ];
@@ -4102,34 +5308,58 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  paypalrestsdk = buildPythonPackage rec {
+    name = "paypalrestsdk-0.7.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/paypalrestsdk/${name}.tar.gz";
+      sha256 = "117kfipzfahf9ysv414bh1mmm5cc9ck5zb6rhpslx1f8gk3frvd6";
+    };
+
+    propagatedBuildInputs = [ httplib2 ];
+
+    meta = {
+      homepage = https://developer.paypal.com/;
+      description = "Python APIs to create, process and manage payment";
+      license = "PayPal SDK License";
+    };
+  };
+
+  pbr = buildPythonPackage rec {
+    name = "pbr-0.9.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pbr/${name}.tar.gz";
+      sha256 = "e5a57c434b1faa509a00bf458d2c7af965199d9cced3d05a547bff9880f7e8cb";
+    };
+
+    # pip depend on $HOME setting
+    preConfigure = "export HOME=$TMPDIR";
+
+    doCheck = false;
+
+    buildInputs = [ pip ];
+
+    meta = {
+      description = "Python Build Reasonableness";
+      homepage = "http://docs.openstack.org/developer/pbr/";
+      license = licenses.asl20;
+    };
+  };
 
   pep8 = buildPythonPackage rec {
     name = "pep8-${version}";
-    version = "1.4.6";
+    version = "1.5.7";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pep8/${name}.tar.gz";
-      md5 = "a03bb494859e87b42601b61b1b043a0c";
+      md5 = "f6adbdd69365ecca20513c709f9b7c93";
     };
 
-    #======================================================================
-    #FAIL: test_check_simple (testsuite.test_shell.ShellTestCase)
-    #----------------------------------------------------------------------
-    #Traceback (most recent call last):
-    #  File "/tmp/nix-build-python-pep8-1.4.5.drv-0/pep8-1.4.5/testsuite/test_shell.py", line 84, in test_check_simple
-    #    self.assertTrue(config_filename.endswith('tox.ini'))
-    #AssertionError: False is not true
-    #
-    #----------------------------------------------------------------------
-    #Ran 21 tests in 0.711s
-    #
-    #FAILED (failures=1)
-    doCheck = false;
-
     meta = {
       homepage = "http://pep8.readthedocs.org/";
       description = "Python style guide checker";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   };
@@ -4149,7 +5379,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = "http://www.noah.org/wiki/Pexpect";
       description = "Automate interactive console applications such as ssh, ftp, etc.";
-      license = "MIT";
+      license = stdenv.lib.licenses.mit;
 
       longDescription = ''
         Pexpect is similar to the Don Libes "Expect" system, but Pexpect
@@ -4178,8 +5408,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       sha256 = "0kdc4rg47k1qkq22inghd50xlxjdkfcilym8mxff8wy4h091xykw";
     };
 
-    buildInputs = [ pkgs.unzip ];
-
     propagatedBuildInputs = [ pytz ];
 
     meta = {
@@ -4192,16 +5420,13 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
   pip = buildPythonPackage rec {
-    version = "1.4.1";
+    version = "1.5.6";
     name = "pip-${version}";
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pip/pip-${version}.tar.gz";
-      sha256 = "0knhj3c1nqqzxgqin8l0gzy6nzsbcxinyr0cbp1j99hi8xahcyjf";
+      md5 = "01026f87978932060cc86c1dc527903e";
     };
-    buildInputs = [ mock scripttest virtualenv nose ];
-    # ValueError: Working directory tests not found, or not a directory
-    # see https://github.com/pypa/pip/issues/92
-    doCheck = false;
+    buildInputs = [ mock scripttest virtualenv pytest ];
   };
 
 
@@ -4218,17 +5443,17 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pillow = buildPythonPackage rec {
-    name = "Pillow-2.1.0";
+    name = "Pillow-2.3.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/P/Pillow/${name}.zip";
-      md5 = "ec630d8ae15d4a3c4ae7b7efdeac8200";
+      md5 = "56b6614499aacb7d6b5983c4914daea7";
     };
 
-    buildInputs = [ pkgs.freetype pkgs.libjpeg pkgs.unzip pkgs.zlib pkgs.libtiff pkgs.libwebp ];
+    buildInputs = [ pkgs.freetype pkgs.libjpeg pkgs.zlib pkgs.libtiff pkgs.libwebp ];
 
     # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
-    configurePhase = ''
+    preConfigure = ''
       sed -i "setup.py" \
           -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = _lib_include("${pkgs.freetype}")|g ;
               s|^JPEG_ROOT =.*$|JPEG_ROOT = _lib_include("${pkgs.libjpeg}")|g ;
@@ -4237,7 +5462,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
               s|^TIFF_ROOT =.*$|TIFF_ROOT = _lib_include("${pkgs.libtiff}")|g ;'
     '';
 
-    doCheck = true;
+
 
     meta = {
       homepage = http://python-imaging.github.com/Pillow;
@@ -4258,13 +5483,13 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
   plumbum = buildPythonPackage rec {
-    name = "plumbum-1.2.0";
+    name = "plumbum-1.4.2";
 
     buildInputs = [ pythonPackages.six ];
 
     src = fetchurl {
-      url = "https://pypi.python.org/packages/source/p/plumbum/plumbum-1.2.0.tar.gz";
-      md5 = "18b7f888dfaf62a48df937abffe07897";
+      url = "https://pypi.python.org/packages/source/p/plumbum/${name}.tar.gz";
+      md5 = "38b526af9012a5282ae91dfe372cefd3";
     };
   };
 
@@ -4284,7 +5509,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "A library to manipulate gettext files (po and mo files)";
       homepage = "http://bitbucket.org/izi/polib/";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
@@ -4348,7 +5573,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   protobuf = buildPythonPackage rec {
     inherit (pkgs.protobuf) name src;
 
-    propagatedBuildInputs = [pkgs.protobuf];
+    propagatedBuildInputs = [ pkgs.protobuf setuptools ];
     sourceRoot = "${name}/python";
 
     meta = {
@@ -4377,14 +5602,14 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   psycopg2 = buildPythonPackage rec {
-    name = "psycopg2-2.5.1";
+    name = "psycopg2-2.5.2";
 
     # error: invalid command 'test'
     doCheck = false;
 
     src = fetchurl {
-      url = "https://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.5.1.tar.gz";
-      sha256 = "1v7glzzzykbaqj7dhpr0qds9cf4maxmn7f5aazpqnbg0ly40r9v5";
+      url = "https://pypi.python.org/packages/source/p/psycopg2/${name}.tar.gz";
+      sha256 = "0bmxlmi9k995n6pz16awjaap0y02y1v2d31jbxhkqv510f3jsf2h";
     };
 
     propagatedBuildInputs = [ pkgs.postgresql ];
@@ -4408,17 +5633,17 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "Allows to get the public suffix of a domain name";
       homepage = "http://pypi.python.org/pypi/publicsuffix/";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
 
   py = buildPythonPackage rec {
-    name = "py-1.4.13";
+    name = "py-1.4.20";
 
     src = fetchurl {
-      url = "https://pypi.python.org/packages/source/p/py/py-1.4.13.tar.gz";
-      md5 = "3857dc8309d5f284669b81184253c2bb";
+      url = "https://pypi.python.org/packages/source/p/py/${name}.tar.gz";
+      md5 = "5f1708be5482f3ff6711dfd6cafd45e0";
     };
   };
 
@@ -4433,12 +5658,9 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     meta = {
       description = "ASN.1 tools for Python";
-
       homepage = http://pyasn1.sourceforge.net/;
-
       license = "mBSD";
-
-      platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+      platforms = stdenv.lib.platforms.unix;  # arbitrary choice
     };
   });
 
@@ -4471,11 +5693,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pygit2 = buildPythonPackage rec {
-    name = "pygit2-0.18.1";
+    name = "pygit2-0.20.0";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/p/pygit2/${name}.tar.gz";
-      md5 = "8d27f84509a96d6791a6c393ae67d7c8";
+      sha256 = "04132q7bn8k7q7ky7nj3bkza8r9xkzkdpfv462b6rgjsd1x6h340";
     };
 
     preConfigure = ( if stdenv.isDarwin then ''
@@ -4494,14 +5716,14 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   Babel = buildPythonPackage (rec {
-    name = "Babel-0.9.6";
+    name = "Babel-1.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/B/Babel/${name}.tar.gz";
-      sha256 = "4a3a085ecf1fcd2736573538ffa114f1f4331b3bbbdd69381e6e172c49c9750f";
+      sha256 = "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz";
     };
 
-    buildInputs = [ pytz ];
+    propagatedBuildInputs = [ pytz ];
 
     meta = {
       homepage = http://babel.edgewall.org;
@@ -4541,13 +5763,36 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  pycapnp = buildPythonPackage rec {
+    name = "pycapnp-0.4.4";
+    homepage = "http://jparyani.github.io/pycapnp/index.html";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pycapnp/${name}.tar.gz";
+      sha256 = "33b2b79438bb9bf37097966e1c90403c34ab49be1eb647ee251b62f362ee3537";
+    };
+
+    buildInputs = with pkgs; [ capnproto cython ];
+
+    # import setuptools as soon as possible, to minimize monkeypatching mayhem.
+    postConfigure = ''
+      sed -i '2iimport setuptools' setup.py
+    '';
+
+    meta = with stdenv.lib; {
+      maintainers = with maintainers; [ cstrahan ];
+      license = stdenv.lib.licenses.bsd2;
+      platforms = stdenv.lib.platforms.all;
+    };
+  };
+
 
   pycryptopp = buildPythonPackage (rec {
-    name = "pycryptopp-0.5.29";
+    name = "pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pycryptopp/${name}.tar.gz";
-      sha256 = "d504775b73d30fb05a3237f83c4e9e1ff3312cbba90a4a23e6cbb7d32219502b";
+      sha256 = "0n90h1yg7bfvlbhnc54xb6dbqm286ykaksyg04kxlhyjgf8mhq8i";
     };
 
     # Prefer crypto++ library from the Nix store over the one that's included
@@ -4561,7 +5806,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
       description = "Python wrappers for the Crypto++ library";
 
-      license = "GPLv2+";
+      license = stdenv.lib.licenses.gpl2Plus;
 
       maintainers = [ ];
       platforms = stdenv.lib.platforms.linux;
@@ -4649,11 +5894,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
   pyflakes = buildPythonPackage rec {
-    name = "pyflakes-0.7.3";
+    name = "pyflakes-0.8.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyflakes/${name}.tar.gz";
-      md5 = "ec94ac11cb110e6e72cca23c104b66b1";
+      md5 = "905fe91ad14b912807e8fdc2ac2e2c23";
     };
 
     buildInputs = [ unittest2 ];
@@ -4661,7 +5906,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = "https://launchpad.net/pyflakes";
       description = "A simple program which checks Python source files for errors.";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   };
@@ -4676,7 +5921,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     patchPhase = let
       libs = [ pkgs.mesa pkgs.xlibs.libX11 pkgs.freetype pkgs.fontconfig ];
-      paths = pkgs.lib.concatStringsSep "," (map (l: "\"${l}/lib\"") libs);
+      paths = concatStringsSep "," (map (l: "\"${l}/lib\"") libs);
     in "sed -i -e 's|directories\.extend.*lib[^]]*|&,${paths}|' pyglet/lib.py";
 
     doCheck = false;
@@ -4690,11 +5935,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
   pygments = buildPythonPackage rec {
-    name = "Pygments-1.5";
+    name = "Pygments-1.6";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/P/Pygments/${name}.tar.gz";
-      md5 = "ef997066cc9ee7a47d01fb4f3da0b5ff";
+      md5 = "a18feedf6ffd0b0cc8c8b0fbdb2027b1";
     };
 
     meta = {
@@ -4721,7 +5966,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = "https://launchpad.net/pygpgme";
       description = "A Python wrapper for the GPGME library.";
-      license = pkgs.lib.licenses.lgpl21;
+      license = licenses.lgpl21;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   };
@@ -4746,7 +5991,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = https://github.com/seb-m/pyinotify/wiki;
       description = "Monitor filesystems events on Linux platforms with inotify";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
@@ -4769,26 +6014,27 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     propagatedBuildInputs = [ urlgrabber ];
 
     checkPhase = ''
+      export PYTHONPATH="$PYTHONPATH:."
       ${python}/bin/${python.executable} tests/baseclass.py -vv
     '';
 
     meta = {
       homepage = "http://fedoraproject.org/wiki/Pykickstart";
       description = "Read and write Fedora kickstart files";
-      license = pkgs.lib.licenses.gpl2Plus;
+      license = licenses.gpl2Plus;
     };
   };
 
 
   pyodbc = buildPythonPackage rec {
-    name = "pyodbc-3.0.6";
+    name = "pyodbc-3.0.7";
 
     src = fetchurl {
       url = "https://pyodbc.googlecode.com/files/${name}.zip";
-      sha256 = "0v9nymllw5zq5294rqp8ip3l0g6l3l3mljwhxn5jajyzxlnz39z5";
+      sha256 = "0ldkm8xws91j7zbvpqb413hvdz8r66bslr451q3qc0xi8cnmydfq";
     };
 
-    buildInputs = [ pkgs.unzip pkgs.libiodbc ];
+    buildInputs = [ pkgs.libiodbc ];
 
     meta = with stdenv.lib; {
       description = "Python ODBC module to connect to almost any database";
@@ -4801,11 +6047,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pyparsing = buildPythonPackage rec {
-    name = "pyparsing-1.5.6";
+    name = "pyparsing-2.0.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyparsing/${name}.tar.gz";
-      md5 = "1e41cb219dae9fc353bd4cd47636b283";
+      sha256 = "1r742rjbagf2i166k2w0r192adfw7l9lnsqz7wh4mflf00zws1q0";
     };
 
     # error: invalid command 'test'
@@ -4832,7 +6078,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       sed -i -e '
         s|e\.path\.startswith("/tmp/temp-device-")|"temp-device-" in e.path|
       ' tests/test__ped_ped.py
-    '' + pkgs.lib.optionalString stdenv.isi686 ''
+    '' + 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
@@ -4847,7 +6093,8 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     propagatedBuildInputs = [ pkgs.parted ];
 
     checkPhase = ''
-      ${python}/bin/${python.executable} -m unittest discover -v
+      patchShebangs Makefile
+      make test PYTHON=${python.executable}
     '';
 
     meta = {
@@ -4872,6 +6119,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   });
 
+  pyro3 = buildPythonPackage (rec {
+    name = "Pyro-3.16";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/P/Pyro/${name}.tar.gz";
+      md5 = "59d4d3f4a8786776c9d7f9051b8f1a69";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Distributed object middleware for Python (IPC/RPC)";
+      homepage = http://pythonhosted.org/Pyro/;
+      license = licenses.mit;
+      platforms = platforms.unix;
+      maintainers = [ maintainers.bjornfor ];
+    };
+  });
+
   pyrss2gen = buildPythonPackage (rec {
     name = "PyRSS2Gen-1.0.0";
 
@@ -4888,6 +6152,36 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   });
 
+  python_fedora = buildPythonPackage (rec {
+    name = "python-fedora-0.3.33";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    src = fetchurl {
+      url = "https://fedorahosted.org/releases/p/y/python-fedora/${name}.tar.gz";
+      sha256 = "1g05bh7d5d0gzrlnhpnca7jpqbgs2rgnlzzbvzzxmdbmlkqi3mws";
+    };
+    propagatedBuildInputs = [ kitchen requests bunch paver ];
+    doCheck = false;
+  });
+
+  python_keyczar = buildPythonPackage rec {
+    name = "python-keyczar-0.71c";
+
+    src = fetchurl {
+      url    = "https://pypi.python.org/packages/source/p/python-keyczar/${name}.tar.gz";
+      sha256 = "18mhiwqq6vp65ykmi8x3i5l3gvrvrrr8z2kv11z1rpixmyr7sw1p";
+    };
+
+    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;
+    };
+
+    buildInputs = [ pyasn1 pycrypto ];
+  };
 
   pyudev = buildPythonPackage rec {
     name = "pyudev-${version}";
@@ -4951,11 +6245,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   });
 
   ldap = buildPythonPackage rec {
-    name = "ldap-2.4.10";
+    name = "ldap-2.4.15";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/p/python-ldap/${name}.tar.gz";
-      sha256 = "0m6fm2alcb5v9xdcjv2nw2lhz9nnd3mnr5lrmf397hi4pw0pik37";
+      url = "http://pypi.python.org/packages/source/p/python-ldap/python-${name}.tar.gz";
+      sha256 = "0w0nn5yj0nbbkvpbqgfni56v7sjx6jf6s6zvp9zmahyrvqrsrg1h";
     };
 
     NIX_CFLAGS_COMPILE = "-I${pkgs.cyrus_sasl}/include/sasl";
@@ -4985,11 +6279,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pymacs = pkgs.stdenv.mkDerivation rec {
-    version = "v0.25";
+    version = "0.25";
     name = "Pymacs-${version}";
 
     src = fetchurl {
-      url = "https://github.com/pinard/Pymacs/tarball/${version}";
+      url = "https://github.com/pinard/Pymacs/tarball/v${version}";
       name = "${name}.tar.gz";
       sha256 = "1hmy76c5igm95rqbld7gvk0az24smvc8hplfwx2f5rhn6frj3p2i";
     };
@@ -5008,20 +6302,26 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
-
   pyopengl =
-    let version = "3.0.0b5";
+    let version = "3.0.2";
     in
       buildPythonPackage {
         name = "pyopengl-${version}";
 
         src = fetchurl {
-          url = "mirror://sourceforge/pyopengl/PyOpenGL-${version}.tar.gz";
-          sha256 = "1rjpl2qdcqn4wamkik840mywdycd39q8dn3wqfaiv35jdsbifxx3";
+          url = "http://pypi.python.org/packages/source/P/PyOpenGL/PyOpenGL-${version}.tar.gz";
+          sha256 = "9ef93bbea2c193898341f574e281c3ca0dfe87c53aa25fbec4b03581f6d1ba03";
         };
 
         propagatedBuildInputs = with pkgs; [ mesa freeglut pil ];
 
+        patchPhase = ''
+          sed -i "s|util.find_library( name )|name|" OpenGL/platform/ctypesloader.py
+          sed -i "s|'GL',|'libGL.so',|" OpenGL/platform/glx.py
+          sed -i "s|'GLU',|'${pkgs.mesa}/lib/libGLU.so',|" OpenGL/platform/glx.py
+          sed -i "s|'glut',|'${pkgs.freeglut}/lib/libglut.so',|" OpenGL/platform/glx.py
+        '';
+
         meta = {
           homepage = http://pyopengl.sourceforge.net/;
           description = "PyOpenGL, the Python OpenGL bindings";
@@ -5050,6 +6350,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     propagatedBuildInputs = [ cssselect lxml ];
   };
 
+  pyrax = buildPythonPackage rec {
+    name = "pyrax-1.8.2";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pyrax/${name}.tar.gz";
+      sha256 = "0hvim60bhgfj91m7pp8jfmb49f087xqlgkqa505zw28r7yl0hcfp";
+    };
+
+    meta = {
+      homepage    = "https://github.com/rackspace/pyrax";
+      license     = "MIT";
+      description = "Python API to interface with Rackspace";
+    };
+
+    doCheck = false;
+  };
+
 
   pyreport = buildPythonPackage (rec {
     name = "pyreport-0.3.4c";
@@ -5071,11 +6388,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pyserial = buildPythonPackage rec {
-    name = "pyserial-2.6";
+    name = "pyserial-2.7";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyserial/${name}.tar.gz";
-      md5 = "cde799970b7c1ce1f7d6e9ceebe64c98";
+      sha256 = "3542ec0838793e61d6224e27ff05e8ce4ba5a5c5cc4ec5c6a3e8d49247985477";
     };
 
     doCheck = false;
@@ -5087,13 +6404,27 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  pysphere = buildPythonPackage rec {
+    name = "pysphere-0.1.8";
+
+    src = fetchurl {
+      url = "http://pysphere.googlecode.com/files/${name}.zip";
+      md5 = "c57cba33626ac4b1e3d1974923d59232";
+    };
+
+    meta = {
+      homepage    = "https://code.google.com/p/pysphere/";
+      license     = "BSD";
+      description = "Python API for interaction with the VMWare vSphere";
+    };
+  };
 
   pysqlite = buildPythonPackage (rec {
-    name = "pysqlite-2.5.5";
+    name = "pysqlite-2.6.3";
 
     src = fetchurl {
-      url = "http://pysqlite.googlecode.com/files/${name}.tar.gz";
-      sha256 = "ef7ca7f44893790e1a7084b10ea083770e138689406fddc7076d12d6bff4d44f";
+      url = "https://pypi.python.org/packages/source/p/pysqlite/${name}.tar.gz";
+      sha256 = "13djzgnbi71znjjyaw4nybg6smilgszcid646j5qav7mdchkb77y";
     };
 
     # Since the `.egg' file is zipped, the `NEEDED' of the `.so' files
@@ -5143,11 +6474,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pysvn = pkgs.stdenv.mkDerivation {
-    name = "pysvn-1.7.6";
+    name = "pysvn-1.7.8";
 
     src = fetchurl {
-      url = "http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.6.tar.gz";
-      sha256 = "0wwb9h3rw2r8hzqya8mv5z8pgjpa6y3i15a3cccdv2mil44289a7";
+      url = "http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.8.tar.gz";
+      sha256 = "1qk7af0laby1f79bd07l9p0dxn5xmcmfwlcb9l1hk29zwwq6x4v0";
     };
 
     buildInputs = [ python pkgs.subversion pkgs.apr pkgs.aprutil pkgs.expat pkgs.neon pkgs.openssl ]
@@ -5156,7 +6487,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     # There seems to be no way to pass that path to configure.
     NIX_CFLAGS_COMPILE="-I${pkgs.aprutil}/include/apr-1";
 
-    configurePhase = ''
+    preConfigure = ''
       cd Source
       python setup.py backport
       python setup.py configure \
@@ -5188,11 +6519,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pytz = buildPythonPackage rec {
-    name = "pytz-2012c";
+    name = "pytz-2013.9";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pytz/${name}.tar.bz2";
-      md5 = "660e0cee7f6c419ca2665db460f65131";
+      md5 = "ec7076947a46a8a3cb33cbf2983a562c";
     };
 
     meta = {
@@ -5231,7 +6562,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
       homepage = http://allmydata.org/trac/pyutil;
 
-      license = "GPLv2+";
+      license = stdenv.lib.licenses.gpl2Plus;
     };
   });
 
@@ -5246,7 +6577,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
 
     buildInputs = with pkgs; [
-      pkgconfig python gtk2 pygtk libxml2 libxslt libsoup webkit_gtk2 icu
+      pkgconfig python gtk2 pygtk libxml2 libxslt libsoup webkitgtk2 icu
     ];
 
     meta = {
@@ -5278,14 +6609,14 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pyyaml = buildPythonPackage (rec {
-    name = "PyYAML-3.09";
+    name = "PyYAML-3.10";
 
     src = fetchurl {
-      url = "http://pyyaml.org/download/pyyaml/PyYAML-3.09.zip";
-      sha256 = "204aca8b42dbe90e460794d743dd16182011da85507bfd4f092f9f76e0688040";
+      url = "http://pyyaml.org/download/pyyaml/${name}.zip";
+      sha256 = "1r127fa354ppb667f4acxlzwxixap1jgzjrr790bw8mcpxv2hqaa";
     };
 
-    buildInputs = [ pkgs.unzip pkgs.pyrex ];
+    buildInputs = [ pkgs.pyrex ];
     propagatedBuildInputs = [ pkgs.libyaml ];
 
     meta = {
@@ -5312,7 +6643,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   reportlab =
-   let freetype = pkgs.lib.overrideDerivation pkgs.freetype (args: { configureFlags = "--enable-static --enable-shared"; });
+   let freetype = overrideDerivation pkgs.freetype (args: { configureFlags = "--enable-static --enable-shared"; });
    in buildPythonPackage rec {
     name = "reportlab-2.5";
 
@@ -5348,6 +6679,21 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
+  requests2 = buildPythonPackage rec {
+    name = "requests-2.2.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/r/requests/${name}.tar.gz";
+      md5 = "ac27081135f58d1a43e4fb38258d6f4e";
+    };
+
+    meta = {
+      description = "Requests is an Apache2 Licensed HTTP library, written in Python, for human beings..";
+      homepage = http://docs.python-requests.org/en/latest/;
+    };
+  };
+
+
   requests_oauthlib = buildPythonPackage rec {
     name = "requests-oauthlib-0.3.2";
 
@@ -5396,6 +6742,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  redis = buildPythonPackage rec {
+    name = "redis-2.9.1";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/redis/${name}.tar.gz";
+      sha256 = "1r7lrh4kxccyhr4pyp13ilymmvh22pi7aa9514dmnhi74zn4g5xg";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "Python client for Redis key-value store";
+      homepage = "https://pypi.python.org/pypi/redis/";
+    };
+  };
+
+
   requests_oauth2 = buildPythonPackage rec {
     name = "requests-oauth2-0.1.1";
 
@@ -5446,6 +6809,105 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   });
 
+
+  robotframework = buildPythonPackage rec {
+    version = "2.8.5";
+    name = "robotframework-${version}";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/robotframework/${name}.tar.gz";
+      sha256 = "0rzdn2gvmcrxs2fvxm11h55w4j5pv0lf443fc4hl8kzwjwgjckga";
+    };
+
+    # error: invalid command 'test'
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+      description = "Generic test automation framework";
+      homepage = http://robotframework.org/;
+      license = licenses.asl20;
+      platforms = platforms.linux;
+      maintainers = [ maintainers.bjornfor ];
+    };
+  };
+
+
+  robotframework-selenium2library = buildPythonPackage rec {
+    version = "1.5.0";
+    name = "robotframework-selenium2library-${version}";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/robotframework-selenium2library/${name}.tar.gz";
+      sha256 = "0hjmar9766jqfpbckac8zncyal546vm059wnkbn33f68djdcnwz1";
+    };
+
+    # error: invalid command 'test'
+    #doCheck = false;
+
+    propagatedBuildInputs = [ robotframework selenium docutils decorator ];
+
+    meta = with stdenv.lib; {
+      description = "";
+      homepage = http://robotframework.org/;
+      license = licenses.asl20;
+    };
+  };
+
+
+  robotsuite = buildPythonPackage rec {
+    version = "1.4.2";
+    name = "robotsuite-${version}";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/robotsuite/${name}.zip";
+      sha256 = "0sw09vrvwv3gzqb6jvhbrz09l6nzzj3i9av34qjddqfwq7cr1bla";
+    };
+
+    # error: invalid command 'test'
+    #doCheck = false;
+
+    buildInputs = [ unittest2 ];
+    propagatedBuildInputs = [ robotframework lxml ];
+
+    meta = with stdenv.lib; {
+      description = "Python unittest test suite for Robot Framework";
+      homepage = http://github.com/collective/robotsuite/;
+      license = licenses.gpl3;
+    };
+  };
+
+
+  robotframework-ride = buildPythonPackage rec {
+    version = "1.2.3";
+    name = "robotframework-ride-${version}";
+
+    src = fetchurl {
+      url = "https://robotframework-ride.googlecode.com/files/${name}.tar.gz";
+      sha256 = "1lf5f4x80f7d983bmkx12sxcizzii21kghs8kf63a1mj022a5x5j";
+    };
+
+    propagatedBuildInputs = [ pygments wxPython modules.sqlite3 ];
+
+    # ride_postinstall.py checks that needed deps are installed and creates a
+    # desktop shortcut. We don't really need it and it clutters up bin/ so
+    # remove it.
+    postInstall = ''
+      rm -f "$out/bin/ride_postinstall.py"
+    '';
+
+    # error: invalid command 'test'
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+      description = "Light-weight and intuitive editor for Robot Framework test case files";
+      homepage = https://code.google.com/p/robotframework-ride/;
+      license = licenses.asl20;
+      platforms = platforms.linux;
+      maintainers = [ maintainers.bjornfor ];
+    };
+  };
+
+
   rope = buildPythonPackage rec {
     version = "0.9.4";
     name = "rope-${version}";
@@ -5519,22 +6981,90 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  rpkg = buildPythonPackage (rec {
+    name = "rpkg-1.14";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    src = fetchurl {
+      url = "https://fedorahosted.org/releases/r/p/rpkg/rpkg-1.14.tar.gz";
+      sha256 = "0d053hdjz87aym1sfm6c4cxmzmy5g0gkrmrczly86skj957r77a7";
+    };
+
+    patches = [ ../development/python-modules/rpkg-buildfix.diff ];
+
+    # buildPhase = "python setup.py build";
+    # doCheck = false;
+    propagatedBuildInputs = [ pycurl koji GitPython pkgs.git
+                              pkgs.rpm pkgs.pyopenssl ];
+
+  });
+
+  rpyc = buildPythonPackage rec {
+    name = "rpyc-${version}";
+    version = "3.3.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/rpyc/${name}.tar.gz";
+      md5 = "6931cb92c41f547591b525142ccaeef1";
+    };
+
+    propagatedBuildInputs = [ nose plumbum ];
+
+    meta = {
+      description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
+      homepage = http://rpyc.readthedocs.org;
+      license = stdenv.lib.licenses.mit;
+    };
+  };
+
+  rsa = buildPythonPackage rec {
+    name = "rsa-3.1.2";
+
+    src = fetchurl {
+      url = "https://bitbucket.org/sybren/python-rsa/get/version-3.1.2.tar.bz2";
+      sha256 = "0ag2q4gaapi74x47q74xhcjzs4b7r2bb6zrj2an4sz5d3yd06cgf";
+    };
+
+    buildInputs = [ pythonPackages.pyasn1 ];
+
+    meta = {
+      homepage = http://stuvel.eu/rsa;
+      license = stdenv.lib.licenses.asl20;
+      description = "A pure-Python RSA implementation";
+    };
+  };
+
+  rtslib_fb = buildPythonPackage rec {
+    version = "2.1.fb43";
+    name = "rtslib-fb-${version}";
+
+    src = fetchurl {
+      url = "https://github.com/agrover/rtslib-fb/archive/v${version}.tar.gz";
+      sha256 = "1b59vyy12g6rix9l2fxx0hjiq33shkb79v57gwffs57vh74wc53v";
+    };
+
+    meta = {
+      description = "A Python object API for managing the Linux LIO kernel target";
+      homepage = "https://github.com/agrover/rtslib-fb";
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
 
   seqdiag = buildPythonPackage rec {
-    name = "seqdiag-0.8.2";
+    name = "seqdiag-0.9.0";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/s/seqdiag/${name}.tar.gz";
-      md5 = "61b3da29b5efaa89701b4db6d2d4d5fa";
+      md5 = "92946555ce219df18002e6c88b4055d3";
     };
 
     buildInputs = [ pep8 nose unittest2 docutils ];
 
     propagatedBuildInputs = [ blockdiag ];
 
-    # Some tests fail (because of missing input files?):
+    # Tests fail:
     #   ...
-    #   IOError: [Errno 2] No such file or directory: '/tmp/nix-build-python2.7-seqdiag-0.8.2.drv-0/seqdiag-0.8.2/src/seqdiag/tests/diagrams/separators.diag'
+    #   ERROR: Failure: OSError ([Errno 2] No such file or directory: '/tmp/nix-build-python2.7-seqdiag-0.9.0.drv-0/seqdiag-0.9.0/src/seqdiag/tests/diagrams/')
     doCheck = false;
 
     meta = with stdenv.lib; {
@@ -5558,16 +7088,17 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     buildInputs = [pkgs.gfortran];
     propagatedBuildInputs = [ numpy ];
 
-    # error: invalid command 'test'
-    doCheck = false;
-
     # TODO: add ATLAS=${pkgs.atlas}
-    installCommand = ''
+    preConfigure = ''
       export BLAS=${pkgs.blas} LAPACK=${pkgs.liblapack}
-      ${python}/bin/${python.executable} setup.py build --fcompiler="gnu95"
-      ${python}/bin/${python.executable} setup.py install --prefix=$out
+      sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
     '';
 
+    setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
+
+    # error: invalid command 'test'
+    doCheck = false;
+
     meta = {
       description = "SciPy (pronounced 'Sigh Pie') is open-source software for mathematics, science, and engineering. ";
       homepage = http://www.scipy.org/;
@@ -5576,15 +7107,15 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   scripttest = buildPythonPackage rec {
-    version = "1.1.1";
+    version = "1.3";
     name = "scripttest-${version}";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/S/ScriptTest/ScriptTest-${version}.tar.gz";
-      md5 = "592ce890764c3f546d35b4d7c40c32ef";
+      url = "http://pypi.python.org/packages/source/s/scripttest/scripttest-${version}.tar.gz";
+      md5 = "1d1c5117ccfc7b5961cae6c1020c0848";
     };
 
-    buildInputs = [ nose ];
+    buildInputs = [ nose pytest ];
 
     meta = {
       description = "A library for testing interactive command-line applications";
@@ -5592,37 +7123,36 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
-  selenium =
-    buildPythonPackage rec {
-      name = "selenium-2.35.0";
-      src = pkgs.fetchurl {
-        url = "http://pypi.python.org/packages/source/s/selenium/${name}.tar.gz";
-        sha256 = "0c8apd538ji8kmryvcdiz0dndf33mnf8wzpp9k8zmkpmfdfcwnk0";
-      };
+  selenium = buildPythonPackage rec {
+    name = "selenium-2.39.0";
+    src = pkgs.fetchurl {
+      url = "http://pypi.python.org/packages/source/s/selenium/${name}.tar.gz";
+      sha256 = "1kisndzl9s0vs0a5paqx35hxq28id3xyi1gfsjaixsi6rs0ibhhh";
+    };
 
-      buildInputs = [pkgs.xlibs.libX11];
+    buildInputs = [pkgs.xlibs.libX11];
 
-      # Recompiling x_ignore_nofocus.so as the original one dlopen's libX11.so.6 by some
-      # absolute paths. Replaced by relative path so it is found when used in nix.
-      x_ignore_nofocus =
-        pkgs.fetchsvn {
-          url = http://selenium.googlecode.com/svn/tags/selenium-2.25.0/cpp/linux-specific;
-          rev = 17641;
-          sha256 = "1wif9r6307qhlcp2zbg6n05yvxxn9ppkxh8gpsplcbyh22zi7bcd";
-        };
+    # Recompiling x_ignore_nofocus.so as the original one dlopen's libX11.so.6 by some
+    # absolute paths. Replaced by relative path so it is found when used in nix.
+    x_ignore_nofocus =
+      pkgs.fetchsvn {
+        url = http://selenium.googlecode.com/svn/tags/selenium-2.25.0/cpp/linux-specific;
+        rev = 17641;
+        sha256 = "1wif9r6307qhlcp2zbg6n05yvxxn9ppkxh8gpsplcbyh22zi7bcd";
+      };
 
-      preInstall = ''
-        cp "${x_ignore_nofocus}/"* .
-        sed -i 's|dlopen(library,|dlopen("libX11.so.6",|' x_ignore_nofocus.c
-        gcc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
-        gcc -shared \
-          -Wl,${if stdenv.isDarwin then "-install_name" else "-soname"},x_ignore_nofocus.so \
-          -o x_ignore_nofocus.so \
-          x_ignore_nofocus.o \
-          ${if stdenv.isDarwin then "-lx11" else ""}
-        cp -v x_ignore_nofocus.so py/selenium/webdriver/firefox/${if pkgs.stdenv.is64bit then "amd64" else "x86"}/
-      '';
-    };
+    preInstall = ''
+      cp "${x_ignore_nofocus}/"* .
+      sed -i 's|dlopen(library,|dlopen("libX11.so.6",|' x_ignore_nofocus.c
+      gcc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
+      gcc -shared \
+        -Wl,${if stdenv.isDarwin then "-install_name" else "-soname"},x_ignore_nofocus.so \
+        -o x_ignore_nofocus.so \
+        x_ignore_nofocus.o \
+        ${if stdenv.isDarwin then "-lx11" else ""}
+      cp -v x_ignore_nofocus.so py/selenium/webdriver/firefox/${if pkgs.stdenv.is64bit then "amd64" else "x86"}/
+    '';
+  };
 
   setuptoolsDarcs = buildPythonPackage {
     name = "setuptools-darcs-1.2.9";
@@ -5687,7 +7217,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
       homepage = http://code.google.com/p/simplejson/;
 
-      license = "MIT";
+      license = stdenv.lib.licenses.mit;
     };
   });
 
@@ -5699,7 +7229,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "93c93725674c0702583a638f5a09c9e4";
     };
 
-    propagatedBuildInputs = [ jinja2 markdown pillow pilkit clint argh ];
+    propagatedBuildInputs = [ jinja2 markdown pillow pilkit clint argh pytest ];
 
     meta = with stdenv.lib; {
       description = "Yet another simple static gallery generator";
@@ -5709,6 +7239,83 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  spambayes = buildPythonPackage rec {
+    name = "spambayes-1.1a6";
+
+    src = fetchurl {
+      url = "mirror://sourceforge/spambayes/${name}.tar.gz";
+      sha256 = "0lqhn2v0avgwxmk4dq9lkwr2g39ls2p6x8hqk5w07wd462cjsx8l";
+    };
+
+    propagatedBuildInputs = [ pydns lockfile ];
+
+    meta = with stdenv.lib; {
+      description = "Statistical anti-spam filter, initially based on the work of Paul Graham";
+      homepage = http://spambayes.sourceforge.net/;
+    };
+  };
+
+  shapely = buildPythonPackage rec {
+    name = "Shapely-1.3.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/S/Shapely/${name}.tar.gz";
+      sha256 = "099sc7ajpp6hbgrx3c0bl6hhkz1mhnr0ahvc7s4i3f3b7q1zfn7l";
+    };
+
+    buildInputs = [ pkgs.geos ];
+
+    preConfigure = ''
+      export LANG="en_US.UTF-8";
+    '' + stdenv.lib.optionalString stdenv.isLinux ''
+      export LOCALE_ARCHIVE="${pkgs.glibcLocales}/lib/locale/locale-archive";
+    '';
+
+    patchPhase = ''
+      sed -i "s|_lgeos = load_dll('geos_c', fallbacks=.*)|_lgeos = load_dll('geos_c', fallbacks=['${pkgs.geos}/lib/libgeos_c.so'])|" shapely/geos.py
+    '';
+
+    doCheck = false; # won't suceed for unknown reasons that look harmless, though
+
+    meta = with stdenv.lib; {
+      description = "Geometric objects, predicates, and operations";
+      homepage = "https://pypi.python.org/pypi/Shapely/";
+    };
+  };
+
+  stevedore = buildPythonPackage rec {
+    name = "stevedore-0.15";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/s/stevedore/${name}.tar.gz";
+      sha256 = "bec9269cbfa58de4f0849ec79bb7d54eeeed9df8b5fbfa1637fbc68062822847";
+    };
+
+    buildInputs = [ pbr pip ];
+
+    propagatedBuildInputs = [ setuptools ];
+
+    meta = {
+      description = "Manage dynamic plugins for Python applications";
+      homepage = "https://pypi.python.org/pypi/stevedore";
+      license = licenses.asl20;
+    };
+  };
+
+  pydns = buildPythonPackage rec {
+    name = "pydns-2.3.6";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pydns/${name}.tar.gz";
+      sha256 = "0qnv7i9824nb5h9psj0rwzjyprwgfiwh5s5raa9avbqazy5hv5pi";
+    };
+
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+    };
+  };
+
   sympy = buildPythonPackage rec {
     name = "sympy-0.7.3";
 
@@ -5812,7 +7419,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
 
     # 4 failing tests
-    doCheck = false; 
+    doCheck = false;
 
     buildInputs = [ nose modules.curses ];
 
@@ -5855,11 +7462,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   six = buildPythonPackage rec {
-    name = "six-1.3.0";
+    name = "six-1.7.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/s/six/${name}.tar.gz";
-      md5 = "ec47fe6070a8a64c802363d2c2b1e2ee";
+      md5 = "784c6e5541c3c4952de9c0a966a0a80b";
     };
 
     # error: invalid command 'test'
@@ -5916,10 +7523,27 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "Joyent SmartDataCenter CloudAPI connector using http-signature authentication via Requests";
       homepage = https://github.com/atl/py-smartdc;
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
+  sorl_thumbnail = buildPythonPackage rec {
+    name = "sorl-thumbnail-11.12";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/s/sorl-thumbnail/${name}.tar.gz";
+      sha256 = "050b9kzbx7jvs3qwfxxshhis090hk128maasy8pi5wss6nx5kyw4";
+    };
+
+    # Disabled due to an improper configuration error when tested against django. This looks like something broken in the test cases for sorl.
+    doCheck = false;
+
+    meta = {
+      homepage = http://sorl-thumbnail.readthedocs.org/en/latest/;
+      description = "Thumbnails for Django";
+      license = stdenv.lib.licenses.bsd3;
+    };
+  };
 
   supervisor = buildPythonPackage rec {
     name = "supervisor-3.0";
@@ -5930,7 +7554,10 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
 
     buildInputs = [ mock ];
-    propagatedBuildInputs = [ meld3  ];
+    propagatedBuildInputs = [ meld3 ];
+
+    # failing tests when building under chroot as root user doesn't exist
+    doCheck = false;
 
     meta = {
       description = "A system for controlling process state under UNIX";
@@ -5938,13 +7565,30 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  subprocess32 = buildPythonPackage rec {
+    name = "subprocess32-3.2.6";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/s/subprocess32/${name}.tar.gz";
+      md5 = "754c5ab9f533e764f931136974b618f1";
+    };
+
+    doCheck = false;
+
+    meta = {
+      homepage = "https://pypi.python.org/pypi/subprocess32";
+      description = "Backport of the subprocess module from Python 3.2.5 for use on 2.x.";
+      maintainers = [ stdenv.lib.maintainers.garbas ];
+    };
+  };
+
 
   sphinx = buildPythonPackage (rec {
-    name = "Sphinx-1.1.3";
+    name = "Sphinx-1.2";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/S/Sphinx/${name}.tar.gz";
-      md5 = "8f55a6d4f87fc6d528120c5d1f983e98";
+      md5 = "8516046aad73fe46dedece4e8e434328";
     };
 
     propagatedBuildInputs = [docutils jinja2 pygments];
@@ -5996,46 +7640,44 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   });
 
-
-  sqlalchemy = buildPythonPackage rec {
-    name = "sqlalchemy-${version}";
-    version = "0.7.10";
-
+  sqlalchemy = pkgs.lib.overrideDerivation sqlalchemy9 (args: rec {
+    name = "SQLAlchemy-0.7.10";
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-${version}.tar.gz";
+      url = "http://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
       sha256 = "0rhxgr85xdhjn467qfs0dkyj8x46zxcv6ad3dfx3w14xbkb3kakp";
     };
-
     patches = [
       # see https://groups.google.com/forum/#!searchin/sqlalchemy/module$20logging$20handlers/sqlalchemy/ukuGhmQ2p6g/2_dOpBEYdDYJ
       # waiting for 0.7.11 release
       ../development/python-modules/sqlalchemy-0.7.10-test-failures.patch
     ];
+  });
 
-    buildInputs = [ nose ];
-
-    propagatedBuildInputs = [ modules.sqlite3 ];
 
-    meta = {
-      homepage = http://www.sqlalchemy.org/;
-      description = "A Python SQL toolkit and Object Relational Mapper";
+  sqlalchemy8 = pkgs.lib.overrideDerivation sqlalchemy9 (args: rec {
+    name = "SQLAlchemy-0.8.5";
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
+      md5 = "ecf0738eaf1229bae27ad2be0f9978a8";
     };
-  };
-
+  });
 
-  sqlalchemy8 = buildPythonPackage rec {
-    name = "SQLAlchemy-${version}";
-    version = "0.8.2";
+  sqlalchemy9 = buildPythonPackage rec {
+    name = "SQLAlchemy-0.9.3";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
-      md5 = "5a33fb43dea93468dbb2a6562ee80b54";
+      md5 = "a27989b9d4b3f14ea0b1600aa45559c4";
     };
 
     buildInputs = [ nose mock ];
 
     propagatedBuildInputs = [ modules.sqlite3 ];
 
+    checkPhase = ''
+      ${python.executable} sqla_nose.py
+    '';
+
     meta = {
       homepage = http://www.sqlalchemy.org/;
       description = "A Python SQL toolkit and Object Relational Mapper";
@@ -6053,15 +7695,21 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "051dd9de0757714d33c3ecd5ab37b97d";
     };
 
-    buildInputs = [ pytest webob pkgs.imagemagick ];
+    buildInputs = [ pytest webob pkgs.imagemagick nose ];
     propagatedBuildInputs = [ sqlalchemy8 wand ];
 
-    checkPhase = "cd tests && LD_LIBRARY_PATH=${pkgs.imagemagick}/lib py.test";
+    checkPhase = ''
+      cd tests
+      export MAGICK_HOME="${pkgs.imagemagick}"
+      export PYTHONPATH=$PYTHONPATH:../
+      py.test
+      cd ..
+    '';
 
     meta = {
       homepage = https://github.com/crosspop/sqlalchemy-imageattach;
       description = "SQLAlchemy extension for attaching images to entity objects";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
@@ -6107,7 +7755,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "A client for Etsy's node-js statsd server";
       homepage = https://github.com/WoLpH/python-statsd;
-      license = pkgs.lib.licenses.bsd3;
+      license = licenses.bsd3;
     };
   };
 
@@ -6127,18 +7775,18 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "Lightweight and extensible STOMP messaging client";
       homepage = http://bitbucket.org/hozn/stompclient;
-      license = pkgs.lib.licenses.asl20;
+      license = licenses.asl20;
     };
   });
 
 
   subunit = buildPythonPackage rec {
     name = "subunit-${version}";
-    version = "0.0.13";
+    version = "0.0.16";
 
     src = fetchurl {
       url = "https://launchpad.net/subunit/trunk/${version}/+download/python-${name}.tar.gz";
-      sha256 = "0f3xni4z1hbmg4dqxak85ibpf9pajxn6qzw1xj79gwnr8xxb66zj";
+      sha256 = "1ylla1wlmv29vdr76r5kgr7y21bz4ahi3v26mxsys42w90rfkahi";
     };
 
     propagatedBuildInputs = [ testtools ];
@@ -6146,10 +7794,34 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "A streaming protocol for test results";
       homepage = https://launchpad.net/subunit;
-      license = pkgs.lib.licenses.asl20;
+      license = licenses.asl20;
     };
   };
 
+
+  sure = buildPythonPackage rec {
+    name = "sure-${version}";
+    version = "1.2.7";
+
+    # Not picking up from PyPI because it doesn't contain tests.
+    src = fetchgit {
+      url = "git://github.com/gabrielfalcao/sure.git";
+      rev = "86ab9faa97aa9c1720c7d090deac2be385ed3d7a";
+      sha256 = "02vffcdgr6vbj80lhl925w7zqy6cqnfvs088i0rbkjs5lxc511b3";
+    };
+
+    buildInputs = [ nose ];
+
+    propagatedBuildInputs = [ six mock ];
+
+    meta = {
+      description = "Utility belt for automated testing";
+      homepage = "http://falcao.it/sure/";
+      license = licenses.gpl3Plus;
+    };
+  };
+
+
   # XXX: ValueError: ZIP does not support timestamps before 1980
   # svneverever =  buildPythonPackage rec {
   #   name = "svneverever-778489a8";
@@ -6165,6 +7837,46 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   #   doCheck = false;
   # };
 
+  targetcli_fb = buildPythonPackage rec {
+    version = "2.1.fb33";
+    name = "targetcli-fb-${version}";
+
+    src = fetchurl {
+      url = "https://github.com/agrover/targetcli-fb/archive/v${version}.tar.gz";
+      sha256 = "1zcm0agdpf866020b43fl8zyyyzz6r74mn1sz4xpaa0pinpwjk42";
+    };
+
+    propagatedBuildInputs = [
+      configshell_fb
+      rtslib_fb
+    ];
+
+    meta = {
+      description = "A command shell for managing the Linux LIO kernel target";
+      homepage = "https://github.com/agrover/targetcli-fb";
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
+
+  tarsnapper = buildPythonPackage rec {
+    name = "tarsnapper-0.2.1";
+
+    src = fetchgit {
+      url = https://github.com/miracle2k/tarsnapper.git;
+      rev = "620439bca68892f2ffaba1079a34b18496cc6596";
+      sha256 = "06pp499qm2dxpja2jgmmq2jrcx3m4nq52x5hhil9r1jxvyiq962p";
+    };
+
+    propagatedBuildInputs = [ argparse pyyaml ];
+
+    patches = [ ../development/python-modules/tarsnapper-path.patch ];
+
+    preConfigure = ''
+      substituteInPlace src/tarsnapper/script.py \
+        --replace '@NIXTARSNAPPATH@' '${pkgs.tarsnap}/bin/tarsnap'
+    '';
+  };
+
   taskcoach = buildPythonPackage rec {
     name = "TaskCoach-1.3.22";
 
@@ -6189,7 +7901,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = http://taskcoach.org/;
       description = "Todo manager to keep track of personal tasks and todo lists";
-      license = "GPLv3+";
+      license = stdenv.lib.licenses.gpl3Plus;
     };
   };
 
@@ -6213,19 +7925,19 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   testtools = buildPythonPackage rec {
     name = "testtools-${version}";
-    version = "0.9.32";
+    version = "0.9.34";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/t/testtools/${name}.tar.gz";
-      sha256 = "1smgk3y7xfzh5xk5wydb6n5lx4g5i6y4w8ajrdnskx1jqr67wyyq";
+      sha256 = "0s6sn9h26dif2c9sayf875x622kq8jb2f4qbc6if7gwh2sssgicn";
     };
 
-    propagatedBuildInputs = [ pythonPackages.python_mimeparse pythonPackages.extras ];
+    propagatedBuildInputs = [ pythonPackages.python_mimeparse pythonPackages.extras lxml ];
 
     meta = {
       description = "A set of extensions to the Python standard library's unit testing framework";
       homepage = http://pypi.python.org/pypi/testtools;
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
@@ -6245,7 +7957,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges.";
       homepage = https://code.google.com/p/mimeparse/;
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
@@ -6265,25 +7977,54 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       description = "A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges.";
       homepage = https://code.google.com/p/mimeparse/;
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
     };
   };
 
+  tmdb3 = buildPythonPackage rec {
+    name = "tmdb3-${version}";
+    version = "0.6.17";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/tmdb3/${name}.zip";
+      md5 = "cd259427454472164c9a2479504c9cbb";
+    };
+
+    meta = {
+      description = "Python implementation of the v3 API for TheMovieDB.org, allowing access to movie and cast information.";
+      homepage = http://pypi.python.org/pypi/tmdb3;
+      license = stdenv.lib.licenses.bsd3;
+    };
+  };
 
   # TODO
-  # py.error.EACCES: [Permission denied]: mkdir('/homeless-shelter',)
-  # builder for `/nix/store/0czwg0n3pfkmpjphqv1jxfjlgkbziwsx-python-tox-1.4.3.drv' failed with exit code 1
-  # tox = buildPythonPackage rec {
-  #   name = "tox-1.4.3";
-  #
-  #   buildInputs = [ py virtualenv ];
+  # Installs correctly but fails tests that involve simple things like:
+  # cmd.run("tox", "-h")
+  # also, buildPythonPackage needs to supply the tox.ini correctly for projects that use tox for their tests
   #
-  #   src = fetchurl {
-  #     url = "https://pypi.python.org/packages/source/t/tox/tox-1.4.3.tar.gz";
-  #     md5 = "3727d5b0600d92edf2229a7ce6a0f752";
-  #   };
-  # };
 
+  tox = buildPythonPackage rec {
+    name = "tox-1.7.2";
+  
+    propagatedBuildInputs = [ py virtualenv ];
+
+    doCheck = false;
+  
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/tox/${name}.tar.gz";
+      md5 = "0d9b3acb1a9252659d753b0ae6b9b264";
+    };
+  };
+
+  smmap = buildPythonPackage rec {
+    name = "smmap-0.8.2";
+    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/s/smmap/${name}.tar.gz";
+      sha256 = "0vrdgr6npmajrv658fv8bij7zgm5jmz2yxkbv8kmbv25q1f9b8ny";
+    };
+  };
 
   trac = buildPythonPackage {
     name = "trac-1.0.1";
@@ -6326,6 +8067,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  transmissionrpc = buildPythonPackage rec {
+    name = "transmissionrpc-${version}";
+    version = "0.11";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/transmissionrpc/${name}.tar.gz";
+      md5 = "b2f918593e509f0e66e2e643291b436d";
+    };
+
+    propagatedBuildInputs = [ six ];
+
+    meta = {
+      description = "Python implementation of the Transmission bittorent client RPC protocol.";
+      homepage = http://pypi.python.org/pypi/transmissionrpc/;
+      license = stdenv.lib.licenses.mit;
+    };
+  };
 
   eggdeps  = buildPythonPackage rec {
      name = "eggdeps-${version}";
@@ -6336,6 +8094,9 @@ pythonPackages = modules // import ./python-packages-generated.nix {
        md5 = "2472204a2abd0d8cd4d11ff0fbf36ae7";
      };
 
+     # tests fail, see http://hydra.nixos.org/build/4316603/log/raw
+     doCheck = false;
+
      propagatedBuildInputs = [ zope_interface zope_testing ];
      meta = {
        description = "A tool which computes a dependency graph between active Python eggs";
@@ -6346,11 +8107,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   turses = buildPythonPackage (rec {
-    name = "turses-0.2.13";
+    name = "turses-0.2.22";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/t/turses/${name}.tar.gz";
-      sha256 = "0sygm40z04zifcfqwby8wwwnj3i1bpl41r7xgnjcipxwirjmnp2k";
+      sha256 = "1dqgvdqly4c4d6819mbkqy4g8r7zch4dkmxicfwck7q8h96wmyx3";
     };
 
     propagatedBuildInputs = [ oauth2 urwid tweepy ] ++ optional isPy26 argparse;
@@ -6362,35 +8123,37 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = "https://github.com/alejandrogomez/turses";
       description = "A Twitter client for the console.";
-      license = pkgs.lib.licenses.gpl3;
+      license = licenses.gpl3;
       maintainers = [ stdenv.lib.maintainers.garbas ];
       platforms = stdenv.lib.platforms.linux;
     };
   });
 
   tweepy = buildPythonPackage (rec {
-    name = "tweepy-2.0";
+    name = "tweepy-2.3.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/t/tweepy/${name}.tar.gz";
-      sha256 = "1b95xcw11b5871gd4br78hxbvcq8y9f0i0sqga85dgg9hnmvdcx0";
+      sha256 = "0wcj5g21brcqr1g7m4by4rs72lfiib4scg19qynn2wz1x77jyrzp";
     };
 
     meta = {
       homepage = "https://github.com/tweepy/tweepy";
       description = "Twitter library for python";
-      license = pkgs.lib.licenses.mit;
+      license = licenses.mit;
       maintainers = [ stdenv.lib.maintainers.garbas ];
       platforms = stdenv.lib.platforms.linux;
     };
   });
 
   twisted = buildPythonPackage rec {
-    name = "twisted-10.2.0";
+    # NOTE: When updating please check if new versions still cause issues
+    # to packages like carbon (http://stackoverflow.com/questions/19894708/cant-start-carbon-12-04-python-error-importerror-cannot-import-name-daem)
 
+    name = "Twisted-11.1.0";
     src = fetchurl {
-      url = http://tmrc.mit.edu/mirror/twisted/Twisted/10.2/Twisted-10.2.0.tar.bz2;
-      sha256 = "110c30z622jn14yany1sxfaqj5qx20n9rc9zqacxlwma30fdcbjn";
+      url = "https://pypi.python.org/packages/source/T/Twisted/${name}.tar.bz2";
+      sha256 = "05agfp17cndhv2w0p559lvknl7nv0xqkg10apc47fm53m8llbfvz";
     };
 
     propagatedBuildInputs = [ zope_interface ];
@@ -6411,7 +8174,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
         and licensed under the MIT license.
       '';
 
-      license = "MIT";
+      license = licenses.mit;
 
       maintainers = [ ];
     };
@@ -6432,6 +8195,10 @@ pythonPackages = modules // import ./python-packages-generated.nix {
            md5 = "a0af5cac92bbbfa0c3b0e99571390e0f";
          };
 
+    preConfigure = ''
+      sed -i 's/unittest2py3k/unittest2/' setup.py
+    '';
+
     meta = {
       description = "A backport of the new features added to the unittest testing framework in Python 2.7";
       homepage = http://pypi.python.org/pypi/unittest2;
@@ -6454,7 +8221,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     meta = {
       homepage = "urlgrabber.baseurl.org";
-      license = "LGPLv2+";
+      license = stdenv.lib.licenses.lgpl2Plus;
       description = "Python module for downloading files";
       maintainers = [ stdenv.lib.maintainers.qknight ];
     };
@@ -6462,29 +8229,30 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   urwid = buildPythonPackage (rec {
-    name = "urwid-1.1.1";
+    name = "urwid-1.2.1";
 
     # multiple:  NameError: name 'evl' is not defined
     doCheck = false;
 
     src = fetchurl {
-      url = "http://excess.org/urwid/${name}.tar.gz";
-      md5 = "eca2e0413cf7216b01c84b99e0f2576d";
+      url = "https://pypi.python.org/packages/source/u/urwid/${name}.tar.gz";
+      md5 = "6a05ada11b87e7b026b01fc5150855b0";
     };
 
     meta = {
       description = "A full-featured console (xterm et al.) user interface library";
       homepage = http://excess.org/urwid;
-      license = pkgs.lib.licenses.lgpl21;
+      repositories.git = git://github.com/wardi/urwid.git;
+      license = licenses.lgpl21;
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   });
 
   virtualenv = buildPythonPackage rec {
-    name = "virtualenv-1.10";
+    name = "virtualenv-1.11.6";
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/v/virtualenv/${name}.tar.gz";
-      md5 = "9745c28256c70c76d36adb3767a00212";
+      md5 = "f61cdd983d2c4e6aeabb70b1060d6f49";
     };
 
     inherit recursivePthLoader;
@@ -6506,12 +8274,80 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  virtualenv-clone = buildPythonPackage rec {
+    name = "virtualenv-clone-0.2.4";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/v/virtualenv-clone/${name}.tar.gz";
+      md5 = "71168b975eaaa91e65559bcc79290b3b";
+    };
+
+    buildInputs = [pytest];
+    propagatedBuildInputs = [virtualenv];
+
+    # needs tox to run the tests
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+      description = "Script to clone virtualenvs";
+      license = licenses.mit;
+      platforms = platforms.all;
+    };
+  };
+
+  virtualenvwrapper = buildPythonPackage (rec {
+    name = "virtualenvwrapper-4.3";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/v/virtualenvwrapper/${name}.tar.gz";
+      sha256 = "514cbc22218347bf7b54bdbe49e1a5f550d2d53b1ad2491c10e91ddf48fb528f";
+    };
+
+    # pip depend on $HOME setting
+    preConfigure = "export HOME=$TMPDIR";
+
+    buildInputs = [ pbr pip pkgs.which ];
+    propagatedBuildInputs = [ stevedore virtualenv virtualenv-clone ];
+
+    patchPhase = ''
+      substituteInPlace "virtualenvwrapper.sh" --replace "which" "${pkgs.which}/bin/which"
+      substituteInPlace "virtualenvwrapper_lazy.sh" --replace "which" "${pkgs.which}/bin/which"
+    '';
+
+    postInstall = ''
+      # This might look like a dirty hack but we can't use the makeWrapper function because
+      # the wrapped file were then called via "exec". The virtualenvwrapper shell scripts
+      # aren't normal executables. Instead, the user has to evaluate them.
+
+      for file in "virtualenvwrapper.sh" "virtualenvwrapper_lazy.sh"; do
+        local wrapper="$out/bin/$file"
+        local wrapped="$out/bin/.$file-wrapped"
+        mv "$wrapper" "$wrapped"
+
+        cat > "$wrapper" <<- EOF
+	export PATH=$PATH:\$PATH
+	export PYTHONPATH=$PYTHONPATH:$(toPythonPath $out):\$PYTHONPATH
+	source "$wrapped"
+	EOF
+
+        chmod -x "$wrapped"
+        chmod +x "$wrapper"
+      done
+    '';
+
+    meta = {
+      description = "Enhancements to virtualenv";
+      homepage = "https://pypi.python.org/pypi/virtualenvwrapper";
+      license = licenses.mit;
+    };
+  });
+
   waitress = buildPythonPackage rec {
-    name = "waitress-0.8.5";
+    name = "waitress-0.8.7";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/w/waitress/${name}.tar.gz";
-      md5 = "7a3094d812c0dffb948d1334ef5fd56f";
+      md5 = "714f3d458d82a47f12fb168460de8366";
     };
 
     doCheck = false;
@@ -6565,12 +8401,12 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   webob = buildPythonPackage rec {
-    version = "1.2.3";
+    version = "1.3.1";
     name = "webob-${version}";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/W/WebOb/WebOb-${version}.tar.gz";
-      md5 = "11825b7074ba7043e157805e4e6e0f55";
+      md5 = "20918251c5726956ba8fef22d1556177";
     };
 
     propagatedBuildInputs = [ nose modules.ssl ];
@@ -6602,26 +8438,25 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   webtest = buildPythonPackage rec {
-    version = "2.0.3";
+    version = "2.0.11";
     name = "webtest-${version}";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.zip";
-      md5 = "a1266d4db421963fd3deb172c6689e4b";
+      md5 = "e51da21da8815cef07f543d8688effea";
     };
 
-    buildInputs = [ pkgs.unzip ] ++ optionals isPy26 [ pythonPackages.ordereddict ];
-
     # XXX: skipping two tests fails in python2.6
     doCheck = ! isPy26;
 
+    buildInputs = optionals isPy26 [ pythonPackages.ordereddict unittest2 ];
+
     propagatedBuildInputs = [
       nose
       webob
       six
       beautifulsoup4
       waitress
-      unittest2
       mock
       pyquery
       wsgiproxy2
@@ -6631,20 +8466,24 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     meta = {
       description = "Helper to test WSGI applications";
-      homepage = http://pythonpaste.org/webtest/;
+      homepage = http://webtest.readthedocs.org/en/latest/;
       platforms = stdenv.lib.platforms.all;
     };
   };
 
 
   werkzeug = buildPythonPackage {
-    name = "werkzeug-0.8.3";
+    name = "werkzeug-0.9.4";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/W/Werkzeug/Werkzeug-0.8.3.tar.gz";
-      md5 = "12aa03e302ce49da98703938f257347a";
+      url = "http://pypi.python.org/packages/source/W/Werkzeug/Werkzeug-0.9.4.tar.gz";
+      md5 = "670fad41f57c13b71a6816765765a3dd";
     };
 
+    propagatedBuildInputs = [ itsdangerous ];
+
+    doCheck = false;            # tests fail, not sure why
+
     meta = {
       homepage = http://werkzeug.pocoo.org/;
       description = "A WSGI utility library for Python";
@@ -6655,7 +8494,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   wokkel = buildPythonPackage (rec {
     url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz";
-    name = pkgs.lib.nameFromURL url ".tar";
+    name = nameFromURL url ".tar";
     src = fetchurl {
       inherit url;
       sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
@@ -6700,6 +8539,12 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     wxGTK = pkgs.wxGTK28;
   };
 
+  wxPython30 = import ../development/python-modules/wxPython/3.0.nix {
+    inherit (pkgs) stdenv fetchurl pkgconfig;
+    inherit pythonPackages;
+    wxGTK = pkgs.wxGTK30;
+  };
+
   xe = buildPythonPackage rec {
     url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz";
     name = stdenv.lib.nameFromURL url ".tar";
@@ -6735,7 +8580,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
       homepage = http://python-xlib.sourceforge.net/;
 
-      license = "GPLv2+";
+      license = stdenv.lib.licenses.gpl2Plus;
     };
   });
 
@@ -6764,11 +8609,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   zconfig = buildPythonPackage rec {
     name = "zconfig-${version}";
-    version = "2.9.3";
+    version = "3.0.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/Z/ZConfig/ZConfig-${version}.tar.gz";
-      md5 = "2c5f73c216140a705be3d9c44b988722";
+      md5 = "60a107c5857c3877368dfe5930559804";
     };
 
     propagatedBuildInputs = [ zope_testrunner ];
@@ -6821,11 +8666,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   zfec = buildPythonPackage (rec {
-    name = "zfec-1.4.7";
+    name = "zfec-1.4.24";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zfec/${name}.tar.gz";
-      sha256 = "3335c9054f45e2c59188400e892634b68761b29d06f3cafe525c60484902d379";
+      sha256 = "1ks94zlpy7n8sb8380gf90gx85qy0p9073wi1wngg6mccxp9xsg3";
     };
 
     buildInputs = [ setuptoolsDarcs ];
@@ -6845,7 +8690,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
         and Haskell API.
       '';
 
-      license = "GPLv2+";
+      license = stdenv.lib.licenses.gpl2Plus;
     };
   });
 
@@ -6878,7 +8723,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "eff24d7918099a3e899ee63a9c31bee6";
     };
 
-    buildInputs = [ pkgs.unzip zope_interface ];
+    buildInputs = [ zope_interface ];
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -6894,8 +8739,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "4ff0ddbf64c45bfcc3189e35f4214ded";
     };
 
-    buildInputs = [ pkgs.unzip ];
-
     propagatedBuildInputs = [ zope_interface ];
 
     meta = {
@@ -6970,8 +8813,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "c6ac80e6887de4108a383f349fbdf332";
     };
 
-    buildInputs = [ pkgs.unzip ];
-
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
     };
@@ -7102,8 +8943,8 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     propagatedBuildInputs = [ zope_proxy ];
 
     # ignore circular dependency on zope_schema
-    installCommand = ''
-      easy_install --always-unzip --no-deps --prefix="$out" .
+    preBuild = ''
+      sed -i '/zope.schema/d' setup.py
     '';
 
     doCheck = false;
@@ -7156,12 +8997,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "e7e581af8193551831560a736a53cf58";
     };
 
-    propagatedBuildInputs = [ zope_event zope_interface zope_testing ] ++ optional isPy26 ordereddict;
-
-    # ignore circular dependency on zope_location
-    installCommand = ''
-      easy_install  --no-deps --prefix="$out" .
-    '';
+    propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ] ++ optional isPy26 ordereddict;
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -7205,14 +9041,14 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   zope_sqlalchemy = buildPythonPackage rec {
-    name = "zope.sqlalchemy-0.7.2";
+    name = "zope.sqlalchemy-0.7.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.sqlalchemy/${name}.zip";
-      md5 = "b654e5d144ed141e13b42591a21a4868";
+      md5 = "8b317b41244fc2e67f2f286890ba59a0";
     };
 
-    buildInputs = [ pkgs.unzip sqlalchemy zope_testing zope_interface setuptools ];
+    buildInputs = [ sqlalchemy zope_testing zope_interface setuptools ];
     propagatedBuildInputs = [ sqlalchemy transaction ];
 
     meta = {
@@ -7234,7 +9070,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "01c30c342c6a18002a762bd5d320a6e9";
     };
 
-    buildInputs = [ pkgs.unzip ];
     propagatedBuildInputs = [ zope_interface zope_exceptions zope_location ];
 
     meta = {
@@ -7255,9 +9090,10 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "1d689abad000419891494b30dd7d8190";
     };
 
-    buildInputs = [ pkgs.unzip ];
+    propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ] ++ optional (!python.is_py3k or false) subunit;
 
-    propagatedBuildInputs = [ subunit zope_interface zope_exceptions zope_testing six ];
+    # a test is failing
+    doCheck = false;
 
     meta = {
       description = "A flexible test runner with layer support";
@@ -7276,8 +9112,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "eaad8fc7bbef126f9f8616b074ec00aa";
     };
 
-    buildInputs = [ pkgs.unzip ];
-
     propagatedBuildInputs = [ zope_location zope_security zope_publisher ];
 
     meta = {
@@ -7325,11 +9159,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   cliapp = buildPythonPackage rec {
     name = "cliapp-${version}";
-    version = "1.20130313";
+    version = "1.20140719";
 
     src = fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-cliapp/python-cliapp_${version}.orig.tar.gz";
-      sha256 = "0rk13a68668gsrv6yqgzqxskffqnlyjar4qav6k5iyrp77amn7qm";
+      sha256 = "0kxl2q85n4ggvbw2m8crl11x8n637mx6y3a3b5ydw8nhlsiqijgp";
     };
 
     buildInputs = [ sphinx ];
@@ -7346,15 +9180,37 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   tornado = buildPythonPackage rec {
-    name = "tornado-2.4";
+    name = "tornado-3.2";
+
+    propagatedBuildInputs = [ backports_ssl_match_hostname_3_4_0_2 ];
+
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/t/tornado/tornado-2.4.tar.gz";
-      md5 = "c738af97c31dd70f41f6726cf0968941";
+      url = "https://pypi.python.org/packages/source/t/tornado/${name}.tar.gz";
+      md5 = "bd83cee5f1a5c5e139e87996d00b251b";
     };
+
     doCheck = false;
   };
 
 
+  tornadokick = buildPythonPackage rec {
+    name = "tornadokick-2014.07.23";
+
+    propagatedBuildInputs = [ tornado ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/tornadokick/${name}.tar.gz";
+      md5 = "201d26de2993a554b16140af3b4ee1b6";
+    };
+
+    meta = {
+      description = "The TornadoKick Web Toolkit for Tornado Web Framework.";
+      homepage = http://github.com/multoncore/tornadokick;
+      license = stdenv.lib.licenses.asl20;
+    };
+  };
+
+
   tarman = buildPythonPackage rec {
     version = "0.1.3";
     name = "tarman-${version}";
@@ -7364,7 +9220,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       sha256 = "0ri6gj883k042xaxa2d5ymmhbw2bfcxdzhh4bz7700ibxwxxj62h";
     };
 
-    buildInputs = [ pkgs.unzip unittest2 nose mock ];
+    buildInputs = [ unittest2 nose mock ];
     propagatedBuildInputs = [ modules.curses libarchive ];
 
     # tests are still failing
@@ -7373,12 +9229,12 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   libarchive = buildPythonPackage rec {
-    version = "3.0.4-5";
+    version = "3.1.2-1";
     name = "libarchive-${version}";
 
     src = fetchurl {
       url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz";
-      sha256 = "141yx9ym8gvybn67mw0lmgafzsd79rmd9l77lk0k6m2fzclqx1j5";
+      sha256 = "0j4ibc4mvq64ljya9max8832jafi04jciff9ia9qy0xhhlwkcx8x";
     };
 
     propagatedBuildInputs = [ pkgs.libarchive ];
@@ -7391,17 +9247,17 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       url = "http://pypi.python.org/packages/source/p/pyzmq/pyzmq-13.0.0.zip";
       md5 = "fa2199022e54a393052d380c6e1a0934";
     };
-    buildInputs = [ pkgs.unzip pkgs.zeromq3 ];
+    buildInputs = [ pkgs.zeromq3 ];
     propagatedBuildInputs = [  ];
     doCheck = false;
   };
 
 
   tissue = buildPythonPackage rec {
-    name = "tissue-0.7";
+    name = "tissue-0.9.2";
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/t/tissue/${name}.tar.gz";
-      md5 = "c9f3772407eb7499a949daaa9b859fdf";
+      md5 = "87dbcdafff41bfa1b424413f79aa9153";
     };
 
     buildInputs = [ nose ];
@@ -7418,11 +9274,12 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   tracing = buildPythonPackage rec {
-    name = "tracing-0.7";
+    name = "tracing-${version}";
+    version = "0.8";
 
     src = fetchurl rec {
-      url = "http://code.liw.fi/debian/pool/main/p/python-tracing/python-tracing_0.7.orig.tar.gz";
-      sha256 = "9954a1b0cc6b957d15975b048f929bbdd46766d397a6fa51bf8f6498b9459276";
+      url = "http://code.liw.fi/debian/pool/main/p/python-tracing/python-tracing_${version}.orig.tar.gz";
+      sha256 = "1l4ybj5rvrrcxf8csyq7qx52izybd502pmx70zxp46gxqm60d2l0";
     };
 
     buildInputs = [ sphinx ];
@@ -7457,11 +9314,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   ttystatus = buildPythonPackage rec {
     name = "ttystatus-${version}";
-    version = "0.22";
+    version = "0.23";
 
     src = fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-ttystatus/python-ttystatus_${version}.orig.tar.gz";
-      sha256 = "1hzv0sbrvgcmafflhvzh7plci0dg7wcjlk39i8kqdasg6rw0ag6f";
+      sha256 = "0ymimviyjyh2iizqilg88g4p26f5vpq1zm3cvg7dr7q4y3gmik8y";
     };
 
     buildInputs = [ sphinx ];
@@ -7478,11 +9335,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   larch = buildPythonPackage rec {
     name = "larch-${version}";
-    version = "1.20130316";
+    version = "1.20131130";
 
     src = fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_${version}.orig.tar.gz";
-      sha256 = "1mkvmy0jdzd7dlvdx2a75wsbj5qw1clawcgndx9jwl816a9iy225";
+      sha256 = "1hfanp9l6yc5348i3f5sb8c5s4r43y382hflnbl6cnz4pm8yh5r7";
     };
 
     buildInputs = [ sphinx ];
@@ -7523,30 +9380,30 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   whisper = buildPythonPackage rec {
     name = "whisper-${version}";
-    version = "0.9.10";
+    version = "0.9.12";
 
-    src = fetchurl rec {
-      url = "https://launchpad.net/graphite/0.9/${version}/+download/${name}.tar.gz";
-      sha256 = "1zy4z4hrbiqj4ipcv2m9197hf03d4xphllqav9w4c8i6fn8zmd9n";
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/w/whisper/${name}.tar.gz";
+      md5 = "5fac757cc4822ab0678dbe0d781d904e";
     };
 
     # error: invalid command 'test'
     doCheck = false;
 
-    meta = {
+    meta = with stdenv.lib; {
       homepage = http://graphite.wikidot.com/;
       description = "Fixed size round-robin style database";
-      maintainers = [ stdenv.lib.maintainers.rickynils ];
+      maintainers = with maintainers; [ rickynils offline ];
     };
   };
 
   carbon = buildPythonPackage rec {
     name = "carbon-${version}";
-    version = "0.9.10";
+    version = "0.9.12";
 
-    src = fetchurl rec {
-      url = "https://launchpad.net/graphite/0.9/${version}/+download/${name}.tar.gz";
-      sha256 = "0wjhd87pvpcpvaj3wql2d92g8lpp33iwmxdkp7npic5mjl2y0dsg";
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/c/carbon/${name}.tar.gz";
+      md5 = "66967d5a622fd29973838fcd10eb34f3";
     };
 
     propagatedBuildInputs = [ whisper txamqp zope_interface twisted ];
@@ -7554,10 +9411,10 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     # error: invalid command 'test'
     doCheck = false;
 
-    meta = {
+    meta = with stdenv.lib; {
       homepage = http://graphite.wikidot.com/;
       description = "Backend data caching and persistence daemon for Graphite";
-      maintainers = [ stdenv.lib.maintainers.rickynils ];
+      maintainers = with maintainers; [ rickynils offline ];
     };
   };
 
@@ -7573,11 +9430,56 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = http://pypi.python.org/pypi/Unidecode/;
       description = "ASCII transliterations of Unicode text";
-      license = pkgs.lib.licenses.gpl2;
+      license = licenses.gpl2;
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
 
+
+  pyusb = buildPythonPackage rec {
+    name = "pyusb-1.0.0b1";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pyusb/${name}.tar.gz";
+      md5 = "5cc9c7dd77b4d12fcc22fee3b39844bc";
+    };
+
+    # Fix the USB backend library lookup
+    postPatch = ''
+      libusb=${pkgs.libusb1}/lib/libusb-1.0.so
+      test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; }
+      sed -i -e "s|libname = .*|libname = \"$libusb\"|" usb/backend/libusb1.py
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Python USB access module (wraps libusb 1.0)";  # can use other backends
+      homepage = http://pyusb.sourceforge.net/;
+      license = "BSD";
+      maintainers = [ maintainers.bjornfor ];
+    };
+  };
+
+
+  usbtmc = buildPythonPackage rec {
+    name = "usbtmc-${version}";
+    version = "0.5";
+
+    src = fetchurl {
+      url = "https://github.com/python-ivi/python-usbtmc/archive/v${version}.tar.gz";
+      sha256 = "0xn8whjcdn8wgs9j1gj7sw7fh425akdmq3hi448m36fywldbhryg";
+    };
+
+    propagatedBuildInputs = [ pyusb ];
+
+    meta = {
+      description = "Python implementation of the USBTMC instrument control protocol";
+      homepage = http://alexforencich.com/wiki/en/python-usbtmc/start;
+      license = licenses.mit;
+      maintainers = [ maintainers.bjornfor ];
+    };
+  };
+
+
   txamqp = buildPythonPackage rec {
     name = "txamqp-${version}";
     version = "0.3";
@@ -7596,13 +9498,23 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  versiontools = buildPythonPackage rec {
+    name = "versiontools-1.9.1";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/v/versiontools/${name}.tar.gz";
+      sha256 = "1xhl6kl7f4srgnw6zw4lr8j2z5vmrbaa83nzn2c9r2m1hwl36sd9";
+    };
+
+  };
+
   graphite_web = buildPythonPackage rec {
     name = "graphite-web-${version}";
-    version = "0.9.11";
+    version = "0.9.12";
 
     src = fetchurl rec {
       url = "https://pypi.python.org/packages/source/g/graphite-web/${name}.tar.gz";
-      md5 = "1499b5dded3d1054d598760fd450a6f9";
+      md5 = "8edbb61f1ffe11c181bd2cb9ec977c72";
     };
 
     propagatedBuildInputs = [ django_1_3 django_tagging modules.sqlite3 whisper pkgs.pycairo ldap memcached ];
@@ -7614,7 +9526,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     preConfigure = ''
       substituteInPlace webapp/graphite/thirdparty/pytz/__init__.py --replace '/usr/share/zoneinfo' '/etc/zoneinfo'
-      substituteInPlace webapp/graphite/settings.py --replace "join(WEBAPP_DIR, 'content')" "join(WEBAPP_DIR, 'webapp', 'content')"
+      substituteInPlace webapp/graphite/settings.py --replace "join(WEBAPP_DIR, 'content')" "join('$out', 'webapp', 'content')"
       cp webapp/graphite/manage.py bin/manage-graphite.py
       substituteInPlace bin/manage-graphite.py --replace 'settings' 'graphite.settings'
     '';
@@ -7622,10 +9534,10 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     # error: invalid command 'test'
     doCheck = false;
 
-    meta = {
+    meta = with stdenv.lib; {
       homepage = http://graphite.wikidot.com/;
       description = "Enterprise scalable realtime graphing";
-      maintainers = [ stdenv.lib.maintainers.rickynils ];
+      maintainers = with maintainers; [ rickynils offline ];
     };
   };
 
@@ -7670,26 +9582,21 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   pykka = buildPythonPackage rec {
     name = "pykka-${version}";
 
-    version = "1.1.0";
+    version = "1.2.0";
 
     src = fetchgit {
       url = "https://github.com/jodal/pykka.git";
       rev = "refs/tags/v${version}";
-      sha256 = "0w6bcaqkzwmd9habszlgjkp3kkhkna08s9aivnmna5hddsghfqmz";
+      sha256 = "17vv2q636zp2fvxrp7ckgnz1ifaffcj5vdxvfb4isd1d32c49amb";
     };
 
-    # python zip complains about old timestamps
-    preConfigure = ''
-      find -print0 | xargs -0 touch
-    '';
-
     # There are no tests
     doCheck = false;
 
-    meta = {
+    meta = with stdenv.lib; {
       homepage = http://www.pykka.org;
       description = "A Python implementation of the actor model";
-      maintainers = [ stdenv.lib.maintainers.rickynils ];
+      maintainers = [ maintainers.rickynils ];
     };
   };
 
@@ -7735,7 +9642,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = https://code.google.com/p/gdata-python-client/;
       description = "Python client library for Google data APIs";
-      license = pkgs.lib.licenses.asl20;
+      license = licenses.asl20;
     };
   };
 
@@ -7755,7 +9662,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = http://imapclient.freshfoo.com/;
       description = "Easy-to-use, Pythonic and complete IMAP client library";
-      license = pkgs.lib.licenses.bsd3;
+      license = licenses.bsd3;
     };
   };
 
@@ -7772,12 +9679,166 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     meta = {
       homepage = http://pythonhosted.org/Logbook/;
       description = "A logging replacement for Python";
-      license = pkgs.lib.licenses.bsd3;
+      license = licenses.bsd3;
+    };
+  };
+
+  libvirt = pkgs.stdenv.mkDerivation rec {
+    name = "libvirt-python-${version}";
+    version = "1.2.5";
+
+    src = fetchurl {
+      url = "http://libvirt.org/sources/python/${name}.tar.gz";
+      sha256 = "0r0v48nkkxfagckizbcf67xkmyd1bnq36d30b58zmhvl0abryz7p";
+    };
+
+    buildInputs = [ python pkgs.pkgconfig pkgs.libvirt lxml ];
+
+    buildPhase = "python setup.py build";
+
+    installPhase = "python setup.py install --prefix=$out";
+
+    meta = {
+      homepage = http://www.libvirt.org/;
+      description = "libvirt Python bindings";
+      license = pkgs.lib.licenses.lgpl2;
+    };
+  };
+
+  searx = buildPythonPackage rec {
+    name = "searx-${rev}";
+    rev = "44d3af9fb2482cd0df1a8ababbe2fdf27ab33172";
+
+    src = fetchgit {
+      url = "git://github.com/asciimoo/searx";
+      inherit rev;
+      sha256 = "1w505pzdkkcglq782wg7f5fxrw9i5jzp7px20c2xz18pps2m3rsm";
+    };
+
+    propagatedBuildInputs = [ pyyaml lxml grequests flaskbabel flask requests
+      gevent speaklater Babel pytz dateutil ];
+
+    meta = {
+      homepage = https://github.com/asciimoo/searx;
+      description = "A privacy-respecting, hackable metasearch engine";
+      license = stdenv.lib.licenses.agpl3Plus;
+      maintainers = [ stdenv.lib.maintainers.matejc ];
+    };
+  };
+
+  grequests = buildPythonPackage rec {
+    name = "grequests-0.2.0";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/g/grequests/${name}.tar.gz";
+      sha256 = "0lafzax5igbh8y4x0krizr573wjsxz7bhvwygiah6qwrzv83kv5c";
     };
- };
 
-# python2.7 specific eggs
-} // pkgs.lib.optionalAttrs (python.majorVersion == "2.7") {
+    buildInputs = [ requests gevent ];
+
+    meta = {
+      description = "GRequests allows you to use Requests with Gevent to make asyncronous HTTP Requests easily.";
+      homepage = https://github.com/kennethreitz/grequests;
+      license = "bsd";
+      maintainers = [ stdenv.lib.maintainers.matejc ];
+    };
+  };
+
+  flaskbabel = buildPythonPackage rec {
+    name = "Flask-Babel-0.9";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/F/Flask-Babel/${name}.tar.gz";
+      sha256 = "0k7vk4k54y55ma0nx2k5s0phfqbriwslhy5shh3b0d046q7ibzaa";
+    };
+
+    buildInputs = [ flask jinja2 speaklater Babel pytz ];
+
+    meta = {
+      description = "Adds i18n/l10n support to Flask applications";
+      homepage = https://github.com/mitsuhiko/flask-babel;
+      license = "bsd";
+      maintainers = [ stdenv.lib.maintainers.matejc ];
+    };
+  };
+
+  speaklater = buildPythonPackage rec {
+    name = "speaklater-1.3";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/s/speaklater/${name}.tar.gz";
+      sha256 = "1ab5dbfzzgz6cnz4xlwx79gz83id4bhiw67k1cgqrlzfs0va7zjr";
+    };
+
+    meta = {
+      description = "implements a lazy string for python useful for use with gettext";
+      homepage = https://github.com/mitsuhiko/speaklater;
+      license = "bsd";
+      maintainers = [ stdenv.lib.maintainers.matejc ];
+    };
+  };
+
+  power = buildPythonPackage rec {
+    name = "power-1.2";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/power/${name}.tar.gz";
+      sha256 = "09a00af8357f63dbb1a1eb13b82e39ccc0a14d6d2e44e5b235afe60ce8ee8195";
+    };
+
+    meta = {
+      description = "Cross-platform system power status information";
+      homepage = https://github.com/Kentzo/Power;
+      license = stdenv.lib.licenses.mit;
+    };
+  };
+
+  udiskie = buildPythonPackage rec {
+    name = "udiskie-0.8.0";
+
+    src = fetchurl {
+      url = "https://github.com/coldfix/udiskie/archive/0.8.0.tar.gz";
+      sha256 = "0yzrnl7bq0dkcd3wh55kbf41c4dbh7dky0mqx0drvnpxlrvzhvp2";
+    };
+
+    propagatedBuildInputs = with pythonPackages; [ pygtk pyyaml dbus notify pkgs.udisks2 ];
+
+    # tests require dbusmock
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+      description = "Removable disk automounter for udisks.";
+      license = licenses.mit;
+      homepage = https://github.com/coldfix/udiskie;
+    };
+  };
+
+  pythonefl = buildPythonPackage rec {
+    name = "python-efl-${version}";
+    version = "1.10.0";
+    src = fetchurl {
+      url = "http://download.enlightenment.org/rel/bindings/python/${name}.tar.gz";
+      sha256 = "1inv2qalnm9paifdwyh9q3ffxcp9bjj92phvfw1rgkaildvfji5i";
+    };
+    preConfigure = ''
+      export NIX_CFLAGS_COMPILE="-I${pkgs.e18.efl}/include/eo-1 -I${pkgs.e18.efl}/include/eina-1 -I${pkgs.e18.efl}/include/eina-1/eina -I${pkgs.e18.efl}/include/evas-1 -I${dbus}/include/dbus-1.0 -I${pkgs.e18.efl}/include/efl-1 -I${pkgs.e18.efl}/include/eet-1 -I${pkgs.e18.efl}/include/ecore-1 -I${pkgs.e18.efl}/include/ecore-evas-1 -I${pkgs.e18.efl}/include/ecore-file-1 -I${pkgs.e18.efl}/include/ecore-input-1 -I${pkgs.e18.efl}/include/ecore-imf-1 -I${pkgs.e18.efl}/include/ecore-con-1 -I${pkgs.e18.efl}/include/edje-1 -I${pkgs.e18.efl}/include/eldbus-1 -I${pkgs.e18.efl}/include/efreet-1 -I${pkgs.e18.efl}/include/ethumb-client-1 -I${pkgs.e18.efl}/include/ethumb-1 -I${pkgs.e18.efl}/include/ecore-x-1 $NIX_CFLAGS_COMPILE"
+    '';
+    buildInputs = [ pkgs.pkgconfig pkgs.e18.efl pkgs.e18.elementary ];
+    meta = {
+      description = "Python bindings for EFL and Elementary.";
+      homepage = http://enlightenment.org/;
+      maintainers = [ stdenv.lib.maintainers.matejc ];
+      platforms = stdenv.lib.platforms.linux;
+      license = stdenv.lib.licenses.gpl3;
+    };
+  };
+
+
+# python2.7 specific packages
+} // optionalAttrs isPy27 (
+  with pythonPackages;
+
+{
 
   pypi2nix = pythonPackages.buildPythonPackage rec {
     rev = "04a68d8577acbceb88bdf51b1231a9dbdead7003";
@@ -7798,4 +9859,80 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
-}; in pythonPackages
+
+  thumbor = pythonPackages.buildPythonPackage rec {
+    name = "thumbor-4.0.4";
+
+    propagatedBuildInputs = [
+                    tornado
+                    pycrypto
+                    pycurl
+                    pillow
+                    derpconf
+                    python_magic
+                    thumborPexif
+                    (pkgs.opencv.override {
+                        gtk = null;
+                        glib = null;
+                        xineLib = null;
+                        gstreamer = null;
+                        ffmpeg = null;
+                    }) ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/thumbor/${name}.tar.gz";
+      md5 = "cf639a1cc57ee287b299ace450444408";
+    };
+
+    meta = {
+      description = "Thumbor is a smart imaging service. It enables on-demand crop, resizing and flipping of images.";
+      homepage = https://github.com/globocom/thumbor/wiki;
+      license = licenses.mit;
+    };
+  };
+
+  thumborPexif = pythonPackages.buildPythonPackage rec {
+    name = "thumbor-pexif-0.14";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/thumbor-pexif/${name}.tar.gz";
+      md5 = "fb4cdb60f4a0bead5193fb483ccd3430";
+    };
+
+    meta = {
+      description = "Module to parse and edit the EXIF data tags in a JPEG image";
+      homepage = http://www.benno.id.au/code/pexif/;
+      license = licenses.mit;
+    };
+  };
+
+  pync = buildPythonPackage rec {
+    version  = "1.4";
+    baseName = "pync";
+    name     = "${baseName}-${version}";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/${baseName}/${name}.tar.gz";
+      md5 = "5cc79077f386a17b539f1e51c05a3650";
+    };
+
+    buildInputs = [ pkgs.coreutils ];
+
+    propagatedBuildInputs = [ dateutil ];
+
+    preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+      sed -i 's|^\([ ]*\)self.bin_path.*$|\1self.bin_path = "${pkgs.rubyLibs.terminal_notifier}/bin/terminal-notifier"|' build/lib/pync/TerminalNotifier.py
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Python Wrapper for Mac OS 10.8 Notification Center";
+      homepage    = https://pypi.python.org/pypi/pync/1.4;
+      license     = licenses.mit;
+      platforms   = platforms.darwin;
+      maintainers = [ maintainers.lovek323 ];
+    };
+  };
+
+
+
+}); in pythonPackages