summary refs log tree commit diff
path: root/gnu/packages/python-compression.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-compression.scm')
-rw-r--r--gnu/packages/python-compression.scm166
1 files changed, 141 insertions, 25 deletions
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 1426ad9f09..c483d68b5f 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -1,9 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2019, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018-2020, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
@@ -31,6 +31,7 @@
   #:use-module (guix gexp)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system pyproject)
   #:use-module (gnu packages)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages compression)
@@ -47,21 +48,20 @@
 (define-public python-multivolumefile
   (package
     (name "python-multivolumefile")
-    (version "0.2.2")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "multivolumefile" version))
        (sha256
         (base32
-         "0j46wab4b09s3favjzp3zs1cn2sn8pr7qyngs5wn31hpqqxbbz76"))))
-    (build-system python-build-system)
+         "1mh9sz50s1p8ik83a455pqd57syprad7xhfmk28yb5mwmw58sr50"))))
+    (build-system pyproject-build-system)
     (native-inputs
-     (list python-pep517
-           python-setuptools
-           python-setuptools-scm
+     (list python-setuptools-scm
            python-coverage
            python-coveralls
+           python-hypothesis
            python-pyannotate
            python-pytest
            python-pytest-cov))
@@ -72,6 +72,36 @@ file-object abstraction, making it possible to use multiple files as if they
 were a single file.")
     (license license:lgpl2.1+)))
 
