diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm index 5d1ead9bcc2..f9e524cebfb 100644 --- a/gnu/packages/aidc.scm +++ b/gnu/packages/aidc.scm @@ -4,7 +4,9 @@ ;;; Copyright © 2017 Hartmut Goebel ;;; Copyright © 2018, 2019, 2022 Tobias Geerinckx-Rice ;;; Copyright © 2019 Guillaume Le Vaillant +;;; Copyright © 2020 Vinicius Monego ;;; Copyright © 2020 Leo Famulari +;;; Copyright © 2023 Ricardo Wurmus ;;; Copyright © 2024 Nicolas Graves ;;; Copyright © 2024, 2025 Janneke Nieuwenhuizen ;;; @@ -44,14 +46,88 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages python-build) #:use-module (gnu packages pretty-print) #:use-module (gnu packages qt) #:use-module (gnu packages video) #:use-module (guix build-system cmake) + #:use-module (guix build-system pyproject) #:use-module (guix build-system qt) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk)) +(define-public python-pyzbar + (package + (name "python-pyzbar") + (version "0.1.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/NaturalHistoryMuseum/pyzbar") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1df1dvr8i2wyr2vw5pq8rlz2wm4xqda0wbgja19bvql1m9im11ph")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-backend #~'unittest + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-failing-test + (lambda _ + ;; This tests if find_library was called once, but we remove + ;; the call in the stage below to make the library find libzbar. + (delete-file "pyzbar/tests/test_zbar_library.py"))) + (add-before 'build 'set-library-file-name + (lambda _ + (let ((libzbar #$(this-package-input "zbar"))) + (substitute* "pyzbar/zbar_library.py" + (("find_library\\('zbar'\\)") + (string-append "'" libzbar "/lib/libzbar.so.0'"))))))))) + (native-inputs + (list pkg-config python-numpy python-pillow python-setuptools)) + (inputs + (list zbar)) + (home-page "https://github.com/NaturalHistoryMuseum/pyzbar/") + (synopsis "Read one-dimensional barcodes and QR codes") + (description + "Read one-dimensional barcodes and QR codes using the zbar library. + +Features: + +@itemize +@item Pure python +@item Works with PIL / Pillow images, OpenCV / numpy ndarrays, and raw bytes +@item Decodes locations of barcodes +@item No dependencies, other than the zbar library itself +@end itemize") + (license license:expat))) + +(define-public python-zbarlight + (package + (name "python-zbarlight") + (version "3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Polyconseil/zbarlight") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1radfpfhfhkx3xnz01bqr5l9pl2zv70zis6l2kw1gwqbfw65r6w6")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-pillow)) + (inputs (list zbar)) + (native-inputs (list python-pytest python-setuptools)) + (home-page "https://github.com/Polyconseil/zbarlight") + (synopsis "Simple Python wrapper for the zbar barcode library") + (description "Zbarlight is a simple wrapper for the zbar library. It can +read all zbar supported codes.") + (license license:bsd-3))) + (define-public zint (package (name "zint") diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 747c0ec1990..76fd3962ff7 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -2286,6 +2286,47 @@ Users should not need to install this directly; instead, install an implementation package such as asdf-astropy.") (license license:bsd-3)))) +(define-public python-asdf-fits-schemas + (hidden-package + ;; This package was never released and has been archived. The schemas in + ;; this package were never removed from and will continue to be maintained + ;; in . + (let ((commit "6321c0ae4e44c9a59ccf81a446f9d9e22fd42b55") + (revision "2")) + (package + (name "python-asdf-fits-schemas") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/asdf-format/asdf-fits-schemas") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0p0m1sgnv9yqk0l0w15skvfshl47x0gc7lg6p2x83158hjyix5q6")))) + (build-system pyproject-build-system) + (arguments + (list + #:tests? #f ; cycle with python-asdf + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'set-version + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" "0.0.1")))))) + (native-inputs + (list python-setuptools + python-setuptools-scm + python-wheel)) + (propagated-inputs + (list python-asdf-standard + python-importlib-resources)) + (home-page "https://github.com/asdf-format/asdf-fits-schemas") + (synopsis "ASDF schemas to support the FITS format") + (description + "This package provides ASDF schemas for validating FITS tags.") + (license license:bsd-3))))) + (define-public python-asdf-standard (package (name "python-asdf-standard") @@ -6323,6 +6364,34 @@ position-frequency slice.") (list python-setuptools python-wheel))))) +(define-public python-pyavm + (package + (name "python-pyavm") + (version "0.9.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyAVM" version)) + (sha256 + (base32 "0vgjqvddq4a5lnmg8msm7fwqs3r6fc748xzvnhyvc387h0z8pdxk")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pillow + python-pytest + python-setuptools + python-setuptools-scm + python-wheel)) + (propagated-inputs + (list python-astropy + python-numpy)) + (home-page "https://astrofrog.github.io/pyavm/") + (synopsis "Simple pure-python AVM meta-data handling") + (description + "PyAVM is a module to represent, read, and write metadata following the +@acronym{AVM, Astronomy Visualization Metadata} standard provided by +@url{https://www.virtualastronomy.org/avm_metadata.php, vamp} project.") + (license license:expat))) + (define-public python-pycpl (package (name "python-pycpl") @@ -6886,6 +6955,58 @@ experiments. It is a large refactor of memory usage, improving performance and run in parallel with MPI.") (license license:bsd-3))) +(define-public python-pysynphot + ;; XXX: 2.0.0 was released in 2021 there are a lot of changes since that + ;; time and it failed to build with python-astropy 6.0.0, use the latest + ;; upstream commit for now. + (let ((commit "54e9e2a624910c4d177ca70f8e9fb8110c8fae5b") + (revision "0")) + (package + (name "python-pysynphot") + (version (git-version "2.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spacetelescope/pysynphot") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09sivpfqilk86zp8k5wmrs4g48m4kypn34jcy95y5h4ygbn5zbzy")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'set-version + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" "2.0.0"))) + (add-before 'check 'set-env-data-path + (lambda _ + (setenv "PYSYN_CDBS" (string-append #$output "/crds"))))))) + (native-inputs + (list python-pytest + python-pytest-remotedata + python-setuptools + python-setuptools-scm + python-wheel)) + (propagated-inputs + (list python-astropy + python-beautifulsoup4 + python-numpy + python-pytest-astropy-header + python-six)) + (home-page "https://github.com/spacetelescope/pysynphot") + (synopsis "Python Synthetic Photometry Utilities") + (description + "Astrolib PySynphot (hereafter referred to only as pysynphot) is an +object-oriented replacement for STSDAS SYNPHOT synthetic photometry package in +IRAF. @code{pysynphot} simulates photometric data and spectra as they are +observed with the Hubble Space Telescope (HST). Passbands for standard +photometric systems are available, and users can incorporate their own filters, +spectra, and data.") + (license license:bsd-3)))) + (define-public python-pyvo (package (name "python-pyvo") @@ -7227,6 +7348,134 @@ solar physics.") PSF} describing how the optical system spreads light from sources.") (license license:expat))) +(define-public python-reproject + (package + (name "python-reproject") + (version "0.14.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "reproject" version)) + (sha256 + (base32 "0yg5dga054xdwsx75q204h04gmrw0mgayc74l4rpymcbkckymj2k")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "--arraydiff" + "--arraydiff-default-format=fits" + "--numprocesses" (number->string (parallel-job-count)) + "--pyargs" "reproject") + #:phases + #~(modify-phases %standard-phases + ;; setup.py was removed in a659a260bdd7635cddc8f33c4ea04a3b6d8c1f84 + ;; for some unknown reason, which caused the package to fail to + ;; build. It is being recreated based on that commit. + ;; TODO: Check how to implement it in python-build-system. + (add-after 'unpack 'create-setup.py + (lambda _ + (call-with-output-file "setup.py" + (lambda (port) + (format port "from setuptools import setup +from extension_helpers import get_extensions +setup(ext_modules=get_extensions())"))))) + (add-before 'install 'writable-compiler + (lambda _ + (make-file-writable "reproject/_compiler.c"))) + (add-before 'check 'writable-compiler + (lambda _ + (make-file-writable "reproject/_compiler.c"))) + (add-before 'check 'prepare-test-environment + (lambda _ + (setenv "HOME" "/tmp") + ;; Cython extensions have to be built before running the tests. + (invoke "python" "setup.py" "build_ext" "--inplace")))))) + (propagated-inputs + (list python-asdf + python-astropy + python-astropy-healpix + python-cloudpickle + python-dask + python-fsspec + python-gwcs + python-numpy + python-pyvo + python-scipy + python-shapely + python-zarr)) + (native-inputs + (list python-cython-3 + python-extension-helpers + python-asdf + python-gwcs + python-pytest-astropy + python-pytest-xdist + python-pyvo + ;; python-sunpy ; circular dependencies, test optional + python-setuptools-scm + python-wheel)) + (home-page "https://reproject.readthedocs.io") + (synopsis "Astronomical image reprojection in Python") + (description + "This package provides a functionality to reproject astronomical images using +various techniques via a uniform interface, where reprojection is the +re-gridding of images from one world coordinate system to another e.g. +changing the pixel resolution, orientation, coordinate system.") + (license license:bsd-3))) + +(define-public python-roman-datamodels + (package + (name "python-roman-datamodels") + (version "0.27.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "roman_datamodels" version)) + (sha256 + (base32 "1631jpv7mcrcka6bfxp04ih43wlm9pmqsqxckqyv6y9jgsipjxy3")))) + (build-system pyproject-build-system) + (arguments + (list + ;; tests: 4185 passed, 1 skipped, 1 xfailed + #:test-flags + #~(list "--numprocesses" (number->string (parallel-job-count))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-env + (lambda _ + (setenv "HOME" "/tmp")))))) + (native-inputs + (list python-pandas + python-pytest + python-pytest-doctestplus + python-pytest-env + python-pytest-xdist + python-setuptools + python-setuptools-scm + python-wheel)) + (propagated-inputs + (list python-asdf + python-asdf-astropy + python-asdf-standard + python-astropy + python-gwcs + python-lz4 + python-numpy + python-pyarrow + python-rad)) + (home-page "https://github.com/spacetelescope/roman_datamodels") + (synopsis "Roman Datamodels Support") + (description + "This package provides a Python package of Roman Datamodels for the +calibration pipelines started with the @acronym{JWST, James Webb Space +Telescope} calibration pipelines. The goal for the JWST pipelines was motivated +primarily by the need to support FITS data files, specifically with isolating +the details of where metadata and data were located in the FITS file from the +representation of the same items within the Python code. That is not a concern +for Roman since FITS format data files will not be used by the Roman calibration +pipelines.") + (license license:bsd-3))) + (define-public python-romancal (package (name "python-romancal") @@ -7917,109 +8166,6 @@ instruments.") (license (list license:bsd-3 ; licenses/LICENSE.rst, same as python-astropy license:expat)))) ; licenses/KOSMOS_LICENSE -(define-public python-pyavm - (package - (name "python-pyavm") - (version "0.9.6") - (source - (origin - (method url-fetch) - (uri (pypi-uri "PyAVM" version)) - (sha256 - (base32 "0vgjqvddq4a5lnmg8msm7fwqs3r6fc748xzvnhyvc387h0z8pdxk")))) - (build-system pyproject-build-system) - (native-inputs - (list python-pillow - python-pytest - python-setuptools - python-setuptools-scm - python-wheel)) - (propagated-inputs - (list python-astropy - python-numpy)) - (home-page "https://astrofrog.github.io/pyavm/") - (synopsis "Simple pure-python AVM meta-data handling") - (description - "PyAVM is a module to represent, read, and write metadata following the -@acronym{AVM, Astronomy Visualization Metadata} standard provided by -@url{https://www.virtualastronomy.org/avm_metadata.php, vamp} project.") - (license license:expat))) - -(define-public python-reproject - (package - (name "python-reproject") - (version "0.14.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "reproject" version)) - (sha256 - (base32 "0yg5dga054xdwsx75q204h04gmrw0mgayc74l4rpymcbkckymj2k")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - #~(list "--arraydiff" - "--arraydiff-default-format=fits" - "--numprocesses" (number->string (parallel-job-count)) - "--pyargs" "reproject") - #:phases - #~(modify-phases %standard-phases - ;; setup.py was removed in a659a260bdd7635cddc8f33c4ea04a3b6d8c1f84 - ;; for some unknown reason, which caused the package to fail to - ;; build. It is being recreated based on that commit. - ;; TODO: Check how to implement it in python-build-system. - (add-after 'unpack 'create-setup.py - (lambda _ - (call-with-output-file "setup.py" - (lambda (port) - (format port "from setuptools import setup -from extension_helpers import get_extensions -setup(ext_modules=get_extensions())"))))) - (add-before 'install 'writable-compiler - (lambda _ - (make-file-writable "reproject/_compiler.c"))) - (add-before 'check 'writable-compiler - (lambda _ - (make-file-writable "reproject/_compiler.c"))) - (add-before 'check 'prepare-test-environment - (lambda _ - (setenv "HOME" "/tmp") - ;; Cython extensions have to be built before running the tests. - (invoke "python" "setup.py" "build_ext" "--inplace")))))) - (propagated-inputs - (list python-asdf - python-astropy - python-astropy-healpix - python-cloudpickle - python-dask - python-fsspec - python-gwcs - python-numpy - python-pyvo - python-scipy - python-shapely - python-zarr)) - (native-inputs - (list python-cython-3 - python-extension-helpers - python-asdf - python-gwcs - python-pytest-astropy - python-pytest-xdist - python-pyvo - ;; python-sunpy ; circular dependencies, test optional - python-setuptools-scm - python-wheel)) - (home-page "https://reproject.readthedocs.io") - (synopsis "Astronomical image reprojection in Python") - (description - "This package provides a functionality to reproject astronomical images using -various techniques via a uniform interface, where reprojection is the -re-gridding of images from one world coordinate system to another e.g. -changing the pixel resolution, orientation, coordinate system.") - (license license:bsd-3))) - (define-public python-spectral-cube (package (name "python-spectral-cube") @@ -8538,152 +8684,6 @@ science instruments plus the fine guidance sensor, including both direct imaging, coronagraphic, and spectroscopic modes.") (license license:bsd-3))) -(define-public python-pysynphot - ;; XXX: 2.0.0 was released in 2021 there are a lot of changes since that - ;; time and it failed to build with python-astropy 6.0.0, use the latest - ;; upstream commit for now. - (let ((commit "54e9e2a624910c4d177ca70f8e9fb8110c8fae5b") - (revision "0")) - (package - (name "python-pysynphot") - (version (git-version "2.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/spacetelescope/pysynphot") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "09sivpfqilk86zp8k5wmrs4g48m4kypn34jcy95y5h4ygbn5zbzy")))) - (build-system pyproject-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-before 'build 'set-version - (lambda _ - (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" "2.0.0"))) - (add-before 'check 'set-env-data-path - (lambda _ - (setenv "PYSYN_CDBS" (string-append #$output "/crds"))))))) - (native-inputs - (list python-pytest - python-pytest-remotedata - python-setuptools - python-setuptools-scm - python-wheel)) - (propagated-inputs - (list python-astropy - python-beautifulsoup4 - python-numpy - python-pytest-astropy-header - python-six)) - (home-page "https://github.com/spacetelescope/pysynphot") - (synopsis "Python Synthetic Photometry Utilities") - (description - "Astrolib PySynphot (hereafter referred to only as pysynphot) is an -object-oriented replacement for STSDAS SYNPHOT synthetic photometry package in -IRAF. @code{pysynphot} simulates photometric data and spectra as they are -observed with the Hubble Space Telescope (HST). Passbands for standard -photometric systems are available, and users can incorporate their own filters, -spectra, and data.") - (license license:bsd-3)))) - -(define-public python-asdf-fits-schemas - (hidden-package - ;; This package was never released and has been archived. The schemas in - ;; this package were never removed from and will continue to be maintained - ;; in . - (let ((commit "6321c0ae4e44c9a59ccf81a446f9d9e22fd42b55") - (revision "2")) - (package - (name "python-asdf-fits-schemas") - (version (git-version "0.0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/asdf-format/asdf-fits-schemas") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0p0m1sgnv9yqk0l0w15skvfshl47x0gc7lg6p2x83158hjyix5q6")))) - (build-system pyproject-build-system) - (arguments - (list - #:tests? #f ; cycle with python-asdf - #:phases - #~(modify-phases %standard-phases - (add-before 'build 'set-version - (lambda _ - (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" "0.0.1")))))) - (native-inputs - (list python-setuptools - python-setuptools-scm - python-wheel)) - (propagated-inputs - (list python-asdf-standard - python-importlib-resources)) - (home-page "https://github.com/asdf-format/asdf-fits-schemas") - (synopsis "ASDF schemas to support the FITS format") - (description - "This package provides ASDF schemas for validating FITS tags.") - (license license:bsd-3))))) - -(define-public python-roman-datamodels - (package - (name "python-roman-datamodels") - (version "0.27.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "roman_datamodels" version)) - (sha256 - (base32 "1631jpv7mcrcka6bfxp04ih43wlm9pmqsqxckqyv6y9jgsipjxy3")))) - (build-system pyproject-build-system) - (arguments - (list - ;; tests: 4185 passed, 1 skipped, 1 xfailed - #:test-flags - #~(list "--numprocesses" (number->string (parallel-job-count))) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'set-env - (lambda _ - (setenv "HOME" "/tmp")))))) - (native-inputs - (list python-pandas - python-pytest - python-pytest-doctestplus - python-pytest-env - python-pytest-xdist - python-setuptools - python-setuptools-scm - python-wheel)) - (propagated-inputs - (list python-asdf - python-asdf-astropy - python-asdf-standard - python-astropy - python-gwcs - python-lz4 - python-numpy - python-pyarrow - python-rad)) - (home-page "https://github.com/spacetelescope/roman_datamodels") - (synopsis "Roman Datamodels Support") - (description - "This package provides a Python package of Roman Datamodels for the -calibration pipelines started with the @acronym{JWST, James Webb Space -Telescope} calibration pipelines. The goal for the JWST pipelines was motivated -primarily by the need to support FITS data files, specifically with isolating -the details of where metadata and data were located in the FITS file from the -representation of the same items within the Python code. That is not a concern -for Roman since FITS format data files will not be used by the Roman calibration -pipelines.") - (license license:bsd-3))) - (define-public python-stsci-image (package (name "python-stsci-image") diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 62b383179db..8a244893f1b 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -768,7 +768,10 @@ be reached via direct API calls.") (sha256 (base32 "0f4x0gm5n1mr87dx3gzn5da16a1qhd2y3kz22dl5xsd9pd720l4w")))) (build-system pyproject-build-system) - (native-inputs (list python-setuptools python-wheel)) + (arguments + (list + #:test-backend ''unittest)) + (native-inputs (list python-setuptools)) (propagated-inputs (list python-configparser)) (home-page "https://github.com/Sarcasm/compdb") (synopsis "Compilation database Swiss army knife") diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index e3f039b9a00..e4bc4f89bb9 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -81,6 +81,7 @@ #:use-module (guix svn-download) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages aidc) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages backup) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index aaceb84119b..6f57c3a5574 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -1435,7 +1435,8 @@ libraries designed for computer vision research and implementation.") libjpeg-turbo libpng libtiff - mesa-opencl + opencl-headers + opencl-icd-loader perl python tbb diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 0472c2d55ca..0192cd446c8 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3250,44 +3250,31 @@ MIDI files, based on libsmf.") (define-public frescobaldi (package (name "frescobaldi") - (version "3.3.0") + (version "4.0.4") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/frescobaldi/frescobaldi/releases/download/v" - version "/frescobaldi-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/frescobaldi/frescobaldi") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1n60gfnf6x0l1bac088g9adzx0lskbl9knd4y1ynr3y0zcs0kfcz")))) - (build-system python-build-system) + (base32 "03ygnq7x37hnw68nkw0175m0b4ngkhgigf85pjw0sx0dbkwh4i17")))) + (build-system pyproject-build-system) (arguments (list - #:tests? #f ;no tests included - #:phases #~(modify-phases %standard-phases - (add-before 'build 'generate-translations - (lambda _ - (invoke "make" "-C" "i18n"))) - (add-before 'build 'generate-metadata - (lambda _ - (invoke "make" "-C" "linux"))) - (add-after 'install 'wrap-executable - (lambda _ - ;; Ensure that icons are found at runtime. - (wrap-program (string-append #$output - "/bin/frescobaldi") - `("QT_PLUGIN_PATH" prefix - ,(list (getenv "QT_PLUGIN_PATH"))))))))) + #:tests? #f)) ;no tests included + (native-inputs + (list python-hatchling)) (inputs (list bash-minimal lilypond poppler portmidi-2 python-ly - python-poppler-qt5 - python-pyportmidi - python-pyqt - python-sip - qpageview - qtsvg-5)) + python-pyqt-6 + python-pyqt6-sip + python-pyqtwebengine-6 + qpageview)) (home-page "https://www.frescobaldi.org/") (synopsis "LilyPond sheet music text editor") (description diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 29149e5c500..9f679e517a2 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -1404,8 +1404,8 @@ winner of the 2015 Password Hashing Competition.") (define-public secretsd ;; there are neither tags nor releases in the repository - (let ((commit "4ea56226b8f7c8739eea7fc8d1ffca8e18cf58c9") - (revision "0")) + (let ((commit "d12eefee00dbd4b0f756dcf7c52d31539dbcfc67") + (revision "1")) (package (name "secretsd") (version (git-version "1.0" revision commit)) @@ -1417,7 +1417,7 @@ winner of the 2015 Password Hashing Competition.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0ka21vmvm25kal3sa8zmrifh4zac878hk24y7y3jj3ig8dkv0vfy")) + (base32 "1cr6vpb1mc48b60mjbnzalp58vx07sh7hg9r65j0cppk0n4gc0aj")) (modules '((guix build utils))) (snippet ;; don't install platform dependencies @@ -1425,6 +1425,7 @@ winner of the 2015 Password Hashing Competition.") (build-system pyproject-build-system) (arguments (list + #:tests? #f ; no tests #:phases #~(modify-phases %standard-phases (add-after 'create-entrypoints 'wrap-program @@ -1433,7 +1434,7 @@ winner of the 2015 Password Hashing Competition.") `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH"))))))))) (inputs (list python-dbus python-platformdirs python-cryptography - python-xdg python-pygobject)) + python-pygobject)) (native-inputs (list bash-minimal python-setuptools python-wheel)) (home-page "https://github.com/grawity/secretsd") (synopsis "Basic FreeDesktop.org Secret Service backend") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index dd0ad272382..7664ff0cb7c 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -171,6 +171,7 @@ ;;; Copyright © 2025 Luis Felipe López Acevedo ;;; Copyright © 2025 Josep Bigorra ;;; Copyright © 2025 Matthias Riße +;;; Copyright © 2025 Ghislain Vaillant ;;; ;;; This file is part of GNU Guix. ;;; @@ -191,7 +192,6 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages adns) - #:use-module (gnu packages aidc) #:use-module (gnu packages algebra) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) @@ -731,6 +731,27 @@ features string-like objects which carry formatting information, per-line fullscreen terminal rendering, and keyboard input event reporting.") (license license:expat))) +(define-public python-darkdetect + (package + (name "python-darkdetect") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "darkdetect" version)) + (sha256 + (base32 "1cgqgpz36dfn7hsqc29ha9pmxmzdjlwdq9aclkgbagi6f08qwhmm")))) + (build-system pyproject-build-system) + (arguments + (list + #:tests? #f)) ;no tests in PyPI or Git. + (native-inputs (list python-setuptools)) + (home-page "https://github.com/albertosottile/darkdetect") + (synopsis "Detect OS dark mode from Python") + (description + "This package allows to detect if the user is using Dark Mode.") + (license license:bsd-3))) + (define-public python-distance (let ((commit "ad7f9dc7e9b0e88a08d0cefd1442f4ab1dd1779b") (revision "0")) @@ -1244,6 +1265,34 @@ for Python.") processes, in parallel, in the console, with an interactive TUI.") (license license:expat))) +(define-public python-num2words + (package + (name "python-num2words") + (version "0.5.14") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/savoirfairelinux/num2words") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h52kgh1h4q9nkkplpwix2xs6f6wwvlxq09clznr2589xv39iqlz")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "--ignore" "tests/test_cli.py"))) ;Requires delegator.py. + (inputs (list python-docopt)) + (native-inputs (list python-pytest python-setuptools)) + (home-page "https://github.com/savoirfairelinux/num2words") + (synopsis "Convert numbers to words in multiple languages") + (description + "@code{num2words} is a library that converts numbers like 42 to words like +forty-two. It supports multiple languages, and can even generate ordinal +numbers like forty-second.") + (license license:lgpl2.1))) + (define-public python-orderly-set (package (name "python-orderly-set") @@ -16667,55 +16716,6 @@ addition to a bunch of aliases.") command pipeline functionality.") (license license:bsd-3))) -(define-public python-zipfly - (package - (name "python-zipfly") - (version "6.0.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "zipfly" version)) - (sha256 - (base32 - "1h7g922a8lsqd69j8blgcgg0lcd8kz51b2p4glfqmgx4vi1nkick")))) - (build-system pyproject-build-system) - (arguments - (list #:tests? #f)) ; no tests - (native-inputs (list python-setuptools python-wheel)) - (home-page "https://github.com/sandes/zipfly") - (synopsis "Zip archive generator") - (description "ZipFly is a zip archive generator. It was created to -generate very large zip archives for immediate sending out to clients, or -for writing large zip archives without memory inflation.") - (license license:bsd-2))) - -(define-public python-zipstream-new - (package - (name "python-zipstream-new") - (version "1.1.8") - (source - (origin - (method git-fetch) ; no tests in PyPI release - (uri (git-reference - (url "https://github.com/arjan-s/python-zipstream") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "14vhgg8mcjqi8cpzrw8qzbij2fr2a63l2a8fhil21k2r8vzv92cv")))) - (build-system python-build-system) - (native-inputs - (list python-nose)) - (home-page "https://github.com/arjan-s/python-zipstream") - (synopsis "Zipfile generator that takes input files as well as streams") - (description "@code{zipstream.py} is a zip archive generator based on -@code{zipfile.py}. It was created to generate a zip file generator for -streaming. This is beneficial for when you want to provide a downloadable -archive of a large collection of regular files, which would be infeasible -to generate the archive prior to downloading or of a very large file that -you do not want to store entirely on disk or on memory.") - ;; No copyright headers in the source. The LICENSE file indicates GPL3. - (license license:gpl3))) - (define-public python-sentry-sdk (package (name "python-sentry-sdk") @@ -28535,40 +28535,6 @@ like a regular Python @code{dict}. It’s designed to be used as a priority queue.") (license license:bsd-3))) -(define-public python-zict - (package - (name "python-zict") - (version "3.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "zict" version)) - (sha256 - (base32 - "19gvr41xi5fazkzkg33kwrk70sv50hygng0cg70ayym9nriy48g3")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - ;; This uses "importorskip", but it won't skip. - '(list "--ignore=tests/test_lmdb.py"))) - (propagated-inputs - (list python-heapdict)) - (native-inputs - (list python-pytest - python-pytest-asyncio - python-pytest-repeat - python-pytest-timeout - python-setuptools - python-wheel)) - (home-page "https://zict.readthedocs.io/en/latest/") - (synopsis "Composable mutable mapping tools") - (description "This package provides abstract @code{MutableMapping} classes -that consume and build on other @code{MutableMappings}. Several of these can -be composed with one another to form intuitive interfaces over complex storage -systems policies.") - (license license:bsd-3))) - (define-public python-send2trash (package (name "python-send2trash") @@ -28848,56 +28814,6 @@ a notation for identifying weeks; yyyyWww (where the W is a literal). Week instances stringify to this form.") (license license:bsd-3))) -(define-public python-pyzbar - (package - (name "python-pyzbar") - (version "0.1.8") - (source - (origin - ;; There's no source tarball on PyPI. - (method git-fetch) - (uri (git-reference - (url "https://github.com/NaturalHistoryMuseum/pyzbar") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1fqlfg5p2v9lzzzi0si2sz54lblprk6jjjhjw54b64lp58c1yhsl")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'remove-failing-test - (lambda _ - ;; This tests if find_library was called once, but we remove - ;; the call in the stage below to make the library find libzbar. - (delete-file "pyzbar/tests/test_zbar_library.py") - #t)) - (add-before 'build 'set-library-file-name - (lambda* (#:key inputs #:allow-other-keys) - (let ((libzbar (assoc-ref inputs "zbar"))) - (substitute* "pyzbar/zbar_library.py" - (("find_library\\('zbar'\\)") - (string-append "'" libzbar "/lib/libzbar.so.0'"))) - #t)))))) - (native-inputs - (list pkg-config python-numpy python-pillow)) - (inputs - (list zbar)) - (home-page "https://github.com/NaturalHistoryMuseum/pyzbar/") - (synopsis "Read one-dimensional barcodes and QR codes") - (description - "Read one-dimensional barcodes and QR codes using the zbar library. - -Features: - -@itemize -@item Pure python -@item Works with PIL / Pillow images, OpenCV / numpy ndarrays, and raw bytes -@item Decodes locations of barcodes -@item No dependencies, other than the zbar library itself -@end itemize") - (license license:expat))) - (define-public python-tokenize-rt (package (name "python-tokenize-rt") @@ -29246,6 +29162,32 @@ close matches in Python.") in Python. You can simply type pybtex instead of bibtex.") (license license:expat))) +(define-public python-pybtex-apa-style + (package + (name "python-pybtex-apa-style") + (version "1.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pybtex-apa-style" version)) + (sha256 + (base32 "1cmgcpcvs9jcw4yxhiy217hdngp9p9nlp5x6s2qmkwj0iwgd39iq")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-backend #~'custom + #:test-flags + #~(list "-c" (string-append "import sys, pybtex.plugin;" + " sys.exit('apa' not" + " in pybtex.plugin.enumerate_plugin_names" + "('pybtex.style.labels'))")))) + (native-inputs (list python-pybtex python-setuptools)) + (home-page "https://github.com/naeka/pybtex-apa-style") + (synopsis "APA style for pybtex") + (description + "This package provides support for the APA style within pybtex.") + (license license:expat))) + (define-public python-onetimepass (package (name "python-onetimepass") @@ -30478,62 +30420,6 @@ codecs for use in data storage and communication applications.") (description "This package draws tree structures using characters.") (license license:expat))) -(define-public python-zarr - (package - (name "python-zarr") - (version "2.18.7") - (source - (origin - (method url-fetch) - (uri (pypi-uri "zarr" version)) - (sha256 - (base32 - "1xbjjpjskykbdskck5p1f0grh6wq36437ll0n5kazi6s2ipzdf5j")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - #~(list "--numprocesses" (number->string (parallel-job-count)) - ;; This tests are flaky. The pass several times on my laptop - ;; but occasionally fail. They fail pretty reliably on the - ;; build farm. - "-k" (string-append "not test_lazy_loader and not open_array" - ;; File not found. - " and not test_filesystem_path")) - #:phases - #~(modify-phases %standard-phases - (add-before 'build 'set-version - (lambda _ - (substitute* "pyproject.toml" - (("^version_file.*") "") - (("dynamic = \\[\"version\"\\]") - (string-append "version = \"" #$version "\""))))) - (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-ipywidgets - python-notebook - python-numcodecs - python-numpy - python-numpydoc - python-pydata-sphinx-theme)) - (native-inputs - (list python-pytest - python-pytest-xdist - python-setuptools - python-wheel)) - (home-page "https://github.com/zarr-developers/zarr-python") - (synopsis "Chunked, compressed, N-dimensional arrays for Python") - (description - "This package provides an implementation of chunked, compressed, -N-dimensional arrays for Python.") - (license license:expat))) - (define-public python-dill (package (name "python-dill") @@ -31614,45 +31500,6 @@ should have run while it was offline.") library in Python.") (license license:expat))) -(define-public python-zeroconf - (package - (name "python-zeroconf") - (version "0.38.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jstasiak/python-zeroconf") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1p1a0ywlg5sq0ilcphmz9h4kayscz0q1lyfk57j7mwxyx4gl9cpi")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - #~(list - "-k" (string-append - ;; XXX: Despite asyncio, this test fails. - "not test_run_coro_with_timeout and not " - ;; XXX: Networking isn't available. - (string-join - (list "test_integration_with_listener_ipv6" - "test_launch_and_close_v4_v6" - "test_launch_and_close_context_manager" - "test_launch_and_close" - "test_close_multiple_times") - " and not "))))) - (native-inputs - (list python-pytest python-pytest-asyncio python-setuptools)) - (propagated-inputs - (list python-ifaddr)) - (home-page "https://github.com/jstasiak/python-zeroconf") - (synopsis "Pure Python mDNS service discovery") - (description "Pure Python multicast DNS (mDNS) service discovery library -(Bonjour/Avahi compatible).") - (license license:lgpl2.1+))) - (define-public python-bsddb3 (package (name "python-bsddb3") @@ -40316,78 +40163,6 @@ markdown-compliant strings.") way.") (license license:lgpl2.1))) -(define-public python-zbarlight - (package - (name "python-zbarlight") - (version "3.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "zbarlight" version)) - (sha256 - (base32 - "1v5c9bim8af6g8kgxp2dhm96n5vkr8sqi56w0bdh1xy49v03lw3g")))) - (build-system pyproject-build-system) - (propagated-inputs (list python-pillow python-setuptools)) - (inputs (list zbar)) - (native-inputs (list python-wheel)) - (home-page "https://github.com/Polyconseil/zbarlight") - (synopsis "Simple Python wrapper for the zbar barcode library") - (description "Zbarlight is a simple wrapper for the zbar library. It can -read all zbar supported codes.") - (license license:bsd-3))) - -(define-public python-zeroc-ice - (package - (name "python-zeroc-ice") - (version "3.7.10.1") - (source (origin - (method url-fetch) - (uri (pypi-uri "zeroc-ice" version)) - (sha256 - (base32 - "0r46q4hd7xbpvnidbra1prkg4xhmajxjjmclfqgp3pv0lgyslqxh")))) - (build-system pyproject-build-system) - (arguments - ;; XXX: No tests in PyPI, tere are tests in Git, but there is no 3.7.10.1 - ;; tag. - ;; - ;; See: - ;; - URL: - ;; - File: - (list #:tests? #f)) - (inputs (list openssl)) - (native-inputs (list python-setuptools)) - (home-page "https://zeroc.com") - (synopsis "RPC framework") - (description - "Ice is a comprehensive RPC framework. Ice helps you network your -software by taking care of all interactions with low-level network programming -interfaces.") - (license license:gpl2))) - -;; Package variant to build python-omero-py@5.20.0 -(define-public python-zeroc-ice-3.6 - (package - (inherit python-zeroc-ice) - (version "3.6.5") - (source (origin - (method url-fetch) - (uri (pypi-uri "zeroc-ice" version)) - (sha256 - (base32 - "0mikjfvq26kh8asnn9v55z41pap4c5ypymqnwwi4xkavc3mzyda2")) - (patches - (search-patches - "python-zeroc-ice-3.6.5-python-3.11-support.patch")))) - (arguments - (substitute-keyword-arguments (package-arguments python-zeroc-ice) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (add-before 'build 'relax-gcc-14-strictness - (lambda _ - (setenv "CFLAGS" - "-g -O2 -Wno-error=implicit-function-declaration"))))))))) - (define-public python-islenska (package (name "python-islenska") @@ -40559,31 +40334,236 @@ 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))) -(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)))) +(define-public python-zarr + (package + (name "python-zarr") + (version "2.18.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "zarr" version)) + (sha256 + (base32 + "1xbjjpjskykbdskck5p1f0grh6wq36437ll0n5kazi6s2ipzdf5j")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "--numprocesses" (number->string (parallel-job-count)) + ;; This tests are flaky. The pass several times on my laptop + ;; but occasionally fail. They fail pretty reliably on the + ;; build farm. + "-k" (string-append "not test_lazy_loader and not open_array" + ;; File not found. + " and not test_filesystem_path")) + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'set-version + (lambda _ + (substitute* "pyproject.toml" + (("^version_file.*") "") + (("dynamic = \\[\"version\"\\]") + (string-append "version = \"" #$version "\""))))) + (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-ipywidgets + python-notebook + python-numcodecs + python-numpy + python-numpydoc + python-pydata-sphinx-theme)) + (native-inputs + (list python-pytest + python-pytest-xdist + python-setuptools + python-wheel)) + (home-page "https://github.com/zarr-developers/zarr-python") + (synopsis "Chunked, compressed, N-dimensional arrays for Python") + (description + "This package provides an implementation of chunked, compressed, +N-dimensional arrays for Python.") + (license license:expat))) + +(define-public python-zeroc-ice + (package + (name "python-zeroc-ice") + (version "3.7.10.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "zeroc-ice" version)) + (sha256 + (base32 + "0r46q4hd7xbpvnidbra1prkg4xhmajxjjmclfqgp3pv0lgyslqxh")))) + (build-system pyproject-build-system) + (arguments + ;; XXX: No tests in PyPI, tere are tests in Git, but there is no 3.7.10.1 + ;; tag. + ;; + ;; See: + ;; - URL: + ;; - File: + (list #:tests? #f)) + (inputs (list openssl)) + (native-inputs (list python-setuptools)) + (home-page "https://zeroc.com") + (synopsis "RPC framework") + (description + "Ice is a comprehensive RPC framework. Ice helps you network your +software by taking care of all interactions with low-level network programming +interfaces.") + (license license:gpl2))) + +;; Package variant to build python-omero-py@5.20.0 +(define-public python-zeroc-ice-3.6 + (package + (inherit python-zeroc-ice) + (version "3.6.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "zeroc-ice" version)) + (sha256 + (base32 + "0mikjfvq26kh8asnn9v55z41pap4c5ypymqnwwi4xkavc3mzyda2")) + (patches + (search-patches + "python-zeroc-ice-3.6.5-python-3.11-support.patch")))) + (arguments + (substitute-keyword-arguments (package-arguments python-zeroc-ice) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-before 'build 'relax-gcc-14-strictness + (lambda _ + (setenv "CFLAGS" + "-g -O2 -Wno-error=implicit-function-declaration"))))))))) + +(define-public python-zeroconf + (package + (name "python-zeroconf") + (version "0.38.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jstasiak/python-zeroconf") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1p1a0ywlg5sq0ilcphmz9h4kayscz0q1lyfk57j7mwxyx4gl9cpi")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list + "-k" (string-append + ;; XXX: Despite asyncio, this test fails. + "not test_run_coro_with_timeout and not " + ;; XXX: Networking isn't available. + (string-join + (list "test_integration_with_listener_ipv6" + "test_launch_and_close_v4_v6" + "test_launch_and_close_context_manager" + "test_launch_and_close" + "test_close_multiple_times") + " and not "))))) + (native-inputs + (list python-pytest python-pytest-asyncio python-setuptools)) + (propagated-inputs + (list python-ifaddr)) + (home-page "https://github.com/jstasiak/python-zeroconf") + (synopsis "Pure Python mDNS service discovery") + (description "Pure Python multicast DNS (mDNS) service discovery library +(Bonjour/Avahi compatible).") + (license license:lgpl2.1+))) + +(define-public python-zict + (package + (name "python-zict") + (version "3.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "zict" version)) + (sha256 + (base32 + "19gvr41xi5fazkzkg33kwrk70sv50hygng0cg70ayym9nriy48g3")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + ;; This uses "importorskip", but it won't skip. + '(list "--ignore=tests/test_lmdb.py"))) + (propagated-inputs + (list python-heapdict)) + (native-inputs + (list python-pytest + python-pytest-asyncio + python-pytest-repeat + python-pytest-timeout + python-setuptools + python-wheel)) + (home-page "https://zict.readthedocs.io/en/latest/") + (synopsis "Composable mutable mapping tools") + (description "This package provides abstract @code{MutableMapping} classes +that consume and build on other @code{MutableMappings}. Several of these can +be composed with one another to form intuitive interfaces over complex storage +systems policies.") + (license license:bsd-3))) + +(define-public python-zipfly + (package + (name "python-zipfly") + (version "6.0.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "zipfly" version)) + (sha256 + (base32 + "1h7g922a8lsqd69j8blgcgg0lcd8kz51b2p4glfqmgx4vi1nkick")))) + (build-system pyproject-build-system) + (arguments + (list #:test-backend #~'unittest)) + (native-inputs (list python-setuptools)) + (home-page "https://github.com/sandes/zipfly") + (synopsis "Zip archive generator") + (description "ZipFly is a zip archive generator. It was created to +generate very large zip archives for immediate sending out to clients, or +for writing large zip archives without memory inflation.") + (license license:expat))) + +(define-public python-zipstream-new + (package + (name "python-zipstream-new") + (version "1.1.8") + (source + (origin + (method git-fetch) ; no tests in PyPI release + (uri (git-reference + (url "https://github.com/arjan-s/python-zipstream") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14vhgg8mcjqi8cpzrw8qzbij2fr2a63l2a8fhil21k2r8vzv92cv")))) + (build-system pyproject-build-system) + (arguments + (list #:test-backend #~'unittest)) + (native-inputs (list python-setuptools)) + (home-page "https://github.com/arjan-s/python-zipstream") + (synopsis "Zipfile generator that takes input files as well as streams") + (description "@code{zipstream.py} is a zip archive generator based on +@code{zipfile.py}. It was created to generate a zip file generator for +streaming. This is beneficial for when you want to provide a downloadable +archive of a large collection of regular files, which would be infeasible +to generate the archive prior to downloading or of a very large file that +you do not want to store entirely on disk or on memory.") + ;; No copyright headers in the source. The LICENSE file indicates GPL3. + (license license:gpl3))) ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 5fbf498ac2f..0415f6aa2f0 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -52,7 +52,7 @@ ;;; Copyright © 2018 Nicolas Goaziou ;;; Copyright © 2018 Oleg Pykhalov ;;; Copyright © 2018 Clément Lassieur -;;; Copyright © 2018, 2019, 2020, 2021 Maxim Cournoyer +;;; Copyright © 2018, 2019, 2020, 2021, 2025 Maxim Cournoyer ;;; Copyright © 2018 Luther Thompson ;;; Copyright © 2018 Vagrant Cascadian ;;; Copyright © 2019, 2024 Tanguy Le Carrour @@ -62,6 +62,7 @@ ;;; Copyright © 2022 jgart ;;; Copyright © 2021 Lars-Dominik Braun ;;; Copyright © 2025 Hugo Buddelmeijer +;;; Copyright © 2025 Sharlatan Hellseher ;;; ;;; This file is part of GNU Guix. ;;; @@ -96,10 +97,12 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml) #:use-module (guix gexp) + #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix search-paths) #:use-module (guix utils) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (srfi srfi-1) @@ -1596,6 +1599,32 @@ and the unversioned commands available."))) Use this package if you need a minimal Python toolchain instead of just the interpreter.")))) +(define-public pythoncapi-compat + ;; No release nor tags: use the latest commit. + (let ((commit "ab72af8b1a9adfccb3578eea8e9b6d5c6449f409") + (revision "1")) + (package + (name "pythoncapi-compat") + (version (git-version "0.0.0" revision commit)) + (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 + "0dfzfs399ik10125kvs5s8rid93lm50wray8s7b8bv90a61zjxiv")))) + (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)))) + (define-public micropython (package (name "micropython")