summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2017-09-07 09:29:44 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2017-09-07 09:29:44 +0200
commitd38ee5b46c5ca7d479786a4fa40efd53dcd748ec (patch)
treee08ae826f8b3727f2a6b18cd833819ab3f086c59 /pkgs/development
parent0c660ad42f108869a9dbce9092f793480f6b08ad (diff)
parentaabadda0c2e316f8c2cda35cba11be214472f1b8 (diff)
downloadnixpkgs-d38ee5b46c5ca7d479786a4fa40efd53dcd748ec.tar
nixpkgs-d38ee5b46c5ca7d479786a4fa40efd53dcd748ec.tar.gz
nixpkgs-d38ee5b46c5ca7d479786a4fa40efd53dcd748ec.tar.bz2
nixpkgs-d38ee5b46c5ca7d479786a4fa40efd53dcd748ec.tar.lz
nixpkgs-d38ee5b46c5ca7d479786a4fa40efd53dcd748ec.tar.xz
nixpkgs-d38ee5b46c5ca7d479786a4fa40efd53dcd748ec.tar.zst
nixpkgs-d38ee5b46c5ca7d479786a4fa40efd53dcd748ec.zip
Merge remote-tracking branch 'upstream/master' into HEAD
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/protobuf/3.3.nix6
-rw-r--r--pkgs/development/libraries/science/math/cudnn/8.0-6.0/default.nix40
-rw-r--r--pkgs/development/libraries/ucl/default.nix4
-rw-r--r--pkgs/development/python-modules/aioamqp/default.nix24
-rw-r--r--pkgs/development/python-modules/asana/default.nix37
-rw-r--r--pkgs/development/python-modules/astropy/default.nix7
-rw-r--r--pkgs/development/python-modules/backports_weakref/default.nix33
-rw-r--r--pkgs/development/python-modules/behave/default.nix45
-rw-r--r--pkgs/development/python-modules/coveralls/default.nix15
-rw-r--r--pkgs/development/python-modules/diff-match-patch/default.nix18
-rw-r--r--pkgs/development/python-modules/django-ipware/default.nix23
-rw-r--r--pkgs/development/python-modules/django-jinja2/default.nix29
-rw-r--r--pkgs/development/python-modules/django-pglocks/default.nix24
-rw-r--r--pkgs/development/python-modules/django-picklefield/default.nix18
-rw-r--r--pkgs/development/python-modules/django-sampledatahelper/default.nix31
-rw-r--r--pkgs/development/python-modules/django-sites/default.nix26
-rw-r--r--pkgs/development/python-modules/django-sr/default.nix21
-rw-r--r--pkgs/development/python-modules/django/1_11.nix4
-rw-r--r--pkgs/development/python-modules/djmail/default.nix25
-rw-r--r--pkgs/development/python-modules/easy-thumbnails/default.nix22
-rw-r--r--pkgs/development/python-modules/flask-mail/default.nix25
-rw-r--r--pkgs/development/python-modules/flask-marshmallow/default.nix25
-rw-r--r--pkgs/development/python-modules/flask/default.nix10
-rw-r--r--pkgs/development/python-modules/fn/default.nix21
-rw-r--r--pkgs/development/python-modules/ftfy/default.nix12
-rw-r--r--pkgs/development/python-modules/koji/default.nix9
-rw-r--r--pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix24
-rw-r--r--pkgs/development/python-modules/marshmallow/default.nix27
-rw-r--r--pkgs/development/python-modules/parse-type/default.nix38
-rw-r--r--pkgs/development/python-modules/parse/default.nix32
-rw-r--r--pkgs/development/python-modules/passlib/default.nix25
-rw-r--r--pkgs/development/python-modules/pathspec/default.nix22
-rw-r--r--pkgs/development/python-modules/premailer/default.nix23
-rw-r--r--pkgs/development/python-modules/psd-tools/default.nix22
-rw-r--r--pkgs/development/python-modules/pycryptodomex/default.nix18
-rw-r--r--pkgs/development/python-modules/pyhamcrest/default.nix28
-rw-r--r--pkgs/development/python-modules/pyjwkest/default.nix23
-rw-r--r--pkgs/development/python-modules/pylint/default.nix80
-rw-r--r--pkgs/development/python-modules/sampledata/default.nix31
-rw-r--r--pkgs/development/python-modules/secretstorage/default.nix27
-rw-r--r--pkgs/development/python-modules/serpy/default.nix26
-rw-r--r--pkgs/development/python-modules/urllib3/default.nix10
-rw-r--r--pkgs/development/python-modules/yamllint/default.nix9
-rw-r--r--pkgs/development/python-modules/zetup/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/conan/default.nix35
45 files changed, 986 insertions, 74 deletions
diff --git a/pkgs/development/libraries/protobuf/3.3.nix b/pkgs/development/libraries/protobuf/3.3.nix
new file mode 100644
index 00000000000..e6a8f05cc18
--- /dev/null
+++ b/pkgs/development/libraries/protobuf/3.3.nix
@@ -0,0 +1,6 @@
+{ callPackage, lib, ... }:
+
+lib.overrideDerivation (callPackage ./generic-v3.nix {
+  version = "3.3.0";
+  sha256 = "1258yz9flyyaswh3izv227kwnhwcxn4nwavdz9iznqmh24qmi59w";
+}) (attrs: { NIX_CFLAGS_COMPILE = "-Wno-error"; })
diff --git a/pkgs/development/libraries/science/math/cudnn/8.0-6.0/default.nix b/pkgs/development/libraries/science/math/cudnn/8.0-6.0/default.nix
new file mode 100644
index 00000000000..21efe5b5957
--- /dev/null
+++ b/pkgs/development/libraries/science/math/cudnn/8.0-6.0/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, requireFile
+, cudatoolkit
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  version = "6.0";
+  cudatoolkit_version = "8.0";
+
+  name = "cudatoolkit-${cudatoolkit_version}-cudnn-${version}";
+
+  src = fetchurl {
+    url = "http://developer.download.nvidia.com/compute/redist/cudnn/v6.0/cudnn-8.0-linux-x64-v6.0.tgz";
+    sha256 = "173zpgrk55ri8if7s5yngsc89ajd6hz4pss4cdxlv6lcyh5122cv";
+  };
+
+  installPhase = ''
+    function fixRunPath {
+      p=$(patchelf --print-rpath $1)
+      patchelf --set-rpath "$p:${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}" $1
+    }
+    fixRunPath lib64/libcudnn.so
+
+    mkdir -p $out
+    cp -a include $out/include
+    cp -a lib64 $out/lib64
+  '';
+
+  propagatedBuildInputs = [
+    cudatoolkit
+  ];
+
+  meta = with stdenv.lib; {
+    description = "NVIDIA CUDA Deep Neural Network library (cuDNN)";
+    homepage = https://developer.nvidia.com/cudnn;
+    license = stdenv.lib.licenses.unfree;
+    maintainers = with maintainers; [ jpbernardy ];
+  };
+}
diff --git a/pkgs/development/libraries/ucl/default.nix b/pkgs/development/libraries/ucl/default.nix
index ceb97b6088b..aa983b1394b 100644
--- a/pkgs/development/libraries/ucl/default.nix
+++ b/pkgs/development/libraries/ucl/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation {
   name = "ucl-1.03";
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   };
 
   # needed to successfully compile with gcc 6
