about summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/alot/default.nix2
-rw-r--r--pkgs/development/python-modules/celery/default.nix12
-rw-r--r--pkgs/development/python-modules/clickclick/default.nix4
-rw-r--r--pkgs/development/python-modules/cookiecutter/default.nix5
-rw-r--r--pkgs/development/python-modules/django/2_2.nix4
-rw-r--r--pkgs/development/python-modules/flask-autoindex/default.nix8
-rw-r--r--pkgs/development/python-modules/flower/default.nix32
-rw-r--r--pkgs/development/python-modules/gst-python/default.nix2
-rw-r--r--pkgs/development/python-modules/mautrix/default.nix4
-rw-r--r--pkgs/development/python-modules/minio/default.nix23
-rw-r--r--pkgs/development/python-modules/papis/default.nix2
-rw-r--r--pkgs/development/python-modules/parsy/default.nix2
-rw-r--r--pkgs/development/python-modules/pre-commit/default.nix16
-rw-r--r--pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch32
-rw-r--r--pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch26
-rw-r--r--pkgs/development/python-modules/pulp/default.nix11
-rw-r--r--pkgs/development/python-modules/pyatspi/default.nix2
-rw-r--r--pkgs/development/python-modules/pygobject/3.nix2
-rw-r--r--pkgs/development/python-modules/pytest-factoryboy/default.nix43
-rw-r--r--pkgs/development/python-modules/telethon/default.nix4
-rw-r--r--pkgs/development/python-modules/tenacity/default.nix15
-rw-r--r--pkgs/development/python-modules/zope-hookable/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_i18nmessageid/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_lifecycleevent/default.nix11
24 files changed, 202 insertions, 68 deletions
diff --git a/pkgs/development/python-modules/alot/default.nix b/pkgs/development/python-modules/alot/default.nix
index a2012132024b..04b2d898e66a 100644
--- a/pkgs/development/python-modules/alot/default.nix
+++ b/pkgs/development/python-modules/alot/default.nix
@@ -61,6 +61,6 @@ buildPythonPackage rec {
     description = "Terminal MUA using notmuch mail";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ aepsil0n ];
+    maintainers = with maintainers; [ edibopp ];
   };
 }
diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix
index d0d4f2e69fb8..740023c1fdb9 100644
--- a/pkgs/development/python-modules/celery/default.nix
+++ b/pkgs/development/python-modules/celery/default.nix
@@ -4,14 +4,16 @@
 
 buildPythonPackage rec {
   pname = "celery";
-  version = "4.4.2";
+  version = "4.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ps1c6ill7q0m5kzb87hisgshdk3kzpa6cvcjch1d1wa07whp2hh";
+    sha256 = "0zk42fxznrhww0dxak9b6nkfqg02z49zr839k6ql7nk3him7n0y2";
   };
 
   postPatch = ''
+    substituteInPlace requirements/default.txt \
+      --replace "kombu>=4.6.10,<4.7" "kombu"
     substituteInPlace requirements/test.txt \
       --replace "moto==1.3.7" moto \
       --replace "pytest>=4.3.1,<4.4.0" pytest
@@ -20,9 +22,13 @@ buildPythonPackage rec {
   # ignore test that's incompatible with pytest5
   # test_eventlet touches network
   # test_mongodb requires pymongo
+  # test_multi tries to create directories under /var
   checkPhase = ''
-    pytest -k 'not restore_current_app_fallback and not msgpack and not on_apply' \
+    pytest -k 'not restore_current_app_fallback and not msgpack and not on_apply and not pytest' \
+      --ignore=t/unit/contrib/test_pytest.py \
       --ignore=t/unit/concurrency/test_eventlet.py \
+      --ignore=t/unit/bin/test_multi.py \
+      --ignore=t/unit/apps/test_multi.py \
       --ignore=t/unit/backends/test_mongodb.py
   '';
 
diff --git a/pkgs/development/python-modules/clickclick/default.nix b/pkgs/development/python-modules/clickclick/default.nix
index d35c356c8220..b2e23dc55bdb 100644
--- a/pkgs/development/python-modules/clickclick/default.nix
+++ b/pkgs/development/python-modules/clickclick/default.nix
@@ -14,8 +14,10 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook pytestcov ];
   propagatedBuildInputs = [ flake8 click pyyaml six ];
 
