summaryrefslogtreecommitdiff
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.scm299
1 files changed, 212 insertions, 87 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6b7b3c9c01..e24cd2288f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -52,7 +52,7 @@
;;; Copyright © 2018-2025 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019, 2021, 2023 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2018-2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl>
@@ -165,6 +165,7 @@
;;; Copyright © 2025 Nguyễn Gia Phong <mcsinyx@disroot.org>
;;; Copyright © 2025, Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2025 Jake Forster <jakecameron.forster@gmail.com>
+;;; Copyright © 2025 Luis Felipe López Acevedo <sirgazil@zoho.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -299,6 +300,7 @@
#:use-module (guix packages)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
@@ -457,7 +459,7 @@ compare against a vast section of other version formats.")
(("^minimum-version =.*") "")))))))
(propagated-inputs (list python-numpy))
(native-inputs
- (list cmake pybind11 python-pytest python-scikit-build-core))
+ (list cmake-minimal pybind11 python-pytest python-scikit-build-core))
(home-page "https://github.com/scikit-hep/awkward-1.0")
(synopsis "CPU kernels and compiled extensions for Awkward Array")
(description "Awkward CPP provides precompiled routines for the awkward
@@ -553,6 +555,34 @@ line drawing algorithm}.")
understanding ECMA script.")
(license license:expat)))
+(define-public python-copydetect
+ (package
+ (name "python-copydetect")
+ (version "0.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/blingenf/copydetect")
+ (commit version)))
+ (sha256
+ (base32 "0hp9994bbnzp79xxprgwsbgc0w06sb4n82nghl90w1z9zbvwn6gz"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-jinja2
+ python-matplotlib
+ python-numpy
+ python-pygments
+ python-tqdm))
+ (native-inputs (list python-setuptools
+ python-pytest
+ python-wheel))
+ (home-page "https://github.com/blingenf/copydetect")
+ (synopsis "Code plagiarism detection tool")
+ (description "Copydetect is a tool to detect likely instances of plagiarism
+based on the winnowing algorithm. It takes a list of directories as input and
+generates an HTML report displaying copied slices as output.")
+ (license license:expat)))
+
(define-public python-couleur
(package
(name "python-couleur")
@@ -1124,6 +1154,59 @@ not require any changes to the original source code, such as marking strings
for translation.")
(license license:expat)))
+(define-public python-vendetect
+ (package
+ (name "python-vendetect")
+ (version "0.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "vendetect" version))
+ (sha256
+ (base32 "0hi13sbgr8y66mih2xyzczjfff4lwymkn9cw5215ms2nn6qq9rhi"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-copydetect python-rich))
+ (native-inputs (list python-hatchling python-pytest))
+ (home-page "https://github.com/trailofbits/vendetect")
+ (synopsis "Detect vendored and copy-pasted code")
+ (description
+ "Vendetect helps identify copied or vendored code between repositories,
+making it easier to detect when code has been copied with or without
+attribution. It uses similarity detection algorithms to compare code files
+and highlight matching sections.")
+ (license license:agpl3+)))
+
+(define-public python-wheel-filename
+ (package
+ (name "python-wheel-filename")
+ (version "1.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "wheel_filename" version))
+ (sha256
+ (base32 "1zcqq8mydjjrk8x5xlm53bavs51jm40nz42a7500pd6bbm31r2c7"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-hatchling python-pytest python-pytest-cov))
+ (home-page "https://github.com/wheelodex/wheel-filename")
+ (synopsis "Parse wheel filenames")
+ (description
+ "This software allows you to verify
+@url{https://packaging.python.org/en/latest/specifications/binary-distribution-format/, wheel}
+filenames and parse them into their component fields.
+
+This package adheres strictly to the standard, with the following
+exceptions:
+
+@itemize @bullet
+@item
+Version components may be any sequence of the relevant set of
+characters; they are not verified for PEP 440 compliance.
+@item
+The @file{.whl} file extension is matched case-insensitively.
+@end itemize")
+ (license license:expat)))
+
(define-public python-xmldiff
(package
(name "python-xmldiff")
@@ -1933,7 +2016,7 @@ HoloViews, and Datashader.")
(define-public python-colored
(package
(name "python-colored")
- (version "1.4.4")
+ (version "2.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1942,10 +2025,17 @@ HoloViews, and Datashader.")
(file-name (git-file-name name version))
(sha256
(base32
- "196ins0m7f90xz5dw764dlx060ziqbcydqzzq40b4ir5858baf3r"))))
+ "00332xdjw5fcj5wx848693355nvlgcf8qmpwkvz3rngfg1q5bxa6"))))
(build-system pyproject-build-system)
- (arguments (list #:tests? #false)) ;the tests are not run automatically
- (native-inputs (list python-setuptools python-wheel))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; Tests expect ANSI escape codes for colors.
+ (setenv "FORCE_COLOR" "1"))))))
+ (native-inputs (list python-flit-core python-pytest))
(home-page "https://gitlab.com/dslackw/colored")
(synopsis "Simple library for color and formatting to terminal")
(description "This is a very simple Python library for color and
@@ -6762,32 +6852,31 @@ versions, process requirements files and generate AUTHORS and ChangeLog file
from git information.
")))
+(define-public python-pbr-next
+ (hidden-package
+ (package/inherit python-pbr
+ (version "6.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pbr" version))
+ (sha256
+ (base32 "0szp9dy7ksvpqddfzzca2a4assag8whmgxyhk7njxsw9d7775slk")))))))
+
(define-public python-pyrsistent
(package
(name "python-pyrsistent")
- (version "0.16.0")
+ (version "0.20.0")
(home-page "https://github.com/tobgu/pyrsistent")
(source (origin
(method url-fetch)
(uri (pypi-uri "pyrsistent" version))
(sha256
(base32
- "1lrsjgblnapfimd0alsi1as5nz2lfqv97131l7d6anbjzq2rjri8"))))
- (build-system python-build-system)
- (arguments
- '(#:phases (modify-phases %standard-phases
- ;; The package works fine with newer Pytest and Hypothesis, but
- ;; has pinned older versions to stay compatible with Python 2.
- (add-before 'check 'loosen-pytest-requirement
- (lambda _
- (substitute* "setup.py"
- (("pytest<5") "pytest")
- (("hypothesis<5") "hypothesis"))
- #t)))))
+ "1935ybwdxszmzlzshwkc7m7swm1js46ls246j1knqndbca7zfj2c"))))
+ (build-system pyproject-build-system)
(native-inputs
- (list python-hypothesis python-pytest python-pytest-runner))
- (propagated-inputs
- (list python-six))
+ (list python-pytest python-setuptools python-wheel))
(synopsis "Persistent data structures for Python")
(description
"Pyrsistent is a number of persistent collections (by some referred to as
@@ -7957,16 +8046,15 @@ Mako, and Tornado.")
(define-public python-pystache
(package
(name "python-pystache")
- (version "0.6.0")
+ (version "0.6.8")
(source (origin
(method url-fetch)
(uri (pypi-uri "pystache" version))
(sha256
(base32
- "03a73ppf5vxnsk6az5ackvc0hp6xqv2f4hi1s5c4nk4s2jr95gwk"))))
- (build-system python-build-system)
- (arguments
- '(#:tests? #f)) ; FIXME: Python 3 tests are failing.
+ "0b67fmq0wmfkgcr7qqc44vvpvh8zkdk0rh87kccds9jdda7521rp"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools python-wheel))
(home-page "http://defunkt.io/pystache/")
(synopsis "Python logic-less template engine")
(description
@@ -7981,19 +8069,19 @@ logic-free templating system Mustache.")
(source
(origin
(method git-fetch)
- (uri
- (git-reference
- (url "https://github.com/captn3m0/pystitcher")
- (commit
- (string-append "v" version))))
- (file-name
- (git-file-name name version))
+ (uri (git-reference
+ (url "https://github.com/captn3m0/pystitcher")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32 "03yrzqhcsjdj5zprrk3bh5bbyqfy3vfhxra9974vmkir3m121394"))))
- (build-system python-build-system)
- (inputs
- (list python-html5lib python-importlib-metadata python-markdown
- python-pypdf3 python-validators))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools python-wheel))
+ (inputs (list python-html5lib
+ python-importlib-metadata
+ python-markdown
+ python-pypdf3
+ python-validators))
(home-page "https://github.com/captn3m0/pystitcher")
(synopsis "Declaratively stitch together a PDF file from multiple sources")
(description
@@ -13520,15 +13608,18 @@ application and control it as if a human were typing commands.")
(define-public python-sexpdata
(package
(name "python-sexpdata")
- (version "0.0.3")
+ (version "1.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sexpdata" version))
(sha256
(base32
- "1q4lsjyzzqrdv64l0pv4ij9nd8gqhvxqcrpxc2xpxs652sk2gj0s"))))
- (build-system python-build-system)
+ "02f1v96wzqf3jgwbp1fvankszkzvyff53fa4ks7nyxpnc41ppdlj"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:tests? #f)) ; no tests
+ (native-inputs (list python-setuptools python-wheel))
(home-page "https://github.com/jd-boyd/sexpdata")
(synopsis "S-expression parser for Python")
(description
@@ -17642,15 +17733,15 @@ printing of sub-tables by specifying a row range.")
(define-public python-rtf-tokenize
(package
(name "python-rtf-tokenize")
- (version "1.0.0")
+ (version "1.0.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "rtf_tokenize" version))
(sha256
(base32
- "026njb9iwznycda83bln3gfivcnzdz6vy8y86xvbsy84s28g6gaw"))))
- (build-system python-build-system)
- (native-inputs (list python-pytest))
+ "1ljs0dcg2p1iad4zrxgn1pbrrcjcrswhjxrbprhdxd822n0al84h"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools python-wheel))
(home-page "https://github.com/benoit-pierre/rtf_tokenize")
(synopsis "Simple RTF tokenizer")
(description "This package is a simple RTF tokenizer.")
@@ -18717,9 +18808,6 @@ libmagic.")))
(add-before 'check 'pre-check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
- ;; Without this we get this error: type object 'GreenSocket'
- ;; has no attribute 'sendmsg'.
- (setenv "EVENTLET_NO_GREENDNS" "YES")
(setenv "PYDEVD_USE_CYTHON" "YES"))))
(add-after 'install 'install-attach-binary
(lambda _
@@ -26900,25 +26988,17 @@ in pure Python.")
(define-public python-sacn
(package
(name "python-sacn")
- (version "1.10.0")
+ (version "1.11.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sacn" version))
(sha256
- (base32 "02pqfwwx83lgb8nj9p0s6vyi1s7wjgbx9k0bzlyz8qapszzdsr37"))))
- (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")))))))
- (native-inputs (list python-pytest))
+ (base32 "1sp0jmrjsd9g62kgi177fw4hi56h21s2p9khia3idmixgz53k2ql"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools python-wheel))
(home-page "https://github.com/Hundemeier/sacn")
- (synopsis
- "Python library for sending and receiving sACN data")
+ (synopsis "Python library for sending and receiving sACN data")
(description
"This package provides a Python library for sending and receiving
sACN (Streaming Architecture for Control Networks) data, a standard
@@ -26929,17 +27009,31 @@ in pure Python.")
(define-public python-bagit
(package
(name "python-bagit")
- (version "1.7.0")
+ (version "1.9.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "bagit" version))
+ (method git-fetch) ; no tests in PyPI
+ (uri (git-reference
+ (url "https://github.com/LibraryOfCongress/bagit-python")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1m6y04qmig0b5hzb35lnaw3d2yfydb7alyr1579yblvgs3da6j7j"))))
- (build-system python-build-system)
+ "12qfqha70vhc8pclq0kzv7xk0i44ramnlkphybv7419vdl4aay40"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'pretend-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION"
+ #$(package-version this-package))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv" "test.py")))))))
(native-inputs
- (list python-setuptools-scm python-coverage python-mock))
+ (list python-pytest python-setuptools python-setuptools-scm python-wheel))
(home-page "https://libraryofcongress.github.io/bagit-python/")
(synopsis "Create and validate BagIt packages")
(description "Bagit is a Python library and command line utility for working
@@ -29397,23 +29491,28 @@ user-space file systems in Python.")
("catch" ,catch2-1)
("eigen" ,eigen)))
(arguments
- `(#:configure-flags
- (list (string-append "-DCATCH_INCLUDE_DIR="
- (assoc-ref %build-inputs "catch")
- "/include/catch"))
-
- #:phases (modify-phases %standard-phases
- (add-after 'install 'install-python
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (with-directory-excursion "../source"
- (setenv "PYBIND11_USE_CMAKE" "yes")
- (invoke "python" "setup.py" "install"
- "--single-version-externally-managed"
- "--root=/"
- (string-append "--prefix=" out)))))))
-
- #:test-target "check"))
+ (list
+ #:configure-flags
+ #~(list (string-append "-DCATCH_INCLUDE_DIR="
+ (assoc-ref %build-inputs "catch")
+ "/include/catch"))
+ #:modules '((guix build cmake-build-system)
+ ((guix build gnu-build-system) #:prefix gnu:)
+ (guix build utils))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:rest args)
+ (apply (assoc-ref gnu:%standard-phases 'check) args)))
+ (add-after 'install 'install-python
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (with-directory-excursion "../source"
+ (setenv "PYBIND11_USE_CMAKE" "yes")
+ (invoke "python" "setup.py" "install"
+ "--single-version-externally-managed"
+ "--root=/"
+ (string-append "--prefix=" out)))))))))
(home-page "https://github.com/pybind/pybind11/")
(synopsis "Seamless operability between C++11 and Python")
(description
@@ -31682,7 +31781,7 @@ Its algorithms are based on the kakasi library, which is written in C.")
(list pkg-config
python-meson-python
meson
- ninja
+ ninja/pinned
patchelf
python-setuptools
python-sphinx
@@ -35438,7 +35537,7 @@ and frame grabber interface.")
(list cmake-minimal
gfortran
git-minimal/pinned ;for tests
- ninja
+ ninja/pinned
python-coverage
python-cython
python-hatchling
@@ -40083,7 +40182,33 @@ file formats.
Python XMP Toolkit is wrapping Exempi (using ctypes), a C/C++ XMP library
based on Adobe XMP Toolkit, ensuring that future updates to the XMP standard
are easily incorporated into the library with a minimum amount of work.")
- (license license:bsd-3)))
+ (license license:bsd-3)))
+
+(define-public pythoncapi-compat
+ ;; No release nor tags: use the latest commit.
+ (let ((commit "b541b98df1e3e5aabb5def27422a75c876f5a88a")
+ (revision "0"))
+ (package
+ (name "pythoncapi-compat")
+ (version "0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/python/pythoncapi-compat")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "09935gybfj2wqbf6jmn61m21qnx3za8xjv375n3daq8l3cs6dmmx"))))
+ (build-system copy-build-system)
+ (arguments (list #:install-plan
+ #~'(("pythoncapi_compat.h" "include/"))))
+ (home-page "https://github.com/python/pythoncapi-compat")
+ (synopsis "Python C API compatibility")
+ (description "The pythoncapi-compat project can be used to write a C or
+C++ extension supporting a wide range of Python versions with a single code
+base, via the @file{pythoncapi_compat.h} header file.")
+ (license license:bsd-0))))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances