about summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2019-02-01 09:42:53 +0100
committerVladimír Čunát <vcunat@gmail.com>2019-02-01 09:42:53 +0100
commit8ba516664bf367889b06b06e4122372f82f24feb (patch)
tree01b691a7e1ad4797843b4c93d8a9d74fd16311d7 /pkgs/development/python-modules
parentd00ca4476cd91bae052e8ded4d94e124a353d091 (diff)
parent5effa4e0f98b317fe4607b1a6548811017c3325d (diff)
downloadnixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar.gz
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar.bz2
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar.lz
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar.xz
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar.zst
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.zip
Merge branch 'staging-next' into staging
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/Wand/default.nix33
-rw-r--r--pkgs/development/python-modules/androguard/default.nix37
-rw-r--r--pkgs/development/python-modules/astral/default.nix6
-rw-r--r--pkgs/development/python-modules/django-sesame/default.nix27
-rw-r--r--pkgs/development/python-modules/django/1_11.nix6
-rw-r--r--pkgs/development/python-modules/django/1_8.nix5
-rw-r--r--pkgs/development/python-modules/docker-py/default.nix28
-rw-r--r--pkgs/development/python-modules/eradicate/default.nix4
-rw-r--r--pkgs/development/python-modules/favicon/default.nix27
-rw-r--r--pkgs/development/python-modules/fdroidserver/default.nix35
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix4
-rw-r--r--pkgs/development/python-modules/ftfy/default.nix24
-rw-r--r--pkgs/development/python-modules/future-fstrings/default.nix22
-rw-r--r--pkgs/development/python-modules/google-api-python-client/default.nix5
-rw-r--r--pkgs/development/python-modules/gprof2dot/default.nix20
-rw-r--r--pkgs/development/python-modules/httpsig/default.nix4
-rw-r--r--pkgs/development/python-modules/immutables/default.nix4
-rw-r--r--pkgs/development/python-modules/latexcodec/default.nix4
-rw-r--r--pkgs/development/python-modules/mautrix-appservice/default.nix28
-rw-r--r--pkgs/development/python-modules/mechanize/default.nix4
-rw-r--r--pkgs/development/python-modules/mozsvc/default.nix23
-rw-r--r--pkgs/development/python-modules/nbxmpp/default.nix4
-rw-r--r--pkgs/development/python-modules/nose_progressive/default.nix2
-rw-r--r--pkgs/development/python-modules/peewee/default.nix4
-rw-r--r--pkgs/development/python-modules/pika/default.nix4
-rw-r--r--pkgs/development/python-modules/precis-i18n/default.nix20
-rw-r--r--pkgs/development/python-modules/pyarrow/default.nix5
-rw-r--r--pkgs/development/python-modules/pydub/default.nix4
-rw-r--r--pkgs/development/python-modules/pygobject/default.nix2
-rw-r--r--pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch88
-rw-r--r--pkgs/development/python-modules/pysam/default.nix4
-rw-r--r--pkgs/development/python-modules/pyspark/default.nix7
-rw-r--r--pkgs/development/python-modules/python-vagrant/default.nix21
-rw-r--r--pkgs/development/python-modules/pyu2f/default.nix35
-rw-r--r--pkgs/development/python-modules/qscintilla-qt5/default.nix41
-rw-r--r--pkgs/development/python-modules/rlp/default.nix4
-rw-r--r--pkgs/development/python-modules/serversyncstorage/default.nix23
-rw-r--r--pkgs/development/python-modules/sphinx-argparse/default.nix33
-rw-r--r--pkgs/development/python-modules/syncserver/default.nix33
-rw-r--r--pkgs/development/python-modules/tableaudocumentapi/default.nix24
-rw-r--r--pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix25
-rw-r--r--pkgs/development/python-modules/telethon/default.nix30
-rw-r--r--pkgs/development/python-modules/textacy/default.nix5
-rw-r--r--pkgs/development/python-modules/texttable/default.nix4
-rw-r--r--pkgs/development/python-modules/tokenserver/default.nix1
-rw-r--r--pkgs/development/python-modules/twilio/default.nix4
46 files changed, 609 insertions, 168 deletions
diff --git a/pkgs/development/python-modules/Wand/default.nix b/pkgs/development/python-modules/Wand/default.nix
index 8108914814af..a884b9eb7fbe 100644
--- a/pkgs/development/python-modules/Wand/default.nix
+++ b/pkgs/development/python-modules/Wand/default.nix
@@ -1,46 +1,33 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, imagemagick
-, pytest
-, psutil
-, memory_profiler
-, pytest_xdist
+, imagemagick7Big
 }:
 
-let
-  soext = stdenv.hostPlatform.extensions.sharedLibrary;
-  magick_wand_library = "${imagemagick}/lib/libMagickWand-6.Q16${soext}";
-  imagemagick_library = "${imagemagick}/lib/libMagickCore-6.Q16${soext}";
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "Wand";
-  version = "0.4.5";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b40a2215545e8c7193b3fccd6e7251dc556ec9b878a4f67d992b056ff396bc65";
+    sha256 = "0rp1zdp2p7qngva5amcw4jb5i8gf569v8469gf6zj36hcnzksxjj";
   };
 
-  checkInputs = [ pytest pytest_xdist memory_profiler psutil ];
-
-  buildInputs = [ imagemagick ];
-
-  inherit magick_wand_library imagemagick_library;
-
   postPatch = ''
-    substituteAllInPlace wand/api.py
+    substituteInPlace wand/api.py --replace \
+      "magick_home = os.environ.get('MAGICK_HOME')" \
+      "magick_home = '${imagemagick7Big}'"
   '';
 
   # tests not included with pypi release
   doCheck = false;
 