-  disabledTests = lib.optionals isPy36 [
+  # test_cli asserts on exact quoting style of output
+  disabledTests = [
     "test_cli"
+  ] ++ lib.optionals isPy36 [
     "test_choice_default"
   ];
 
diff --git a/pkgs/development/python-modules/cookiecutter/default.nix b/pkgs/development/python-modules/cookiecutter/default.nix
index 34c21372aee1..873cbe142d9b 100644
--- a/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/pkgs/development/python-modules/cookiecutter/default.nix
@@ -1,6 +1,7 @@
 { stdenv, buildPythonPackage, fetchPypi, isPyPy
 , pytest, pytestcov, pytest-mock, freezegun
-, jinja2, future, binaryornot, click, whichcraft, poyo, jinja2_time, requests }:
+, jinja2, future, binaryornot, click, whichcraft, poyo, jinja2_time, requests
+, python-slugify }:
 
 buildPythonPackage rec {
   pname = "cookiecutter";
@@ -16,7 +17,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest pytestcov pytest-mock freezegun ];
   propagatedBuildInputs = [
-    jinja2 future binaryornot click whichcraft poyo jinja2_time requests
+    jinja2 future binaryornot click whichcraft poyo jinja2_time requests python-slugify
   ];
   
   # requires network access for cloning git repos
diff --git a/pkgs/development/python-modules/django/2_2.nix b/pkgs/development/python-modules/django/2_2.nix
index 70cba819e92d..42af34659c0f 100644
--- a/pkgs/development/python-modules/django/2_2.nix
+++ b/pkgs/development/python-modules/django/2_2.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "2.2.11";
+  version = "2.2.13";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0l0gndky4nwc1jk68b31m583a9g0fhmll903p0xislyyddz3iqk5";
+    sha256 = "103db5gmny6bkq9jgr2m6gdfy1n29bj2v87184y1zgpdmkv71ww4";
   };
 
   patches = stdenv.lib.optional withGdal
diff --git a/pkgs/development/python-modules/flask-autoindex/default.nix b/pkgs/development/python-modules/flask-autoindex/default.nix
index 48a80f097712..26b6977116fd 100644
--- a/pkgs/development/python-modules/flask-autoindex/default.nix
+++ b/pkgs/development/python-modules/flask-autoindex/default.nix
@@ -1,9 +1,11 @@
-{ stdenv
+{ lib
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
 , flask
 , flask-silk
 , future
+, pathlib
 }:
 
 buildPythonPackage rec {
@@ -19,9 +21,11 @@ buildPythonPackage rec {
     flask
     flask-silk
     future
+  ] ++ lib.optionals (pythonOlder "3.4") [
+    pathlib
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "The mod_autoindex for Flask";
     longDescription = ''
       Flask-AutoIndex generates an index page for your Flask application automatically.
diff --git a/pkgs/development/python-modules/flower/default.nix b/pkgs/development/python-modules/flower/default.nix
index 2b5781341742..3a2f987ed510 100644
--- a/pkgs/development/python-modules/flower/default.nix
+++ b/pkgs/development/python-modules/flower/default.nix
@@ -1,22 +1,42 @@
-{ lib, buildPythonPackage, fetchPypi, Babel, celery, importlib-metadata, pytz, tornado, mock }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, Babel
+, celery
+, future
+, humanize
+, importlib-metadata
+, mock
+, pytz
+, tornado
+}:
 
 buildPythonPackage rec {
   pname = "flower";
   version = "0.9.4";
-  
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "25782840f7ffc25dcf478d94535a2d815448de4aa6c71426be6abfa9ca417448";
   };
 
-  propagatedBuildInputs = [ Babel celery importlib-metadata pytz tornado ];
-  
+  # flower and humanize aren't listed in setup.py but imported
+  propagatedBuildInputs = [
+    Babel
+    celery
+    future
+    importlib-metadata
+    pytz
+    tornado
+    humanize
+  ];
+
   checkInputs = [ mock ];
-  
+
   meta = with lib; {
     description = "Celery Flower";
     homepage = "https://github.com/mher/flower";
-    license = licenses.bsdOriginal;    
+    license = licenses.bsdOriginal;
     maintainers = [ maintainers.arnoldfarkas ];
   };
 }
diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix
index 11080d3fbc84..dc15e4b043d2 100644
--- a/pkgs/development/python-modules/gst-python/default.nix
+++ b/pkgs/development/python-modules/gst-python/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-python/${pname}-${version}.tar.xz";
-    sha256 = "II3zFI1z2fQW0BZWRzdYXY6nY9kSAXMtRLX+aIxiiKg=";
+    sha256 = "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mautrix/default.nix b/pkgs/development/python-modules/mautrix/default.nix
index a9310af1432f..1bf23111422d 100644
--- a/pkgs/development/python-modules/mautrix/default.nix
+++ b/pkgs/development/python-modules/mautrix/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "mautrix";
-  version = "0.4.2";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f8pzi7ip82p7hn6d9xrgp5wsl4s3w6gmjsgb8gjy2606f7czqyg";
+    sha256 = "0hcm2hwryfr6js33zcl2k95wbjrgcj89pi90lka0hjw9vs9bmdz6";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/minio/default.nix b/pkgs/development/python-modules/minio/default.nix
index f1255f3636c8..6fdc962cdb46 100644
--- a/pkgs/development/python-modules/minio/default.nix
+++ b/pkgs/development/python-modules/minio/default.nix
@@ -1,19 +1,34 @@
 { lib, buildPythonPackage, isPy3k, fetchPypi
-, urllib3, future, python-dateutil , pytz, faker, mock, nose }:
+, configparser
+, faker
+, future
+, mock
+, nose
+, python-dateutil
+, pytz
+, pytestCheckHook
+, urllib3
+}:
 
 buildPythonPackage rec {
   pname = "minio";
   version = "5.0.10";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "6ecb7637a35f806733e9d112eacfa599a58d7c3d4698fda2b5c86fff5d34b417";
   };
 
