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.scm464
1 files changed, 383 insertions, 81 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 141c3d681e..7c7224fdae 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -59,7 +59,7 @@
 ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019 Sam <smbaines8@gmail.com>
 ;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
-;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019, 2020, 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
@@ -124,6 +124,9 @@
 ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
 ;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
+;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2022 Marek Felšöci <marek@felsoci.sk>
+;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -690,6 +693,32 @@ project documentation.  Documentation source files are written in Markdown, and
 configured with a single YAML configuration file.")
     (license license:bsd-3)))
 
+(define-public python-mkdocs-markdownextradata-plugin
+  (package
+    (name "python-mkdocs-markdownextradata-plugin")
+    (version "0.2.5")
+    (source (origin
+       ;; Use git, as there are some test files missing from the PyPI release,
+       ;; see https://github.com/rosscdh/mkdocs-markdownextradata-plugin/issues/41.
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/rosscdh/mkdocs-markdownextradata-plugin")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1a3868s9m7pzyfncpjbjsa9vw5nihssl2v47pxj7h6qa67kvlk3g"))))
+    (build-system python-build-system)
+    (native-inputs (list python-pytest))
+    (propagated-inputs (list python-mkdocs python-pyyaml))
+    (home-page "https://github.com/rosscdh/mkdocs-markdownextradata-plugin/")
+    (synopsis "Inject mkdocs.yml extra variables into the MkDocs markdown
+template")
+    (description
+     "This package provides a MkDocs plugin that injects the mkdocs.yml extra
+variables into the markdown template")
+    (license license:expat)))
+
 (define-public python-pymdown-extensions
   (package
     (name "python-pymdown-extensions")
@@ -1182,20 +1211,13 @@ iotop, uptime, pidof, tty, taskset, pmap.")
 (define-public python-shapely
   (package
     (name "python-shapely")
-    (version "1.7.1")
+    (version "1.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Shapely" version))
        (sha256
-        (base32
-         "0adiz4jwmwxk7k1awqifb1a9bj5x4nx4gglb5dz9liam21674h8n"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (delete-file "shapely/speedups/_speedups.c")
-           (delete-file "shapely/vectorized/_vectorized.c")
-           #t))))
+        (base32 "1dpbjw0w2l1r9s5drmi4cyr1yd5h2a4m9vip7qhy7mbg03azjajp"))))
     (build-system python-build-system)
     (native-inputs
      (list python-cython python-matplotlib python-pytest
@@ -1481,6 +1503,37 @@ NetCDF files can also be read and modified.  Python-HDF4 is a fork of
 @url{http://hdfeos.org/software/pyhdf.php,pyhdf}.")
    (license license:expat)))
 
+(define-public python-h5netcdf
+  (package
+    (name "python-h5netcdf")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "h5netcdf" version))
+       (sha256
+        (base32 "1b2dcgf5rwy7pb7hr4prkc5vgcw9qc2was20dmnj90lbrpx08rvp"))))
+    (build-system python-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "pytest" "-vv" "h5netcdf/tests")))))))
+    (native-inputs
+     (list python-netcdf4
+           python-pytest
+           python-setuptools-scm))
+    (propagated-inputs
+     (list python-h5py python-packaging))
+    (home-page "https://h5netcdf.org")
+    (synopsis "Python interface for the netCDF4 file-format based on h5py")
+    (description "This package provides Python interface for the netCDF4
+file-format that reads and writes local or remote HDF5 files directly via h5py
+or h5pyd, without relying on the Unidata netCDF library")
+    (license license:bsd-3)))
+
 (define-public python-h5py
   (package
     (name "python-h5py")
@@ -1646,14 +1699,14 @@ of the netcdf4 package before.")
 (define-public python-netcdf4
   (package
     (name "python-netcdf4")
-    (version "1.5.3")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "netCDF4" version))
        (sha256
         (base32
-         "1gn35mb2yc263pci720aik8ymz41lrvxlrn3z83vyjwghiashg1a"))))
+         "0qxs8r1qmsmg760wm5q0wqlcm7hdd3k7cghryw6wvqd3v5rs7vwm"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -2754,20 +2807,20 @@ Python 3.3+.")
 (define-public python-pyicu
   (package
     (name "python-pyicu")
-    (version "2.7.4")
+    (version "2.9")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "PyICU" version))
       (sha256
        (base32
-        "0mkz1673qxldxs4mrqg9882xgmz5fhpia17yrsd6z8dfw8156rf0"))))
+        "0y2qhh443vydi3y7kmhyb6kz3z6d7qq7ld0sg88mfqalcp7dca9w"))))
     (build-system python-build-system)
     (inputs
      (list icu4c))
     (native-inputs
      (list python-pytest python-six))
