Compare commits

...

34 Commits
f32 ... f34

Author SHA1 Message Date
Elliott Sales de Andrade
93f88a6307 Fix return type in get_data_path patch. 2021-08-25 16:14:19 -04:00
Elliott Sales de Andrade
853e3b217e Update to latest version (#1993426) 2021-08-13 17:59:24 -04:00
Elliott Sales de Andrade
d4f07f68ab Update to latest version. 2021-05-08 05:13:33 -04:00
Elliott Sales de Andrade
e71d6832cc Update to latest version. 2021-03-31 22:18:34 -04:00
Elliott Sales de Andrade
dbe22df6a2 Update to latest release candidate. 2021-03-11 03:20:23 -05:00
Elliott Sales de Andrade
4ed16b6299 Add another LaTeX cache primer. 2021-02-19 17:30:02 -05:00
Elliott Sales de Andrade
ca0fc90842 Update to 3.4.0rc1. 2021-02-19 17:30:01 -05:00
Elliott Sales de Andrade
50a5dee18f Deprecate python3-matplotlib-qt4 subpackage. 2021-02-19 17:25:34 -05:00
Troy Dawson
15d6bc1d48 Add build deps that were only getting pulled in by other dependencies 2021-02-16 09:19:37 -08:00
Tomas Popela
4e3179c9e2 Conditionalize the WX backend
And disable it on RHEL 8+ as WX is not available there.
2021-02-01 12:43:42 +01:00
Tomas Popela
c4148f5979 Drop the ImageMagick build requirement on ELN/RHEL
No ImageMagick available on RHEL 8+
2021-02-01 08:09:28 +01:00
Elliott Sales de Andrade
171d221430 Update to 3.3.4. 2021-01-28 04:31:52 -05:00
Fedora Release Engineering
2b82ad2a3b - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 11:38:22 +00:00
Elliott Sales de Andrade
98cb5a1a9b Fix bug with running LaTeX tests in parallel. 2021-01-27 01:26:04 -05:00
Elliott Sales de Andrade
ac8946e2f5 Merge remote-tracking branch 'refs/remotes/origin/master' 2021-01-21 02:22:27 -05:00
Tomas Popela
4cdf22e67a Don't build the Qt 4 backend in ELN/RHEL 9 as Qt 4 won't be available there
Reuse 588e490738
2020-12-02 15:49:09 +01:00
Elliott Sales de Andrade
7da34af983 Remove an old patch. 2020-11-12 19:51:34 -05:00
Elliott Sales de Andrade
c24355dafa Update to latest version. 2020-11-12 01:35:38 -05:00
Elliott Sales de Andrade
e3697cc92e Update to 3.3.2. 2020-09-15 04:15:49 -04:00
Elliott Sales de Andrade
3995507d1b Update to latest version. 2020-08-25 01:54:22 -04:00
Elliott Sales de Andrade
ad9824fe33 Re-enable wx test on ppc64le.
The bug appears to have been fixed.
2020-08-13 04:11:19 -04:00
Fedora Release Engineering
f853587a87 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 02:04:15 +00:00
Elliott Sales de Andrade
4524214523 Modernize some macro usage. 2020-07-19 02:41:39 -04:00
Elliott Sales de Andrade
26c79f2797 Update to latest version. 2020-07-19 02:41:37 -04:00
Elliott Sales de Andrade
c7c1d89af8 Don't install Inkscape on s390x.
It appears to be buggy and produce incorrect test results.
2020-06-30 21:09:32 -04:00
Elliott Sales de Andrade
9d428b07ae Add more test dependencies. 2020-06-30 05:42:19 -04:00
Elliott Sales de Andrade
037e6aee2b Update to 3.3.0rc1. 2020-06-29 20:38:52 -04:00
Elliott Sales de Andrade
02546b29b2 Make texlive dependencies more explicit. 2020-06-20 05:02:11 -04:00
Elliott Sales de Andrade
107b5a1d51 Sort texlive packages, by type, then name. 2020-06-20 04:48:13 -04:00
Elliott Sales de Andrade
8d41fb7796 Remove old file exclusions. 2020-06-20 04:28:59 -04:00
Elliott Sales de Andrade
d52452b8de Merge branch 'f32' 2020-06-20 04:22:53 -04:00
Miro Hrončok
713ad4038b Only recommend texlive-dvipng (but require it if texlive is installed)
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1509657
See also https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/ZGQJOTPJLK4JDB763ZS2MM46BDDKUGA3/
2020-06-02 11:48:59 +02:00
Miro Hrončok
d613f4be7e Rebuilt for Python 3.9 2020-05-25 16:22:25 +02:00
Miro Hrončok
f5b673f304 Add explicit texlive BRs 2020-05-21 16:04:47 +02:00
12 changed files with 434 additions and 1452 deletions

19
.gitignore vendored
View File

@@ -49,3 +49,22 @@ matplotlib-1.0.0-without-gpc.tar.gz
/matplotlib-3.2.1.tar.gz /matplotlib-3.2.1.tar.gz
/matplotlib-3.2.2.tar.gz /matplotlib-3.2.2.tar.gz
/matplotlib-3.2.2-with-freetype-2.10.1.tar.gz /matplotlib-3.2.2-with-freetype-2.10.1.tar.gz
/matplotlib-3.3.0rc1.tar.gz
/matplotlib-3.3.0rc1-with-freetype-2.10.1.tar.gz
/matplotlib-3.3.0.tar.gz
/matplotlib-3.3.0-with-freetype-2.10.2.tar.gz
/matplotlib-3.3.1.tar.gz
/matplotlib-3.3.2.tar.gz
/matplotlib-3.3.3.tar.gz
/matplotlib-3.3.3-with-freetype-2.10.4.tar.gz
/matplotlib-3.3.4.tar.gz
/matplotlib-3.4.0rc1.tar.gz
/matplotlib-3.4.0rc1-with-freetype-2.10.4.tar.gz
/matplotlib-3.4.0rc3.tar.gz
/matplotlib-3.4.1.tar.gz
/matplotlib-3.4.1-with-freetype-2.10.4.tar.gz
/matplotlib-3.4.2.tar.gz
/matplotlib-3.4.1-with-freetype-2.11.0.tar.gz
/matplotlib-3.4.3.tar.gz
/matplotlib-3.4.3-with-freetype-2.10.4.tar.gz
/matplotlib-3.4.3-with-freetype-2.11.0.tar.gz

View File

@@ -1,37 +0,0 @@
From ee5c28ea8cd17cbc04d5a9b79d5ce1326df93466 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Fri, 30 Mar 2018 03:15:51 -0400
Subject: [PATCH] Force using system qhull.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
setupext.py | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/setupext.py b/setupext.py
index 3e8b382cc..66a278b0c 100644
--- a/setupext.py
+++ b/setupext.py
@@ -838,14 +838,12 @@ class Png(SetupPackage):
class Qhull(SetupPackage):
name = "qhull"
+ def check(self):
+ self.__class__.found_external = True
+ return ' Using system copy.'
+
def add_flags(self, ext):
- # Qhull doesn't distribute pkg-config info, so we have no way of
- # knowing whether a system install is recent enough. Thus, always use
- # the vendored version.
- ext.include_dirs.insert(0, 'extern')
- ext.sources.extend(sorted(glob.glob('extern/libqhull/*.c')))
- if sysconfig.get_config_var('LIBM') == '-lm':
- ext.libraries.extend('m')
+ ext.libraries.append('qhull')
class TTConv(SetupPackage):
--
2.21.0

View File

@@ -1,121 +0,0 @@
From a3fec73e39558f1a8d41663fe05783889e735af4 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sat, 2 Mar 2019 18:18:29 -0500
Subject: [PATCH] Use packaged jquery and jquery-ui.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
.../backends/web_backend/all_figures.html | 6 +--
.../backends/web_backend/single_figure.html | 6 +--
setup.py | 54 -------------------
3 files changed, 6 insertions(+), 60 deletions(-)
diff --git a/lib/matplotlib/backends/web_backend/all_figures.html b/lib/matplotlib/backends/web_backend/all_figures.html
index 41f48dc6d..69097eb4f 100644
--- a/lib/matplotlib/backends/web_backend/all_figures.html
+++ b/lib/matplotlib/backends/web_backend/all_figures.html
@@ -3,9 +3,9 @@
<link rel="stylesheet" href="{{ prefix }}/_static/css/page.css" type="text/css">
<link rel="stylesheet" href="{{ prefix }}/_static/css/boilerplate.css" type="text/css" />
<link rel="stylesheet" href="{{ prefix }}/_static/css/fbm.css" type="text/css" />
- <link rel="stylesheet" href="{{ prefix }}/_static/jquery-ui-1.12.1/jquery-ui.min.css" >
- <script src="{{ prefix }}/_static/jquery-ui-1.12.1/external/jquery/jquery.js"></script>
- <script src="{{ prefix }}/_static/jquery-ui-1.12.1/jquery-ui.min.js"></script>
+ <link rel="stylesheet" href="/usr/share/javascript/jquery_ui/jquery-ui.min.css" >
+ <script src="/usr/share/javascript/jquery/latest/jquery.min.js"></script>
+ <script src="/usr/share/javascript/jquery_ui/jquery-ui.min.js"></script>
<script src="{{ prefix }}/_static/js/mpl_tornado.js"></script>
<script src="{{ prefix }}/js/mpl.js"></script>
diff --git a/lib/matplotlib/backends/web_backend/single_figure.html b/lib/matplotlib/backends/web_backend/single_figure.html
index 4d5a366fb..c11c86618 100644
--- a/lib/matplotlib/backends/web_backend/single_figure.html
+++ b/lib/matplotlib/backends/web_backend/single_figure.html
@@ -3,9 +3,9 @@
<link rel="stylesheet" href="{{ prefix }}/_static/css/page.css" type="text/css">
<link rel="stylesheet" href="{{ prefix }}/_static/css/boilerplate.css" type="text/css" />
<link rel="stylesheet" href="{{ prefix }}/_static/css/fbm.css" type="text/css" />
- <link rel="stylesheet" href="{{ prefix }}/_static/jquery-ui-1.12.1/jquery-ui.min.css" >
- <script src="{{ prefix }}/_static/jquery-ui-1.12.1/external/jquery/jquery.js"></script>
- <script src="{{ prefix }}/_static/jquery-ui-1.12.1/jquery-ui.min.js"></script>
+ <link rel="stylesheet" href="/usr/share/javascript/jquery_ui/jquery-ui.min.css" >
+ <script src="/usr/share/javascript/jquery/latest/jquery.min.js"></script>
+ <script src="/usr/share/javascript/jquery_ui/jquery-ui.min.js"></script>
<script src="{{ prefix }}/_static/js/mpl_tornado.js"></script>
<script src="{{ prefix }}/js/mpl.js"></script>
<script>
diff --git a/setup.py b/setup.py
index bf03159fb..81c2f96d7 100644
--- a/setup.py
+++ b/setup.py
@@ -28,8 +28,6 @@ from zipfile import ZipFile
from setuptools import setup, find_packages, Extension
from setuptools.command.build_ext import build_ext as BuildExtCommand
-from setuptools.command.develop import develop as DevelopCommand
-from setuptools.command.install_lib import install_lib as InstallLibCommand
from setuptools.command.test import test as TestCommand
# The setuptools version of sdist adds a setup.cfg file to the tree.
@@ -120,58 +118,6 @@ cmdclass['test'] = NoopTestCommand
cmdclass['build_ext'] = BuildExtraLibraries
-def _download_jquery_to(dest):
- # Note: When bumping the jquery-ui version, also update the versions in
- # single_figure.html and all_figures.html.
- url = "https://jqueryui.com/resources/download/jquery-ui-1.12.1.zip"
- sha = "f8233674366ab36b2c34c577ec77a3d70cac75d2e387d8587f3836345c0f624d"
- name = Path(url).stem
- if (dest / name).exists():
- return
- # If we are installing from an sdist, use the already downloaded jquery-ui.
- sdist_src = Path("lib/matplotlib/backends/web_backend", name)
- if sdist_src.exists():
- shutil.copytree(sdist_src, dest / name)
- return
- if not (dest / name).exists():
- dest.mkdir(parents=True, exist_ok=True)
- try:
- buff = download_or_cache(url, sha)
- except Exception:
- raise IOError(
- "Failed to download jquery-ui. Please download "
- "{url} and extract it to {dest}.".format(url=url, dest=dest))
- with ZipFile(buff) as zf:
- zf.extractall(dest)
-
-
-# Relying on versioneer's implementation detail.
-class sdist_with_jquery(cmdclass['sdist']):
- def make_release_tree(self, base_dir, files):
- super().make_release_tree(base_dir, files)
- _download_jquery_to(
- Path(base_dir, "lib/matplotlib/backends/web_backend/"))
-
-
-# Affects install and bdist_wheel.
-class install_lib_with_jquery(InstallLibCommand):
- def run(self):
- super().run()
- _download_jquery_to(
- Path(self.install_dir, "matplotlib/backends/web_backend/"))
-
-
-class develop_with_jquery(DevelopCommand):
- def run(self):
- super().run()
- _download_jquery_to(Path("lib/matplotlib/backends/web_backend/"))
-
-
-cmdclass['sdist'] = sdist_with_jquery
-cmdclass['install_lib'] = install_lib_with_jquery
-cmdclass['develop'] = develop_with_jquery
-
-
# One doesn't normally see `if __name__ == '__main__'` blocks in a setup.py,
# however, this is needed on Windows to avoid creating infinite subprocesses
# when using multiprocessing.
--
2.25.4

View File

@@ -1,111 +1,43 @@
From 4431ff98f5f95a65378f4fa4b6e6fe02280911bf Mon Sep 17 00:00:00 2001 From 60ab4094d885067c50694d2f11cd640dc5c0f0c6 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com> From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Wed, 27 Sep 2017 19:35:59 -0400 Date: Wed, 27 Sep 2017 19:35:59 -0400
Subject: [PATCH 1/4] matplotlibrc path search fix Subject: [PATCH 1/2] matplotlibrc path search fix
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com> Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
--- ---
lib/matplotlib/__init__.py | 31 ++++----------------------- lib/matplotlib/__init__.py | 5 ++++-
lib/matplotlib/tests/test_rcparams.py | 15 +++++++++---- 1 file changed, 4 insertions(+), 1 deletion(-)
2 files changed, 15 insertions(+), 31 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index fa1caecda..d2bd48800 100644 index 71c68a3d6b..88be8e97b0 100644
--- a/lib/matplotlib/__init__.py --- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py
@@ -654,34 +654,12 @@ def _get_data_path(): @@ -473,7 +473,8 @@ def get_cachedir():
"3.1", name="MATPLOTLIBDATA", obj_type="environment variable") @_logged_cached('matplotlib data path: %s')
return path def get_data_path():
"""Return the path to Matplotlib data."""
- path = Path(__file__).with_name("mpl-data") - return str(Path(__file__).with_name("mpl-data"))
+ path = (Path(__file__).parent.parent.parent.parent.parent / + return str(Path(__file__).parent.parent.parent.parent.parent /
+ 'share/matplotlib/mpl-data') + 'share/matplotlib/mpl-data')
if path.is_dir():
defaultParams['datapath'][0] = str(path)
return str(path)
- cbook.warn_deprecated(
- "3.2", message="Matplotlib installs where the data is not in the "
- "mpl-data subdirectory of the package are deprecated since %(since)s "
- "and support for them will be removed %(removal)s.")
-
- def get_candidate_paths():
- # setuptools' namespace_packages may hijack this init file
- # so need to try something known to be in Matplotlib, not basemap.
- import matplotlib.afm
- yield Path(matplotlib.afm.__file__).with_name('mpl-data')
- # py2exe zips pure python, so still need special check.
- if getattr(sys, 'frozen', None):
- yield Path(sys.executable).with_name('mpl-data')
- # Try again assuming we need to step up one more directory.
- yield Path(sys.executable).parent.with_name('mpl-data')
- # Try again assuming sys.path[0] is a dir not a exe.
- yield Path(sys.path[0]) / 'mpl-data'
-
- for path in get_candidate_paths():
- if path.is_dir():
- defaultParams['datapath'][0] = str(path)
- return str(path)
-
raise RuntimeError('Could not find the matplotlib data files')
@@ -712,8 +690,7 @@ def matplotlib_fname(): def matplotlib_fname():
@@ -493,6 +494,7 @@ def matplotlib_fname():
is not defined) is not defined)
- On other platforms, - On other platforms,
- ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined - ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined
- - Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always + - ``/etc/matplotlibrc``
- exist. - Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always
+ - Lastly, it looks in ``/etc/matplotlibrc``, which should always exist. exist.
""" """
@@ -511,6 +513,7 @@ def matplotlib_fname():
def gen_candidates():
@@ -726,7 +703,7 @@ def matplotlib_fname():
yield matplotlibrc yield matplotlibrc
yield os.path.join(matplotlibrc, 'matplotlibrc') yield os.path.join(matplotlibrc, 'matplotlibrc')
yield os.path.join(get_configdir(), 'matplotlibrc') yield os.path.join(get_configdir(), 'matplotlibrc')
- yield os.path.join(_get_data_path(), 'matplotlibrc')
+ yield '/etc/matplotlibrc' + yield '/etc/matplotlibrc'
yield os.path.join(get_data_path(), 'matplotlibrc')
for fname in gen_candidates(): for fname in gen_candidates():
if os.path.exists(fname) and not os.path.isdir(fname):
diff --git a/lib/matplotlib/tests/test_rcparams.py b/lib/matplotlib/tests/test_rcparams.py
index 87dfbeceb..54885da47 100644
--- a/lib/matplotlib/tests/test_rcparams.py
+++ b/lib/matplotlib/tests/test_rcparams.py
@@ -460,10 +460,17 @@ def test_rcparams_reset_after_fail():
assert mpl.rcParams['text.usetex'] is False
-def test_if_rctemplate_is_up_to_date():
+@pytest.fixture
+def mplrc():
+ # This is the Fedora-specific location.
+ return (Path(__file__).parent.parent.parent.parent.parent.parent.parent /
+ 'etc/matplotlibrc')
+
+
+def test_if_rctemplate_is_up_to_date(mplrc):
# This tests if the matplotlibrc.template file contains all valid rcParams.
deprecated = {*mpl._all_deprecated, *mpl._deprecated_remain_as_none}
- with cbook._get_data_path('matplotlibrc').open() as file:
+ with mplrc.open() as file:
rclines = file.readlines()
missing = {}
for k, v in mpl.defaultParams.items():
@@ -483,10 +490,10 @@ def test_if_rctemplate_is_up_to_date():
.format(missing.items()))
-def test_if_rctemplate_would_be_valid(tmpdir):
+def test_if_rctemplate_would_be_valid(tmpdir, mplrc):
# This tests if the matplotlibrc.template file would result in a valid
# rc file if all lines are uncommented.
- with cbook._get_data_path('matplotlibrc').open() as file:
+ with mplrc.open() as file:
rclines = file.readlines()
newlines = []
for line in rclines:
-- --
2.25.4 2.31.1