-  disabled = !isPy3k;
+  propagatedBuildInputs = [
+    configparser
+    future
+    python-dateutil
+    pytz
+    urllib3
+  ];
 
-  checkInputs = [ faker mock nose ];
-  propagatedBuildInputs = [ urllib3 python-dateutil pytz future ];
+  checkInputs = [ faker mock nose pytestCheckHook ];
 
   meta = with lib; {
     description = "Simple APIs to access any Amazon S3 compatible object storage server";
diff --git a/pkgs/development/python-modules/papis/default.nix b/pkgs/development/python-modules/papis/default.nix
index 39b324dd55c3..fbfb72bb8a09 100644
--- a/pkgs/development/python-modules/papis/default.nix
+++ b/pkgs/development/python-modules/papis/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "papis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "kzA8nlglbjHDPEB7HRAY2dza1Umn/OYUu+ydbA1OJ5Y=";
+    sha256 = "15i79q6nr7gcpcafdz5797axmp6r3081sys07k1k2vi5b2g3qc4k";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/parsy/default.nix b/pkgs/development/python-modules/parsy/default.nix
index 156da0885473..ab4aeba84b69 100644
--- a/pkgs/development/python-modules/parsy/default.nix
+++ b/pkgs/development/python-modules/parsy/default.nix
@@ -21,6 +21,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/python-parsy/parsy";
     description = "Easy-to-use parser combinators, for parsing in pure Python";
     license = [ licenses.mit ];
-    maintainers = with maintainers; [ aepsil0n ];
+    maintainers = with maintainers; [ edibopp ];
   };
 }
diff --git a/pkgs/development/python-modules/pre-commit/default.nix b/pkgs/development/python-modules/pre-commit/default.nix
index 6d0a7d301ede..a933093bef42 100644
--- a/pkgs/development/python-modules/pre-commit/default.nix
+++ b/pkgs/development/python-modules/pre-commit/default.nix
@@ -6,6 +6,7 @@
 , identify
 , importlib-metadata
 , importlib-resources
+, isPy27
 , nodeenv
 , python
 , six