+(define-public python-pybcj
+  (package
+    (name "python-pybcj")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pybcj" version))
+              (sha256
+               (base32
+                "1hvm3c3mb20z25kmbzyyn6pr5inx50z0ignl8b0bggxaik82ws4b"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-importlib-metadata))
+    (native-inputs
+     (list python-coverage
+           python-hypothesis
+           python-pytest
+           python-pytest-cov
+           python-setuptools-scm))
+    (home-page "https://codeberg.org/miurahr/pybcj")
+    (synopsis "BCJ filter library")
+    (description "In data compression, BCJ, short for Branch-Call-Jump, refers
+to a technique that improves the compression of machine code of executable
+binaries by replacing relative branch addresses with absolute ones. This
+allows a LZMA compressor to identify duplicate targets and archive higher
+compression rate.  BCJ is used in the 7-zip compression utility as the default
+filter for executable binaries.
+
+pybcj provides Python bindings to a BCJ implementation in C.")
+    (license license:lgpl2.1+)))
+
 (define-public python-bcj-cffi
   (package
     (name "python-bcj-cffi")
@@ -95,6 +125,59 @@ were a single file.")
 Jump conversion filter by CFFI for Python.")
     (license license:lgpl2.1+)))
 
+(define-public python-brotlicffi
+  (package
+    (name "python-brotlicffi")
+    (version "1.0.9.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "brotlicffi" version))
+              (sha256
+               (base32
+                "15kxgdiqcg0cm6h5xq3vkbhw7674673hcx3n2yicd3wx29l8l90c"))
+              (snippet
+               #~(begin
+                   (use-modules (guix build utils))
+                   (delete-file-recursively "libbrotli")))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'use-shared-brotli
+             (lambda _
+               (setenv "USE_SHARED_BROTLI" "1"))))))
+    (propagated-inputs (list python-cffi))
+    (inputs (list brotli))
+    (home-page "https://github.com/python-hyper/brotlicffi")
+    (synopsis "Python CFFI bindings to the Brotli library")
+    (description "This package provides Python CFFI bindings to the Brotli
+library.")
+    (license license:expat)))
+
+(define-public python-inflate64
+  (package
+    (name "python-inflate64")
+    (version "0.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "inflate64" version))
+              (sha256
+               (base32
+                "0767j35gkwaykl1iq9qn8rc25j1ggv56x3d1vzjpk89bzpzdhbdm"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-importlib-metadata))
+    (native-inputs
+     (list python-pyannotate
+           python-pytest
+           python-setuptools-scm))
+    (home-page "https://pypi.org/project/inflate64/")
+    (synopsis "deflate64 compression/decompression library")
+    (description "The @code{inflate64} package provides @code{Deflater} and
+@code{Inflater} classes to compress and decompress with the Enhanced Deflate
+compression algorithm.")
+    (license license:lgpl2.1+)))
+
 (define-public python-isal
   (package
     (name "python-isal")
@@ -124,24 +207,50 @@ Jump conversion filter by CFFI for Python.")
 and decompression by implementing Python bindings for the ISA-L library.")
     (license license:expat)))
 
+(define-public python-pyppmd
+  (package
+    (name "python-pyppmd")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pyppmd" version))
+              (sha256
+               (base32
+                "03w4x26mar0ha73c3v39psn1i0k6xrzwmaxfsxysic73jz99np07"))))
+    (build-system pyproject-build-system)
+    (native-inputs
+     (list python-coverage
+           python-hypothesis
+           python-pytest
+           python-pytest-benchmark
+           python-pytest-cov
+           python-pytest-timeout
+           python-setuptools-scm))
+    (home-page "https://github.com/miurahr/pyppmd")
+    (synopsis "PPMd compression/decompression library")
+    (description "Pyppmd provides classes and functions for compressing and
+decompressing text data, using the @dfn{Prediction by partial matching} (PPM)
+compression algorithm variation H and I.2.  It provides an API similar to
+Python's zlib/bz2/lzma modules.")
+    (license license:lgpl2.1+)))
+
 (define-public python-ppmd-cffi
   (package
     (name "python-ppmd-cffi")
-    (version "0.3.3")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ppmd-cffi" version))
        (sha256
         (base32
-         "01wcd9l6pp6hivdmd275qh9dhcwficjqfl67hxix5n07vvq7jzz0"))))
+         "0vprpl29fkflqx0m6anfpx7q7i4cw0d0qxcdm91k4pl82dcad81g"))))
     (build-system python-build-system)
     (propagated-inputs
      (list python-cffi))
     (native-inputs
-     (list python-setuptools
+     (list python-hypothesis
            python-setuptools-scm
-           python-pep517
            python-coverage
            python-pytest
            python-pytest-cov))
@@ -155,23 +264,27 @@ several possible methods.")
 (define-public python-py7zr
   (package
     (name "python-py7zr")
-    (version "0.14.1")
+    (version "0.20.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "py7zr" version))
        (sha256
         (base32
-         "1zmgp7yax328fj8yj8pj4l7yh78hp727j6wk12vfi6nmi82wl32i"))))
-    (build-system python-build-system)
+         "0lwniinfr3rb10n0c203a09vz06vxnnj637yqn8ipdlml89gj7kr"))))
+    (build-system pyproject-build-system)
     (propagated-inputs
-     (list python-bcj-cffi
+     (list python-brotli
+           python-brotlicffi
+           python-importlib-metadata
+           python-inflate64
            python-multivolumefile
-           python-ppmd-cffi
-           python-pycryptodome
+           python-psutil
+           python-pybcj
+           python-pycryptodomex
+           python-pyppmd
            python-pyzstd
-           python-texttable
-           python-zstandard))
+           python-texttable))
     (native-inputs
      (list python-setuptools
            python-setuptools-scm
@@ -429,14 +542,16 @@ wrapper.  It provides a backport of the @code{Path} object.")
 (define-public python-zstandard
   (package
     (name "python-zstandard")
-    (version "0.15.2")
+    (version "0.19.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "zstandard" version))
        (sha256
-        (base32 "0by9z7nxnkzhmza075q6q91rs8lnpf91129k8ppv7kymbwshipjj"))))
+        (base32 "0qvqhs121spk7yc1l20samflxx47waxv3xm55ksxpn1djk6jzl9i"))))
     (build-system python-build-system)
+    (propagated-inputs
+     (list python-cffi))
     (native-inputs
      (list python-hypothesis))
     (home-page "https://github.com/indygreg/python-zstandard")
@@ -449,17 +564,18 @@ provided.")
 (define-public python-pyzstd
   (package
     (name "python-pyzstd")
-    (version "0.14.3")
+    (version "0.15.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyzstd" version))
        (sha256
         (base32
-         "1d3mngs45w2p490vrq5ymd2wz4lp15phmks1ilcx4k7amgibml3d"))))
+         "0wkli2i4my79l43b996bdga0fac8s8nfd1zjyzl46lwmsfsxlkmc"))))
     (build-system python-build-system)
     (home-page "https://github.com/animalize/pyzstd")
     (synopsis "Zstandard bindings for Python")
-    (description "This package provides Python bindings to the Zstandard (zstd)
+    (description "This package provides Python bindings to the
+Zstandard (zstd)
 compression library.  The API is similar to Python's bz2/lzma/zlib module.")
     (license license:bsd-3)))