[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
75/142: gnu: python-matplotlib: Update to 3.5.1 and run tests in paralle
From: |
guix-commits |
Subject: |
75/142: gnu: python-matplotlib: Update to 3.5.1 and run tests in parallel. |
Date: |
Mon, 10 Jan 2022 13:07:24 -0500 (EST) |
apteryx pushed a commit to branch version-1.4.0
in repository guix.
commit ea0ed65c5928f49de3963911e8ec917e90a7941f
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Tue Dec 21 10:33:08 2021 -0500
gnu: python-matplotlib: Update to 3.5.1 and run tests in parallel.
* gnu/packages/python-xyz.scm (python-matplotlib): Update to 3.5.1.
[propagated-inputs]: Add python-fonttools, python-wxpython
and python-packaging.
[native-inputs]: Remove python-mock, python-wheel, unzip and jquery-ui.
Add python-pytest-timeout, python-pytest-xdist, python-setuptools-scm and
python-setuptools-scm-git-archive.
[phases]: Delete trailing #t.
{pretend-version}: New phase.
{install-jquery-ui}: Delete phase.
{check}: Honor TESTS?. Do not skip webagg tests anymore. Invoke using
'-n' argument to run tests in parallel via pytest-xdist.
{configure-environment}: Do not set LD_LIBRARY_PATH nor HOME. Rename
setup.cfg to mplsetup.cfg. Set the backend to Agg.
---
gnu/packages/python-xyz.scm | 169 +++++++++++++++++++++-----------------------
1 file changed, 79 insertions(+), 90 deletions(-)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d3ca531f68..7d64e151be 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -6215,17 +6215,19 @@ comparison.
(define-public python-matplotlib
(package
(name "python-matplotlib")
- (version "3.4.3")
+ (version "3.5.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "matplotlib" version))
(sha256
- (base32 "06032j0ccjxldx4z9kf97qps2g36mfgvy1nap3b9n75kzmnm4kzw"))))
+ (base32 "076f8qi265x8jy89c03r3vv5h4is4ir5mawwrrrpp96314783sdj"))))
(build-system python-build-system)
- (propagated-inputs ; the following packages are all needed at run time
+ (propagated-inputs ; the following packages are all needed at run time
`(("python-cycler" ,python-cycler)
+ ("python-fonttools" ,python-fonttools)
("python-kiwisolver" ,python-kiwisolver)
+ ("python-packaging" ,python-packaging)
("python-pyparsing" ,python-pyparsing)
("python-pygobject" ,python-pygobject)
("python-certifi" ,python-certifi)
@@ -6236,6 +6238,7 @@ comparison.
("python-pillow" ,python-pillow)
("python-pytz" ,python-pytz)
("python-six" ,python-six)
+ ("python-wxpython" ,python-wxpython)
;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context'
;; object. For this reason we need to import both libraries.
@@ -6248,101 +6251,87 @@ comparison.
qhull
cairo
glib
- ;; FIXME: Add backends when available.
- ;("python-wxpython" ,python-wxpython)
tcl
tk))
(native-inputs
`(("pkg-config" ,pkg-config)
("python-pytest" ,python-pytest)
- ("python-mock" ,python-mock)
- ("python-wheel" ,python-wheel)
- ("unzip" ,unzip)
- ("jquery-ui"
- ,(origin
- (method url-fetch)
- (uri "https://jqueryui.com/resources/download/jquery-ui-1.12.1.zip")
- (sha256
- (base32
- "0kb21xf38diqgxcdi1z3s9ssq36pldvyqxy56hn6pcva6rs3c8zq"))))))
+ ("python-pytest-timeout" ,python-pytest-timeout)
+ ("python-pytest-xdist" ,python-pytest-xdist)
+ ("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-setuptools-scm-git-archive"
,python-setuptools-scm-git-archive)))
(arguments
- `(#:phases
- (modify-phases %standard-phases
- ;; XXX We disable all image comparison tests because we're using a
- ;; newer version of FreeType than matplotlib expects. This leads to
- ;; minor differences throughout the tests.
- (add-after 'unpack 'fix-and-disable-failing-tests
- (lambda _
- (substitute* (append (find-files "lib/matplotlib/tests/"
- "test_.*\\.py$")
- (find-files "lib/mpl_toolkits/tests"
- "test_.*\\.py$"))
- (("^from matplotlib" match)
- (string-append "import pytest\n" match))
- (("( *)@([^_]+_)*(image_comparison|check_figures_equal)" match
- indent)
- (string-append indent
- "@pytest.mark.skip(reason=\"unknown minor image
differences\")\n"
- match)))
- (substitute* "lib/matplotlib/tests/test_animation.py"
- (("/bin/sh") (which "sh")))
- (for-each delete-file
- ;; test_normal_axes, test_get_tightbbox_polar
- '("lib/matplotlib/tests/test_axes.py"
- "lib/matplotlib/tests/test_polar.py"
- ;; We don't use the webagg backend and this test
- ;; forces it.
- "lib/matplotlib/tests/test_backend_webagg.py"
- ;; test_outward_ticks
- "lib/matplotlib/tests/test_tightlayout.py"
- ;; test_hidden_axes fails with minor extent
- ;; differences, possibly due to the use of a
- ;; different version of FreeType.
- "lib/matplotlib/tests/test_constrainedlayout.py"
- ;; Fontconfig returns no fonts.
- "lib/matplotlib/tests/test_font_manager.py"))
- #t))
- (add-before 'install 'install-jquery-ui
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (let* ((python-version (python-version
- (assoc-ref inputs "python")))
- (dir
- (string-append (assoc-ref outputs "out")
- "/lib/python" python-version
- "/site-packages"
- "/matplotlib/backends/web_backend/")))
- (mkdir-p dir)
- (invoke "unzip"
- (assoc-ref inputs "jquery-ui")
- "-d" dir))
- #t))
- (replace 'check
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- (invoke "python" "tests.py" "-v"
- "-m" "not network and not webagg")))
- (add-before 'build 'configure-environment
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (let ((cairo (assoc-ref inputs "cairo")))
- ;; Setting this directory in the 'basedirlist' of 'setup.cfg'
- ;; has not effect.
- (setenv "LD_LIBRARY_PATH" (string-append cairo "/lib"))
- (setenv "HOME" (getcwd))
- ;; Fix rounding errors when using the x87 FPU.
- (when (string-prefix? "i686" ,(%current-system))
- (setenv "CFLAGS" "-ffloat-store"))
- (call-with-output-file "setup.cfg"
- (lambda (port)
- (format port "[libs]~%
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'pretend-version
+ ;; The version string is usually derived via setuptools-scm, but
+ ;; without the git metadata available, the version string is set to
+ ;; '0.0.0'.
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))
+ (add-after 'unpack 'fix-and-disable-failing-tests
+ ;; XXX: Disable all image comparison tests because we're using a
+ ;; newer version of FreeType than matplotlib expects. This leads
+ ;; to minor differences throughout the tests.
+ (lambda _
+ (substitute* (append (find-files "lib/matplotlib/tests/"
+ "test_.*\\.py$")
+ (find-files "lib/mpl_toolkits/tests"
+ "test_.*\\.py$"))
+ (("^from matplotlib" match)
+ (string-append "import pytest\n" match))
+ (("( *)@([^_]+_)*(image_comparison|check_figures_equal)" match
+ indent)
+ (string-append indent "@pytest.mark.skip(\
+reason=\"unknown minor image differences\")\n" match)))
+ (substitute* "lib/matplotlib/tests/test_animation.py"
+ (("/bin/sh") (which "sh")))
+ (for-each delete-file
+ ;; test_normal_axes, test_get_tightbbox_polar
+ '("lib/matplotlib/tests/test_axes.py"
+ "lib/matplotlib/tests/test_polar.py"
+ ;; We don't use the webagg backend and this test
+ ;; forces it.
+ "lib/matplotlib/tests/test_backend_webagg.py"
+ ;; test_outward_ticks
+ "lib/matplotlib/tests/test_tightlayout.py"
+ ;; test_hidden_axes fails with minor extent
+ ;; differences, possibly due to the use of a
+ ;; different version of FreeType.
+ "lib/matplotlib/tests/test_constrainedlayout.py"
+ ;; Fontconfig returns no fonts.
+ "lib/matplotlib/tests/test_font_manager.py"))))
+ (add-before 'build 'configure-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Fix rounding errors when using the x87 FPU.
+ (when (string-prefix? "i686" #$(%current-system))
+ (setenv "CFLAGS" "-ffloat-store"))
+ (call-with-output-file "mplsetup.cfg"
+ (lambda (port)
+ (format port "\
+[libs]
system_freetype = true
system_qhull = true
-[directories]~%
-basedirlist = ~a,~a~%
-[packages]~%
-tests = True~%"
- (assoc-ref inputs "tcl")
- (assoc-ref inputs "tk")))))
- #t)))))
+
+[rc_options]
+backend=Agg
+
+[directories]
+basedirlist = ~a,~a
+
+[packages]
+tests = True~%" (assoc-ref inputs "tcl") (assoc-ref inputs "tk"))))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Step out of the source directory to avoid interference.
+ (with-directory-excursion "/tmp"
+ ;; Run the installed tests, which is what we want since not
+ ;; everything gets built in the source directory.
+ (invoke "pytest"
+ "-n" (number->string (parallel-job-count))
+ "-m" "not network" "--pyargs" "matplotlib"))))))))
(home-page "https://matplotlib.org/")
(synopsis "2D plotting library for Python")
(description
- 46/142: gnu: libxkbcommon: Add python to native inputs., (continued)
- 46/142: gnu: libxkbcommon: Add python to native inputs., guix-commits, 2022/01/10
- 49/142: gnu: pangomm: Add python to native inputs., guix-commits, 2022/01/10
- 58/142: gnu: glade3: Add python to native inputs., guix-commits, 2022/01/10
- 55/142: gnu: python-msgpack: Update to 1.0.3., guix-commits, 2022/01/10
- 59/142: gnu: python-curio: Disable newly failing 'test_timeout' test., guix-commits, 2022/01/10
- 07/142: gnu: python-tomli: Update to 2.0.0., guix-commits, 2022/01/10
- 22/142: gnu: cairo: Use bash-minimal unconditionally., guix-commits, 2022/01/10
- 40/142: gnu: gnome-backgrounds: Update to 41.0., guix-commits, 2022/01/10
- 43/142: gnu: epiphany: Update to 41.2., guix-commits, 2022/01/10
- 45/142: gnu: wayland-protocols: Add python to native inputs., guix-commits, 2022/01/10
- 75/142: gnu: python-matplotlib: Update to 3.5.1 and run tests in parallel.,
guix-commits <=
- 87/142: gnu: python-pysam: Update to 0.18.0., guix-commits, 2022/01/10
- 90/142: gnu: python-igraph: Update to 0.9.8., guix-commits, 2022/01/10
- 91/142: gnu: tbb-2020: Use ld.gold to work around segfaults in check phase., guix-commits, 2022/01/10
- 103/142: gnu: python-scikit-learn: Remove obsolete phase., guix-commits, 2022/01/10
- 104/142: gnu: jalv-select: Remove obsolete phase., guix-commits, 2022/01/10
- 102/142: gnu: go-ipfs: Remove obsolete phase., guix-commits, 2022/01/10
- 106/142: gnu: helm: Remove obsolete phase., guix-commits, 2022/01/10
- 113/142: gnu: meson: Update to 0.60.3., guix-commits, 2022/01/10
- 114/142: gnu: glib: Update to 2.70.2., guix-commits, 2022/01/10
- 128/142: gnu: rust: Use rust-1.57.0., guix-commits, 2022/01/10