@@ -15,16 +16,18 @@
 
 buildPythonPackage rec {
   pname = "pre-commit";
-  version = "1.21.0";
+  version = "2.4.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit version;
     pname = "pre_commit";
-    sha256 = "0l5qg1cw4a0670m96s0ryy5mqz5aslfrrnwpriqgmrnsgdixhj4g";
+    sha256 = "1l0lcl3l2544m2k8jlmblfsjn0p2hdxrzzwy646xpvp0rcs2wgkh";
   };
 
   patches = [
     ./hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
+    ./languages-use-the-hardcoded-path-to-python-binaries.patch
   ];
 
   propagatedBuildInputs = [
@@ -36,9 +39,8 @@ buildPythonPackage rec {
     six
     toml
     virtualenv
-    importlib-metadata
-  ] ++ lib.optional (pythonOlder "3.7") importlib-resources
-    ++ lib.optional (pythonOlder "3.2") futures;
+  ] ++ lib.optional (pythonOlder "3.8") importlib-metadata
+    ++ lib.optional (pythonOlder "3.7") importlib-resources;
 
   # slow and impure
   doCheck = false;
@@ -46,6 +48,10 @@ buildPythonPackage rec {
   preFixup = ''
     substituteInPlace $out/${python.sitePackages}/pre_commit/resources/hook-tmpl \
       --subst-var-by pre-commit $out
+    substituteInPlace $out/${python.sitePackages}/pre_commit/languages/python.py \
+      --subst-var-by virtualenv ${virtualenv}
+    substituteInPlace $out/${python.sitePackages}/pre_commit/languages/node.py \
+      --subst-var-by nodeenv ${nodeenv}
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch b/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
index 23115bbbd20f..4c1b6421e090 100644
--- a/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
+++ b/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
@@ -1,25 +1,15 @@
-From d9e6999e32112602ec276634cb004eda3ca64ec3 Mon Sep 17 00:00:00 2001
-From: "Wael M. Nasreddine" <wael.nasreddine@gmail.com>
-Date: Mon, 13 Jan 2020 11:04:58 -0800
-Subject: [PATCH] hook-tmpl: use the hardcoded path to pre-commit, if found
-
----
- pre_commit/resources/hook-tmpl | 2 ++
- 1 file changed, 2 insertions(+)
-
 diff --git a/pre_commit/resources/hook-tmpl b/pre_commit/resources/hook-tmpl
-index 213d16e..3a99211 100755
+index 299144e..6d12543 100755
 --- a/pre_commit/resources/hook-tmpl
 +++ b/pre_commit/resources/hook-tmpl
-@@ -107,6 +107,8 @@ def _exe() -> Tuple[str, ...]:
-             except OSError:
-                 pass
- 
-+    if os.path.isfile('@pre-commit@/bin/pre-commit') and os.access('@pre-commit@/bin/pre-commit', os.X_OK):
-+        return ('@pre-commit@/bin/pre-commit', 'run')
-     if distutils.spawn.find_executable('pre-commit'):
-         return ('pre-commit', 'run')
- 
--- 
-2.23.1
+@@ -25,8 +25,8 @@ ARGS.append('--')
+ ARGS.extend(sys.argv[1:])
 
+ DNE = '`pre-commit` not found.  Did you forget to activate your virtualenv?'
+-if os.access(INSTALL_PYTHON, os.X_OK):
+-    CMD = [INSTALL_PYTHON, '-mpre_commit']
++if os.access('@pre-commit@/bin/pre-commit', os.X_OK):
++    CMD = ['@pre-commit@/bin/pre-commit']
+ elif which('pre-commit'):
+     CMD = ['pre-commit']
+ else:
diff --git a/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch b/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
new file mode 100644
index 000000000000..c1bead48b345
--- /dev/null
+++ b/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
@@ -0,0 +1,26 @@
+diff --git a/pre_commit/languages/node.py b/pre_commit/languages/node.py
+index 26f4919..4885ec1 100644
+--- a/pre_commit/languages/node.py
++++ b/pre_commit/languages/node.py
+@@ -82,7 +82,7 @@ def install_environment(
+         envdir = fr'\\?\{os.path.normpath(envdir)}'
+     with clean_path_on_failure(envdir):
+         cmd = [
+-            sys.executable, '-mnodeenv', '--prebuilt', '--clean-src', envdir,
++            '@nodeenv@/bin/nodeenv', '--prebuilt', '--clean-src', envdir,
+         ]
+         if version != C.DEFAULT:
+             cmd.extend(['-n', version])
+diff --git a/pre_commit/languages/python.py b/pre_commit/languages/python.py
+index e17376e..0c1d2ab 100644
+--- a/pre_commit/languages/python.py
++++ b/pre_commit/languages/python.py
+@@ -204,7 +204,7 @@ def install_environment(
+ ) -> None:
+     envdir = prefix.path(helpers.environment_dir(ENVIRONMENT_DIR, version))
+     python = norm_version(version)
+-    venv_cmd = (sys.executable, '-mvirtualenv', envdir, '-p', python)
++    venv_cmd = ('@virtualenv@/bin/virtualenv', envdir, '-p', python)
+     install_cmd = ('python', '-mpip', 'install', '.', *additional_dependencies)
+
+     with clean_path_on_failure(envdir):
diff --git a/pkgs/development/python-modules/pulp/default.nix b/pkgs/development/python-modules/pulp/default.nix
index 049d8720f455..ab6fda9d3d45 100644
--- a/pkgs/development/python-modules/pulp/default.nix
+++ b/pkgs/development/python-modules/pulp/default.nix
@@ -1,18 +1,23 @@
-{ stdenv, fetchPypi, buildPythonPackage, pyparsing }:
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, pyparsing
+}:
 
 buildPythonPackage rec {
   pname = "PuLP";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fb0b0e8073aa82f3459c4241b9625e0ccd26c0838ad8253c6bc67e041901b765";
+    sha256 = "06swbi7wygh7y0kxc85q1pdhzk662375d9a5jnahgr76hkwwkybn";
   };
 
   propagatedBuildInputs = [ pyparsing ];
 
   # only one test that requires an extra
   doCheck = false;
+  pythonImportsCheck = [ "pulp" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/coin-or/pulp";
diff --git a/pkgs/development/python-modules/pyatspi/default.nix b/pkgs/development/python-modules/pyatspi/default.nix
index b704e54321b9..74b9f7dfdebe 100644
--- a/pkgs/development/python-modules/pyatspi/default.nix
+++ b/pkgs/development/python-modules/pyatspi/default.nix
@@ -7,7 +7,7 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "UTbBv5GeEB1OyQGiduhupg5Ygaj/d2PjVvGYQOX/4d0=";
+    sha256 = "1pg1zzjl167iavin6xzzm20mh3m6dvl7d8h1r571s44yj6zw2dji";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix
index 2a1b8bcb4105..74606902722a 100644
--- a/pkgs/development/python-modules/pygobject/3.nix
+++ b/pkgs/development/python-modules/pygobject/3.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "hoPS37W6qeUBqaZO66XCwRF+rbeBqxzXqdJVg0r22u8=";
+    sha256 = "1vysyr586mfjm7biraw1nynpw4f1qajynkm6m40ybadsnpgx50w6";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/python-modules/pytest-factoryboy/default.nix b/pkgs/development/python-modules/pytest-factoryboy/default.nix
new file mode 100644
index 000000000000..44a59730146c
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-factoryboy/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, pytestCheckHook
+, pytest
+, inflection
+, factory_boy
+, pytestcache
+, pytestcov
+, pytestpep8
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-factoryboy";
+  version = "2.0.3";
+
+  src = fetchFromGitHub {
+    owner = "pytest-dev";
+    repo = "pytest-factoryboy";
+    rev = version;
+    sha256 = "0m1snyybq2k51khlydhisq300vzys897vdbsicph628iran950hn";
+  };
+
+  propagatedBuildInputs = [ factory_boy inflection pytest ];
+
+  # The project uses tox, which we can't. So we simply run pytest manually.
+  checkInputs = [
+    mock
+    pytestCheckHook
+    pytestcache
+    pytestcov
+    pytestpep8
+  ];
+  pytestFlagsArray = [ "--ignore=docs" ];
+
+  meta = with stdenv.lib; {
+    description = "Integration of factory_boy into the pytest runner.";
+    homepage = "https://pytest-factoryboy.readthedocs.io/en/latest/";
+    maintainers = with maintainers; [ winpat ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/telethon/default.nix b/pkgs/development/python-modules/telethon/default.nix
index a125cfd9bff3..f8c0661f0cd8 100644
--- a/pkgs/development/python-modules/telethon/default.nix
+++ b/pkgs/development/python-modules/telethon/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "telethon";
-  version = "1.10.10";
+  version = "1.14.0";
 
   src = fetchPypi {
     inherit version;
     pname = "Telethon";
-    sha256 = "0zm3577f1l5g0i0gcxr3s0nrqy0i81ppr6vp31p550vvnlnkjsqj";
+    sha256 = "1fg12gcg6ca7rjh7m3g48m30cx4aaw5g09855nlyz2sa1kw3gfyq";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tenacity/default.nix b/pkgs/development/python-modules/tenacity/default.nix
index 17ce469dc1c5..18570c90c00f 100644
--- a/pkgs/development/python-modules/tenacity/default.nix
+++ b/pkgs/development/python-modules/tenacity/default.nix
@@ -1,22 +1,23 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, pbr, six, futures, monotonic, setuptools_scm
-, pytest, sphinx, tornado
+{ lib, buildPythonPackage, fetchPypi, isPy27, isPy3k
+, pbr, six, futures, monotonic, typing, setuptools_scm
+, pytest, sphinx, tornado, typeguard
 }:
 
 buildPythonPackage rec {
   pname = "tenacity";
-  version = "6.0.0";
+  version = "6.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "72f397c2bb1887e048726603f3f629ea16f88cb3e61e4ed3c57e98582b8e3571";
+    sha256 = "16ikf6n6dw1kzncs6vjc4iccl76f9arln59jhiiai27lzbkr1bi9";
   };
 
   nativeBuildInputs = [ pbr setuptools_scm ];
   propagatedBuildInputs = [ six ]
-    ++ lib.optionals isPy27 [ futures monotonic ];
+    ++ lib.optionals isPy27 [ futures monotonic typing ];
 
-  checkInputs = [ pytest sphinx tornado ];
+  checkInputs = [ pytest sphinx tornado ]
+    ++ lib.optionals isPy3k [ typeguard ];
   checkPhase = if isPy27 then ''
     pytest --ignore='tenacity/tests/test_asyncio.py'
   '' else ''
diff --git a/pkgs/development/python-modules/zope-hookable/default.nix b/pkgs/development/python-modules/zope-hookable/default.nix
index c9e6311cf321..6c19ffbec029 100644
--- a/pkgs/development/python-modules/zope-hookable/default.nix
+++ b/pkgs/development/python-modules/zope-hookable/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "zope-hookable";
-  version = "4.2.0";
+  version = "5.0.1";
 
   src = fetchPypi {
     pname = "zope.hookable";
     inherit version;
-    sha256 = "c1df3929a3666fc5a0c80d60a0c1e6f6ef97c7f6ed2f1b7cf49f3e6f3d4dde15";
+    sha256 = "0hc82lfr7bk53nvbxvjkibkarngyrzgfk2i6bg8wshl0ly0pdl19";
   };
 
   checkInputs = [ zope_testing ];
diff --git a/pkgs/development/python-modules/zope_i18nmessageid/default.nix b/pkgs/development/python-modules/zope_i18nmessageid/default.nix
index f63650bb4b4d..ca5f818cd620 100644
--- a/pkgs/development/python-modules/zope_i18nmessageid/default.nix
+++ b/pkgs/development/python-modules/zope_i18nmessageid/default.nix
@@ -2,6 +2,8 @@
 , buildPythonPackage
 , fetchPypi
 , six
+, coverage
+, zope_testrunner
 }:
 
 buildPythonPackage rec {
@@ -15,6 +17,8 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
+  checkInputs = [ coverage zope_testrunner ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/zopefoundation/zope.i18nmessageid";
     description = "Message Identifiers for internationalization";
diff --git a/pkgs/development/python-modules/zope_lifecycleevent/default.nix b/pkgs/development/python-modules/zope_lifecycleevent/default.nix
index 2beabc8a61c7..6494aa7a71af 100644
--- a/pkgs/development/python-modules/zope_lifecycleevent/default.nix
+++ b/pkgs/development/python-modules/zope_lifecycleevent/default.nix
@@ -1,8 +1,10 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , zope_event
 , zope_component
+, zope_interface
 }:
 
 buildPythonPackage rec {
@@ -16,6 +18,15 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ zope_event zope_component ];
 
+  # namespace colides with local directory
+  doCheck = false;
+
+  # zope uses pep 420 namespaces for python3, doesn't work with nix + python2
+  pythonImportsCheck = stdenv.lib.optionals isPy3k [
+    "zope.lifecycleevent"
+    "zope.interface"
+  ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/zopefoundation/zope.lifecycleevent";
     description = "Object life-cycle events";