diff options
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 443 |
1 files changed, 317 insertions, 126 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index aad89d251e..2c1cf5bd03 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -150,6 +150,7 @@ ;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr> ;;; Copyright © 2024 Ian Eure <ian@retrospec.tv> ;;; Copyright © 2024 Adriel Dumas--Jondeau <leirda@disroot.org> +;;; Copyright © 2024 Navid Afkhami <navid.afkhami@mdc-berlin.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -193,6 +194,7 @@ #:use-module (gnu packages djvu) #:use-module (gnu packages docker) #:use-module (gnu packages documentation) + #:use-module (gnu packages elf) #:use-module (gnu packages enchant) #:use-module (gnu packages file) #:use-module (gnu packages fonts) @@ -230,6 +232,7 @@ #:use-module (gnu packages man) #:use-module (gnu packages markup) #:use-module (gnu packages maths) + #:use-module (gnu packages messaging) #:use-module (gnu packages monitoring) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) @@ -282,6 +285,7 @@ #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix download) @@ -292,6 +296,51 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26)) +(define-public python-apprise + (package + (name "python-apprise") + (version "1.7.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "apprise" version)) + (sha256 + (base32 "0wvs1k71fipn617y9wsdcvwcgg2pd0nvriarlwl4438la4086ppg")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-certifi + python-click + python-dataclasses + python-markdown + python-pyyaml + python-requests + python-requests-oauthlib)) + (native-inputs (list python-babel + python-coverage + python-cryptography + python-flake8 + python-paho-mqtt + python-pytest + python-pytest-cov + python-pytest-mock + python-pytest-xdist + python-wheel)) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (delete-file "test/test_plugin_macosx.py") + (invoke "pytest"))))))) + (home-page "https://github.com/caronc/apprise") + (synopsis + "Push notification Python library that works with many platforms") + (description + "Apprise is a Python library that allows sending push notifications to a broad +range of notification services, such as Telegram, Discord, Slack, Amazon SNS, +Gotify, etc.") + (license license:bsd-2))) + (define-public python-xmldiff (package (name "python-xmldiff") @@ -1944,7 +1993,7 @@ Python library and command line interface.") (define-public python-glymur (package (name "python-glymur") - (version "0.12.8") + (version "0.12.9") (source (origin (method git-fetch) ; no tests data in PyPi package @@ -1953,10 +2002,12 @@ Python library and command line interface.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0mfyn9j7h13242d41vg12acw55yl2mv6lmgi265hfp11k7g52b6n")))) + (base32 "0awyav7071nn9z2g4mmpg33y0y0nfandfr6nr3j5vyb8hnprcmns")))) (build-system pyproject-build-system) (arguments (list + #:test-flags + #~(list "-n" "auto") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-library-locations @@ -1982,7 +2033,9 @@ Python library and command line interface.") ;; which is patched above. (delete-file "tests/test_config.py")))))) (native-inputs - (list python-pytest python-scikit-image)) + (list python-pytest + python-pytest-xdist + python-scikit-image)) (inputs (list openjpeg ; glymur/lib/openjp2.py libtiff)) ; glymur/lib/tiff.py @@ -5786,14 +5839,14 @@ provides Python-specific tags that represent an arbitrary Python object.") (define-public python-vine (package (name "python-vine") - (version "5.0.0") + (version "5.1.0") (source (origin (method url-fetch) (uri (pypi-uri "vine" version)) (sha256 - (base32 "0zk3pm0g7s4qfn0gk28lfmsyplvisaxi6826cgpq5njkm4j1cfvx")))) - (build-system python-build-system) + (base32 "1q31krwxdvwawdn1kfqmpplix31d4jhs0qng26908hawsf0yjqlb")))) + (build-system pyproject-build-system) (native-inputs (list python-pytest python-case)) (home-page "https://github.com/celery/vine") @@ -7642,6 +7695,71 @@ validation and serialization.") Interfaces} via data models provided in the JSON format.") (license license:expat))) +(define-public python-pydantic-settings + (package + (name "python-pydantic-settings") + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pydantic_settings" version)) + (sha256 + (base32 "1vf58f398ngk6wpf0jn51ghw65mjs3m03yn06h25jlsmx6jzdf80")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "-k" (string-append + ;; Disable tests requiring python-ruff. + "not test_docs_examples[docs/index.md:24-83]" + " and not test_docs_examples[docs/index.md:113-137]" + " and not test_docs_examples[docs/index.md:148-156]" + " and not test_docs_examples[docs/index.md:173-183]" + " and not test_docs_examples[docs/index.md:193-201]" + " and not test_docs_examples[docs/index.md:212-243]" + " and not test_docs_examples[docs/index.md:286-317]" + " and not test_docs_examples[docs/index.md:331-372]" + " and not test_docs_examples[docs/index.md:430-439]" + " and not test_docs_examples[docs/index.md:453-459]" + " and not test_docs_examples[docs/index.md:514-522]" + " and not test_docs_examples[docs/index.md:547-549]" + " and not test_docs_examples[docs/index.md:553-585]" + " and not test_docs_examples[docs/index.md:620-645]" + " and not test_docs_examples[docs/index.md:654-732]" + " and not test_docs_examples[docs/index.md:738-772]")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "pyproject.toml" + ;; hatchling.build failed on this line with error: + ;; ValueError: Unknown classifier in field + ;; `project.classifiers`: Framework :: Pydantic :: 2 + (("'Framework :: Pydantic :: 2',") "") + ;; python-dotenv>=0.21.0 + ((">=0.21.0") ">=0.20.0")))) + (add-before 'check 'set-home + (lambda _ + ;; FileNotFoundError: [Errno 2] No such file or directory: + ;; '/homeless-shelter/ + (setenv "HOME" "/tmp")))))) + (propagated-inputs + (list python-dotenv + python-pydantic-2 + python-pyaml + python-tomli)) + (native-inputs + (list python-hatchling + python-pytest + python-pytest-examples + python-pytest-mock)) + (home-page "https://docs.pydantic.dev/latest/usage/pydantic_settings/") + (synopsis "Settings management using Pydantic") + (description + "Pydantic Settings provides optional Pydantic features for loading a +settings or config class from environment variables or secrets files.") + (license license:expat))) + (define-public python-pydoc-markdown (package (name "python-pydoc-markdown") @@ -13890,6 +14008,24 @@ file (e.g. @file{PKG-INFO}).") (define-public python-pep621 (deprecated-package "python-pep621" python-pyproject-metadata)) +(define-public python-meson-python + (package + (name "python-meson-python") + (version "0.15.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "meson_python" version)) + (sha256 + (base32 "0vyjhjabvm41hqijifk33idbdl62i76kfyf884f9rs29rpp77nzx")))) + (build-system meson-build-system) + (propagated-inputs (list python-pyproject-metadata python-tomli)) + (home-page "https://github.com/mesonbuild/meson-python") + (synopsis "Meson Python build backend (PEP 517)") + (description "This package provides a PEP 517 build backend that makes +use of the Meson build system.") + (license license:expat))) + (define-public python-pyflakes (package (name "python-pyflakes") @@ -17496,6 +17632,29 @@ managers. It also contains additional features that are not part of the standard library.") (license license:psfl))) +(define-public python-contexttimer + (package + (name "python-contexttimer") + (version "0.3.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/brouberol/contexttimer") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00a9h06a1wj66935n863qlk4jpl9gvdvzkkhl8xmgqwdkwv0js54")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-decorator python-unittest2)) + (native-inputs (list python-mock)) + (home-page "https://github.com/brouberol/contexttimer") + (synopsis "Timer as a context manager") + (description + "This package offers utilities to measure code block or function +execution time.") + (license license:gpl3))) + (define-public python-texttable (package (name "python-texttable") @@ -18909,30 +19068,27 @@ applications.") (define-public python-kombu (package (name "python-kombu") - (version "5.2.4") + (version "5.3.6") (source (origin (method url-fetch) (uri (pypi-uri "kombu" version)) (sha256 - (base32 "044ng79gj04668kf5fmy7fjkw8302xyapskkn65ym52zfbpf7kip")))) - (build-system python-build-system) + (base32 "1n9i4hj1h3aivgy82l7accyjh1rqn20am00152l5syhl19bmpnpk")))) + (build-system pyproject-build-system) (arguments - (list - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv" - ;; The transport tests attempt to pass messages to - ;; many different databases. - "--ignore" "t/unit/transport"))))))) + (list #:test-flags + ;; TODO: Package azure-identity (required for this file) + #~(list "--ignore" "t/unit/transport/test_azurestoragequeues.py"))) (native-inputs - (list python-case python-pyro4 python-pytest-sugar - python-pytest python-pytz)) + (list python-botocore + python-case + python-pyro4 + python-pytest + python-pytest-sugar + python-tzdata)) (propagated-inputs - (list python-amqp python-cached-property python-vine)) + (list python-amqp python-typing-extensions python-vine)) (home-page "https://kombu.readthedocs.io") (synopsis "Message passing library for Python") (description "The aim of Kombu is to make messaging in Python as easy as @@ -18946,25 +19102,21 @@ RabbitMQ messaging server is the most popular implementation.") (define-public python-billiard (package (name "python-billiard") - (version "3.6.4.0") + (version "4.2.0") (source (origin (method url-fetch) (uri (pypi-uri "billiard" version)) (sha256 - (base32 "0ismj2p8c66ykpss94rs0bfra5agxxmljz8r3gaq79r8valfb799")))) - (build-system python-build-system) + (base32 "0b2svqx81511m0k2swjkybcx69f541dzd4rgfdxa2ni7rf232g4s")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'remove-win-files - (lambda _ - (for-each delete-file-recursively - ;; test_multiprocessing seem to be written in Python2. - '("t/integration/tests/test_multiprocessing.py" - "t/unit/test_win32.py" - "billiard/popen_spawn_win32.py" - "billiard/_win.py"))))))) + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'remove-win-files + (lambda _ + (for-each delete-file-recursively + '("billiard/popen_spawn_win32.py" + "billiard/_win.py"))))))) (native-inputs (list python-case python-psutil python-pytest)) (home-page "https://github.com/celery/billiard") @@ -18979,34 +19131,30 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.") (define-public python-celery (package (name "python-celery") - (version "5.2.6") + (version "5.3.6") (source (origin (method url-fetch) (uri (pypi-uri "celery" version)) (sha256 - (base32 "109lcqarrbmh95sk1dm4yxayq1h3i27f4w23ndk64mqgyfnqqffi")))) - (build-system python-build-system) + (base32 "1fdacw13ij94s59l6lspl09iv6fc8h1p6399jz1h00kwfcfwf347")))) + (build-system pyproject-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "requirements/default.txt" - (("pytz.*") - "pytz\n")))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "python" "-m" "pytest" "t" - "--ignore" "t/integration" ;hangs tests - ;; The MongoDB backend test appears to expect an older - ;; version of MongoDB which provided its own bson - ;; module, fails with " AttributeError: module 'bson' - ;; has no attribute 'encode'". - "--ignore" "t/unit/backends/test_mongodb.py" - ;; AssertionErrors - "-k" "not test_check_privileges_no_fchown "))))))) + (list + ;; The MongoDB backend test appears to expect an older + ;; version of MongoDB which provided its own bson + ;; module, fails with " AttributeError: module 'bson' + ;; has no attribute 'encode'". + #:test-flags #~(list "--ignore" "t/unit/backends/test_mongodb.py" + ;; AssertionError. + "-k" "not test_check_privileges_no_fchown") + #:phases #~(modify-phases %standard-phases + ;; Celery requires tzdata >= 2022.7, we have 2022.1. + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "requirements/default.txt" + (("tzdata.*") + "tzdata\n"))))))) (native-inputs (list python-case python-dnspython @@ -19016,6 +19164,7 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.") python-msgpack python-pytest ;for pytest-subtests python-pytest-celery + python-pytest-click python-pytest-subtests python-pytest-timeout python-toml)) @@ -19026,7 +19175,7 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.") python-click-plugins python-click-repl python-kombu - python-pytz + python-tzdata python-vine)) (home-page "https://celeryproject.org") (synopsis "Distributed Task Queue") @@ -27100,33 +27249,39 @@ codecs for use in data storage and communication applications.") (define-public python-zarr (package (name "python-zarr") - (version "2.13.3") + (version "2.17.1") (source (origin (method url-fetch) (uri (pypi-uri "zarr" version)) (sha256 (base32 - "135ls2q7zc98pk61a5cnh88j4hnnavcwasrswdjqyqvcc68b096v")))) - (build-system python-build-system) + "0qb2wj60i7v1c95k6m0pskx20ss6dxrj3ym0d7z4c98jfah3ljsn")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-service-tests - (lambda _ - (setenv "ZARR_TEST_ABS" "0") - (setenv "ZARR_TEST_MONGO" "0") - (setenv "ZARR_TEST_REDIS" "0") - #t)) - (replace 'check - (lambda _ - (invoke "pytest" "-vv" "-k" "not lmdb") - #t))))) + (list + #:test-flags + #~(list "-n" "auto") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-service-tests + (lambda _ + (setenv "ZARR_TEST_ABS" "0") + (setenv "ZARR_TEST_MONGO" "0") + (setenv "ZARR_TEST_REDIS" "0")))))) (propagated-inputs - (list python-asciitree python-fasteners python-numcodecs + (list python-asciitree + python-fasteners + python-numcodecs python-numpy)) (native-inputs - (list python-pytest python-setuptools-scm)) + (list python-fsspec + python-pytest + python-h5py + python-pytest-doctestplus + python-pytest-timeout + python-pytest-xdist + python-setuptools-scm)) (home-page "https://github.com/zarr-developers/zarr-python") (synopsis "Chunked, compressed, N-dimensional arrays for Python") (description @@ -27525,50 +27680,6 @@ data.") they use the same path.") (license license:bsd-2))) -(define-public python-blosc - (package - (name "python-blosc") - (version "1.11.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "blosc" version)) - (sha256 - (base32 - "0xmjs28sgpnb940zrhw010dq2m9d8a5h4fgnjyk6645fgfr1j8f2")) - (snippet - #~(begin (use-modules (guix build utils)) - (delete-file-recursively "blosc/c-blosc"))))) - (build-system python-build-system) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'find-blosc - (lambda* (#:key inputs #:allow-other-keys) - (setenv "USE_SYSTEM_BLOSC" "1") - (setenv "Blosc_ROOT" #$(this-package-input "c-blosc")))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "python" "-m" "blosc.test"))))))) - (propagated-inputs - (list python-scikit-build python-numpy)) - (inputs (list c-blosc)) - (native-inputs (list cmake-minimal)) - (home-page "https://github.com/blosc/python-blosc") - (synopsis "Python wrapper for the Blosc data compressor library") - (description "Blosc is a high performance compressor optimized for binary -data. It has been designed to transmit data to the processor cache faster -than the traditional, non-compressed, direct memory fetch approach via a -@code{memcpy()} system call. - -Blosc works well for compressing numerical arrays that contains data with -relatively low entropy, like sparse data, time series, grids with -regular-spaced values, etc. - -This Python package wraps the Blosc library.") - (license license:bsd-3))) - (define-public python-partd (package (name "python-partd") @@ -27580,7 +27691,7 @@ This Python package wraps the Blosc library.") (sha256 (base32 "1sy3vdfyyx3bc5590zb7gwpsmimqz8m992x9hsydq8nmhixqjrxa")))) - (build-system python-build-system) + (build-system pyproject-build-system) (propagated-inputs (list python-blosc python-locket @@ -27657,7 +27768,8 @@ decisions with any given backend.") (list ;; Avoid coverage #:test-flags - #~(list "-m" "not gpu and not slow and not network" + #~(list "-n" "auto" + "-m" "not gpu and not slow and not network" "-k" (string-append ;; This one cannot be interrupted. "not test_interrupt" @@ -27710,7 +27822,10 @@ parentdir_prefix = dask- python-pyyaml)) (native-inputs (list python-importlib-metadata - python-pytest python-pytest-runner python-pytest-rerunfailures + python-pytest + python-pytest-rerunfailures + python-pytest-runner + python-pytest-xdist python-versioneer)) (home-page "https://github.com/dask/dask/") (synopsis "Parallel computing with task scheduling") @@ -28834,17 +28949,50 @@ structure.") for YAML and JSON.") (license license:expat))) +(define-public python-dbus-python + (package + (name "python-dbus-python") + (version "1.3.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "dbus-python" version)) + (sha256 + (base32 "1y28h90v2ib8zqhs3r2yr7ycg8ccwvw3gqkvadlm12v1129q2rxd")))) + (build-system pyproject-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-requirements + (lambda _ + (substitute* (list "pyproject.toml" "setup.py") + (("'(ninja|patchelf)',?") "")) + (substitute* "setup.cfg" + (("(ninja|patchelf)") ""))))))) + (inputs (list dbus glib)) + (propagated-inputs (list python-pygobject)) + (native-inputs (list pkg-config + python-meson-python + meson ninja patchelf + python-sphinx python-sphinx-rtd-theme + python-tappy + python-wheel)) + (home-page "https://dbus.freedesktop.org/doc/dbus-python/") + (synopsis "Python bindings for libdbus") + (description "This package provides Python bindings to libdbus, the +reference implementation of the D-Bus protocol.") + (license license:expat))) + (define-public python-dbusmock (package (name "python-dbusmock") - (version "0.25.0") + (version "0.30.0") (source (origin (method url-fetch) (uri (pypi-uri "python-dbusmock" version)) (sha256 (base32 - "1nwl0gzzds2g1w1gfxfzlgrkb5hr1rrdyn619ml25c6b1rjyfk3g")))) + "1hanz6x76jq66ypdirga5h15zjs67kwysl6rmsf0i22dbdqrxdfv")))) (build-system python-build-system) (arguments (list #:modules `((guix build python-build-system) @@ -28855,6 +29003,9 @@ for YAML and JSON.") #~(modify-phases %standard-phases (add-after 'unpack 'patch-paths (lambda* (#:key inputs #:allow-other-keys) + (substitute* "tests/test_api.py" + (("/usr/bin/python3") + (which "python3"))) (substitute* "tests/test_code.py" (("/bin/bash") (which "bash"))) @@ -28881,11 +29032,11 @@ for YAML and JSON.") status)) (loop))))))))))))) (native-inputs - (list dbus python-pytest which)) + (list dbus python-pytest upower which)) (inputs (list dbus)) (propagated-inputs - (list python-dbus python-pygobject)) + (list python-dbus-python python-pygobject)) (home-page "https://github.com/martinpitt/python-dbusmock") (synopsis "Python library for mock D-Bus objects") (description "python-dbusmock allows for the easy creation of mock objects on @@ -28895,6 +29046,16 @@ hard (or impossible without root privileges) to set the state of the real services to what you expect in your tests.") (license license:lgpl3+))) +(define-public python-dbusmock-minimal + (package + (inherit python-dbusmock) + (name "python-dbusmock-minimal") + (arguments + (substitute-keyword-arguments (package-arguments python-dbusmock) + ((#:tests? _ #t) #f))) + (native-inputs (list which)) + (properties '((hidden? . #t))))) + (define-public python-jsonplus (package (name "python-jsonplus") @@ -35997,6 +36158,36 @@ The database contains over 6.5 million entries, over 3.1 million unique word forms, and about 300,000 distinct lemmas.") (license license:expat))) +(define-public python-icecream + (package + (name "python-icecream") + (version "2.1.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "icecream" version)) + (sha256 + (base32 "1pj9kf7lwm799wppvngg3sndi0qf13iq33yhl59n3hsf6z1sg90a")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + '(list "-k" + ;; These tests are failing due to a bug: + ;; https://github.com/gruns/icecream/issues/144 + (string-append "not testEnableDisable" + " and not testSingledispatchArgumentToString")))) + (propagated-inputs (list python-asttokens python-colorama python-executing + python-pygments)) + (native-inputs (list python-hypothesis python-pytest)) + (home-page "https://github.com/gruns/icecream") + (synopsis + "Single function call to debug variables, expressions, and program execution") + (description + "This tool lets you debug variables, expressions, and program execution +with one function call. IceCream makes print debugging a little sweeter.") + (license license:expat))) + (define-public python-icegrams (package (name "python-icegrams") |