summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorAdam J. Stewart <ajstewart426@gmail.com>2022-10-05 15:36:37 -0500
committerGitHub <noreply@github.com>2022-10-05 13:36:37 -0700
commit760294b402002c0bbd91fdcdf423dc97383533c3 (patch)
tree0b5bb404bc669c4ee5cde342a3f80cc307645ab1 /var
parent417760e82927eafa6deeb3baeba7d428d3c87036 (diff)
downloadspack-760294b402002c0bbd91fdcdf423dc97383533c3.tar.gz
spack-760294b402002c0bbd91fdcdf423dc97383533c3.tar.bz2
spack-760294b402002c0bbd91fdcdf423dc97383533c3.tar.xz
spack-760294b402002c0bbd91fdcdf423dc97383533c3.zip
py-matplotlib: add v3.6.0, new backends (#32697)
* py-matplotlib: add v3.6.0, new backends * [@spackbot] updating style on behalf of adamjstewart * Undo conditional variant hack * Update dependencies Co-authored-by: adamjstewart <adamjstewart@users.noreply.github.com>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/py-contourpy/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-matplotlib/package.py171
2 files changed, 134 insertions, 58 deletions
diff --git a/var/spack/repos/builtin/packages/py-contourpy/package.py b/var/spack/repos/builtin/packages/py-contourpy/package.py
new file mode 100644
index 0000000000..757363bbf8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-contourpy/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class PyContourpy(PythonPackage):
+ """Python library for calculating contours of 2D quadrilateral grids."""
+
+ homepage = "https://github.com/contourpy/contourpy"
+ pypi = "contourpy/contourpy-1.0.5.tar.gz"
+
+ version("1.0.5", sha256="896631cd40222aef3697e4e51177d14c3709fda49d30983269d584f034acc8a4")
+
+ depends_on("python@3.7:", type=("build", "link", "run"))
+ depends_on("py-build", type="build")
+ depends_on("py-pybind11@2.6:", type=("build", "link"))
+ depends_on("py-setuptools@42:", type="build")
+ depends_on("py-numpy@1.16:", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py
index bd94c66f99..cd36571f54 100644
--- a/var/spack/repos/builtin/packages/py-matplotlib/package.py
+++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py
@@ -37,6 +37,7 @@ class PyMatplotlib(PythonPackage):
"pylab",
]
+ version("3.6.0", sha256="c5108ebe67da60a9204497d8d403316228deb52b550388190c53a57394d41531")
version("3.5.3", sha256="339cac48b80ddbc8bfd05daae0a3a73414651a8596904c2a881cfd1edb65f26c")
version("3.5.2", sha256="48cf850ce14fa18067f2d9e0d646763681948487a8080ec0af2686468b4607a2")
version("3.5.1", sha256="b2e9810e09c3a47b73ce9cab5a72243a1258f61e7900969097a817232246ce1c")
@@ -69,22 +70,43 @@ class PyMatplotlib(PythonPackage):
# https://matplotlib.org/tutorials/introductory/usage.html#backends
# From `lib/matplotlib/rcsetup.py`:
interactive_bk = [
+ # GTK
+ conditional("gtk", when="@:2"),
+ conditional("gtkagg", when="@:2"),
+ conditional("gtkcairo", when="@:2"),
"gtk3agg",
"gtk3cairo",
- "macosx",
- "nbagg",
- "qt4agg",
- "qt4cairo",
+ conditional("gtk4agg", when="@3.5:"),
+ conditional("gtk4cairo", when="@3.5:"),
+ # Qt
+ conditional("qtagg", when="@3.5:"),
+ conditional("qtcairo", when="@3.5:"),
+ conditional("qt4agg", when="@:3.4"),
+ conditional("qt4cairo", when="@2.2:3.4"),
"qt5agg",
- "qt5cairo",
+ conditional("qt5cairo", when="@2.2:"),
+ # Tk
"tkagg",
"tkcairo",
- "webagg",
+ # Wx
"wx",
"wxagg",
- "wxcairo",
+ conditional("wxcairo", when="@2.2:"),
+ # Other
+ "macosx",
+ "nbagg",
+ "webagg",
+ ]
+ non_interactive_bk = [
+ "agg",
+ "cairo",
+ conditional("gdk", when="@:2"),
+ "pdf",
+ "pgf",
+ "ps",
+ "svg",
+ "template",
]
- non_interactive_bk = ["agg", "cairo", "pdf", "pgf", "ps", "svg", "template"]
all_backends = interactive_bk + non_interactive_bk
default_backend = "agg"
@@ -101,91 +123,124 @@ class PyMatplotlib(PythonPackage):
)
variant("movies", default=False, description="Enable support for saving movies")
variant("animation", default=False, description="Enable animation support")
- variant("image", default=True, description="Enable reading/saving JPEG, BMP and TIFF files")
+ variant(
+ "image",
+ default=True,
+ when="@:3.2",
+ description="Enable reading/saving JPEG, BMP and TIFF files",
+ )
variant("latex", default=False, description="Enable LaTeX text rendering support")
variant("fonts", default=False, description="Enable support for system font detection")
# https://matplotlib.org/stable/devel/dependencies.html
- # Required dependencies
+ # Runtime dependencies
+ # Mandatory dependencies
extends("python", ignore=r"bin/nosetests.*$|bin/pbr$")
- depends_on("python@2.7:2.8,3.4:", when="@:2", type=("build", "link", "run"))
- depends_on("python@3.5:", when="@3:", type=("build", "link", "run"))
- depends_on("python@3.6:", when="@3.1:", type=("build", "link", "run"))
+ depends_on("python@3.8:", when="@3.6:", type=("build", "link", "run"))
depends_on("python@3.7:", when="@3.4:", type=("build", "link", "run"))
- depends_on("freetype@2.3:") # freetype 2.6.1 needed for tests to pass
- depends_on("qhull@2020.2:", when="@3.4:")
- # starting from qhull 2020.2 libqhull.so on which py-matplotlib@3.3 versions
- # rely on does not exist anymore, only libqhull_r.so
- depends_on("qhull@2015.2:2020.1", when="@3.3.0:3.3")
- depends_on("libpng@1.2:")
- depends_on("py-setuptools", type=("build", "run")) # See #3813
- depends_on("py-certifi@2020.6.20:", when="@3.3.1:", type="build")
- depends_on("py-setuptools-scm@4:6", when="@3.5:", type="build")
- depends_on("py-setuptools-scm-git-archive", when="@3.5:", type="build")
+ depends_on("python@3.6:", when="@3.1:", type=("build", "link", "run"))
+ depends_on("python@3.5:", when="@3:", type=("build", "link", "run"))
+ depends_on("python@2.7:2.8,3.4:", when="@:2", type=("build", "link", "run"))
+ depends_on("py-contourpy@1.0.1:", when="@3.6:", type=("build", "run"))
depends_on("py-cycler@0.10:", type=("build", "run"))
depends_on("py-fonttools@4.22:", when="@3.5:", type=("build", "run"))
depends_on("py-kiwisolver@1.0.1:", type=("build", "run"), when="@2.2.0:")
- depends_on("py-numpy@1.11:", type=("build", "run"))
- depends_on("py-numpy@1.15:", when="@3.3:", type=("build", "run"))
- depends_on("py-numpy@1.16:", when="@3.4:", type=("build", "run"))
+ depends_on("py-numpy@1.19:", when="@3.6:", type=("build", "run"))
depends_on("py-numpy@1.17:", when="@3.5:", type=("build", "run"))
+ depends_on("py-numpy@1.16:", when="@3.4:", type=("build", "run"))
+ depends_on("py-numpy@1.15:", when="@3.3:", type=("build", "run"))
+ depends_on("py-numpy@1.11:", type=("build", "run"))
+ depends_on("py-packaging@20:", when="@3.6:", type=("build", "run"))
depends_on("py-packaging", when="@3.5:", type=("build", "run"))
depends_on("pil@6.2:", when="@3.3:", type=("build", "run"))
- depends_on("py-pyparsing@2.0.3,2.0.5:2.1.1,2.1.3:2.1.5,2.1.7:", type=("build", "run"))
depends_on("py-pyparsing@2.2.1:", when="@3.4:", type=("build", "run"))
- depends_on("py-python-dateutil@2.1:", type=("build", "run"))
+ depends_on("py-pyparsing@2.0.3,2.0.5:2.1.1,2.1.3:2.1.5,2.1.7:", type=("build", "run"))
depends_on("py-python-dateutil@2.7:", when="@3.4:", type=("build", "run"))
- depends_on("py-pytz", type=("build", "run"), when="@:2")
- depends_on("py-subprocess32", type=("build", "run"), when="^python@:2.7")
- depends_on("py-functools32", type=("build", "run"), when="@:2.0 ^python@:2.7")
+ depends_on("py-python-dateutil@2.1:", type=("build", "run"))
+ depends_on("py-setuptools", type=("build", "run"))
+
+ # Historical dependencies
depends_on(
"py-backports-functools-lru-cache", type=("build", "run"), when="@2.1.0:2 ^python@:2"
)
- depends_on("py-six@1.10.0:", type=("build", "run"), when="@2.0:2")
+ depends_on("py-functools32", type=("build", "run"), when="@:2.0 ^python@:2.7")
+ depends_on("py-pytz", type=("build", "run"), when="@:2")
+ depends_on("py-six@1.10.0:", type=("build", "run"), when="@2")
depends_on("py-six@1.9.0:", type=("build", "run"), when="@:1")
+ depends_on("py-subprocess32", type=("build", "run"), when="^python@:2.7")
- # Optional backend dependencies
- depends_on("tk@8.3:8.5,8.6.2:", when="backend=tkagg", type="run")
- depends_on("tk@8.3:8.5,8.6.2:", when="backend=tkcairo", type="run")
- depends_on("python+tkinter", when="backend=tkagg", type="run")
- depends_on("python+tkinter", when="backend=tkcairo", type="run")
- depends_on("py-pyqt4@4.6:", when="backend=qt4agg", type="run") # or py-pyside@1.0.3:
- depends_on("py-pyqt4@4.6:", when="backend=qt4cairo", type="run") # or py-pyside@1.0.3:
- depends_on("py-pyqt5", when="backend=qt5agg", type="run")
- depends_on("py-pyqt5", when="backend=qt5cairo", type="run")
- depends_on("py-pygobject", when="backend=gtk3agg", type="run")
- depends_on("py-pygobject", when="backend=gtk3cairo", type="run")
- depends_on("py-wxpython@4:", when="backend=wx", type="run")
- depends_on("py-wxpython@4:", when="backend=wxagg", type="run")
- depends_on("py-wxpython@4:", when="backend=wxcairo", type="run")
- depends_on("py-cairocffi@0.8:", when="backend=gtk3cairo", type="run")
- depends_on("py-cairocffi@0.8:", when="backend=qt4cairo", type="run")
- depends_on("py-cairocffi@0.8:", when="backend=qt5cairo", type="run")
- depends_on("py-cairocffi@0.8:", when="backend=tkcairo", type="run")
- depends_on("py-cairocffi@0.8:", when="backend=wxcairo", type="run")
- depends_on("py-cairocffi@0.8:", when="backend=cairo", type="run")
- depends_on("py-tornado", when="backend=webagg", type="run")
+ # Optional dependencies
+ # Backends
+ # Tk
+ for backend in ["tkagg", "tkcairo"]:
+ depends_on("tk@8.4:8.5,8.6.2:", when="backend=" + backend, type="run")
+ depends_on("python+tkinter", when="backend=" + backend, type="run")
+ # Qt
+ for backend in ["qt4agg", "qt4cairo"]:
+ depends_on("py-pyqt4@4.6:", when="backend=" + backend, type="run")
+ for backend in ["qt5agg", "qt5cairo"]:
+ depends_on("py-pyqt5", when="backend=" + backend, type="run")
+ # https://github.com/spack/spack/pull/32696
+ # for backend in ["qtagg", "qtcairo"]:
+ # depends_on("py-pyqt6@6.1:", when="backend=" + backend, type="run")
+ # GTK
+ for backend in ["gtk", "gtkagg", "gtkcairo", "gtk3agg", "gtk3cairo", "gtk4agg", "gtk4cairo"]:
+ depends_on("py-pygobject", when="backend=" + backend, type="run")
+ depends_on("py-pycairo@1.14:", when="backend=" + backend, type="run")
+ # Cairo
+ for backend in [
+ "gtkcairo",
+ "gtk3cairo",
+ "gtk4cairo",
+ "qtcairo",
+ "qt4cairo",
+ "qt5cairo",
+ "tkcairo",
+ "wxcairo",
+ "cairo",
+ ]:
+ depends_on("py-pycairo@1.14:", when="backend=" + backend, type="run")
+ # Wx
+ for backend in ["wx", "wxagg", "wxcairo"]:
+ depends_on("py-wxpython@4:", when="backend=" + backend, type="run")
+ # Other
+ depends_on("py-tornado@5:", when="backend=webagg", type="run")
+ depends_on("py-ipykernel", when="backend=nbagg", type="run")
# Optional dependencies
depends_on("ffmpeg", when="+movies")
depends_on("imagemagick", when="+animation")
depends_on("pil@3.4:", when="+image", type=("build", "run"))
depends_on("texlive", when="+latex", type="run")
- depends_on("ghostscript@9.0:", when="+latex", type="run")
+ depends_on("ghostscript@9:", when="+latex", type="run")
depends_on("fontconfig@2.7:", when="+fonts")
depends_on("pkgconfig", type="build")
+ # C libraries
+ depends_on("freetype@2.3:") # freetype 2.6.1 needed for tests to pass
+ depends_on("qhull@2020.2:", when="@3.4:")
+ # starting from qhull 2020.2 libqhull.so on which py-matplotlib@3.3 versions
+ # rely on does not exist anymore, only libqhull_r.so
+ depends_on("qhull@2015.2:2020.1", when="@3.3")
+ depends_on("libpng@1.2:")
+
+ # Dependencies for building matplotlib
+ # Setup dependencies
+ depends_on("py-certifi@2020.6.20:", when="@3.3.1:", type="build")
+ depends_on("py-setuptools-scm@7:", when="@3.6:", type="build")
+ depends_on("py-setuptools-scm@4:6", when="@3.5", type="build")
+ depends_on("py-setuptools-scm-git-archive", when="@3.5", type="build")
+
# Testing dependencies
# https://matplotlib.org/stable/devel/development_setup.html#additional-dependencies-for-testing
depends_on("py-pytest@3.6:", type="test")
depends_on("ghostscript@9.0:", type="test")
- # depends_on('inkscape@:0', type='test')
+ # depends_on("inkscape@:0", type="test")
- msg = "MacOSX backend requires the Cocoa headers included with XCode"
+ msg = "MacOSX backend requires macOS 10.12+"
conflicts("platform=linux", when="backend=macosx", msg=msg)
conflicts("platform=cray", when="backend=macosx", msg=msg)
-
- conflicts("~image", when="@3.3:", msg="Pillow is no longer an optional dependency")
+ conflicts("platform=windows", when="backend=macosx", msg=msg)
# https://github.com/matplotlib/matplotlib/pull/21662
patch("matplotlibrc.patch", when="@3.5.0")