aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorPaul A. Patience <paul@apatience.com>2022-05-02 21:17:17 +0000
committerLudovic Courtès <ludo@gnu.org>2022-05-23 16:24:47 +0200
commit62f16063a1eae0be6242a27dead1e2430b40a2d6 (patch)
treedb710cec2773930e9881cb2a28fcf2a9e4340cef /gnu
parent6803a29db4b3cd8eafd9b2c153876f66ae65d32b (diff)
downloadguix-62f16063a1eae0be6242a27dead1e2430b40a2d6.tar
guix-62f16063a1eae0be6242a27dead1e2430b40a2d6.tar.gz
gnu: Add python-pyperf.
* gnu/packages/python-xyz.scm (python-pyperf): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/python-xyz.scm47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 3c4fa16d16..95ed00da50 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -31144,6 +31144,53 @@ uses the parsed regular expression, so you get a much more accurate result
than trying to just split strings.")
(license license:asl2.0)))
+(define-public python-pyperf
+ (package
+ (name "python-pyperf")
+ (version "2.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyperf" version))
+ (sha256
+ (base32 "189qf9wdbig0fk4n3bavx8acgdbay5lllfvw48jvbfaafb7y5hja"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ ;; Some of these tests fail with:
+ ;;
+ ;; ModuleNotFoundError: No module named 'pyperf'
+ ;;
+ ;; even when calling ‘add-installed-pythonpath’ in the ‘check’
+ ;; phase.
+ (delete-file "pyperf/tests/test_examples.py")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; From tox.ini's ‘testenv.commands’.
+ (invoke "python" "-bb" "-Wd"
+ "-m" "unittest" "discover"
+ "-s" "pyperf/tests/" "-v")))))))
+ (native-inputs
+ (list python-psutil))
+ (home-page "https://github.com/psf/pyperf")
+ (synopsis "Toolkit for running Python benchmarks")
+ (description "The Python @code{pyperf} module is a toolkit for writing,
+running and analyzing benchmarks. It features a simple API that can:
+
+@itemize
+@item automatically calibrate a benchmark for a time budget;
+@item spawn multiple worker processes;
+@item compute the mean and standard deviation;
+@item detect if a benchmark result seems unstable;
+@item store benchmark results in JSON format;
+@item support multiple units: seconds, bytes and integer.
+@end itemize")
+ (license license:expat)))
+
(define-public python-pydispatcher
(package
(name "python-pydispatcher")