about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2014-10-13 23:18:40 +0200
committerDomen Kožar <domen@dev.si>2014-10-13 23:20:01 +0200
commite17781f8b1a10e40f4ec110e01610c8afaae4c38 (patch)
tree87dda7707ea74746aab5bc8dd5b0b6b0bec0bac7 /pkgs
parentf78f2a90d664fb7e142fb6e4e64b9273516be4d8 (diff)
downloadnixlib-e17781f8b1a10e40f4ec110e01610c8afaae4c38.tar
nixlib-e17781f8b1a10e40f4ec110e01610c8afaae4c38.tar.gz
nixlib-e17781f8b1a10e40f4ec110e01610c8afaae4c38.tar.bz2
nixlib-e17781f8b1a10e40f4ec110e01610c8afaae4c38.tar.lz
nixlib-e17781f8b1a10e40f4ec110e01610c8afaae4c38.tar.xz
nixlib-e17781f8b1a10e40f4ec110e01610c8afaae4c38.tar.zst
nixlib-e17781f8b1a10e40f4ec110e01610c8afaae4c38.zip
closes #463 pythonPackages now uses self variable instead of rec builtin
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/top-level/all-packages.nix24
-rw-r--r--pkgs/top-level/python-packages.nix2196
2 files changed, 1104 insertions, 1116 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4a427b2fc23b..c29ca8a04701 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7026,34 +7026,34 @@ let
   # Therefore we do not recurse into attributes here, in contrast to
   # python27Packages. `nix-env -iA python26Packages.nose` works
   # regardless.