View File

@@ -1,106 +0,0 @@
From c61647b9604ce6538fa28b807d094056b005258d Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Fri, 14 Feb 2020 06:05:42 -0500
Subject: [PATCH 2/4] Set FreeType version to 2.10.1 and update tolerances.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/__init__.py | 2 +-
lib/matplotlib/tests/test_axes.py | 6 +++---
lib/matplotlib/tests/test_constrainedlayout.py | 2 +-
lib/matplotlib/tests/test_tightlayout.py | 10 +++++-----
setupext.py | 2 +-
5 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index d2bd48800..ff06bf049 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1313,7 +1313,7 @@ default_test_modules = [
def _init_tests():
# The version of FreeType to install locally for running the
# tests. This must match the value in `setupext.py`
- LOCAL_FREETYPE_VERSION = '2.6.1'
+ LOCAL_FREETYPE_VERSION = '2.10.1'
from matplotlib import ft2font
if (ft2font.__freetype_version__ != LOCAL_FREETYPE_VERSION or
diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
index 75636301d..b5bfc32c3 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -6425,7 +6425,7 @@ def test_normal_axes():
]
for nn, b in enumerate(bbaxis):
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
- assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=2)
+ assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=0)
target = [
[150.0, 119.999, 930.0, 11.111],
@@ -6443,7 +6443,7 @@ def test_normal_axes():
target = [85.5138, 75.88888, 1021.11, 1017.11]
targetbb = mtransforms.Bbox.from_bounds(*target)
- assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=2)
+ assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=0)
# test that get_position roundtrips to get_window_extent
axbb = ax.get_position().transformed(fig.transFigure).bounds
@@ -6568,7 +6568,7 @@ def test_get_tightbbox_polar():
fig.canvas.draw()
bb = ax.get_tightbbox(fig.canvas.get_renderer())
assert_allclose(bb.extents,
- [107.7778, 29.2778, 539.7847, 450.7222], rtol=1e-03)
+ [107.7778, 29.2778, 539.7847, 450.7222], rtol=1)
@check_figures_equal(extensions=["png"])
diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index c91037eae..75311e70e 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -399,4 +399,4 @@ def test_hidden_axes():
extents1 = np.copy(axs[0, 0].get_position().extents)
np.testing.assert_allclose(extents1,
- [0.045552, 0.548288, 0.47319, 0.982638], rtol=1e-5)
+ [0.045552, 0.548288, 0.47319, 0.982638], rtol=1e-2)
diff --git a/lib/matplotlib/tests/test_tightlayout.py b/lib/matplotlib/tests/test_tightlayout.py
index 377dfb649..6e6d8afe2 100644
--- a/lib/matplotlib/tests/test_tightlayout.py
+++ b/lib/matplotlib/tests/test_tightlayout.py
@@ -172,12 +172,12 @@ def test_outward_ticks():
plt.tight_layout()
# These values were obtained after visual checking that they correspond
# to a tight layouting that did take the ticks into account.
- ans = [[[0.091, 0.607], [0.433, 0.933]],
- [[0.579, 0.607], [0.922, 0.933]],
- [[0.091, 0.140], [0.433, 0.466]],
- [[0.579, 0.140], [0.922, 0.466]]]
+ ans = [[[0.09, 0.61], [0.43, 0.93]],
+ [[0.58, 0.61], [0.92, 0.93]],
+ [[0.09, 0.14], [0.43, 0.47]],
+ [[0.58, 0.14], [0.92, 0.47]]]
for nn, ax in enumerate(fig.axes):
- assert_array_equal(np.round(ax.get_position().get_points(), 3),
+ assert_array_equal(np.round(ax.get_position().get_points(), 2),
ans[nn])
diff --git a/setupext.py b/setupext.py
index 09cd6bbd7..c3c96d4e0 100644
--- a/setupext.py
+++ b/setupext.py
@@ -152,7 +152,7 @@ _freetype_hashes = {
# version. It must match the value in
# lib/matplotlib.__init__.py and also needs to be changed below in the
# embedded windows build script (grep for "REMINDER" in this file)
-LOCAL_FREETYPE_VERSION = '2.6.1'
+LOCAL_FREETYPE_VERSION = '2.10.1'
LOCAL_FREETYPE_HASH = _freetype_hashes.get(LOCAL_FREETYPE_VERSION, 'unknown')
--
2.25.4

View File

@@ -0,0 +1,165 @@
From 7ca8afa7fa3e141464c1ef2b2c58b23b586bf310 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Fri, 14 Feb 2020 06:05:42 -0500
Subject: [PATCH 2/2] Set FreeType version to 2.10.4 and update tolerances.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/__init__.py | 2 +-
lib/matplotlib/tests/test_axes.py | 4 ++--
lib/matplotlib/tests/test_constrainedlayout.py | 2 +-
lib/matplotlib/tests/test_mathtext.py | 7 +++++--
lib/matplotlib/tests/test_polar.py | 2 +-
lib/matplotlib/tests/test_tightlayout.py | 10 +++++-----
setupext.py | 9 ++++++++-
7 files changed, 23 insertions(+), 13 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 88be8e97b0..22dc74181e 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1137,7 +1137,7 @@ default_test_modules = [
def _init_tests():
# The version of FreeType to install locally for running the
# tests. This must match the value in `setupext.py`
- LOCAL_FREETYPE_VERSION = '2.6.1'
+ LOCAL_FREETYPE_VERSION = '2.10.4'
from matplotlib import ft2font
if (ft2font.__freetype_version__ != LOCAL_FREETYPE_VERSION or
diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
index 7950e5b830..046dbbe1b8 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -6500,7 +6500,7 @@ def test_normal_axes():
]
for nn, b in enumerate(bbaxis):
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
- assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=2)
+ assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=0)
target = [
[150.0, 119.999, 930.0, 11.111],
@@ -6518,7 +6518,7 @@ def test_normal_axes():
target = [85.5138, 75.88888, 1021.11, 1017.11]
targetbb = mtransforms.Bbox.from_bounds(*target)
- assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=2)
+ assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=0)
# test that get_position roundtrips to get_window_extent
axbb = ax.get_position().transformed(fig.transFigure).bounds
diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index 117b221cc2..d009912dfa 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -429,7 +429,7 @@ def test_hidden_axes():
extents1 = np.copy(axs[0, 0].get_position().extents)
np.testing.assert_allclose(
- extents1, [0.045552, 0.543288, 0.47819, 0.982638], rtol=1e-5)
+ extents1, [0.045552, 0.543288, 0.47819, 0.982638], rtol=1e-2)
def test_colorbar_align():
diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py
index b5fd906d2f..8e3801a231 100644
--- a/lib/matplotlib/tests/test_mathtext.py
+++ b/lib/matplotlib/tests/test_mathtext.py
@@ -1,5 +1,6 @@
import io
import os
+import platform
import re
import numpy as np
@@ -189,7 +190,8 @@ def baseline_images(request, fontset, index, text):
@pytest.mark.parametrize(
'fontset', ['cm', 'stix', 'stixsans', 'dejavusans', 'dejavuserif'])
@pytest.mark.parametrize('baseline_images', ['mathtext'], indirect=True)
-@image_comparison(baseline_images=None)
+@image_comparison(baseline_images=None,
+ tol=0.011 if platform.machine() in ('ppc64le', 's390x') else 0)
def test_mathtext_rendering(baseline_images, fontset, index, text):
mpl.rcParams['mathtext.fontset'] = fontset
fig = plt.figure(figsize=(5.25, 0.75))
@@ -213,7 +215,8 @@ def test_mathtext_rendering_lightweight(baseline_images, fontset, index, text):
@pytest.mark.parametrize(
'fontset', ['cm', 'stix', 'stixsans', 'dejavusans', 'dejavuserif'])
@pytest.mark.parametrize('baseline_images', ['mathfont'], indirect=True)
-@image_comparison(baseline_images=None, extensions=['png'])
+@image_comparison(baseline_images=None, extensions=['png'],
+ tol=0.011 if platform.machine() in ('ppc64le', 's390x') else 0)
def test_mathfont_rendering(baseline_images, fontset, index, text):
mpl.rcParams['mathtext.fontset'] = fontset
fig = plt.figure(figsize=(5.25, 0.75))
diff --git a/lib/matplotlib/tests/test_polar.py b/lib/matplotlib/tests/test_polar.py
index c614eff027..daf4e26fb8 100644
--- a/lib/matplotlib/tests/test_polar.py
+++ b/lib/matplotlib/tests/test_polar.py
@@ -312,7 +312,7 @@ def test_get_tightbbox_polar():
fig.canvas.draw()
bb = ax.get_tightbbox(fig.canvas.get_renderer())
assert_allclose(
- bb.extents, [107.7778, 29.2778, 539.7847, 450.7222], rtol=1e-03)
+ bb.extents, [107.7778, 29.2778, 539.7847, 450.7222], rtol=1)
@check_figures_equal(extensions=["png"])
diff --git a/lib/matplotlib/tests/test_tightlayout.py b/lib/matplotlib/tests/test_tightlayout.py
index 23d363b508..e94c863477 100644
--- a/lib/matplotlib/tests/test_tightlayout.py
+++ b/lib/matplotlib/tests/test_tightlayout.py
@@ -172,12 +172,12 @@ def test_outward_ticks():
plt.tight_layout()
# These values were obtained after visual checking that they correspond
# to a tight layouting that did take the ticks into account.
- ans = [[[0.091, 0.607], [0.433, 0.933]],
- [[0.579, 0.607], [0.922, 0.933]],
- [[0.091, 0.140], [0.433, 0.466]],
- [[0.579, 0.140], [0.922, 0.466]]]
+ ans = [[[0.09, 0.61], [0.43, 0.93]],
+ [[0.58, 0.61], [0.92, 0.93]],
+ [[0.09, 0.14], [0.43, 0.47]],
+ [[0.58, 0.14], [0.92, 0.47]]]
for nn, ax in enumerate(fig.axes):
- assert_array_equal(np.round(ax.get_position().get_points(), 3),
+ assert_array_equal(np.round(ax.get_position().get_points(), 2),
ans[nn])
diff --git a/setupext.py b/setupext.py
index d8d0b6b393..e44d3b046a 100644
--- a/setupext.py
+++ b/setupext.py
@@ -167,12 +167,18 @@ _freetype_hashes = {
'955e17244e9b38adb0c98df66abb50467312e6bb70eac07e49ce6bd1a20e809a',
'2.10.1':
'3a60d391fd579440561bf0e7f31af2222bc610ad6ce4d9d7bd2165bca8669110',
+ '2.10.2':
+ 'e09aa914e4f7a5d723ac381420949c55c0b90b15744adce5d1406046022186ab',
+ '2.10.4':
+ '5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac',
+ '2.11.0':
+ 'a45c6b403413abd5706f3582f04c8339d26397c4304b78fa552f2215df64101f',
}
# This is the version of FreeType to use when building a local
# version. It must match the value in
# lib/matplotlib.__init__.py and also needs to be changed below in the
# embedded windows build script (grep for "REMINDER" in this file)
-LOCAL_FREETYPE_VERSION = '2.6.1'
+LOCAL_FREETYPE_VERSION = '2.10.4'
LOCAL_FREETYPE_HASH = _freetype_hashes.get(LOCAL_FREETYPE_VERSION, 'unknown')
LOCAL_QHULL_VERSION = '2020.2'
@@ -565,6 +571,7 @@ class FreeType(SetupPackage):
ext.extra_objects.insert(
0, str(src_path / 'objs' / '.libs' / libfreetype))
ext.define_macros.append(('FREETYPE_BUILD_TYPE', 'local'))
+ ext.libraries.append('brotlidec')
def do_custom_build(self, env):
# We're using a system freetype
--
2.31.1

View File

@@ -1,42 +0,0 @@
From e952bc36999a141a5c026544bae0c52817d4edd9 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Tue, 23 Jan 2018 20:27:17 -0500
Subject: [PATCH 3/4] Increase tolerances for non-x86_64 arches.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/tests/test_streamplot.py | 4 ++--
lib/mpl_toolkits/tests/test_axes_grid1.py | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py
index d2218f6f2..1afc60543 100644
--- a/lib/matplotlib/tests/test_streamplot.py
+++ b/lib/matplotlib/tests/test_streamplot.py
@@ -63,8 +63,8 @@ def test_linewidth():
linewidth=lw)
-@image_comparison(['streamplot_masks_and_nans'],
- remove_text=True, style='mpl20', tol=0.04 if on_win else 0)
+@image_comparison(baseline_images=['streamplot_masks_and_nans'],
+ remove_text=True, style='mpl20', tol=0.04 if on_win else .01)
def test_masks_and_nans():
X, Y, U, V = velocity_field()
mask = np.zeros(U.shape, dtype=bool)
diff --git a/lib/mpl_toolkits/tests/test_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py
index 9ed9a9280..56a3bd14a 100644
--- a/lib/mpl_toolkits/tests/test_axes_grid1.py
+++ b/lib/mpl_toolkits/tests/test_axes_grid1.py
@@ -343,7 +343,7 @@ def test_zooming_with_inverted_axes():
@image_comparison(['anchored_direction_arrows.png'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.02)
def test_anchored_direction_arrows():
fig, ax = plt.subplots()
ax.imshow(np.zeros((10, 10)), interpolation='nearest')
--
2.25.4

View File

@@ -1,665 +0,0 @@
From 928df2339ec6f8cc838f2b46c4bef4b10dc66c52 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sat, 31 Mar 2018 00:15:14 -0400
Subject: [PATCH 4/4] Increase some tolerances for 32-bit systems.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/testing/decorators.py | 2 +-
lib/matplotlib/tests/test_artist.py | 2 +-
lib/matplotlib/tests/test_axes.py | 48 +++++++++----------
lib/matplotlib/tests/test_collections.py | 2 +-
lib/matplotlib/tests/test_colorbar.py | 10 ++--
.../tests/test_constrainedlayout.py | 2 +-
lib/matplotlib/tests/test_contour.py | 6 +--
lib/matplotlib/tests/test_cycles.py | 9 ++--
lib/matplotlib/tests/test_figure.py | 3 +-
lib/matplotlib/tests/test_image.py | 2 +-
lib/matplotlib/tests/test_legend.py | 9 ++--
lib/matplotlib/tests/test_mathtext.py | 4 +-
lib/matplotlib/tests/test_patches.py | 3 +-
lib/matplotlib/tests/test_patheffects.py | 2 +-
lib/matplotlib/tests/test_pickle.py | 2 +-
lib/matplotlib/tests/test_quiver.py | 2 +-
lib/matplotlib/tests/test_streamplot.py | 2 +-
lib/matplotlib/tests/test_transforms.py | 2 +-
lib/matplotlib/tests/test_units.py | 3 +-
.../tests/test_axisartist_floating_axes.py | 4 +-
...test_axisartist_grid_helper_curvelinear.py | 7 ++-
lib/mpl_toolkits/tests/test_mplot3d.py | 4 +-
22 files changed, 60 insertions(+), 70 deletions(-)
diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py
index cd447976b..545bf2cfe 100644
--- a/lib/matplotlib/testing/decorators.py
+++ b/lib/matplotlib/testing/decorators.py
@@ -269,7 +269,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol,
return decorator
-def image_comparison(baseline_images, extensions=None, tol=0,
+def image_comparison(baseline_images, extensions=None, tol=0.1,
freetype_version=None, remove_text=False,
savefig_kwarg=None,
# Default of mpl_test_settings fixture and cleanup too.
diff --git a/lib/matplotlib/tests/test_artist.py b/lib/matplotlib/tests/test_artist.py
index a598e822d..becc9b46d 100644
--- a/lib/matplotlib/tests/test_artist.py
+++ b/lib/matplotlib/tests/test_artist.py
@@ -94,7 +94,7 @@ def test_collection_transform_of_none():
assert isinstance(c._transOffset, mtransforms.IdentityTransform)
-@image_comparison(["clip_path_clipping"], remove_text=True)
+@image_comparison(["clip_path_clipping"], remove_text=True, tol=0.28)
def test_clipping():
exterior = mpath.Path.unit_rectangle().deepcopy()
exterior.vertices *= 4
diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
index b5bfc32c3..8bf3afb54 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -563,7 +563,7 @@ def test_single_point():
plt.plot('b', 'b', 'o', data=data)
-@image_comparison(['single_date.png'], style='mpl20')
+@image_comparison(['single_date.png'], style='mpl20', tol=1.97)
def test_single_date():
# use former defaults to match existing baseline image
plt.rcParams['axes.formatter.limits'] = -7, 7
@@ -1097,7 +1097,7 @@ def test_fill_between_interpolate():
@image_comparison(['fill_between_interpolate_decreasing'],
- style='mpl20', remove_text=True)
+ style='mpl20', remove_text=True, tol=0.78)
def test_fill_between_interpolate_decreasing():
p = np.array([724.3, 700, 655])
t = np.array([9.4, 7, 2.2])
@@ -1212,7 +1212,7 @@ def test_pcolormesh_alpha():
@image_comparison(['pcolormesh_datetime_axis.png'],
- remove_text=False, style='mpl20')
+ remove_text=False, style='mpl20', tol=0.19)
def test_pcolormesh_datetime_axis():
fig = plt.figure()
fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15)
@@ -1238,7 +1238,7 @@ def test_pcolormesh_datetime_axis():
@image_comparison(['pcolor_datetime_axis.png'],
- remove_text=False, style='mpl20')
+ remove_text=False, style='mpl20', tol=0.19)
def test_pcolor_datetime_axis():
fig = plt.figure()
fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15)
@@ -1294,7 +1294,8 @@ def test_canonical():
ax.plot([1, 2, 3])
-@image_comparison(['arc_angles.png'], remove_text=True, style='default')
+@image_comparison(['arc_angles.png'], remove_text=True, style='default',
+ tol=0.17)
def test_arc_angles():
from matplotlib import patches
# Ellipse parameters
@@ -2769,7 +2770,7 @@ def test_boxplot_mod_artist_after_plotting():
@image_comparison(['violinplot_vert_baseline.png',
- 'violinplot_vert_baseline.png'])
+ 'violinplot_vert_baseline.png'], tol=0.24)
def test_vert_violinplot_baseline():
# First 9 digits of frac(sqrt(2))
np.random.seed(414213562)
@@ -2786,7 +2787,7 @@ def test_vert_violinplot_baseline():
showmedians=0, data=data)
-@image_comparison(['violinplot_vert_showmeans.png'])
+@image_comparison(['violinplot_vert_showmeans.png'], tol=0.23)
def test_vert_violinplot_showmeans():
ax = plt.axes()
# First 9 digits of frac(sqrt(3))
@@ -2796,7 +2797,7 @@ def test_vert_violinplot_showmeans():
showmedians=0)
-@image_comparison(['violinplot_vert_showextrema.png'])
+@image_comparison(['violinplot_vert_showextrema.png'], tol=0.23)
def test_vert_violinplot_showextrema():
ax = plt.axes()
# First 9 digits of frac(sqrt(5))
@@ -2806,7 +2807,7 @@ def test_vert_violinplot_showextrema():
showmedians=0)
-@image_comparison(['violinplot_vert_showmedians.png'])
+@image_comparison(['violinplot_vert_showmedians.png'], tol=0.23)
def test_vert_violinplot_showmedians():
ax = plt.axes()
# First 9 digits of frac(sqrt(7))
@@ -2816,7 +2817,7 @@ def test_vert_violinplot_showmedians():
showmedians=1)
-@image_comparison(['violinplot_vert_showall.png'])
+@image_comparison(['violinplot_vert_showall.png'], tol=0.2)
def test_vert_violinplot_showall():
ax = plt.axes()
# First 9 digits of frac(sqrt(11))
@@ -2827,7 +2828,7 @@ def test_vert_violinplot_showall():
quantiles=[[0.1, 0.9], [0.2, 0.8], [0.3, 0.7], [0.4, 0.6]])
-@image_comparison(['violinplot_vert_custompoints_10.png'])
+@image_comparison(['violinplot_vert_custompoints_10.png'], tol=0.22)
def test_vert_violinplot_custompoints_10():
ax = plt.axes()
# First 9 digits of frac(sqrt(13))
@@ -2837,7 +2838,7 @@ def test_vert_violinplot_custompoints_10():
showmedians=0, points=10)
-@image_comparison(['violinplot_vert_custompoints_200.png'])
+@image_comparison(['violinplot_vert_custompoints_200.png'], tol=0.22)
def test_vert_violinplot_custompoints_200():
ax = plt.axes()
# First 9 digits of frac(sqrt(17))
@@ -2847,7 +2848,7 @@ def test_vert_violinplot_custompoints_200():
showmedians=0, points=200)
-@image_comparison(['violinplot_horiz_baseline.png'])
+@image_comparison(['violinplot_horiz_baseline.png'], tol=0.2)
def test_horiz_violinplot_baseline():
ax = plt.axes()
# First 9 digits of frac(sqrt(19))
@@ -2857,7 +2858,7 @@ def test_horiz_violinplot_baseline():
showextrema=0, showmedians=0)
-@image_comparison(['violinplot_horiz_showmedians.png'])
+@image_comparison(['violinplot_horiz_showmedians.png'], tol=0.23)
def test_horiz_violinplot_showmedians():
ax = plt.axes()
# First 9 digits of frac(sqrt(23))
@@ -2867,7 +2868,7 @@ def test_horiz_violinplot_showmedians():
showextrema=0, showmedians=1)
-@image_comparison(['violinplot_horiz_showmeans.png'])
+@image_comparison(['violinplot_horiz_showmeans.png'], tol=0.25)
def test_horiz_violinplot_showmeans():
ax = plt.axes()
# First 9 digits of frac(sqrt(29))
@@ -2877,7 +2878,7 @@ def test_horiz_violinplot_showmeans():
showextrema=0, showmedians=0)
-@image_comparison(['violinplot_horiz_showextrema.png'])
+@image_comparison(['violinplot_horiz_showextrema.png'], tol=0.2)
def test_horiz_violinplot_showextrema():
ax = plt.axes()
# First 9 digits of frac(sqrt(31))
@@ -2887,7 +2888,7 @@ def test_horiz_violinplot_showextrema():
showextrema=1, showmedians=0)
-@image_comparison(['violinplot_horiz_showall.png'])
+@image_comparison(['violinplot_horiz_showall.png'], tol=0.19)
def test_horiz_violinplot_showall():
ax = plt.axes()
# First 9 digits of frac(sqrt(37))
@@ -2898,7 +2899,7 @@ def test_horiz_violinplot_showall():
quantiles=[[0.1, 0.9], [0.2, 0.8], [0.3, 0.7], [0.4, 0.6]])
-@image_comparison(['violinplot_horiz_custompoints_10.png'])
+@image_comparison(['violinplot_horiz_custompoints_10.png'], tol=0.22)
def test_horiz_violinplot_custompoints_10():
ax = plt.axes()
# First 9 digits of frac(sqrt(41))
@@ -2908,7 +2909,7 @@ def test_horiz_violinplot_custompoints_10():
showextrema=0, showmedians=0, points=10)
-@image_comparison(['violinplot_horiz_custompoints_200.png'])
+@image_comparison(['violinplot_horiz_custompoints_200.png'], tol=0.22)
def test_horiz_violinplot_custompoints_200():
ax = plt.axes()
# First 9 digits of frac(sqrt(43))
@@ -3672,8 +3673,7 @@ def test_vertex_markers():
ax.set_ylim([-1, 10])
-@image_comparison(['vline_hline_zorder', 'errorbar_zorder'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['vline_hline_zorder', 'errorbar_zorder'])
def test_eb_line_zorder():
x = list(range(10))
@@ -4360,7 +4360,7 @@ def test_psd_noise():
ax3.set_ylabel('')
-@image_comparison(['csd_freqs.png'], remove_text=True, tol=0.002)
+@image_comparison(['csd_freqs.png'], remove_text=True, tol=0.21)
def test_csd_freqs():
'''test axes.csd with sinusoidal stimuli'''
n = 10000
@@ -5264,7 +5264,7 @@ def test_rc_spines():
fig, ax = plt.subplots()
-@image_comparison(['rc_grid.png'], savefig_kwarg={'dpi': 40})
+@image_comparison(['rc_grid.png'], savefig_kwarg={'dpi': 40}, tol=0.2)
def test_rc_grid():
fig = plt.figure()
rc_dict0 = {
@@ -5806,7 +5806,7 @@ def test_date_timezone_y():
plt.plot_date([3] * 3, time_index, tz='UTC', xdate=False, ydate=True)
-@image_comparison(['date_timezone_x_and_y.png'])
+@image_comparison(['date_timezone_x_and_y.png'], tol=3.05)
def test_date_timezone_x_and_y():
# Tests issue 5575
UTC = datetime.timezone.utc
diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py
index 3f5b3bf1a..773573918 100644
--- a/lib/matplotlib/tests/test_collections.py
+++ b/lib/matplotlib/tests/test_collections.py
@@ -461,7 +461,7 @@ def test_EllipseCollection():
ax.autoscale_view()
-@image_comparison(['polycollection_close.png'], remove_text=True)
+@image_comparison(['polycollection_close.png'], remove_text=True, tol=0.45)
def test_polycollection_close():
from mpl_toolkits.mplot3d import Axes3D
diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py
index 6d1f39149..4d70f8506 100644
--- a/lib/matplotlib/tests/test_colorbar.py
+++ b/lib/matplotlib/tests/test_colorbar.py
@@ -95,7 +95,7 @@ def _colorbar_extension_length(spacing):
@image_comparison(['colorbar_extensions_shape_uniform.png',
- 'colorbar_extensions_shape_proportional.png'])
+ 'colorbar_extensions_shape_proportional.png'], tol=0.16)
def test_colorbar_extension_shape():
'''Test rectangular colorbar extensions.'''
# Create figures for uniform and proportionally spaced colorbars.
@@ -104,7 +104,7 @@ def test_colorbar_extension_shape():
@image_comparison(['colorbar_extensions_uniform.png',
- 'colorbar_extensions_proportional.png'])
+ 'colorbar_extensions_proportional.png'], tol=0.25)
def test_colorbar_extension_length():
'''Test variable length colorbar extensions.'''
# Create figures for uniform and proportionally spaced colorbars.
@@ -118,7 +118,7 @@ def test_colorbar_extension_length():
'cbar_sharing',
],
extensions=['png'], remove_text=True,
- savefig_kwarg={'dpi': 40})
+ savefig_kwarg={'dpi': 40}, tol=0.17)
def test_colorbar_positioning():
data = np.arange(1200).reshape(30, 40)
levels = [0, 200, 400, 600, 800, 1000, 1200]
@@ -171,7 +171,7 @@ def test_colorbar_positioning():
@image_comparison(['cbar_with_subplots_adjust.png'], remove_text=True,
- savefig_kwarg={'dpi': 40})
+ savefig_kwarg={'dpi': 40}, tol=0.17)
def test_gridspec_make_colorbar():
plt.figure()
data = np.arange(1200).reshape(30, 40)
@@ -226,7 +226,7 @@ def test_colorbarbase():
ColorbarBase(ax, plt.cm.bone)
-@image_comparison(['colorbar_closed_patch'], remove_text=True)
+@image_comparison(['colorbar_closed_patch'], remove_text=True, tol=0.22)
def test_colorbar_closed_patch():
fig = plt.figure(figsize=(8, 6))
ax1 = fig.add_axes([0.05, 0.85, 0.9, 0.1])
diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index 75311e70e..64e7bcd25 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -234,7 +234,7 @@ def test_constrained_layout12():
ax.set_xlabel('x-label')
-@image_comparison(['constrained_layout13.png'], tol=2.e-2)
+@image_comparison(['constrained_layout13.png'], tol=3e-2)
def test_constrained_layout13():
'Test that padding works.'
fig, axs = plt.subplots(2, 2, constrained_layout=True)
diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py
index 4aabd36a7..14a52920e 100644
--- a/lib/matplotlib/tests/test_contour.py
+++ b/lib/matplotlib/tests/test_contour.py
@@ -162,7 +162,7 @@ def test_given_colors_levels_and_extends():
@image_comparison(['contour_datetime_axis.png'],
- remove_text=False, style='mpl20')
+ remove_text=False, style='mpl20', tol=0.18)
def test_contour_datetime_axis():
fig = plt.figure()
fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15)
@@ -188,7 +188,7 @@ def test_contour_datetime_axis():
@image_comparison(['contour_test_label_transforms.png'],
- remove_text=True, style='mpl20')
+ remove_text=True, style='mpl20', tol=1.38)
def test_labels():
# Adapted from pylab_examples example code: contour_demo.py
# see issues #2475, #2843, and #2818 for explanation
@@ -219,7 +219,7 @@ def test_labels():
@image_comparison(['contour_corner_mask_False.png',
'contour_corner_mask_True.png'],
- remove_text=True)
+ remove_text=True, tol=0.19)
def test_corner_mask():
n = 60
mask_level = 0.95
diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py
index ee67b4e41..3ae6e4ebc 100644
--- a/lib/matplotlib/tests/test_cycles.py
+++ b/lib/matplotlib/tests/test_cycles.py
@@ -8,8 +8,7 @@ import pytest
from cycler import cycler
-@image_comparison(['color_cycle_basic.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['color_cycle_basic.png'], remove_text=True)
def test_colorcycle_basic():
fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('color', ['r', 'g', 'y']))
@@ -25,8 +24,7 @@ def test_colorcycle_basic():
ax.legend(loc='upper left')
-@image_comparison(['marker_cycle.png', 'marker_cycle.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['marker_cycle.png', 'marker_cycle.png'], remove_text=True)
def test_marker_cycle():
fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('c', ['r', 'g', 'y']) +
@@ -58,8 +56,7 @@ def test_marker_cycle():
ax.legend(loc='upper left')
-@image_comparison(['lineprop_cycle_basic.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['lineprop_cycle_basic.png'], remove_text=True)
def test_linestylecycle_basic():
fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('ls', ['-', '--', ':']))
diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py
index b5ca0ed5b..272fd6101 100644
--- a/lib/matplotlib/tests/test_figure.py
+++ b/lib/matplotlib/tests/test_figure.py
@@ -13,8 +13,7 @@ import numpy as np
import pytest
-@image_comparison(['figure_align_labels'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['figure_align_labels'])
def test_align_labels():
# Check the figure.align_labels() command
fig = plt.figure(tight_layout=True)
diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py
index 93cfbb260..6dcdac4dd 100644
--- a/lib/matplotlib/tests/test_image.py
+++ b/lib/matplotlib/tests/test_image.py
@@ -928,7 +928,7 @@ def test_imshow_endianess():
@image_comparison(['imshow_masked_interpolation'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
+ tol=0.25,
remove_text=True, style='mpl20')
def test_imshow_masked_interpolation():
diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
index 71499da44..42413a5c1 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -105,8 +105,7 @@ def test_multiple_keys():
(p2, p1): HandlerTuple(ndivide=None, pad=0)})
-@image_comparison(['rgba_alpha.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['rgba_alpha.png'], remove_text=True)
def test_alpha_rgba():
import matplotlib.pyplot as plt
@@ -116,8 +115,7 @@ def test_alpha_rgba():
leg.legendPatch.set_facecolor([1, 0, 0, 0.5])
-@image_comparison(['rcparam_alpha.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['rcparam_alpha.png'], remove_text=True)
def test_alpha_rcparam():
import matplotlib.pyplot as plt
@@ -144,8 +142,7 @@ def test_fancy():
ncol=2, shadow=True, title="My legend", numpoints=1)
-@image_comparison(['framealpha'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['framealpha'], remove_text=True)
def test_framealpha():
x = np.linspace(1, 100, 100)
y = x
diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py
index 508e29fa0..f6862e631 100644
--- a/lib/matplotlib/tests/test_mathtext.py
+++ b/lib/matplotlib/tests/test_mathtext.py
@@ -172,7 +172,7 @@ def baseline_images(request, fontset, index):
['cm', 'stix', 'stixsans', 'dejavusans',
'dejavuserif'])
@pytest.mark.parametrize('baseline_images', ['mathtext'], indirect=True)
-@image_comparison(baseline_images=None)
+@image_comparison(baseline_images=None, tol=0.31)
def test_mathtext_rendering(baseline_images, fontset, index, test, recwarn):
matplotlib.rcParams['mathtext.fontset'] = fontset
fig = plt.figure(figsize=(5.25, 0.75))
@@ -186,7 +186,7 @@ def test_mathtext_rendering(baseline_images, fontset, index, test, recwarn):
['cm', 'stix', 'stixsans', 'dejavusans',
'dejavuserif'])
@pytest.mark.parametrize('baseline_images', ['mathfont'], indirect=True)
-@image_comparison(baseline_images=None, extensions=['png'])
+@image_comparison(baseline_images=None, extensions=['png'], tol=0.3)
def test_mathfont_rendering(baseline_images, fontset, index, test, recwarn):
matplotlib.rcParams['mathtext.fontset'] = fontset
fig = plt.figure(figsize=(5.25, 0.75))
diff --git a/lib/matplotlib/tests/test_patches.py b/lib/matplotlib/tests/test_patches.py
index c0eda5542..62670dbbf 100644
--- a/lib/matplotlib/tests/test_patches.py
+++ b/lib/matplotlib/tests/test_patches.py
@@ -257,8 +257,7 @@ def test_wedge_movement():
assert getattr(w, attr) == new_v
-# png needs tol>=0.06, pdf tol>=1.617
-@image_comparison(['wedge_range'], remove_text=True, tol=1.65 if on_win else 0)
+@image_comparison(['wedge_range'], remove_text=True)
def test_wedge_range():
ax = plt.axes()
diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py
index eddd1a3a1..f6993ec31 100644
--- a/lib/matplotlib/tests/test_patheffects.py
+++ b/lib/matplotlib/tests/test_patheffects.py
@@ -115,7 +115,7 @@ def test_SimplePatchShadow_offset():
assert pe._offset == (4, 5)
-@image_comparison(['collection'], tol=0.02, style='mpl20')
+@image_comparison(['collection'], tol=0.084, style='mpl20')
def test_collection():
x, y = np.meshgrid(np.linspace(0, 10, 150), np.linspace(-5, 5, 100))
data = np.sin(x) + np.cos(y)
diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py
index 0fad3cdf2..aab0b29c6 100644
--- a/lib/matplotlib/tests/test_pickle.py
+++ b/lib/matplotlib/tests/test_pickle.py
@@ -41,7 +41,7 @@ def test_simple():
@image_comparison(['multi_pickle.png'], remove_text=True, style='mpl20',
- tol={'aarch64': 0.082}.get(platform.machine(), 0.0))
+ tol=0.11)
def test_complete():
fig = plt.figure('Figure with a label?', figsize=(10, 6))
diff --git a/lib/matplotlib/tests/test_quiver.py b/lib/matplotlib/tests/test_quiver.py
index 719c8fbc1..fd28062e1 100644
--- a/lib/matplotlib/tests/test_quiver.py
+++ b/lib/matplotlib/tests/test_quiver.py
@@ -173,7 +173,7 @@ def test_quiver_key_xy():
ax.quiverkey(q, X=x, Y=0.8, U=1, angle=angle, label='', color='b')
-@image_comparison(['barbs_test_image.png'], remove_text=True)
+@image_comparison(['barbs_test_image.png'], remove_text=True, tol=0.11)
def test_barbs():
x = np.linspace(-5, 5, 5)
X, Y = np.meshgrid(x, x)
diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py
index 1afc60543..aa12ab5ea 100644
--- a/lib/matplotlib/tests/test_streamplot.py
+++ b/lib/matplotlib/tests/test_streamplot.py
@@ -40,7 +40,7 @@ def test_startpoints():
@image_comparison(['streamplot_colormap'],
- tol=.04, remove_text=True, style='mpl20')
+ remove_text=True, style='mpl20')
def test_colormap():
X, Y, U, V = velocity_field()
plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2,
diff --git a/lib/matplotlib/tests/test_transforms.py b/lib/matplotlib/tests/test_transforms.py
index f35467ee7..b3ca0c020 100644
--- a/lib/matplotlib/tests/test_transforms.py
+++ b/lib/matplotlib/tests/test_transforms.py
@@ -68,7 +68,7 @@ def test_external_transform_api():
@image_comparison(['pre_transform_data'],
- tol=0.08, remove_text=True, style='mpl20')
+ tol=0.155, remove_text=True, style='mpl20')
def test_pre_transform_plotting():
# a catch-all for as many as possible plot layouts which handle
# pre-transforming the data NOTE: The axis range is important in this
diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py
index f14425144..c1afffcaa 100644
--- a/lib/matplotlib/tests/test_units.py
+++ b/lib/matplotlib/tests/test_units.py
@@ -73,8 +73,7 @@ def quantity_converter():
# Tests that the conversion machinery works properly for classes that
# work as a facade over numpy arrays (like pint)
-@image_comparison(['plot_pint.png'], remove_text=False, style='mpl20',
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['plot_pint.png'], remove_text=False, style='mpl20')
def test_numpy_facade(quantity_converter):
# use former defaults to match existing baseline image
plt.rcParams['axes.formatter.limits'] = -7, 7
diff --git a/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py b/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py
index e69b63f99..0c2dd5660 100644
--- a/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py
+++ b/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py
@@ -18,7 +18,7 @@ def test_subplot():
fig.add_subplot(ax)
-@image_comparison(['curvelinear3.png'], style='default', tol=0.01)
+@image_comparison(['curvelinear3.png'], style='default', tol=0.02)
def test_curvelinear3():
fig = plt.figure(figsize=(5, 5))
@@ -72,7 +72,7 @@ def test_curvelinear3():
l.set_clip_path(ax1.patch)
-@image_comparison(['curvelinear4.png'], style='default', tol=0.015)
+@image_comparison(['curvelinear4.png'], style='default', tol=0.055)
def test_curvelinear4():
# Remove this line when this test image is regenerated.
plt.rcParams['text.kerning_factor'] = 6
diff --git a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
index 611908063..8add49b46 100644
--- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
+++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
@@ -16,8 +16,7 @@ from mpl_toolkits.axisartist.grid_helper_curvelinear import \
GridHelperCurveLinear
-@image_comparison(['custom_transform.png'], style='default',
- tol={'aarch64': 0.034}.get(platform.machine(), 0.03))
+@image_comparison(['custom_transform.png'], style='default', tol=0.035)
def test_custom_transform():
class MyTransform(Transform):
input_dims = 2
@@ -84,7 +83,7 @@ def test_custom_transform():
@image_comparison(['polar_box.png'], style='default',
- tol={'aarch64': 0.04}.get(platform.machine(), 0.03))
+ tol=0.08)
def test_polar_box():
# Remove this line when this test image is regenerated.
plt.rcParams['text.kerning_factor'] = 6
@@ -147,7 +146,7 @@ def test_polar_box():
ax1.grid(True)
-@image_comparison(['axis_direction.png'], style='default', tol=0.03)
+@image_comparison(['axis_direction.png'], style='default', tol=0.05)
def test_axis_direction():
# Remove this line when this test image is regenerated.
plt.rcParams['text.kerning_factor'] = 6
diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py
index 592096b74..69ac5a2b3 100644
--- a/lib/mpl_toolkits/tests/test_mplot3d.py
+++ b/lib/mpl_toolkits/tests/test_mplot3d.py
@@ -280,7 +280,7 @@ def test_text3d():
ax.set_zlabel('Z axis')
-@image_comparison(['trisurf3d.png'], remove_text=True, tol=0.03)
+@image_comparison(['trisurf3d.png'], remove_text=True, tol=0.05)
def test_trisurf3d():
n_angles = 36
n_radii = 8
@@ -756,7 +756,7 @@ class TestVoxels:
assert voxels[coord], "faces returned for absent voxel"
assert isinstance(poly, art3d.Poly3DCollection)
- @image_comparison(['voxels-xyz.png'], tol=0.01)
+ @image_comparison(['voxels-xyz.png'], tol=0.02)
def test_xyz(self):
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})
--
2.25.4

