summary refs log tree commit diff
path: root/gnu/packages/python-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r--gnu/packages/python-xyz.scm369
1 files changed, 172 insertions, 197 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f39949b059..e77b16a007 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -1,13 +1,13 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2013, 2014, 2015, 2016, 2019 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014, 2015, 2016, 2019, 2023 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2017, 2021, 2022 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015 Omar Radwan <toxemicsquire4@gmail.com>
 ;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
@@ -1059,7 +1059,7 @@ generator MkDocs.")
 (define-public python-slixmpp
   (package
     (name "python-slixmpp")
-    (version "1.5.2")
+    (version "1.8.3")
     (source
      (origin
        (method git-fetch)
@@ -1071,7 +1071,7 @@ generator MkDocs.")
        (file-name
         (git-file-name name version))
        (sha256
-        (base32 "15mqxcws14bjvh5jcfwl86zsvrymkdw3ya07vb44md7vfnsnclwx"))))
+        (base32 "0cvr037qhf0fpby5dci6ckqngaly1mnjs2zpndwgmvr3dyvrd8l8"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1087,7 +1087,12 @@ generator MkDocs.")
        ("gnupg" ,gnupg)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     (list python-aiodns python-aiohttp python-pyasn1
+     (list python-aiodns
+           python-aiohttp
+           python-cryptography
+           python-defusedxml
+           python-emoji
+           python-pyasn1
            python-pyasn1-modules))
     (inputs
      (list libidn python)) ; We are building a Python extension.
@@ -3143,14 +3148,14 @@ lossless but can be tweaked for more aggressive cleaning.")
 (define-public python-mechanize
   (package
     (name "python-mechanize")
-    (version "0.4.5")
+    (version "0.4.7")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "mechanize" version))
       (sha256
        (base32
-        "1z9kqcwb8gfq2l6i42z624kxpd8692a0c8gw2x5bbm7n848w2mb3"))))
+        "02b845y85ka5sl2cj93lll3v326d8bww07bq1q0y1643h7sshwqp"))))
     (build-system python-build-system)
     (propagated-inputs
      (list python-html5lib))
@@ -3555,6 +3560,7 @@ and is not compatible with JSON.")
     (build-system python-build-system)
     (arguments
      (list
+      #:tests? #f                       ;TODO: Circular dependency on pytest
       #:phases
       #~(modify-phases %standard-phases
           ;; XXX: PEP 517 manual build/install procedures copied from
@@ -3574,7 +3580,7 @@ and is not compatible with JSON.")
             (lambda* (#:key tests? #:allow-other-keys)
               (when tests?
                 (invoke "pytest" "-vv" "tests")))))))
