diff options
author | Paul A. Patience <paul@apatience.com> | 2022-05-02 21:17:17 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-05-23 16:24:47 +0200 |
commit | 62f16063a1eae0be6242a27dead1e2430b40a2d6 (patch) | |
tree | db710cec2773930e9881cb2a28fcf2a9e4340cef | |
parent | 6803a29db4b3cd8eafd9b2c153876f66ae65d32b (diff) | |
download | guix-patches-62f16063a1eae0be6242a27dead1e2430b40a2d6.tar guix-patches-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>
-rw-r--r-- | gnu/packages/python-xyz.scm | 47 |
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") |