+  passthru.imagemagick = imagemagick7Big;
+
   meta = with stdenv.lib; {
     description = "Ctypes-based simple MagickWand API binding for Python";
     homepage = http://wand-py.org/;
     license = [ licenses.mit ];
-  };
-
-  passthru = {
-    inherit imagemagick;
+    maintainers = with maintainers; [ infinisil ];
   };
 }
diff --git a/pkgs/development/python-modules/androguard/default.nix b/pkgs/development/python-modules/androguard/default.nix
new file mode 100644
index 000000000000..686d6a2a75e1
--- /dev/null
+++ b/pkgs/development/python-modules/androguard/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, fetchPypi, future, networkx, pygments, lxml, colorama, matplotlib,
+  asn1crypto, click, pydot, ipython, pyqt5, pyperclip }:
+
+buildPythonPackage rec {
+  version = "3.3.3";
+  pname = "androguard";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zlmn3byh2whg7k2xmcd7yy43lcawhryjnzcxr9bhn54709b6iyd";
+  };
+
+  propagatedBuildInputs = [
+    future
+    networkx
+    pygments
+    lxml
+    colorama
+    matplotlib
+    asn1crypto
+    click
+    pydot
+    ipython
+    pyqt5
+    pyperclip
+  ];
+
+  # Tests are not shipped on PyPI.
+  doCheck = false;
+
+  meta = {
+    description = "Tool and python library to interact with Android Files";
+    homepage = https://github.com/androguard/androguard;
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.pmiddend ];
+  };
+}
diff --git a/pkgs/development/python-modules/astral/default.nix b/pkgs/development/python-modules/astral/default.nix
index 577a92eb8910..3c5839267bde 100644
--- a/pkgs/development/python-modules/astral/default.nix
+++ b/pkgs/development/python-modules/astral/default.nix
@@ -2,18 +2,18 @@
 
 buildPythonPackage rec {
   pname = "astral";
-  version = "1.7.1";
+  version = "1.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01raz1c29v08f05l395v1hxllad35m5ld1jj51knb53c0396y248";
+    sha256 = "179f72a086cee96487e60514bab81e821966953fc2e2f7091500d3d2c314e38b";
   };
 
   propagatedBuildInputs = [ pytz requests ];
 
   checkInputs = [ pytest ];
   checkPhase = ''
-    # https://github.com/sffjunkie/astral/pull/13
+    # https://github.com/sffjunkie/astral/pull/26
     touch src/test/.api_key
     py.test -m "not webtest"
   '';
diff --git a/pkgs/development/python-modules/django-sesame/default.nix b/pkgs/development/python-modules/django-sesame/default.nix
new file mode 100644
index 000000000000..9887580b0fdd
--- /dev/null
+++ b/pkgs/development/python-modules/django-sesame/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchPypi
+, django }:
+
+buildPythonPackage rec {
+  pname = "django-sesame";
+  version = "1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "081q3vd9waiajiipg99flw0vlzk920sz07067v3n5774gx0qhbaa";
+  };
+
+  checkInputs = [ django ];
+
+  checkPhase = ''
+    PYTHONPATH="$(pwd):$PYTHONPATH" \
+    DJANGO_SETTINGS_MODULE=sesame.test_settings \
+      django-admin test sesame
+  '';
+
+  meta = with lib; {
+    description = "URLs with authentication tokens for automatic login";
+    homepage = http://github.com/aaugustin/django-sesame;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ elohmeier ];
+  };
+}
diff --git a/pkgs/development/python-modules/django/1_11.nix b/pkgs/development/python-modules/django/1_11.nix
index 131c6b3ef1bf..6e2bbd9fd5d3 100644
--- a/pkgs/development/python-modules/django/1_11.nix
+++ b/pkgs/development/python-modules/django/1_11.nix
@@ -6,13 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "1.11.17";
-
-  disabled = pythonOlder "2.7";
+  version = "1.11.18";
 
   src = fetchurl {
     url = "https://www.djangoproject.com/m/releases/1.11/${pname}-${version}.tar.gz";
-    sha256 = "10xlpm21ll8mgz5py41sz9vrd603qv7an736agbqxkxlyikfx1x7";
+    sha256 = "19b6f020als9hr4q1im5282yn2b1hzf586n9kjrlkrslq7da3k3k";
   };
 
   patches = stdenv.lib.optionals withGdal [
diff --git a/pkgs/development/python-modules/django/1_8.nix b/pkgs/development/python-modules/django/1_8.nix
index 30d75e73c68d..ee2408f73405 100644
--- a/pkgs/development/python-modules/django/1_8.nix
+++ b/pkgs/development/python-modules/django/1_8.nix
@@ -25,6 +25,11 @@ buildPythonPackage rec {
     description = "A high-level Python Web framework";
     homepage = https://www.djangoproject.com/;
     license = licenses.bsd0;
+    knownVulnerabilities = [
+      # The patches were not backported due to Django 1.8 having reached EOL
+      https://www.djangoproject.com/weblog/2018/aug/01/security-releases/
+      https://www.djangoproject.com/weblog/2019/jan/04/security-releases/
+    ];
   };
 
 }