-    (home-page "https://github.com/ovalhub/pyicu")
+    (home-page "https://gitlab.pyicu.org/main/pyicu")
     (synopsis "Python extension wrapping the ICU C++ API")
     (description
      "PyICU is a python extension wrapping the ICU C++ API.")
@@ -3736,34 +3789,23 @@ memory usage and transliteration quality.")
 (define-public python-pyjwt
   (package
     (name "python-pyjwt")
-    (version "1.7.1")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "PyJWT" version))
        (sha256
         (base32
-         "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (for-each delete-file-recursively
-                     (find-files "." "\\.pyc$"))
-           #t))))
+         "1fmbcwfw1463wjzwbcgg3s16rad6kfb1mc5y7jbkp6v9ihh0hafl"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
                   (replace 'check
-                    (lambda _
-                      ;; Mimic upstream commit 3a20892442b34c7 to get
-                      ;; rid of dependency on pytest-runner < 5.0.
-                      ;; Remove substitution for PyJWT > 1.7.1.
-                      (substitute* "setup.py"
-                        ((".*pytest-runner.*")
-                         ""))
-                      (invoke "pytest" "-vv"))))))
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "pytest" "-vv")))))))
     (native-inputs
-     (list python-pytest python-pytest-cov))
+     (list python-cryptography python-pytest))
     (home-page "https://github.com/progrium/pyjwt")
     (synopsis "JSON Web Token implementation in Python")
     (description
@@ -4573,7 +4615,7 @@ to deprecate classes, functions or methods.")
 (define-public python-pygithub
   (package
     (name "python-pygithub")
-    (version "1.54.1")
+    (version "1.55")
     (source
      ;; We fetch from the Git repo because there are no tests in the PyPI
      ;; archive.
@@ -4584,7 +4626,7 @@ to deprecate classes, functions or methods.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1nl74bp5ikdnrc8xq0qr25ryl1mvarf0xi43k8w5jzlrllhq0nkq"))))
+        (base32 "082bxffpy4h97dsay3l75cpgfjj10kywkvicnm6xscwvah285q9y"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -4596,7 +4638,7 @@ to deprecate classes, functions or methods.")
              #t)))))
     (propagated-inputs
      (list python-cryptography python-deprecated python-pyjwt
-           python-requests))
+           python-pynacl python-requests))
     (native-inputs
      (list python-httpretty python-pytest))
     (home-page "https://pygithub.readthedocs.io/en/latest/")
@@ -5715,15 +5757,17 @@ the Texinfo, HTML, and PDF formats.")))
 (define-public python-munch
   (package
     (name "python-munch")
-    (version "2.0.4")
+    (version "2.5.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "munch" version))
         (sha256
          (base32
-          "1cmqg91xnqx8gvnh4pmp0bfl1dfcm65d5p9mg73zz8pkjhx6h80l"))))
+          "1lnvlic9g68hcmgdnv5bzp0nx2bf1kjclj54gx0s7nyl4ipmywrd"))))
     (build-system python-build-system)