-    (native-inputs (list python-flit-scm python-pypa-build python-pytest))
+    (native-inputs (list python-flit-scm python-pypa-build))
     (home-page "https://github.com/agronholm/exceptiongroup")
     (synopsis "PEP 654 backport from Python 3.11")
     (description "This is a backport of the @code{BaseExceptionGroup} and
@@ -3737,14 +3743,14 @@ port forwards using @acronym{UPnP, Universal Plug and Play}.")
 (define-public python-py
   (package
     (name "python-py")
-    (version "1.10.0")
+    (version "1.11.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "py" version))
        (sha256
         (base32
-         "1lqvkqk3b440g9z82gqbzlzas84wrm6ir8kplzhzavmn2pd1pf11"))))
+         "06c7m7sfcn7587xd4s2bng8m6q1gsfd3j93afhplfjq74r0mrisi"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: "ImportError: 'test' module incorrectly imported from
@@ -4349,6 +4355,18 @@ JavaScript-like message boxes.  Types of dialog boxes include:
                (base32
                 "1ynkqpv2akldmvkll5vh5zhwj433s1d59iv0f76lygyak4silgwr"))))
     (build-system python-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'skip-broken-test
+            (lambda _
+              ;; FIXME: This test fails for no good reason:
+              ;; https://github.com/pympler/pympler/issues/153
+              (substitute* "test/muppy/test_tracker.py"
+                (("^([[:blank:]]+)def test_stracker_create_summary" all indent)
+                 (string-append indent "@unittest.skipIf(True, \
+'Fails on Guix too for unknown reasons')\n" all))))))))
     (synopsis "Measure, monitor and analyze memory behavior")
     (description
      "Pympler is a development tool to measure, monitor and analyze
@@ -4608,14 +4626,14 @@ possible.")
 (define-public python-markupsafe
   (package
     (name "python-markupsafe")
-    (version "2.0.1")
+    (version "2.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "MarkupSafe" version))
        (sha256
         (base32
-         "02k2ynmqvvd0z0gakkf8s4idyb606r7zgga41jrkhqmigy06fk2r"))))
+         "0jqxp5sfrc0byp6bk0gwdmildi4mck2gprp42afri3z4r5y1k4bz"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -6366,7 +6384,7 @@ writing C extensions for Python as easy as Python itself.")
 (define-public python-numpy
   (package
     (name "python-numpy")
-    (version "1.21.6")
+    (version "1.23.2")
     (source
      (origin
        (method url-fetch)
@@ -6375,7 +6393,7 @@ writing C extensions for Python as easy as Python itself.")
              version "/numpy-" version ".tar.gz"))
        (sha256
         (base32
-         "0b0c5y35rd3mvwfk5is1d5ppfw9nl4d2rgx9xkwh1p0w394wdvyl"))))
+         "00bx3idjwhmzkdawg2dx1bp0316ig37jfx0dm82bvyv1hbj013dp"))))
     (build-system python-build-system)
     (arguments
      (list
@@ -6397,7 +6415,10 @@ writing C extensions for Python as easy as Python itself.")
 [openblas]
 libraries = openblas
 library_dirs = ~a/lib
-include_dirs = ~:*~a/include~%" #$(this-package-input "openblas"))))))
+include_dirs = ~:*~a/include~%"
+                          (dirname (dirname
+                                    (search-input-file
+                                     inputs "include/openblas_config.h"))))))))
           (add-before 'build 'fix-executable-paths
             (lambda* (#:key inputs #:allow-other-keys)
               ;; Make /gnu/store/...-bash-.../bin/sh the default shell,
@@ -6421,7 +6442,11 @@ include_dirs = ~:*~a/include~%" #$(this-package-input "openblas"))))))
                               ;; These tests may fail on 32-bit systems (see:
                               ;; https://github.com/numpy/numpy/issues/18387).
                               "not test_float_remainder_overflow "
-                              "and not test_pareto"
+                              "and not test_pareto "
+                              ;; The 'test_rint_big_int' test fails on older
+                              ;; x86_64 CPUs such as the Core 2 Duo (see:
+                              ;; https://github.com/numpy/numpy/issues/22170).
+                              "and not test_rint_big_int "
                               ;; These tests seem to fail on machines without
                               ;; an FPU is still under investigation upstream.
                               ;; https://github.com/numpy/numpy/issues/20635
@@ -6431,9 +6456,10 @@ include_dirs = ~:*~a/include~%" #$(this-package-input "openblas"))))))
                                    '())))))))))
     (native-inputs
      (list python-cython
-           python-hypothesis-next
+           python-hypothesis
            python-pytest
            python-pytest-xdist
+           python-typing-extensions
            gfortran))
     (inputs (list bash openblas))
     (home-page "https://numpy.org")
@@ -6447,22 +6473,6 @@ capabilities.")
      '((upstream-name . "numpy")))
     (license license:bsd-3)))
 
-(define-public python-numpy-next
-  (package
-    (inherit python-numpy)
-    (name "python-numpy-next")
-    (version "1.22.3")
-    (source
-     (origin
-       (inherit (package-source python-numpy))
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/numpy/numpy/releases/download/v"
-             version "/numpy-" version ".tar.gz"))
-       (sha256
-        (base32
-         "19dw91pqbqcniw2z57kiyqs1qp56g7kqy1bdyv664g8s62sc01m9"))))))
-
 (define-public python-numpy-documentation
   (package
     (inherit python-numpy)
@@ -7208,9 +7218,16 @@ tests = True~%" (assoc-ref inputs "tcl") (assoc-ref inputs "tk"))))))
                   (invoke "pytest"
                           "-n" (number->string (parallel-job-count))
                           "-m" "not network" "--pyargs" "matplotlib"
-                          ;; The 'test_lazy_auto_backend_selection' fails
-                          ;; because it would require an X server; skip it.
-                          "-k" "not test_lazy_auto_backend_selection"))))))))
+                          "-k"
+                          (string-append
+                           ;; The 'test_lazy_auto_backend_selection' fails
+                           ;; because it would require an X server; skip it.
+                           "not test_lazy_auto_backend_selection"
+                           ;; test_getattr fails for the GTK backend because
+                           ;; of an unexpected warning from Python 3.10
+                           ;; (via the gi module):
+                           ;; https://gitlab.gnome.org/GNOME/pygobject/-/issues/494
+                           " and not test_getattr")))))))))
     (propagated-inputs
      (list gobject-introspection
            python-cairocffi
@@ -7693,31 +7710,43 @@ by pycodestyle.")
 (define-public python-distlib
   (package
     (name "python-distlib")
-    (version "0.3.1")
+    (version "0.3.5")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "distlib" version ".zip"))
+       (uri (pypi-uri "distlib" version))
        (sha256
         (base32
-         "1wdzv7fsjhrkhh1wfkarlhcwa8m00mgcpdsvknmf2qy8f9l13xpd"))))
+         "1zmjraasgqkz0gfv4mc4w4fj4k2fxj62h1pf5dgb5qqbqwvmgxx7"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'no-/bin/sh
-           (lambda _
-             (substitute* '("distlib/scripts.py" "tests/test_scripts.py")
-               (("/bin/sh") (which "sh")))
-             #t))
-         (add-before 'check 'prepare-test-env
-           (lambda _
-             (setenv "HOME" "/tmp")
-             ;; NOTE: Any value works, the variable just has to be present.
-             (setenv "SKIP_ONLINE" "1")
-             #t)))))
-    (native-inputs (list unzip))
-    (home-page "https://bitbucket.org/pypa/distlib")
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'build
+            (lambda _
+              ;; ZIP does not support timestamps before 1980.
+              (setenv "SOURCE_DATE_EPOCH" "315532800")
+              (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
+          (add-before 'build 'no-/bin/sh
+            (lambda _
+              (substitute* '("distlib/scripts.py" "tests/test_scripts.py")
+                (("/bin/sh") (which "sh")))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (setenv "HOME" "/tmp")
+              ;; NOTE: Any value works, the variable just has to be present.
+              (setenv "SKIP_ONLINE" "1")
+              (when tests?
+                (invoke "pytest" "-vv"))))
+          (replace 'install
+            (lambda _
+              (let ((whl (car (find-files "dist" "\\.whl$"))))
+                (invoke "pip" "--no-cache-dir" "--no-input"
+                        "install" "--no-deps" "--prefix" #$output whl)))))))
+    (native-inputs
+     (list python-pypa-build python-pytest))
+    (home-page "https://github.com/pypa/distlib")
     (synopsis "Distribution utilities")
     (description "Distlib is a library which implements low-level functions that
 relate to packaging and distribution of Python software.  It is intended to be
@@ -8959,14 +8988,14 @@ older Python versions.")
 (define-public python-importlib-metadata
   (package
     (name "python-importlib-metadata")
-    (version "4.11.3")
+    (version "5.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "importlib_metadata" version))
        (sha256
         (base32
-         "0f951zynlh39yicqnhrs3p1qa5p3g6ajjfcggf12y51ppxz5jk7a"))))
+         "1kf7qclcz820xl5wwjpzcwpfy6shj7ymwh4xzxvpl2xs5gb4hka0"))))
     (build-system python-build-system)
     (arguments
      (list
@@ -9764,13 +9793,13 @@ abstract syntax tree (AST) nodes without side effects.")
 (define-public python-asttokens
   (package
     (name "python-asttokens")
-    (version "2.0.5")
+    (version "2.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "asttokens" version))
        (sha256
-        (base32 "1mglbkikxvnhrk3inbx0v1qzxwd38qjr6l35sn098yicy0ac2m4s"))))
+        (base32 "1wwlpvnrh67z4228841zgpqc46vigslzmbvk2izbfc3g585i28j6"))))
     (build-system python-build-system)
     (propagated-inputs (list python-six))
     (native-inputs (list python-astroid python-pytest python-setuptools-scm))
@@ -9829,13 +9858,13 @@ than the default.")
 (define-public python-ipython
   (package
     (name "python-ipython")
-    (version "8.2.0")
+    (version "8.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ipython" version ".tar.gz"))
        (sha256
-        (base32 "1hcxa713wh3axa57412iy02rj0494ljvv6gpnls4lndc5h9yprbh"))))
+        (base32 "114z175hnv1lgprj06zfcil7lkq013rggjbrc43gsxkmv1fdyyq9"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -11086,13 +11115,13 @@ applications.")
 (define-public python-pyzmq
   (package
     (name "python-pyzmq")
-    (version "22.3.0")
+    (version "25.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyzmq" version))
        (sha256
-        (base32 "0737kizh53n4rjq1xbm6nhr0bq65xflg04i1d8fcky0nwwrw1pcf"))
+        (base32 "0jai5sbd4ypihsvr4ikq6d93nkmxwv53598sh24dqs78f2xip33b"))
        (snippet
         #~(begin
             (use-modules (guix build utils))
@@ -11100,8 +11129,7 @@ applications.")
             (delete-file-recursively "bundled")
             ;; Delete cythonized files.
             (for-each delete-file
-                      (list "zmq/backend/cython/constants.c"
-                            "zmq/backend/cython/context.c"
+                      (list "zmq/backend/cython/context.c"
                             "zmq/backend/cython/_device.c"
                             "zmq/backend/cython/error.c"
                             "zmq/backend/cython/message.c"
@@ -11117,6 +11145,11 @@ applications.")
        (list (string-append "--zmq=" (assoc-ref %build-inputs "zeromq")))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'disable-draft-test
+           ;; FIXME: The test_draft.TestDraftSockets test fails with:
+           ;;   zmq.error.Again: Resource temporarily unavailable
+           (lambda _
+             (delete-file "zmq/tests/test_draft.py")))
          (add-before 'check 'build-extensions
            (lambda _
              ;; Cython extensions have to be built before running the tests.
@@ -11124,7 +11157,11 @@ applications.")
     (inputs
      (list zeromq))
     (native-inputs
-     (list pkg-config python-cython python-pytest))
+     (list pkg-config
+           python-cython
+           python-pytest
+           python-pytest-asyncio
+           python-tornado))
     (home-page "https://github.com/zeromq/pyzmq")
     (synopsis "Python bindings for 0MQ")
     (description
@@ -12239,13 +12276,13 @@ number of lines in the contained files easily.")
   (hidden-package
    (package
      (name "python-fonttools")
-     (version "4.28.5")
+     (version "4.37.1")
      (source (origin
                (method url-fetch)
                (uri (pypi-uri "fonttools" version ".zip"))
                (sha256
                 (base32
-                 "1jhl5n3rfqq7fznvsh6r80n7ylap1a7ppq1040y8cflhyz80ap2l"))))
+                 "1ryc1wca2v92wn24baryj5fr32lspl8rbsig32fnkxp1islf21j6"))))
      (build-system python-build-system)
      (native-inputs
       (list unzip))
@@ -12303,18 +12340,6 @@ from an XML-based format.")
            python-zopfli))
     (properties (alist-delete 'hidden? (package-properties python-fonttools)))))
 
-(define-public python-fonttools-next
-  (package
-    (inherit python-fonttools-full)
-    (version "4.39.3")
-    (source (origin
-              (inherit (package-source python-fonttools-full))
-              (method url-fetch)
-              (uri (pypi-uri "fonttools" version ".zip"))
-              (sha256
-               (base32
-                "1msibi5cmi5znykkg66dq7xshl07lkqjxhrz5hcipqvlggsvjd4j"))))))
-
 (define-public python-ly
   (package
     (name "python-ly")
@@ -12340,14 +12365,14 @@ provided that can be used to do various manipulations with LilyPond files.")
 (define-public python-appdirs
   (package
     (name "python-appdirs")
-    (version "1.4.3")
+    (version "1.4.4")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "appdirs" version))
         (sha256
           (base32
-            "14id6wxi12lgyw0mg3bcfnf888ad07jz9yj46gfzhn186z8rcn4y"))))
+            "0hfzmwknxqhg20aj83fx80vna74xfimg8sk18wb85fmin9kh2pbx"))))
     (build-system python-build-system)
     (home-page "https://github.com/ActiveState/appdirs")
     (synopsis
@@ -13907,20 +13932,21 @@ Debian-related files, such as:
 (define-public python-json-spec
   (package
     (name "python-json-spec")
-    (version "0.10.1")
+    (version "0.11.0")
     (source
       (origin
         (method url-fetch)
-        (uri (pypi-uri "json-spec" version))
+        (uri (pypi-uri "json_spec" version))
         (sha256
           (base32
-            "06dpbsq61ja9r89wpa2pzdii47qh3xri9ajdrgn1awfl102znchb"))))
+            "0fwxirzxx5s9l0lwnjl6ki39xw1fsjm0vr6cm67ws27fkmcxcry7"))))
     (build-system python-build-system)
     (propagated-inputs
-      (list python-pathlib python-six))
+      (list python-importlib-metadata
+            python-termcolor))
     (native-inputs
       (list python-pytest))
-    (home-page "http://py.errorist.io/json-spec")
+    (home-page "https://json-spec.readthedocs.io/")
     (synopsis
       "JSON Schema, JSON Pointer and JSON Reference for Python")
     (description
@@ -13986,8 +14012,7 @@ significantly better performance.")
             python-pylint
             python-pytest
             python-pytest-benchmark
-            python-pytest-cache
-            python-validictory))
+            python-pytest-cache))
     (home-page
       "https://github.com/horejsek/python-fastjsonschema")
     (synopsis
@@ -14252,7 +14277,8 @@ time.")
      (list python-ipykernel
            ;; Adding ipywidgets would create a cycle.
            ;;python-ipywidgets
-           ;;python-pyppeteer    ;TODO: package me
+           ;; XXX: Disabled, not in guix.
+           ;;python-pyppeteer
            python-pytest
            python-pytest-xdist))
     (propagated-inputs
@@ -14278,14 +14304,14 @@ time.")
            texlive-caption
            texlive-enumitem
            texlive-fontspec
-           texlive-generic-iftex
+           texlive-iftex
            texlive-grffile
            texlive-hyperref
-           texlive-latex-fancyvrb
+           texlive-fancyvrb
            texlive-latex-float
            texlive-latex-geometry
            texlive-latex-jknapltx
-           texlive-latex-ms
+           texlive-ms
            texlive-latex-parskip
            texlive-latex-trimspaces
            texlive-latex-upquote
@@ -16071,27 +16097,27 @@ of @acronym{REGEXPs, regular expressions}.")
 (define-public python-mako
   (package
     (name "python-mako")
-    (version "1.1.3")
+    (version "1.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Mako" version))
        (sha256
         (base32
-         "09ywrmhr6gdyfx6d5727wwjnz73i6rklqcb4c14m7sqc830wi5c1"))))
+         "0gqnv9py1dqp01jmf5zxp0vj2dbhq1l9zy55fai319iv6sdqc91p"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
                     (lambda* (#:key tests? #:allow-other-keys)
                       (if tests?
-                          (invoke "nosetests" "-v")
+                          (invoke "pytest" "-vv")
                           (format #t "test suite not run~%"))
                       #t)))))
     (propagated-inputs
      (list python-markupsafe))
     (native-inputs
-     (list python-mock python-nose))
+     (list python-mock python-pytest))
     (home-page "https://www.makotemplates.org/")
     (synopsis "Templating language for Python")
     (description "Mako is a templating language for Python that compiles
@@ -16643,7 +16669,7 @@ import platform
   reason=\"Fails on 32 bit architectures\")
 " m))))))))
     (build-system python-build-system)
-    (native-inputs (list python-pytest-6))
+    (native-inputs (list python-pytest))
     (home-page "https://software.clapper.org/munkres/")
     (synopsis "Implementation of the Munkres algorithm")
     (description "The Munkres module provides an implementation of the Munkres
@@ -16985,9 +17011,7 @@ for Python inspired by modern web development.")
      (list which))
     (inputs
      ;; python-magic needs to be able to find libmagic.so.
-     ;; Use a newer version because 5.39 returns bogus for some archives
-     ;; (notably Chromium .crx extensions), which breaks e.g. 'diffoscope'.
-     (list file-next))
+     (list file))
     (synopsis "File type identification using libmagic")
     (description
      "This module uses ctypes to access the libmagic file type
@@ -17777,13 +17801,13 @@ docstring and colored output.")
 (define-public python-tomlkit
   (package
     (name "python-tomlkit")
-    (version "0.7.0")
+    (version "0.11.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "tomlkit" version))
        (sha256
-        (base32 "062n694sfv24ylda6nh8228y2q9hrvy554kqx84y7czsjfbg4mxc"))))
+        (base32 "0wsxnv9bs7jk8ig8blj9c438a1ygvdad7y9cn1zr720nfbjm5fbi"))))
     (build-system python-build-system)
     (native-inputs
      (list python-pytest python-pyyaml))
@@ -17941,7 +17965,7 @@ strings require only one extra byte in addition to the strings themselves.")
                         ;; build system and new Rust dependencies.
                         "--ignore" "tests/test_preconf.py")))))))
     (native-inputs
-     (list python-hypothesis-next
+     (list python-hypothesis
            python-immutables
            python-msgpack
            python-poetry-core
@@ -18461,7 +18485,7 @@ scans through a file and detects issues.")
 (define-public python-jedi
   (package
     (name "python-jedi")
-    (version "0.18.1")
+    (version "0.18.2")
     (source
      (origin
        (method git-fetch)
@@ -18472,26 +18496,12 @@ scans through a file and detects issues.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "07drmi3ai49jw5n23ibkambcgijqcw073ihypjgxfnks5lv4yqy1"))
-       (modules '((guix build utils)))
-       (snippet
-        ;; Adjust comprehension syntax for Python > 3.8.
-        ;; From <https://github.com/davidhalter/jedi/issues/1824>.
-        '(substitute* "test/completion/lambdas.py"
-           (("if lambda: 3")
-            "if (lambda: 3)")))))
+         "1nhsajmkn3qj32k5z3ymrd3r6dz2aliv2pqb824m5kaib986dm44"))
+       (modules '((guix build utils)))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-completion-test
-           (lambda _
-             ;; This resolves a failure in the 'test_completion' test (see:
-             ;; https://github.com/davidhalter/jedi/issues/1824).
-             ;; TODO: Remove after a new release is made (currently: 0.18.1).
-             (substitute* "test/completion/lambdas.py"
-               (("\\[a for a in \\[1,2\\] if lambda: 3\\]\\[0\\]")
-                "[a for a in [1,2] if (lambda: 3)][0]"))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
@@ -19473,42 +19483,6 @@ task each process is busy with.  The technique is used by PostgreSQL and the
 OpenSSH Server for example.")
     (license license:bsd-3)))
 
-(define-public python-validictory
-  (package
-    (name "python-validictory")
-    (version "1.0.1")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (pypi-uri "validictory" version))
-      (sha256
-       (base32
-        "1zf1g9sw47xzp5f80bd94pb42j9yqv82lcrgcvdwr6nkaphfi37q"))))
-    (build-system python-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'bootstrap
-           ;; Move the tests out of the package directory to avoid
-           ;; packaging them.
-           (lambda* _
-             (rename-file "validictory/tests" "tests")
-             (delete-file "tests/__init__.py")))
-         (replace 'check
-           (lambda _
-             (invoke "py.test" "-vv" ))))))
-    (native-inputs
-     (list python-pytest))
-    (home-page
-     "https://github.com/jamesturk/validictory")
-    (synopsis "General purpose Python data validator")
-    (description "It allows validation of arbitrary Python data structures.
-
-     The schema format is based on the JSON Schema
-     proposal (http://json-schema.org), so combined with json the library is also
-     useful as a validator for JSON data.")
-  (license license:expat)))
-
 (define-public python-pyelftools
   (package
     (name "python-pyelftools")
@@ -19750,14 +19724,14 @@ from the header, as well as section details and data available.")
 (define-public python-cheetah
   (package
     (name "python-cheetah")
-    (version "3.2.4")
+    (version "3.3.1")
     (source
       (origin
         (method url-fetch)
-        (uri (pypi-uri "Cheetah3" version))
+        (uri (pypi-uri "CT3" version))
         (sha256
           (base32
-           "0ar5dqjnqaw0c17mymd6xgd81jn9br9fblawr0x438v1571bkaya"))))
+           "1j36vampqip18jx0jzngb9rnkhhhl8hqnscg117y0d6cgrgm57qw"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -20219,21 +20193,21 @@ from the header, as well as section details and data available.")
      and bit flag values.")
     (license license:expat)))
 
-(define-public python-attrdict
+(define-public python-attrdict3
   (package
-    (name "python-attrdict")
-    (version "2.0.1")
+    (name "python-attrdict3")
+    (version "2.0.2")
     (source (origin
               (method url-fetch)
-              (uri (pypi-uri "attrdict" version))
+              (uri (pypi-uri "attrdict3" version))
               (sha256
                (base32
-                "0w3vsz64j9npxfgh83hghsh161wwkrx1fxqi1533js2wnnc0dj9m"))))
+                "1s2z6c9jam5azm746l49wsqsyi29zbbrknq1axsw230jl4f1fk00"))))
     (build-system python-build-system)
     ;; The package is no longer maintained and tests need some work.
     (arguments '(#:tests? #f))
     (propagated-inputs (list python-six))
-    (home-page "https://github.com/bcj/AttrDict")
+    (home-page "https://github.com/pirofti/AttrDict3")
     (synopsis "Attribute-style access dictionaries")
     (description
      "This package provides mapping objects whose elements can be accessed
@@ -20347,7 +20321,7 @@ both as keys and as attributes.")
 (define-public python-astroid
   (package
     (name "python-astroid")
-    (version "2.9.0")
+    (version "2.11.7")
     (source
      (origin
        (method git-fetch)
@@ -20356,7 +20330,7 @@ both as keys and as attributes.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "19iiys4233cicpm48fd7lrkm31kk47qiv44wvk952rqbcn4rd2dh"))))
+        (base32 "0lmm5bhszg1nj0xsjnh5nm39if2jzpa3ycgvhy6ddycz28dy568y"))))
     (build-system python-build-system)
     (propagated-inputs
      (list python-lazy-object-proxy python-typing-extensions python-wrapt))