diff --git a/pkgs/development/python-modules/docker-py/default.nix b/pkgs/development/python-modules/docker-py/default.nix
new file mode 100644
index 000000000000..84dba75e404a
--- /dev/null
+++ b/pkgs/development/python-modules/docker-py/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonPackage, fetchPypi, six, requests, websocket_client, docker_pycreds }:
+
+buildPythonPackage rec {
+  version = "1.10.6";
+  pname = "docker-py";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05f49f6hnl7npmi7kigg0ibqk8s3fhzx1ivvz1kqvlv4ay3paajc";
+  };
+
+  # The tests access the network.
+  doCheck = false;
+
+  propagatedBuildInputs = [
+    six
+    requests
+    websocket_client
+    docker_pycreds
+  ];
+
+  meta = {
+    description = "Python library for the Docker Remote API";
+    homepage = https://github.com/docker/docker-py/;
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.pmiddend ];
+  };
+}
diff --git a/pkgs/development/python-modules/eradicate/default.nix b/pkgs/development/python-modules/eradicate/default.nix
index 7c071a5cee6b..6b3909a5b458 100644
--- a/pkgs/development/python-modules/eradicate/default.nix
+++ b/pkgs/development/python-modules/eradicate/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "eradicate";
-  version = "0.2.1";
+  version = "1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "092zmck919bn6sl31ixrzhn88g9nvhwzmwzpq8dzgn6c8k2h3bzr";
+    sha256 = "06nhs8wml5f5k96gbq7jl417bmsqnxy8aykpzbzrvm3gmqmaizag";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/favicon/default.nix b/pkgs/development/python-modules/favicon/default.nix
new file mode 100644
index 000000000000..e4675274c09f
--- /dev/null
+++ b/pkgs/development/python-modules/favicon/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchPypi, requests, beautifulsoup4, pytest, requests-mock,
+  pytestrunner }:
+
+buildPythonPackage rec {
+  pname = "favicon";
+  version = "0.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01jhb66nrqbf22z6ybpi8ndw6zifgysdmnh547027g96nz51669y";
+  };
+
+  buildInputs = [ pytestrunner ];
+  checkInputs = [ pytest requests-mock ];
+  propagatedBuildInputs = [ requests beautifulsoup4 ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Find a website's favicon";
+    homepage = http://github.com/scottwernervt/favicon;
+    license = licenses.mit;
+    maintainers = with maintainers; [ elohmeier ];
+  };
+}
diff --git a/pkgs/development/python-modules/fdroidserver/default.nix b/pkgs/development/python-modules/fdroidserver/default.nix
deleted file mode 100644
index b9b936ae83e8..000000000000
--- a/pkgs/development/python-modules/fdroidserver/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchFromGitLab
-, libcloud
-, pyyaml
-, paramiko
-, pyasn1
-, pyasn1-modules
-, pillow
-, mwclient
-, GitPython
-, isPy3k
-}:
-
-buildPythonPackage rec {
-  version = "2016-05-31";
-  pname = "fdroidserver-git";
-  disabled = ! isPy3k;
-
-  src = fetchFromGitLab {
-    owner = "fdroid";
-    repo = "fdroidserver";
-    rev = "401649e0365e6e365fc48ae8a3af94768af865f3";
-    sha256 = "1mmi2ffpym1qw694yj938kc7b4xhq0blri7wkjaqddcyykjyr94d";
-  };
-
-  propagatedBuildInputs = [ libcloud pyyaml paramiko pyasn1 pyasn1-modules pillow mwclient GitPython ];
-
-  meta = with stdenv.lib; {
-    homepage = https://f-droid.org;
-    description = "Server and tools for F-Droid, the Free Software repository system for Android";
-    license = licenses.agpl3;
-  };
-
-}
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index 4fd2db014bab..58df04c17c80 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "3.34.2";
+  version = "3.37.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ahs82jnc8f7gksh51asg9dcifhslyfdz9dry9sxq424q1p5k9lz";
+    sha256 = "1bf7k6qdvi2ycw87g8iqy0rwl3ms25k3zz6ix1fpsk8qx36gk9x1";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/ftfy/default.nix b/pkgs/development/python-modules/ftfy/default.nix
index 38457caabbf5..f6fa41e33f83 100644
--- a/pkgs/development/python-modules/ftfy/default.nix
+++ b/pkgs/development/python-modules/ftfy/default.nix
@@ -4,13 +4,13 @@
 , fetchPypi
 , html5lib
 , wcwidth
-, nose
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "ftfy";
 
-  version = "5.5.0";
+  version = "5.5.1";
   # ftfy v5 only supports python3. Since at the moment the only
   # packages that use ftfy are spacy and textacy which both support
   # python 2 and 3, they have pinned ftfy to the v4 branch.
@@ -20,26 +20,26 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "525ea45a871f52ddb170e66b01f35f1b3022995016c81efa305e628937b85443";
+    sha256 = "1ci6xrj4g01a97nymxpv9nj820nlmgzc4ybaz9k46i6bnxzpax7s";
   };
 
-  propagatedBuildInputs = [ html5lib wcwidth ];
+  propagatedBuildInputs = [
+    html5lib
+    wcwidth
+  ];
 
   checkInputs = [
-    nose
+    pytest
   ];
 
+  # We suffix PATH like this because the tests want the ftfy executable
   checkPhase = ''
-    nosetests -v tests
+    PATH=$out/bin:$PATH pytest
   '';
 
-  # Several tests fail with
-  # FileNotFoundError: [Errno 2] No such file or directory: 'ftfy'
-  doCheck = false;
-
   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;
+    description = "Given Unicode text, make its representation consistent and possibly less broken";
+    homepage = https://github.com/LuminosoInsight/python-ftfy;
     license = licenses.mit;
     maintainers = with maintainers; [ sdll aborsu ];
   };
diff --git a/pkgs/development/python-modules/future-fstrings/default.nix b/pkgs/development/python-modules/future-fstrings/default.nix
new file mode 100644
index 000000000000..7df148df09c9
--- /dev/null
+++ b/pkgs/development/python-modules/future-fstrings/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "future-fstrings";
+  version = "0.4.5";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "future_fstrings";
+    sha256 = "891c5d5f073b3e3ff686bebde0a4c45c479065f45c8cbd6de19323d5a50738a8";
+  };
+
+  # No tests included in Pypi archive
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = https://github.com/asottile/future-fstrings;
+    description = "A backport of fstrings to python<3.6";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/google-api-python-client/default.nix b/pkgs/development/python-modules/google-api-python-client/default.nix
index 1a335ad6bb1c..89c7c6b8df80 100644
--- a/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "1.7.7";
+  version = "1.7.8";
   #disabled = !isPy3k; # TODO: Python 2.7 was deprecated but weboob still depends on it.
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nlsp8cll6v9w4649j98xw545bfnqa2xs7m9faa9mxc0kp8ff1li";
+    sha256 = "0n18frf0ghmwf5lxmkyski4b5h1rsx93ibq3iw0k3s2wxl371406";
   };
 
   # No tests included in archive