View File

@@ -1,267 +0,0 @@
From 91ef378043f12f16a9a1f03437d9f51220dff305 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sat, 31 Mar 2018 00:33:37 -0400
Subject: [PATCH 4/4] Increase some tolerances for non-x86 arches.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/tests/test_arrow_patches.py | 4 ++--
lib/matplotlib/tests/test_axes.py | 4 ++--
lib/matplotlib/tests/test_backends_interactive.py | 2 +-
lib/matplotlib/tests/test_collections.py | 2 +-
lib/matplotlib/tests/test_constrainedlayout.py | 3 ++-
lib/matplotlib/tests/test_cycles.py | 6 +++---
lib/matplotlib/tests/test_figure.py | 2 +-
lib/matplotlib/tests/test_image.py | 2 +-
lib/matplotlib/tests/test_legend.py | 6 +++---
lib/matplotlib/tests/test_pickle.py | 2 +-
lib/matplotlib/tests/test_streamplot.py | 2 +-
lib/matplotlib/tests/test_units.py | 4 ++--
.../tests/test_axisartist_grid_helper_curvelinear.py | 4 ++--
13 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py
index a9409e2c1..9627b3569 100644
--- a/lib/matplotlib/tests/test_arrow_patches.py
+++ b/lib/matplotlib/tests/test_arrow_patches.py
@@ -67,7 +67,7 @@ def __prepare_fancyarrow_dpi_cor_test():
@image_comparison(['fancyarrow_dpi_cor_100dpi.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
+ tol=0.016,
savefig_kwarg=dict(dpi=100))
def test_fancyarrow_dpi_cor_100dpi():
"""
@@ -82,7 +82,7 @@ def test_fancyarrow_dpi_cor_100dpi():
@image_comparison(['fancyarrow_dpi_cor_200dpi.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
+ tol=0.019,
savefig_kwarg=dict(dpi=200))
def test_fancyarrow_dpi_cor_200dpi():
"""
diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
index b5bfc32c3..a956412d1 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -407,7 +407,7 @@ def test_annotate_default_arrow():
assert ann.arrow_patch is not None
-@image_comparison(['polar_axes'], style='default')
+@image_comparison(['polar_axes'], style='default', tol=0.01)
def test_polar_annotations():
# you can specify the xypoint and the xytext in different
# positions and coordinate systems, and optionally turn on a
@@ -3673,7 +3673,7 @@ def test_vertex_markers():
@image_comparison(['vline_hline_zorder', 'errorbar_zorder'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.02)
def test_eb_line_zorder():
x = list(range(10))
diff --git a/lib/matplotlib/tests/test_backends_interactive.py b/lib/matplotlib/tests/test_backends_interactive.py
index 7465bb919..8300ab627 100644
--- a/lib/matplotlib/tests/test_backends_interactive.py
+++ b/lib/matplotlib/tests/test_backends_interactive.py
@@ -126,7 +126,7 @@ if not backend.startswith('qt5') and sys.platform == 'darwin':
# not resize incorrectly.
assert_equal(result.getvalue(), result_after.getvalue())
"""
-_test_timeout = 10 # Empirically, 1s is not enough on Travis.
+_test_timeout = 30 # Empirically, 1s is not enough on Travis.
@pytest.mark.parametrize("backend", _get_testable_interactive_backends())
diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py
index 3f5b3bf1a..8c5549bad 100644
--- a/lib/matplotlib/tests/test_collections.py
+++ b/lib/matplotlib/tests/test_collections.py
@@ -439,7 +439,7 @@ def test_barb_limits():
@image_comparison(['EllipseCollection_test_image.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.012)
def test_EllipseCollection():
# Test basic functionality
fig, ax = plt.subplots()
diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index 75311e70e..8de7b987d 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -164,7 +164,8 @@ def test_constrained_layout9():
fig.suptitle('Test Suptitle', fontsize=28)
-@image_comparison(['constrained_layout10.png'])
+@image_comparison(['constrained_layout10.png'],
+ tol=0.01)
def test_constrained_layout10():
'Test for handling legend outside axis'
fig, axs = plt.subplots(2, 2, constrained_layout=True)
diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py
index ee67b4e41..c52a5b0f8 100644
--- a/lib/matplotlib/tests/test_cycles.py
+++ b/lib/matplotlib/tests/test_cycles.py
@@ -9,7 +9,7 @@ from cycler import cycler
@image_comparison(['color_cycle_basic.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.008)
def test_colorcycle_basic():
fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('color', ['r', 'g', 'y']))
@@ -26,7 +26,7 @@ def test_colorcycle_basic():
@image_comparison(['marker_cycle.png', 'marker_cycle.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.008)
def test_marker_cycle():
fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('c', ['r', 'g', 'y']) +
@@ -59,7 +59,7 @@ def test_marker_cycle():
@image_comparison(['lineprop_cycle_basic.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.009)
def test_linestylecycle_basic():
fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('ls', ['-', '--', ':']))
diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py
index b5ca0ed5b..284cccb15 100644
--- a/lib/matplotlib/tests/test_figure.py
+++ b/lib/matplotlib/tests/test_figure.py
@@ -14,7 +14,7 @@ import pytest
@image_comparison(['figure_align_labels'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.01)
def test_align_labels():
# Check the figure.align_labels() command
fig = plt.figure(tight_layout=True)
diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py
index 93cfbb260..122c884da 100644
--- a/lib/matplotlib/tests/test_image.py
+++ b/lib/matplotlib/tests/test_image.py
@@ -928,7 +928,7 @@ def test_imshow_endianess():
@image_comparison(['imshow_masked_interpolation'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
+ tol=0.006,
remove_text=True, style='mpl20')
def test_imshow_masked_interpolation():
diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
index 71499da44..23cfcb873 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -106,7 +106,7 @@ def test_multiple_keys():
@image_comparison(['rgba_alpha.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.007)
def test_alpha_rgba():
import matplotlib.pyplot as plt
@@ -117,7 +117,7 @@ def test_alpha_rgba():
@image_comparison(['rcparam_alpha.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.007)
def test_alpha_rcparam():
import matplotlib.pyplot as plt
@@ -145,7 +145,7 @@ def test_fancy():
@image_comparison(['framealpha'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.018)
def test_framealpha():
x = np.linspace(1, 100, 100)
y = x
diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py
index 0fad3cdf2..4d2599607 100644
--- a/lib/matplotlib/tests/test_pickle.py
+++ b/lib/matplotlib/tests/test_pickle.py
@@ -41,7 +41,7 @@ def test_simple():
@image_comparison(['multi_pickle.png'], remove_text=True, style='mpl20',
- tol={'aarch64': 0.082}.get(platform.machine(), 0.0))
+ tol=0.082)
def test_complete():
fig = plt.figure('Figure with a label?', figsize=(10, 6))
diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py
index 1afc60543..dcac38102 100644
--- a/lib/matplotlib/tests/test_streamplot.py
+++ b/lib/matplotlib/tests/test_streamplot.py
@@ -49,7 +49,7 @@ def test_colormap():
@image_comparison(['streamplot_linewidth'], remove_text=True, style='mpl20',
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.002)
def test_linewidth():
X, Y, U, V = velocity_field()
speed = np.hypot(U, V)
diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py
index f14425144..fd8f26502 100644
--- a/lib/matplotlib/tests/test_units.py
+++ b/lib/matplotlib/tests/test_units.py
@@ -74,7 +74,7 @@ def quantity_converter():
# Tests that the conversion machinery works properly for classes that
# work as a facade over numpy arrays (like pint)
@image_comparison(['plot_pint.png'], remove_text=False, style='mpl20',
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.003)
def test_numpy_facade(quantity_converter):
# use former defaults to match existing baseline image
plt.rcParams['axes.formatter.limits'] = -7, 7
@@ -101,7 +101,7 @@ def test_numpy_facade(quantity_converter):
# Tests gh-8908
@image_comparison(['plot_masked_units.png'], remove_text=True, style='mpl20',
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.007)
def test_plot_masked_units():
data = np.linspace(-5, 5)
data_masked = np.ma.array(data, mask=(data > -2) & (data < 2))
diff --git a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
index 611908063..be11d7c6b 100644
--- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
+++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
@@ -17,7 +17,7 @@ from mpl_toolkits.axisartist.grid_helper_curvelinear import \
@image_comparison(['custom_transform.png'], style='default',
- tol={'aarch64': 0.034}.get(platform.machine(), 0.03))
+ tol=0.04)
def test_custom_transform():
class MyTransform(Transform):
input_dims = 2
@@ -84,7 +84,7 @@ def test_custom_transform():
@image_comparison(['polar_box.png'], style='default',
- tol={'aarch64': 0.04}.get(platform.machine(), 0.03))
+ tol=0.04)
def test_polar_box():
# Remove this line when this test image is regenerated.
plt.rcParams['text.kerning_factor'] = 6
--
2.25.4

View File

@@ -1,12 +1,21 @@
%global with_html 0 %bcond_with html
%bcond_without check
# https://fedorahosted.org/fpc/ticket/381
%bcond_without bundled_fonts
# It seems like there's some kind of weird occasional error where a # No qt4 for EL8/ELN/EL9
# build (often aarch64 or ppc64) will fail in one of the Stix font %if 0%{?rhel} >= 8
# tests with a huge RMS difference, but if you run the same build again, %bcond_with qt4
# you won't get the same error. Unless someone can figure out what's %else
# going on, we just have to keep re-running the build until it doesn't %bcond_without qt4
# happen. %endif
%global run_tests 1
# No WX for EL8/ELN/EL9
%if 0%{?rhel} >= 8
%bcond_with wx
%else
%bcond_without wx
%endif
# the default backend; one of GTK3Agg GTK3Cairo MacOSX Qt4Agg Qt5Agg TkAgg # the default backend; one of GTK3Agg GTK3Cairo MacOSX Qt4Agg Qt5Agg TkAgg
# WXAgg Agg Cairo PS PDF SVG # WXAgg Agg Cairo PS PDF SVG
@@ -28,52 +37,35 @@
% endif % endif
%endif %endif
# https://fedorahosted.org/fpc/ticket/381
%global with_bundled_fonts 1
# Use the same directory of the main package for subpackage licence and docs # Use the same directory of the main package for subpackage licence and docs
%global _docdir_fmt %{name} %global _docdir_fmt %{name}
#global rctag rc2
# Updated test images for new FreeType. # Updated test images for new FreeType.
%global mpl_images_version 3.2.2 %global mpl_images_version 3.4.3
# The version of FreeType in this Fedora branch. # The version of FreeType in this Fedora branch.
%global ftver 2.10.1 %global ftver 2.10.4
Name: python-matplotlib Name: python-matplotlib
Version: 3.2.2 Version: 3.4.3
Release: 1%{?rctag:.%{rctag}}%{?dist} %global Version 3.4.3
Release: 2%{?dist}
Summary: Python 2D plotting library Summary: Python 2D plotting library
# qt4_editor backend is MIT # qt4_editor backend is MIT
License: Python and MIT # ResizeObserver at end of lib/matplotlib/backends/web_backend/js/mpl.js is Public Domain
License: Python and MIT and Public Domain
URL: http://matplotlib.org URL: http://matplotlib.org
Source0: https://github.com/matplotlib/matplotlib/archive/v%{version}%{?rctag}/matplotlib-%{version}%{?rctag}.tar.gz Source0: https://github.com/matplotlib/matplotlib/archive/v%{Version}/matplotlib-%{Version}.tar.gz
Source1: setup.cfg Source1: setup.cfg
# Because the qhull package stopped shipping pkgconfig files.
# https://src.fedoraproject.org/rpms/qhull/pull-request/1
Patch0001: 0001-Force-using-system-qhull.patch
# Don't attempt to download jQuery and jQuery UI
Patch0002: 0001-Use-packaged-jquery-and-jquery-ui.patch
# Fedora-specific patches; see: # Fedora-specific patches; see:
# https://github.com/fedora-python/matplotlib/tree/fedora-patches # https://github.com/fedora-python/matplotlib/tree/fedora-patches
# https://github.com/fedora-python/matplotlib/tree/fedora-patches-non-x86
# Updated test images for new FreeType. # Updated test images for new FreeType.
Source1000: https://github.com/QuLogic/mpl-images/archive/v%{mpl_images_version}-with-freetype-%{ftver}/matplotlib-%{mpl_images_version}-with-freetype-%{ftver}.tar.gz Source1000: https://github.com/QuLogic/mpl-images/archive/v%{mpl_images_version}-with-freetype-%{ftver}/matplotlib-%{mpl_images_version}-with-freetype-%{ftver}.tar.gz
# Search in /etc/matplotlibrc: # Search in /etc/matplotlibrc:
Patch1001: 0001-matplotlibrc-path-search-fix.patch Patch1001: 0001-matplotlibrc-path-search-fix.patch
# Increase tolerances for new FreeType everywhere: # Increase tolerances for new FreeType everywhere:
Patch1002: 0002-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patch Patch1002: 0002-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patch
# Image tolerances for anything but x86_64:
Patch1003: 0003-Increase-tolerances-for-non-x86_64-arches.patch
# Image tolerances for 32-bit systems: i686 armv7hl
Patch1004: 0004-Increase-some-tolerances-for-32-bit-systems.patch
# Image tolerances for 64-bit (but not x86_64) systems: aarch64 ppc64(le) s390x
Patch1005: 0004-Increase-some-tolerances-for-non-x86-arches.patch
BuildRequires: gcc BuildRequires: gcc
BuildRequires: gcc-c++ BuildRequires: gcc-c++
@@ -81,10 +73,70 @@ BuildRequires: glibc-langpack-en
BuildRequires: freetype-devel BuildRequires: freetype-devel
BuildRequires: libpng-devel BuildRequires: libpng-devel
BuildRequires: qhull-devel BuildRequires: qhull-devel
BuildRequires: texlive-cm
BuildRequires: xorg-x11-server-Xvfb BuildRequires: xorg-x11-server-Xvfb
BuildRequires: zlib-devel BuildRequires: zlib-devel
BuildRequires: ghostscript
# No ImageMagick for EL8/ELN/EL9
%if ! 0%{?rhel} >= 8
BuildRequires: ImageMagick
%endif
%ifnarch s390x
BuildRequires: inkscape
%endif
BuildRequires: texlive-collection-basic
BuildRequires: texlive-collection-fontsrecommended
BuildRequires: texlive-collection-latex
BuildRequires: texlive-collection-latexrecommended
BuildRequires: texlive-dvipng
BuildRequires: texlive-latex-bin
BuildRequires: texlive-luahbtex
BuildRequires: texlive-tex-bin
BuildRequires: texlive-xetex-bin
# Search for documentclass and add the classes here.
BuildRequires: tex(article.cls)
BuildRequires: tex(minimal.cls)
# Search for inputenc and add any encodings used with it.
BuildRequires: tex(utf8.def)
BuildRequires: tex(utf8x.def)
# Found with: rg -Io 'usepackage(\[.+\])?\{.+\}' lib | rg -o '\{.+\}' | sort -u
# and then removing duplicates in one line, etc.
BuildRequires: tex(avant.sty)
BuildRequires: tex(bm.sty)
BuildRequires: tex(chancery.sty)
BuildRequires: tex(charter.sty)
BuildRequires: tex(color.sty)
BuildRequires: tex(courier.sty)
BuildRequires: tex(euler.sty)
BuildRequires: tex(fancyhdr.sty)
BuildRequires: tex(fontenc.sty)
BuildRequires: tex(fontspec.sty)
BuildRequires: tex(geometry.sty)
BuildRequires: tex(graphicx.sty)
BuildRequires: tex(helvet.sty)
BuildRequires: tex(import.sty)
BuildRequires: tex(inputenc.sty)
BuildRequires: tex(mathpazo.sty)
BuildRequires: tex(mathptmx.sty)
BuildRequires: tex(pgf.sty)
BuildRequires: tex(preview.sty)
BuildRequires: tex(psfrag.sty)
BuildRequires: tex(sfmath.sty)
BuildRequires: tex(textcomp.sty)
BuildRequires: tex(txfonts.sty)
BuildRequires: tex(type1cm.sty)
BuildRequires: tex(type1ec.sty)
BuildRequires: tex(unicode-math.sty)
# See BakomaFonts._fontmap in lib/matplotlib/mathtext.py
BuildRequires: tex(cmb10.tfm)
BuildRequires: tex(cmex10.tfm)
BuildRequires: tex(cmmi10.tfm)
BuildRequires: tex(cmr10.tfm)
BuildRequires: tex(cmss10.tfm)
BuildRequires: tex(cmsy10.tfm)
BuildRequires: tex(cmtt10.tfm)
%description %description
Matplotlib is a Python 2D plotting library which produces publication Matplotlib is a Python 2D plotting library which produces publication
quality figures in a variety of hardcopy formats and interactive quality figures in a variety of hardcopy formats and interactive
@@ -99,16 +151,15 @@ errorcharts, scatterplots, etc, with just a few lines of code.
%package -n python3-matplotlib-data %package -n python3-matplotlib-data
Summary: Data used by python-matplotlib Summary: Data used by python-matplotlib
BuildArch: noarch BuildArch: noarch
%if %{with_bundled_fonts} %if %{with bundled_fonts}
Requires: python3-matplotlib-data-fonts = %{version}-%{release} Requires: python3-matplotlib-data-fonts = %{version}-%{release}
%endif %endif
Obsoletes: python-matplotlib-data < 3 Obsoletes: python-matplotlib-data < 3
%{?python_provide:%python_provide python3-matplotlib-data}
%description -n python3-matplotlib-data %description -n python3-matplotlib-data
%{summary} %{summary}
%if %{with_bundled_fonts} %if %{with bundled_fonts}
%package -n python3-matplotlib-data-fonts %package -n python3-matplotlib-data-fonts
Summary: Fonts used by python-matplotlib Summary: Fonts used by python-matplotlib
# STIX and Computer Modern is OFL # STIX and Computer Modern is OFL
@@ -117,7 +168,6 @@ License: OFL and Bitstream Vera and Public Domain
BuildArch: noarch BuildArch: noarch
Requires: python3-matplotlib-data = %{version}-%{release} Requires: python3-matplotlib-data = %{version}-%{release}
Obsoletes: python-matplotlib-data-fonts < 3 Obsoletes: python-matplotlib-data-fonts < 3
%{?python_provide:%python_provide python3-matplotlib-data-fonts}
%description -n python3-matplotlib-data-fonts %description -n python3-matplotlib-data-fonts
%{summary} %{summary}
@@ -126,6 +176,7 @@ Obsoletes: python-matplotlib-data-fonts < 3
%package -n python3-matplotlib %package -n python3-matplotlib
Summary: Python 2D plotting library Summary: Python 2D plotting library
BuildRequires: python3-cairo BuildRequires: python3-cairo
BuildRequires: python3-certifi >= 2020.06.20
BuildRequires: python3-cycler >= 0.10.0 BuildRequires: python3-cycler >= 0.10.0
BuildRequires: python3-dateutil BuildRequires: python3-dateutil
BuildRequires: python3-devel BuildRequires: python3-devel
@@ -138,28 +189,29 @@ BuildRequires: python3-pyparsing
BuildRequires: python3-pytz BuildRequires: python3-pytz
BuildRequires: python3-sphinx BuildRequires: python3-sphinx
Requires: dejavu-sans-fonts Requires: dejavu-sans-fonts
Requires: dvipng Recommends: texlive-dvipng
Requires: (texlive-dvipng if texlive-base)
Requires: python3-matplotlib-data = %{version}-%{release} Requires: python3-matplotlib-data = %{version}-%{release}
Requires: python3-cairo Requires: python3-cairo
Requires: python3-cycler >= 0.10.0 Requires: python3-cycler >= 0.10.0
Requires: python3-dateutil Requires: python3-dateutil
Requires: python3-kiwisolver Requires: python3-kiwisolver
Requires: python3-matplotlib-%{?backend_subpackage}%{!?backend_subpackage:tk}%{?_isa} = %{version}-%{release} Requires: python3-matplotlib-%{?backend_subpackage}%{!?backend_subpackage:tk}%{?_isa} = %{version}-%{release}
%if %{run_tests} %if %{with check}
BuildRequires: python3-pytest BuildRequires: python3-pytest
BuildRequires: python3-pytest-rerunfailures BuildRequires: python3-pytest-rerunfailures
BuildRequires: python3-pytest-timeout BuildRequires: python3-pytest-timeout
BuildRequires: python3-pytest-xdist BuildRequires: python3-pytest-xdist
BuildRequires: python3-pikepdf
%endif %endif
Requires: python3-numpy Requires: python3-numpy
Recommends: python3-pillow Recommends: python3-pillow
Requires: python3-pyparsing Requires: python3-pyparsing
%if !%{with_bundled_fonts} %if %{without bundled_fonts}
Requires: stix-math-fonts Requires: stix-math-fonts
%else %else
Provides: bundled(stix-math-fonts) Provides: bundled(stix-math-fonts)
%endif %endif
%{?python_provide:%python_provide python3-matplotlib}
%description -n python3-matplotlib %description -n python3-matplotlib
Matplotlib is a Python 2D plotting library which produces publication Matplotlib is a Python 2D plotting library which produces publication
@@ -172,16 +224,22 @@ Matplotlib tries to make easy things easy and hard things possible.
You can generate plots, histograms, power spectra, bar charts, You can generate plots, histograms, power spectra, bar charts,
errorcharts, scatterplots, etc, with just a few lines of code. errorcharts, scatterplots, etc, with just a few lines of code.
%if %{with qt4}
%package -n python3-matplotlib-qt4 %package -n python3-matplotlib-qt4
Summary: Qt4 backend for python3-matplotlib Summary: Qt4 backend for python3-matplotlib
BuildRequires: python3-PyQt4-devel BuildRequires: python3-PyQt4-devel
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-matplotlib-qt5 Requires: python3-matplotlib-qt5
Requires: python3-PyQt4 Requires: python3-PyQt4
%{?python_provide:%python_provide python3-matplotlib-qt4}
# Upstream has deprecated this backend due to Qt4 being no longer supported.
# This backend will be removed when upstream does, likely in 3.5, or Fedora 35.
# The removal date is thus estimated to be the Fedora 35 Branch point.
Provides: deprecated() = 20210810
%description -n python3-matplotlib-qt4 %description -n python3-matplotlib-qt4
%{summary} %{summary}
%endif
%package -n python3-matplotlib-qt5 %package -n python3-matplotlib-qt5
Summary: Qt5 backend for python3-matplotlib Summary: Qt5 backend for python3-matplotlib
@@ -201,7 +259,6 @@ BuildRequires: python3-gobject
Requires: gtk3%{?_isa} Requires: gtk3%{?_isa}
Requires: python3-gobject%{?_isa} Requires: python3-gobject%{?_isa}
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python3-matplotlib-gtk3}
%description -n python3-matplotlib-gtk3 %description -n python3-matplotlib-gtk3
%{summary} %{summary}
@@ -211,25 +268,24 @@ Summary: Tk backend for python3-matplotlib
BuildRequires: python3-tkinter BuildRequires: python3-tkinter
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-tkinter Requires: python3-tkinter
%{?python_provide:%python_provide python3-matplotlib-tk}
%description -n python3-matplotlib-tk %description -n python3-matplotlib-tk
%{summary} %{summary}
%if %{with wx}
%package -n python3-matplotlib-wx %package -n python3-matplotlib-wx
Summary: WX backend for python3-matplotlib Summary: WX backend for python3-matplotlib
BuildRequires: python3-wxpython4 BuildRequires: python3-wxpython4
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-wxpython4 Requires: python3-wxpython4
%{?python_provide:%python_provide python3-matplotlib-wx}
%description -n python3-matplotlib-wx %description -n python3-matplotlib-wx
%{summary} %{summary}
%endif
%package -n python3-matplotlib-doc %package -n python3-matplotlib-doc
Summary: Documentation files for python-matplotlib Summary: Documentation files for python-matplotlib
%if %{with_html} %if %{with html}
BuildRequires: dvipng
BuildRequires: graphviz BuildRequires: graphviz
BuildRequires: python3-sphinx BuildRequires: python3-sphinx
BuildRequires: tex(latex) BuildRequires: tex(latex)
@@ -248,33 +304,19 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%package -n python3-matplotlib-test-data %package -n python3-matplotlib-test-data
Summary: Test data for python3-matplotlib Summary: Test data for python3-matplotlib
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python3-matplotlib-test-data}
%description -n python3-matplotlib-test-data %description -n python3-matplotlib-test-data
%{summary} %{summary}
%prep %prep
%autosetup -n matplotlib-%{version}%{?rctag} -N %autosetup -n matplotlib-%{Version} -N
%patch0001 -p1
%patch0002 -p1
# Fedora-specific patches follow: # Fedora-specific patches follow:
%patch1001 -p1 %patch1001 -p1
# Updated test images for new FreeType. # Updated test images for new FreeType.
%patch1002 -p1 %patch1002 -p1
gzip -dc %SOURCE1000 | tar xvf - --transform='s~^mpl-images-%{mpl_images_version}-with-freetype-%{ftver}/\([^/]\+\)/~lib/\1/tests/baseline_images/~' gzip -dc %SOURCE1000 | tar xf - --transform='s~^mpl-images-%{mpl_images_version}-with-freetype-%{ftver}/\([^/]\+\)/~lib/\1/tests/baseline_images/~'
%ifnarch x86_64
%patch1003 -p1
%endif
%ifarch aarch64 ppc64 ppc64le s390x
%patch1005 -p1
%endif
%ifarch i686 armv7hl
%patch1004 -p1
%endif
rm -r extern/libqhull
# Copy setup.cfg to the builddir # Copy setup.cfg to the builddir
cp -p %{SOURCE1} setup.cfg cp -p %{SOURCE1} setup.cfg
@@ -284,154 +326,212 @@ cp -p %{SOURCE1} setup.cfg
%set_build_flags %set_build_flags
export http_proxy=http://127.0.0.1/ export http_proxy=http://127.0.0.1/
MPLCONFIGDIR=$PWD \ MPLCONFIGDIR=$PWD %py3_build
xvfb-run %{__python3} setup.py build %if %{with html}
%if %{with_html}
# Need to make built matplotlib libs available for the sphinx extensions: # Need to make built matplotlib libs available for the sphinx extensions:
pushd doc pushd doc
MPLCONFIGDIR=$PWD/.. \ MPLCONFIGDIR=$PWD/.. \
PYTHONPATH=`realpath ../build/lib.linux*` \ PYTHONPATH=`realpath ../build/lib.linux*` \
%{__python3} make.py html %{python3} make.py html
popd popd
%endif %endif
# Ensure all example files are non-executable so that the -doc # Ensure all example files are non-executable so that the -doc
# package doesn't drag in dependencies # package doesn't drag in dependencies
find examples -name '*.py' -exec chmod a-x '{}' \; find examples -name '*.py' -exec chmod a-x '{}' \;
%install %install
export http_proxy=http://127.0.0.1/ export http_proxy=http://127.0.0.1/
MPLCONFIGDIR=$PWD \ MPLCONFIGDIR=$PWD %py3_install
%{__python3} setup.py install -O1 --skip-build --root=%{buildroot}
chmod +x %{buildroot}%{python3_sitearch}/matplotlib/dates.py # Delete unnecessary files.
rm %{buildroot}%{python3_sitearch}/matplotlib/backends/web_backend/.{eslintrc.js,prettierignore,prettierrc}
rm %{buildroot}%{python3_sitearch}/matplotlib/tests/tinypages/.gitignore
rm %{buildroot}%{python3_sitearch}/matplotlib/tests/tinypages/_static/.gitignore
# Move files to Fedora-specific locations.
mkdir -p %{buildroot}%{_sysconfdir} %{buildroot}%{_datadir}/matplotlib mkdir -p %{buildroot}%{_sysconfdir} %{buildroot}%{_datadir}/matplotlib
mv %{buildroot}%{python3_sitearch}/matplotlib/mpl-data/matplotlibrc \
%{buildroot}%{_sysconfdir}
mv %{buildroot}%{python3_sitearch}/matplotlib/mpl-data \ mv %{buildroot}%{python3_sitearch}/matplotlib/mpl-data \
%{buildroot}%{_datadir}/matplotlib %{buildroot}%{_datadir}/matplotlib
%if !%{with_bundled_fonts} %if %{without bundled_fonts}
rm -rf %{buildroot}%{_datadir}/matplotlib/mpl-data/fonts rm -rf %{buildroot}%{_datadir}/matplotlib/mpl-data/fonts
%endif %endif
%if %{run_tests}
%if %{with check}
%check %check
# These files confuse pytest, and we want to test the installed copy. # These files confuse pytest, and we want to test the installed copy.
rm -rf build*/ rm -rf build*/
# We need to prime this LaTeX cache stuff, or it might fail while running tests
# in parallel.
mktexfmt latex.fmt
mktexfmt lualatex.fmt
mktexfmt pdflatex.fmt
mktexfmt xelatex.fmt
export http_proxy=http://127.0.0.1/ export http_proxy=http://127.0.0.1/
# Skips: # Skips:
# * test_invisible_Line_rendering: Checks for "slowness" that often fails on a # * test_invisible_Line_rendering: Checks for "slowness" that often fails on a
# heavily-loaded builder. # heavily-loaded builder.
# * wxagg is broken on ppc64le:
# https://bugzilla.redhat.com/show_bug.cgi?id=1738752
MPLCONFIGDIR=$PWD \ MPLCONFIGDIR=$PWD \
MATPLOTLIBRC=%{buildroot}%{_sysconfdir}/matplotlibrc \
PYTHONPATH=%{buildroot}%{python3_sitearch} \ PYTHONPATH=%{buildroot}%{python3_sitearch} \
PYTHONDONTWRITEBYTECODE=1 \ PYTHONDONTWRITEBYTECODE=1 \
xvfb-run -a -s "-screen 0 640x480x24" \ xvfb-run -a -s "-screen 0 640x480x24" \
%{__python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \ %{python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \
-m 'not network' \ -m 'not network' \
%ifarch ppc64le
-k 'not test_invisible_Line_rendering and not Qt5Agg and not wxagg'
%else
-k 'not test_invisible_Line_rendering and not Qt5Agg' -k 'not test_invisible_Line_rendering and not Qt5Agg'
%endif
# Run Qt5Agg tests separately to not conflict with Qt4 tests. # Run Qt5Agg tests separately to not conflict with Qt4 tests.
MPLCONFIGDIR=$PWD \ MPLCONFIGDIR=$PWD \
MATPLOTLIBRC=%{buildroot}%{_sysconfdir}/matplotlibrc \
PYTHONPATH=%{buildroot}%{python3_sitearch} \ PYTHONPATH=%{buildroot}%{python3_sitearch} \
PYTHONDONTWRITEBYTECODE=1 \ PYTHONDONTWRITEBYTECODE=1 \
xvfb-run -a -s "-screen 0 640x480x24" \ xvfb-run -a -s "-screen 0 640x480x24" \
%{__python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \ %{python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \
-m 'not network' -k 'Qt5Agg' -m 'not network' -k 'Qt5Agg'
%endif %endif
%files -n python3-matplotlib-data %files -n python3-matplotlib-data
%{_sysconfdir}/matplotlibrc
%{_datadir}/matplotlib/mpl-data/ %{_datadir}/matplotlib/mpl-data/
%if %{with_bundled_fonts} %if %{with bundled_fonts}
%exclude %{_datadir}/matplotlib/mpl-data/fonts/ %exclude %{_datadir}/matplotlib/mpl-data/fonts/
%endif %endif
%if %{with_bundled_fonts} %if %{with bundled_fonts}
%files -n python3-matplotlib-data-fonts %files -n python3-matplotlib-data-fonts
%{_datadir}/matplotlib/mpl-data/fonts/ %{_datadir}/matplotlib/mpl-data/fonts/
%endif %endif
%files -n python3-matplotlib-doc %files -n python3-matplotlib-doc
%doc examples %doc examples
%if %{with_html} %if %{with html}
%doc doc/build/html/* %doc doc/build/html/*
%endif %endif
%files -n python3-matplotlib %files -n python3-matplotlib
%license LICENSE/ %license LICENSE/
%doc README.rst %doc README.rst
%{python3_sitearch}/*egg-info %{python3_sitearch}/matplotlib-*.egg-info/
%{python3_sitearch}/matplotlib-*-nspkg.pth %{python3_sitearch}/matplotlib-*-nspkg.pth
%{python3_sitearch}/matplotlib/ %{python3_sitearch}/matplotlib/
%exclude %{python3_sitearch}/matplotlib/tests/baseline_images/* %exclude %{python3_sitearch}/matplotlib/tests/baseline_images/*
%{python3_sitearch}/mpl_toolkits/ %{python3_sitearch}/mpl_toolkits/
%exclude %{python3_sitearch}/mpl_toolkits/tests/baseline_images/* %exclude %{python3_sitearch}/mpl_toolkits/tests/baseline_images/*
%{python3_sitearch}/pylab.py* %pycached %{python3_sitearch}/pylab.py
%{python3_sitearch}/__pycache__/* %pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_qt4*.py
%exclude %{python3_sitearch}/matplotlib/backends/backend_qt4*.py %if %{without qt4}
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt4* %pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_qt5*.py
#exclude #{python3_sitearch}/matplotlib/backends/backend_qt5*.py %endif
#exclude #{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5* %pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_gtk*.py
%exclude %{python3_sitearch}/matplotlib/backends/backend_gtk*.py %pycached %exclude %{python3_sitearch}/matplotlib/backends/_backend_tk.py
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_gtk* %pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_tk*.py
%exclude %{python3_sitearch}/matplotlib/backends/_backend_tk.py
%exclude %{python3_sitearch}/matplotlib/backends/backend_tk*.py
%exclude %{python3_sitearch}/matplotlib/backends/tkagg.py
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/_backend_tk.*
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_tk*.*
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/tkagg.*
%exclude %{python3_sitearch}/matplotlib/backends/_tkagg.* %exclude %{python3_sitearch}/matplotlib/backends/_tkagg.*
%exclude %{python3_sitearch}/matplotlib/backends/backend_wx* %pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_wx*.py
%exclude %{python3_sitearch}/matplotlib/backends/wx_compat.*
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_wx*
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/wx_compat.*
%exclude %{_pkgdocdir}/*/ %exclude %{_pkgdocdir}/*/
%files -n python3-matplotlib-test-data %files -n python3-matplotlib-test-data
%{python3_sitearch}/matplotlib/tests/baseline_images/ %{python3_sitearch}/matplotlib/tests/baseline_images/
%{python3_sitearch}/mpl_toolkits/tests/baseline_images/ %{python3_sitearch}/mpl_toolkits/tests/baseline_images/
%if %{with qt4}
%files -n python3-matplotlib-qt4 %files -n python3-matplotlib-qt4
%{python3_sitearch}/matplotlib/backends/backend_qt4.py %pycached %{python3_sitearch}/matplotlib/backends/backend_qt4.py
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt4.* %pycached %{python3_sitearch}/matplotlib/backends/backend_qt4agg.py
%{python3_sitearch}/matplotlib/backends/backend_qt4agg.py %endif
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt4agg.*
# This subpackage is empty because the Qt4 backend imports it, so we leave # This subpackage is empty because the Qt4 backend imports it, so we leave
# these files in the default package, and only use this one for dependencies. # these files in the default package, and only use this one for dependencies.
%files -n python3-matplotlib-qt5 %files -n python3-matplotlib-qt5
#{python3_sitearch}/matplotlib/backends/backend_qt5.py %if %{without qt4}
#{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5.* %pycached %{python3_sitearch}/matplotlib/backends/backend_qt5.py
#{python3_sitearch}/matplotlib/backends/backend_qt5agg.py %pycached %{python3_sitearch}/matplotlib/backends/backend_qt5agg.py
#{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5agg.* %endif
%files -n python3-matplotlib-gtk3 %files -n python3-matplotlib-gtk3
%{python3_sitearch}/matplotlib/backends/backend_gtk*.py %pycached %{python3_sitearch}/matplotlib/backends/backend_gtk*.py
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_gtk*
%files -n python3-matplotlib-tk %files -n python3-matplotlib-tk
%{python3_sitearch}/matplotlib/backends/backend_tk*.py %pycached %{python3_sitearch}/matplotlib/backends/backend_tk*.py
%{python3_sitearch}/matplotlib/backends/_backend_tk.py %pycached %{python3_sitearch}/matplotlib/backends/_backend_tk.py
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_tk*.*
%{python3_sitearch}/matplotlib/backends/__pycache__/_backend_tk.*
%{python3_sitearch}/matplotlib/backends/_tkagg.* %{python3_sitearch}/matplotlib/backends/_tkagg.*
%if %{with wx}
%files -n python3-matplotlib-wx %files -n python3-matplotlib-wx
%{python3_sitearch}/matplotlib/backends/backend_wx*.py %pycached %{python3_sitearch}/matplotlib/backends/backend_wx*.py
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_wx* %endif
%changelog %changelog
* Wed Aug 25 2021 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.4.3-2
- Fix return type in get_data_path patch
* Fri Aug 13 2021 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.4.3-1
- Update to latest version (#1993426)
* Sat May 08 2021 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.4.2-1
- Update to latest version (#1958461)
* Wed Mar 31 2021 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.4.1-1
- Update to latest version (#1943482)
* Thu Mar 11 2021 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.4.0~rc3-1
- Update to latest release candidate
* Fri Feb 19 2021 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.4.0~rc1-1
- Update to latest release candidate
- Deprecated python3-matplotlib-qt4 subpackage
* Tue Feb 16 2021 Troy Dawson <tdawson@redhat.com> - 3.3.4-3
- Add build deps that were only getting pulled in by other dependencies
* Mon Feb 01 2021 Tomas Popela <tpopela@redhat.com> - 3.3.4-2
- Conditionalize the WX backend and disable it on RHEL 8+ as WX is not
available there.
* Thu Jan 28 2021 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.4-1
- Update to latest version (#1921574)
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Dec 02 2020 Tomas Popela <tpopela@redhat.com> - 3.3.3-2
- Don't build the Qt 4 backend in ELN/RHEL 9 as Qt 4 won't be available there
(reuse
https://src.fedoraproject.org/rpms/python-matplotlib/c/588e490738b06d525910f05bc1ba3f3f05ec7d50?branch=epel8)
* Thu Nov 12 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.3-1
- Update to latest version (#1897021)
* Tue Sep 15 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.2-1
- Update to latest version (#1878999)
* Thu Aug 13 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.1-1
- Update to latest version
- Fixes RHBZ#1868838
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sat Jul 18 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.0-1
- Update to latest version
- Fixes RHBZ#1858120
* Tue Jun 30 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.0-0.2.rc1
- Add more test dependencies
* Mon Jun 29 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.0-0.1.rc1
- Update to latest version
* Sat Jun 20 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.2.2-1 * Sat Jun 20 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.2.2-1
- Update to latest version - Update to latest version
* Mon Jun 01 2020 Miro Hrončok <mhroncok@redhat.com> - 3.2.1-2
- Only recommend texlive-dvipng (but require it if texlive is installed) (#1509657)
* Mon May 25 2020 Miro Hrončok <mhroncok@redhat.com> - 3.2.1-1.1
- Rebuilt for Python 3.9
* Wed Mar 18 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.2.1-1 * Wed Mar 18 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.2.1-1
- Update to latest version - Update to latest version

View File

@@ -1,3 +1,7 @@
[libs]
system_freetype = True
system_qhull = True
[packages] [packages]
tests = True tests = True
toolkits = True toolkits = True

View File

@@ -1,2 +1,2 @@
SHA512 (matplotlib-3.2.2.tar.gz) = 4c9312e929357a7c73ead51fa1a679c04b2b9735edfe0f1a2d08a07ec4d94d67df4ff6e8c6d594665a3b270cd3033c48ea8f2aa50fb1e2746812f24c27181f59 SHA512 (matplotlib-3.4.3.tar.gz) = e346c7d0f33b7d2fb5b48a4578ec99a40c2e5b959d109526ccbe7582a37f10abb91d53062711c37eb4ccaf462fd8684e1557405c50ccf43139bc371601a60e80
SHA512 (matplotlib-3.2.2-with-freetype-2.10.1.tar.gz) = 498fb1224f74c5254e3a2620d4d36571ed712a7ac261bcb4b2a548ea57d6b7431634dfad547b529d6fa1a3fab90e6b489150afe815485a3030d1e899edfd9be8 SHA512 (matplotlib-3.4.3-with-freetype-2.10.4.tar.gz) = 665870e9c34fa562c69c28432b6d378e02c63ff2b14a34f982a16c89ecdb3b012cdf3306e84a052d689710f2ddff069c8a207b63971c73e5c867d6562e1f6241