+    (native-inputs (list python-pbr python-pytest))
+    (propagated-inputs (list python-six))
     (home-page "https://github.com/Infinidat/munch")
     (synopsis "Dot-accessible dictionary")
     (description "Munch is a dot-accessible dictionary similar to JavaScript
@@ -9913,13 +9957,13 @@ function signatures.")
 (define-public python-sympy
   (package
     (name "python-sympy")
-    (version "1.7.1")
+    (version "1.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "sympy" version))
        (sha256
-        (base32 "0bkb4jf24yv5i4kjpsmg1xjjccfhqyi0syv0p0xvhdbmx5hr5pm3"))))
+        (base32 "0yvqb2fhrm81skl8s9znbkkjfb1a09n64qqlc1r225cyvzzywfar"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -10856,6 +10900,42 @@ extensions, and several HTML output formats.  A command line wrapper
 markdown_py is also provided to convert Markdown files to HTML.")
     (license license:bsd-3)))
 
+(define-public python-mdx-include
+  (package
+    (name "python-mdx-include")
+    (version "1.4.1")
+    (source (origin
+              ;; Use git, as there are some test files missing from the PyPI
+              ;; release, see https://github.com/neurobin/mdx_include/issues/9
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/neurobin/mdx_include")
+                    ;; Releases are not tagged on github, see
+                    ;; https://github.com/neurobin/mdx_include/issues/10
+                    (commit "683e6be7a00a1ef4d673ad0294458fa61bc97286")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0qpzgln4ybd7pl0m9s19dv60aq9cvwrk7x3yz96kjhcywaa5w386"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'disable-test-requiring-network
+           (lambda _
+             (substitute* "mdx_include/test/test.py"
+               (("(\\s+def )test_(cache|config|default)\\(" _ pre post)
+                (string-append pre "__off__test_" post "("))))))))
+    (propagated-inputs (list python-cyclic python-markdown python-rcslice))
+    (home-page "https://github.com/neurobin/mdx_include")
+    (synopsis "Python Markdown extension to include local or remote files")
+    (description "Include extension for Python Markdown.  It lets you include
+local or remote (downloadable) files into your markdown at arbitrary
+positions.
+
+This project is motivated by markdown-include and provides the same
+functionalities with some extras.")
+    (license license:bsd-3)))
 
 (define-public python-ptyprocess
   (package
@@ -12428,32 +12508,41 @@ $ rm -rf /tmp/env
 (define-public python-tlsh
   (package
     (name "python-tlsh")
-    (version "3.4.5")
+    (version "4.11.2")
     (home-page "https://github.com/trendmicro/tlsh")
     (source
      (origin
        (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/trendmicro/tlsh")
-             (commit (string-append "v" version))))
+       (uri (git-reference (url home-page) (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1ydliir308xn4ywy705mmsh7863ldlixdvpqwdhbipzq9vfpmvll"))))
+        (base32 "1gb5j73nw3nmx030rf8pm75rns5syxhv44zxr6i74kjicyly1i9w"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:out-of-source? #f
-       #:phases (modify-phases %standard-phases
-                  (replace
-                   'install
-                   (lambda* (#:key outputs #:allow-other-keys)
-                     ;; Build and install the Python bindings.  The underlying
-                     ;; C++ library is apparently not meant to be installed.
-                     (let ((out (assoc-ref outputs "out")))
-                       (with-directory-excursion "py_ext"
-                         (and (system* "python" "setup.py" "build")
-                              (system* "python" "setup.py" "install"
-                                       (string-append "--prefix=" out))))))))))
-    (inputs `(("python" ,python-wrapper)))        ;for the bindings
+     (list #:out-of-source? #f
+           #:phases
+           #~(modify-phases %standard-phases
+               (replace 'install
+                 (lambda _
+                   ;; Build and install the Python bindings.  The underlying
+                   ;; C++ library is apparently not meant to be installed.
+                   (with-directory-excursion "py_ext"
+                     (and (system* "python" "setup.py" "build")
+                          (system* "python" "setup.py" "install"
+                                   (string-append "--prefix=" #$output))))))
+               ;; Delay tests until the phase above has run.
+               (delete 'check)
+               (add-after 'install 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (substitute* "Testing/python_test.sh"
+                     ;; The script sets up a working PYTHONPATH, but does not
+                     ;; export it for all subsequent test commands.  Fix that.
+                     (("^PYTHONPATH=\".*" all)
+                      (string-append all "\nexport PYTHONPATH\n")))
+                   (when tests?
+                     (with-directory-excursion "Testing"
+                       (invoke "./python_test.sh"))))))))
+    (inputs (list python-wrapper))      ;for the bindings
     (synopsis "Fuzzy matching library for Python")
     (description
      "Trend Micro Locality Sensitive Hash (TLSH) is a fuzzy matching library.
@@ -14064,21 +14153,36 @@ files for use with Python.")
     (license license:bsd-2)))
 
 (define-public python-args
-  (package
-    (name "python-args")
-    (version "0.1.0")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "args" version))
-              (sha256
-               (base32
-                "057qzi46h5dmxdqknsbrssn78lmqjlnm624iqdhrnpk26zcbi1d7"))))
-    (build-system python-build-system)
-    (home-page "https://github.com/kennethreitz/args")
-    (synopsis "Command-line argument parser")
-    (description
-     "This library provides a Python module to parse command-line arguments.")
-    (license license:bsd-3)))
+  (let ((commit "9460f1a35eb3055e9e4de1f0a6932e0883c72d65") (revision "0"))
+    (package
+      (name "python-args")
+      (version (git-version "0.1.0" revision commit))
+      (home-page "https://github.com/kennethreitz-archive/args")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1zfxpbp9vldqdrjmd0c6y3wisl35mx5v8zlyp3nhwpy1730wrc9j"))))
+      (build-system python-build-system)
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (add-after 'unpack 'patch-args.py
+                      (lambda _
+                        (substitute* "args.py"
+                          (("basestring") "str"))))
+                    (replace 'check
+                      (lambda* (#:key tests? #:allow-other-keys)
+                        (when tests?
+                          (invoke "nosetests" "-v")))))))
+      (native-inputs (list python-nose))
+      (synopsis "Command-line argument parser")
+      (description
+       "This library provides a Python module to parse command-line arguments.")
+      (license license:bsd-3))))
 
 (define-public python-clint
   (package
@@ -14536,16 +14640,27 @@ document.")
 (define-public python-symengine
   (package
     (name "python-symengine")
-    (version "0.6.1")
+    (version "0.9.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "symengine" version))
        (sha256
-        (base32 "1kn1w4dp9mrsq6kzmhf4pjmx3wicxc3dw1mwa924q8g48g77lr4c"))))
+        (base32 "0qjgdbnb10kfk7jdhxnzfl8cpaps81k8vap7gm7q9ym3pgslazhg"))))
     (build-system python-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (if tests?
+                  ;; Run tests against installed package.
+                  (with-directory-excursion "/tmp"
+                    (invoke "nosetests" "-v" "symengine.tests"))
+                  (format #t "test suite not run~%")))))))
     (native-inputs
-     (list cmake python-cython))
+     (list cmake python-cython python-nose))
     (inputs
      (list symengine))
     (home-page "https://github.com/symengine/symengine.py")
@@ -18822,6 +18937,18 @@ from the header, as well as section details and data available.")
      through a Python API.")
     (license license:lgpl2.1+)))
 
+(define-public python-pycountry@20.7.3
+  (package
+    (inherit python-pycountry)
+    (name "python-pycountry")
+    (version "20.7.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pycountry" version))
+       (sha256
+        (base32 "0hnbabsmqimx5hqh0jbd2f64i8fhzhhbrvid57048hs5sd9ll241"))))))
+
 (define-public python-pycosat
   (package
     (name "python-pycosat")
@@ -19659,7 +19786,7 @@ while only declaring the test-specific fields.")
      Supported metrics are:
      @itemize @bullet
      @item raw metrics: SLOC, comment lines, blank lines, &c.
-     @item Cyclomatic Complexity (i.e.  McCabe’s Complexity)
+     @item Cyclomatic Complexity (i.e., McCabe’s Complexity)
      @item Halstead metrics (all of them)
      @item the Maintainability Index (a Visual Studio metric)
      @end itemize")
@@ -22652,13 +22779,13 @@ object-oriented library such as @code{scikit-learn}.")
 (define-public python-dill
   (package
     (name "python-dill")
-    (version "0.3.1.1")
+    (version "0.3.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "dill" version))
        (sha256
-        (base32 "1704g8z70d210ksgbccs2v545v9w0wc6lx15m296alb7jf0yzn22"))))
+        (base32 "11lc40x37cx2i8qqbc5qklifm65dyjl6prrqsycybvpixzrl2pnp"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -25034,7 +25161,7 @@ with features similar to the @command{wget} utility.")
             python-translation-finder
             python-watchdog))
     (native-inputs
-     (list qttools fontforge))
+     (list qttools-5 fontforge))
     (home-page "https://framagit.org/tyreunom/offlate")
     (synopsis "Offline translation interface for online translation tools")
     (description "Offlate offers a unified interface for different translation
@@ -28796,13 +28923,13 @@ development, testing, production]};
 (define-public python-pudb
   (package
     (name "python-pudb")
-    (version "2022.1.1")
+    (version "2022.1.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pudb" version))
               (sha256
                (base32
-                "0gq82hwnibby9qdyv7ri11phvg94nby4jb0w9h3jk79w89kdsfyv"))))
+                "03a7zalgdxfd2z2k6050ng087gwqgqis544n2083gdfxbf0ap0vb"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -29590,6 +29717,38 @@ sorted by priority and queues that are emptied in a round-robin
 fashion.")
     (license license:bsd-3)))
 
+(define-public python-posix-ipc
+  (package
+    (name "python-posix-ipc")
+    (version "1.0.5")
+    (source
+     (origin
+       ;; The source distributed on PyPI is prebuild.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/osvenskan/posix_ipc")
+             (commit (string-append "rel" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "17y4d0pmvp199c5hbs602ailhlh9f9zv89kmpbd8jhyl6rgaxsvs"))))
+    (build-system python-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'patch-cc-path
+                 (lambda _
+                   (substitute* "prober.py"
+                     (("cmd = .cc")
+                      (string-append "cmd = \"" #$(cc-for-target)))))))))
+    (native-inputs
+     (list python-unittest2))
+    (home-page "http://semanchuk.com/philip/posix_ipc/")
+    (synopsis "POSIX IPC primitives for Python")
+    (description
+     "This package provides POSIX IPC primitives - semaphores, shared memory and
+message queues for Python.")
+    (license license:bsd-3))) ; BSD like Copyright (c) 2018, Philip Semanchuk
+
 (define-public python-itemadapter
   (package
     (name "python-itemadapter")
@@ -30203,3 +30362,146 @@ versa.  Extended WKB/WKT are also supported.")
 binary diff utility.  It also provides two command-line tools, @code{bsdiff4}
 and @code{bspatch4}.")
     (license license:bsd-2)))
+
+(define-public python-biblib
+  (let ((upstream-version "0.1.0")
+        (commit "ab0e857b9198fe425ec9b02fcc293b5d9fd0c406")
+        (revision "1"))
+    (package
+      (name "python-biblib")
+      (version (git-version upstream-version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/aclements/biblib")
+               (commit commit)))
+         (sha256
+          (base32 "1ym1gwxys9gl5a7fjs6xh5z9w50pnq4z3rs6fx7kpv78hlrbjlip"))
+         (file-name (git-file-name name version))))
+      (build-system python-build-system)
+      (home-page "https://github.com/aclements/biblib")
+      (synopsis "BibTeX parsing and transformation library")
+      (description
+       "Biblib provides a simple, standalone Python 3 package for parsing
+BibTeX bibliographic databases, as well as algorithms for manipulating BibTeX
+entries in BibTeX-y ways.  Biblib's parser is derived directly from the WEB
+source code for BibTeX and hence (barring bugs in translation) should be fully
+compatible with BibTeX's own parser.")
+      ;; N.B. It seems the parser was translated from WEB by hand: this
+      ;; package does not contain any generated files.
+      (license license:expat))))
+
+(define-public python-i3ipc
+  (package
+    (name "python-i3ipc")
+    (version "2.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/altdesktop/i3ipc-python")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "13bzs9dcv27czpnnbgz7a037lm8h991c8gk0qzzk5mq5yak24715"))))
+    (build-system python-build-system)
+    (arguments (list #:tests? #f))      ;FIXME: some tests are unable to run
+    (propagated-inputs (list python-xlib))
+    (home-page "https://github.com/altdesktop/i3ipc-python")
+    (synopsis "Python library for controlling i3 and Sway")
+    (description
+     "This package provides a Python library for controlling the i3 and Sway
+window managers.")
+    (license license:bsd-3)))
+
+(define-public i3-autotiling
+  (package
+    (name "i3-autotiling")
+    (version "1.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/nwg-piotr/autotiling")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1hjlvg7095s322gb43r9g7mqlsy3pj13l827jpnbn5x0918rq9rr"))))
+    (build-system python-build-system)
+    (arguments (list #:tests? #f))      ;no tests
+    (native-inputs (list python-wheel))
+    (propagated-inputs (list python-i3ipc))
+    (home-page "https://github.com/nwg-piotr/autotiling")
+    (synopsis "Automatically tile windows in i3 and Sway")
+    (description
+     "Script for Sway and i3 to automatically switch the horizontal/vertical
+ window split orientation.")
+    (license license:gpl3)))
+
+(define-public python-cyclic
+  (package
+    (name "python-cyclic")
+    (version "1.0.0")
+    (source (origin
+              ;; Use git, as there are some test files missing from the PyPI
+              ;; release, see https://github.com/neurobin/cyclic/issues/1
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/neurobin/cyclic")
+                    ;; Release is not tagged on github, see
+                    ;; https://github.com/neurobin/cyclic/issues/2
+                    (commit "bf616c47ea49a43500ea55a1e6f4890323be0679")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0r8zzjdv70fpxssxps62rlgpii8fr9gh8gykdygqn6mkdnfjwgjc"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/neurobin/cyclic")
+    (synopsis "Handle cyclic relations")
+    (description "This package handles cyclic relations compared by value.")
+    (license license:bsd-3)))
+
+(define-public python-rcslice
+  (package
+    (name "python-rcslice")
+    (version "1.1.0")
+    (source (origin
+              ;; Use git, as there are some test files missing from the PyPI
+              ;; release, see https://github.com/neurobin/rcslice/issues/1
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/neurobin/rcslice")
+                    ;; Releases are not tagged on github, see
+                    ;; https://github.com/neurobin/rcslice/issues/2
+                    (commit "1e1ef42cd262db76b67ded430630d5b499790f42")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1lmhcgghh60kvdlx0cin1phhgfy9jivc6l0mb4ibnpa1x1md0zvv"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/neurobin/rcslice")
+    (synopsis "Slice a list of sliceables")
+    (description "This package provides Python module to slice a list of
+sliceables (1 indexed, both start and end index are inclusive).  Helps to
+slice file content line by line or column by column or a combination of
+both.")
+    (license license:bsd-3)))
+
+(define-public python-types-orjson
+  (package
+    (name "python-types-orjson")
+    (version "3.6.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "types-orjson" version))
+              (sha256
+               (base32
+                "0f66lf2qrl9d4vad42db3dmnzv89h4rr05r5zxx5qcl6kb3zr6ng"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/python/typeshed")
+    (synopsis "Typing stubs for orjson")
+    (description "This is a PEP 561 type stub package for the @code{orjson}
+package.  It can be used by type-checking tools like mypy, PyCharm, pytype
+etc. to check code that uses @code{orjson}.")
+    (license license:asl2.0)))