-  NIX_CFLAGS_COMPILE = "-std=c90 -fPIC";
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isGNU "-std=c90";
 
   meta = {
     homepage = http://www.oberhumer.com/opensource/ucl/;
diff --git a/pkgs/development/python-modules/aioamqp/default.nix b/pkgs/development/python-modules/aioamqp/default.nix
new file mode 100644
index 00000000000..10a1d899157
--- /dev/null
+++ b/pkgs/development/python-modules/aioamqp/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, isPy33, pythonOlder,
+  asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "aioamqp";
+  name = "${pname}-${version}";
+  version = "0.10.0";
+
+  meta = {
+    homepage = https://github.com/polyconseil/aioamqp;
+    description = "AMQP implementation using asyncio";
+    license = lib.licenses.bsd3;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0132921yy31ijb8w439zcz1gla4hiws4hx8zf6la4hjr01nsy666";
+  };
+
+  buildInputs = lib.optionals isPy33 [ asyncio ];
+
+  disabled = pythonOlder "3.3";
+}
diff --git a/pkgs/development/python-modules/asana/default.nix b/pkgs/development/python-modules/asana/default.nix
new file mode 100644
index 00000000000..346257db098
--- /dev/null
+++ b/pkgs/development/python-modules/asana/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, fetchPypi,
+  pytest, requests, requests_oauthlib, six
+}:
+
+buildPythonPackage rec {
+  pname = "asana";
+  version = "0.6.2";
+  name = "${pname}-${version}";
+
+  meta = {
+    description = "Python client library for Asana";
+    homepage = https://github.com/asana/python-asana;
+    license = lib.licenses.mit;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0skai72392n3i1c4bl3hn2kh5lj990qsbasdwkbjdcy6vq57jggf";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ requests requests_oauthlib six ];
+
+  patchPhase = ''
+    echo > requirements.txt
+    sed -i "s/requests~=2.9.1/requests >=2.9.1/" setup.py
+    sed -i "s/requests_oauthlib~=0.6.1/requests_oauthlib >=0.6.1/" setup.py
+  '';
+
+  # ERROR: file not found: tests
+  doCheck = false; 
+
+  checkPhase = ''
+    py.test tests
+  '';
+
+}
diff --git a/pkgs/development/python-modules/astropy/default.nix b/pkgs/development/python-modules/astropy/default.nix
index 44ff96cf826..ba73c232c89 100644
--- a/pkgs/development/python-modules/astropy/default.nix
+++ b/pkgs/development/python-modules/astropy/default.nix
@@ -2,9 +2,7 @@
 , fetchPypi
 , buildPythonPackage
 , numpy
-, cython
-, h5py
-, scipy }:
+, pytest }:
 
 buildPythonPackage rec {
   
@@ -17,7 +15,8 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "25e0881a392a2e03b4a705cf9592f01894d23f64797323b21387efa8ea9ec03e";
   };
-  propagatedBuildInputs = [ numpy cython h5py scipy ];
+
+  propagatedBuildInputs = [ pytest numpy ]; # yes it really has pytest in install_requires
 
 
   meta = {
diff --git a/pkgs/development/python-modules/backports_weakref/default.nix b/pkgs/development/python-modules/backports_weakref/default.nix
new file mode 100644
index 00000000000..ad9f7582c09
--- /dev/null
+++ b/pkgs/development/python-modules/backports_weakref/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools_scm
+# , backports
+, python
+}:
+
+buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "backports.weakref";
+  version = "1.0rc1";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "14i8m3lspykdfpzf50grij3z286j9q8f32f2bnwdicv659qvy4w8";
+  };
+
+  buildInputs = [ setuptools_scm ];
+#   checkInputs = [ backports ];
+
+  # Requires backports package
+  doCheck = false;
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover tests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Backports of new features in Python’s weakref module";
+    license = licenses.psfl;
+    maintainers = with maintainers; [ jpbernardy ];
+  };
+}
diff --git a/pkgs/development/python-modules/behave/default.nix b/pkgs/development/python-modules/behave/default.nix
new file mode 100644
index 00000000000..80acc58f654
--- /dev/null
+++ b/pkgs/development/python-modules/behave/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchPypi
+, buildPythonApplication, python, pythonAtLeast
+, mock, nose, pyhamcrest
+, glibcLocales, parse, parse-type, six
+}:
+buildPythonApplication rec {
+  pname = "behave";
+  version = "1.2.5";
+  name = "${pname}-${version}";
+
+  disabled = pythonAtLeast "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "81b731ac5187e31e4aad2594944fa914943683a9818320846d037c5ebd6d5d0b";
+  };
+
+  checkInputs = [ mock nose pyhamcrest ];
+  buildInputs = [ glibcLocales ];
+  propagatedBuildInputs = [ parse parse-type six ];
+
+  postPatch = ''
+    patchShebangs bin
+  '';
+
+  doCheck = true;
+
+  checkPhase = ''
+    export LANG="en_US.UTF-8"
+    export LC_ALL="en_US.UTF-8"
+
+    nosetests -x
+
+    ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' features/
+    ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' tools/test-features/
+    ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' issue.features/
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/behave/behave;
+    description = "behaviour-driven development, Python style";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ alunduil ];
+  };
+}
diff --git a/pkgs/development/python-modules/coveralls/default.nix b/pkgs/development/python-modules/coveralls/default.nix
index f3b01c66815..4d11354df0a 100644
--- a/pkgs/development/python-modules/coveralls/default.nix
+++ b/pkgs/development/python-modules/coveralls/default.nix
@@ -2,12 +2,15 @@
 , lib
 , fetchPypi
 , mock