@@ -20,5 +20,6 @@ buildPythonPackage rec {
     description = "The core Python library for accessing Google APIs";
     homepage = https://github.com/google/google-api-python-client;
     license = licenses.asl20;
+    maintainers = with maintainers; [ primeos ];
   };
 }
diff --git a/pkgs/development/python-modules/gprof2dot/default.nix b/pkgs/development/python-modules/gprof2dot/default.nix
new file mode 100644
index 000000000000..ed48842496c0
--- /dev/null
+++ b/pkgs/development/python-modules/gprof2dot/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchFromGitHub, buildPythonApplication }:
+
+buildPythonApplication {
+  name = "gprof2dot-2017-09-19";
+
+  src = fetchFromGitHub {
+    owner = "jrfonseca";
+    repo = "gprof2dot";
+    rev = "2017.09.19";
+    sha256 = "1b5wvjv5ykbhz7aix7l3y7mg1hxi0vgak4a49gr92sdlz8blj51v";
+  };
+
+  meta = with lib; {
+    homepage = https://github.com/jrfonseca/gprof2dot;
+    description = "Python script to convert the output from many profilers into a dot graph";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.pmiddend ];
+  };
+}
diff --git a/pkgs/development/python-modules/httpsig/default.nix b/pkgs/development/python-modules/httpsig/default.nix
index cff72de36077..24ba9be13822 100644
--- a/pkgs/development/python-modules/httpsig/default.nix
+++ b/pkgs/development/python-modules/httpsig/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "httpsig";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19ng7y7blp13z081z5a6dxng1p8xlih7g6frmsg3q5ri8lvpybc7";
+    sha256 = "1rkc3zwsq53rjsmc47335m4viljiwdbmw3y2zry4z70j8q1dbmki";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/immutables/default.nix b/pkgs/development/python-modules/immutables/default.nix
index 64fc707b8fd8..5662f8896cc3 100644
--- a/pkgs/development/python-modules/immutables/default.nix
+++ b/pkgs/development/python-modules/immutables/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "immutables";
-  version = "0.6";
+  version = "0.9";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "63023fa0cceedc62e0d1535cd4ca7a1f6df3120a6d8e5c34e89037402a6fd809";
+    sha256 = "1h7i00x6sdbw62rdipp0kaw1mcrvfipxv0054x1n2r4q4j11q7fp";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/latexcodec/default.nix b/pkgs/development/python-modules/latexcodec/default.nix
index 3b639ee2afb9..785d9f1aa3ae 100644
--- a/pkgs/development/python-modules/latexcodec/default.nix
+++ b/pkgs/development/python-modules/latexcodec/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "latexcodec";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zdd1gf24i83ykadx0y30n3001j43scqr2saql3vckk5c39dj1wn";
+    sha256 = "0s4wdbg0w2l8pj3i0y4510i0s04p8nhxcsa2z41bjsv0k66npb81";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/mautrix-appservice/default.nix b/pkgs/development/python-modules/mautrix-appservice/default.nix
new file mode 100644
index 000000000000..1420f1880a31
--- /dev/null
+++ b/pkgs/development/python-modules/mautrix-appservice/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonPackage, fetchPypi, aiohttp, future-fstrings, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "mautrix-appservice";
+  version = "0.3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1615220f5bb75e2093ad1e30f4c2e1243499b0b20caef014fd73faadd3bfea6c";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    future-fstrings
+  ];
+
+  # No tests available
+  doCheck = false;
+
+  disabled = pythonOlder "3.5";
+
+  meta = with lib; {
+    homepage = https://github.com/tulir/mautrix-appservice-python;
+    description = "A Python 3 asyncio-based Matrix application service framework";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/mechanize/default.nix b/pkgs/development/python-modules/mechanize/default.nix
index 63a255c941c8..fa6ea72129f3 100644
--- a/pkgs/development/python-modules/mechanize/default.nix
+++ b/pkgs/development/python-modules/mechanize/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "mechanize";
-  version = "0.3.7";
+  version = "0.4.0";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1licf3wiy21pncg8hkx58r7xj4ylrqa8jcfh9n4rh23rmykf2rpf";
+    sha256 = "15g58z3hy1pgi5sygpif28jyqj79iz4vw2mh5nxdydl4w20micvf";
   };
 
   propagatedBuildInputs = [ html5lib ];
diff --git a/pkgs/development/python-modules/mozsvc/default.nix b/pkgs/development/python-modules/mozsvc/default.nix
index b7fed9e6ad98..a7b3984b912e 100644
--- a/pkgs/development/python-modules/mozsvc/default.nix
+++ b/pkgs/development/python-modules/mozsvc/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , buildPythonPackage
-, fetchgit
-, fetchurl
+, fetchFromGitHub
 , pyramid
 , simplejson
 , konfig