@@ -22719,7 +22693,8 @@ based on the CPython 2.7 and 3.7 parsers.")
        (method url-fetch)
        (uri (pypi-uri "typeguard" version))
        (sha256
-        (base32 "1i5qzcyw2715h1g1hvj7fxykck2bkxyshpngjr3nfcx1lf6smv80"))))
+        (base32 "1i5qzcyw2715h1g1hvj7fxykck2bkxyshpngjr3nfcx1lf6smv80"))
+       (patches (search-patches "python-typeguard-python3.10.patch"))))
     (build-system python-build-system)
     (arguments
      (list
@@ -22744,26 +22719,19 @@ with PEP 484 argument (and return) type annotations.")
 (define-public python-typing-extensions
   (package
     (name "python-typing-extensions")
-    (version "4.0.1")
+    (version "4.3.0")
     (source (origin
-              ;; The test script is missing from the PyPI archive.
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/python/typing")
-                    (commit version)))
-              (file-name (git-file-name name version))
+              (method url-fetch)
+              (uri (pypi-uri "typing_extensions" version))
               (sha256
                (base32
-                "0a35fh5wk9s538x0w3dz95y0avnhd2srzyv9s1a372711n8hdl4p"))))
+                "19n4l57qazwrbvxjrbxw2vvfyd0zbk8ivnwm4zmwfzzl69x6glp6"))))
     (build-system python-build-system)
     (arguments
      (list
       #:tests? #f       ;requires Python's test module, not available in Guix
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'unpack 'enter-source-directory
-            (lambda _
-              (chdir "typing_extensions")))
           ;; XXX: PEP 517 manual build copied from python-isort.
           (replace 'build
             (lambda _
@@ -23009,7 +22977,9 @@ time-based (TOTP) passwords.")
        (method url-fetch)
        (uri (pypi-uri "parso" version))
        (sha256
-        (base32 "185gkxq92kqiw2h5zp1cmyn04055x0lix4hmi5c077xm1clvw1wc"))))
+        (base32 "185gkxq92kqiw2h5zp1cmyn04055x0lix4hmi5c077xm1clvw1wc"))
+       (patches
+        (search-patches "python-parso-unit-tests-in-3.10.patch"))))
     (native-inputs
      (list python-pytest))
     (build-system python-build-system)