-, pytest_27
+, pytest
+, pytestrunner
 , sh
 , coverage
 , docopt
 , requests
+, urllib3
 , git
+, isPy3k
 }:
 
 buildPythonPackage rec {
@@ -21,13 +24,17 @@ buildPythonPackage rec {
     sha256 = "510682001517bcca1def9f6252df6ce730fcb9831c62d9fff7c7d55b6fdabdf3";
   };
 
-  buildInputs = [
+  checkInputs = [
     mock
     sh
-    pytest_27
+    pytest
     git
   ];
 
+  buildInputs = [
+    pytestrunner
+  ];
+
   # FIXME: tests requires .git directory to be present
   doCheck = false;
 
@@ -39,7 +46,7 @@ buildPythonPackage rec {
     coverage
     docopt
     requests
-  ];
+  ] ++ lib.optional (!isPy3k) urllib3;
 
   meta = {
     description = "Show coverage stats online via coveralls.io";
diff --git a/pkgs/development/python-modules/diff-match-patch/default.nix b/pkgs/development/python-modules/diff-match-patch/default.nix
new file mode 100644
index 00000000000..7907f1ffac0
--- /dev/null
+++ b/pkgs/development/python-modules/diff-match-patch/default.nix
@@ -0,0 +1,18 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "diff-match-patch";
+  name = "${pname}-${version}";
+  version = "20121119";
+
+  meta = {
+    homepage = https://code.google.com/p/google-diff-match-patch/;
+    description = "Diff, Match and Patch libraries for Plain Text";
+    license = lib.licenses.asl20;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0k1f3v8nbidcmmrk65m7h8v41jqi37653za9fcs96y7jzc8mdflx";
+  };
+}
diff --git a/pkgs/development/python-modules/django-ipware/default.nix b/pkgs/development/python-modules/django-ipware/default.nix
new file mode 100644
index 00000000000..c4d993ac03b
--- /dev/null
+++ b/pkgs/development/python-modules/django-ipware/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, django }:
+
+buildPythonPackage rec {
+  pname = "django-ipware";
+  name = "${pname}-${version}";
+  version = "1.1.6";
+
+  meta = {
+    description = "A Django application to retrieve user's IP address";
+    homepage = https://github.com/un33k/django-ipware;
+    license = lib.licenses.mit;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "00zah4g2h93nbsijz556j97v9qkn9sxcia1a2wrwdwnav2fhzack";
+  };
+
+  propagatedBuildInputs = [ django ];
+
+  # django.core.exceptions.ImproperlyConfigured: Requested setting IPWARE_TRUSTED_PROXY_LIST, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
+  doCheck = false;
+}
diff --git a/pkgs/development/python-modules/django-jinja2/default.nix b/pkgs/development/python-modules/django-jinja2/default.nix
new file mode 100644
index 00000000000..aabfecfcacc
--- /dev/null
+++ b/pkgs/development/python-modules/django-jinja2/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi,
+  django, jinja2, pytz, tox
+ }:
+
+buildPythonPackage rec {
+  pname = "django-jinja";
+  name = "${pname}-${version}";
+  version = "2.2.2";
+
+  meta = {
+    description = "Simple and nonobstructive jinja2 integration with Django";
+    homepage = https://github.com/niwinz/django-jinja;
+    license = lib.licenses.bsd3;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "099b99iprkvlsndrjmw4v3i3i60i9gm1aq5r88z15r7vgmv6sigj";
+  };
+
+  buildInputs = [ django pytz tox ];
+  propagatedBuildInputs = [ django jinja2 ];
+
+  # python installed: The directory '/homeless-shelter/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.,appdirs==1.4.3,Django==1.11.1,django-jinja==2.2.2,Jinja2==2.9.6,MarkupSafe==1.0,packaging==16.8,pyparsing==2.2.0,pytz==2017.2,six==1.10.0
+  doCheck = false;
+  checkPhase = ''
+    tox
+  '';
+}
diff --git a/pkgs/development/python-modules/django-pglocks/default.nix b/pkgs/development/python-modules/django-pglocks/default.nix
new file mode 100644
index 00000000000..2207aa348ab
--- /dev/null
+++ b/pkgs/development/python-modules/django-pglocks/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, django }:
+
+buildPythonPackage rec {
+  pname = "django-pglocks";
+  name = "${pname}-${version}";
+  version = "1.0.2";
+
+  meta = {
+    description = "PostgreSQL locking context managers and functions for Django.";
+    homepage = https://github.com/Xof/django-pglocks;
+    license = lib.licenses.mit;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ks4k0bk4457wfl3xgzr4v7xb0lxmnkhxwhlp0bbnmzipdafw1cl";
+  };
+
+  buildInputs = [ django ];
+  propagatedBuildInputs = [ django ];
+
+  # tests need a postgres database
+  doCheck = false;
+}
diff --git a/pkgs/development/python-modules/django-picklefield/default.nix b/pkgs/development/python-modules/django-picklefield/default.nix
new file mode 100644
index 00000000000..20a1c3dc221
--- /dev/null
+++ b/pkgs/development/python-modules/django-picklefield/default.nix
@@ -0,0 +1,18 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "django-picklefield";
+  name = "${pname}-${version}";
+  version = "0.3.2";
+
+  meta = {
+    description = "A pickled object field for Django";
+    homepage = https://github.com/gintas/django-picklefield;
+    license = lib.licenses.mit;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qlsbp3798ii68ny9zlz2ppkna00jf7i4hmjal3p8433gi18md7s";
+  };
+}
diff --git a/pkgs/development/python-modules/django-sampledatahelper/default.nix b/pkgs/development/python-modules/django-sampledatahelper/default.nix
new file mode 100644
index 00000000000..5bc0dc379dc
--- /dev/null
+++ b/pkgs/development/python-modules/django-sampledatahelper/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi,
+  django, nose, pillow, sampledata, six, versiontools
+}:
+
+buildPythonPackage rec {
+  pname = "django-sampledatahelper";
+  name = "${pname}-${version}";
+  version = "0.4.1";
+
+  meta = {
+    description = "Helper class for generate sample data for django apps development";
+    homepage = https://github.com/kaleidos/django-sampledatahelper;
+    license = lib.licenses.bsd3;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1795zg73lajcsfyd8i8cprb2v93d4csifjnld6bfnya90ncsbl4n";
+  };
+
+  buildInputs = [ django nose pillow sampledata six versiontools ];
+  propagatedBuildInputs = [ django sampledata ];
+
+  # HACK To prevent collision with pythonPackages.sampledata
+  preBuild = ''
+    rm tests/*
+  '';
+
+  # ERROR: test_image_from_directory (tests.tests.TestImageHelpers)
+  doCheck = false;
+}
diff --git a/pkgs/development/python-modules/django-sites/default.nix b/pkgs/development/python-modules/django-sites/default.nix
new file mode 100644
index 00000000000..41b532ea184
--- /dev/null
+++ b/pkgs/development/python-modules/django-sites/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi, django }:
+
+buildPythonPackage rec {
+  pname = "django-sites";
+  name = "${pname}-${version}";
+  version = "0.9";
+
+  meta = {
+    description = ''
+      Alternative implementation of django "sites" framework
+      based on settings instead of models.
+    '';
+    homepage = https://github.com/niwinz/django-sites;
+    license = lib.licenses.bsd3;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05nrydk4a5a99qrxjrcnacs8nbbq5pfjikdpj4w9yn5yfayp057s";
+  };
+
+  propagatedBuildInputs = [ django ];
+
+  # django.core.exceptions.ImproperlyConfigured: Requested settings, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
+  doCheck = false;
+}
diff --git a/pkgs/development/python-modules/django-sr/default.nix b/pkgs/development/python-modules/django-sr/default.nix
new file mode 100644
index 00000000000..1f8f9f17d3d
--- /dev/null
+++ b/pkgs/development/python-modules/django-sr/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi, django, nose }:
+
+buildPythonPackage rec {
+  pname = "django-sr";
+  name = "${pname}-${version}";
+  version = "0.0.4";
+
+  meta = {
+    description = "Django settings resolver";
+    homepage = https://github.com/jespino/django-sr;
+    license = lib.licenses.bsd3;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0d3yqppi1q3crcn9nxx58wzm4yw61d5m7435g6rb9wcamr9bi1im";
+  };
+
+  buildInputs = [ django nose ];
+  propagatedBuildInputs = [ django ];
+}
diff --git a/pkgs/development/python-modules/django/1_11.nix b/pkgs/development/python-modules/django/1_11.nix
index cbdbb57181a..f727751eda5 100644
--- a/pkgs/development/python-modules/django/1_11.nix
+++ b/pkgs/development/python-modules/django/1_11.nix
@@ -5,13 +5,13 @@
 buildPythonPackage rec {
   pname = "Django";
   name = "${pname}-${version}";
-  version = "1.11.4";
+  version = "1.11.5";
 
   disabled = pythonOlder "2.7";
 
   src = fetchurl {
     url = "http://www.djangoproject.com/m/releases/1.11/${name}.tar.gz";
-    sha256 = "1ckvq2sdlgpy2sqy6fwl84ms9dggvdbys9x76qapm2d9vmknxs5b";
+    sha256 = "0a9bk1a0n0264lcr67fmwzqyhkhy6bqdzkxsj9a8dpyzca0qfdhq";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/djmail/default.nix b/pkgs/development/python-modules/djmail/default.nix
new file mode 100644
index 00000000000..c8e6e2fa03d
--- /dev/null
+++ b/pkgs/development/python-modules/djmail/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi,
+  celery, django, psycopg2
+}:
+
+buildPythonPackage rec {
+  pname = "djmail";
+  name = "${pname}-${version}";
+  version = "1.0.1";
+
+  meta = {
+    description = "Simple, powerfull and nonobstructive django email middleware.";
+    homepage = https://github.com/bameda/djmail;
+    license = lib.licenses.bsd3;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1827i9qcn1ki09i5pg0lmar7cxjv18avh76x1n20947p1cimf3rp";
+  };
+
+  propagatedBuildInputs = [ celery django psycopg2 ];
+
+  # django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
+  doCheck = false;
+}
diff --git a/pkgs/development/python-modules/easy-thumbnails/default.nix b/pkgs/development/python-modules/easy-thumbnails/default.nix
new file mode 100644
index 00000000000..79743f8ac0d
--- /dev/null
+++ b/pkgs/development/python-modules/easy-thumbnails/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi,
+  django, pillow
+}:
+
+buildPythonPackage rec {
+  pname = "easy-thumbnails";
+  name = "${pname}-${version}";
+  version = "2.4.1";
+
+  meta = {
+    description = "Easy thumbnails for Django";
+    homepage = https://github.com/SmileyChris/easy-thumbnails;
+    license = lib.licenses.bsd3;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0w228b6hx8k4r15v7z62hyg99qp6xp4mdkgqs1ah64fyqxp1riaw";
+  };
+
+  propagatedBuildInputs = [ django pillow ];
+}
diff --git a/pkgs/development/python-modules/flask-mail/default.nix b/pkgs/development/python-modules/flask-mail/default.nix
new file mode 100644
index 00000000000..99545a55ba3
--- /dev/null
+++ b/pkgs/development/python-modules/flask-mail/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi,
+  blinker, flask, mock, nose, speaklater
+}:
+
+buildPythonPackage rec {
+  pname = "Flask-Mail";
+  name = "${pname}-${version}";
+  version = "0.9.1";
+
+  meta = {
+    description = "Flask-Mail is a Flask extension providing simple email sending capabilities.";
+    homepage = "https://pypi.python.org/pypi/Flask-Mail";
+    license = lib.licenses.bsd3;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hazjc351s3gfbhk975j8k65cg4gf31yq404yfy0gx0bjjdfpr92";
+  };
+
+  propagatedBuildInputs = [ blinker flask ];
+  buildInputs = [ blinker mock nose speaklater ];
+
+  doCheck = false;
+}
diff --git a/pkgs/development/python-modules/flask-marshmallow/default.nix b/pkgs/development/python-modules/flask-marshmallow/default.nix
new file mode 100644
index 00000000000..078b2386975
--- /dev/null
+++ b/pkgs/development/python-modules/flask-marshmallow/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi,
+  flask, six, marshmallow
+}:
+
+buildPythonPackage rec {
+  pname = "flask-marshmallow";
+  name = "${pname}-${version}";
+  version = "0.8.0";
+
+  meta = {
+    homepage = "https://github.com/marshmallow-code/flask-marshmallow";
+    description = "Flask + marshmallow for beautiful APIs";
+    license = lib.licenses.mit;
+  }; 
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1fa6xgxrn9bbc2pazbg46iw3ykvpcwib5b5s46qn59ndwj77lifi";
+  };
+
+  propagatedBuildInputs = [ flask marshmallow ];
+  buildInputs = [ six ];
+
+  doCheck = false;
+}
diff --git a/pkgs/development/python-modules/flask/default.nix b/pkgs/development/python-modules/flask/default.nix
index b16dc08a5e1..5e77de84fed 100644
--- a/pkgs/development/python-modules/flask/default.nix
+++ b/pkgs/development/python-modules/flask/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchPypi
-, itsdangerous, click, werkzeug, jinja2 }:
+, itsdangerous, click, werkzeug, jinja2, pytest }:
 
 buildPythonPackage rec {
   name = "${pname}-${version}";
@@ -11,8 +11,16 @@ buildPythonPackage rec {
     sha256 = "1hfs2jr2m5lr51xd4gblb28rncd0xrpycz6c07cyqsbv4dhl9x29";
   };
 
+  checkInputs = [ pytest ];
   propagatedBuildInputs = [ itsdangerous click werkzeug jinja2 ];
 
+  checkPhase = ''
+    py.test
+  '';
+
+  # Tests require extra dependencies
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = http://flask.pocoo.org/;
     description = "A microframework based on Werkzeug, Jinja 2, and good intentions";
diff --git a/pkgs/development/python-modules/fn/default.nix b/pkgs/development/python-modules/fn/default.nix
new file mode 100644
index 00000000000..d286459b137
--- /dev/null
+++ b/pkgs/development/python-modules/fn/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "fn";
+  name = "${pname}-${version}";
+  version = "0.4.3";
+
+  meta = {
+    description = ''
+      Functional programming in Python: implementation of missing
+      features to enjoy FP
+    '';
+    homepage = https://github.com/kachayev/fn.py;
+    license = lib.licenses.asl20;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1nmsjmn8jb4gp22ksx0j0hhdf4y0zm8rjykyy2i6flzimg6q1kgq";
+  };
+}
diff --git a/pkgs/development/python-modules/ftfy/default.nix b/pkgs/development/python-modules/ftfy/default.nix
index e5335867702..f5d25626bcf 100644
--- a/pkgs/development/python-modules/ftfy/default.nix
+++ b/pkgs/development/python-modules/ftfy/default.nix
@@ -5,6 +5,7 @@
 , wcwidth
 , nose
 , python
+, isPy3k
 }:
 buildPythonPackage rec {
   name = "${pname}-${version}";
@@ -18,14 +19,21 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ html5lib wcwidth];
 
-  buildInputs = [
+  checkInputs = [
     nose
   ];
 
   checkPhase = ''
-    nosetests -v
+    nosetests -v tests
   '';
 
+  # Several tests fail with
+  # FileNotFoundError: [Errno 2] No such file or directory: 'ftfy'
+  doCheck = false;
+
+  # "this version of ftfy is no longer written for Python 2"
+  disabled = !isPy3k;
+
   meta = with stdenv.lib; {
     description = "Given Unicode text, make its representation consistent and possibly less broken.";
     homepage = https://github.com/LuminosoInsight/python-ftfy/tree/master/tests;
diff --git a/pkgs/development/python-modules/koji/default.nix b/pkgs/development/python-modules/koji/default.nix
index d43e56781a7..5c14fa05af6 100644
--- a/pkgs/development/python-modules/koji/default.nix
+++ b/pkgs/development/python-modules/koji/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, pycurl }:
+{ stdenv, fetchurl, buildPythonPackage, pycurl, isPy3k }:
 
 buildPythonPackage rec {
   pname = "koji";
@@ -7,12 +7,15 @@ buildPythonPackage rec {
   format = "other";
 
   src = fetchurl {
-    url = "https://fedorahosted.org/released/koji/koji-1.8.0.tar.bz2";
-    sha256 = "10dph209h4jgajb5jmbjhqy4z4hd22i7s2d93vm3ikdf01i8iwf1";
+    url = "https://github.com/koji-project/koji/archive/koji-1.8.0.tar.gz";
+    sha256 = "17rkipdxccdccbbb70f9wx91cq9713psmq23j7lgb4mlnwan926h";
   };
 
   propagatedBuildInputs = [ pycurl ];
 
+  # Judging from SyntaxError
+  disabled = isPy3k;
+
   makeFlags = "DESTDIR=$(out)";
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
new file mode 100644
index 00000000000..a024d73037f
--- /dev/null
+++ b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi,
+  marshmallow, sqlalchemy
+}:
+
+buildPythonPackage rec {
+  pname = "marshmallow-sqlalchemy";
+  name = "${pname}-${version}";
+  version = "0.13.1";
+
+  meta = {
+    homepage = "https://github.com/marshmallow-code/marshmallow-sqlalchemy";
+    description = "SQLAlchemy integration with marshmallow ";
+    license = lib.licenses.mit;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0082ca2wwc9bymzkp1mr1l5h6rq0k1csv3vcq8ab24x0hdyg5qgk";
+  };
+
+  propagatedBuildInputs = [ marshmallow sqlalchemy ];
+
+  doCheck = false;
+}
diff --git a/pkgs/development/python-modules/marshmallow/default.nix b/pkgs/development/python-modules/marshmallow/default.nix
new file mode 100644
index 00000000000..17325d3204d
--- /dev/null
+++ b/pkgs/development/python-modules/marshmallow/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchPypi,
+  dateutil, simplejson
+}:
+
+buildPythonPackage rec {
+  pname = "marshmallow";
+  name = "${pname}-${version}";
+  version = "2.13.5";
+
+  meta = {
+    homepage = "https://github.com/marshmallow-code/marshmallow";
+    description = ''
+      A lightweight library for converting complex objects to and from
+      simple Python datatypes.
+    '';
+    license = lib.licenses.mit;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "048rzdkvnais51xdiy27nail5vxjb4ggw3vd60prn1q11lf16wig";
+  };
+
+  propagatedBuildInputs = [ dateutil simplejson ];
+
+  doCheck = false;
+}
diff --git a/pkgs/development/python-modules/parse-type/default.nix b/pkgs/development/python-modules/parse-type/default.nix
new file mode 100644
index 00000000000..69a02c42b74
--- /dev/null
+++ b/pkgs/development/python-modules/parse-type/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchPypi, fetchpatch
+, buildPythonPackage, pythonOlder
+, pytest, pytestrunner
+, parse, six, enum34
+}:
+buildPythonPackage rec {
+  pname = "parse-type";
+  version = "0.3.4";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "parse_type";
+    sha256 = "3dd0b323bafcb8c25e000ce5589042a1c99cba9c3bec77b9f591e46bc9606147";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "python-3.5-tests-compat.patch";
+      url = "https://github.com/jenisys/parse_type/pull/4.patch";
+      sha256 = "1mmn2fxss6q3qhaydd4s4v8vjgvgkg41v1vcivrzdsvgsc3npg7m";
+    })
+  ];
+
+  checkInputs = [ pytest pytestrunner ];
+  propagatedBuildInputs = [ parse six ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34;
+
+  checkPhase = ''
+    py.test tests
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/jenisys/parse_type;
+    description = "Simplifies to build parse types based on the parse module";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ alunduil ];
+  };
+}
diff --git a/pkgs/development/python-modules/parse/default.nix b/pkgs/development/python-modules/parse/default.nix
new file mode 100644
index 00000000000..eaca200e2bf
--- /dev/null
+++ b/pkgs/development/python-modules/parse/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchPypi, fetchpatch
+, buildPythonPackage, python
+}:
+buildPythonPackage rec {
+  pname = "parse";
+  version = "1.6.6";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "71435aaac494e08cec76de646de2aab8392c114e56fe3f81c565ecc7eb886178";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "python-3.5-tests-compat.patch";
+      url = "https://github.com/r1chardj0n3s/parse/pull/34.patch";
+      sha256 = "16iicgkf3lwivmdnp3xkq4n87wjmr3nb77z8mwz67b7by9nnp3jg";
+    })
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} test_parse.py
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/r1chardj0n3s/parse;
+    description = "parse() is the opposite of format()";
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ alunduil ];
+  };
+}
diff --git a/pkgs/development/python-modules/passlib/default.nix b/pkgs/development/python-modules/passlib/default.nix
new file mode 100644
index 00000000000..c269a414f82
--- /dev/null
+++ b/pkgs/development/python-modules/passlib/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+, bcrypt
+}:
+
+buildPythonPackage rec {
+  pname = "passlib";
+  version = "1.7.1";
+  name    = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3d948f64138c25633613f303bcc471126eae67c04d5e3f6b7b8ce6242f8653e0";
+  };
+
+  checkInputs = [ nose ];
+  propagatedBuildInputs = [ bcrypt ];
+
+  meta = {
+    description = "A password hashing library for Python";
+    homepage    = https://code.google.com/p/passlib/;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/pathspec/default.nix b/pkgs/development/python-modules/pathspec/default.nix
new file mode 100644
index 00000000000..f3995758521
--- /dev/null
+++ b/pkgs/development/python-modules/pathspec/default.nix
@@ -0,0 +1,22 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname   = "pathspec";
+  version = "0.5.3";
+  name    = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "54478a66a360f4ebe4499c9235e4206fca5dec837b8e272d1ce37e0a626cc64d";
+  };
+
+  meta = {
+    description = "Utility library for gitignore-style pattern matching of file paths";
+    homepage = "https://github.com/cpburnz/python-path-specification";
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [ copumpkin ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/premailer/default.nix b/pkgs/development/python-modules/premailer/default.nix
new file mode 100644
index 00000000000..f2f8c0f89fd
--- /dev/null
+++ b/pkgs/development/python-modules/premailer/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi,
+  cssselect, cssutils, lxml, mock, nose, requests
+}:
+
+buildPythonPackage rec {
+  pname = "premailer";
+  name = "${pname}-${version}";
+  version = "3.0.1";
+
+  meta = {
+    description = "Turns CSS blocks into style attributes ";
+    homepage = https://github.com/peterbe/premailer;
+    license = lib.licenses.bsd3;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0cmlvqx1dvy16k5q5ylmr43nlfpb9k2zl3q7s4kzhf0lml4wqwaf";
+  };
+
+  buildInputs = [ mock nose ];
+  propagatedBuildInputs = [ cssselect cssutils lxml requests ];
+}
diff --git a/pkgs/development/python-modules/psd-tools/default.nix b/pkgs/development/python-modules/psd-tools/default.nix
new file mode 100644
index 00000000000..801936d906c
--- /dev/null
+++ b/pkgs/development/python-modules/psd-tools/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi,
+  docopt, pillow
+}:
+
+buildPythonPackage rec {
+  pname = "psd-tools";
+  name = "${pname}-${version}";
+  version = "1.4";
+
+  meta = {
+    description = "Python package for reading Adobe Photoshop PSD files";
+    homepage = https://github.com/kmike/psd-tools;
+    license = lib.licenses.mit;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0g2vss5hwlk96w0yj42n7ia56mly51n92f2rlbrifhn8hfbxd38s";
+  };
+
+  propagatedBuildInputs = [ docopt pillow ];
+}
diff --git a/pkgs/development/python-modules/pycryptodomex/default.nix b/pkgs/development/python-modules/pycryptodomex/default.nix
new file mode 100644
index 00000000000..1d1ac67732a
--- /dev/null
+++ b/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -0,0 +1,18 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "pycryptodomex";
+  name = "${pname}-${version}";
+  version = "3.4.5";
+
+  meta = {
+    description = "A self-contained cryptographic library for Python";
+    homepage = https://www.pycryptodome.org;
+    license = lib.licenses.bsd2;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n5w5ls5syapmb39kavqgz2sa9pinzx4c9dvwa2147gj0hkh87wj";
+  };
+}
diff --git a/pkgs/development/python-modules/pyhamcrest/default.nix b/pkgs/development/python-modules/pyhamcrest/default.nix
new file mode 100644
index 00000000000..6b1eebd95c4
--- /dev/null
+++ b/pkgs/development/python-modules/pyhamcrest/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildPythonApplication, fetchPypi
+, mock, pytest
+, six
+}:
+buildPythonApplication rec {
+  pname = "PyHamcrest";
+  version = "1.9.0";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8ffaa0a53da57e89de14ced7185ac746227a8894dbd5a3c718bf05ddbd1d56cd";
+  };
+
+  checkInputs = [ mock pytest ];
+  propagatedBuildInputs = [ six ];
+
+  doCheck = false;  # pypi tarball does not include tests
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/hamcrest/PyHamcrest;
+    description = "Hamcrest framework for matcher objects";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [
+      alunduil
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyjwkest/default.nix b/pkgs/development/python-modules/pyjwkest/default.nix
new file mode 100644
index 00000000000..03cea021be8
--- /dev/null
+++ b/pkgs/development/python-modules/pyjwkest/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi,
+  future, pycryptodomex, pytest, requests, six
+}:
+
+buildPythonPackage rec {
+  pname = "pyjwkest";
+  name = "${pname}-${version}";
+  version = "1.3.2";
+
+  meta = {
+    description = "Implementation of JWT, JWS, JWE and JWK";
+    homepage = https://github.com/rohe/pyjwkest;
+    license = lib.licenses.asl20;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11rrswsmma3wzi2qnmq929323yc6i9fkjsv8zr7b3vajd72yr49d";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ future pycryptodomex requests six ];
+}
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index 8c82cb52910..8c0fd1b7a8f 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -1,42 +1,42 @@
-{ stdenv, fetchurl, buildPythonPackage, python, astroid, isort,
+{ stdenv, buildPythonPackage, fetchPypi, python, astroid, isort,
   pytest, pytestrunner,  mccabe, configparser, backports_functools_lru_cache }:
 
-  buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "pylint";
-    version = "1.7.2";
-
-    src = fetchurl {
-      url = "mirror://pypi/p/${pname}/${name}.tar.gz";
-      sha256 = "ea6afb93a9ed810cf52ff3838eb3a15e2bf6a81b80de0eaede1ce442caa5ca69";
-    };
-
-    buildInputs = [ pytest pytestrunner mccabe configparser backports_functools_lru_cache ];
-
-    propagatedBuildInputs = [ astroid configparser isort ];
-
-    postPatch = ''
-      # Remove broken darwin tests
-      sed -i -e '/test_parallel_execution/,+2d' pylint/test/test_self.py
-      sed -i -e '/test_py3k_jobs_option/,+4d' pylint/test/test_self.py
-      rm -vf pylint/test/test_functional.py
-    '';
-
-    checkPhase = ''
-      cd pylint/test
-      ${python.interpreter} -m unittest discover -p "*test*"
-    '';
-
-    postInstall = ''
-      mkdir -p $out/share/emacs/site-lisp
-      cp "elisp/"*.el $out/share/emacs/site-lisp/
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = http://www.logilab.org/project/pylint;
-      description = "A bug and style checker for Python";
-      platforms = platforms.all;
-      license = licenses.gpl1Plus;
-      maintainers = with maintainers; [ nand0p ];
-    };
-  }
+buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "pylint";
+  version = "1.7.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ea6afb93a9ed810cf52ff3838eb3a15e2bf6a81b80de0eaede1ce442caa5ca69";
+  };
+
+  buildInputs = [ pytest pytestrunner mccabe configparser backports_functools_lru_cache ];
+
+  propagatedBuildInputs = [ astroid configparser isort ];
+
+  postPatch = ''
+    # Remove broken darwin tests
+    sed -i -e '/test_parallel_execution/,+2d' pylint/test/test_self.py
+    sed -i -e '/test_py3k_jobs_option/,+4d' pylint/test/test_self.py
+    rm -vf pylint/test/test_functional.py
+  '';
+
+  checkPhase = ''
+    cd pylint/test
+    ${python.interpreter} -m unittest discover -p "*test*"
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp "elisp/"*.el $out/share/emacs/site-lisp/
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.logilab.org/project/pylint;
+    description = "A bug and style checker for Python";
+    platforms = platforms.all;
+    license = licenses.gpl1Plus;
+    maintainers = with maintainers; [ nand0p ];
+  };
+}
diff --git a/pkgs/development/python-modules/sampledata/default.nix b/pkgs/development/python-modules/sampledata/default.nix
new file mode 100644
index 00000000000..b6beb3ec887
--- /dev/null
+++ b/pkgs/development/python-modules/sampledata/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi,
+  nose, pytz, six, versiontools
+}:
+
+buildPythonPackage rec {
+  pname = "sampledata";
+  name = "${pname}-${version}";
+  version = "0.3.7";
+
+  meta = {
+    description = "Sample Data generator for Python ";
+    homepage = https://github.com/jespino/sampledata;
+    license = lib.licenses.bsd3;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1kx2j49lag30d32zhzsr50gl5b949wa4lcdap2filg0d07picsdh";
+  };
+
+  buildInputs = [ nose versiontools ];
+  propagatedBuildInputs = [ pytz six ];
+
+# ERROR: test_image_path_from_directory (tests.tests.TestImageHelpers)
+# ERROR: test_image_stream (tests.tests.TestImageHelpers)
+  doCheck = false;
+
+  checkPhase = ''
+    nosetests -e "TestImageHelpers"
+  '';
+}
diff --git a/pkgs/development/python-modules/secretstorage/default.nix b/pkgs/development/python-modules/secretstorage/default.nix
new file mode 100644
index 00000000000..e37e87f7d88
--- /dev/null
+++ b/pkgs/development/python-modules/secretstorage/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, buildPythonPackage
+, dbus-python, cryptography }:
+
+buildPythonPackage rec {
+  pname = "secretstorage";
+  version = "2.3.1";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "mitya57";
+    repo = "secretstorage";
+    rev = version;
+    sha256 = "1sjd2jjbxgkkxyrfwx89x0hsnn39w2cr2qkxbg1iz52znr4sqism";
+  };
+
+  propagatedBuildInputs = [ dbus-python cryptography ];
+
+  doCheck = false; # requires dbus session
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/mitya57/secretstorage";
+    description = "Python bindings to FreeDesktop.org Secret Service API";
+    license = licenses.bsdOriginal;
+    platforms = platforms.linux;
+    maintainer = with maintainers; [ teto ];
+  };
+}
diff --git a/pkgs/development/python-modules/serpy/default.nix b/pkgs/development/python-modules/serpy/default.nix
new file mode 100644
index 00000000000..e2ecbdcb67a
--- /dev/null
+++ b/pkgs/development/python-modules/serpy/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi,
+  flake8, py, pyflakes, six, tox
+}:
+
+buildPythonPackage rec {
+  pname = "serpy";
+  name = "${pname}-${version}";
+  version = "0.1.1";
+
+  meta = {
+    description = "ridiculously fast object serialization";
+    homepage = https://github.com/clarkduvall/serpy;
+    license = lib.licenses.mit;
+  };
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0r9wn99x9nbqxfancnq9jh3cn83i1b6gc79xj0ipnxixp661yj5i";
+  };
+
+  buildInputs = [ flake8 py pyflakes tox ];
+  propagatedBuildInputs = [ six ];
+
+  # ImportError: No module named 'tests
+  doCheck = false;
+}
diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix
index a23ae0f0b74..10021e14f12 100644
--- a/pkgs/development/python-modules/urllib3/default.nix
+++ b/pkgs/development/python-modules/urllib3/default.nix
@@ -1,5 +1,6 @@
 { stdenv, buildPythonPackage, fetchPypi
-, coverage, tornado, mock, nose, psutil, pysocks }:
+, pytest, mock, tornado, pyopenssl, cryptography
+, idna, certifi, ipaddress, pysocks }:
 
 buildPythonPackage rec {
   pname = "urllib3";
@@ -22,11 +23,12 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  buildInputs = [ coverage tornado mock nose psutil pysocks ];
+  checkInputs = [ pytest mock tornado ];
+  propagatedBuildInputs = [ pyopenssl cryptography idna certifi ipaddress pysocks ];
 
   meta = with stdenv.lib; {
-    description = "A Python library for Dropbox's HTTP-based Core and Datastore APIs";
-    homepage = https://www.dropbox.com/developers/core/docs;
+    description = "Powerful, sanity-friendly HTTP client for Python";
+    homepage = https://github.com/shazow/urllib3;
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/yamllint/default.nix b/pkgs/development/python-modules/yamllint/default.nix
index 2f0b12618e5..2923fcaf3eb 100644
--- a/pkgs/development/python-modules/yamllint/default.nix
+++ b/pkgs/development/python-modules/yamllint/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchPypi
-, nose, pyyaml }:
+, nose, pyyaml, pathspec }:
 
 buildPythonPackage rec {
   pname = "yamllint";
@@ -11,9 +11,12 @@ buildPythonPackage rec {
     sha256 = "048743567ca9511e19222233ebb53795586a2cede07b79e801577e0a9b4f173c";
   };
 
-  buildInputs = [ nose ];
+  checkInputs = [ nose ];
 
-  propagatedBuildInputs = [  pyyaml ];
+  propagatedBuildInputs = [  pyyaml pathspec ];
+
+  # Two test failures
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "A linter for YAML files";
diff --git a/pkgs/development/python-modules/zetup/default.nix b/pkgs/development/python-modules/zetup/default.nix
index a682a6e4e92..0c1ece54fb6 100644
--- a/pkgs/development/python-modules/zetup/default.nix
+++ b/pkgs/development/python-modules/zetup/default.nix
@@ -5,18 +5,18 @@
 buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "zetup";
-  version = "0.2.42";
+  version = "0.2.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6c9e25249f3014ed2162398772ccf1a5e8a4e9e66c74e3c7f6683945a6a3d84c";
+    sha256 = "0k4lm51b5qjy7yxy3n5z8vc5hlvjcsfsvwjgqzkr0pisysar1kpf";
   };
 
   checkPhase = ''
     py.test test
   '';
 
-  buildInputs = [ pytest pathpy nbconvert ];
+  checkInputs = [ pytest pathpy nbconvert ];
   propagatedBuildInputs = [ setuptools_scm ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix
index 69cc2db3ff2..1558772ed60 100644
--- a/pkgs/development/tools/build-managers/conan/default.nix
+++ b/pkgs/development/tools/build-managers/conan/default.nix
@@ -1,18 +1,41 @@
-{ stdenv, pythonPackages }:
+{ stdenv, python }:
 
-pythonPackages.buildPythonApplication rec {
+let
+  p = python.override {
+    packageOverrides = self: super: {
+      astroid = super.astroid.overridePythonAttrs (oldAttrs: rec {
+        version = "1.4.9";
+        name = "${oldAttrs.pname}-${version}";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "a483e7891ce3a06dadfc6cb9095b0938aca58940d43576d72e4502b480c085d7";
+        };
+      });
+      pylint = super.pylint.overridePythonAttrs (oldAttrs: rec {
+        version = "1.6.5";
+        name = "${oldAttrs.pname}-${version}";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "a673984a8dd78e4a8b8cfdee5359a1309d833cf38405008f4a249994a8456719";
+        };
+      });
+    };
+  };
+
+in p.pkgs.buildPythonApplication rec {
   name = "${pname}-${version}";
-  version = "0.21.2";
+  version = "0.26.1";
   pname = "conan";
 
-  src = pythonPackages.fetchPypi {
+  src = p.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "0x9s5h81d885xdrjw5x99q18lhmj11kalrs6xnjy2phrr8qzil8c";
+    sha256 = "2da5a140a74d912d5561698b8cc5a5e5583b9dbe36623c59b4ce4be586476e7c";
   };
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with p.pkgs; [
     requests fasteners pyyaml pyjwt colorama patch
     bottle pluginbase six distro pylint node-semver
+    future pygments mccabe
   ];
 
   # enable tests once all of these pythonPackages available: