gnu: Add python-scooby.

* gnu/packages/python-xyz.scm (python-pyvips-for-python-scooby,
python-scooby): New variables.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Paul A. Patience 2022-05-02 21:17:33 +00:00 committed by Ludovic Courtès
parent 3a36e5409c
commit e09496eb5d
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -122,6 +122,7 @@
;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com> ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -31556,3 +31557,83 @@ written in C.")
(synopsis "Cython bindings for MurmurHash2") (synopsis "Cython bindings for MurmurHash2")
(description "This package provides Cython bindings for MurmurHash2.") (description "This package provides Cython bindings for MurmurHash2.")
(license license:expat))) (license license:expat)))
;; Scooby requires for its test suite a pyvips package that is missing its
;; VIPS dependency.
(define python-pyvips-for-python-scooby
(package
(inherit python-pyvips)
(name "python-pyvips-for-python-scooby")
(arguments
(substitute-keyword-arguments (package-arguments python-pyvips)
((#:phases phases)
#~(modify-phases #$phases
(delete 'fix-paths)
;; The checks won't succeed without VIPS.
(delete 'check)
(delete 'sanity-check)))))
(inputs
(modify-inputs (package-inputs python-pyvips)
(delete "vips")))
(synopsis "pyvips for Scooby's test suite")))
(define-public python-scooby
(package
(name "python-scooby")
(version "0.5.12")
(source
;; The PyPI tarball does not contain the tests.
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/banesullivan/scooby")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1gkpmz8wl3jg8ylf1na35308sznw2g9wx33zqlyq5i2gpy2ml9mw"))))
(build-system python-build-system)
(native-inputs
(list python-beautifulsoup4
python-numpy
python-pytest
python-pytest-cov
python-pyvips-for-python-scooby
python-scipy))
(propagated-inputs
(list python-psutil))
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
(lambda _
(substitute* "tests/test_scooby.py"
;; The test suite uses the no-version PyPI package
;; (https://pypi.org/project/no-version/),
;; but it doesn't seem worth packaging in Guix just for this.
(("scooby\\.report\\.VERSION_NOT_FOUND")
"scooby.report.MODULE_NOT_FOUND")
(("^ +import no_version # noqa.*") ""))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest")))))))
(home-page "https://github.com/banesullivan/scooby")
(synopsis "Report hardware information and Python package versions")
(description
"The Scooby package reports the following information about the currently
running system:
@itemize
@item operating system name;
@item hardware information including machine type (e.g., @samp{i386},
@samp{x86_64}, etc.), CPU count and total RAM;
@item Python environment (e.g., Python, IPython, etc.);
@item file system name;
@item Python version;
@item versions of specified Python packages.
@end itemize
It can generate reports as HTML tables or plain text lists.
Scooby has no required dependencies, and only few optional dependencies.")
(license license:expat)))