@@ -24237,25 +24207,19 @@ that is accessible to other projects developed in Cython.")
 (define-public python-sortedcontainers
   (package
     (name "python-sortedcontainers")
-    (version "2.1.0")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "sortedcontainers" version))
        (sha256
         (base32
-         "0fm0w5id2yhqld95hg2m636vjgkz377rvgdfqaxc25vbylr9lklp"))))
+         "126vpywl7aly6zir033a9indgyficlzl68qls61nn2y3djhabji5"))))
     (build-system python-build-system)
     (arguments
-     ;; FIXME: Tests require many extra dependencies, and would introduce
-     ;; a circular dependency on hypothesis, which uses this package.
+     ;; TODO: Circular dependency on pytest.
      '(#:tests? #f))
-    (propagated-inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-distlib" ,python-distlib)
-       ("python-filelock" ,python-filelock)
-       ("python-six" ,python-six-bootstrap)))
-    (home-page "https://www.grantjenks.com/docs/sortedcontainers/")
+    (home-page "https://grantjenks.com/docs/sortedcontainers/")
     (synopsis "Sorted List, Sorted Dict, Sorted Set")
     (description
      "This package provides a sorted collections library, written in
@@ -24597,7 +24561,16 @@ RFC 8265 and RFC 8266.")
        (sha256
         (base32
          "1mp9lk0b2qa37b7y6ak4lvf6ifw2ylyy6bkf9ik77md3j4xrwlc7"))))
