diff options
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 299 |
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 |