@@ -9,26 +8,22 @@
 
 buildPythonPackage rec {
   pname = "mozsvc";
-  version = "0.8";
+  version = "0.10";
 
-  src = fetchgit {
-    url = https://github.com/mozilla-services/mozservices.git;
-    rev = "refs/tags/${version}";
-    sha256 = "1zci2ikk83mf7va88c83dr6snfh4ddjqw0lsg3y29qk5nxf80vx2";
+  src = fetchFromGitHub {
+    owner = "mozilla-services";
+    repo = "mozservices";
+    rev = version;
+    sha256 = "0a0558g8j55pd1nnhnnf3k377jv6cah8lxb24v98rq8kxr5960cg";
   };
 
-  patches = stdenv.lib.singleton (fetchurl {
-    url = https://github.com/nbp/mozservices/commit/f86c0b0b870cd8f80ce90accde9e16ecb2e88863.diff;
-    sha256 = "1lnghx821f6dqp3pa382ka07cncdz7hq0mkrh44d0q3grvrlrp9n";
-  });
-
-  doCheck = false; # lazy packager
+  doCheck = false; # too many dependencies and conflicting versions; I (nadrieril) gave up
   propagatedBuildInputs = [ pyramid simplejson konfig ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/mozilla-services/mozservices;
     description = "Various utilities for Mozilla apps";
     license = licenses.mpl20;
+    maintainers = with maintainers; [ nadrieril ];
   };
-
 }
diff --git a/pkgs/development/python-modules/nbxmpp/default.nix b/pkgs/development/python-modules/nbxmpp/default.nix
index 888e1de6aa57..5da8257ac81e 100644
--- a/pkgs/development/python-modules/nbxmpp/default.nix
+++ b/pkgs/development/python-modules/nbxmpp/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "nbxmpp";
-  version = "0.6.8";
+  version = "0.6.9";
   name = "${pname}-${version}";
 in buildPythonPackage rec {
   inherit pname version;
@@ -11,7 +11,7 @@ in buildPythonPackage rec {
     name = "${name}.tar.bz2";
     url = "https://dev.gajim.org/gajim/python-nbxmpp/repository/archive.tar.bz2?"
         + "ref=${name}";
-    sha256 = "09zrqz01j45kvayfscd66avkrnn237lbjg9li5hjhyw92h6hkkc4";
+    sha256 = "14xrq0r5k1dk7rwj4cxyxfapi6gbnqg70mz94g6hn9ij06284mi7";
   };
 
   propagatedBuildInputs = [ pyopenssl ];
diff --git a/pkgs/development/python-modules/nose_progressive/default.nix b/pkgs/development/python-modules/nose_progressive/default.nix
index a8962bcecc22..6d9d98f27abd 100644
--- a/pkgs/development/python-modules/nose_progressive/default.nix
+++ b/pkgs/development/python-modules/nose_progressive/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a6e2833e613c1c239baf05a19f66b5920915e62c07251d3ab3f3acb017ef5d7";
+    sha256 = "1mzmgq0wnfizmg9m2wn0c9g9282rdgv1jnphp8ww5h8kwqrjhvis";
   };
 
   buildInputs = [ nose ];
diff --git a/pkgs/development/python-modules/peewee/default.nix b/pkgs/development/python-modules/peewee/default.nix
index abaed3cbffe4..461cd480c9f0 100644
--- a/pkgs/development/python-modules/peewee/default.nix
+++ b/pkgs/development/python-modules/peewee/default.nix
@@ -10,14 +10,14 @@
 buildPythonPackage rec {
 
   pname = "peewee";
-  version = "3.8.1";
+  version = "3.8.2";
 
   # pypi release does not provide tests
   src = fetchFromGitHub {
     owner = "coleifer";
     repo = pname;
     rev = version;
-    sha256 = "0z6fdihmvqfg0ysa94g4w2w7146fsi2gnrgh90b4i1s3wj8iaxqy";
+    sha256 = "0h6wr7yq4cpnh2ypm83asvs2y54346f5j9xbg4lwb0w3rgr9zndq";
   };
 
 
diff --git a/pkgs/development/python-modules/pika/default.nix b/pkgs/development/python-modules/pika/default.nix
index 4cd86b56c202..ec00a2e400ae 100644
--- a/pkgs/development/python-modules/pika/default.nix
+++ b/pkgs/development/python-modules/pika/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "pika";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "306145b8683e016d81aea996bcaefee648483fc5a9eb4694bb488f54df54a751";
+    sha256 = "1104b0jm7qs9b211hw6siddflvf56ag4lfsjy6yfbczds4lxhf2k";
   };
 
   # Tests require twisted which is only availalble for python-2.x
diff --git a/pkgs/development/python-modules/precis-i18n/default.nix b/pkgs/development/python-modules/precis-i18n/default.nix
new file mode 100644
index 000000000000..4c50aaee706a
--- /dev/null
+++ b/pkgs/development/python-modules/precis-i18n/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "precis-i18n";
+  version = "1.0.0";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    pname = "precis_i18n";
+    inherit version;
+    sha256 = "0gjhvwd8aifx94rl1ag08vlmndyx2q3fkyqb0c4i46x3p2bc2yi2";
+  };
+
+  meta = {
+    homepage = https://github.com/byllyfish/precis_i18n;
+    description = "Internationalized usernames and passwords";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix
index a66d8f7a0250..899b18eecbed 100644
--- a/pkgs/development/python-modules/pyarrow/default.nix
+++ b/pkgs/development/python-modules/pyarrow/default.nix
@@ -19,8 +19,9 @@ buildPythonPackage rec {
   PYARROW_CMAKE_OPTIONS = [
     "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"
 
-    # for some reason cmake won't set -std=c++11 for clang
-    "-DPYARROW_CXXFLAGS=-std=c++11"
+    # This doesn't use setup hook to call cmake so we need to workaround #54606
+    # ourselves
+    "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/pydub/default.nix b/pkgs/development/python-modules/pydub/default.nix
index cbadd5188977..669d798312b4 100644
--- a/pkgs/development/python-modules/pydub/default.nix
+++ b/pkgs/development/python-modules/pydub/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pydub";
-  version = "0.23.0";
+  version = "0.23.1";
   # pypi version doesn't include required data files for tests
   src = fetchFromGitHub {
     owner = "jiaaro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ijp9hlxi2d0f1ah9yj9j8cz18i9ny9jwrf2irvz58bgyv29m8bn";
+    sha256 = "1v0bghy4j2nnkgf1r8rbz4s7war872asyy08pc0x1iy1qs275i7s";
   };
 
 
diff --git a/pkgs/development/python-modules/pygobject/default.nix b/pkgs/development/python-modules/pygobject/default.nix
index 56e8f1fa5eb6..4826db3a8c02 100644
--- a/pkgs/development/python-modules/pygobject/default.nix
+++ b/pkgs/development/python-modules/pygobject/default.nix
@@ -17,6 +17,8 @@ buildPythonPackage rec {
     # Fix warning spam
     ./pygobject-2.28.6-set_qdata.patch
     ./pygobject-2.28.6-gio-types-2.32.patch
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    ./pygobject-2.0-fix-darwin.patch
   ];
 
   configureFlags = [ "--disable-introspection" ];
diff --git a/pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch b/pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch
new file mode 100644
index 000000000000..7fef05262f4d
--- /dev/null
+++ b/pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch
@@ -0,0 +1,88 @@
+--- a/gio/unix-types.defs
++++ b/gio/unix-types.defs
+@@ -7,18 +7,6 @@
+   (gtype-id "G_TYPE_UNIX_CONNECTION")
+ )
+ 
+-(define-object DesktopAppInfo
+-  (docstring
+-  "DesktopAppInfo(desktop_id) -> gio.unix.DesktopAppInfo\n\n"
+-  "gio.Unix.DesktopAppInfo is an implementation of gio.AppInfo\n"
+-  "based on desktop files."
+-  )
+-  (in-module "giounix")
+-  (parent "GObject")
+-  (c-name "GDesktopAppInfo")
+-  (gtype-id "G_TYPE_DESKTOP_APP_INFO")
+-)
+-
+ (define-object FDMessage
+   (in-module "giounix")
+   (parent "GSocketControlMessage")
+--- a/gio/unix.defs
++++ b/gio/unix.defs
+@@ -32,54 +32,6 @@
+ 
+ 
+ 
+-;; From gdesktopappinfo.h
+-
+-(define-function desktop_app_info_get_type
+-  (c-name "g_desktop_app_info_get_type")
+-  (return-type "GType")
+-)
+-
+-(define-function desktop_app_info_new_from_filename
+-  (c-name "g_desktop_app_info_new_from_filename")
+-  (return-type "GDesktopAppInfo*")
+-  (parameters
+-    '("const-char*" "filename")
+-  )
+-)
+-
+-(define-function g_desktop_app_info_new_from_keyfile
+-  (c-name "g_desktop_app_info_new_from_keyfile")
+-  (return-type "GDesktopAppInfo*")
+-  (parameters
+-    '("GKeyFile*" "key_file")
+-  )
+-)
+-
+-(define-function desktop_app_info_new
+-  (c-name "g_desktop_app_info_new")
+-  (is-constructor-of "GDesktopAppInfo")
+-  (return-type "GDesktopAppInfo*")
+-  (parameters
+-    '("const-char*" "desktop_id")
+-  )
+-)
+-
+-(define-method get_is_hidden
+-  (of-object "GDesktopAppInfo")
+-  (c-name "g_desktop_app_info_get_is_hidden")
+-  (return-type "gboolean")
+-)
+-
+-(define-function desktop_app_info_set_desktop_env
+-  (c-name "g_desktop_app_info_set_desktop_env")
+-  (return-type "none")
+-  (parameters
+-    '("const-char*" "desktop_env")
+-  )
+-)
+-
+-
+-
+ ;; From gunixfdmessage.h
+ 
+ (define-function g_unix_fd_message_get_type
+--- a/gio/unix.override
++++ b/gio/unix.override
+@@ -24,7 +24,6 @@
+ #define NO_IMPORT_PYGOBJECT
+ #include <pygobject.h>
+ #include <gio/gio.h>
+-#include <gio/gdesktopappinfo.h>
+ #include <gio/gunixinputstream.h>
+ #include <gio/gunixmounts.h>
+ #include <gio/gunixoutputstream.h>
diff --git a/pkgs/development/python-modules/pysam/default.nix b/pkgs/development/python-modules/pysam/default.nix
index 3138c114e697..05f2db8ac063 100644
--- a/pkgs/development/python-modules/pysam/default.nix
+++ b/pkgs/development/python-modules/pysam/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname   = "pysam";
-  version = "0.15.1";
+  version = "0.15.2";
 
   # Fetching from GitHub instead of PyPi cause the 0.13 src release on PyPi is
   # missing some files which cause test failures.
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pysam-developers";
     repo = "pysam";
     rev = "v${version}";
-    sha256 = "1vj367w6xbn9bpmksm162l1aipf7cj97h1q83y7jcpm33ihwpf7x";
+    sha256 = "03aczbzx6gmvgy60fhswpwkry7a8zb5q1pbp55v5gx8hk15n40k1";
   };
 
   buildInputs = [ bzip2 curl cython lzma zlib ];
diff --git a/pkgs/development/python-modules/pyspark/default.nix b/pkgs/development/python-modules/pyspark/default.nix
index 29dd344a34cb..0eca6c5ddf05 100644
--- a/pkgs/development/python-modules/pyspark/default.nix
+++ b/pkgs/development/python-modules/pyspark/default.nix
@@ -2,16 +2,19 @@
 
 buildPythonPackage rec {
   pname = "pyspark";
-  version = "2.3.2";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7fb3b4fe47edb0fb78cecec37e0f2a728590f17ef6a49eae55141a7a374c07c8";
+    sha256 = "1p7z5f1a20l7xkjkh88q9cvjw2x8jbrlydkycn5lh4qvx72vgmy9";
   };
 
   # pypandoc is broken with pandoc2, so we just lose docs.
   postPatch = ''
     sed -i "s/'pypandoc'//" setup.py
+
+    # Current release works fine with py4j 0.10.8.1
+    substituteInPlace setup.py --replace py4j==0.10.7 'py4j>=0.10.7,<0.11'
   '';
 
   propagatedBuildInputs = [ py4j ];
diff --git a/pkgs/development/python-modules/python-vagrant/default.nix b/pkgs/development/python-modules/python-vagrant/default.nix
new file mode 100644
index 000000000000..88982f15293b
--- /dev/null
+++ b/pkgs/development/python-modules/python-vagrant/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  version = "0.5.15";
+  pname = "python-vagrant";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ikrh6canhcxg5y7pzmkcnnydikppv7s6sm9prfx90nk0ac8m6mg";
+  };
+
+  # The tests try to connect to qemu
+  doCheck = false;
+
+  meta = {
+    description = "Python module that provides a thin wrapper around the vagrant command line executable";
+    homepage = https://github.com/todddeluca/python-vagrant;
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.pmiddend ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyu2f/default.nix b/pkgs/development/python-modules/pyu2f/default.nix
new file mode 100644
index 000000000000..16aa7b0ec31b
--- /dev/null
+++ b/pkgs/development/python-modules/pyu2f/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, buildPythonPackage,
+  six, mock, pyfakefs, unittest2, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pyu2f";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = pname;
+    rev = version;
+    sha256 = "0waxdydvxn05a8ab9j235mz72x7p4pwa59pnxyk1zzbwxnpxb3p9";
+  };
+
+  # Platform detection for linux fails
+  postPatch = lib.optionalString stdenv.isLinux ''
+    rm pyu2f/tests/hid/macos_test.py
+  '';
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ pytest six mock pyfakefs unittest2 ];
+
+  checkPhase = ''
+    pytest pyu2f/tests
+  '';
+
+  meta = with lib; {
+    description = "U2F host library for interacting with a U2F device over USB";
+    homepage = https://github.com/google/pyu2f/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/qscintilla-qt5/default.nix b/pkgs/development/python-modules/qscintilla-qt5/default.nix
new file mode 100644
index 000000000000..788b2e9e9ae4
--- /dev/null
+++ b/pkgs/development/python-modules/qscintilla-qt5/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, qscintillaCpp
+, lndir
+, sip
+, python
+, pyqt5 }:
+
+buildPythonPackage rec {
+  pname = "qscintilla";
+  version = qscintillaCpp.version;
+  src = qscintillaCpp.src;
+  format = "other";
+
+  nativeBuildInputs = [ lndir sip ];
+  buildInputs = [ qscintillaCpp ];
+  propagatedBuildInputs = [ pyqt5 ];
+
+  preConfigure = ''
+    mkdir -p $out
+    lndir ${pyqt5} $out
+    rm -rf "$out/nix-support"
+    cd Python
+    ${python.executable} ./configure.py \
+      --pyqt=PyQt5 \
+      --destdir=$out/lib/${python.sitePackages}/PyQt5 \
+      --stubsdir=$out/lib/${python.sitePackages}/PyQt5 \
+      --apidir=$out/api/${python.libPrefix} \
+      --qsci-incdir=${qscintillaCpp}/include \
+      --qsci-libdir=${qscintillaCpp}/lib \
+      --pyqt-sipdir=${pyqt5}/share/sip/PyQt5 \
+      --qsci-sipdir=$out/share/sip/PyQt5
+  '';
+
+  meta = with lib; {
+    description = "A Python binding to QScintilla, Qt based text editing control";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ lsix ];
+    homepage = https://www.riverbankcomputing.com/software/qscintilla/;
+  };
+}
diff --git a/pkgs/development/python-modules/rlp/default.nix b/pkgs/development/python-modules/rlp/default.nix
index d9b55c852192..c8c4315b66bb 100644
--- a/pkgs/development/python-modules/rlp/default.nix
+++ b/pkgs/development/python-modules/rlp/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "rlp";
-  version = "1.0.3";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b0ad3f3173dedf416565299f684717d4ae7620207d562d3ef94b818a40a48781";
+    sha256 = "0742hdnhwcx1bm7pdk83290rxfcb0i2xskgl8yn6lg8fql1hms7b";
   };
 
   checkInputs = [ pytest hypothesis ];
diff --git a/pkgs/development/python-modules/serversyncstorage/default.nix b/pkgs/development/python-modules/serversyncstorage/default.nix
index 0e4b6cfa1e47..7342a729e292 100644
--- a/pkgs/development/python-modules/serversyncstorage/default.nix
+++ b/pkgs/development/python-modules/serversyncstorage/default.nix
@@ -1,5 +1,6 @@
-{ buildPythonPackage
-, fetchgit
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
 , isPy27
 , testfixtures
 , unittest2
@@ -20,13 +21,14 @@
 
 buildPythonPackage rec {
   pname = "serversyncstorage";
-  version = "1.6.11";
+  version = "1.6.14";
   disabled = !isPy27;
 
-  src = fetchgit {
-    url = https://github.com/mozilla-services/server-syncstorage.git;
-    rev = "refs/tags/${version}";
-    sha256 = "197gj2jfs2c6nzs20j37kqxwi91wabavxnfm4rqmrjwhgqjwhnm0";
+  src = fetchFromGitHub {
+    owner = "mozilla-services";
+    repo = "server-syncstorage";
+    rev = version;
+    sha256 = "08xclxj38rav8yay9cijiavv35jbyf6a9jzr24vgcna8pjjnbbmh";
   };
 
   checkInputs = [ testfixtures unittest2 webtest ];
@@ -35,7 +37,10 @@ buildPythonPackage rec {
     pymysqlsa umemcache WSGIProxy requests pybrowserid
   ];
 
-  meta = {
-    broken = true; # 2018-11-04
+  meta = with stdenv.lib; {
+    description = "The SyncServer server software, as used by Firefox Sync";
+    homepage = https://github.com/mozilla-services/server-syncstorage;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ nadrieril ];
   };
 }
diff --git a/pkgs/development/python-modules/sphinx-argparse/default.nix b/pkgs/development/python-modules/sphinx-argparse/default.nix
new file mode 100644
index 000000000000..f5de476d1096
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx-argparse/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "sphinx-argparse";
+  version = "0.2.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05wc8f5hb3jsg2vh2jf7jsyan8d4i09ifrz2c8fp6f7x1zw9iav0";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = "py.test";
+
+  propagatedBuildInputs = [
+    sphinx
+  ];
+
+  meta = {
+    description = "A sphinx extension that automatically documents argparse commands and options";
+    homepage = https://github.com/ribozz/sphinx-argparse;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ clacke ];
+  };
+}
diff --git a/pkgs/development/python-modules/syncserver/default.nix b/pkgs/development/python-modules/syncserver/default.nix
deleted file mode 100644
index 7a93d64a89f5..000000000000
--- a/pkgs/development/python-modules/syncserver/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ buildPythonPackage
-, fetchgit
-, isPy27
-, unittest2
-, cornice
-, gunicorn
-, pyramid
-, requests
-, simplejson
-, sqlalchemy
-, mozsvc
-, tokenserver
-, serversyncstorage
-, configparser
-}:
-
-buildPythonPackage rec {
-  pname = "syncserver";
-  version = "1.6.0";
-  disabled = ! isPy27;
-
-  src = fetchgit {
-    url = https://github.com/mozilla-services/syncserver.git;
-    rev = "refs/tags/${version}";
-    sha256 = "1fsiwihgq3z5b5kmssxxil5g2abfvsf6wfikzyvi4sy8hnym77mb";
-  };
-
-  buildInputs = [ unittest2 ];
-  propagatedBuildInputs = [
-    cornice gunicorn pyramid requests simplejson sqlalchemy mozsvc tokenserver
-    serversyncstorage configparser
-  ];
-}
diff --git a/pkgs/development/python-modules/tableaudocumentapi/default.nix b/pkgs/development/python-modules/tableaudocumentapi/default.nix
new file mode 100644
index 000000000000..a2f8fbb2f536
--- /dev/null
+++ b/pkgs/development/python-modules/tableaudocumentapi/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "tableaudocumentapi";
+  version = "0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "fc6d44b62cf6ea29916c073686e2f9f35c9902eccd57b8493f8d44a59a2f60d9";
+  };
+
+  # tests not inclued with release
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A Python module for working with Tableau files";
+    homepage = https://github.com/tableau/document-api-python;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix b/pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix
new file mode 100644
index 000000000000..c6d3a21b10ba
--- /dev/null
+++ b/pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi, sqlalchemy, telethon }:
+
+buildPythonPackage rec {
+  pname = "telethon-session-sqlalchemy";
+  version = "0.2.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b392096b14e5cdc4040d3900cc2be7847b160ed77e5c861a6bd07d75d8e17a85";
+  };
+
+  propagatedBuildInputs = [
+    sqlalchemy
+  ];
+
+  # No tests available
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = https://github.com/tulir/telethon-session-sqlalchemy;
+    description = "SQLAlchemy backend for Telethon session storage";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/telethon/default.nix b/pkgs/development/python-modules/telethon/default.nix
new file mode 100644
index 000000000000..d847a4942018
--- /dev/null
+++ b/pkgs/development/python-modules/telethon/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, fetchPypi, async_generator, rsa, pyaes, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "telethon";
+  version = "1.5.4";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "Telethon";
+    sha256 = "52cb4929bf37c98ab5f3e173325dbb3cb9c1ca3f4fe6ba87d35c43e2f98858ce";
+  };
+
+  propagatedBuildInputs = [
+    async_generator
+    rsa
+    pyaes
+  ];
+
+  # No tests available
+  doCheck = false;
+
+  disabled = pythonOlder "3.5";
+
+  meta = with lib; {
+    homepage = https://github.com/LonamiWebs/Telethon;
+    description = "Full-featured Telegram client library for Python 3";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/textacy/default.nix b/pkgs/development/python-modules/textacy/default.nix
index fdfa91d292f2..4272df1ce398 100644
--- a/pkgs/development/python-modules/textacy/default.nix
+++ b/pkgs/development/python-modules/textacy/default.nix
@@ -52,6 +52,11 @@ buildPythonPackage rec {
     unidecode
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'ftfy>=4.2.0,<5.0.0'," "'ftfy>=5.0.0',"
+  '';
+
   doCheck = false;  # tests want to download data files
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/texttable/default.nix b/pkgs/development/python-modules/texttable/default.nix
index 6747ae78f49c..d2821310068f 100644
--- a/pkgs/development/python-modules/texttable/default.nix
+++ b/pkgs/development/python-modules/texttable/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "texttable";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mzv6zs8ciwnf83fwikqmmjwbzqmdja3imn4b4k209f80g0rk8qv";
+    sha256 = "1z3xbijvhh86adg0jk5iv1jvga7cg25q1w12icb3snr5jim9sjv2";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/tokenserver/default.nix b/pkgs/development/python-modules/tokenserver/default.nix
index a07da568dca4..08f3f87321fe 100644
--- a/pkgs/development/python-modules/tokenserver/default.nix
+++ b/pkgs/development/python-modules/tokenserver/default.nix
@@ -31,5 +31,6 @@ buildPythonPackage rec {
     description = "The Mozilla Token Server";
     homepage = https://github.com/mozilla-services/tokenserver;
     license = licenses.mpl20;
+    maintainers = with maintainers; [ nadrieril ];
   };
 }
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index a616df651228..ba37373e8ea9 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "6.23.0";
+  version = "6.23.1";
   # tests not included in PyPi, so fetch from github instead
   src = fetchFromGitHub {
     owner = "twilio";
     repo = "twilio-python";
     rev = version;
-    sha256 = "07fb8sklj8527aa8hi71w4iibgmcnndmnqjdcp82ff80ladn9i5y";
+    sha256 = "0f6r2qcgcg4pnnsgf9d1k03ri7h7k8kpasp9mdgv421a4rvqh8lm";
   };
 
   buildInputs = [ nose mock ];