-  python26Packages = import ./python-packages.nix {
-    inherit pkgs;
+  python26Packages = callPackage ./python-packages.nix {
     python = python26;
+    self = python26Packages;
   };
 
-  python27Packages = lib.hiPrioSet (recurseIntoAttrs (import ./python-packages.nix {
-    inherit pkgs;
+  python27Packages = lib.hiPrioSet (recurseIntoAttrs (callPackage ./python-packages.nix {
     python = python27;
+    self = python27Packages;
   }));
 
-  python32Packages = import ./python-packages.nix {
-    inherit pkgs;
+  python32Packages = callPackage ./python-packages.nix {
     python = python32;
+    self = python32Packages;
   };
 
-  python33Packages = recurseIntoAttrs (import ./python-packages.nix {
-    inherit pkgs;
+  python33Packages = recurseIntoAttrs (callPackage ./python-packages.nix {
     python = python33;
+    self = python33Packages;
   });
 
-  python34Packages = recurseIntoAttrs (import ./python-packages.nix {
-    inherit pkgs;
+  python34Packages = recurseIntoAttrs (callPackage ./python-packages.nix {
     python = python34;
+    self = python34Packages;
   });
 
-  pypyPackages = recurseIntoAttrs (import ./python-packages.nix {
-    inherit pkgs;
+  pypyPackages = recurseIntoAttrs (callPackage ./python-packages.nix {
     python = pypy;
+    self = pypyPackages;
   });
 
   foursuite = callPackage ../development/python-modules/4suite { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index a4c7c515cb2b..50d422c2e3e7 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1,4 +1,4 @@
-{ pkgs, python }:
+{ pkgs, stdenv, python, self }:
 
 with pkgs.lib;
 
@@ -10,6 +10,10 @@ let
   isPyPy = python.executable == "pypy";
   isPy3k = strings.substring 0 1 python.majorVersion == "3";
 
+  callPackage = pkgs.newScope self;
+
+  buildPythonPackage = makeOverridable (callPackage ../development/python-modules/generic { });
+
   # Unique python version identifier
   pythonName =
     if isPy26 then "python26" else
@@ -26,29 +30,24 @@ let
     crypt = null;
   };
 
+  # glibcLocales doesn't build on Darwin
+  localePath = optionalString (! stdenv.isDarwin) "${pkgs.glibcLocales}/lib/locale/locale-archive";
+
   pythonPackages = modules // import ./python-packages-generated.nix {
     inherit pkgs python;
     inherit (pkgs) stdenv fetchurl;
     self = pythonPackages;
   }
 # Python packages for all python versions
-// rec {
+// {
 
-  inherit python isPy26 isPy27 isPy33 isPy34 isPyPy isPy3k pythonName;
-  inherit (pkgs) fetchurl fetchsvn fetchgit stdenv unzip;
+  inherit python isPy26 isPy27 isPy33 isPy34 isPyPy isPy3k pythonName buildPythonPackage;
 
   # helpers
 
-  # glibcLocales doesn't build on Darwin
-  localePath = optionalString (! stdenv.isDarwin) "${pkgs.glibcLocales}/lib/locale/locale-archive";
-
-  callPackage = pkgs.newScope pythonPackages;
-
   # global distutils config used by buildPythonPackage
   distutils-cfg = callPackage ../development/python-modules/distutils-cfg { };
 
-  buildPythonPackage = makeOverridable (callPackage ../development/python-modules/generic { });
-
   wrapPython = pkgs.makeSetupHook
     { deps = pkgs.makeWrapper;
       substitutions.libPrefix = python.libPrefix;
@@ -81,7 +80,7 @@ let
       maintainer  = with maintainers; [ iyzsong ];
     };
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/discid/${name}.tar.gz";
       md5 = "2ad2141452dd10b03ad96ccdad075235";
     };
@@ -96,11 +95,10 @@ let
     hdf5 = pkgs.hdf5.override { mpi = null; };
   };
 
-  h5py-mpi = h5py.override {
+  h5py-mpi = self.h5py.override {
     mpiSupport = true;
     mpi = pkgs.openmpi;
     hdf5 = pkgs.hdf5.override { mpi = pkgs.openmpi; enableShared = true; };
-    inherit mpi4py;
   };
 
   ipython = callPackage ../shells/ipython {
@@ -109,7 +107,7 @@ let
     pylabSupport = !pkgs.stdenv.isDarwin; # cups is not supported on darwin
   };
 
-  ipythonLight = lowPrio (ipython.override {
+  ipythonLight = lowPrio (self.ipython.override {
     qtconsoleSupport = false;
     pylabSupport = false;
     pylabQtSupport = false;
@@ -123,7 +121,7 @@ let
 
   # This is used for NixOps to make sure we won't break it with the next major
   # version of nixpart.
-  nixpart0 = nixpart;
+  nixpart0 = self.nixpart;
 
   pitz = callPackage ../applications/misc/pitz { };
 
@@ -138,17 +136,17 @@ let
 
   pygtk = callPackage ../development/python-modules/pygtk { libglade = null; };
 
-  pyGtkGlade = pygtk.override {
+  pyGtkGlade = self.pygtk.override {
     libglade = pkgs.gnome.libglade;
   };
 
   pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
-    pythonDBus = dbus;
+    pythonDBus = self.dbus;
   };
 
   pyqt5 = callPackage ../development/python-modules/pyqt/5.x.nix {
-    sip = sip_4_16;
-    pythonDBus = dbus;
+    sip = self.sip_4_16;
+    pythonDBus = self.dbus;
   };
 
   sip = callPackage ../development/python-modules/sip { };
@@ -164,12 +162,12 @@ let
   aafigure = buildPythonPackage rec {
     name = "aafigure-0.5";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/a/aafigure/${name}.tar.gz";
       md5 = "5322888a21eb0bb2e749fbf98eddf574";
     };
 
-    propagatedBuildInputs = [ pillow ];
+    propagatedBuildInputs = with self; [ pillow ];
 
     # error: invalid command 'test'
     doCheck = false;
@@ -194,14 +192,14 @@ let
   actdiag = buildPythonPackage rec {
     name = "actdiag-0.5.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/a/actdiag/${name}.tar.gz";
       md5 = "171c47bc1f70e5fadfffd9df0c3157be";
     };
 
-    buildInputs = [ pep8 nose unittest2 docutils ];
+    buildInputs = with self; [ pep8 nose unittest2 docutils ];
 
-    propagatedBuildInputs = [ blockdiag ];
+    propagatedBuildInputs = with self; [ blockdiag ];
 
     # One test fails:
     #   UnicodeEncodeError: 'ascii' codec can't encode character u'\u3042' in position 0: ordinal not in range(128)
@@ -221,18 +219,18 @@ let
     rev = "9744c18c4d6b0a3e7f57b01e5fe145a60fc82a47";
     name = "afew-1.0_${rev}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/teythoon/afew/tarball/${rev}";
       name = "${name}.tar.bz";
       sha256 = "1qyban022aji2hl91dh0j3xa6ikkxl5argc6w71yp2x8b02kp3mf";
     };
 
-    buildInputs = [ pkgs.dbacl ];
+    buildInputs = with self; [ pkgs.dbacl ];
 
-    propagatedBuildInputs = [
-      pythonPackages.notmuch
-      pythonPackages.chardet
-    ] ++ optional (!isPy3k) pythonPackages.subprocess32;
+    propagatedBuildInputs = with self; [
+      self.notmuch
+      self.chardet
+    ] ++ optional (!isPy3k) self.subprocess32;
 
     doCheck = false;
 
@@ -256,13 +254,13 @@ let
   alembic = buildPythonPackage rec {
     name = "alembic-0.6.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/a/alembic/${name}.tar.gz";
       md5 = "71e4a8f6849e1527abfc4ea33d51f37c";
     };
 
-    buildInputs = [ nose mock ];
-    propagatedBuildInputs = [ Mako sqlalchemy9 ];
+    buildInputs = with self; [ nose mock ];
+    propagatedBuildInputs = with self; [ Mako sqlalchemy9 ];
 
     meta = {
       homepage = http://bitbucket.org/zzzeek/alembic;
@@ -275,42 +273,42 @@ let
   almir = buildPythonPackage rec {
     name = "almir-0.1.8";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/a/almir/${name}.zip";
       md5 = "9a1f3c72a039622ca72b74be7a1cd37e";
     };
 
-    buildInputs = [
+    buildInputs = with self; [
       pkgs.which
-      pythonPackages.coverage
-      pythonPackages.mock
-      pythonPackages.tissue
-      pythonPackages.unittest2
-      pythonPackages.webtest
+      self.coverage
+      self.mock
+      self.tissue
+      self.unittest2
+      self.webtest
     ];
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       pkgs.makeWrapper
       pkgs.bacula
-      pythonPackages.colander
-      pythonPackages.deform
-      pythonPackages.deform_bootstrap
-      pythonPackages.docutils
-      pythonPackages.nose
-      pythonPackages.mysql_connector_repackaged
-      pythonPackages.pg8000
-      pythonPackages.pyramid
-      pythonPackages.pyramid_beaker
-      pythonPackages.pyramid_exclog
-      pythonPackages.pyramid_jinja2
-      pythonPackages.pyramid_tm
-      pythonPackages.pytz
-      pythonPackages.sqlalchemy
-      pythonPackages.transaction
-      pythonPackages.waitress
-      pythonPackages.webhelpers
-      pythonPackages.zope_sqlalchemy
-      pythonPackages.psycopg2
+      self.colander
+      self.deform
+      self.deform_bootstrap
+      self.docutils
+      self.nose
+      self.mysql_connector_repackaged
+      self.pg8000
+      self.pyramid
+      self.pyramid_beaker
+      self.pyramid_exclog
+      self.pyramid_jinja2
+      self.pyramid_tm
+      self.pytz
+      self.sqlalchemy
+      self.transaction
+      self.waitress
+      self.webhelpers
+      self.zope_sqlalchemy
+      self.psycopg2
     ];
 
     postInstall = ''
@@ -328,7 +326,7 @@ let
     rev = "fa4ddf000dc2ac4933852b210901b649634a5f86";
     name = "alot-0.3.5_${rev}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/pazz/alot/tarball/${rev}";
       name = "${name}.tar.bz";
       sha256 = "0h11lqyxg0xbkc9y1xqjvd0kmfm5pdwnmv9chmlsi1614dxn08n0";
@@ -338,12 +336,12 @@ let
     doCheck = false;
 
     propagatedBuildInputs =
-      [ pythonPackages.notmuch
-        pythonPackages.urwid
-        pythonPackages.twisted
-        pythonPackages.magic
-        pythonPackages.configobj
-        pythonPackages.pygpgme
+      [ self.notmuch
+        self.urwid
+        self.twisted
+        self.magic
+        self.configobj
+        self.pygpgme
       ];
 
     postInstall = ''
@@ -363,12 +361,12 @@ let
     name = "anyjson-0.3.3";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/a/anyjson/${name}.tar.gz";
       md5 = "2ea28d6ec311aeeebaf993cb3008b27c";
     };
 
-    buildInputs = [ pythonPackages.nose ];
+    buildInputs = with self; [ self.nose ];
 
     meta = {
       homepage = http://pypi.python.org/pypi/anyjson/;
@@ -380,7 +378,7 @@ let
   amqplib = buildPythonPackage rec {
     name = "amqplib-0.6.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://py-amqplib.googlecode.com/files/${name}.tgz";
       sha1 = "f124e5e4a6644bf6d1734032a01ac44db1b25a29";
     };
@@ -399,12 +397,12 @@ let
     name = "apsw-3.7.6.2-r1";
     disabled = isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://apsw.googlecode.com/files/${name}.zip";
       sha1 = "fa4aec08e59fa5964197f59ba42408d64031675b";
     };
 
-    buildInputs = [ pkgs.sqlite ];
+    buildInputs = with self; [ pkgs.sqlite ];
 
     # python: double free or corruption (fasttop): 0x0000000002fd4660 ***
     doCheck = false;
@@ -419,9 +417,9 @@ let
   apscheduler = buildPythonPackage rec {
     name = "APScheduler-2.1.2";
 
-    propagatedBuildInputs = with pythonPackages; [ futures tzlocal six pytest mock];
+    propagatedBuildInputs = with self; [ futures tzlocal six pytest mock];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/A/APScheduler/APScheduler-2.1.2.tar.gz";
       md5 = "6862959d460c16ef325d63e1fc3a6684";
     };
@@ -437,7 +435,7 @@ let
   area53 = buildPythonPackage (rec {
     name = "Area53-0.94";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/A/Area53/${name}.tar.gz";
       sha256 = "0v9b7f8b6v21y410anx5sr52k2ac8jrzdf19q6m6p0zsdsf9vr42";
     };
@@ -445,7 +443,7 @@ let
     # error: invalid command 'test'
     doCheck = false;
 
-    propagatedBuildInputs = [ pythonPackages.boto ];
+    propagatedBuildInputs = with self; [ self.boto ];
 
   });
 
@@ -453,7 +451,7 @@ let
     name = "arrow-${version}";
     version = "0.4.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/a/arrow/${name}.tar.gz";
       sha256 = "1sdr4gyjgvz86yr0ll0i11mgy8l1slndr7f0ngam87rpy78gp052";
     };
@@ -472,10 +470,10 @@ let
     disabled = isPy3k;
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
-    buildInputs = [ pkgs.zlib ];
+    buildInputs = with self; [ pkgs.zlib ];
     doCheck = false;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/a/async/${name}.tar.gz";
       sha256 = "1lfmjm8apy9qpnpbq8g641fd01qxh9jlya5g2d6z60vf8p04rla1";
     };
@@ -484,7 +482,7 @@ let
   argparse = buildPythonPackage (rec {
     name = "argparse-1.2.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://argparse.googlecode.com/files/${name}.tar.gz";
       sha256 = "192174mys40m0bwk6l5jlfnzps0xi81sxm34cqms6dc3c454pbyx";
     };
@@ -512,8 +510,8 @@ let
 
   astroid = buildPythonPackage (rec {
     name = "astroid-1.2.1";
-    propagatedBuildInputs = [ logilab_common ];
-    src = fetchurl {
+    propagatedBuildInputs = with self; [ logilab_common ];
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/a/astroid/${name}.zip";
       md5 = "337017c82a28c97741797493fb2c980f";
     };
@@ -522,12 +520,12 @@ let
   autopep8 = buildPythonPackage (rec {
     name = "autopep8-1.0.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/a/autopep8/${name}.tar.gz";
       md5 = "7c16d385cf9ad7c1d7fbcfcea2588a56";
     };
 
-    propagatedBuildInputs = [ pep8 ];
+    propagatedBuildInputs = with self; [ pep8 ];
 
     # One test fails:
     # FAIL: test_recursive_should_not_crash_on_unicode_filename (test.test_autopep8.CommandLineTests)
@@ -547,7 +545,7 @@ let
 
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/a/avro/${name}.tar.gz";
       md5 = "7f4893205e5ad69ac86f6b44efb7df72";
     };
@@ -563,7 +561,7 @@ let
 
     disabled = (!isPy3k);
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/a/avro3k/${name}.tar.gz";
       sha256 = "15ahl0irwwj558s964abdxg4vp6iwlabri7klsm2am6q5r0ngsky";
     };
@@ -576,10 +574,10 @@ let
     };
   }));
 
-  backports_ssl_match_hostname_3_4_0_2 = pythonPackages.buildPythonPackage rec {
+  backports_ssl_match_hostname_3_4_0_2 = self.buildPythonPackage rec {
     name = "backports.ssl_match_hostname-3.4.0.2";
 
-    src = fetchurl {
+    src = pkgs.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";
     };
@@ -594,7 +592,7 @@ let
     version = "0.1.9";
     name = "batinfo-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/b/batinfo/${name}.tar.gz";
       sha256 = "0ppzbh8lii16xfq5piczn82hwps1fnbq9rbwwl3rdpdx0n86l560";
     };
@@ -611,12 +609,12 @@ let
   bcdoc = buildPythonPackage rec {
     name = "bcdoc-0.12.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/b/bcdoc/bcdoc-0.12.1.tar.gz";
       md5 = "7c8617347c294ea4d36ec73fb5b2c26e";
     };
 
-    buildInputs = [ pythonPackages.docutils pythonPackages.six ];
+    buildInputs = with self; [ self.docutils self.six ];
 
     meta = {
       homepage = https://github.com/botocore/bcdoc;
@@ -629,7 +627,7 @@ let
     name = "beautifulsoup-3.2.1";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz";
       sha256 = "1nshbcpdn0jpcj51x0spzjp519pkmqz0n0748j7dgpz70zlqbfpm";
     };
@@ -647,7 +645,7 @@ let
   beautifulsoup4 = buildPythonPackage (rec {
     name = "beautifulsoup4-4.1.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/b/beautifulsoup4/${name}.tar.gz";
       md5 = "f1481ed77336de77a2d8e5b061b6ad62";
     };
@@ -669,17 +667,17 @@ let
 
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/B/Beaker/${name}.tar.gz";
       md5 = "c2e102870ed4c53104dec48ceadf8e9d";
     };
 
     buildInputs =
-      [ pythonPackages.sqlalchemy
-        pythonPackages.pycryptopp
-        pythonPackages.nose
-        pythonPackages.mock
-        pythonPackages.webtest
+      [ self.sqlalchemy
+        self.pycryptopp
+        self.nose
+        self.mock
+        self.webtest
       ];
 
     # http://hydra.nixos.org/build/4511591/log/raw
@@ -698,14 +696,14 @@ let
   bedup = buildPythonPackage rec {
     name = "bedup-20140413";
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = "https://github.com/g2p/bedup.git";
       rev = "5189e166145b8954ac41883f81ef3c3b50dc96ab";
       sha256 = "e61768fa19934bd176799f90bda3ea9f49a5def21fa2523a8e47df8a48e730e9";
     };
 
-    buildInputs = [ pkgs.btrfsProgs ];
-    propagatedBuildInputs = with pkgs; [ contextlib2 sqlalchemy9 pyxdg pycparser alembic ]
+    buildInputs = with self; [ pkgs.btrfsProgs ];
+    propagatedBuildInputs = with self; [ contextlib2 sqlalchemy9 pyxdg pycparser alembic ]
       ++ optionals (!isPyPy) [ cffi ];
 
     meta = {
@@ -727,7 +725,7 @@ let
   beets = buildPythonPackage rec {
     name = "beets-1.3.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/b/beets/${name}.tar.gz";
       md5 = "59615a54b3ac3983159e77ff9dda373e";
     };
@@ -736,20 +734,20 @@ let
     preConfigure = "export HOME=$TMPDIR";
 
     propagatedBuildInputs =
-      [ pythonPackages.pyyaml
-        pythonPackages.unidecode
-        pythonPackages.mutagen
-        pythonPackages.munkres
-        pythonPackages.musicbrainzngs
-        pythonPackages.enum34
-        pythonPackages.pylast
-        pythonPackages.rarfile
-        pythonPackages.flask
+      [ self.pyyaml
+        self.unidecode
+        self.mutagen
+        self.munkres
+        self.musicbrainzngs
+        self.enum34
+        self.pylast
+        self.rarfile
+        self.flask
         modules.sqlite3
         modules.readline
       ];
 
-    buildInputs = with pythonPackages; [ mock pyechonest six responses nose ];
+    buildInputs = with self; [ mock pyechonest six responses nose ];
 
     # 10 tests are failing
     doCheck = false;
@@ -765,20 +763,20 @@ let
   circus = buildPythonPackage rec {
     name = "circus-0.11.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/c/circus/${name}.tar.gz";
       md5 = "5c07cdbe9bb4a9b82e52737ad590617b";
     };
 
     doCheck = false; # weird error 
 
-    propagatedBuildInputs = with pythonPackages; [ iowait psutil pyzmq tornado mock ];
+    propagatedBuildInputs = with self; [ iowait psutil pyzmq tornado mock ];
   };
 
   iowait = buildPythonPackage rec {
     name = "iowait-0.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/i/iowait/${name}.tar.gz";
       md5 = "f49ca7766fe4a67e03a731e575614f87";
     };
@@ -789,26 +787,24 @@ let
     };
   };
 
-  responses = pythonPackages.buildPythonPackage rec {
+  responses = self.buildPythonPackage rec {
     name = "responses-0.2.2";
 
-    propagatedBuildInputs = with pythonPackages; [ requests mock six pytest flake8 ];
+    propagatedBuildInputs = with self; [ requests mock six pytest flake8 ];
 
     doCheck = false;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/responses/responses-0.2.2.tar.gz";
       md5 = "5d79fd425cf8d858dfc8afa6475395d3";
     };
 
   };
 
-  rarfile = pythonPackages.buildPythonPackage rec {
+  rarfile = self.buildPythonPackage rec {
     name = "rarfile-2.6";
 
-    propagatedBuildInputs = with pythonPackages; [  ];
-
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/rarfile/rarfile-2.6.tar.gz";
       md5 = "50ce3f3fdb9196a00059a5ea7b3739fd";
     };
@@ -819,12 +815,10 @@ let
     };
   };
 
-  pyechonest = pythonPackages.buildPythonPackage rec {
+  pyechonest = self.buildPythonPackage rec {
     name = "pyechonest-8.0.2";
 
-    propagatedBuildInputs = with pythonPackages; [  ];
-
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pyechonest/pyechonest-8.0.2.tar.gz";
       md5 = "5586fe8ece7af4e24f71ea740185127e";
     };
@@ -839,12 +833,12 @@ let
   bitbucket_api = buildPythonPackage rec {
     name = "bitbucket-api-0.4.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/b/bitbucket-api/${name}.tar.gz";
       md5 = "6f3cee3586c4aad9c0b2e04fce9704fb";
     };
 
-    propagatedBuildInputs = [ requests_oauth2 nose sh ];
+    propagatedBuildInputs = with self; [ requests_oauth2 nose sh ];
 
     doCheck = false;
 
@@ -857,12 +851,12 @@ let
 
   bitbucket-cli = buildPythonPackage rec {
     name = "bitbucket-cli-0.4.1";
-    src = fetchurl {
+    src = pkgs.fetchurl {
        url = "https://pypi.python.org/packages/source/b/bitbucket-cli/${name}.tar.gz";
        md5 = "79cdbdc6c95dfa313d12cbdef406c9f2";
     };
 
-    pythonPath = [ requests ];
+    pythonPath = [ self.requests ];
 
     meta = with stdenv.lib; {
       description = "Bitbucket command line interface";
@@ -875,7 +869,7 @@ let
   bitstring = buildPythonPackage rec {
     name = "bitstring-3.1.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://python-bitstring.googlecode.com/files/${name}.zip";
       sha256 = "1i1p3rkj4ad108f23xyib34r4rcy571gy65paml6fk77knh0k66p";
     };
@@ -897,7 +891,7 @@ let
     name = "blinker-${version}";
     version = "1.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/b/blinker/${name}.tar.gz";
       md5 = "66e9688f2d287593a0e698cd8a5fbc57";
     };
@@ -913,14 +907,14 @@ let
   blockdiag = buildPythonPackage rec {
     name = "blockdiag-1.3.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/b/blockdiag/${name}.tar.gz";
       md5 = "602a8750f312eeee84d6d138055dfae7";
     };
 
-    buildInputs = [ pep8 nose unittest2 docutils ];
+    buildInputs = with self; [ pep8 nose unittest2 docutils ];
 
-    propagatedBuildInputs = [ pillow webcolors funcparserlib ];
+    propagatedBuildInputs = with self; [ pillow webcolors funcparserlib ];
 
     # One test fails:
     #   ...
@@ -939,12 +933,12 @@ let
 
   bpython = buildPythonPackage rec {
      name = "bpython-0.12";
-     src = fetchurl {
+     src = pkgs.fetchurl {
        url = "http://www.bpython-interpreter.org/releases/bpython-0.12.tar.gz";
        sha256 = "1ilf58qq7sazmcgg4f1wswbhcn2gb8qbbrpgm6gf0j2lbm60gabl";
      };
 
-     propagatedBuildInputs = [ modules.curses pygments ];
+     propagatedBuildInputs = with self; [ modules.curses pygments ];
      doCheck = false;
 
      meta = {
@@ -961,7 +955,7 @@ let
     name = "boto-${version}";
     version = "2.32.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/boto/boto/archive/${version}.tar.gz";
       sha256 = "0bl5y7m0m84rz4q7hx783kxpj1n9wcm7dhv54bnx8cnanyd13cxn";
     };
@@ -989,15 +983,15 @@ let
     version = "0.33.0";
     name = "botocore-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/b/botocore/${name}.tar.gz";
       md5 = "6743c73a2e148abaa9c487a6e2ee53a3";
     };
 
     propagatedBuildInputs =
-      [ pythonPackages.dateutil
-        pythonPackages.requests
-        pythonPackages.jmespath
+      [ self.dateutil
+        self.requests
+        self.jmespath
       ];
 
     meta = {
@@ -1014,12 +1008,12 @@ let
     version = "0.12.7";
     name = "bottle-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/b/bottle/${name}.tar.gz";
       sha256 = "0wr0gfz0bqlzhxk691x0xnf80b8v5pnl3jpnbgs1m9bcy28j3sp3";
     };
 
-    propagatedBuildInputs = [ setuptools ];
+    propagatedBuildInputs = with self; [ setuptools ];
 
     meta = with stdenv.lib; {
       homepage = http://bottlepy.org;
@@ -1034,12 +1028,12 @@ let
   # bugz = buildPythonPackage (rec {
   #   name = "bugz-0.9.3";
   #
-  #   src = fetchgit {
+  #   src = pkgs.fetchgit {
   #     url = "https://github.com/williamh/pybugz.git";
   #     rev = "refs/tags/0.9.3";
   #   };
   #
-  #   propagatedBuildInputs = [ pythonPackages.argparse ];
+  #   propagatedBuildInputs = with self; [ self.argparse ];
   #
   #   doCheck = false;
   #
@@ -1050,19 +1044,19 @@ let
   # });
 
 
-  buildout = zc_buildout;
-  buildout152 = zc_buildout152;
+  buildout = self.zc_buildout;
+  buildout152 = self.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_recipe_egg = self.zc_recipe_egg_buildout171;
+  zc_buildout = self.zc_buildout171;
+  zc_buildout2 = self.zc_buildout221;
   zc_buildout221 = buildPythonPackage rec {
     name = "zc.buildout-2.2.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz";
       md5 = "476a06eed08506925c700109119b6e41";
     };
@@ -1080,7 +1074,7 @@ let
 
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz";
       md5 = "8834a21586bf2be53dc412002241a996";
     };
@@ -1098,7 +1092,7 @@ let
 
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz";
       md5 = "87f7b3f8d13926c806242fd5f6fe36f7";
     };
@@ -1121,21 +1115,21 @@ let
     inherit version;
     name = "zc.recipe.egg-${version}";
 
-    buildInputs = [ buildout ];
+    buildInputs = with self; [ buildout ];
     doCheck = false;
 
-    src = fetchurl {
+    src = pkgs.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;
+  zc_recipe_egg_buildout171 = self.zc_recipe_egg_fun {
+    buildout = self.zc_buildout171;
     version = "1.3.2";
     md5 = "1cb6af73f527490dde461d3614a36475";
   };
-  zc_recipe_egg_buildout2 = zc_recipe_egg_fun {
-    buildout = zc_buildout2;
+  zc_recipe_egg_buildout2 = self.zc_recipe_egg_fun {
+    buildout = self.zc_buildout2;
     version = "2.0.1";
     md5 = "5e81e9d4cc6200f5b1abcf7c653dd9e3";
   };
@@ -1144,7 +1138,7 @@ let
     name = "bunch-1.0.1";
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/b/bunch/${name}.tar.gz";
       sha256 = "1akalx2pd1fjlvrq69plvcx783ppslvikqdm93z2sdybq07pmish";
     };
@@ -1155,12 +1149,12 @@ let
   cairocffi = buildPythonPackage rec {
     name = "cairocffi-0.5.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/c/cairocffi/${name}.tar.gz";
       md5 = "e3fa4002583bfaa88b156e1af9c75bde";
     };
 
-    propagatedBuildInputs = [ cffi ];
+    propagatedBuildInputs = with self; [ cffi ];
 
     meta = {
       homepage = https://github.com/SimonSapin/cairocffi;
@@ -1173,16 +1167,16 @@ let
   carrot = buildPythonPackage rec {
     name = "carrot-0.10.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/c/carrot/${name}.tar.gz";
       md5 = "530a0614de3a669314c3acd4995c54d5";
     };
 
-    buildInputs = [ pythonPackages.nose ];
+    buildInputs = with self; [ self.nose ];
 
     propagatedBuildInputs =
-      [ pythonPackages.amqplib
-        pythonPackages.anyjson
+      [ self.amqplib
+        self.anyjson
       ];
 
     doCheck = false; # depends on the network
@@ -1197,7 +1191,7 @@ let
     name = "certifi-${version}";
     version = "14.05.14";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/c/certifi/${name}.tar.gz";
       sha256 = "0s8vxzfz6s4m6fvxc7z25k9j35w0rh6jkw3wwcd1az1mssncn6qy";
     };
@@ -1212,12 +1206,12 @@ let
 
   characteristic = buildPythonPackage rec {
     name = "characteristic-14.1.0";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/c/characteristic/${name}.tar.gz";
       md5 = "68ea7e28997fc57d3631791ec0567a05";
     };
 
-    buildInputs = [ pythonPackages.pytest ];
+    buildInputs = with self; [ self.pytest ];
 
     meta = {
       description = "Python attributes without boilerplate";
@@ -1231,12 +1225,12 @@ let
     name = "cheetah-${version}";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/C/Cheetah/Cheetah-${version}.tar.gz";
       md5 = "853917116e731afbc8c8a43c37e6ddba";
     };
 
-    propagatedBuildInputs = [ pythonPackages.markdown ];
+    propagatedBuildInputs = with self; [ self.markdown ];
 
     meta = {
       homepage = http://www.cheetahtemplate.org/;
@@ -1249,7 +1243,7 @@ let
     name = "cherrypy-${version}";
     version = "3.2.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://download.cherrypy.org/cherrypy/${version}/CherryPy-${version}.tar.gz";
       sha256 = "14dn129h69wj0h8yr0bjwbrk8kygl6mkfnxc5m3fxhlm4xb8hnnw";
     };
@@ -1266,7 +1260,7 @@ let
 
   click = buildPythonPackage {
     name = "click-2.1";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/c/click/click-2.1.tar.gz;
       md5 = "0ba97ba09af82c56e2d35f3412d0aa6e";
     };
@@ -1281,12 +1275,12 @@ let
   clepy = buildPythonPackage rec {
     name = "clepy-0.3.20";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/c/clepy/${name}.tar.gz";
       sha256 = "16vibfxms5z4ld8gbkra6dkhqm2cc3jnn0fwp7mw70nlwxnmm51c";
     };
 
-    buildInputs = [ pythonPackages.mock pythonPackages.nose pythonPackages.decorator ];
+    buildInputs = with self; [ self.mock self.nose self.decorator ];
 
     meta = {
       homepage = http://code.google.com/p/clepy/;
@@ -1299,7 +1293,7 @@ let
     name = "clientform-0.2.10";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/C/ClientForm/ClientForm-0.2.10.tar.gz";
       sha256 = "0dydh3i1sx7rrj6d0gj375wkjpiivm7jjlsimw6hmwv4ck7yf1wm";
     };
@@ -1318,7 +1312,7 @@ let
     version = "2.3";
     name    = "cogapp-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/c/cogapp/${name}.tar.gz";
       sha256 = "0gzmzbsk54r1qa6wd0yg4zzdxvn2f19ciprr2acldxaknzrpllnn";
     };
@@ -1339,12 +1333,12 @@ let
   colorama = buildPythonPackage rec {
     name = "colorama-0.2.5";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/c/colorama/colorama-0.2.5.tar.gz";
       md5 = "308c6e38917bdbfc4d3b0783c614897d";
     };
 
-    propagatedBuildInputs = [ pythonPackages.clientform ];
+    propagatedBuildInputs = with self; [ self.clientform ];
 
     doCheck = false;
 
@@ -1359,18 +1353,18 @@ let
   coilmq = buildPythonPackage (rec {
     name = "coilmq-0.6.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/C/CoilMQ/CoilMQ-0.6.1.tar.gz";
       md5 = "5f39727415b837abd02651eeb2721749";
     };
 
-    propagatedBuildInputs = [ pythonPackages.stompclient ];
+    propagatedBuildInputs = with self; [ self.stompclient ];
 
     preConfigure = ''
       sed -i '/distribute/d' setup.py
     '';
 
-    buildInputs = [ pythonPackages.coverage pythonPackages.sqlalchemy ];
+    buildInputs = with self; [ self.coverage self.sqlalchemy ];
 
     # ValueError: Could not parse auth file:
     # /tmp/nix-build-.../CoilMQ-0.6.1/coilmq/tests/resources/auth.ini
@@ -1387,12 +1381,12 @@ let
   colander = buildPythonPackage rec {
     name = "colander-1.0b1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/c/colander/${name}.tar.gz";
       md5 = "89f2cf4b5c87d43f7917d6a0d4872e6a";
     };
 
-    propagatedBuildInputs = [ pythonPackages.translationstring ];
+    propagatedBuildInputs = with self; [ self.translationstring ];
 
     meta = {
       maintainers = [
@@ -1407,13 +1401,13 @@ let
   ColanderAlchemy = buildPythonPackage rec {
     name = "ColanderAlchemy-0.2.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/C/ColanderAlchemy/${name}.tar.gz";
       md5 = "b054837bd2753cbf15f7d5028cba421b";
     };
 
-    buildInputs = [ unittest2 ];
-    propagatedBuildInputs = [ colander sqlalchemy9 ];
+    buildInputs = with self; [ unittest2 ];
+    propagatedBuildInputs = with self; [ colander sqlalchemy9 ];
 
     # string: argument name cannot be overridden via info kwarg.
     doCheck = false;
@@ -1429,7 +1423,7 @@ let
   configobj = buildPythonPackage (rec {
     name = "configobj-5.0.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/c/configobj/${name}.tar.gz";
       md5 = "e472a3a1c2a67bb0ec9b5d54c13a47d6";
     };
@@ -1437,7 +1431,7 @@ let
     # error: invalid command 'test'
     doCheck = false;
 
-    propagatedBuildInputs = [ six ];
+    propagatedBuildInputs = with self; [ six ];
 
     meta = {
       description = "Config file reading, writing and validation.";
@@ -1452,12 +1446,12 @@ let
     version = "1.1.fb10";
     name = "configshell-fb-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/agrover/configshell-fb/archive/v${version}.tar.gz";
       sha256 = "1dd87xvm98nk3jzybb041gjdahi2z9b53pwqhyxcfj4a91y82ndy";
     };
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       pyparsing
       modules.readline
       urwid
@@ -1474,12 +1468,12 @@ let
   construct = buildPythonPackage rec {
     name = "construct-2.5.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/c/construct/${name}.tar.gz";
       sha256 = "08qksl87vr6g2wjxwsyrjh4w6v8bfmcgrcgln7irqvw5vv7qgqss";
     };
 
-    propagatedBuildInputs = [ six ];
+    propagatedBuildInputs = with self; [ six ];
 
     meta = with stdenv.lib; {
       description = "Powerful declarative parser (and builder) for binary data";
@@ -1494,7 +1488,7 @@ let
   contextlib2 = buildPythonPackage rec {
     name = "contextlib2-0.4.0";
 
-    src = fetchurl rec {
+    src = pkgs.fetchurl rec {
       url = "https://pypi.python.org/packages/source/c/contextlib2/${name}.tar.gz";
       md5 = "ea687207db25f65552061db4a2c6727d";
     };
@@ -1503,7 +1497,7 @@ let
   coverage = buildPythonPackage rec {
     name = "coverage-3.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/c/coverage/${name}.tar.gz";
       md5 = "67d4e393f4c6a5ffc18605409d2aa1ac";
     };
@@ -1517,27 +1511,27 @@ let
 
   covCore = buildPythonPackage rec {
     name = "cov-core-1.7";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/c/cov-core/cov-core-1.7.tar.gz";
       md5 = "59c1e22e636633e10120beacbf45b28c";
     };
     meta = {
       description = "plugin core for use by pytest-cov, nose-cov and nose2-cov";
     };
-    propagatedBuildInputs = [ pythonPackages.coverage ];
+    propagatedBuildInputs = with self; [ self.coverage ];
   };
 
   cython = buildPythonPackage rec {
     name = "Cython-0.20.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://www.cython.org/release/${name}.tar.gz";
       sha256 = "0v3nc9z5ynnnjdgcgkyy5g9wazmkjv53nnpjal1v3mr199s6799i";
     };
 
     setupPyBuildFlags = ["--build-base=$out"];
 
-    buildInputs = [ pkgs.pkgconfig ];
+    buildInputs = with self; [ pkgs.pkgconfig ];
 
     meta = {
       description = "An interpreter to help writing C extensions for Python 2";
@@ -1548,10 +1542,10 @@ let
   cryptacular = buildPythonPackage rec {
     name = "cryptacular-1.4.1";
 
-    buildInputs = [ coverage nose ];
-    propagatedBuildInputs = [ pbkdf2 modules.crypt ];
+    buildInputs = with self; [ coverage nose ];
+    propagatedBuildInputs = with self; [ pbkdf2 modules.crypt ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/c/cryptacular/${name}.tar.gz";
       md5 = "fe12232ac660185186dd8057d8ca7b0e";
     };
@@ -1564,12 +1558,12 @@ let
     };
   };
 
-  detox = pythonPackages.buildPythonPackage rec {
+  detox = self.buildPythonPackage rec {
     name = "detox-0.9.3";
 
-    propagatedBuildInputs = with pythonPackages; [ tox py eventlet ];
+    propagatedBuildInputs = with self; [ tox py eventlet ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/detox/detox-0.9.3.tar.gz";
       md5 = "b52588ec61cd4c2d33e419677a5eac8c";
     };
@@ -1584,7 +1578,7 @@ let
   pbkdf2 = buildPythonPackage rec {
     name = "pbkdf2-1.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pbkdf2/${name}.tar.gz";
       md5 = "40cda566f61420490206597243dd869f";
     };
@@ -1600,12 +1594,12 @@ let
   bcrypt = buildPythonPackage rec {
     name = "bcrypt-1.0.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/b/bcrypt/${name}.tar.gz";
       md5 = "c5df008669d17dd6eeb5e2042d5e136f";
     };
 
-    buildInputs = [ pycparser mock pytest py ] ++ optionals (!isPyPy) [ cffi ];
+    buildInputs = with self; [ pycparser mock pytest py ] ++ optionals (!isPyPy) [ cffi ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -1615,12 +1609,12 @@ let
   cffi = buildPythonPackage rec {
     name = "cffi-0.7.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/c/cffi/${name}.tar.gz";
       md5 = "d329f5cb2053fd31dafc02e2c9ef0299";
     };
 
-    propagatedBuildInputs = [ pkgs.libffi pycparser ];
+    propagatedBuildInputs = with self; [ pkgs.libffi pycparser ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -1630,13 +1624,13 @@ let
   pycollada = buildPythonPackage rec {
     name = "pycollada-0.4";
 
-    src = fetchurl {
+    src = pkgs.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 ];
+    buildInputs = with self; [ dateutil_1_5 numpy ];
 
     # Some tests fail because they refer to test data files that don't exist
     # (upstream packaging issue)
@@ -1654,7 +1648,7 @@ let
   pycparser = buildPythonPackage rec {
     name = "pycparser-2.10";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pycparser/${name}.tar.gz";
       md5 = "d87aed98c8a9f386aa56d365fe4d515f";
     };
@@ -1670,7 +1664,7 @@ let
   pytest = buildPythonPackage rec {
     name = "pytest-2.6.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pytest/${name}.tar.gz";
       md5 = "0a1735fb1d481ef3864f34678607ba85";
     };
@@ -1680,11 +1674,11 @@ let
       rm testing/test_argcomplete.py
     '';
 
-    propagatedBuildInputs = [ py ]
+    propagatedBuildInputs = with self; [ py ]
       ++ (optional isPy26 argparse)
       ++ stdenv.lib.optional
         pkgs.config.pythonPackages.pytest.selenium or false
-        pythonPackages.selenium;
+        self.selenium;
 
     meta = with stdenv.lib; {
       maintainers = with maintainers; [ iElectric lovek323 madjar ];
@@ -1695,13 +1689,13 @@ let
   pytest_xdist = buildPythonPackage rec {
     name = "pytest-xdist-1.8";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pytest-xdist/pytest-xdist-1.8.zip";
       md5 = "9c0b8efe9d43b460f8cf049fa46ce14d";
     };
 
-    buildInputs = [ pytest ];
-    propagatedBuildInputs = [ execnet ];
+    buildInputs = with self; [ pytest ];
+    propagatedBuildInputs = with self; [ execnet ];
 
     meta = {
       description = "py.test xdist plugin for distributed testing and loop-on-failing modes";
@@ -1711,7 +1705,7 @@ let
 
   cssselect = buildPythonPackage rec {
     name = "cssselect-0.7.1";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/c/cssselect/cssselect-0.7.1.tar.gz";
       md5 = "c6c5e9a2e7ca226ce03f6f67a771379c";
     };
@@ -1722,12 +1716,12 @@ let
   cssutils = buildPythonPackage (rec {
     name = "cssutils-0.9.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = http://pypi.python.org/packages/source/c/cssutils/cssutils-0.9.9.zip;
       sha256 = "139yfm9yz9k33kgqw4khsljs10rkhhxyywbq9i82bh2r31cil1pp";
     };
 
-    buildInputs = [ pythonPackages.mock ];
+    buildInputs = with self; [ self.mock ];
 
     # couple of failing tests
     doCheck = false;
@@ -1745,12 +1739,12 @@ let
     name = "darcsver-1.7.4";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/d/darcsver/${name}.tar.gz";
       sha256 = "1yb1c3jxqvy4r3qiwvnb86qi5plw6018h15r3yk5ji3nk54qdcb6";
     };
 
-    buildInputs = [ pythonPackages.mock ];
+    buildInputs = with self; [ self.mock ];
 
     # Note: We don't actually need to provide Darcs as a build input.
     # Darcsver will DTRT when Darcs isn't available.  See news.gmane.org
@@ -1773,12 +1767,12 @@ let
   dateutil = buildPythonPackage (rec {
     name = "dateutil-2.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/python-dateutil/python-${name}.tar.gz";
       sha256 = "0s74ad6r789810s10dxgvaf48ni6adac2icrdad34zxygqq6bj7f";
     };
 
-    propagatedBuildInputs = [ pythonPackages.six ];
+    propagatedBuildInputs = with self; [ self.six ];
 
     meta = {
       description = "Powerful extensions to the standard datetime module";
@@ -1791,12 +1785,12 @@ let
   dateutil_1_5 = buildPythonPackage (rec {
     name = "dateutil-1.5";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/python-dateutil/python-${name}.tar.gz";
       sha256 = "02dhw57jf5kjcp7ng1if7vdrbnlpb9yjmz7wygwwvf3gni4766bg";
     };
 
-    propagatedBuildInputs = [ pythonPackages.six ];
+    propagatedBuildInputs = with self; [ self.six ];
 
     meta = {
       description = "Powerful extensions to the standard datetime module";
@@ -1809,7 +1803,7 @@ let
   decorator = buildPythonPackage rec {
     name = "decorator-3.4.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/d/decorator/${name}.tar.gz";
       md5 = "1e8756f719d746e2fc0dd28b41251356";
     };
@@ -1823,22 +1817,22 @@ let
   deform = buildPythonPackage rec {
     name = "deform-0.9.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/d/deform/${name}.tar.gz";
       sha256 = "0ympsjhxz5v8h4hi1mv811h064221bh26d68l9hv1x6m7sxbxpd0";
     };
 
-    buildInputs = [] ++ optional isPy26 unittest2;
+    buildInputs = with self; [] ++ optional isPy26 unittest2;
 
     propagatedBuildInputs =
-      [ pythonPackages.beautifulsoup4
-        pythonPackages.peppercorn
-        pythonPackages.colander
-        pythonPackages.translationstring
-        pythonPackages.chameleon
-        pythonPackages.zope_deprecation
-        pythonPackages.coverage
-        pythonPackages.nose
+      [ self.beautifulsoup4
+        self.peppercorn
+        self.colander
+        self.translationstring
+        self.chameleon
+        self.zope_deprecation
+        self.coverage
+        self.nose
       ];
 
     meta = {
@@ -1853,22 +1847,22 @@ let
   deform2 = buildPythonPackage rec {
     name = "deform-2.0a2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/d/deform/${name}.tar.gz";
       sha256 = "1gfaf1d8zp0mp4h229srlffxdp86w1nni9g4aqsshxysr23x591z";
     };
 
-    buildInputs = [] ++ optional isPy26 unittest2;
+    buildInputs = with self; [] ++ optional isPy26 unittest2;
 
     propagatedBuildInputs =
-      [ pythonPackages.beautifulsoup4
-        pythonPackages.peppercorn
-        pythonPackages.colander
-        pythonPackages.translationstring
-        pythonPackages.chameleon
-        pythonPackages.zope_deprecation
-        pythonPackages.coverage
-        pythonPackages.nose
+      [ self.beautifulsoup4
+        self.peppercorn
+        self.colander
+        self.translationstring
+        self.chameleon
+        self.zope_deprecation
+        self.coverage
+        self.nose
       ];
 
     meta = {
@@ -1884,12 +1878,12 @@ let
   deform_bootstrap = buildPythonPackage rec {
     name = "deform_bootstrap-0.2.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/d/deform_bootstrap/${name}.tar.gz";
       sha256 = "1hgq3vqsfqdmlyahnlc40w13viawhpzqf4jzigsggdb41x545fda";
     };
 
-    propagatedBuildInputs = [ deform ];
+    propagatedBuildInputs = with self; [ deform ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -1901,7 +1895,7 @@ let
   demjson = buildPythonPackage rec {
     name = "demjson-1.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/demjson/${name}.tar.gz";
       sha256 = "0abf7wqqq7rk1sycy47ayn5p93yy7gjq50cb2z69wmik1qqrr60x";
     };
@@ -1922,12 +1916,12 @@ let
     };
   };
 
-  derpconf = pythonPackages.buildPythonPackage rec {
+  derpconf = self.buildPythonPackage rec {
     name = "derpconf-0.4.9";
 
-    propagatedBuildInputs = [ six ];
+    propagatedBuildInputs = with self; [ six ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/derpconf/${name}.tar.gz";
       md5 = "a164807d7bf0c4adf1de781305f29b82";
     };
@@ -1942,12 +1936,12 @@ let
   docker = buildPythonPackage rec {
     name = "docker-py-0.4.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/docker-py/${name}.tar.gz";
       md5 = "21ab8fd729105487e6423b654d6c0860";
     };
 
-    propagatedBuildInputs = [ six requests websocket_client ];
+    propagatedBuildInputs = with self; [ six requests websocket_client ];
 
     # Version conflict
     doCheck = false;
@@ -1963,9 +1957,9 @@ let
   dogpile_cache = buildPythonPackage rec {
     name = "dogpile.cache-0.5.4";
 
-    propagatedBuildInputs = [ dogpile_core ];
+    propagatedBuildInputs = with self; [ dogpile_core ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/dogpile.cache/dogpile.cache-0.5.4.tar.gz";
       md5 = "513b77ba1bd0c31bb15dd9dd0d8471af";
     };
@@ -1982,7 +1976,7 @@ let
   dogpile_core = buildPythonPackage rec {
     name = "dogpile.core-0.4.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/dogpile.core/dogpile.core-0.4.1.tar.gz";
       md5 = "01cb19f52bba3e95c9b560f39341f045";
     };
@@ -1999,7 +1993,7 @@ let
   dotfiles = buildPythonPackage rec {
     name = "dotfiles-0.6.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/dotfiles/${name}.tar.gz";
       md5 = "95a0792eb92a8fc0db8a7e59389470fe";
     };
@@ -2017,7 +2011,7 @@ let
     name = "dpkt-1.8";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://dpkt.googlecode.com/files/${name}.tar.gz";
       sha256 = "01q5prynymaqyfsfi2296xncicdpid2hs3yyasim8iigvkwy4vf5";
     };
@@ -2037,7 +2031,7 @@ let
   urllib3 = buildPythonPackage rec {
     name = "urllib3-1.8";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/u/urllib3/${name}.tar.gz";
       sha256 = "0pdigfxkq8mhzxxsn6isx8c4h9azqywr1k18yanwyxyj8cdzm28s";
     };
@@ -2050,7 +2044,7 @@ let
       nosetests --cover-min-percentage 70
     '';
 
-    buildInputs = [ coverage tornado mock nose ];
+    buildInputs = with self; [ coverage tornado mock nose ];
 
     meta = with stdenv.lib; {
       description = "A Python library for Dropbox's HTTP-based Core and Datastore APIs";
@@ -2064,12 +2058,12 @@ let
     name = "dropbox-2.0.0";
     doCheck = !isPy3k; # failures with hash randomization
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/dropbox/${name}.zip";
       sha256 = "1bi2z1lql6ryylfflmizhqn98ab55777vn7n5krhqz40pdcjilkx";
     };
 
-    propagatedBuildInputs = [ urllib3 mock setuptools ];
+    propagatedBuildInputs = with self; [ urllib3 mock setuptools ];
 
     meta = with stdenv.lib; {
       description = "A Python library for Dropbox's HTTP-based Core and Datastore APIs";
@@ -2084,12 +2078,12 @@ let
     name = "evdev-${version}";
     disabled = isPy34;  # see http://bugs.python.org/issue21121
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/e/evdev/${name}.tar.gz";
       sha256 = "0w8ib3ab4mpfc1rvd335l8xkd41qbh3iyb0vfiiapgcfvqk74aq7";
     };
 
-    buildInputs = [ pkgs.linuxHeaders ];
+    buildInputs = with self; [ pkgs.linuxHeaders ];
 
     patchPhase = "sed -e 's#/usr/include/linux/input.h#${pkgs.linuxHeaders}/include/linux/input.h#' -i setup.py";
 
@@ -2110,12 +2104,12 @@ let
     name    = "eyeD3-${version}";
     disabled = isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://eyed3.nicfit.net/releases/${name}.tgz";
       sha256 = "001hzgqqnf2ig432mq78jsxidpky2rl2ilm28xwjp32vzphycf51";
     };
 
-    buildInputs = [ paver ];
+    buildInputs = with self; [ paver ];
 
     postInstall = ''
       for prog in "$out/bin/"*; do
@@ -2143,7 +2137,7 @@ let
   execnet = buildPythonPackage rec {
     name = "execnet-1.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/e/execnet/${name}.zip";
       md5 = "be885ccd9612966bb81839670d2da099";
     };
@@ -2161,7 +2155,7 @@ let
 
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/f/facebook-sdk/facebook-sdk-0.4.0.tar.gz";
       md5 = "ac9f38e197e54b8ba9f3a61988cc33b7";
     };
@@ -2176,11 +2170,11 @@ let
   faker = buildPythonPackage rec {
     name = "faker-0.0.4";
     disabled = isPy3k;
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/F/Faker/Faker-0.0.4.tar.gz;
       sha256 = "09q5jna3j8di0gw5yjx0dvlndkrk2x9vvqzwyfsvg3nlp8h38js1";
     };
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
     meta = with stdenv.lib; {
       description = "A Python library for generating fake user data.";
       homepage    = http://pypi.python.org/pypi/Faker;
@@ -2192,7 +2186,7 @@ let
 
   fake_factory = buildPythonPackage rec {
     name = "fake-factory-0.2";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/f/fake-factory/fake-factory-0.2.tar.gz;
       sha256 = "0qdmk8p4anrj9mf95dh9v7bkhv1pz69hvhlw380kj4iz7b44b6zn";
     };
@@ -2208,26 +2202,26 @@ let
   fabric = buildPythonPackage rec {
     name = "fabric-${version}";
     version = "1.9.1";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/F/Fabric/Fabric-${version}.tar.gz";
       sha256 = "103mzf0l15kyvw5nmf7bsdrqg6y3wpyxmkyl2h9lk7jxb5gdc9s1";
     };
     disabled = isPy3k;
     doCheck = (!isPyPy);  # https://github.com/fabric/fabric/issues/11891
-    propagatedBuildInputs = [ paramiko pycrypto ];
-    buildInputs = [ fudge nose ];
+    propagatedBuildInputs = with self; [ paramiko pycrypto ];
+    buildInputs = with self; [ fudge nose ];
   };
 
   fedora_cert = stdenv.mkDerivation (rec {
     name = "fedora-cert-0.5.9.2";
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
-    src = fetchurl {
+    src = pkgs.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 ];
+    propagatedBuildInputs = with self; [ python python_fedora wrapPython ];
     postInstall = "mv $out/bin/fedpkg $out/bin/fedora-cert-fedpkg";
     doCheck = false;
 
@@ -2238,30 +2232,30 @@ let
     name = "fedpkg-1.14";
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
-    src = fetchurl {
+    src = pkgs.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 ];
+    propagatedBuildInputs = with self; [ rpkg offtrac urlgrabber fedora_cert ];
   });
 
   fudge = buildPythonPackage rec {
     name = "fudge-0.9.4";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/f/fudge/fudge-0.9.4.tar.gz;
       sha256 = "03sj2x6mpzm48swpa4hnn1gi6yilgniyjfg1ylz95wm1ijggi33w";
     };
-    buildInputs = [ nose nosejs ];
-    propagatedBuildInputs = [ sphinx ];
+    buildInputs = with self; [ nose nosejs ];
+    propagatedBuildInputs = with self; [ sphinx ];
   };
 
 
   funcparserlib = buildPythonPackage rec {
     name = "funcparserlib-0.3.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/f/funcparserlib/${name}.tar.gz";
       md5 = "3aba546bdad5d0826596910551ce37c0";
     };
@@ -2277,9 +2271,9 @@ let
   singledispatch = buildPythonPackage rec {
     name = "singledispatch-3.4.0.3";
 
-    propagatedBuildInputs = [ six ];
+    propagatedBuildInputs = with self; [ six ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/s/singledispatch/${name}.tar.gz";
       md5 = "af2fc6a3d6cc5a02d0bf54d909785fcb";
     };
@@ -2293,7 +2287,7 @@ let
     name = "gcutil-1.15.0";
     meta.maintainers = [ stdenv.lib.maintainers.phreedom ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://dl.google.com/dl/cloudsdk/release/artifacts/gcutil-1.15.0.tar.gz;
       sha256 = "12c98ivhjr01iz6lkga574xm8p0bsil6arydvpblyw8sjkgim5sq";
     };
@@ -2302,7 +2296,7 @@ let
       substituteInPlace setup.py --replace "httplib2==0.8" "httplib2"
     '';
 
-    propagatedBuildInputs = [ gflags iso8601_0_1_4 ipaddr httplib2 google_apputils google_api_python_client ];
+    propagatedBuildInputs = with self; [ gflags iso8601_0_1_4 ipaddr httplib2 google_apputils google_api_python_client ];
   };
 
   gitdb = buildPythonPackage rec {
@@ -2310,25 +2304,25 @@ let
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
     doCheck = false;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/g/gitdb/${name}.tar.gz";
       sha256 = "10rpmmlln59aq44cd5vkb77hslak5pa1rbmigg6ski5f1nn2spfy";
     };
 
-    propagatedBuildInputs = [ smmap async ];
+    propagatedBuildInputs = with self; [ smmap async ];
   };
 
   GitPython = buildPythonPackage rec {
     name = "GitPython-0.3.2";
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/G/GitPython/GitPython-0.3.2.RC1.tar.gz";
       sha256 = "1q4lc2ps12l517mmrxc8iq6gxyhj6d77bnk1p7mxf38d99l8crzx";
     };
 
-    buildInputs = [ nose ];
-    propagatedBuildInputs = [ gitdb ];
+    buildInputs = with self; [ nose ];
+    propagatedBuildInputs = with self; [ gitdb ];
   };
 
   googlecl = buildPythonPackage rec {
@@ -2336,7 +2330,7 @@ let
     name    = "googlecl-${version}";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://googlecl.googlecode.com/files/${name}.tar.gz";
       sha256 = "0nnf7xkr780wivr5xnchfcrahlzy9bi2dxcs1w1bh1014jql0iha";
     };
@@ -2349,7 +2343,7 @@ let
       platforms   = platforms.unix;
     };
 
-    propagatedBuildInputs = [ gdata ];
+    propagatedBuildInputs = with self; [ gdata ];
   };
 
   gtimelog = buildPythonPackage rec {
@@ -2358,7 +2352,7 @@ let
 
     disabled = isPy26;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/gtimelog/gtimelog/archive/${version}.tar.gz";
       sha256 = "0qk8fv8cszzqpdi3wl9vvkym1jil502ycn6sic4jrxckw5s9jsfj";
     };
@@ -2369,7 +2363,7 @@ let
     '';
 
     # TODO: AppIndicator
-    propagatedBuildInputs = [ pkgs.gobjectIntrospection pygobject3 pkgs.makeWrapper pkgs.gtk3 ];
+    propagatedBuildInputs = with self; [ pkgs.gobjectIntrospection pygobject3 pkgs.makeWrapper pkgs.gtk3 ];
 
     checkPhase = ''
       substituteInPlace runtests --replace "/usr/bin/env python" "${python}/bin/${python.executable}"
@@ -2395,7 +2389,7 @@ let
   itsdangerous = buildPythonPackage rec {
     name = "itsdangerous-0.24";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/i/itsdangerous/${name}.tar.gz";
       sha256 = "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb";
     };
@@ -2411,12 +2405,12 @@ let
 
     disabled = isPyPy; # doesn't find setuptools
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/dbohdan/jsonwatch/archive/v0.2.0.tar.gz";
       sha256 = "04b616ef97b9d8c3887004995420e52b72a4e0480a92dbf60aa6c50317261e06";
     };
 
-    propagatedBuildInputs = [ six ];
+    propagatedBuildInputs = with self; [ six ];
 
     meta = {
       description = "Like watch -d but for JSON";
@@ -2437,18 +2431,18 @@ let
   logilab_astng = buildPythonPackage rec {
     name = "logilab-astng-0.24.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://download.logilab.org/pub/astng/${name}.tar.gz";
       sha256 = "0np4wpxyha7013vkkrdy54dvnil67gzi871lg60z8lap0l5h67wn";
     };
 
-    propagatedBuildInputs = [ logilab_common ];
+    propagatedBuildInputs = with self; [ logilab_common ];
   };
 
 
   logster = buildPythonPackage {
     name = "logster-7475c53822";
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = git://github.com/etsy/logster;
       rev = "7475c53822";
       sha256 = "1ls007qmziwb50c5iikxhqin0xbn673gbd25m5k09861435cknvr";
@@ -2460,14 +2454,14 @@ let
     version = "1.2.2";
     name    = "Paver-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/P/Paver/Paver-${version}.tar.gz";
       sha256 = "0lix9d33ndb3yk56sm1zlj80fbmxp0w60yk0d9pr2xqxiwi88sqy";
     };
 
-    buildInputs = [ cogapp mock virtualenv ];
+    buildInputs = with self; [ cogapp mock virtualenv ];
 
-    propagatedBuildInputs = [ nose ];
+    propagatedBuildInputs = with self; [ nose ];
 
     # the tests do not pass
     doCheck = false;
@@ -2484,7 +2478,7 @@ let
   peppercorn = buildPythonPackage rec {
     name = "peppercorn-0.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/peppercorn/${name}.tar.gz";
       md5 = "464d6f2342eaf704dfb52046c1f5c320";
     };
@@ -2501,12 +2495,12 @@ let
   pew = buildPythonPackage rec {
     name = "pew-0.1.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pew/${name}.tar.gz";
       md5 = "90a82400074b50a9e73c3045ed9ac217";
     };
 
-    propagatedBuildInputs = [ virtualenv virtualenv-clone ];
+    propagatedBuildInputs = with self; [ virtualenv virtualenv-clone ];
 
     meta = with stdenv.lib; {
       description = "Tools to manage multiple virtualenvs written in pure python, a virtualenvwrapper rewrite";
@@ -2519,12 +2513,12 @@ let
   pudb = buildPythonPackage rec {
     name = "pudb-2013.3.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pudb/${name}.tar.gz";
       md5 = "063030763bf914166a0b2bc8c011143b";
     };
 
-    propagatedBuildInputs = [ pythonPackages.pygments pythonPackages.urwid ];
+    propagatedBuildInputs = with self; [ self.pygments self.urwid ];
 
     meta = with stdenv.lib; {
       description = "A full-screen, console-based Python debugger";
@@ -2537,7 +2531,7 @@ let
   pyramid = buildPythonPackage rec {
     name = "pyramid-1.5.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid/${name}.tar.gz";
       md5 = "8a1ab3b773d8e22437828f7df22852c1";
     };
@@ -2547,7 +2541,7 @@ let
       rm pyramid/tests/test_response.py
     '';
 
-    buildInputs = [
+    buildInputs = with self; [
       docutils
       virtualenv
       webtest
@@ -2555,7 +2549,7 @@ let
       zope_interface
     ] ++ optional isPy26 unittest2;
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       paste_deploy
       repoze_lru
       repoze_sphinx_autointerface
@@ -2579,12 +2573,12 @@ let
   pyramid_beaker = buildPythonPackage rec {
     name = "pyramid_beaker-0.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_beaker/${name}.tar.gz";
       md5 = "acb863517a98b90b5f29648ce55dd563";
     };
 
-    propagatedBuildInputs = [ beaker pyramid ];
+    propagatedBuildInputs = with self; [ beaker pyramid ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -2601,7 +2595,7 @@ let
       md5 = "5bb5938356dfd13fce06e095f132e137";
     };
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       chameleon
       pyramid
       zope_interface
@@ -2617,13 +2611,13 @@ let
   pyramid_jinja2 = buildPythonPackage rec {
     name = "pyramid_jinja2-1.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_jinja2/${name}.zip";
       md5 = "a6728117cad24749ddb39d2827cd9033";
     };
 
-    buildInputs = [ webtest ];
-    propagatedBuildInputs = [ jinja2 pyramid ];
+    buildInputs = with self; [ webtest ];
+    propagatedBuildInputs = with self; [ jinja2 pyramid ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -2635,38 +2629,38 @@ let
   pyramid_debugtoolbar = buildPythonPackage rec {
     name = "pyramid_debugtoolbar-1.0.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_debugtoolbar/${name}.tar.gz";
       sha256 = "1vnzg1qnnyisv7znxg7pasayfyr3nz7rrs5nqr4fmdgwj9q2pyv0";
     };
 
-    buildInputs = [ ];
-    propagatedBuildInputs = [ pyramid pyramid_mako ];
+    buildInputs = with self; [ ];
+    propagatedBuildInputs = with self; [ pyramid pyramid_mako ];
   };
 
 
   pyramid_mako = buildPythonPackage rec {
     name = "pyramid_mako-0.3.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_mako/${name}.tar.gz";
       sha256 = "00811djmsc4rz20kpy2paam05fbx6dmrv2i5jf90f6xp6zw4isy6";
     };
 
-    buildInputs = [ webtest ];
-    propagatedBuildInputs = [ pyramid Mako ];
+    buildInputs = with self; [ webtest ];
+    propagatedBuildInputs = with self; [ pyramid Mako ];
   };
 
 
   pyramid_exclog = buildPythonPackage rec {
     name = "pyramid_exclog-0.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_exclog/${name}.tar.gz";
       md5 = "05df86758b0d30ee6f8339ff36cef7a0";
     };
 
-    propagatedBuildInputs = [ pyramid ];
+    propagatedBuildInputs = with self; [ pyramid ];
 
     meta = {
       maintainers = [
@@ -2681,7 +2675,7 @@ let
   pyramid_tm = buildPythonPackage rec {
     name = "pyramid_tm-0.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_tm/${name}.tar.gz";
       md5 = "6dc917d262c69366630c542bd21859a3";
     };
@@ -2689,7 +2683,7 @@ let
     # tests are failing in version 0.7 but are fixed in trunk
     doCheck = false;
 
-    propagatedBuildInputs = [ transaction pyramid ];
+    propagatedBuildInputs = with self; [ transaction pyramid ];
     meta = {
       maintainers = [
         stdenv.lib.maintainers.garbas
@@ -2705,12 +2699,12 @@ let
     name = "pyramid_multiauth-${version}";
     version = "0.3.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pyramid_multiauth/${name}.tar.gz";
       md5 = "044e423abc4fb76937ac0c21c1205e9c";
     };
 
-    propagatedBuildInputs = [ pyramid ];
+    propagatedBuildInputs = with self; [ pyramid ];
 
     meta = with stdenv.lib; {
       description = "Authentication policy for Pyramid that proxies to a stack of other authentication policies";
@@ -2723,12 +2717,12 @@ let
     namePrefix = "";
     version = "0.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/R/Radicale/Radicale-${version}.tar.gz";
       sha256 = "77bf813fd26f0d359c1a7b7bcce9b842b4503c5516989a4a0a4f648e299e41f7";
     };
 
-    propagatedBuildInputs = with pythonPackages; [
+    propagatedBuildInputs = with self; [
       flup
       ldap
       sqlalchemy
@@ -2754,7 +2748,7 @@ let
   raven = buildPythonPackage rec {
     name = "raven-3.4.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/raven/${name}.tar.gz";
       md5 = "6a9264133bf646149ffb9118d81445be";
     };
@@ -2772,12 +2766,12 @@ let
   hypatia = buildPythonPackage rec {
     name = "hypatia-0.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/h/hypatia/${name}.tar.gz";
       md5 = "d74c6dda31ff459a39fa5da9e98f2425";
     };
 
-    buildInputs = [ zope_interface zodb ];
+    buildInputs = with self; [ zope_interface zodb ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -2788,12 +2782,12 @@ let
   zope_copy = buildPythonPackage rec {
     name = "zope.copy-4.0.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.copy/${name}.zip";
       md5 = "36aa2c96dec4cfeea57f54da2b733eb9";
     };
 
-    buildInputs = [ zope_interface zope_location zope_schema ];
+    buildInputs = with self; [ zope_interface zope_location zope_schema ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -2804,12 +2798,12 @@ let
   statsd = buildPythonPackage rec {
     name = "statsd-2.0.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/statsd/${name}.tar.gz";
       md5 = "476ef5b9004f6e2cb25c7da440bb53d0";
     };
 
-    buildInputs = [ ];
+    buildInputs = with self; [ ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -2820,7 +2814,7 @@ let
   pyramid_zodbconn = buildPythonPackage rec {
     name = "pyramid_zodbconn-0.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_zodbconn/${name}.tar.gz";
       md5 = "3c7746a227fbcda3e138ab8bfab7700b";
     };
@@ -2828,8 +2822,8 @@ let
     # should be fixed in next release
     doCheck = false;
 
-    buildInputs = [ pyramid mock ];
-    propagatedBuildInputs = [ zodb zodburi ];
+    buildInputs = with self; [ pyramid mock ];
+    propagatedBuildInputs = with self; [ zodb zodburi ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -2840,13 +2834,13 @@ let
   pyramid_mailer = buildPythonPackage rec {
     name = "pyramid_mailer-0.13";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_mailer/${name}.tar.gz";
       md5 = "43800c7c894097a23140da58e3638c93";
     };
 
-    buildInputs = [ pyramid transaction ];
-    propagatedBuildInputs = [ repoze_sendmail ];
+    buildInputs = with self; [ pyramid transaction ];
+    propagatedBuildInputs = with self; [ repoze_sendmail ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -2856,7 +2850,7 @@ let
   pyrtlsdr = buildPythonPackage rec {
     name = "pyrtlsdr-0.2.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyrtlsdr/${name}.zip";
       md5 = "646336675a00d38e6f54e77a17011b95";
     };
@@ -2878,12 +2872,12 @@ let
   repoze_sendmail = buildPythonPackage rec {
     name = "repoze.sendmail-4.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/repoze.sendmail/${name}.tar.gz";
       md5 = "81d15f1f03cc67d6f56f2091c594ef57";
     };
 
-    buildInputs = [ transaction ];
+    buildInputs = with self; [ transaction ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -2894,24 +2888,24 @@ let
   zodburi = buildPythonPackage rec {
     name = "zodburi-2.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zodburi/${name}.tar.gz";
       md5 = "7876893829c2f784506c80d49f861b67";
     };
 
-    buildInputs = [ zodb mock ZEO ];
+    buildInputs = with self; [ zodb mock ZEO ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
 
-  ZEO = pythonPackages.buildPythonPackage rec {
+  ZEO = self.buildPythonPackage rec {
     name = "ZEO-4.0.0";
 
-    propagatedBuildInputs = [ random2 zodb six transaction persistent zc_lockfile zconfig zdaemon zope_interface ];
+    propagatedBuildInputs = with self; [ random2 zodb six transaction persistent zc_lockfile zconfig zdaemon zope_interface ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/Z/ZEO/${name}.tar.gz";
       md5 = "494d8320549185097ba4a6b6b76017d6";
     };
@@ -2921,12 +2915,12 @@ let
     };
   };
 
-  random2 = pythonPackages.buildPythonPackage rec {
+  random2 = self.buildPythonPackage rec {
     name = "random2-1.0.1";
 
     doCheck = !isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/random2/${name}.zip";
       md5 = "48a0a86fe00e447212d0095de8cf3e21";
     };
@@ -2938,15 +2932,15 @@ let
     rev = "089818bc61c3dc5eca023254e37a280b041ea8cc";
     name = "substanced-${rev}";
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       inherit rev;
       url = "https://github.com/Pylons/substanced.git";
       sha256 = "17s7sdvydw9a9d2d36c70lq962ryny3dv9nzdxqpfvwiry9iy3jx";
     };
 
-    buildInputs = [ mock ];
+    buildInputs = with self; [ mock ];
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       pyramid
       pytz
       zodb
@@ -2976,7 +2970,7 @@ let
   repoze_lru = buildPythonPackage rec {
     name = "repoze.lru-0.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/repoze.lru/${name}.tar.gz";
       md5 = "2c3b64b17a8e18b405f55d46173e14dd";
     };
@@ -2995,12 +2989,12 @@ let
   repoze_sphinx_autointerface = buildPythonPackage rec {
     name = "repoze.sphinx.autointerface-0.7.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/repoze.sphinx.autointerface/${name}.tar.gz";
       md5 = "f2fee996ae28dc16eb48f1a3e8f64801";
     };
 
-    propagatedBuildInputs = [ zope_interface sphinx ];
+    propagatedBuildInputs = with self; [ zope_interface sphinx ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -3013,7 +3007,7 @@ let
     version = "0.3a";
     name = "rtmidi-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://chrisarndt.de/projects/python-rtmidi/download/python-${name}.tar.bz2";
       sha256 = "0d2if633m3kbiricd5hgn1csccd8xab6lnab1bq9prdr9ks9i8h6";
     };
@@ -3022,7 +3016,7 @@ let
       sed -i "/use_setuptools/d" setup.py
     '';
 
-    buildInputs = [ pkgs.alsaLib pkgs.jack2 ];
+    buildInputs = with self; [ pkgs.alsaLib pkgs.jack2 ];
 
     meta = with stdenv.lib; {
       description = "A Python wrapper for the RtMidi C++ library written with Cython";
@@ -3035,9 +3029,9 @@ let
   zope_tales = buildPythonPackage rec {
     name = "zope.tales-4.0.2";
 
-    propagatedBuildInputs = [ zope_interface six zope_testrunner ];
+    propagatedBuildInputs = with self; [ zope_interface six zope_testrunner ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/z/zope.tales/${name}.zip";
       md5 = "902b03a5f9774f6e2decf3f06d18a09d";
     };
@@ -3047,12 +3041,12 @@ let
   zope_deprecation = buildPythonPackage rec {
     name = "zope.deprecation-3.5.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.deprecation/${name}.tar.gz";
       md5 = "836cfea5fad548cd5a0d9af1300ec05e";
     };
 
-    buildInputs = [ zope_testing ];
+    buildInputs = with self; [ zope_testing ];
 
     meta = {
       maintainers = [
@@ -3067,7 +3061,7 @@ let
   venusian = buildPythonPackage rec {
     name = "venusian-1.0a7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/v/venusian/${name}.tar.gz";
       md5 = "6f67506dd3cf77116f1c01682a6c3f27";
     };
@@ -3088,12 +3082,12 @@ let
   chameleon = buildPythonPackage rec {
     name = "Chameleon-2.15";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/C/Chameleon/${name}.tar.gz";
       md5 = "0214647152fcfcb9ce357624f8f9f203";
     };
 
-    buildInputs = [] ++ optionals isPy26 [ ordereddict unittest2 ];
+    buildInputs = with self; [] ++ optionals isPy26 [ ordereddict unittest2 ];
 
     # TODO: https://github.com/malthe/chameleon/issues/139
     doCheck = false;
@@ -3110,7 +3104,7 @@ let
   distutils_extra = buildPythonPackage rec {
     name = "distutils-extra-2.26";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://launchpad.net/python-distutils-extra/trunk/2.26/+download/python-${name}.tar.gz";
       md5 = "7caded30a45907b5cdb10ac4182846eb";
     };
@@ -3124,13 +3118,13 @@ let
   deluge = buildPythonPackage rec {
     name = "deluge-1.3.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://download.deluge-torrent.org/source/${name}.tar.bz2";
       sha256 = "07m5lgkqymlh0810bk2f5l0k83n51xb3gszj11sr509jgbnxjnmm";
     };
 
-    propagatedBuildInputs = with pkgs; [
-      pyGtkGlade libtorrentRasterbar twisted Mako chardet pyxdg pyopenssl modules.curses
+    propagatedBuildInputs = with self; [
+      pyGtkGlade pkgs.libtorrentRasterbar twisted Mako chardet pyxdg pkgs.pyopenssl modules.curses
     ];
 
     postInstall = ''
@@ -3151,7 +3145,7 @@ let
   pyxdg = buildPythonPackage rec {
     name = "pyxdg-0.25";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyxdg/${name}.tar.gz";
       md5 = "bedcdb3a0ed85986d40044c87f23477c";
     };
@@ -3170,7 +3164,7 @@ let
   chardet = buildPythonPackage rec {
     name = "chardet-2.1.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/c/chardet/${name}.tar.gz";
       md5 = "295367fd210d20f3febda615a88e1ef0";
     };
@@ -3183,13 +3177,13 @@ let
     };
   };
 
-  django = django_1_6;
+  django = self.django_1_6;
 
   django_1_6 = buildPythonPackage rec {
     name = "Django-${version}";
     version = "1.6.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://www.djangoproject.com/m/releases/1.6/${name}.tar.gz";
       sha256 = "143yp984n8a2bs1dflxjp1s7skmji0cwkw05s9ikbfikwmabsv2k";
     };
@@ -3207,7 +3201,7 @@ let
     name = "Django-${version}";
     version = "1.5.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://www.djangoproject.com/m/releases/1.5/${name}.tar.gz";
       sha256 = "1lm0pa6m9f4cd6pv239lqj32z1snf8xjbvlbh8bqihs6a1f51kj7";
     };
@@ -3225,7 +3219,7 @@ let
     name = "Django-${version}";
     version = "1.4.14";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://www.djangoproject.com/m/releases/1.4/${name}.tar.gz";
       sha256 = "173ci9ml2vs1z2x51wahssfn8mrmhd02varmg9kibm8z460svvc1";
     };
@@ -3242,7 +3236,7 @@ let
   django_1_3 = buildPythonPackage rec {
     name = "Django-1.3.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://www.djangoproject.com/m/releases/1.3/${name}.tar.gz";
       sha256 = "12pv8y2x3fhrcrjayfm6z40r57iwchfi5r19ajs8q8z78i3z8l7f";
     };
@@ -3261,12 +3255,12 @@ let
     name = "django_evolution-0.6.9";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://downloads.reviewboard.org/releases/django-evolution/${name}.tar.gz";
       md5 = "c0d7d10bc41898c88b14d434c48766ff";
     };
 
-    propagatedBuildInputs = [ django_1_5 ];
+    propagatedBuildInputs = with self; [ django_1_5 ];
 
     meta = {
       description = "A database schema evolution tool for the Django web framework";
@@ -3278,7 +3272,7 @@ let
   django_tagging = buildPythonPackage rec {
     name = "django-tagging-0.3.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/d/django-tagging/${name}.tar.gz";
       md5 = "a0855f2b044db15f3f8a025fa1016ddf";
     };
@@ -3286,7 +3280,7 @@ let
     # error: invalid command 'test'
     doCheck = false;
 
-    propagatedBuildInputs = [ django_1_3 ];
+    propagatedBuildInputs = with self; [ django_1_3 ];
 
     meta = {
       description = "A generic tagging application for Django projects";
@@ -3298,12 +3292,12 @@ let
   djblets = buildPythonPackage rec {
     name = "Djblets-0.6.28";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://downloads.reviewboard.org/releases/Djblets/0.6/${name}.tar.gz";
       sha256 = "11fsi911cqkjgv9j7646ljc2fgxsdfyq44kzmv01xhysm50fn6xx";
     };
 
-    propagatedBuildInputs = [ pil django_1_3 feedparser ];
+    propagatedBuildInputs = with self; [ pil django_1_3 feedparser ];
 
     meta = {
       description = "A collection of useful extensions for Django";
@@ -3316,13 +3310,13 @@ let
     name = "dulwich-${version}";
     version = "0.9.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/dulwich/${name}.tar.gz";
       sha256 = "1wq083g9b1xsk89kb0wwpi4mxy63x6760vn9x5sk1fx36h27prqj";
     };
 
     # Only test dependencies
-    buildInputs = [ pkgs.git gevent geventhttpclient mock fastimport ];
+    buildInputs = with self; [ pkgs.git gevent geventhttpclient mock fastimport ];
 
     meta = with stdenv.lib; {
       description = "Simple Python implementation of the Git file formats and protocols.";
@@ -3337,12 +3331,12 @@ let
     name = "hg-git-${version}";
     version = "0.6.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/h/hg-git/${name}.tar.gz";
       sha256 = "136kz4w377ldcjdg865azi8aym0xnxzxl3rycnflgay26ar1309s";
     };
 
-    propagatedBuildInputs = [ pkgs.mercurial dulwich ];
+    propagatedBuildInputs = with self; [ pkgs.mercurial dulwich ];
 
     meta = with stdenv.lib; {
       description = "Push and pull from a Git server using Mercurial.";
@@ -3355,7 +3349,7 @@ let
   docutils = buildPythonPackage rec {
     name = "docutils-0.11";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "mirror://sourceforge/docutils/${name}.tar.gz";
       sha256 = "1jbybs5a396nrjy9m13pgvsxdwaj7jw7nsawkhl4fi1nvxm1dx4s";
     };
@@ -3372,7 +3366,7 @@ let
   doxypy = buildPythonPackage rec {
     name = "doxypy-0.4.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://code.foosel.org/files/${name}.tar.gz";
       sha256 = "1afmb30zmy7942b53qa5vd3js883wwqqls35n8xfb3rnj0qnll8g";
     };
@@ -3389,7 +3383,7 @@ let
   dtopt = buildPythonPackage rec {
     name = "dtopt-0.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/d/dtopt/${name}.tar.gz";
       md5 = "9a41317149e926fcc408086aedee6bab";
     };
@@ -3405,13 +3399,13 @@ let
     name = "ecdsa-${version}";
     version = "0.10";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/e/ecdsa/${name}.tar.gz";
       md5 = "e95941b3bcbf1726472bb724d7478551";
     };
 
     # Only needed for tests
-    buildInputs = [ pkgs.openssl ];
+    buildInputs = with self; [ pkgs.openssl ];
 
     meta = {
       description = "ECDSA cryptographic signature library";
@@ -3424,12 +3418,11 @@ let
 
   elpy = buildPythonPackage rec {
     name = "elpy-1.0.1";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/e/elpy/elpy-1.0.1.tar.gz";
       md5 = "5453f085f7871ed8fc11d51f0b68c785";
     };
-    buildInputs = [  ];
-    propagatedBuildInputs = [ flake8 ];
+    propagatedBuildInputs = with self; [ flake8 ];
 
     doCheck = false; # there are no tests
 
@@ -3444,16 +3437,16 @@ let
     name = "enum-0.4.4";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/e/enum/${name}.tar.gz";
       md5 = "ce75c7c3c86741175a84456cc5bd531e";
     };
 
     doCheck = !isPyPy;
 
-    buildInputs = [ ];
+    buildInputs = with self; [ ];
 
-    propagatedBuildInputs = [ ];
+    propagatedBuildInputs = with self; [ ];
 
     meta = {
       homepage = http://pypi.python.org/pypi/enum/;
@@ -3464,7 +3457,7 @@ let
   enum34 = buildPythonPackage rec {
     name = "enum34-1.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/e/enum34/${name}.tar.gz";
       md5 = "9d57f5454c70c11707998ea26c1b0a7c";
     };
@@ -3473,12 +3466,12 @@ let
 
   epc = buildPythonPackage rec {
     name = "epc-0.0.3";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/e/epc/${name}.tar.gz";
       md5 = "04a93c0cd32b496969ead09f414dac74";
     };
 
-    propagatedBuildInputs = [ sexpdata ];
+    propagatedBuildInputs = with self; [ sexpdata ];
     doCheck = false;
 
     meta = {
@@ -3491,14 +3484,14 @@ let
   eventlet = buildPythonPackage rec {
     name = "eventlet-0.15.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/e/eventlet/${name}.tar.gz";
       md5 = "7155780824bb6344651a573838416f21";
     };
 
-    buildInputs = [ nose httplib2  ];
+    buildInputs = with self; [ nose httplib2  ];
 
-    propagatedBuildInputs = optionals (!isPyPy) [ greenlet ];
+    propagatedBuildInputs = optionals (!isPyPy) [ self.greenlet ];
 
     PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
 
@@ -3514,7 +3507,7 @@ let
     name = "fastimport-${version}";
     version = "0.9.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/f/fastimport/${name}.tar.gz";
       sha256 = "0k8x7552ypx9rc14vbsvg2lc6z0r8pv9laah28pdwyynbq10825d";
     };
@@ -3530,7 +3523,7 @@ let
   feedgenerator = buildPythonPackage (rec {
     name = "feedgenerator-1.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/f/feedgenerator/${name}.tar.gz";
       md5 = "92978492871342ad64e8ae0ccfcf200c";
     };
@@ -3540,7 +3533,7 @@ let
       export LC_ALL="en_US.UTF-8"
     '';
 
-    propagatedBuildInputs = [ six pytz ];
+    propagatedBuildInputs = with self; [ six pytz ];
 
     meta = {
       homepage = https://github.com/dmdm/feedgenerator-py3k.git;
@@ -3551,7 +3544,7 @@ let
   feedparser = buildPythonPackage (rec {
     name = "feedparser-5.1.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/f/feedparser/${name}.tar.gz";
       md5 = "f2253de78085a1d5738f626fcc1d8f71";
     };
@@ -3568,13 +3561,13 @@ let
   flake8 = buildPythonPackage (rec {
     name = "flake8-2.1.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/f/flake8/${name}.tar.gz";
       md5 = "cf326cfb88a1db6c5b29a3a6d9efb257";
     };
 
-    buildInputs = [ nose mock ];
-    propagatedBuildInputs = [ pyflakes pep8 mccabe ];
+    buildInputs = with self; [ nose mock ];
+    propagatedBuildInputs = with self; [ pyflakes pep8 mccabe ];
 
     # 3 failing tests
     #doCheck = false;
@@ -3591,12 +3584,12 @@ let
   flask = buildPythonPackage {
     name = "flask-0.10.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/F/Flask/Flask-0.10.1.tar.gz";
       md5 = "378670fe456957eb3c27ddaef60b2b24";
     };
 
-    propagatedBuildInputs = [ werkzeug jinja2 ];
+    propagatedBuildInputs = with self; [ werkzeug jinja2 ];
 
     meta = {
       homepage = http://flask.pocoo.org/;
@@ -3608,12 +3601,12 @@ let
   flask_cache = buildPythonPackage rec {
     name = "Flask-Cache-0.13.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/F/Flask-Cache/${name}.tar.gz";
       md5 = "ab82a9cd0844891ccdb54fbb93fd6c59";
     };
 
-    propagatedBuildInputs = [ werkzeug flask ];
+    propagatedBuildInputs = with self; [ werkzeug flask ];
 
     meta = {
       homepage = https://github.com/thadeusb/flask-cache;
@@ -3626,22 +3619,22 @@ let
     name = "FlexGet-1.2.161";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/F/FlexGet/${name}.tar.gz";
       md5 = "f7533e7b1df49cc8027fc4a2cde0290d";
     };
 
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
     # dateutil dependency: 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
+    propagatedBuildInputs = with self; [ 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;
+	    self.transmissionrpc;
 
     meta = {
       homepage = http://flexget.com/;
@@ -3655,14 +3648,14 @@ let
     version = "0.4.1";
     name = "tvrage-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/python-tvrage/python-tvrage-${version}.tar.gz";
       md5 = "cdfec252158c5047b626861900186dfb";
     };
 
     # has mostly networking dependent tests
     doCheck = false;
-    propagatedBuildInputs = [ beautifulsoup ];
+    propagatedBuildInputs = with self; [ beautifulsoup ];
 
     meta = {
       homepage = https://github.com/ckreutzer/python-tvrage;
@@ -3676,12 +3669,12 @@ let
     version = "2.4.0";
     name = "jsonschema-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-${version}.tar.gz";
       md5 = "661f85c3d23094afbb9ac3c0673840bf";
     };
 
-    buildInputs = [ nose mock ];
+    buildInputs = with self; [ nose mock ];
 
     patchPhase = ''
       substituteInPlace jsonschema/tests/test_jsonschema_test_suite.py --replace "python" "${python}/bin/${python.executable}"
@@ -3703,7 +3696,7 @@ let
     name = "flup-1.0.2";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://www.saddi.com/software/flup/dist/${name}.tar.gz";
       sha256 = "1nbx174g40l1z3a8arw72qz05a1qxi3didp9wm7kvkn1bxx33bab";
     };
@@ -3718,12 +3711,12 @@ let
   foolscap = buildPythonPackage (rec {
     name = "foolscap-0.6.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://foolscap.lothar.com/releases/${name}.tar.gz";
       sha256 = "16cddyk5is0gjfn0ia5n2l4lhdzvbjzlx6sfpy7ddjd3d3fq7ckl";
     };
 
-    propagatedBuildInputs = [ twisted pkgs.pyopenssl ];
+    propagatedBuildInputs = with self; [ twisted pkgs.pyopenssl ];
 
     meta = {
       homepage = http://foolscap.lothar.com/;
@@ -3747,7 +3740,7 @@ let
   fs = buildPythonPackage rec {
     name = "fs-0.5.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/f/fs/${name}.tar.gz";
       sha256 = "144f4yn2nvnxh2vrnmiabpwx3s637np0d1j1w95zym790d66shir";
     };
@@ -3770,12 +3763,12 @@ let
     name = "${baseName}-${version}";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "mirror://sourceforge/fuse/fuse-python-${version}.tar.gz";
       sha256 = "06rmp1ap6flh64m81j0n3a357ij2vj9zwcvvw0p31y6hz1id9shi";
     };
 
-    buildInputs = [ pkgs.pkgconfig pkgs.fuse ];
+    buildInputs = with self; [ pkgs.pkgconfig pkgs.fuse ];
 
     meta = {
       description = "Python bindings for FUSE.";
@@ -3786,9 +3779,8 @@ let
   futures = buildPythonPackage rec {
     name = "futures-2.1.6";
 
-    propagatedBuildInputs = with pythonPackages; [  ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/f/futures/futures-2.1.6.tar.gz";
       md5 = "cfab9ac3cd55d6c7ddd0546a9f22f453";
     };
@@ -3803,7 +3795,7 @@ let
   gcovr = buildPythonPackage rec {
     name = "gcovr-2.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/g/gcovr/${name}.tar.gz";
       md5 = "672db629469882b93c40016aebff50ac";
     };
@@ -3817,7 +3809,7 @@ let
   genshi = buildPythonPackage {
     name = "genshi-0.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = http://ftp.edgewall.com/pub/genshi/Genshi-0.7.tar.gz;
       sha256 = "0lkkbp6fbwzv0zda5iqc21rr7rdldkwh3hfabfjl9i4bwq14858x";
     };
@@ -3826,7 +3818,7 @@ let
     # FAIL: test_sanitize_remove_src_javascript (genshi.filters.tests.html.HTMLSanitizerTestCase)
     doCheck = false;
 
-    buildInputs = [ pkgs.setuptools ];
+    buildInputs = with self; [ pkgs.setuptools ];
 
     meta = {
       description = "Python components for parsing HTML, XML and other textual content";
@@ -3845,13 +3837,13 @@ let
     name = "gevent-1.0.1";
     disabled = isPy3k || isPyPy;  # see https://github.com/surfly/gevent/issues/248
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/g/gevent/${name}.tar.gz";
       sha256 = "0hyzfb0gcx9pm5c2igan8y57hqy2wixrwvdjwsaivxsqs0ay49s6";
     };
 
-    buildInputs = [ pkgs.libev ];
-    propagatedBuildInputs = optionals (!isPyPy) [ greenlet ];
+    buildInputs = with self; [ pkgs.libev ];
+    propagatedBuildInputs = optionals (!isPyPy) [ self.greenlet ];
 
     meta = with stdenv.lib; {
       description = "Coroutine-based networking library";
@@ -3866,12 +3858,12 @@ let
     name = "geventhttpclient-${version}";
     version = "1.1.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/g/geventhttpclient/${name}.tar.gz";
       sha256 = "1k7s4dnkmcfqqkmbqi0vvb2ns53r9cl2652mq20bgg65zj26j2l6";
     };
 
-    propagatedBuildInputs = [ gevent certifi backports_ssl_match_hostname_3_4_0_2 ];
+    propagatedBuildInputs = with self; [ gevent certifi backports_ssl_match_hostname_3_4_0_2 ];
 
     meta = with stdenv.lib; {
       homepage = http://github.com/gwik/geventhttpclient;
@@ -3884,37 +3876,37 @@ let
   gevent-socketio = buildPythonPackage rec {
     name = "gevent-socketio-0.3.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/g/gevent-socketio/${name}.tar.gz";
       sha256 = "1zra86hg2l1jcpl9nsnqagy3nl3akws8bvrbpgdxk15x7ywllfak";
     };
 
-    buildInputs = [ versiontools gevent-websocket mock pytest ];
-    propagatedBuildInputs = [ gevent ];
+    buildInputs = with self; [ versiontools gevent-websocket mock pytest ];
+    propagatedBuildInputs = with self; [ gevent ];
 
   };
 
   gevent-websocket = buildPythonPackage rec {
     name = "gevent-websocket-0.9.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/g/gevent-websocket/${name}.tar.gz";
       sha256 = "07rqwfpbv13mk6gg8mf0bmvcf6siyffjpgai1xd8ky7r801j4xb4";
     };
 
-    propagatedBuildInputs = [ gevent ];
+    propagatedBuildInputs = with self; [ gevent ];
 
   };
 
   genzshcomp = buildPythonPackage {
     name = "genzshcomp-0.5.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/g/genzshcomp/genzshcomp-0.5.1.tar.gz";
       md5 = "7a954f1835875002e9044fe55ed1b488";
     };
 
-    buildInputs = [ pkgs.setuptools ] ++ (optional isPy26 argparse);
+    buildInputs = with self; [ pkgs.setuptools ] ++ (optional isPy26 argparse);
 
     meta = {
       description = "automatically generated zsh completion function for Python's option parser modules";
@@ -3926,7 +3918,7 @@ let
   gflags = buildPythonPackage rec {
     name = "gflags-2.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://python-gflags.googlecode.com/files/python-${name}.tar.gz";
       sha256 = "1mkc7315bpmh39vbn0jq237jpw34zsrjr1sck98xi36bg8hnc41i";
     };
@@ -3941,17 +3933,17 @@ let
   glance = buildPythonPackage rec {
     name = "glance-0.1.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/g/glance/${name}.tar.gz";
       md5 = "e733713ccd23e4a6253386a47971cfb5";
     };
 
-    buildInputs = [ nose mox ];
+    buildInputs = with self; [ nose mox ];
 
     # tests fail for python2.6
     doCheck = python.majorVersion != "2.6";
 
-    propagatedBuildInputs = [ gflags sqlalchemy webob routes eventlet ];
+    propagatedBuildInputs = with self; [ gflags sqlalchemy webob routes eventlet ];
 
     PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
 
@@ -3975,8 +3967,8 @@ let
 
     doCheck = false;
 
-    buildInputs = [ unittest2 ];
-    propagatedBuildInputs = [ modules.curses modules.curses_panel psutil setuptools bottle batinfo pkgs.hddtemp pysnmp ];
+    buildInputs = with self; [ unittest2 ];
+    propagatedBuildInputs = with self; [ modules.curses modules.curses_panel psutil setuptools bottle batinfo pkgs.hddtemp pysnmp ];
 
     preConfigure = ''
       sed -i 's/data_files\.append((conf_path/data_files.append(("etc\/glances"/' setup.py;
@@ -3992,12 +3984,12 @@ let
     name = "goobook-1.5";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/g/goobook/${name}.tar.gz";
       sha256 = "05vpriy391l5i05ckl5ja5bswqyvl3rwrbmks9pi46w1813j7p5z";
     };
 
-    buildInputs = [ six ];
+    buildInputs = with self; [ six ];
 
     preConfigure = ''
       sed -i '/distribute/d' setup.py
@@ -4011,18 +4003,18 @@ let
       platforms   = platforms.unix;
     };
 
-    propagatedBuildInputs = [ gdata hcs_utils keyring simplejson ];
+    propagatedBuildInputs = with self; [ gdata hcs_utils keyring simplejson ];
   };
 
   google_api_python_client = buildPythonPackage rec {
     name = "google-api-python-client-1.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://google-api-python-client.googlecode.com/files/google-api-python-client-1.2.tar.gz";
       sha256 = "0xd619w71xk4ldmikxqhaaqn985rc2hy4ljgwfp50jb39afg7crw";
     };
 
-    propagatedBuildInputs = [ httplib2 ];
+    propagatedBuildInputs = with self; [ httplib2 ];
 
     meta = with stdenv.lib; {
       description = "The core Python library for accessing Google APIs";
@@ -4036,12 +4028,12 @@ let
     name = "google-apputils-0.4.0";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.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 ];
+    propagatedBuildInputs = with self; [ pytz gflags dateutil_1_5 mox ];
 
     meta = with stdenv.lib; {
       description = "Google Application Utilities for Python";
@@ -4053,7 +4045,7 @@ let
     name = "greenlet-0.4.3";
     disabled = isPyPy;  # builtin for pypy
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/g/greenlet/${name}.zip";
       md5 = "a5e467a5876c415cd357c1ab9027e06c";
     };
@@ -4069,7 +4061,7 @@ let
     rev = "1977";
     name = "gyp-r${rev}";
 
-    src = fetchsvn {
+    src = pkgs.fetchsvn {
       url = "http://gyp.googlecode.com/svn/trunk";
       inherit rev;
       sha256 = "0vnr75yd3bidysiwl9lljvf1dv6v9m9xqdnx0hdgyl92w689n9j8";
@@ -4089,12 +4081,12 @@ let
   gunicorn = buildPythonPackage rec {
     name = "gunicorn-19.1.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/g/gunicorn/${name}.tar.gz";
       md5 = "3d759bec3c46a680ff010775258c4c56";
     };
 
-    buildInputs = [ pytest ];
+    buildInputs = with self; [ pytest ];
 
     meta = {
       homepage = http://pypi.python.org/pypi/gunicorn;
@@ -4105,7 +4097,7 @@ let
   hcs_utils = buildPythonPackage rec {
     name = "hcs_utils-1.5";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/h/hcs_utils/${name}.tar.gz";
       sha256 = "1d2za9crkgzildx610w3zif2i8phcqhh6n8nzg3yvy2mg0s18mkl";
     };
@@ -4115,7 +4107,7 @@ let
       export LC_ALL="en_US.UTF-8"
     '';
 
-    buildInputs = [ six ];
+    buildInputs = with self; [ six ];
 
     meta = with stdenv.lib; {
       description = "Library collecting some useful snippets";
@@ -4131,7 +4123,7 @@ let
     name = "hetzner-${version}";
     version = "0.7.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/RedMoonStudios/hetzner/archive/"
           + "v${version}.tar.gz";
       sha256 = "07jnrgy9fkh1hwgsa8491ljz9spazmifqsg92m3xnamja1536qfl";
@@ -4152,13 +4144,13 @@ let
   htmllaundry = buildPythonPackage rec {
     name = "htmllaundry-2.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/h/htmllaundry/${name}.tar.gz";
       md5 = "6db6909de76c4b259e65d90b5debdbda";
     };
 
-    buildInputs = [ nose ];
-    propagatedBuildInputs = [ six lxml ];
+    buildInputs = with self; [ nose ];
+    propagatedBuildInputs = with self; [ six lxml ];
 
     # some tests fail, probably because of changes in lxml
     # not relevant for me, if releavnt for you, fix it...
@@ -4174,7 +4166,7 @@ let
   html5lib = buildPythonPackage (rec {
     name = "html5lib-0.95";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/h/html5lib/${name}.tar.gz";
       md5 = "fe607f9917d81763e842f818f23464ee";
     };
@@ -4191,12 +4183,12 @@ let
     name = "http_signature-0.1.4";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/h/http_signature/${name}.tar.gz";
       md5 = "015061846254bd5d8c5dbc2913985153";
     };
 
-    propagatedBuildInputs = [pycrypto];
+    propagatedBuildInputs = with self; [pycrypto];
 
     meta = {
       homepage = https://github.com/atl/py-http-signature;
@@ -4208,12 +4200,12 @@ let
   httpbin = buildPythonPackage rec {
     name = "httpbin-0.2.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/h/httpbin/${name}.tar.gz";
       md5 = "9b2bb2fab45f5fa839e9a776a64d6089";
     };
 
-    propagatedBuildInputs = [ flask markupsafe decorator itsdangerous six ];
+    propagatedBuildInputs = with self; [ flask markupsafe decorator itsdangerous six ];
 
     meta = {
       homepage = https://github.com/kennethreitz/httpbin;
@@ -4226,7 +4218,7 @@ let
   httplib2 = buildPythonPackage rec {
     name = "httplib2-0.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/h/httplib2/${name}.tar.gz";
       sha256 = "1asi5wpncnc6ki3bz33mhb9xh2lrkb24y4qng8bmqnczdmm8rsir";
     };
@@ -4245,14 +4237,14 @@ let
     disabled = isPy3k;
     doCheck = !isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/h/httpretty/${name}.tar.gz";
       md5 = "50b02560a49fe928c90c53a49791f621";
     };
 
-    buildInputs = [ tornado requests httplib2 sure nose coverage ];
+    buildInputs = with self; [ tornado requests httplib2 sure nose coverage ];
 
-    propagatedBuildInputs = [ urllib3 ];
+    propagatedBuildInputs = with self; [ urllib3 ];
 
     postPatch = ''
       sed -i -e 's/==.*$//' *requirements.txt
@@ -4275,7 +4267,7 @@ let
 
   importlib = if isPy26 then (buildPythonPackage {
     name = "importlib-1.0.2";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/i/importlib/importlib-1.0.2.tar.gz";
       md5 = "4aa23397da8bd7c7426864e88e4db7e1";
     };
@@ -4285,14 +4277,14 @@ let
   influxdb = buildPythonPackage rec {
     name = "influxdb-0.1.12";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/i/influxdb/${name}.tar.gz";
       md5 = "6c975058ccc4df41dad8d8234c52d754";
     };
 
     # ImportError: No module named tests
     doCheck = false;
-    propagatedBuildInputs = [ requests ];
+    propagatedBuildInputs = with self; [ requests ];
 
     meta = {
       description = "Python client for InfluxDB";
@@ -4305,12 +4297,12 @@ let
     version = "0.6.1";
     name = "iptools-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/i/iptools/iptools-${version}.tar.gz";
       md5 = "aed4045638fd40c16f8d9bb04606f700";
     };
 
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
 
     meta = {
       description = "Utilities for manipulating IP addresses including a class that can be used to include CIDR network blocks in Django's INTERNAL_IPS setting.";
@@ -4323,7 +4315,7 @@ let
     version = "0.74";
     name = "ipy-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/I/IPy/IPy-${version}.tar.gz";
       md5 = "f4f7ddc7c5e55a47222a5cc6c0a87b6d";
     };
@@ -4342,7 +4334,7 @@ let
     name = "ipaddr-2.1.10";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/i/ipaddr/${name}.tar.gz";
       sha256 = "18ycwkfk3ypb1yd09wg20r7j7zq2a73d7j6j10qpgra7a7abzhyj";
     };
@@ -4357,25 +4349,25 @@ let
   ipdb = buildPythonPackage rec {
     name = "ipdb-0.8";
     disabled = isPyPy;  # setupterm: could not find terminfo database
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/i/ipdb/${name}.zip";
       md5 = "96dca0712efa01aa5eaf6b22071dd3ed";
     };
-    propagatedBuildInputs = [ pythonPackages.ipythonLight ];
+    propagatedBuildInputs = with self; [ self.ipythonLight ];
   };
 
   ipdbplugin = buildPythonPackage {
     name = "ipdbplugin-1.4";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/i/ipdbplugin/ipdbplugin-1.4.tar.gz";
       md5 = "f9a41512e5d901ea0fa199c3f648bba7";
     };
-    propagatedBuildInputs = [ pythonPackages.nose pythonPackages.ipythonLight ];
+    propagatedBuildInputs = with self; [ self.nose self.ipythonLight ];
   };
 
   iso8601_0_1_4 = buildPythonPackage {
     name = "iso8601-0.1.4";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/i/iso8601/iso8601-0.1.4.tar.gz;
       sha256 = "03gnjxpfq0wwimqnsvz32xcngq0hrdqryn3zm8qh95hnnggwqa3s";
     };
@@ -4390,7 +4382,7 @@ let
   jedi = buildPythonPackage (rec {
     name = "jedi-0.8.0-final0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/j/jedi/${name}.tar.gz";
       sha256 = "0jnhwh0b1hy5cssi3n5a4j7z9pgpcckyv5s52ba4jnq5bwgdpbcf";
     };
@@ -4406,12 +4398,12 @@ let
   jinja2 = buildPythonPackage rec {
     name = "Jinja2-2.7.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/J/Jinja2/${name}.tar.gz";
       sha256 = "12scn3zmmj76rzyc0axjzf6dsazyj9xgp0l46q41rjhxm23s1h2w";
     };
 
-    propagatedBuildInputs = [ pythonPackages.markupsafe ];
+    propagatedBuildInputs = with self; [ self.markupsafe ];
 
     meta = {
       homepage = http://jinja.pocoo.org/;
@@ -4429,12 +4421,12 @@ let
   jmespath = buildPythonPackage rec {
     name = "jmespath-0.2.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/j/jmespath/jmespath-0.2.1.tar.gz";
       md5 = "7800775aa12c6303f9ad597b6a8fa03c";
     };
 
-    propagatedBuildInputs = [ ply ];
+    propagatedBuildInputs = with self; [ ply ];
 
     meta = {
       homepage = "https://github.com/boto/jmespath";
@@ -4446,12 +4438,12 @@ let
   keyring = buildPythonPackage rec {
     name = "keyring-3.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/k/keyring/${name}.zip";
       sha256 = "1flccphpyrb8y8dra2fq2s2v3fg615d77kjjmzl0gmiidabkkdqf";
     };
 
-    buildInputs =
+    buildInputs = with self;
       [ fs gdata python_keyczar mock pyasn1 pycrypto pytest six ];
 
     meta = with stdenv.lib; {
@@ -4469,7 +4461,7 @@ let
 
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/k/kitchen/kitchen-1.1.1.tar.gz";
       sha256 = "0ki840hjk1q19w6icv0dj2jxb00966nwy9b1jib0dgdspj00yrr5";
     };
@@ -4479,7 +4471,7 @@ let
     name = "pylast-${version}";
     version = "0.5.11";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pylast/${name}.tar.gz";
       md5 = "506cf1b13020b3ed2f3c845ea0c9830e";
     };
@@ -4498,14 +4490,14 @@ let
   libcloud = buildPythonPackage (rec {
     name = "libcloud-0.14.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/a/apache-libcloud/apache-libcloud-0.14.1.tar.bz2;
       sha256 = "1l6190pjv54c7y8pzr089ij727qv7bqhhaznr2mkvimgr1wzsql5";
     };
 
-    buildInputs = [  mock ];
+    buildInputs = with self; [ mock ];
 
-    propagatedBuildInputs = [ pycrypto ];
+    propagatedBuildInputs = with self; [ pycrypto ];
     preConfigure = "cp libcloud/test/secrets.py-dist libcloud/test/secrets.py";
 
     # failing tests for 26 and 27
@@ -4521,14 +4513,14 @@ let
   limnoria = buildPythonPackage (rec {
     name = "limnoria-20130327";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/l/limnoria/limnoria-2013-06-01T10:32:51+0200.tar.gz;
       name = "limnoria-2013-06-01.tar.gz";
       sha256 = "1i8q9zzf43sr3n1q4h6h1z8nz31g4aa8dq94ywvfbh7hklmchq6n";
     };
 
-    buildInputs = [ pkgs.git ];
-    propagatedBuildInputs = [ modules.sqlite3 ];
+    buildInputs = with self; [ pkgs.git ];
+    propagatedBuildInputs = with self; [ modules.sqlite3 ];
 
     doCheck = false;
 
@@ -4545,12 +4537,12 @@ let
     name = "linode-${version}";
     version = "0.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/l/linode/linode-${version}.tar.gz";
       md5 = "03a306575cf274719b3206ecee0bda9e";
     };
 
-    propagatedBuildInputs = [ requests2 ];
+    propagatedBuildInputs = with self; [ requests2 ];
 
     meta = with stdenv.lib; {
       homepage = "https://github.com/ghickman/linode";
@@ -4564,7 +4556,7 @@ let
   lockfile = buildPythonPackage rec {
     name = "lockfile-0.9.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pylockfile.googlecode.com/files/${name}.tar.gz";
       sha1 = "1eebaee375641c9f29aeb21768f917dd2b985752";
     };
@@ -4581,23 +4573,23 @@ let
   logilab_common = buildPythonPackage rec {
     name = "logilab-common-0.61.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://download.logilab.org/pub/common/${name}.tar.gz";
       sha256 = "09apsrcvjliawbxmfrmi1l8hlbaj87mb7n4lrlivy5maxs6yg4hd";
     };
 
-    propagatedBuildInputs = [ unittest2 ];
+    propagatedBuildInputs = with self; [ unittest2 ];
   };
 
   lxml = buildPythonPackage ( rec {
     name = "lxml-3.3.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/l/lxml/${name}.tar.gz";
       md5 = "a804b36864c483fe7abdd7f493a0c379";
     };
 
-    buildInputs = [ pkgs.libxml2 pkgs.libxslt ];
+    buildInputs = with self; [ pkgs.libxml2 pkgs.libxslt ];
 
     meta = {
       description = "Pythonic binding for the libxml2 and libxslt libraries";
@@ -4610,12 +4602,12 @@ let
   python_magic = buildPythonPackage rec {
     name = "python-magic-0.4.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/python-magic/${name}.tar.gz";
       md5 = "07e7a0fea78dd81ed609414c3484df58";
     };
 
-    propagatedBuildInputs = [ pkgs.file ];
+    propagatedBuildInputs = with self; [ pkgs.file ];
 
     patchPhase = ''
       substituteInPlace magic.py --replace "ctypes.CDLL(dll)" "ctypes.CDLL('${pkgs.file}/lib/libmagic.so')"
@@ -4640,7 +4632,7 @@ let
     src = pkgs.file.src;
 
     patches = [ ../tools/misc/file/python.patch ];
-    buildInputs = [ python pkgs.file ];
+    buildInputs = with self; [ python pkgs.file ];
 
     preConfigure = "cd python";
 
@@ -4655,12 +4647,12 @@ let
     version = "0.21.1";
     name = "m2crypto-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-${version}.tar.gz";
       md5 = "f93d8462ff7646397a9f77a2fe602d17";
     };
 
-    buildInputs = [ pkgs.swig pkgs.openssl ];
+    buildInputs = with self; [ pkgs.swig pkgs.openssl ];
 
     preBuild = "${python}/bin/${python.executable} setup.py build_ext --openssl=${pkgs.openssl}";
 
@@ -4676,13 +4668,13 @@ let
   Mako = buildPythonPackage rec {
     name = "Mako-0.9.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/M/Mako/${name}.tar.gz";
       md5 = "fe3f394ef714776d09ec6133923736a7";
     };
 
-    buildInputs = [ markupsafe nose ];
-    propagatedBuildInputs = [ markupsafe ];
+    buildInputs = with self; [ markupsafe nose ];
+    propagatedBuildInputs = with self; [ markupsafe ];
 
     meta = {
       description = "Super-fast templating language.";
@@ -4696,7 +4688,7 @@ let
   markupsafe = buildPythonPackage rec {
     name = "markupsafe-0.15";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/M/MarkupSafe/${name}.tar.gz";
       md5 = "4e7c4d965fe5e033fa2d7bb7746bb186";
     };
@@ -4713,12 +4705,12 @@ let
     name = "manuel-${version}";
     version = "1.8.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/m/manuel/${name}.tar.gz";
       sha256 = "1diyj6a8bvz2cdf9m0g2bbx9z2yjjnn3ylbg1zinpcjj6vldfx59";
     };
 
-    propagatedBuildInputs = [ six zope_testing ];
+    propagatedBuildInputs = with self; [ six zope_testing ];
 
     meta = {
       description = "A documentation builder";
@@ -4731,7 +4723,7 @@ let
     version = "2.3.1";
     name = "markdown-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/M/Markdown/Markdown-${version}.tar.gz";
       sha256 = "147j9hznv2r187a86d28glmg3pckfrdp0nz9yh7s1aqpawwdkszz";
     };
@@ -4748,15 +4740,15 @@ let
   matplotlib = buildPythonPackage rec {
     name = "matplotlib-1.3.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "mirror://sourceforge/matplotlib/${name}.tar.gz";
       sha256 = "0smgpn7lwbn02nbyhawyn0n6r3pb65zk501f21bjgavnjjfnf5pa";
     };
 
-    buildInputs = [ python pkgs.which pkgs.ghostscript ] ++
+    buildInputs = with self; [ python pkgs.which pkgs.ghostscript ] ++
         (if stdenv.isDarwin then [ pkgs.clangStdenv ] else [ pkgs.stdenv ]);
 
-    propagatedBuildInputs =
+    propagatedBuildInputs = with self;
       [ dateutil nose numpy pyparsing tornado pkgs.freetype pkgs.libpng pkgs.pkgconfig
       ];
 
@@ -4772,12 +4764,12 @@ let
   mccabe = buildPythonPackage (rec {
     name = "mccabe-0.2.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/m/mccabe/${name}.tar.gz";
       md5 = "5a3f3fa6a4bad126c88aaaa7dab682f5";
     };
 
-    buildInputs = [ ];
+    buildInputs = with self; [ ];
 
     meta = {
       description = "McCabe checker, plugin for flake8";
@@ -4792,12 +4784,12 @@ let
     name = "mechanize-0.1.11";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://wwwsearch.sourceforge.net/mechanize/src/${name}.tar.gz";
       sha256 = "1h62mwy4iz09jqz17nrb9j8y0djd500zdfqwrz9xmdwqzqwixkj2";
     };
 
-    propagatedBuildInputs = [ clientform ];
+    propagatedBuildInputs = with self; [ clientform ];
 
     meta = {
       description = "Stateful programmatic web browsing in Python";
@@ -4812,7 +4804,7 @@ let
   meld3 = buildPythonPackage rec {
     name = "meld3-1.0.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/m/meld3/meld3-1.0.0.tar.gz;
       md5 = "ca270506dd4ecb20ae26fa72fbd9b0be";
     };
@@ -4829,10 +4821,10 @@ let
   memcached = buildPythonPackage rec {
     name = "memcached-1.51";
 
-    src = if isPy3k then fetchurl {
+    src = if isPy3k then pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/python3-memcached/python3-${name}.tar.gz";
       sha256 = "0na8b369q8fivh3y0nvzbvhh3lgvxiyyv9xp93cnkvwfsr8mkgkw";
-    } else fetchurl {
+    } else pkgs.fetchurl {
       url = "http://ftp.tummy.com/pub/python-memcached/old-releases/python-${name}.tar.gz";
       sha256 = "124s98m6hvxj6x90d7aynsjfz878zli771q96ns767r2mbqn7192";
     };
@@ -4847,7 +4839,7 @@ let
   memory_profiler = buildPythonPackage rec {
     name = "memory_profiler-0.27";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/m/memory_profiler/memory_profiler-0.27.tar.gz";
       md5 = "212c0d7452dbaffb6b09474ac07b0668";
     };
@@ -4865,12 +4857,12 @@ let
     version = "1.2.8";
     name = "minimock-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://bitbucket.org/jab/minimock/get/${version}.zip";
       sha256 = "c88fa8a7120623f23990a7f086a9657f6ced09025a55e3be8649a30b4945441a";
     };
 
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
 
     checkPhase = "./test";
 
@@ -4884,7 +4876,7 @@ let
     name = "rainbowstream-${version}";
     version = "1.1.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/r/rainbowstream/${name}.tar.gz";
       sha256 = "04i2a8a5k6n6lgfpa9bzzbkhvywgd4bn3qlspl97pn8ply9kgszm";
     };
@@ -4903,7 +4895,7 @@ let
       done
     '';
 
-    buildInputs = [
+    buildInputs = with self; [
       pkgs.libjpeg pkgs.freetype pkgs.zlib
       pillow twitter pyfiglet requests arrow dateutil modules.readline pysocks
     ];
@@ -4920,12 +4912,12 @@ let
     baseName = "mitmproxy";
     name = "${baseName}-${meta.version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "${meta.homepage}/download/${name}.tar.gz";
       sha256 = "0mpyw8iw4l4jv175qlbn0rrlgiz1k79m44jncbdxfj8ddvvvyz2j";
     };
 
-    buildInputs = [
+    buildInputs = with self; [
       pkgs.pyopenssl pyasn1 urwid pil lxml flask protobuf netlib
     ];
 
@@ -4949,12 +4941,12 @@ let
   mock = buildPythonPackage (rec {
     name = "mock-1.0.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/m/mock/${name}.tar.gz";
       md5 = "c3971991738caa55ec7c356bbc154ee2";
     };
 
-    buildInputs = [ unittest2 ];
+    buildInputs = with self; [ unittest2 ];
 
     meta = {
       description = "Mock objects for Python";
@@ -4970,7 +4962,7 @@ let
     disabled = isPy3k;
     ver = "1.9.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://static.moinmo.in/files/moin-${ver}.tar.gz";
       sha256 = "f4ba1b5c956bd96d2a61e27e68d297aa63d1afbc80d5740e139dcdf0affb4db5";
     };
@@ -4987,13 +4979,13 @@ let
   moretools = buildPythonPackage rec {
     name = "moretools-0.1a41";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/m/moretools/${name}.tar.gz";
       sha256 = "1n442wprbl3cmg08233m1sr3g4z0i8hv9g6bhch7kzdmbl21399f";
     };
 
-    buildInputs = [ six pathpy setuptools ];
-    propagatedBuildInputs = [ decorator ];
+    buildInputs = with self; [ six pathpy setuptools ];
+    propagatedBuildInputs = with self; [ decorator ];
 
     meta = with stdenv.lib; {
       description = "Many more basic tools for python 2/3 extending itertools, functools, operator and collections";
@@ -5007,7 +4999,7 @@ let
   mox = buildPythonPackage rec {
     name = "mox-0.5.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pymox.googlecode.com/files/${name}.tar.gz";
       sha1 = "b71aeaacf31898c3b38d8b9ca5bcc0664499c0de";
     };
@@ -5025,7 +5017,7 @@ let
   mpmath = buildPythonPackage rec {
     name = "mpmath-0.17";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://mpmath.googlecode.com/files/${name}.tar.gz";
       sha256 = "1blgzwq4irzaf8abb4z0d2r48903n9zxf51fhnv3gv09bgxjqzxh";
     };
@@ -5048,7 +5040,7 @@ let
 
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/python-mpd/python-mpd-0.3.0.tar.gz";
       md5 = "5b3849b131e2fb12f251434597d65635";
     };
@@ -5064,7 +5056,7 @@ let
     name = "mrbob-${version}";
     version = "0.1.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/m/mr.bob/mr.bob-${version}.zip";
       md5 = "84a117c9a75b86842b0fa5f5c9c767f3";
     };
@@ -5075,7 +5067,7 @@ let
       export LC_ALL="en_US.UTF-8"
     '';
 
-    propagatedBuildInputs = [ argparse jinja2 six modules.readline ] ++
+    propagatedBuildInputs = with self; [ argparse jinja2 six modules.readline ] ++
                             (optionals isPy26 [ importlib ordereddict ]);
 
     meta = {
@@ -5088,7 +5080,7 @@ let
   munkres = buildPythonPackage rec {
     name = "munkres-1.0.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/m/munkres/${name}.tar.gz";
       md5 = "d7ba3b8c5001578ae229a2d5a655872f";
     };
@@ -5108,7 +5100,7 @@ let
   musicbrainzngs = buildPythonPackage rec {
     name = "musicbrainzngs-0.5";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/m/musicbrainzngs/${name}.tar.gz";
       md5 = "9e17a181af72d04a291c9a960bc73d44";
     };
@@ -5130,7 +5122,7 @@ let
   mutagen = buildPythonPackage (rec {
     name = "mutagen-1.23";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/m/mutagen/${name}.tar.gz";
       sha256 = "12f70aaf5ggdzll76bhhkn64b27xy9s1acx417dbsaqnnbis8s76";
     };
@@ -5150,7 +5142,7 @@ let
     name = "muttils-1.3";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = http://www.blacktrash.org/hg/muttils/archive/8bb26094df06.tar.bz2;
       sha256 = "1a4kxa0fpgg6rdj5p4kggfn8xpniqh8v5kbiaqc6wids02m7kag6";
     };
@@ -5174,14 +5166,14 @@ let
     # plenty of failing tests
     doCheck = false;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = mirror://sourceforge/mysql-python/MySQL-python-1.2.3.tar.gz;
       sha256 = "0vkyg9dmj29hzk7fy77f42p7bfj28skyzsjsjry4wqr3z6xnzrkx";
     };
 
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
 
-    propagatedBuildInputs = [ pkgs.mysql pkgs.zlib ];
+    propagatedBuildInputs = with self; [ pkgs.mysql pkgs.zlib ];
 
     meta = {
       description = "MySQL database binding for Python";
@@ -5194,7 +5186,7 @@ let
   mysql_connector_repackaged = buildPythonPackage rec {
     name = "mysql-connector-repackaged-0.3.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/m/mysql-connector-repackaged/${name}.tar.gz";
       md5 = "0b17ad1cb3fe763fd44487cb97cf45b2";
     };
@@ -5213,7 +5205,7 @@ let
     name = "namebench-1.0.5";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://namebench.googlecode.com/files/${name}.tgz";
       sha256 = "6cbde35ce94d1f31e7d48f5d8eec13238b4dbc505675a33f1e183e600c1482c3";
     };
@@ -5248,7 +5240,7 @@ let
   nbxmpp = buildPythonPackage rec {
     name = "nbxmpp-0.5.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       name = "${name}.tar.gz";
       url = "https://python-nbxmpp.gajim.org/downloads/6";
       sha256 = "0agr0ikfdmna5rjvm7lm0mx52cdwqp5b2xbx3inagp70whmdv219";
@@ -5265,7 +5257,7 @@ let
   netaddr = buildPythonPackage rec {
     name = "netaddr-0.7.5";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/downloads/drkjam/netaddr/${name}.tar.gz";
       sha256 = "0ssxic389rdc79zkz8dxcjpqdi5qs80h12khkag410cl9cwk11f2";
     };
@@ -5283,7 +5275,7 @@ let
     version = "0.10.4";
     name = "netifaces-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/n/netifaces/${name}.tar.gz";
       sha256 = "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln";
     };
@@ -5299,13 +5291,13 @@ let
     name = "${baseName}-${meta.version}";
     disabled = (!isPy27);
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/cortesi/netlib/archive/v${meta.version}.tar.gz";
       name = "${name}.tar.gz";
       sha256 = "1x2n126b7fal64fb5fzkp4by7ym0iswn3w9mh6pm4c1vjdpnk592";
     };
 
-    buildInputs = [
+    buildInputs = with self; [
       pkgs.pyopenssl pyasn1
     ];
 
@@ -5323,13 +5315,13 @@ let
     name = "nevow-${version}";
     version = "0.10.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/N/Nevow/Nevow-${version}.tar.gz";
       sha256 = "90631f68f626c8934984908d3df15e7c198939d36be7ead1305479dfc67ff6d0";
       name = "${name}.tar.gz";
     };
 
-    propagatedBuildInputs = [ twisted ];
+    propagatedBuildInputs = with self; [ twisted ];
 
     postInstall = "twistd --help > /dev/null";
 
@@ -5364,12 +5356,12 @@ let
     version = "1.3.4";
     name = "nose-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/n/nose/${name}.tar.gz";
       sha256 = "00qymfgwg4iam4xi0w9bnv7lcb3fypq1hzfafzgs1rfmwaj67g3n";
     };
 
-    buildInputs = [ coverage ];
+    buildInputs = with self; [ coverage ];
 
     doCheck = false;  # lot's of transient errors, too much hassle
     checkPhase = if python.is_py3k or false then ''
@@ -5388,12 +5380,12 @@ let
     version = "0.4";
     name = "nose-selecttests-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/n/nose-selecttests/${name}.zip";
       sha256 = "0lgrfgp3sq8xi8d9grrg0z8jsyk0wl8a3rxw31hb7vdncin5b7n5";
     };
 
-    propagatedBuildInputs = [ nose ];
+    propagatedBuildInputs = with self; [ nose ];
 
     meta = {
       description = "Simple nose plugin that enables developers to run subset of collected tests to spare some waiting time for better things";
@@ -5403,32 +5395,32 @@ let
 
   nose2 = if isPy26 then null else (buildPythonPackage rec {
     name = "nose2-0.4.5";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/n/nose2/${name}.tar.gz";
       md5 = "d7e51c848227488e3cc0424faf5511cd";
     };
     meta = {
       description = "nose2 is the next generation of nicer testing for Python";
     };
-    propagatedBuildInputs = [ six ];
+    propagatedBuildInputs = with self; [ six ];
     # AttributeError: 'module' object has no attribute 'collector'
     doCheck = false;
   });
 
   nosejs = buildPythonPackage {
     name = "nosejs-0.9.4";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/N/NoseJS/NoseJS-0.9.4.tar.gz;
       sha256 = "0qrhkd3sga56qf6k0sqyhwfcladwi05gl6aqmr0xriiq1sgva5dy";
     };
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
   };
 
   nose-cprof = buildPythonPackage rec {
     name = "nose-cprof-0.1-0";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/n/nose-cprof/${name}.tar.gz";
       md5 = "5db27c3b8f01915335ae6fc5fd3afd44";
     };
@@ -5437,19 +5429,19 @@ let
       description = "A python nose plugin to profile using cProfile rather than the default Hotshot profiler.";
     };
 
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
   };
 
 
   notify = pkgs.stdenv.mkDerivation (rec {
     name = "python-notify-0.1.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = http://www.galago-project.org/files/releases/source/notify-python/notify-python-0.1.1.tar.bz2;
       sha256 = "1kh4spwgqxm534qlzzf2ijchckvs0pwjxl1irhicjmlg7mybnfvx";
     };
 
-    patches = singleton (fetchurl {
+    patches = singleton (pkgs.fetchurl {
       name = "libnotify07.patch";
       url = "http://pkgs.fedoraproject.org/cgit/notify-python.git/plain/"
           + "libnotify07.patch?id2=289573d50ae4838a1658d573d2c9f4c75e86db0c";
@@ -5457,11 +5449,11 @@ let
     });
 
     postPatch = ''
-      sed -i -e '/^PYGTK_CODEGEN/s|=.*|="${pygtk}/bin/pygtk-codegen-2.0"|' \
+      sed -i -e '/^PYGTK_CODEGEN/s|=.*|="${self.pygtk}/bin/pygtk-codegen-2.0"|' \
         configure
     '';
 
-    buildInputs = [ python pkgs.pkgconfig pkgs.libnotify pygobject pygtk pkgs.glib pkgs.gtk pkgs.dbus_glib ];
+    buildInputs = with self; [ python pkgs.pkgconfig pkgs.libnotify pygobject pygtk pkgs.glib pkgs.gtk pkgs.dbus_glib ];
 
     postInstall = "cd $out/lib/python*/site-packages && ln -s gtk-*/pynotify .";
 
@@ -5478,7 +5470,7 @@ let
 
     sourceRoot = "${pkgs.notmuch.name}/bindings/python";
 
-    buildInputs = [ python pkgs.notmuch ];
+    buildInputs = with self; [ python pkgs.notmuch ];
 
     meta = {
       description = "A Python wrapper around notmuch";
@@ -5491,13 +5483,13 @@ let
     version = "2.4";
     name = "numexpr-${version}";
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = https://github.com/pydata/numexpr.git;
       rev = "606cc9a110711e947d35ac2770749c00dab184c8";
       sha256 = "1gxgkg7ncgjhnifn444iha5nrjhyr8sr6w5yp204186a1ysz858g";
     };
 
-    propagatedBuildInputs = with pkgs; [ numpy ];
+    propagatedBuildInputs = with self; [ numpy ];
 
     # Run the test suite.
     # It requires the build path to be in the python search path.
@@ -5528,7 +5520,7 @@ let
   numpy = buildPythonPackage ( rec {
     name = "numpy-1.8.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "mirror://sourceforge/numpy/${name}.tar.gz";
       sha256 = "1gcxlk3mf43pzpxvbw8kcfg173g4105j9szsfc1kxwablail6myf";
     };
@@ -5549,8 +5541,8 @@ let
     # error: invalid command 'test'
     doCheck = false;
 
-    buildInputs = [ pkgs.gfortran ];
-    propagatedBuildInputs = [ pkgs.liblapack pkgs.blas ];
+    buildInputs = with self; [ pkgs.gfortran ];
+    propagatedBuildInputs = with self; [ pkgs.liblapack pkgs.blas ];
 
     meta = {
       description = "Scientific tools for Python";
@@ -5562,14 +5554,14 @@ let
   nwdiag = buildPythonPackage rec {
     name = "nwdiag-1.0.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/n/nwdiag/${name}.tar.gz";
       md5 = "d81581a028840f8f7362ab21bf73e941";
     };
 
-    buildInputs = [ pep8 nose unittest2 docutils ];
+    buildInputs = with self; [ pep8 nose unittest2 docutils ];
 
-    propagatedBuildInputs = [ blockdiag ];
+    propagatedBuildInputs = with self; [ blockdiag ];
 
     # tests fail
     doCheck = false;
@@ -5588,13 +5580,13 @@ let
     name = "livestreamer-${version}";
     disabled = isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/chrippa/livestreamer/archive/v${version}.tar.gz";
       sha256 = "0f1m51wax4q17ida4h0ckyakmlchf36kbhfa9qs6bpxc6xqqbry0";
     };
 
-    buildInputs = [ pkgs.makeWrapper ];
-    propagatedBuildInputs = [ requests2 pkgs.rtmpdump pycrypto singledispatch futures ];
+    buildInputs = with self; [ pkgs.makeWrapper ];
+    propagatedBuildInputs = with self; [ requests2 pkgs.rtmpdump pycrypto singledispatch futures ];
     postInstall = ''
       wrapProgram $out/bin/livestreamer --prefix PATH : ${pkgs.rtmpdump}/bin
     '';
@@ -5613,14 +5605,14 @@ let
     name = "oauth2-1.5.211";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/o/oauth2/oauth2-1.5.211.tar.gz";
       sha256 = "82a38f674da1fa496c0fc4df714cbb058540bed72a30c50a2e344b0d984c4d21";
     };
 
-    propagatedBuildInputs = [ httplib2 ];
+    propagatedBuildInputs = with self; [ httplib2 ];
 
-    buildInputs = [ mock coverage ];
+    buildInputs = with self; [ mock coverage ];
 
     # ServerNotFoundError: Unable to find the server at oauth-sandbox.sevengoslings.net
     doCheck = false;
@@ -5638,14 +5630,14 @@ let
   oauthlib = buildPythonPackage rec {
     name = "oauthlib-0.5.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/o/oauthlib/${name}.tar.gz";
       md5 = "d12c507de33403ebdf290fbffdb98213";
     };
 
-    buildInputs = [ mock nose unittest2 ];
+    buildInputs = with self; [ mock nose unittest2 ];
 
-    propagatedBuildInputs = [ pycrypto ];
+    propagatedBuildInputs = with self; [ pycrypto ];
 
     meta = {
       homepage = https://github.com/idan/oauthlib;
@@ -5656,13 +5648,13 @@ let
 
   obfsproxy = buildPythonPackage ( rec {
     name = "obfsproxy-0.2.2";
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = https://git.torproject.org/pluggable-transports/obfsproxy.git;
       rev = "3c4e843a30c430aec1de03e0e09ef654072efc03";
       sha256 = "8fd1e63a37bc42add7609d97d50ecd81da81881bcf7015a9e2958531dbf39018";
     };
 
-    propagatedBuildInputs = [ pyptlib argparse twisted pycrypto ];
+    propagatedBuildInputs = with self; [ pyptlib argparse twisted pycrypto ];
 
     meta = {
       description = "a pluggable transport proxy";
@@ -5674,7 +5666,7 @@ let
     name = "offtrac-0.1.0";
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/o/offtrac/${name}.tar.gz";
       sha256 = "06vd010pa1z7lyfj1na30iqzffr4kzj2k2sba09spik7drlvvl56";
     };
@@ -5705,7 +5697,7 @@ let
 
   ordereddict = if isPy26 then (buildPythonPackage {
     name = "ordereddict-1.1";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/o/ordereddict/ordereddict-1.1.tar.gz";
       md5 = "a0ed854ee442051b249bfad0f638bbec";
     };
@@ -5715,7 +5707,7 @@ let
   ply = buildPythonPackage (rec {
     name = "ply-3.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://www.dabeaz.com/ply/${name}.tar.gz";
       sha256 = "0sslnbpws847r1j1f41fjpn76w0asywfqgxwzyjrvmmxnw8myhxg";
     };
@@ -5749,7 +5741,7 @@ let
     name = "osc-0.133+git";
     disabled = isPy3k;
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = git://gitorious.org/opensuse/osc.git;
       rev = "6cd541967ee2fca0b89e81470f18b97a3ffc23ce";
       sha256 = "a39ce0e321e40e9758bf7b9128d316c71b35b80eabc84f13df492083bb6f1cc6";
@@ -5759,20 +5751,20 @@ let
     doCheck = false;
     postInstall = "ln -s $out/bin/osc-wrapper.py $out/bin/osc";
 
-    propagatedBuildInputs = [ pythonPackages.m2crypto ];
+    propagatedBuildInputs = with self; [ self.m2crypto ];
 
   });
 
   pandas = buildPythonPackage rec {
     name = "pandas-0.14.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pandas/${name}.tar.gz";
       sha256 = "f7997debca756c4dd5ccdf5a010dfe3d1c7dac98ee706b715d994cf7c9d35528";
     };
 
-    buildInputs = [ nose ];
-    propagatedBuildInputs = [ dateutil numpy pytz modules.sqlite3 ];
+    buildInputs = with self; [ nose ];
+    propagatedBuildInputs = with self; [ dateutil numpy pytz modules.sqlite3 ];
 
     # Tests require networking to pass
     doCheck = false;
@@ -5789,12 +5781,12 @@ let
   paramiko = buildPythonPackage rec {
     name = "paramiko-1.14.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/paramiko/${name}.tar.gz";
       md5 = "e26324fd398af68ad506fe98853835c3";
     };
 
-    propagatedBuildInputs = [ pycrypto ecdsa ];
+    propagatedBuildInputs = with self; [ pycrypto ecdsa ];
 
     # tests failures since 1.14.0 release..
     doCheck = false;
@@ -5821,12 +5813,12 @@ let
     name = "paste-1.7.5.1";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = http://pypi.python.org/packages/source/P/Paste/Paste-1.7.5.1.tar.gz;
       md5 = "7ea5fabed7dca48eb46dc613c4b6c4ed";
     };
 
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
 
     doCheck = false; # some files required by the test seem to be missing
 
@@ -5841,12 +5833,12 @@ let
     version = "1.5.2";
     name = "paste-deploy-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/P/PasteDeploy/PasteDeploy-${version}.tar.gz";
       md5 = "352b7205c78c8de4987578d19431af3b";
     };
 
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
 
     meta = {
       description = "Load, configure, and compose WSGI applications and servers";
@@ -5858,7 +5850,7 @@ let
   pathpy = buildPythonPackage rec {
     name = "path.py-5.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/path.py/${name}.zip";
       sha256 = "0n1kpbbm1dg5f484yzxr7gb3ak6vjp92j70nw3bgjzsj9fh26afq";
     };
@@ -5874,12 +5866,12 @@ let
   paypalrestsdk = buildPythonPackage rec {
     name = "paypalrestsdk-0.7.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/paypalrestsdk/${name}.tar.gz";
       sha256 = "117kfipzfahf9ysv414bh1mmm5cc9ck5zb6rhpslx1f8gk3frvd6";
     };
 
-    propagatedBuildInputs = [ httplib2 ];
+    propagatedBuildInputs = with self; [ httplib2 ];
 
     meta = {
       homepage = https://developer.paypal.com/;
@@ -5891,7 +5883,7 @@ let
   pbr = buildPythonPackage rec {
     name = "pbr-0.9.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pbr/${name}.tar.gz";
       sha256 = "e5a57c434b1faa509a00bf458d2c7af965199d9cced3d05a547bff9880f7e8cb";
     };
@@ -5901,7 +5893,7 @@ let
 
     doCheck = false;
 
-    buildInputs = [ pip ];
+    buildInputs = with self; [ pip ];
 
     meta = {
       description = "Python Build Reasonableness";
@@ -5914,7 +5906,7 @@ let
     name = "pelican-${version}";
     version = "3.4.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pelican/${name}.tar.gz";
       md5 = "8e57bdd075503903125b14621b1e533d";
     };
@@ -5928,7 +5920,7 @@ let
     #buildInputs = [nose mock];
     doCheck = false;
 
-    propagatedBuildInputs = [jinja2 pygments docutils pytz unidecode six dateutil feedgenerator blinker pillow beautifulsoup4];
+    propagatedBuildInputs = with self; [jinja2 pygments docutils pytz unidecode six dateutil feedgenerator blinker pillow beautifulsoup4];
 
     meta = {
       homepage = http://getpelican.com/;
@@ -5942,7 +5934,7 @@ let
     name = "pep8-${version}";
     version = "1.5.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pep8/${name}.tar.gz";
       md5 = "f6adbdd69365ecca20513c709f9b7c93";
     };
@@ -5959,7 +5951,7 @@ let
   pexpect = buildPythonPackage {
     name = "pexpect-2.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "mirror://sourceforge/pexpect/pexpect-2.3.tar.gz";
       sha256 = "0x8bfjjqygriry1iyygm5048ykl5qpbpzqfp6i8dhkslm3ryf5fk";
     };
@@ -5994,12 +5986,12 @@ let
   pg8000 = buildPythonPackage rec {
     name = "pg8000-1.9.14";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pg8000/${name}.tar.gz";
       sha256 = "1vandvfaf1m3a1fbc7nbm6syfqr9bazhzsnmai0jpjkbmb349izs";
     };
 
-    propagatedBuildInputs = [ pytz ];
+    propagatedBuildInputs = with self; [ pytz ];
 
     meta = {
       maintainers = [
@@ -6013,36 +6005,36 @@ let
   pip = buildPythonPackage rec {
     version = "1.5.6";
     name = "pip-${version}";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pip/pip-${version}.tar.gz";
       md5 = "01026f87978932060cc86c1dc527903e";
     };
-    buildInputs = [ mock scripttest virtualenv pytest ];
+    buildInputs = with self; [ mock scripttest virtualenv pytest ];
   };
 
 
   pika = buildPythonPackage {
     name = "pika-0.9.12";
     disabled = isPy3k;
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/p/pika/pika-0.9.12.tar.gz;
       md5 = "7174fc7cc5570314fa3cfaa729106482";
     };
-    buildInputs = [ nose mock pyyaml ];
+    buildInputs = with self; [ nose mock pyyaml ];
 
-    propagatedBuildInputs = [ unittest2 ];
+    propagatedBuildInputs = with self; [ unittest2 ];
   };
 
   pil = buildPythonPackage rec {
     name = "PIL-${version}";
     version = "1.1.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://effbot.org/downloads/Imaging-${version}.tar.gz";
       sha256 = "04aj80jhfbmxqzvmq40zfi4z3cw6vi01m3wkk6diz3lc971cfnw9";
     };
 
-    buildInputs = [ python pkgs.libjpeg pkgs.zlib pkgs.freetype ];
+    buildInputs = with self; [ python pkgs.libjpeg pkgs.zlib pkgs.freetype ];
 
     disabled = isPy3k;
     doCheck = true;
@@ -6076,12 +6068,12 @@ let
   pillow = buildPythonPackage rec {
     name = "Pillow-2.3.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/P/Pillow/${name}.zip";
       md5 = "56b6614499aacb7d6b5983c4914daea7";
     };
 
-    buildInputs = [ pkgs.freetype pkgs.libjpeg pkgs.zlib pkgs.libtiff pkgs.libwebp ];
+    buildInputs = with self; [ 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.
     preConfigure = ''
@@ -6116,9 +6108,9 @@ let
   plumbum = buildPythonPackage rec {
     name = "plumbum-1.4.2";
 
-    buildInputs = [ pythonPackages.six ];
+    buildInputs = with self; [ self.six ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/plumbum/${name}.tar.gz";
       md5 = "38b526af9012a5282ae91dfe372cefd3";
     };
@@ -6129,7 +6121,7 @@ let
     name = "polib-${version}";
     version = "1.0.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://bitbucket.org/izi/polib/downloads/${name}.tar.gz";
       sha256 = "16klwlswfbgmkzrra80fgzhic9447pk3mnr75r2fkz72bkvpcclb";
     };
@@ -6149,13 +6141,13 @@ let
     rev  = "db80fc95ed01d2c559c4bdc7da8514ed3cc7fcd9";
     name = "powerline-beta_${rev}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://github.com/Lokaltog/powerline/tarball/${rev}";
       name   = "${name}.tar.bz";
       sha256 = "1csd4vasy0avwfxrpdr61plj6k1nzf36f6qvd9kl15s3lnspsfaz";
     };
 
-    propagatedBuildInputs = [ pkgs.git pkgs.mercurial pkgs.bazaar pythonPackages.psutil pythonPackages.pygit2 ];
+    propagatedBuildInputs = with self; [ pkgs.git pkgs.mercurial pkgs.bazaar self.psutil self.pygit2 ];
 
     # error: This is still beta and some tests still fail
     doCheck = false;
@@ -6189,7 +6181,7 @@ let
   prettytable = buildPythonPackage rec {
     name = "prettytable-0.7.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/P/PrettyTable/${name}.tar.bz2";
       sha1 = "ad346a18d92c1d95f2295397c7a8a4f489e48851";
     };
@@ -6209,7 +6201,7 @@ let
   protobuf = buildPythonPackage rec {
     inherit (pkgs.protobuf) name src;
 
-    propagatedBuildInputs = [ pkgs.protobuf google_apputils  ];
+    propagatedBuildInputs = with self; [ pkgs.protobuf google_apputils  ];
     sourceRoot = "${name}/python";
 
 
@@ -6224,7 +6216,7 @@ let
     name = "psutil-${version}";
     version = "2.1.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/psutil/${name}.tar.gz";
       sha256 = "14smqj57yjrm6hjz5n2annkgv0kmxckdhqvfx784f4d4lr52m0dz";
     };
@@ -6246,12 +6238,12 @@ let
     # error: invalid command 'test'
     doCheck = false;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/psycopg2/${name}.tar.gz";
       sha256 = "02h33barxigsczpympnwa0yvw9hgdv8d63bxm5x251ri26xz6b9s";
     };
 
-    propagatedBuildInputs = [ pkgs.postgresql ];
+    propagatedBuildInputs = with self; [ pkgs.postgresql ];
 
     meta = {
       description = "PostgreSQL database adapter for the Python programming language";
@@ -6264,7 +6256,7 @@ let
     name = "publicsuffix-${version}";
     version = "1.0.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/publicsuffix/${name}.tar.gz";
       md5 = "f86babf56f6e58b564d3853adebcf37a";
     };
@@ -6280,7 +6272,7 @@ let
   py = buildPythonPackage rec {
     name = "py-1.4.24";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/py/${name}.tar.gz";
       md5 = "8f32ee0cd1e01472a255fe1d28d81217";
     };
@@ -6290,7 +6282,7 @@ let
   pyasn1 = buildPythonPackage ({
     name = "pyasn1-0.1.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "mirror://sourceforge/pyasn1/0.1.7/pyasn1-0.1.7.tar.gz";
       sha256 = "1aqy21fb564gmnkw2fbkn55c40diyx3z0ixh4savvxikqm9ivy74";
     };
@@ -6308,12 +6300,12 @@ let
     name = "python-pyaudio-${version}";
     version = "0.2.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://people.csail.mit.edu/hubert/pyaudio/packages/pyaudio-${version}.tar.gz";
       md5 = "623809778f3d70254a25492bae63b575";
     };
 
-    buildInputs = [ python pkgs.portaudio ];
+    buildInputs = with self; [ python pkgs.portaudio ];
 
     buildPhase = if stdenv.isDarwin then ''
       PORTAUDIO_PATH="${pkgs.portaudio}" ${python}/bin/${python.executable} setup.py build --static-link
@@ -6334,7 +6326,7 @@ let
   pygit2 = buildPythonPackage rec {
     name = "pygit2-0.21.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pygit2/${name}.tar.gz";
       sha256 = "0lya4v91d4y5fwrb55n8m8avgmz0l81jml2spvx6r7j1czcx3zic";
     };
@@ -6343,7 +6335,7 @@ let
       export DYLD_LIBRARY_PATH="${pkgs.libgit2}/lib"
     '' else "" );
 
-    propagatedBuildInputs = [ pkgs.libgit2 ] ++ optionals (!isPyPy) [ cffi ];
+    propagatedBuildInputs = with self; [ pkgs.libgit2 ] ++ optionals (!isPyPy) [ cffi ];
 
     preCheck = ''
       # disable tests that require networking
@@ -6363,12 +6355,12 @@ let
   Babel = buildPythonPackage (rec {
     name = "Babel-1.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/B/Babel/${name}.tar.gz";
       sha256 = "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz";
     };
 
-    propagatedBuildInputs = [ pytz ];
+    propagatedBuildInputs = with self; [ pytz ];
 
     meta = {
       homepage = http://babel.edgewall.org;
@@ -6384,7 +6376,7 @@ let
     name = "pyblock-${version}";
     version = "0.53";
 
-    src = fetchurl rec {
+    src = pkgs.fetchurl rec {
       url = "http://pkgs.fedoraproject.org/repo/pkgs/python-pyblock/"
           + "${name}.tar.bz2/${md5}/${name}.tar.bz2";
       md5 = "f6d33a8362dee358517d0a9e2ebdd044";
@@ -6395,7 +6387,7 @@ let
              -e 's/-Werror *//' -e 's|/usr/|'"$out"'/|' Makefile
     '';
 
-    buildInputs = [ python pkgs.lvm2 pkgs.dmraid ];
+    buildInputs = with self; [ python pkgs.lvm2 pkgs.dmraid ];
 
     makeFlags = [
       "USESELINUX=0"
@@ -6412,7 +6404,7 @@ let
     name = "pycapnp-0.4.4";
     homepage = "http://jparyani.github.io/pycapnp/index.html";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pycapnp/${name}.tar.gz";
       sha256 = "33b2b79438bb9bf37097966e1c90403c34ab49be1eb647ee251b62f362ee3537";
     };
@@ -6436,7 +6428,7 @@ let
     name = "pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958";
     disabled = isPy3k || isPyPy;  # see https://bitbucket.org/pypy/pypy/issue/1190/
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pycryptopp/${name}.tar.gz";
       sha256 = "0n90h1yg7bfvlbhnc54xb6dbqm286ykaksyg04kxlhyjgf8mhq8i";
     };
@@ -6445,7 +6437,7 @@ let
     # in the pycryptopp distribution.
     preConfigure = "export PYCRYPTOPP_DISABLE_EMBEDDED_CRYPTOPP=1";
 
-    buildInputs = [ setuptoolsDarcs darcsver pkgs.cryptopp ];
+    buildInputs = with self; [ setuptoolsDarcs darcsver pkgs.cryptopp ];
 
     meta = {
       homepage = http://allmydata.org/trac/pycryptopp;
@@ -6464,12 +6456,12 @@ let
     name = "pycurl-7.19.5";
     disabled = isPyPy; # https://github.com/pycurl/pycurl/issues/208
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pycurl.sourceforge.net/download/${name}.tar.gz";
       sha256 = "0hqsap82zklhi5fxhc69kxrwzb0g9566f7sdpz7f9gyxkmyam839";
     };
 
-    propagatedBuildInputs = [ pkgs.curl pkgs.openssl ];
+    propagatedBuildInputs = with self; [ pkgs.curl pkgs.openssl ];
 
     # error: invalid command 'test'
     doCheck = false;
@@ -6491,7 +6483,7 @@ let
     name = "pycurl2-7.20.0";
     disabled = isPy3k;
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = "https://github.com/Lispython/pycurl.git";
       rev = "0f00109950b883d680bd85dc6e8a9c731a7d0d13";
       sha256 = "0mhg7f9y5zl0m2xgz3rf1yqjd6l8n0qhfk7bpf36r44jfnhj75ld";
@@ -6500,7 +6492,7 @@ let
     # error: (6, "Couldn't resolve host 'h.wrttn.me'")
     doCheck = false;
 
-    buildInputs = [ pkgs.curl simplejson unittest2 nose ];
+    buildInputs = with self; [ pkgs.curl simplejson unittest2 nose ];
 
     meta = {
       homepage = https://pypi.python.org/pypi/pycurl2;
@@ -6514,11 +6506,11 @@ let
     name = "pydot-1.0.2";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pydot/${name}.tar.gz";
       md5 = "cd739651ae5e1063a89f7efd5a9ec72b";
     };
-    propagatedBuildInputs = [pyparsing pkgs.graphviz];
+    propagatedBuildInputs = with self; [pyparsing pkgs.graphviz];
     meta = {
       homepage = http://code.google.com/p/pydot/;
       description = "pydot allows to easily create both directed and non directed graphs from Python.";
@@ -6528,11 +6520,11 @@ let
   pyfeed = buildPythonPackage rec {
     url = "http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz";
     name = stdenv.lib.nameFromURL url ".tar";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       inherit url;
       sha256 = "1h4msq573m7wm46h3cqlx4rsn99f0l11rhdqgf50lv17j8a8vvy1";
     };
-    propagatedBuildInputs = [xe];
+    propagatedBuildInputs = with self; [xe];
 
     # error: invalid command 'test'
     doCheck = false;
@@ -6547,7 +6539,7 @@ let
     name = "pyfiglet-${version}";
     version = "0.7.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/p/pyfiglet/${name}.tar.gz";
       sha256 = "0v8a18wvaqnb1jksyv5dc5n6zj0vrkyhz0ivmm8gfwpa0ky6n68y";
     };
@@ -6564,12 +6556,12 @@ let
   pyflakes = buildPythonPackage rec {
     name = "pyflakes-0.8.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyflakes/${name}.tar.gz";
       md5 = "905fe91ad14b912807e8fdc2ac2e2c23";
     };
 
-    buildInputs = [ unittest2 ];
+    buildInputs = with self; [ unittest2 ];
 
     doCheck = !isPyPy;
 
@@ -6584,7 +6576,7 @@ let
   pyglet = buildPythonPackage rec {
     name = "pyglet-1.1.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pyglet.googlecode.com/files/${name}.tar.gz";
       sha256 = "048n20d606i3njnzhajadnznnfm8pwchs43hxs50da9p79g2m6qx";
     };
@@ -6607,7 +6599,7 @@ let
   pygments = buildPythonPackage rec {
     name = "Pygments-1.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/P/Pygments/${name}.tar.gz";
       md5 = "a18feedf6ffd0b0cc8c8b0fbdb2027b1";
     };
@@ -6624,7 +6616,7 @@ let
     name = "pygpgme-${version}";
     disabled = isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://launchpad.net/pygpgme/trunk/${version}/+download/${name}.tar.gz";
       sha256 = "5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1";
     };
@@ -6632,7 +6624,7 @@ let
     # error: invalid command 'test'
     doCheck = false;
 
-    propagatedBuildInputs = [ pkgs.gpgme ];
+    propagatedBuildInputs = with self; [ pkgs.gpgme ];
 
     meta = {
       homepage = "https://launchpad.net/pygpgme";
@@ -6647,13 +6639,13 @@ let
     name = "python-pyinotify-${version}";
     version = "0.9.3";
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = "git://github.com/seb-m/pyinotify.git";
       rev = "refs/tags/${version}";
       sha256 = "d38ce95e4af00391e58246a8d7fe42bdb51d63054b09809600b2faef2a803472";
     };
 
-    buildInputs = [ python ];
+    buildInputs = with self; [ python ];
 
     installPhase = ''
       ${python}/bin/${python.executable} setup.py install --prefix=$out
@@ -6671,7 +6663,7 @@ let
     name = "pykickstart-${version}";
     version = "1.99.39";
 
-    src = fetchurl rec {
+    src = pkgs.fetchurl rec {
       url = "http://pkgs.fedoraproject.org/repo/pkgs/pykickstart/"
           + "${name}.tar.gz/${md5}/${name}.tar.gz";
       md5 = "d249f60aa89b1b4facd63f776925116d";
@@ -6682,7 +6674,7 @@ let
                  key=lambda m: m.__name__)/" tests/baseclass.py
     '';
 
-    propagatedBuildInputs = [ urlgrabber ];
+    propagatedBuildInputs = with self; [ urlgrabber ];
 
     checkPhase = ''
       export PYTHONPATH="$PYTHONPATH:."
@@ -6701,12 +6693,12 @@ let
     name = "pyodbc-3.0.7";
     disabled = isPyPy;  # use pypypdbc instead
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pyodbc.googlecode.com/files/${name}.zip";
       sha256 = "0ldkm8xws91j7zbvpqb413hvdz8r66bslr451q3qc0xi8cnmydfq";
     };
 
-    buildInputs = [ pkgs.libiodbc ];
+    buildInputs = with self; [ pkgs.libiodbc ];
 
     meta = with stdenv.lib; {
       description = "Python ODBC module to connect to almost any database";
@@ -6721,7 +6713,7 @@ let
   pyparsing = buildPythonPackage rec {
     name = "pyparsing-2.0.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyparsing/${name}.tar.gz";
       sha256 = "1r742rjbagf2i166k2w0r192adfw7l9lnsqz7wh4mflf00zws1q0";
     };
@@ -6741,7 +6733,7 @@ let
     version = "3.10";
     disabled = isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://fedorahosted.org/releases/p/y/pyparted/${name}.tar.gz";
       sha256 = "17wq4invmv1nfazaksf59ymqyvgv3i8h4q03ry2az0s9lldyg3dv";
     };
@@ -6761,9 +6753,9 @@ let
       PATH="${pkgs.parted}/sbin:$PATH"
     '';
 
-    buildInputs = [ pkgs.pkgconfig ];
+    buildInputs = with self; [ pkgs.pkgconfig ];
 
-    propagatedBuildInputs = [ pkgs.parted ];
+    propagatedBuildInputs = with self; [ pkgs.parted ];
 
     checkPhase = ''
       patchShebangs Makefile
@@ -6782,7 +6774,7 @@ let
   pyptlib = buildPythonPackage (rec {
     name = "pyptlib-${version}";
     version = "0.0.3";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pyptlib/pyptlib-${version}.tar.gz";
       sha256 = "0mklak456jqifx57j9jmpb69h3ybxc880qk86pg4g8jk0i14pxh3";
     };
@@ -6796,12 +6788,12 @@ let
     name = "pyqtgraph-${version}";
     version = "0.9.8";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pyqtgraph/${name}.tar.gz";
       sha256 = "1fnhj26d9qrqqmjx092m1qspclh3mia3vag7rji5wciw0plpszi5";
     };
 
-    propagatedBuildInputs = [ scipy numpy pyqt4 pyopengl ];
+    propagatedBuildInputs = with self; [ scipy numpy pyqt4 pyopengl ];
 
     meta = with stdenv.lib; {
       description = "Scientific Graphics and GUI Library for Python";
@@ -6816,7 +6808,7 @@ let
     name = "Pyro-3.16";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/P/Pyro/${name}.tar.gz";
       md5 = "59d4d3f4a8786776c9d7f9051b8f1a69";
     };
@@ -6833,7 +6825,7 @@ let
   pyrss2gen = buildPythonPackage (rec {
     name = "PyRSS2Gen-1.0.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/P/PyRSS2Gen/${name}.tar.gz";
       md5 = "eae2bc6412c5679c287ecc1a59588f75";
     };
@@ -6850,12 +6842,12 @@ let
     version = "4.2.5";
     name = "pysnmp-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pysnmp/${name}.tar.gz";
       sha256 = "0zq7yx8732ad9dxpxqgpqyixj7kfwbvf402q7l5njkv0kbcnavn4";
     };
 
-    propagatedBuildInputs = [ pyasn1 pycrypto ];
+    propagatedBuildInputs = with self; [ pyasn1 pycrypto ];
 
     meta = with stdenv.lib; {
       homepage = http://pysnmp.sf.net;
@@ -6870,7 +6862,7 @@ let
     name = "pysocks-${version}";
     version = "1.5.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/P/PySocks/PySocks-${version}.tar.gz";
       sha256 = "10wq5311qrnk8rvzsh6gwzxi7h51pgvzw3d7s1mb39fsvf0vyjdk";
     };
@@ -6888,18 +6880,18 @@ let
     name = "python-fedora-0.3.33";
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://fedorahosted.org/releases/p/y/python-fedora/${name}.tar.gz";
       sha256 = "1g05bh7d5d0gzrlnhpnca7jpqbgs2rgnlzzbvzzxmdbmlkqi3mws";
     };
-    propagatedBuildInputs = [ kitchen requests bunch paver ];
+    propagatedBuildInputs = with self; [ kitchen requests bunch paver ];
     doCheck = false;
   });
 
   python_keyczar = buildPythonPackage rec {
     name = "python-keyczar-0.71c";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/p/python-keyczar/${name}.tar.gz";
       sha256 = "18mhiwqq6vp65ykmi8x3i5l3gvrvrrr8z2kv11z1rpixmyr7sw1p";
     };
@@ -6912,14 +6904,14 @@ let
       platforms   = platforms.unix;
     };
 
-    buildInputs = [ pyasn1 pycrypto ];
+    buildInputs = with self; [ pyasn1 pycrypto ];
   };
 
   pyudev = buildPythonPackage rec {
     name = "pyudev-${version}";
     version = "0.16.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pyudev/${name}.tar.gz";
       md5 = "4034de584b6d9efcbfc590a047c63285";
     };
@@ -6930,7 +6922,7 @@ let
       }' pyudev/_libudev.py
     '';
 
-    propagatedBuildInputs = [ pkgs.udev ];
+    propagatedBuildInputs = with self; [ pkgs.udev ];
 
     meta = {
       homepage = "http://pyudev.readthedocs.org/";
@@ -6944,7 +6936,7 @@ let
   pynzb = buildPythonPackage (rec {
     name = "pynzb-0.1.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pynzb/${name}.tar.gz";
       md5 = "63c74a36348ac28aa99732dcb8be8c59";
     };
@@ -6960,7 +6952,7 @@ let
   progressbar = buildPythonPackage (rec {
     name = "progressbar-2.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/progressbar/${name}.tar.gz";
       md5 = "8ea4e2c17a8ec9e7d153767c5f2a7b28";
     };
@@ -6980,20 +6972,20 @@ let
     name = "ldap-2.4.15";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       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";
-    propagatedBuildInputs = [pkgs.openldap pkgs.cyrus_sasl pkgs.openssl];
+    propagatedBuildInputs = with self; [pkgs.openldap pkgs.cyrus_sasl pkgs.openssl];
   };
 
 
   pylibacl = buildPythonPackage (rec {
     name = "pylibacl-0.5.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/downloads/iustin/pylibacl/${name}.tar.gz";
       sha256 = "1idks7j9bn62xzsaxkvhl7bdq6ws8kv8aa0wahfh7724qlbbcf1k";
     };
@@ -7002,7 +6994,7 @@ let
     # IOError: [Errno 0] Error
     doCheck = false;
 
-    buildInputs = [ pkgs.acl ];
+    buildInputs = with self; [ pkgs.acl ];
 
     meta = {
       description = "A Python extension module for POSIX ACLs. It can be used to query, list, add, and remove ACLs from files and directories under operating systems that support them.";
@@ -7015,13 +7007,13 @@ let
     version = "0.25";
     name = "Pymacs-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/pinard/Pymacs/tarball/v${version}";
       name = "${name}.tar.gz";
       sha256 = "1hmy76c5igm95rqbld7gvk0az24smvc8hplfwx2f5rhn6frj3p2i";
     };
 
-    buildInputs = [ python ];
+    buildInputs = with self; [ python ];
 
     patchPhase = ''
       sed -e "s@ install@ install --prefix=$out@g" -i Makefile
@@ -7041,7 +7033,7 @@ let
       buildPythonPackage {
         name = "pyopengl-${version}";
 
-        src = fetchurl {
+        src = pkgs.fetchurl {
           url = "http://pypi.python.org/packages/source/P/PyOpenGL/PyOpenGL-${version}.tar.gz";
           sha256 = "9ef93bbea2c193898341f574e281c3ca0dfe87c53aa25fbec4b03581f6d1ba03";
         };
@@ -7075,18 +7067,18 @@ let
   pyquery = buildPythonPackage rec {
     name = "pyquery-1.2.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyquery/${name}.tar.gz";
       md5 = "268f08258738d21bc1920d7522f2a63b";
     };
 
-    propagatedBuildInputs = [ cssselect lxml ];
+    propagatedBuildInputs = with self; [ cssselect lxml ];
   };
 
   pyrax = buildPythonPackage rec {
     name = "pyrax-1.8.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyrax/${name}.tar.gz";
       sha256 = "0hvim60bhgfj91m7pp8jfmb49f087xqlgkqa505zw28r7yl0hcfp";
     };
@@ -7105,7 +7097,7 @@ let
     name = "pyreport-0.3.4c";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyreport/${name}.tar.gz";
       md5 = "3076164a7079891d149a23f9435581db";
     };
@@ -7124,7 +7116,7 @@ let
   pyserial = buildPythonPackage rec {
     name = "pyserial-2.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyserial/${name}.tar.gz";
       sha256 = "3542ec0838793e61d6224e27ff05e8ce4ba5a5c5cc4ec5c6a3e8d49247985477";
     };
@@ -7141,7 +7133,7 @@ let
   pysphere = buildPythonPackage rec {
     name = "pysphere-0.1.8";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pysphere.googlecode.com/files/${name}.zip";
       md5 = "c57cba33626ac4b1e3d1974923d59232";
     };
@@ -7157,7 +7149,7 @@ let
     name = "pysqlite-2.6.3";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pysqlite/${name}.tar.gz";
       sha256 = "13djzgnbi71znjjyaw4nybg6smilgszcid646j5qav7mdchkb77y";
     };
@@ -7165,7 +7157,7 @@ let
     # Since the `.egg' file is zipped, the `NEEDED' of the `.so' files
     # it contains is not taken into account.  Thus, we must explicitly make
     # it a propagated input.
-    propagatedBuildInputs = [ pkgs.sqlite ];
+    propagatedBuildInputs = with self; [ pkgs.sqlite ];
 
     patchPhase = ''
       substituteInPlace "setup.cfg"                                     \
@@ -7211,12 +7203,12 @@ let
   pysvn = pkgs.stdenv.mkDerivation {
     name = "pysvn-1.7.8";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       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 ]
+    buildInputs = with self; [ python pkgs.subversion pkgs.apr pkgs.aprutil pkgs.expat pkgs.neon pkgs.openssl ]
       ++ (if stdenv.isLinux then [pkgs.e2fsprogs] else []);
 
     # There seems to be no way to pass that path to configure.
@@ -7256,7 +7248,7 @@ let
   pytz = buildPythonPackage rec {
     name = "pytz-2013.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pytz/${name}.tar.bz2";
       md5 = "ec7076947a46a8a3cb33cbf2983a562c";
     };
@@ -7271,13 +7263,13 @@ let
   pyutil = buildPythonPackage (rec {
     name = "pyutil-1.7.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyutil/${name}.tar.gz";
       sha256 = "c303bb779f96073820e2eb7c9692fe15a57df491eb356839f3cb3377ed03b844";
     };
 
-    buildInputs = [ setuptoolsDarcs setuptoolsTrial ] ++ (if doCheck then [ simplejson ] else []);
-    propagatedBuildInputs = [ zbase32 argparse twisted ];
+    buildInputs = with self; [ setuptoolsDarcs setuptoolsTrial ] ++ (if doCheck then [ simplejson ] else []);
+    propagatedBuildInputs = with self; [ zbase32 argparse twisted ];
     # Tests fail because they try to write new code into the twisted
     # package, apparently some kind of plugin.
     doCheck = false;
@@ -7306,7 +7298,7 @@ let
     name = "pywebkitgtk-${version}";
     version = "1.1.8";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pywebkitgtk.googlecode.com/files/${name}.tar.bz2";
       sha256 = "1svlwyl61rvbqbcbalkg6pbf38yjyv7qkq9sx4x35yk69lscaac2";
     };
@@ -7326,7 +7318,7 @@ let
   pyxattr = buildPythonPackage (rec {
     name = "pyxattr-0.5.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/downloads/iustin/pyxattr/${name}.tar.gz";
       sha256 = "0jmkffik6hdzs7ng8c65bggss2ai40nm59jykswdf5lpd36cxddq";
     };
@@ -7334,7 +7326,7 @@ let
     # error: invalid command 'test'
     doCheck = false;
 
-    buildInputs = [ pkgs.attr ];
+    buildInputs = with self; [ pkgs.attr ];
 
     meta = {
       description = "A Python extension module which gives access to the extended attributes for filesystem objects available in some operating systems.";
@@ -7346,13 +7338,13 @@ let
   pyyaml = buildPythonPackage (rec {
     name = "PyYAML-3.10";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pyyaml.org/download/pyyaml/${name}.zip";
       sha256 = "1r127fa354ppb667f4acxlzwxixap1jgzjrr790bw8mcpxv2hqaa";
     };
 
-    buildInputs = [ pkgs.pyrex ];
-    propagatedBuildInputs = [ pkgs.libyaml ];
+    buildInputs = with self; [ pkgs.pyrex ];
+    propagatedBuildInputs = with self; [ pkgs.libyaml ];
 
     meta = {
       description = "The next generation YAML parser and emitter for Python";
@@ -7365,7 +7357,7 @@ let
   recaptcha_client = buildPythonPackage rec {
     name = "recaptcha-client-1.0.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/recaptcha-client/${name}.tar.gz";
       md5 = "74228180f7e1fb76c4d7089160b0d919";
     };
@@ -7382,12 +7374,12 @@ let
    in buildPythonPackage rec {
     name = "reportlab-3.1.8";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/reportlab/${name}.tar.gz";
       md5 = "820a9fda647078503597b85cdba7ed7f";
     };
 
-    buildInputs = [freetype];
+    buildInputs = with self; [freetype];
 
     # error: invalid command 'test'
     doCheck = false;
@@ -7402,7 +7394,7 @@ let
   requests = buildPythonPackage rec {
     name = "requests-1.2.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/requests/${name}.tar.gz";
       md5 = "adbd3f18445f7fe5e77f65c502e264fb";
     };
@@ -7417,7 +7409,7 @@ let
   requests2 = buildPythonPackage rec {
     name = "requests-2.2.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/requests/${name}.tar.gz";
       md5 = "ac27081135f58d1a43e4fb38258d6f4e";
     };
@@ -7432,12 +7424,12 @@ let
   requests_oauthlib = buildPythonPackage rec {
     name = "requests-oauthlib-0.3.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/requests-oauthlib/${name}.tar.gz";
       md5 = "35b3b750493c231145c39db0216813e7";
     };
 
-    propagatedBuildInputs = [ oauthlib requests ];
+    propagatedBuildInputs = with self; [ oauthlib requests ];
 
     meta = {
       description = "OAuthlib authentication support for Requests";
@@ -7449,7 +7441,7 @@ let
   quantities = buildPythonPackage rec {
     name = "quantities-0.10.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/q/quantities/quantities-0.10.1.tar.gz";
       md5 = "e924e21c0a5ddc9ebcdacbbe511b8ec7";
     };
@@ -7464,15 +7456,15 @@ let
   qutip = buildPythonPackage rec {
     name = "qutip-2.2.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://qutip.googlecode.com/files/QuTiP-2.2.0.tar.gz";
       sha1 = "76ba4991322a991d580e78a197adc80d58bd5fb3";
     };
 
-    propagatedBuildInputs = [ numpy scipy matplotlib pkgs.pyqt4
+    propagatedBuildInputs = with self; [ numpy scipy matplotlib pkgs.pyqt4
       cython ];
 
-    buildInputs = with pkgs; [ gcc qt4 blas ] ++ [ nose ];
+    buildInputs = with pkgs; [ gcc qt4 blas self.nose ];
 
     meta = {
       description = "QuTiP - Quantum Toolbox in Python";
@@ -7495,7 +7487,7 @@ let
   redis = buildPythonPackage rec {
     name = "redis-2.9.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/redis/${name}.tar.gz";
       sha256 = "1r7lrh4kxccyhr4pyp13ilymmvh22pi7aa9514dmnhi74zn4g5xg";
     };
@@ -7512,12 +7504,12 @@ let
   requests_oauth2 = buildPythonPackage rec {
     name = "requests-oauth2-0.1.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://github.com/maraujop/requests-oauth2/archive/0.1.1.tar.gz;
       sha256 = "1aij66qg9j5j4vzyh64nbg72y7pcafgjddxsi865racsay43xfqg";
     };
 
-    propagatedBuildInputs = [ requests_oauthlib ];
+    propagatedBuildInputs = with self; [ requests_oauthlib ];
 
     meta = {
       description = "Python's Requests OAuth2 (Open Authentication) plugin";
@@ -7530,12 +7522,12 @@ let
     name = "restview-${version}";
     version = "2.1.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/restview/${name}.tar.gz";
       sha256 = "07scf80hhr9rijrbfrplyi3gwkx74knnzfhvlg6yf1cd0x2yiy8v";
     };
 
-    propagatedBuildInputs = [ docutils mock pygments ];
+    propagatedBuildInputs = with self; [ docutils mock pygments ];
 
     meta = with stdenv.lib; {
       description = "ReStructuredText viewer";
@@ -7550,12 +7542,12 @@ let
   reviewboard = buildPythonPackage rec {
     name = "ReviewBoard-1.6.16";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://downloads.reviewboard.org/releases/ReviewBoard/1.6/${name}.tar.gz";
       sha256 = "0vg3ypm57m43bscv8vswjdllv3d2j8lxqwwvpd65cl7jd1in0yr1";
     };
 
-    propagatedBuildInputs =
+    propagatedBuildInputs = with self;
       [ django_1_3 recaptcha_client pytz memcached dateutil_1_5 paramiko flup pygments
         djblets django_evolution pycrypto modules.sqlite3
         pysvn pil psycopg2
@@ -7566,7 +7558,7 @@ let
   rdflib = buildPythonPackage (rec {
     name = "rdflib-4.1.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/rdflib/${name}.tar.gz";
       sha256 = "0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w";
     };
@@ -7574,7 +7566,7 @@ let
     # error: invalid command 'test'
     doCheck = false;
 
-    propagatedBuildInputs = [ isodate ];
+    propagatedBuildInputs = with self; [ isodate ];
 
     meta = {
       description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.";
@@ -7585,7 +7577,7 @@ let
   isodate = buildPythonPackage rec {
     name = "isodate-0.5.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/i/isodate/${name}.tar.gz";
       md5 = "9a267e9327feb3d021cae26002ba6e0e";
     };
@@ -7602,7 +7594,7 @@ let
     name = "robotframework-${version}";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/robotframework/${name}.tar.gz";
       sha256 = "0rzdn2gvmcrxs2fvxm11h55w4j5pv0lf443fc4hl8kzwjwgjckga";
     };
@@ -7624,7 +7616,7 @@ let
     version = "1.5.0";
     name = "robotframework-selenium2library-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/robotframework-selenium2library/${name}.tar.gz";
       sha256 = "0hjmar9766jqfpbckac8zncyal546vm059wnkbn33f68djdcnwz1";
     };
@@ -7632,7 +7624,7 @@ let
     # error: invalid command 'test'
     #doCheck = false;
 
-    propagatedBuildInputs = [ robotframework selenium docutils decorator ];
+    propagatedBuildInputs = with self; [ robotframework selenium docutils decorator ];
 
     meta = with stdenv.lib; {
       description = "";
@@ -7646,12 +7638,12 @@ let
     version = "0.1a115";
     name = "robotframework-tools-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/robotframework-tools/${name}.tar.gz";
       sha256 = "04gkn1zpf3rsvbqdxrrjqqi8sa0md9gqwh6n5w2m03fdwjg4lc7q";
     };
 
-    propagatedBuildInputs = [ robotframework moretools pathpy six setuptools ];
+    propagatedBuildInputs = with self; [ robotframework moretools pathpy six setuptools ];
 
     meta = with stdenv.lib; {
       description = "Python Tools for Robot Framework and Test Libraries";
@@ -7666,7 +7658,7 @@ let
     version = "1.4.2";
     name = "robotsuite-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/robotsuite/${name}.zip";
       sha256 = "0sw09vrvwv3gzqb6jvhbrz09l6nzzj3i9av34qjddqfwq7cr1bla";
     };
@@ -7674,8 +7666,8 @@ let
     # error: invalid command 'test'
     #doCheck = false;
 
-    buildInputs = [ unittest2 ];
-    propagatedBuildInputs = [ robotframework lxml ];
+    buildInputs = with self; [ unittest2 ];
+    propagatedBuildInputs = with self; [ robotframework lxml ];
 
     meta = with stdenv.lib; {
       description = "Python unittest test suite for Robot Framework";
@@ -7690,12 +7682,12 @@ let
     name = "robotframework-ride-${version}";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://robotframework-ride.googlecode.com/files/${name}.tar.gz";
       sha256 = "1lf5f4x80f7d983bmkx12sxcizzii21kghs8kf63a1mj022a5x5j";
     };
 
-    propagatedBuildInputs = [ pygments wxPython modules.sqlite3 ];
+    propagatedBuildInputs = with self; [ 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
@@ -7723,7 +7715,7 @@ let
 
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/rope/${name}.tar.gz";
       sha256 = "0rdlvp8h74qs49wz1hx6qy8mgp2ddwlfs7z13h9139ynq04a3z7z";
     };
@@ -7740,12 +7732,12 @@ let
     version = "0.7";
     name = "ropemacs-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/ropemacs/${name}.tar.gz";
       sha256 = "1x5qf1drcdz9jfiiakc60kzqkb3ahsg9j902c5byf3gjfacdrmqj";
     };
 
-    propagatedBuildInputs = [ ropemode ];
+    propagatedBuildInputs = with self; [ ropemode ];
 
      meta = with stdenv.lib; {
        description = "a plugin for performing python refactorings in emacs";
@@ -7759,12 +7751,12 @@ let
     version = "0.2";
     name = "ropemode-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/r/ropemode/${name}.tar.gz";
       sha256 = "0jw6h1wvk6wk0wknqdf7s9pw76m8472jv546lqdd88jbl2scgcjl";
     };
 
-    propagatedBuildInputs = [ rope ];
+    propagatedBuildInputs = with self; [ rope ];
 
      meta = with stdenv.lib; {
        description = "a plugin for performing python refactorings in emacs";
@@ -7779,12 +7771,12 @@ let
   routes = buildPythonPackage rec {
     name = "routes-1.12.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = http://pypi.python.org/packages/source/R/Routes/Routes-1.12.3.tar.gz;
       md5 = "9740ff424ff6b841632c784a38fb2be3";
     };
 
-    propagatedBuildInputs = [ paste webtest ];
+    propagatedBuildInputs = with self; [ paste webtest ];
 
     meta = {
       description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions";
@@ -7796,7 +7788,7 @@ let
     name = "rpkg-1.14";
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://fedorahosted.org/releases/r/p/rpkg/rpkg-1.14.tar.gz";
       sha256 = "0d053hdjz87aym1sfm6c4cxmzmy5g0gkrmrczly86skj957r77a7";
     };
@@ -7805,7 +7797,7 @@ let
 
     # buildPhase = "python setup.py build";
     # doCheck = false;
-    propagatedBuildInputs = [ pycurl pkgs.koji GitPython pkgs.git
+    propagatedBuildInputs = with self; [ pycurl pkgs.koji GitPython pkgs.git
                               pkgs.rpm pkgs.pyopenssl ];
 
   });
@@ -7814,12 +7806,12 @@ let
     name = "rpyc-${version}";
     version = "3.3.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/r/rpyc/${name}.tar.gz";
       md5 = "6931cb92c41f547591b525142ccaeef1";
     };
 
-    propagatedBuildInputs = [ nose plumbum ];
+    propagatedBuildInputs = with self; [ nose plumbum ];
 
     meta = {
       description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
@@ -7831,12 +7823,12 @@ let
   rsa = buildPythonPackage rec {
     name = "rsa-3.1.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://bitbucket.org/sybren/python-rsa/get/version-3.1.2.tar.bz2";
       sha256 = "0ag2q4gaapi74x47q74xhcjzs4b7r2bb6zrj2an4sz5d3yd06cgf";
     };
 
-    buildInputs = [ pythonPackages.pyasn1 ];
+    buildInputs = with self; [ self.pyasn1 ];
 
     meta = {
       homepage = http://stuvel.eu/rsa;
@@ -7849,7 +7841,7 @@ let
     version = "2.1.fb43";
     name = "rtslib-fb-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/agrover/rtslib-fb/archive/v${version}.tar.gz";
       sha256 = "1b59vyy12g6rix9l2fxx0hjiq33shkb79v57gwffs57vh74wc53v";
     };
@@ -7864,14 +7856,14 @@ let
   seqdiag = buildPythonPackage rec {
     name = "seqdiag-0.9.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/s/seqdiag/${name}.tar.gz";
       md5 = "92946555ce219df18002e6c88b4055d3";
     };
 
-    buildInputs = [ pep8 nose unittest2 docutils ];
+    buildInputs = with self; [ pep8 nose unittest2 docutils ];
 
-    propagatedBuildInputs = [ blockdiag ];
+    propagatedBuildInputs = with self; [ blockdiag ];
 
     # Tests fail:
     #   ...
@@ -7891,13 +7883,13 @@ let
   scipy = buildPythonPackage rec {
     name = "scipy-0.14.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/scipy/${name}.tar.gz";
       md5 = "d7c7f4ccf8b07b08d6fe49d5cd51f85d";
     };
 
-    buildInputs = [pkgs.gfortran];
-    propagatedBuildInputs = [ numpy ];
+    buildInputs = with self; [pkgs.gfortran];
+    propagatedBuildInputs = with self; [ numpy ];
 
     # TODO: add ATLAS=${pkgs.atlas}
     preConfigure = ''
@@ -7921,12 +7913,12 @@ let
     version = "1.3";
     name = "scripttest-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/scripttest/scripttest-${version}.tar.gz";
       md5 = "1d1c5117ccfc7b5961cae6c1020c0848";
     };
 
-    buildInputs = [ nose pytest ];
+    buildInputs = with self; [ nose pytest ];
 
     meta = {
       description = "A library for testing interactive command-line applications";
@@ -7941,7 +7933,7 @@ let
       sha256 = "1kisndzl9s0vs0a5paqx35hxq28id3xyi1gfsjaixsi6rs0ibhhh";
     };
 
-    buildInputs = [pkgs.xlibs.libX11];
+    buildInputs = with self; [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.
@@ -7968,14 +7960,14 @@ let
   setuptoolsDarcs = buildPythonPackage {
     name = "setuptools-darcs-1.2.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/setuptools_darcs/setuptools_darcs-1.2.9.tar.gz";
       sha256 = "d37ce11030addbd729284c441facd0869cdc6e5c888dc5fa0a6f1edfe3c3e617";
     };
 
     # In order to break the dependency on darcs -> ghc, we don't add
     # darcs as a propagated build input.
-    propagatedBuildInputs = [ darcsver ];
+    propagatedBuildInputs = with self; [ darcsver ];
 
     meta = {
       description = "setuptools plugin for the Darcs version control system";
@@ -7990,12 +7982,12 @@ let
   setuptoolsTrial = buildPythonPackage {
     name = "setuptools-trial-0.5.12";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/setuptools_trial/setuptools_trial-0.5.12.tar.gz";
       md5 = "f16f4237c9ee483a0cd13208849d96ad";
     };
 
-    propagatedBuildInputs = [ twisted ];
+    propagatedBuildInputs = with self; [ twisted ];
 
     meta = {
       description = "setuptools plug-in that helps run unit tests built with the \"Trial\" framework (from Twisted)";
@@ -8010,7 +8002,7 @@ let
   simplejson = buildPythonPackage (rec {
     name = "simplejson-3.3.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/simplejson/${name}.tar.gz";
       md5 = "0e29b393bceac8081fa4e93ff9f6a001";
     };
@@ -8035,12 +8027,12 @@ let
   sigal = buildPythonPackage rec {
     name = "sigal-0.7.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/sigal/${name}.tar.gz";
       md5 = "d2386706ac8543378aebde1ea4edeba4";
     };
 
-    propagatedBuildInputs = [ jinja2 markdown pillow pilkit clint argh pytest ];
+    propagatedBuildInputs = with self; [ jinja2 markdown pillow pilkit clint argh pytest ];
 
     meta = with stdenv.lib; {
       description = "Yet another simple static gallery generator";
@@ -8050,10 +8042,10 @@ let
     };
   };
 
-  pgpdump = pythonPackages.buildPythonPackage rec {
+  pgpdump = self.buildPythonPackage rec {
     name = "pgpdump-1.5";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pgpdump/pgpdump-1.5.tar.gz";
       md5 = "040a451c8e63de3e61fc5b66efa7fca5";
     };
@@ -8068,12 +8060,12 @@ let
   spambayes = buildPythonPackage rec {
     name = "spambayes-1.1b1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "mirror://sourceforge/spambayes/${name}.tar.gz";
       sha256 = "0kqvjb89b02wp41p650ydfspi1s8d7akx1igcrw62diidqbxp04n";
     };
 
-    propagatedBuildInputs = [ pydns lockfile ];
+    propagatedBuildInputs = with self; [ pydns lockfile ];
 
     meta = with stdenv.lib; {
       description = "Statistical anti-spam filter, initially based on the work of Paul Graham";
@@ -8084,12 +8076,12 @@ let
   shapely = buildPythonPackage rec {
     name = "Shapely-1.3.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/S/Shapely/${name}.tar.gz";
       sha256 = "099sc7ajpp6hbgrx3c0bl6hhkz1mhnr0ahvc7s4i3f3b7q1zfn7l";
     };
 
-    buildInputs = [ pkgs.geos ];
+    buildInputs = with self; [ pkgs.geos ];
 
     preConfigure = ''
       export LANG="en_US.UTF-8";
@@ -8111,14 +8103,14 @@ let
   stevedore = buildPythonPackage rec {
     name = "stevedore-0.15";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/stevedore/${name}.tar.gz";
       sha256 = "bec9269cbfa58de4f0849ec79bb7d54eeeed9df8b5fbfa1637fbc68062822847";
     };
 
-    buildInputs = [ pbr pip ];
+    buildInputs = with self; [ pbr pip ];
 
-    propagatedBuildInputs = [ setuptools ];
+    propagatedBuildInputs = with self; [ setuptools ];
 
     meta = {
       description = "Manage dynamic plugins for Python applications";
@@ -8131,7 +8123,7 @@ let
     name = "pydns-2.3.6";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pydns/${name}.tar.gz";
       sha256 = "0qnv7i9824nb5h9psj0rwzjyprwgfiwh5s5raa9avbqazy5hv5pi";
     };
@@ -8144,7 +8136,7 @@ let
     name = "sympy-0.7.4";
     disabled = isPy34;  # some tests fail
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://github.com/sympy/sympy/releases/download/${name}/${name}.tar.gz";
       sha256 = "0h1b9mx0snyyybj1x1ga69qssgjzkkgx2rw6nddjhyz1fknf8ywh";
     };
@@ -8166,7 +8158,7 @@ let
   pilkit = buildPythonPackage rec {
     name = "pilkit-1.1.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pilkit/${name}.tar.gz";
       md5 = "659dd67440f4b576889f2cd350f43d7b";
     };
@@ -8178,7 +8170,7 @@ let
     # tests fail, see https://github.com/matthewwithanm/pilkit/issues/9
     doCheck = false;
 
-    buildInputs = [ pillow nose_progressive nose mock blessings ];
+    buildInputs = with self; [ pillow nose_progressive nose mock blessings ];
 
     meta = with stdenv.lib; {
       maintainers = [ maintainers.iElectric ];
@@ -8188,7 +8180,7 @@ let
   clint = buildPythonPackage rec {
     name = "clint-0.3.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/c/clint/${name}.tar.gz";
       md5 = "7dcd43fb08bfb84c7d63e9356ada7b73";
     };
@@ -8197,7 +8189,7 @@ let
       nosetests
     '';
 
-    buildInputs = [ pillow nose_progressive nose mock blessings nose ];
+    buildInputs = with self; [ pillow nose_progressive nose mock blessings nose ];
 
     meta = with stdenv.lib; {
       maintainers = [ maintainers.iElectric ];
@@ -8207,7 +8199,7 @@ let
   argh = buildPythonPackage rec {
     name = "argh-0.23.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/a/argh/${name}.tar.gz";
       md5 = "25bb02c6552b42875f2c36714e0ff16c";
     };
@@ -8217,7 +8209,7 @@ let
       export LOCALE_ARCHIVE=${localePath}
     '';
 
-    buildInputs = [ pytest py mock ];
+    buildInputs = with self; [ pytest py mock ];
 
     meta = with stdenv.lib; {
       maintainers = [ maintainers.iElectric ];
@@ -8227,13 +8219,13 @@ let
   nose_progressive = buildPythonPackage rec {
     name = "nose-progressive-1.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/n/nose-progressive/${name}.tar.gz";
       md5 = "180be93929c5962044a35489f193259d";
     };
 
-    buildInputs = [ pillow blessings nose ];
-    propagatedBuildInputs = [ modules.curses ];
+    buildInputs = with self; [ pillow blessings nose ];
+    propagatedBuildInputs = with self; [ modules.curses ];
 
     meta = with stdenv.lib; {
       maintainers = [ maintainers.iElectric ];
@@ -8243,7 +8235,7 @@ let
   blessings = buildPythonPackage rec {
     name = "blessings-1.5.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/b/blessings/${name}.tar.gz";
       md5 = "fbbddbf20b1f9a13e3fa612b1e086fd8";
     };
@@ -8251,7 +8243,7 @@ let
     # 4 failing tests
     doCheck = false;
 
-    buildInputs = [ nose modules.curses ];
+    buildInputs = with self; [ nose modules.curses ];
 
     meta = with stdenv.lib; {
       maintainers = [ maintainers.iElectric ];
@@ -8263,9 +8255,9 @@ let
 
     disabled = isPy3k;
 
-    propagatedBuildInputs = [ quantities numpy ];
+    propagatedBuildInputs = with self; [ quantities numpy ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/s/semantic/semantic-1.0.3.tar.gz";
       md5 = "78a150190e3e7d0f6f357b4c828e5f0d";
     };
@@ -8282,7 +8274,7 @@ let
 
   sexpdata = buildPythonPackage rec {
     name = "sexpdata-0.0.2";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/sexpdata/${name}.tar.gz";
       md5 = "efc44265bc27cb3d6ffed4fbf5733fc1";
     };
@@ -8299,7 +8291,7 @@ let
   sh = buildPythonPackage rec {
     name = "sh-1.08";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/sh/${name}.tar.gz";
       md5 = "4028bcba85daa0aef579ed24261e88a3";
     };
@@ -8316,7 +8308,7 @@ let
   six = buildPythonPackage rec {
     name = "six-1.7.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/six/${name}.tar.gz";
       md5 = "784c6e5541c3c4952de9c0a966a0a80b";
     };
@@ -8335,7 +8327,7 @@ let
     name = "Skype4Py-1.0.32.0";
     disabled = isPy3k || isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = mirror://sourceforge/skype4py/Skype4Py-1.0.32.0.tar.gz;
       sha256 = "0cmkrv450wa8v50bng5dflpwkl5c1p9pzysjkb2956w5kvwh6f5b";
     };
@@ -8349,7 +8341,7 @@ let
     # error: invalid command 'test'
     doCheck = false;
 
-    propagatedBuildInputs = [ pkgs.xlibs.libX11 pkgs.pythonDBus pygobject ];
+    propagatedBuildInputs = with self; [ pkgs.xlibs.libX11 pkgs.pythonDBus pygobject ];
 
     meta = {
       description = "High-level, platform independent Skype API wrapper for Python";
@@ -8366,12 +8358,12 @@ let
   smartdc = buildPythonPackage rec {
     name = "smartdc-0.1.12";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = https://pypi.python.org/packages/source/s/smartdc/smartdc-0.1.12.tar.gz;
       md5 = "b960f61facafc879142b699050f6d8b4";
     };
 
-    propagatedBuildInputs = [ requests http_signature ];
+    propagatedBuildInputs = with self; [ requests http_signature ];
 
     meta = {
       description = "Joyent SmartDataCenter CloudAPI connector using http-signature authentication via Requests";
@@ -8383,7 +8375,7 @@ let
   sorl_thumbnail = buildPythonPackage rec {
     name = "sorl-thumbnail-11.12";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/s/sorl-thumbnail/${name}.tar.gz";
       sha256 = "050b9kzbx7jvs3qwfxxshhis090hk128maasy8pi5wss6nx5kyw4";
     };
@@ -8403,13 +8395,13 @@ let
 
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/s/supervisor/${name}.tar.gz";
       md5 = "8c9714feaa63902f03871317e3ebf62e";
     };
 
-    buildInputs = [ mock ];
-    propagatedBuildInputs = [ meld3 ];
+    buildInputs = with self; [ mock ];
+    propagatedBuildInputs = with self; [ meld3 ];
 
     # failing tests when building under chroot as root user doesn't exist
     doCheck = false;
@@ -8424,7 +8416,7 @@ let
     name = "subprocess32-3.2.6";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/s/subprocess32/${name}.tar.gz";
       md5 = "754c5ab9f533e764f931136974b618f1";
     };
@@ -8442,12 +8434,12 @@ let
   sphinx = buildPythonPackage (rec {
     name = "Sphinx-1.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/S/Sphinx/${name}.tar.gz";
       md5 = "8516046aad73fe46dedece4e8e434328";
     };
 
-    propagatedBuildInputs = [docutils jinja2 pygments];
+    propagatedBuildInputs = with self; [docutils jinja2 pygments];
 
     meta = {
       description = "Sphinx is a tool that makes it easy to create intelligent and beautiful documentation for Python projects.";
@@ -8462,12 +8454,12 @@ let
   sphinxcontrib_httpdomain = buildPythonPackage (rec {
     name = "sphinxcontrib-httpdomain-1.1.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/s/sphinxcontrib-httpdomain/${name}.tar.gz";
       md5 = "0f63aea612cc9e0b55a6c39e5b0f87b7";
     };
 
-    propagatedBuildInputs = [sphinx];
+    propagatedBuildInputs = with self; [sphinx];
 
     meta = {
       description = "Provides a Sphinx domain for describing RESTful HTTP APIs";
@@ -8482,7 +8474,7 @@ let
   sphinx_pypi_upload = buildPythonPackage (rec {
     name = "Sphinx-PyPI-upload-0.2.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/S/Sphinx-PyPI-upload/${name}.tar.gz";
       md5 = "b9f1df5c8443197e4d49abbba1cfddc4";
     };
@@ -8496,12 +8488,12 @@ let
     };
   });
 
-  sqlalchemy = sqlalchemy9.override rec {
+  sqlalchemy = self.sqlalchemy9.override rec {
     name = "SQLAlchemy-0.7.10";
     disabled = isPy34;
     doCheck = !isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
       sha256 = "0rhxgr85xdhjn467qfs0dkyj8x46zxcv6ad3dfx3w14xbkb3kakp";
     };
@@ -8515,12 +8507,12 @@ let
     '';
   };
 
-  sqlalchemy8 = sqlalchemy9.override rec {
+  sqlalchemy8 = self.sqlalchemy9.override rec {
     name = "SQLAlchemy-0.8.7";
     disabled = isPy34;
     doCheck = !isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
       md5 = "4f3377306309e46739696721b1785335";
     };
@@ -8532,14 +8524,14 @@ let
   sqlalchemy9 = buildPythonPackage rec {
     name = "SQLAlchemy-0.9.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
       md5 = "c008ea5e2565ec1418ee8461393a99b1";
     };
 
-    buildInputs = [ nose mock ];
+    buildInputs = with self; [ nose mock ];
 
-    propagatedBuildInputs = [ modules.sqlite3 ];
+    propagatedBuildInputs = with self; [ modules.sqlite3 ];
 
     checkPhase = ''
       ${python.executable} sqla_nose.py
@@ -8557,14 +8549,14 @@ let
     version = "0.8.2";
     disabled = isPy33;
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = https://github.com/crosspop/sqlalchemy-imageattach.git;
       rev = "refs/tags/${version}";
       md5 = "cffdcde30952176e35fccf385f579dda";
     };
 
-    buildInputs = [ pytest webob pkgs.imagemagick nose ];
-    propagatedBuildInputs = [ sqlalchemy8 wand ];
+    buildInputs = with self; [ pytest webob pkgs.imagemagick nose ];
+    propagatedBuildInputs = with self; [ sqlalchemy8 wand ];
 
     checkPhase = ''
       cd tests
@@ -8586,14 +8578,14 @@ let
   sqlalchemy_migrate = buildPythonPackage rec {
     name = "sqlalchemy-migrate-0.6.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://sqlalchemy-migrate.googlecode.com/files/${name}.tar.gz";
       sha1 = "17168b5fa066bd56fd93f26345525377e8a83d8a";
     };
 
-    buildInputs = [ nose unittest2 scripttest ];
+    buildInputs = with self; [ nose unittest2 scripttest ];
 
-    propagatedBuildInputs = [ tempita decorator sqlalchemy ];
+    propagatedBuildInputs = with self; [ tempita decorator sqlalchemy ];
 
     preCheck =
       ''
@@ -8615,12 +8607,12 @@ let
     version = "1.6.0";
     disabled = isPy3k;  # next release will be py3k compatible
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/python-statsd/${name}.tar.gz";
       md5 = "3a0c71a160b504b843703c3041c7d7fb";
     };
 
-    buildInputs = [ mock nose coverage ];
+    buildInputs = with self; [ mock nose coverage ];
 
     meta = {
       description = "A client for Etsy's node-js statsd server";
@@ -8634,12 +8626,12 @@ let
     name = "stompclient-0.3.2";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/stompclient/${name}.tar.gz";
       md5 = "af0a314b6106dd80da24a918c24a1eab";
     };
 
-    buildInputs = [ mock nose ];
+    buildInputs = with self; [ mock nose ];
 
     # XXX: Ran 0 tests in 0.217s
 
@@ -8655,12 +8647,12 @@ let
     name = "subunit-${version}";
     version = "0.0.16";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://launchpad.net/subunit/trunk/${version}/+download/python-${name}.tar.gz";
       sha256 = "1ylla1wlmv29vdr76r5kgr7y21bz4ahi3v26mxsys42w90rfkahi";
     };
 
-    propagatedBuildInputs = [ testtools ];
+    propagatedBuildInputs = with self; [ testtools ];
 
     meta = {
       description = "A streaming protocol for test results";
@@ -8679,14 +8671,14 @@ let
       export LC_ALL="en_US.UTF-8"
     '';
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/sure/${name}.tar.gz";
       md5 = "6dbecef27dffc41c8cd8aab8a8b3fdfb";
     };
 
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
 
-    propagatedBuildInputs = [ six mock ];
+    propagatedBuildInputs = with self; [ six mock ];
 
     meta = {
       description = "Utility belt for automated testing";
@@ -8699,7 +8691,7 @@ let
   structlog = buildPythonPackage rec {
     name = "structlog-0.4.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/s/structlog/${name}.tar.gz";
       md5 = "062cda36069e8573e00c265f451f899e";
     };
@@ -8722,7 +8714,7 @@ let
   #     sha256 = "41c9da1dab2be7b60bff87e618befdf5da37c0a56287385cb0cbd3f91e452bb6";
   #   };
   #
-  #   propagatedBuildInputs = [ pysvn argparse ];
+  #   propagatedBuildInputs = with self; [ pysvn argparse ];
   #
   #   doCheck = false;
   # };
@@ -8731,12 +8723,12 @@ let
     version = "2.1.fb33";
     name = "targetcli-fb-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/agrover/targetcli-fb/archive/v${version}.tar.gz";
       sha256 = "1zcm0agdpf866020b43fl8zyyyzz6r74mn1sz4xpaa0pinpwjk42";
     };
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       configshell_fb
       rtslib_fb
     ];
@@ -8752,13 +8744,13 @@ let
     name = "tarsnapper-0.2.1";
     disabled = isPy3k;
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = https://github.com/miracle2k/tarsnapper.git;
       rev = "620439bca68892f2ffaba1079a34b18496cc6596";
       sha256 = "06pp499qm2dxpja2jgmmq2jrcx3m4nq52x5hhil9r1jxvyiq962p";
     };
 
-    propagatedBuildInputs = [ argparse pyyaml ];
+    propagatedBuildInputs = with self; [ argparse pyyaml ];
 
     patches = [ ../development/python-modules/tarsnapper-path.patch ];
 
@@ -8772,12 +8764,12 @@ let
     name = "TaskCoach-1.3.22";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "mirror://sourceforge/taskcoach/${name}.tar.gz";
       sha256 = "1ddx56bqmh347synhgjq625ijv5hqflr0apxg0nl4jqdsqk1zmxh";
     };
 
-    propagatedBuildInputs = [ wxPython ];
+    propagatedBuildInputs = with self; [ wxPython ];
 
     # I don't know why I need to add these libraries. Shouldn't they
     # be part of wxPython?
@@ -8801,14 +8793,14 @@ let
     version = "0.5.2";
     name = "tempita-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/T/Tempita/Tempita-${version}.tar.gz";
       md5 = "4c2f17bb9d481821c41b6fbee904cea1";
     };
 
     disabled = isPy3k;
 
-    buildInputs = [ nose ];
+    buildInputs = with self; [ nose ];
 
     meta = {
       homepage = http://pythonpaste.org/tempita/;
@@ -8821,12 +8813,12 @@ let
     name = "testtools-${version}";
     version = "0.9.34";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/testtools/${name}.tar.gz";
       sha256 = "0s6sn9h26dif2c9sayf875x622kq8jb2f4qbc6if7gwh2sssgicn";
     };
 
-    propagatedBuildInputs = [ pythonPackages.python_mimeparse pythonPackages.extras lxml ];
+    propagatedBuildInputs = with self; [ self.python_mimeparse self.extras lxml ];
 
     meta = {
       description = "A set of extensions to the Python standard library's unit testing framework";
@@ -8840,7 +8832,7 @@ let
     name = "python-mimeparse-${version}";
     version = "0.1.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/python-mimeparse/${name}.tar.gz";
       sha256 = "1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w";
     };
@@ -8860,7 +8852,7 @@ let
     name = "extras-${version}";
     version = "0.0.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/e/extras/extras-${version}.tar.gz";
       sha256 = "1h7zx4dfyclalg0fqnfjijpn0f793a9mx8sy3b27gd31nr6dhq3s";
     };
@@ -8879,7 +8871,7 @@ let
     name = "tmdb3-${version}";
     version = "0.6.17";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/tmdb3/${name}.zip";
       md5 = "cd259427454472164c9a2479504c9cbb";
     };
@@ -8900,11 +8892,11 @@ let
   tox = buildPythonPackage rec {
     name = "tox-1.7.2";
 
-    propagatedBuildInputs = [ py virtualenv ];
+    propagatedBuildInputs = with self; [ py virtualenv ];
 
     doCheck = false;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/tox/${name}.tar.gz";
       md5 = "0d9b3acb1a9252659d753b0ae6b9b264";
     };
@@ -8915,7 +8907,7 @@ let
     disabled = isPy3k || isPyPy;  # next release will have py3k/pypy support
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/s/smmap/${name}.tar.gz";
       sha256 = "0vrdgr6npmajrv658fv8bij7zgm5jmz2yxkbv8kmbv25q1f9b8ny";
     };
@@ -8925,7 +8917,7 @@ let
     name = "trac-1.0.1";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = http://ftp.edgewall.com/pub/trac/Trac-1.0.1.tar.gz;
       sha256 = "1nqa95fcnkpyq4jk6az7l7sqgm3b3pjq3bx1n7y4v3bad5jr1m4x";
     };
@@ -8935,7 +8927,7 @@ let
 
     PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
 
-    propagatedBuildInputs = [ genshi pkgs.setuptools modules.sqlite3 ];
+    propagatedBuildInputs = with self; [ genshi pkgs.setuptools modules.sqlite3 ];
 
     meta = {
       description = "Enhanced wiki and issue tracking system for software development projects";
@@ -8949,12 +8941,12 @@ let
     name = "transaction-${version}";
     version = "1.4.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/t/transaction/${name}.tar.gz";
       md5 = "b4ca5983c9e3a0808ff5ff7648092c76";
     };
 
-    propagatedBuildInputs = [ zope_interface ];
+    propagatedBuildInputs = with self; [ zope_interface ];
 
     meta = {
       description = "Transaction management";
@@ -8967,12 +8959,12 @@ let
     name = "transmissionrpc-${version}";
     version = "0.11";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/transmissionrpc/${name}.tar.gz";
       md5 = "b2f918593e509f0e66e2e643291b436d";
     };
 
-    propagatedBuildInputs = [ six ];
+    propagatedBuildInputs = with self; [ six ];
 
     meta = {
       description = "Python implementation of the Transmission bittorent client RPC protocol.";
@@ -8985,7 +8977,7 @@ let
      name = "eggdeps-${version}";
      version = "0.4";
 
-     src = fetchurl {
+     src = pkgs.fetchurl {
        url = "http://pypi.python.org/packages/source/t/tl.eggdeps/tl.${name}.tar.gz";
        md5 = "2472204a2abd0d8cd4d11ff0fbf36ae7";
      };
@@ -8993,7 +8985,7 @@ let
      # tests fail, see http://hydra.nixos.org/build/4316603/log/raw
      doCheck = false;
 
-     propagatedBuildInputs = [ zope_interface zope_testing ];
+     propagatedBuildInputs = with self; [ zope_interface zope_testing ];
      meta = {
        description = "A tool which computes a dependency graph between active Python eggs";
        homepage = http://thomas-lotze.de/en/software/eggdeps/;
@@ -9005,12 +8997,12 @@ let
   turses = buildPythonPackage (rec {
     name = "turses-0.2.22";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/t/turses/${name}.tar.gz";
       sha256 = "1dqgvdqly4c4d6819mbkqy4g8r7zch4dkmxicfwck7q8h96wmyx3";
     };
 
-    propagatedBuildInputs = [ oauth2 urwid tweepy ] ++ optional isPy26 argparse;
+    propagatedBuildInputs = with self; [ oauth2 urwid tweepy ] ++ optional isPy26 argparse;
 
     #buildInputs = [ tox ];
     # needs tox
@@ -9029,7 +9021,7 @@ let
     name = "tweepy-2.3.0";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/t/tweepy/${name}.tar.gz";
       sha256 = "0wcj5g21brcqr1g7m4by4rs72lfiib4scg19qynn2wz1x77jyrzp";
     };
@@ -9047,7 +9039,7 @@ let
     name = "twitter-${version}";
     version = "1.15.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url    = "https://pypi.python.org/packages/source/t/twitter/${name}.tar.gz";
       sha256 = "1m6b17irb9klc345k8174pni724jzy2973z2x2jg69h83hipjw2c";
     };
@@ -9067,12 +9059,12 @@ let
     disabled = isPy3k;
 
     name = "Twisted-11.1.0";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/T/Twisted/${name}.tar.bz2";
       sha256 = "05agfp17cndhv2w0p559lvknl7nv0xqkg10apc47fm53m8llbfvz";
     };
 
-    propagatedBuildInputs = [ zope_interface ];
+    propagatedBuildInputs = with self; [ zope_interface ];
 
     # Generate Twisted's plug-in cache.  Twited users must do it as well.  See
     # http://twistedmatrix.com/documents/current/core/howto/plugin.html#auto3
@@ -9099,9 +9091,9 @@ let
   tzlocal = buildPythonPackage rec {
     name = "tzlocal-1.1.1";
 
-    propagatedBuildInputs = with pythonPackages; [ pytz ];
+    propagatedBuildInputs = with self; [ pytz ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/tzlocal/tzlocal-1.1.1.zip";
       md5 = "56c2a04501b98f2a1188d003fd6d3dba";
     };
@@ -9121,11 +9113,11 @@ let
     name = "unittest2-${version}";
 
     src = if python.is_py3k or false
-       then fetchurl {
+       then pkgs.fetchurl {
            url = "http://pypi.python.org/packages/source/u/unittest2py3k/unittest2py3k-${version}.tar.gz";
            sha256 = "00yl6lskygcrddx5zspkhr0ibgvpknl4678kkm6s626539grq93q";
          }
-       else fetchurl {
+       else pkgs.fetchurl {
            url = "http://pypi.python.org/packages/source/u/unittest2/unittest2-${version}.tar.gz";
            md5 = "a0af5cac92bbbfa0c3b0e99571390e0f";
          };
@@ -9145,7 +9137,7 @@ let
     name = "urlgrabber-3.9.1";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://urlgrabber.baseurl.org/download/${name}.tar.gz";
       sha256 = "4437076c8708e5754ea04540e46c7f4f233734ee3590bb8a96389264fb0650d0";
     };
@@ -9153,7 +9145,7 @@ let
     # error: invalid command 'test'
     doCheck = false;
 
-    propagatedBuildInputs = [ pycurl ];
+    propagatedBuildInputs = with self; [ pycurl ];
 
     meta = {
       homepage = "urlgrabber.baseurl.org";
@@ -9170,7 +9162,7 @@ let
     # multiple:  NameError: name 'evl' is not defined
     doCheck = false;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/u/urwid/${name}.tar.gz";
       md5 = "6a05ada11b87e7b026b01fc5150855b0";
     };
@@ -9188,14 +9180,14 @@ let
     name = "pyuv-0.11.5";
     disabled = isPyPy;  # see https://github.com/saghul/pyuv/issues/49
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/saghul/pyuv/archive/${name}.tar.gz";
       sha256 = "c251952cb4e54c92ab0e871decd13cf73d11ca5dba9f92962de51d12e3a310a9";
     };
 
     patches = [ ../development/python-modules/pyuv-external-libuv.patch ];
 
-    buildInputs = [ pkgs.libuvVersions.v0_11_29 ];
+    buildInputs = with self; [ pkgs.libuvVersions.v0_11_29 ];
 
     meta = {
       description = "Python interface for libuv";
@@ -9207,19 +9199,18 @@ let
 
   virtualenv = buildPythonPackage rec {
     name = "virtualenv-1.11.6";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/v/virtualenv/${name}.tar.gz";
       md5 = "f61cdd983d2c4e6aeabb70b1060d6f49";
     };
 
-    inherit recursivePthLoader;
-    pythonPath = [ recursivePthLoader ];
+    pythonPath = [ self.recursivePthLoader ];
 
     patches = [ ../development/python-modules/virtualenv-change-prefix.patch ];
 
-    propagatedBuildInputs = [ modules.readline modules.sqlite3 modules.curses ];
+    propagatedBuildInputs = with self; [ modules.readline modules.sqlite3 modules.curses ];
 
-    buildInputs = [ mock nose ];
+    buildInputs = with self; [ mock nose ];
 
     # XXX: Ran 0 tests in 0.003s
 
@@ -9234,13 +9225,13 @@ let
   virtualenv-clone = buildPythonPackage rec {
     name = "virtualenv-clone-0.2.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/v/virtualenv-clone/${name}.tar.gz";
       md5 = "71168b975eaaa91e65559bcc79290b3b";
     };
 
-    buildInputs = [pytest];
-    propagatedBuildInputs = [virtualenv];
+    buildInputs = with self; [pytest];
+    propagatedBuildInputs = with self; [virtualenv];
 
     # needs tox to run the tests
     doCheck = false;
@@ -9255,7 +9246,7 @@ let
   virtualenvwrapper = buildPythonPackage (rec {
     name = "virtualenvwrapper-4.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/v/virtualenvwrapper/${name}.tar.gz";
       sha256 = "514cbc22218347bf7b54bdbe49e1a5f550d2d53b1ad2491c10e91ddf48fb528f";
     };
@@ -9263,8 +9254,8 @@ let
     # pip depend on $HOME setting
     preConfigure = "export HOME=$TMPDIR";
 
-    buildInputs = [ pbr pip pkgs.which ];
-    propagatedBuildInputs = [ stevedore virtualenv virtualenv-clone ];
+    buildInputs = with self; [ pbr pip pkgs.which ];
+    propagatedBuildInputs = with self; [ stevedore virtualenv virtualenv-clone ];
 
     patchPhase = ''
       substituteInPlace "virtualenvwrapper.sh" --replace "which" "${pkgs.which}/bin/which"
@@ -9302,7 +9293,7 @@ let
   waitress = buildPythonPackage rec {
     name = "waitress-0.8.7";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/w/waitress/${name}.tar.gz";
       md5 = "714f3d458d82a47f12fb168460de8366";
     };
@@ -9322,7 +9313,7 @@ let
   webcolors = buildPythonPackage rec {
     name = "webcolors-1.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/w/webcolors/${name}.tar.gz";
       md5 = "35de9d785b5c04a9cc66a2eae0519254";
     };
@@ -9342,12 +9333,12 @@ let
   wand = buildPythonPackage rec {
     name = "Wand-0.3.5";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/W/Wand/${name}.tar.gz";
       md5 = "10bab03bf86ce8da2a95a3b15197ae2e";
     };
 
-    buildInputs = [ pkgs.imagemagick pytest psutil memory_profiler pytest_xdist ];
+    buildInputs = with self; [ pkgs.imagemagick pytest psutil memory_profiler pytest_xdist ];
 
     meta = {
       description = "Ctypes-based simple MagickWand API binding for Python";
@@ -9361,12 +9352,12 @@ let
     version = "1.4";
     name = "webob-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/W/WebOb/WebOb-${version}.tar.gz";
       md5 = "8437607c0cc00c35f658f972516ffb55";
     };
 
-    propagatedBuildInputs = [ nose ];
+    propagatedBuildInputs = with self; [ nose ];
 
     meta = {
       description = "WSGI request and response object";
@@ -9380,12 +9371,12 @@ let
     version = "0.3.0";
     name = "websockify-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/w/websockify/websockify-${version}.tar.gz";
       md5 = "29b6549d3421907de4bbd881ecc2e1b1";
     };
 
-    propagatedBuildInputs = [ numpy ];
+    propagatedBuildInputs = with self; [ numpy ];
 
     meta = {
       description = "WebSockets support for any application/server";
@@ -9398,7 +9389,7 @@ let
     version = "2.0.15";
     name = "webtest-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.zip";
       md5 = "49314bdba23f4d0bd807facb2a6d3f90";
     };
@@ -9410,9 +9401,9 @@ let
     # XXX: skipping two tests fails in python2.6
     doCheck = ! isPy26;
 
-    buildInputs = optionals isPy26 [ pythonPackages.ordereddict unittest2 ];
+    buildInputs = optionals isPy26 [ self.ordereddict unittest2 ];
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       nose
       webob
       six
@@ -9436,12 +9427,12 @@ let
   werkzeug = buildPythonPackage rec {
     name = "Werkzeug-0.9.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/W/Werkzeug/${name}.tar.gz";
       md5 = "f7afcadc03b0f2267bdc156c34586043";
     };
 
-    propagatedBuildInputs = [ itsdangerous ];
+    propagatedBuildInputs = with self; [ itsdangerous ];
 
     doCheck = false;            # tests fail, not sure why
 
@@ -9456,12 +9447,12 @@ let
   wokkel = buildPythonPackage (rec {
     url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz";
     name = nameFromURL url ".tar";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       inherit url;
       sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
     };
 
-    propagatedBuildInputs = [twisted dateutil];
+    propagatedBuildInputs = with self; [twisted dateutil];
 
     meta = {
       description = "Some (mainly XMPP-related) additions to twisted";
@@ -9474,12 +9465,12 @@ let
   wsgiproxy2 = buildPythonPackage rec {
     name = "WSGIProxy2-0.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/W/WSGIProxy2/${name}.tar.gz";
       md5 = "157049212f1c81a8790efa31146fbabf";
     };
 
-    propagatedBuildInputs = [ six webob ];
+    propagatedBuildInputs = with self; [ six webob ];
 
     meta = {
        maintainers = [
@@ -9490,9 +9481,7 @@ let
     };
   };
 
-
-  wxPython = wxPython28;
-
+  wxPython = self.wxPython28;
 
   wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix {
     wxGTK = pkgs.wxGTK28;
@@ -9505,7 +9494,7 @@ let
   xe = buildPythonPackage rec {
     url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz";
     name = stdenv.lib.nameFromURL url ".tar";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       inherit url;
       sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42";
     };
@@ -9522,7 +9511,7 @@ let
   xlib = buildPythonPackage (rec {
     name = "xlib-0.15rc1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "mirror://sourceforge/python-xlib/python-${name}.tar.bz2";
       sha256 = "0mvzz605pxzj7lfp2w6z4qglmr4rjza9xrb7sl8yn12cklzfky0m";
     };
@@ -9530,7 +9519,7 @@ let
     # Tests require `pyutil' so disable them to avoid circular references.
     doCheck = false;
 
-    propagatedBuildInputs = [ pkgs.xlibs.libX11 ];
+    propagatedBuildInputs = with self; [ pkgs.xlibs.libX11 ];
 
     meta = {
       description = "Fully functional X client library for Python programs";
@@ -9544,7 +9533,7 @@ let
   zbase32 = buildPythonPackage (rec {
     name = "zbase32-1.1.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zbase32/${name}.tar.gz";
       sha256 = "2f44b338f750bd37b56e7887591bf2f1965bfa79f163b6afcbccf28da642ec56";
     };
@@ -9552,7 +9541,7 @@ let
     # Tests require `pyutil' so disable them to avoid circular references.
     doCheck = false;
 
-    buildInputs = [ setuptoolsDarcs ];
+    buildInputs = with self; [ setuptoolsDarcs ];
 
     meta = {
       description = "zbase32, a base32 encoder/decoder";
@@ -9568,12 +9557,12 @@ let
     name = "zconfig-${version}";
     version = "3.0.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/Z/ZConfig/ZConfig-${version}.tar.gz";
       md5 = "60a107c5857c3877368dfe5930559804";
     };
 
-    propagatedBuildInputs = [ zope_testrunner ];
+    propagatedBuildInputs = with self; [ zope_testrunner ];
 
     meta = {
       description = "Structured Configuration Library";
@@ -9588,7 +9577,7 @@ let
     name = "zc.lockfile-${version}";
     version = "1.0.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zc.lockfile/${name}.tar.gz";
       md5 = "f099d4cf2583a0c7bea0146a44dc4d59";
     };
@@ -9606,12 +9595,12 @@ let
     name = "zdaemon-${version}";
     version = "4.0.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zdaemon/${name}.tar.gz";
       md5 = "4056e2ea35855695ed15389d9c168b92";
     };
 
-    propagatedBuildInputs  = [ zconfig ];
+    propagatedBuildInputs = [ self.zconfig ];
 
     # too many deps..
     doCheck = false;
@@ -9629,13 +9618,13 @@ let
     name = "zfec-1.4.24";
     disabled = isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zfec/${name}.tar.gz";
       sha256 = "1ks94zlpy7n8sb8380gf90gx85qy0p9073wi1wngg6mccxp9xsg3";
     };
 
-    buildInputs = [ setuptoolsDarcs ];
-    propagatedBuildInputs = [ pyutil argparse ];
+    buildInputs = with self; [ setuptoolsDarcs ];
+    propagatedBuildInputs = with self; [ pyutil argparse ];
 
     meta = {
       homepage = http://allmydata.org/trac/zfec;
@@ -9660,12 +9649,12 @@ let
     version = "3.11.0";
     disabled = isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/Z/ZODB3/ZODB3-${version}.tar.gz";
       md5 = "21975c1609296e7834e8cf4025af3039";
     };
 
-    propagatedBuildInputs = [ manuel transaction zc_lockfile zconfig zdaemon zope_interface zope_event BTrees persistent ZEO ];
+    propagatedBuildInputs = with self; [ manuel transaction zc_lockfile zconfig zdaemon zope_interface zope_event BTrees persistent ZEO ];
 
     meta = {
       description = "An object-oriented database for Python";
@@ -9681,12 +9670,12 @@ let
 
     version = "4.0.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/Z/ZODB/ZODB-${version}.tar.gz";
       md5 = "092d787524b095164231742c96b32f50";
     };
 
-    propagatedBuildInputs = [ manuel transaction zc_lockfile zconfig zdaemon zope_interface persistent BTrees ]
+    propagatedBuildInputs = with self; [ manuel transaction zc_lockfile zconfig zdaemon zope_interface persistent BTrees ]
       ++ optionals isPy3k [ zodbpickle ];
 
     preCheck = if isPy3k then ''
@@ -9702,11 +9691,11 @@ let
     };
   };
 
-  zodbpickle = pythonPackages.buildPythonPackage rec {
+  zodbpickle = self.buildPythonPackage rec {
     name = "zodbpickle-0.5.2";
     disabled = isPyPy; # https://github.com/zopefoundation/zodbpickle/issues/10
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/z/zodbpickle/${name}.tar.gz";
       md5 = "d401bd89f99ec8d56c22493e6f8c0443";
     };
@@ -9720,14 +9709,14 @@ let
   };
 
 
-  BTrees = pythonPackages.buildPythonPackage rec {
+  BTrees = self.buildPythonPackage rec {
     name = "BTrees-4.0.8";
 
     patches = [ ./../development/python-modules/btrees_interger_overflow.patch ];
 
-    propagatedBuildInputs = [ persistent zope_interface transaction ];
+    propagatedBuildInputs = with self; [ persistent zope_interface transaction ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/B/BTrees/${name}.tar.gz";
       md5 = "7f5df4cf8dd50fb0c584c0929a406c92";
     };
@@ -9739,12 +9728,12 @@ let
   };
 
 
-  persistent = pythonPackages.buildPythonPackage rec {
+  persistent = self.buildPythonPackage rec {
     name = "persistent-4.0.8";
 
-    propagatedBuildInputs = [ zope_interface ];
+    propagatedBuildInputs = with self; [ zope_interface ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/persistent/${name}.tar.gz";
       md5 = "2942f1ca7764b1bef8d48fa0d9a236b7";
     };
@@ -9758,12 +9747,12 @@ let
   xdot = buildPythonPackage rec {
     name = "xdot-0.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/x/xdot/xdot-0.6.tar.gz";
       md5 = "a8e5fc5208657b03ad1bd4c46de75724";
     };
 
-    propagatedBuildInputs = with pythonPackages; [ pygtk pygobject pkgs.graphviz ];
+    propagatedBuildInputs = with self; [ pygtk pygobject pkgs.graphviz ];
 
     meta = with stdenv.lib; {
       description = "xdot.py is an interactive viewer for graphs written in Graphviz's dot";
@@ -9775,12 +9764,12 @@ let
   zope_broken = buildPythonPackage rec {
     name = "zope.broken-3.6.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.broken/${name}.zip";
       md5 = "eff24d7918099a3e899ee63a9c31bee6";
     };
 
-    buildInputs = [ zope_interface ];
+    buildInputs = with self; [ zope_interface ];
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -9791,12 +9780,12 @@ let
   zope_browser = buildPythonPackage rec {
     name = "zope.browser-2.0.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.browser/${name}.zip";
       sha256 = "0f9r5rn9lzgi4hvkhgb6vgw8kpz9sv16jsfb9ws4am8gbqcgv2iy";
     };
 
-    propagatedBuildInputs = [ zope_interface ];
+    propagatedBuildInputs = with self; [ zope_interface ];
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -9806,7 +9795,7 @@ let
   zope_browserresource = buildPythonPackage rec {
     name = "zope.browserresource-4.0.1";
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       zope_component zope_configuration zope_contenttype zope_i18n
       zope_interface zope_location zope_publisher zope_schema zope_traversing
     ];
@@ -9814,7 +9803,7 @@ let
     # all tests fail
     doCheck = false;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/z/zope.browserresource/zope.browserresource-4.0.1.zip";
       md5 = "81bbe92c1f04725561470f89d73222c5";
     };
@@ -9825,12 +9814,12 @@ let
   zope_component = buildPythonPackage rec {
     name = "zope.component-4.2.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.component/zope.component-4.2.1.tar.gz";
       sha256 = "1gzbr0j6c2h0cqnpi2cjss38wrz1bcwx8xahl3vykgz5laid15l6";
     };
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       zope_configuration zope_event zope_i18nmessageid zope_interface
       zope_testing
     ];
@@ -9847,12 +9836,12 @@ let
   zope_configuration = buildPythonPackage rec {
     name = "zope.configuration-4.0.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.configuration/zope.configuration-4.0.3.tar.gz";
       sha256 = "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n";
     };
 
-    propagatedBuildInputs = [ zope_i18nmessageid zope_schema ];
+    propagatedBuildInputs = with self; [ zope_i18nmessageid zope_schema ];
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -9863,7 +9852,7 @@ let
   zope_container = buildPythonPackage rec {
     name = "zope.container-4.0.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.container/${name}.tar.gz";
       md5 = "b24d2303ece65a2d9ce23a5bd074c335";
     };
@@ -9871,7 +9860,7 @@ let
     # a test is failing
     doCheck = false;
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       zodb3 zope_broken zope_dottedname zope_publisher
       zope_filerepresentation zope_lifecycleevent zope_size
       zope_traversing
@@ -9886,7 +9875,7 @@ let
   zope_contenttype = buildPythonPackage rec {
     name = "zope.contenttype-4.0.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.contenttype/${name}.tar.gz";
       md5 = "171be44753e86742da8c81b3ad008ce0";
     };
@@ -9900,7 +9889,7 @@ let
   zope_dottedname = buildPythonPackage rec {
     name = "zope.dottedname-3.4.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.dottedname/${name}.tar.gz";
       md5 = "62d639f75b31d2d864fe5982cb23959c";
     };
@@ -9914,7 +9903,7 @@ let
     name = "zope.event-${version}";
     version = "4.0.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.event/${name}.tar.gz";
       sha256 = "1w858k9kmgzfj36h65kp27m9slrmykvi5cjq6c119xqnaz5gdzgm";
     };
@@ -9932,12 +9921,12 @@ let
      name = "zope.exceptions-${version}";
      version = "4.0.5";
 
-     src = fetchurl {
+     src = pkgs.fetchurl {
        url = "http://pypi.python.org/packages/source/z/zope.exceptions/${name}.tar.gz";
        md5 = "c95569fcb444ae541777de7ae5297492";
      };
 
-     propagatedBuildInputs = [ zope_interface ];
+     propagatedBuildInputs = with self; [ zope_interface ];
 
      meta = {
        description = "Exception interfaces and implementations";
@@ -9951,12 +9940,12 @@ let
   zope_filerepresentation = buildPythonPackage rec {
     name = "zope.filerepresentation-3.6.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.filerepresentation/${name}.tar.gz";
       md5 = "4a7a434094f4bfa99a7f22e75966c359";
     };
 
-    propagatedBuildInputs = [ zope_schema ];
+    propagatedBuildInputs = with self; [ zope_schema ];
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -9967,12 +9956,12 @@ let
   zope_i18n = buildPythonPackage rec {
     name = "zope.i18n-3.8.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.i18n/${name}.tar.gz";
       sha256 = "045nnimmshibcq71yym2d8yrs6wzzhxq5gl7wxjnkpyjm5y0hfkm";
     };
 
-    propagatedBuildInputs = [ pytz zope_component ];
+    propagatedBuildInputs = with self; [ pytz zope_component ];
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -9983,7 +9972,7 @@ let
   zope_i18nmessageid = buildPythonPackage rec {
     name = "zope.i18nmessageid-4.0.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.i18nmessageid/zope.i18nmessageid-4.0.3.tar.gz";
       sha256 = "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml";
     };
@@ -9997,12 +9986,12 @@ let
   zope_lifecycleevent = buildPythonPackage rec {
     name = "zope.lifecycleevent-3.7.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.lifecycleevent/${name}.tar.gz";
       sha256 = "0s5brphqzzz89cykg61gy7zcmz0ryq1jj2va7gh2n1b3cccllp95";
     };
 
-    propagatedBuildInputs = [ zope_event zope_component ];
+    propagatedBuildInputs = with self; [ zope_event zope_component ];
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -10013,12 +10002,12 @@ let
   zope_location = buildPythonPackage rec {
     name = "zope.location-4.0.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.location/zope.location-4.0.3.tar.gz";
       sha256 = "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74";
     };
 
-    propagatedBuildInputs = [ zope_proxy ];
+    propagatedBuildInputs = with self; [ zope_proxy ];
 
     # ignore circular dependency on zope_schema
     preBuild = ''
@@ -10036,12 +10025,12 @@ let
   zope_proxy = buildPythonPackage rec {
     name = "zope.proxy-4.1.4";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.proxy/${name}.tar.gz";
       md5 = "3bcaf8b8512a99649ecf2f158c11d05b";
     };
 
-    propagatedBuildInputs = [ zope_interface ];
+    propagatedBuildInputs = with self; [ zope_interface ];
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -10052,12 +10041,12 @@ let
   zope_publisher = buildPythonPackage rec {
     name = "zope.publisher-3.12.6";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.publisher/${name}.tar.gz";
       md5 = "495131970cc7cb14de8e517fb3857ade";
     };
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       zope_browser zope_contenttype zope_i18n zope_security
     ];
 
@@ -10070,12 +10059,12 @@ let
   zope_schema = buildPythonPackage rec {
     name = "zope.schema-4.4.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.schema/${name}.tar.gz";
       sha256 = "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank";
     };
 
-    propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ] ++ optional isPy26 ordereddict;
+    propagatedBuildInputs = with self; [ zope_location zope_event zope_interface zope_testing ] ++ optional isPy26 ordereddict;
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -10086,12 +10075,12 @@ let
   zope_security = buildPythonPackage rec {
     name = "zope.security-4.0.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.security/${name}.tar.gz";
       md5 = "27d1f2873a0ee9c1f485f7b8f22d8e1c";
     };
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       zope_component zope_configuration zope_i18nmessageid zope_schema
       zope_proxy zope_testrunner
     ];
@@ -10105,12 +10094,12 @@ let
   zope_size = buildPythonPackage rec {
     name = "zope.size-3.5.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.size/${name}.tar.gz";
       sha256 = "006xfkhvmypwd3ww9gbba4zly7n9w30bpp1h74d53la7l7fiqk2f";
     };
 
-    propagatedBuildInputs = [ zope_i18nmessageid zope_interface ];
+    propagatedBuildInputs = with self; [ zope_i18nmessageid zope_interface ];
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -10123,13 +10112,13 @@ let
 
     doCheck = !isPyPy; # https://github.com/zopefoundation/zope.sqlalchemy/issues/12
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.sqlalchemy/${name}.zip";
       md5 = "0a468bd5b8884cd29fb71acbf7eaa31e";
     };
 
-    buildInputs = [ zope_testing zope_interface ];
-    propagatedBuildInputs = [ sqlalchemy9 transaction ];
+    buildInputs = with self; [ zope_testing zope_interface ];
+    propagatedBuildInputs = with self; [ sqlalchemy9 transaction ];
 
     meta = {
       maintainers = [
@@ -10145,14 +10134,14 @@ let
     name = "zope.testing-${version}";
     version = "4.1.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.testing/${name}.tar.gz";
       md5 = "6c73c5b668a67fdc116a25b884058ed9";
     };
 
     doCheck = !(python.isPypy or false);
 
-    propagatedBuildInputs = [ zope_interface zope_exceptions zope_location ];
+    propagatedBuildInputs = with self; [ zope_interface zope_exceptions zope_location ];
 
     meta = {
       description = "Zope testing helpers";
@@ -10167,12 +10156,12 @@ let
     name = "zope.testrunner-${version}";
     version = "4.4.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.testrunner/${name}.zip";
       sha256 = "1dwk35kg0bmj2lzp4fd2bgp6dv64q5sda09bf0y8j63y53vqbsw8";
     };
 
-    propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ] ++ optional (!python.is_py3k or false) subunit;
+    propagatedBuildInputs = with self; [ zope_interface zope_exceptions zope_testing six ] ++ optional (!python.is_py3k or false) subunit;
 
     doCheck = true;
 
@@ -10188,12 +10177,12 @@ let
   zope_traversing = buildPythonPackage rec {
     name = "zope.traversing-4.0.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.traversing/${name}.zip";
       md5 = "5cc40c552f953939f7c597ebbedd586f";
     };
 
-    propagatedBuildInputs = [ zope_location zope_security zope_publisher transaction zope_tales ];
+    propagatedBuildInputs = with self; [ zope_location zope_security zope_publisher transaction zope_tales ];
 
     # circular dependency on zope_browserresource
     doCheck = false;
@@ -10207,12 +10196,12 @@ let
   zope_interface = buildPythonPackage rec {
     name = "zope.interface-4.1.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.interface/${name}.tar.gz";
       md5 = "edcd5f719c5eb2e18894c4d06e29b6c6";
     };
 
-    propagatedBuildInputs = [ zope_event ];
+    propagatedBuildInputs = with self; [ zope_event ];
 
     meta = {
       description = "Zope.Interface";
@@ -10226,13 +10215,13 @@ let
   # XXX: link broken
   # hgsvn = buildPythonPackage rec {
   #   name = "hgsvn-0.1.8";
-  #   src = fetchurl rec {
+  #   src = pkgs.fetchurl rec {
   #     name = "hgsvn-0.1.8.tar.gz";
   #     url = "http://pypi.python.org/packages/source/h/hgsvn/${name}.tar.gz#md5=56209eae48b955754e09185712123428";
   #     sha256 = "18a7bj1i0m4shkxmdvw1ci5i0isq5vqf0bpwgrhnk305rijvbpch";
   #   };
   #
-  #   buildInputs = [ pkgs.setuptools ];
+  #   buildInputs = with self; [ pkgs.setuptools ];
   #   doCheck = false;
   #
   #     meta = {
@@ -10246,12 +10235,12 @@ let
     version = "1.20140719";
     disabled = isPy3k;
 
-    src = fetchurl rec {
+    src = pkgs.fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-cliapp/python-cliapp_${version}.orig.tar.gz";
       sha256 = "0kxl2q85n4ggvbw2m8crl11x8n637mx6y3a3b5ydw8nhlsiqijgp";
     };
 
-    buildInputs = [ sphinx ];
+    buildInputs = with self; [ sphinx ];
 
     # error: invalid command 'test'
     doCheck = false;
@@ -10267,9 +10256,9 @@ let
   tornado = buildPythonPackage rec {
     name = "tornado-3.2";
 
-    propagatedBuildInputs = [ backports_ssl_match_hostname_3_4_0_2 ];
+    propagatedBuildInputs = with self; [ backports_ssl_match_hostname_3_4_0_2 ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/tornado/${name}.tar.gz";
       md5 = "bd83cee5f1a5c5e139e87996d00b251b";
     };
@@ -10281,9 +10270,9 @@ let
   tornadokick = buildPythonPackage rec {
     name = "tornadokick-0.2.1";
 
-    propagatedBuildInputs = [ tornado ];
+    propagatedBuildInputs = with self; [ tornado ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/tornadokick/${name}.tar.gz";
       md5 = "95ee5a295ce3f361c6f843c4f39cbb8c";
     };
@@ -10299,7 +10288,7 @@ let
     version = "0.2-b3634a2c6eb6d6936c3b2c1ef5078bf3a84c40c6";
     name = "screenkey-${version}";
 
-    propagatedBuildInputs = [ pygtk distutils_extra xlib pkgs.xorg.xmodmap ];
+    propagatedBuildInputs = with self; [ pygtk distutils_extra xlib pkgs.xorg.xmodmap ];
 
     preConfigure = ''
       substituteInPlace setup.py --replace "/usr/share" "./share"
@@ -10312,7 +10301,7 @@ let
         --replace "        keybinder.bind(self.options['hotkey'], self.hotkey_cb, show_item)" ""
     '';
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
         url = https://github.com/scs3jb/screenkey.git;
         rev = "b3634a2c6eb6d6936c3b2c1ef5078bf3a84c40c6";
         sha256 = "eb754917e98e03cb9d528eb5f57a08c88fa7a8172f92325a9fe796b2daf14db0";
@@ -10333,13 +10322,13 @@ let
 
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/tarman/tarman-${version}.zip";
       sha256 = "0ri6gj883k042xaxa2d5ymmhbw2bfcxdzhh4bz7700ibxwxxj62h";
     };
 
-    buildInputs = [ unittest2 nose mock ];
-    propagatedBuildInputs = [ modules.curses libarchive ];
+    buildInputs = with self; [ unittest2 nose mock ];
+    propagatedBuildInputs = with self; [ modules.curses libarchive ];
 
     # tests are still failing
     doCheck = false;
@@ -10351,36 +10340,35 @@ let
     name = "libarchive-${version}";
     disabled = isPy3k;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz";
       sha256 = "0j4ibc4mvq64ljya9max8832jafi04jciff9ia9qy0xhhlwkcx8x";
     };
 
-    propagatedBuildInputs = [ pkgs.libarchive ];
+    propagatedBuildInputs = with self; [ pkgs.libarchive ];
   };
 
 
   pyzmq = buildPythonPackage rec {
     name = "pyzmq-13.0.0";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyzmq/pyzmq-13.0.0.zip";
       md5 = "fa2199022e54a393052d380c6e1a0934";
     };
-    buildInputs = [ pkgs.zeromq3 ];
-    propagatedBuildInputs = [  ];
+    buildInputs = with self; [ pkgs.zeromq3 ];
     doCheck = false;
   };
 
 
   tissue = buildPythonPackage rec {
     name = "tissue-0.9.2";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/t/tissue/${name}.tar.gz";
       md5 = "87dbcdafff41bfa1b424413f79aa9153";
     };
 
-    buildInputs = [ nose ];
-    propagatedBuildInputs = [ pep8 ];
+    buildInputs = with self; [ nose ];
+    propagatedBuildInputs = with self; [ pep8 ];
 
     meta = {
       maintainers = [
@@ -10396,12 +10384,12 @@ let
     name = "tracing-${version}";
     version = "0.8";
 
-    src = fetchurl rec {
+    src = pkgs.fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-tracing/python-tracing_${version}.orig.tar.gz";
       sha256 = "1l4ybj5rvrrcxf8csyq7qx52izybd502pmx70zxp46gxqm60d2l0";
     };
 
-    buildInputs = [ sphinx ];
+    buildInputs = with self; [ sphinx ];
 
     # error: invalid command 'test'
     doCheck = false;
@@ -10416,7 +10404,7 @@ let
   translationstring = buildPythonPackage rec {
     name = "translationstring-1.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/t/translationstring/${name}.tar.gz";
       md5 = "0979b46d8f0f852810c8ec4be5c26cf2";
     };
@@ -10436,12 +10424,12 @@ let
     version = "0.23";
     disabled = isPy3k;
 
-    src = fetchurl rec {
+    src = pkgs.fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-ttystatus/python-ttystatus_${version}.orig.tar.gz";
       sha256 = "0ymimviyjyh2iizqilg88g4p26f5vpq1zm3cvg7dr7q4y3gmik8y";
     };
 
-    buildInputs = [ sphinx ];
+    buildInputs = with self; [ sphinx ];
 
     # error: invalid command 'test'
     doCheck = false;
@@ -10457,13 +10445,13 @@ let
     name = "larch-${version}";
     version = "1.20131130";
 
-    src = fetchurl rec {
+    src = pkgs.fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_${version}.orig.tar.gz";
       sha256 = "1hfanp9l6yc5348i3f5sb8c5s4r43y382hflnbl6cnz4pm8yh5r7";
     };
 
-    buildInputs = [ sphinx ];
-    propagatedBuildInputs = [ tracing ttystatus cliapp ];
+    buildInputs = with self; [ sphinx ];
+    propagatedBuildInputs = with self; [ tracing ttystatus cliapp ];
 
     # error: invalid command 'test'
     doCheck = false;
@@ -10479,12 +10467,12 @@ let
   websocket_client = buildPythonPackage rec {
     name = "websocket-client-0.17.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/w/websocket-client/${name}.tar.gz";
       md5 = "c86591719085eaf4a01c2275e0c834fc";
     };
 
-    propagatedBuildInputs = [ six backports_ssl_match_hostname_3_4_0_2 unittest2 argparse ];
+    propagatedBuildInputs = with self; [ six backports_ssl_match_hostname_3_4_0_2 unittest2 argparse ];
 
     meta = {
       homepage = https://github.com/liris/websocket-client;
@@ -10497,12 +10485,12 @@ let
   webhelpers = buildPythonPackage rec {
     name = "WebHelpers-1.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/W/WebHelpers/${name}.tar.gz";
       md5 = "32749ffadfc40fea51075a7def32588b";
     };
 
-    buildInputs = [ routes markupsafe webob nose ];
+    buildInputs = with self; [ routes markupsafe webob nose ];
 
     # TODO: failing tests https://bitbucket.org/bbangert/webhelpers/pull-request/1/fix-error-on-webob-123/diff
     doCheck = false;
@@ -10520,7 +10508,7 @@ let
     name = "whisper-${version}";
     version = "0.9.12";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/w/whisper/${name}.tar.gz";
       md5 = "5fac757cc4822ab0678dbe0d781d904e";
     };
@@ -10539,12 +10527,12 @@ let
     name = "carbon-${version}";
     version = "0.9.12";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/c/carbon/${name}.tar.gz";
       md5 = "66967d5a622fd29973838fcd10eb34f3";
     };
 
-    propagatedBuildInputs = [ whisper txamqp zope_interface twisted ];
+    propagatedBuildInputs = with self; [ whisper txamqp zope_interface twisted ];
 
     # error: invalid command 'test'
     doCheck = false;
@@ -10562,7 +10550,7 @@ let
 
     disabled = isPyPy;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/u/ujson/${name}.zip";
       md5 = "8148a2493fff78940feab1e11dc0a893";
     };
@@ -10578,7 +10566,7 @@ let
   unidecode = buildPythonPackage rec {
     name = "Unidecode-0.04.12";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/U/Unidecode/${name}.tar.gz";
       md5 = "351dc98f4512bdd2e93f7a6c498730eb";
     };
@@ -10595,7 +10583,7 @@ let
   pyusb = buildPythonPackage rec {
     name = "pyusb-1.0.0b1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pyusb/${name}.tar.gz";
       md5 = "5cc9c7dd77b4d12fcc22fee3b39844bc";
     };
@@ -10620,12 +10608,12 @@ let
     name = "usbtmc-${version}";
     version = "0.5";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/python-ivi/python-usbtmc/archive/v${version}.tar.gz";
       sha256 = "0xn8whjcdn8wgs9j1gj7sw7fh425akdmq3hi448m36fywldbhryg";
     };
 
-    propagatedBuildInputs = [ pyusb ];
+    propagatedBuildInputs = with self; [ pyusb ];
 
     meta = {
       description = "Python implementation of the USBTMC instrument control protocol";
@@ -10640,12 +10628,12 @@ let
     name = "txamqp-${version}";
     version = "0.3";
 
-    src = fetchurl rec {
+    src = pkgs.fetchurl rec {
       url = "https://launchpad.net/txamqp/trunk/${version}/+download/python-txamqp_${version}.orig.tar.gz";
       sha256 = "1r2ha0r7g14i4b5figv2spizjrmgfpspdbl1m031lw9px2hhm463";
     };
 
-    buildInputs = [ twisted ];
+    buildInputs = with self; [ twisted ];
 
     meta = {
       homepage = https://launchpad.net/txamqp;
@@ -10658,7 +10646,7 @@ let
     name = "versiontools-1.9.1";
     doCheck = (!isPy3k);
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/v/versiontools/${name}.tar.gz";
       sha256 = "1xhl6kl7f4srgnw6zw4lr8j2z5vmrbaa83nzn2c9r2m1hwl36sd9";
     };
@@ -10669,12 +10657,12 @@ let
     name = "graphite-web-${version}";
     version = "0.9.12";
 
-    src = fetchurl rec {
+    src = pkgs.fetchurl rec {
       url = "https://pypi.python.org/packages/source/g/graphite-web/${name}.tar.gz";
       md5 = "8edbb61f1ffe11c181bd2cb9ec977c72";
     };
 
-    propagatedBuildInputs = [ django_1_3 django_tagging modules.sqlite3 whisper pkgs.pycairo ldap memcached ];
+    propagatedBuildInputs = with self; [ django_1_3 django_tagging modules.sqlite3 whisper pkgs.pycairo ldap memcached ];
 
     postInstall = ''
       wrapProgram $out/bin/run-graphite-devel-server.py \
@@ -10702,7 +10690,7 @@ let
     name = "graphite-api-1.0.1";
     disabled = isPyPy;
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = "https://github.com/brutasse/graphite-api.git";
       rev = "b6f75e8a08fae695c094fece6de611b893fc65fb";
       sha256 = "41b90d5f35e99a020a6b1b77938690652521d1841b3165574fcfcee807ce4e6a";
@@ -10710,7 +10698,7 @@ let
 
     checkPhase = "nosetests";
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
       flask
       flask_cache
       cairocffi
@@ -10723,7 +10711,7 @@ let
       tzlocal
     ];
 
-    buildInputs = [
+    buildInputs = with self; [
       nose
       mock
     ];
@@ -10740,13 +10728,13 @@ let
   graphite_influxdb = buildPythonPackage rec {
     name = "graphite-influxdb-0.3";
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = "https://github.com/vimeo/graphite-influxdb.git";
       rev = "2273d12a24e1d804685a36debfd4224b7416b62f";
       sha256 = "e386eaf190793d3ad0a42a74b9e137a968a51fc3806f602ff756e09c0c0648a8";
     };
 
-    propagatedBuildInputs = [ influxdb graphite_api ];
+    propagatedBuildInputs = with self; [ influxdb graphite_api ];
 
     passthru.moduleName = "graphite_influxdb.InfluxdbFinder";
 
@@ -10763,12 +10751,12 @@ let
 
     version = "1.11";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/mopidy/pyspotify/archive/v1.11.tar.gz";
       sha256 = "089ml6pqr3f2d15n70jpzbaqjp5pjgqlyv4algkxw92xscjw2izg";
     };
 
-    buildInputs = [ pkgs.libspotify ]
+    buildInputs = with self; [ pkgs.libspotify ]
       ++ stdenv.lib.optional stdenv.isDarwin pkgs.install_name_tool;
 
     # python zip complains about old timestamps
@@ -10801,7 +10789,7 @@ let
 
     version = "1.2.0";
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = "https://github.com/jodal/pykka.git";
       rev = "refs/tags/v${version}";
       sha256 = "17vv2q636zp2fvxrp7ckgnz1ifaffcj5vdxvfb4isd1d32c49amb";
@@ -10822,7 +10810,7 @@ let
 
     version = "git-20130303";
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = "https://github.com/Lawouach/WebSocket-for-Python.git";
       rev = "ace276500ca7e4c357595e3773be151d37bcd6e2";
       sha256 = "04m4m3ncn7g4rb81xg5n28imns7rsq8d2w98gjpaib6vlmyly3g1";
@@ -10847,7 +10835,7 @@ let
     name = "gdata-${version}";
     version = "2.0.17";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://gdata-python-client.googlecode.com/files/${name}.tar.gz";
       # sha1 = "d2d9f60699611f95dd8c328691a2555e76191c0c";
       sha256 = "0bdaqmicpbj9v3p0swvyrqs7m35bzwdw1gy56d3k09np692jfwmd";
@@ -10868,12 +10856,12 @@ let
     version = "0.11";
     disabled = isPy34;
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://freshfoo.com/projects/IMAPClient/${name}.tar.gz";
       sha256 = "1w54h8gz25qf6ggazzp6xf7kvsyiadsjfkkk17gm0p6pmzvvccbn";
     };
 
-    buildInputs = [ mock ];
+    buildInputs = with self; [ mock ];
 
     preConfigure = ''
       sed -i '/distribute_setup/d' setup.py
@@ -10891,7 +10879,7 @@ let
     name = "Logbook-${version}";
     version = "0.4.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/L/Logbook/${name}.tar.gz";
       # md5 = "143cb15af4c4a784ca785a1546ad1b93";
       sha256 = "1g2pnhxh7m64qsrs0ifwcmpfk7gqjvrawd8z66i001rsdnq778v0";
@@ -10908,12 +10896,12 @@ let
     name = "libvirt-python-${version}";
     version = "1.2.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://libvirt.org/sources/python/${name}.tar.gz";
       sha256 = "1vbrkwvsvcfgibdw4drcypg2n6zcpi3zv23zw20nkk5fjfp26w4g";
     };
 
-    buildInputs = [ python pkgs.pkgconfig pkgs.libvirt lxml ];
+    buildInputs = with self; [ python pkgs.pkgconfig pkgs.libvirt lxml ];
 
     buildPhase = "python setup.py build";
 
@@ -10930,13 +10918,13 @@ let
     name = "searx-${rev}";
     rev = "44d3af9fb2482cd0df1a8ababbe2fdf27ab33172";
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = "git://github.com/asciimoo/searx";
       inherit rev;
       sha256 = "1w505pzdkkcglq782wg7f5fxrw9i5jzp7px20c2xz18pps2m3rsm";
     };
 
-    propagatedBuildInputs = [ pyyaml lxml grequests flaskbabel flask requests
+    propagatedBuildInputs = with self; [ pyyaml lxml grequests flaskbabel flask requests
       gevent speaklater Babel pytz dateutil ];
 
     meta = {
@@ -10950,12 +10938,12 @@ let
   grequests = buildPythonPackage rec {
     name = "grequests-0.2.0";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/g/grequests/${name}.tar.gz";
       sha256 = "0lafzax5igbh8y4x0krizr573wjsxz7bhvwygiah6qwrzv83kv5c";
     };
 
-    buildInputs = [ requests gevent ];
+    buildInputs = with self; [ requests gevent ];
 
     meta = {
       description = "GRequests allows you to use Requests with Gevent to make asyncronous HTTP Requests easily.";
@@ -10968,12 +10956,12 @@ let
   flaskbabel = buildPythonPackage rec {
     name = "Flask-Babel-0.9";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/F/Flask-Babel/${name}.tar.gz";
       sha256 = "0k7vk4k54y55ma0nx2k5s0phfqbriwslhy5shh3b0d046q7ibzaa";
     };
 
-    buildInputs = [ flask jinja2 speaklater Babel pytz ];
+    buildInputs = with self; [ flask jinja2 speaklater Babel pytz ];
 
     meta = {
       description = "Adds i18n/l10n support to Flask applications";
@@ -10986,7 +10974,7 @@ let
   speaklater = buildPythonPackage rec {
     name = "speaklater-1.3";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/speaklater/${name}.tar.gz";
       sha256 = "1ab5dbfzzgz6cnz4xlwx79gz83id4bhiw67k1cgqrlzfs0va7zjr";
     };
@@ -11002,7 +10990,7 @@ let
   power = buildPythonPackage rec {
     name = "power-1.2";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/power/${name}.tar.gz";
       sha256 = "09a00af8357f63dbb1a1eb13b82e39ccc0a14d6d2e44e5b235afe60ce8ee8195";
     };
@@ -11018,12 +11006,12 @@ let
     version = "1.1.2";
     name = "udiskie-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://github.com/coldfix/udiskie/archive/${version}.tar.gz";
       sha256 = "07fyvwp4rga47ayfsmb79p2784sqrih0sglwnd9c4x6g63xgljvb";
     };
 
-    propagatedBuildInputs = with pythonPackages; [ pygtk pyyaml pygobject dbus notify pkgs.udisks2 pkgs.gettext ];
+    propagatedBuildInputs = with self; [ pygtk pyyaml pygobject dbus notify pkgs.udisks2 pkgs.gettext ];
 
     # tests require dbusmock
     doCheck = false;
@@ -11039,14 +11027,14 @@ let
   pythonefl_1_11 = buildPythonPackage rec {
     name = "python-efl-${version}";
     version = "1.11.0";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "http://download.enlightenment.org/rel/bindings/python/${name}.tar.xz";
       sha256 = "1d4hj39alg6j7ah1bc8wvlka9d13i8iy3fxxraik2f60w6811i48";
     };
     preConfigure = ''
-      export NIX_CFLAGS_COMPILE="-I${pkgs.e19.efl}/include/eo-1 -I${pkgs.e19.efl}/include/eina-1 -I${pkgs.e19.efl}/include/eina-1/eina -I${pkgs.e19.efl}/include/evas-1 -I${dbus}/include/dbus-1.0 -I${pkgs.e19.efl}/include/efl-1 -I${pkgs.e19.efl}/include/eet-1 -I${pkgs.e19.efl}/include/ecore-1 -I${pkgs.e19.efl}/include/ecore-evas-1 -I${pkgs.e19.efl}/include/ecore-file-1 -I${pkgs.e19.efl}/include/ecore-input-1 -I${pkgs.e19.efl}/include/ecore-imf-1 -I${pkgs.e19.efl}/include/ecore-con-1 -I${pkgs.e19.efl}/include/edje-1 -I${pkgs.e19.efl}/include/eldbus-1 -I${pkgs.e19.efl}/include/efreet-1 -I${pkgs.e19.efl}/include/ethumb-client-1 -I${pkgs.e19.efl}/include/ethumb-1 -I${pkgs.e19.efl}/include/ecore-x-1 $NIX_CFLAGS_COMPILE"
+      export NIX_CFLAGS_COMPILE="-I${pkgs.e19.efl}/include/eo-1 -I${pkgs.e19.efl}/include/eina-1 -I${pkgs.e19.efl}/include/eina-1/eina -I${pkgs.e19.efl}/include/evas-1 -I${self.dbus}/include/dbus-1.0 -I${pkgs.e19.efl}/include/efl-1 -I${pkgs.e19.efl}/include/eet-1 -I${pkgs.e19.efl}/include/ecore-1 -I${pkgs.e19.efl}/include/ecore-evas-1 -I${pkgs.e19.efl}/include/ecore-file-1 -I${pkgs.e19.efl}/include/ecore-input-1 -I${pkgs.e19.efl}/include/ecore-imf-1 -I${pkgs.e19.efl}/include/ecore-con-1 -I${pkgs.e19.efl}/include/edje-1 -I${pkgs.e19.efl}/include/eldbus-1 -I${pkgs.e19.efl}/include/efreet-1 -I${pkgs.e19.efl}/include/ethumb-client-1 -I${pkgs.e19.efl}/include/ethumb-1 -I${pkgs.e19.efl}/include/ecore-x-1 $NIX_CFLAGS_COMPILE"
     '';
-    buildInputs = [ pkgs.pkgconfig pkgs.e19.efl pkgs.e19.elementary ];
+    buildInputs = with self; [ pkgs.pkgconfig pkgs.e19.efl pkgs.e19.elementary ];
     meta = {
       description = "Python bindings for EFL and Elementary.";
       homepage = http://enlightenment.org/;
@@ -11059,14 +11047,14 @@ let
   pythonefl = buildPythonPackage rec {
     name = "python-efl-${version}";
     version = "1.10.0";
-    src = fetchurl {
+    src = pkgs.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"
+      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${self.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 ];
+    buildInputs = with self; [ pkgs.pkgconfig pkgs.e18.efl pkgs.e18.elementary ];
     meta = {
       description = "Python bindings for EFL and Elementary.";
       homepage = http://enlightenment.org/;
@@ -11079,7 +11067,7 @@ let
   snapperGUI = buildPythonPackage rec {
     name = "Snapper-GUI";
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = "https://github.com/ricardomv/snapper-gui";
       rev = "11d98586b122180c75a86fccda45c4d7e3137591";
       sha256 = "7a9f86fc17dbf130526e70c3e925eac30e2c74d6b932efbf7e7cd9fbba6dc4b1";
@@ -11088,7 +11076,7 @@ let
     # no tests available
     doCheck = false;
 
-    propagatedBuildInputs = with pythonPackages; [ pygobject3 dbus ];
+    propagatedBuildInputs = with self; [ pygobject3 dbus ];
 
     meta = {
       homepage = https://github.com/ricardomv/snapper-gui;
@@ -11102,7 +11090,7 @@ let
   redNotebook = buildPythonPackage rec {
     name = "rednotebook-1.8.1";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "mirror://sourceforge/rednotebook/${name}.tar.gz";
       sha256 = "00b7s4xpqpxsbzjvjx9qsx5d84m9pvn383c5di1nsfh35pig0rzn";
     };
@@ -11110,7 +11098,7 @@ let
     # no tests available
     doCheck = false;
 
-    propagatedBuildInputs = with pythonPackages; [ pygtk pywebkitgtk pyyaml chardet ];
+    propagatedBuildInputs = with self; [ pygtk pywebkitgtk pyyaml chardet ];
 
     meta = {
       homepage = http://rednotebook.sourceforge.net/index.html;
@@ -11124,11 +11112,11 @@ let
 
 # python2.7 specific packages
 } // optionalAttrs isPy27 (
-  with pythonPackages;
+  with self;
 
 {
 
-  pypi2nix = pythonPackages.buildPythonPackage rec {
+  pypi2nix = self.buildPythonPackage rec {
     rev = "04a68d8577acbceb88bdf51b1231a9dbdead7003";
     name = "pypi2nix-1.0_${rev}";
 
@@ -11147,10 +11135,10 @@ let
     };
   };
 
-  svg2tikz = pythonPackages.buildPythonPackage {
+  svg2tikz = self.buildPythonPackage {
     name = "svg2tikz-1.0.0";
 
-    propagatedBuildInputs = [lxml];
+    propagatedBuildInputs = with self; [lxml];
 
     src = pkgs.fetchgit {
       url = "https://github.com/kjellmf/svg2tikz";
@@ -11166,10 +11154,10 @@ let
     };
   };
 
-  thumbor = pythonPackages.buildPythonPackage rec {
+  thumbor = self.buildPythonPackage rec {
     name = "thumbor-4.0.4";
 
-    propagatedBuildInputs = [
+    propagatedBuildInputs = with self; [
                     tornado
                     pycrypto
                     pycurl
@@ -11185,7 +11173,7 @@ let
                         ffmpeg = null;
                     }) ];
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/thumbor/${name}.tar.gz";
       md5 = "cf639a1cc57ee287b299ace450444408";
     };
@@ -11197,10 +11185,10 @@ let
     };
   };
 
-  thumborPexif = pythonPackages.buildPythonPackage rec {
+  thumborPexif = self.buildPythonPackage rec {
     name = "thumbor-pexif-0.14";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/t/thumbor-pexif/${name}.tar.gz";
       md5 = "fb4cdb60f4a0bead5193fb483ccd3430";
     };
@@ -11217,14 +11205,14 @@ let
     baseName = "pync";
     name     = "${baseName}-${version}";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/${baseName}/${name}.tar.gz";
       md5 = "5cc79077f386a17b539f1e51c05a3650";
     };
 
-    buildInputs = [ pkgs.coreutils ];
+    buildInputs = with self; [ pkgs.coreutils ];
 
-    propagatedBuildInputs = [ dateutil ];
+    propagatedBuildInputs = with self; [ 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
@@ -11242,14 +11230,14 @@ let
   weboob = buildPythonPackage rec {
     name = "weboob-0.j";
 
-    src = fetchurl {
+    src = pkgs.fetchurl {
       url = "https://symlink.me/attachments/download/271/${name}.tar.gz";
       md5 = "9e11b1f376ccb87d35995ec87bba5b38";
     };
 
     setupPyBuildFlags = ["--qt" "--xdg"];
 
-    propagatedBuildInputs = [ pillow prettytable pyyaml dateutil gdata requests2 mechanize feedparser lxml pkgs.gnupg pyqt4 pkgs.libyaml simplejson cssselect ];
+    propagatedBuildInputs = with self; [ pillow prettytable pyyaml dateutil gdata requests2 mechanize feedparser lxml pkgs.gnupg pyqt4 pkgs.libyaml simplejson cssselect ];
 
     meta = {
       homepage = http://weboob.org;