-    (build-system python-build-system)
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:phases
+      '(modify-phases %standard-phases
+         (add-after 'unpack 'patch-version-check
+           (lambda _
+             ;; Python 3.10 is indeed more recent than Python 3.4.
+             (substitute* "setup.py"
+               ((" or py_version\\[0\\] == '3'.*") ":")))))))
     (propagated-inputs
      (list python-six))
     (home-page "https://github.com/abseil/abseil-py")
@@ -24782,13 +24755,13 @@ make your work easier.")
 (define-public python-outcome
   (package
     (name "python-outcome")
-    (version "1.0.1")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "outcome" version))
        (sha256
-        (base32 "0vxn04vspmlkkyijjkjnsc46f93ki8g62hr7ag10zpd7ic324y7w"))))
+        (base32 "0wi6bmsfn73aw1hbpa1nhhshlx9k2vxcl7kp3z7h78sxwhyvv0kg"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -24861,7 +24834,8 @@ _cyclic_garbage"
                          ;; OSError: protocol not found.
                          " and not test_getprotobyname"
                          ;; EOFError: Ran out of input.
-                         " and not test_static_tool_sees_all_symbols"))))))))
+                         " and not test_static_tool_sees_all_symbols")
+                        "trio/tests")))))))
     (native-inputs
      (list python-astor
            python-ipython
@@ -28007,7 +27981,7 @@ By default it uses the open Python vulnerability database Safety DB.")
     (native-inputs
      `(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
                                         texlive-fonts-ec
-                                        texlive-generic-iftex
+                                        texlive-iftex
                                         texlive-hyperref
                                         texlive-oberdiek
                                         texlive-lm
@@ -29375,7 +29349,8 @@ supports x86_64 instructions up to AVX-512 and SHA.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0bzf6pv85dzfxfysm6zbj8m40hp0xzr9h8qlk4hp3nmy88rznqvr"))))
+           "0bzf6pv85dzfxfysm6zbj8m40hp0xzr9h8qlk4hp3nmy88rznqvr"))
+         (patches (search-patches "python-sgmllib3k-assertions.patch"))))
       (build-system python-build-system)
       (home-page "https://github.com/hsoft/sgmllib")
       (synopsis "Python 3 port of sgmllib")
@@ -29498,7 +29473,7 @@ symbolic expressions in pure Python using the technique of logical unification."
          "0w9giq196wps7mbm47c4shdzs5yvwvqajqzkim2p92i51sm5qgvm"))))
     (build-system python-build-system)
     (native-inputs
-     (list python-pytest-6 python-toml))
+     (list python-pytest python-toml))
     (propagated-inputs
      (list python-logical-unification))
     (home-page "https://github.com/pythological/python-cons")