Compare commits

..

2 Commits
f31 ... f30

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek
4d50dc0e21 Remove comment after %endif
RPM 4.15 complains.
2019-07-03 12:02:12 +02:00
Zbigniew Jędrzejewski-Szmek
1d6529ba46 Update Obsoletes to be later than the last python2 builds 2019-07-03 12:02:12 +02:00
12 changed files with 221 additions and 409 deletions

7
.gitignore vendored
View File

@@ -36,10 +36,3 @@ matplotlib-1.0.0-without-gpc.tar.gz
/matplotlib-3.0.1-with-freetype-2.9.1.tar.gz
/matplotlib-3.0.2.tar.gz
/matplotlib-3.0.3.tar.gz
/matplotlib-3.1.0rc1.tar.gz
/matplotlib-3.1.0.tar.gz
/matplotlib-3.1.0-with-freetype-2.10.0.tar.gz
/matplotlib-3.1.1.tar.gz
/matplotlib-3.1.1-with-freetype-2.10.0.tar.gz
/matplotlib-3.1.2.tar.gz
/matplotlib-3.1.3.tar.gz

View File

@@ -1,36 +0,0 @@
From f0dbd8d7b76ac217df3641d03997b393c476d77c Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Wed, 20 Nov 2019 15:58:04 -0500
Subject: [PATCH] Fix env override in WebAgg backend test.
It's only necessary to override DISPLAY, not throw away the rest of the
environment. Without the other environment variables, stuff like custom
PYTHONPATH break in this test.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/tests/test_backend_webagg.py | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/lib/matplotlib/tests/test_backend_webagg.py b/lib/matplotlib/tests/test_backend_webagg.py
index 220670aa4..997c36a3a 100644
--- a/lib/matplotlib/tests/test_backend_webagg.py
+++ b/lib/matplotlib/tests/test_backend_webagg.py
@@ -8,11 +8,9 @@ import pytest
def test_webagg_fallback(backend):
if backend == "nbagg":
pytest.importorskip("IPython")
- env = {}
- if os.name == "nt":
- env = dict(os.environ)
- else:
- env = {"DISPLAY": ""}
+ env = dict(os.environ)
+ if os.name != "nt":
+ env["DISPLAY"] = ""
env["MPLBACKEND"] = backend
--
2.21.0

View File

@@ -1,37 +1,43 @@
From ee5c28ea8cd17cbc04d5a9b79d5ce1326df93466 Mon Sep 17 00:00:00 2001
From 46361ca058295e3f08d3c54196d990c497834306 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(-)
setupext.py | 17 ++---------------
1 file changed, 2 insertions(+), 15 deletions(-)
diff --git a/setupext.py b/setupext.py
index 3e8b382cc..66a278b0c 100644
index d2ff239ad..30e0c9085 100644
--- a/setupext.py
+++ b/setupext.py
@@ -838,14 +838,12 @@ class Png(SetupPackage):
class Qhull(SetupPackage):
name = "qhull"
@@ -1318,23 +1318,10 @@ class Qhull(SetupPackage):
+ def check(self):
+ self.__class__.found_external = True
def check(self):
self.__class__.found_external = True
- try:
- return self._check_for_pkg_config(
- 'libqhull', 'libqhull/qhull_a.h', min_version='2015.2')
- except CheckFailed as e:
- self.__class__.found_pkgconfig = False
- self.__class__.found_external = False
- return str(e) + ' Using local copy.'
+ 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')
- if self.found_external:
- pkg_config.setup_extension(ext, 'qhull',
- default_libraries=['qhull'])
- else:
- 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
2.14.3

View File

@@ -1,25 +0,0 @@
From 5c714fede82e29bd42a3a6f20ec2898a9c37a0ed Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Fri, 22 Nov 2019 19:50:20 -0500
Subject: [PATCH] Skip webagg test if tornado is not available.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/tests/test_backend_webagg.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/matplotlib/tests/test_backend_webagg.py b/lib/matplotlib/tests/test_backend_webagg.py
index 997c36a3a..5c6ddfa25 100644
--- a/lib/matplotlib/tests/test_backend_webagg.py
+++ b/lib/matplotlib/tests/test_backend_webagg.py
@@ -6,6 +6,7 @@ import pytest
@pytest.mark.parametrize("backend", ["webagg", "nbagg"])
def test_webagg_fallback(backend):
+ pytest.importorskip("tornado")
if backend == "nbagg":
pytest.importorskip("IPython")
env = dict(os.environ)
--
2.21.0

View File

@@ -1,14 +1,14 @@
From c2af74bf18d46d03ec34bfda32afe1a99511ac9f Mon Sep 17 00:00:00 2001
From fede0d8731c1301720f16e2d46df8275e8ecf9e8 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 | 56 -------------------
3 files changed, 6 insertions(+), 62 deletions(-)
.../backends/web_backend/all_figures.html | 6 +--
.../backends/web_backend/single_figure.html | 6 +--
setup.py | 46 -------------------
3 files changed, 6 insertions(+), 52 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
@@ -45,39 +45,29 @@ index 4d5a366fb..c11c86618 100644
<script src="{{ prefix }}/js/mpl.js"></script>
<script>
diff --git a/setup.py b/setup.py
index adabf1753..57d6b91b4 100644
index 94c8106d3..42ae7e294 100644
--- a/setup.py
+++ b/setup.py
@@ -27,8 +27,6 @@ from zipfile import ZipFile
@@ -28,8 +28,6 @@ from zipfile import ZipFile
from setuptools import setup, Extension
from setuptools import setup
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.
@@ -124,60 +122,6 @@ cmdclass['test'] = NoopTestCommand
@@ -121,50 +119,6 @@ cmdclass['test'] = NoopTestCommand
cmdclass['build_ext'] = BuildExtraLibraries
-def _download_jquery_to(dest):
- if os.path.exists(os.path.join(dest, "jquery-ui-1.12.1")):
- return
-
- # If we are installing from an sdist, use the already downloaded jquery-ui
- sdist_src = os.path.join(
- "lib/matplotlib/backends/web_backend", "jquery-ui-1.12.1")
- if os.path.exists(sdist_src):
- shutil.copytree(sdist_src, os.path.join(dest, "jquery-ui-1.12.1"))
- return
-
- # 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'
- if not os.path.exists(os.path.join(dest, "jquery-ui-1.12.1")):
- os.makedirs(dest, exist_ok=True)
- _makedirs(dest, exist_ok=True)
- try:
- buff = download_or_cache(url, sha)
- except Exception:
@@ -119,5 +109,5 @@ index adabf1753..57d6b91b4 100644
# however, this is needed on Windows to avoid creating infinite subprocesses
# when using multiprocessing.
--
2.21.0
2.20.1

View File

@@ -1,24 +1,24 @@
From 9776757607af144c824d72920f8983efc35face3 Mon Sep 17 00:00:00 2001
From eeeee74ff61646d321500490bbb9dbbcde424e14 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Wed, 27 Sep 2017 19:35:59 -0400
Subject: [PATCH 1/4] matplotlibrc path search fix
Subject: [PATCH 1/3] matplotlibrc path search fix
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/__init__.py | 19 ++++---------------
lib/matplotlib/tests/test_rcparams.py | 18 ++++++++++++------
2 files changed, 16 insertions(+), 21 deletions(-)
lib/matplotlib/__init__.py | 18 +++---------------
lib/matplotlib/tests/test_rcparams.py | 22 ++++++++++++++++------
2 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 825303171..7a4115491 100644
index 091cb6178..5648392ce 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -624,18 +624,8 @@ def _get_data_path():
@@ -664,18 +664,7 @@ def _get_data_path():
return path
def get_candidate_paths():
- yield Path(__file__).with_name('mpl-data')
- # setuptools' namespace_packages may hijack this init file
- # setuptools' namespace_packages may highjack 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')
@@ -29,22 +29,21 @@ index 825303171..7a4115491 100644
- 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'
+ yield (Path(__file__).parent.parent.parent.parent.parent /
+ 'share/matplotlib/mpl-data')
+ yield Path('/usr/share/matplotlib/mpl-data')
for path in get_candidate_paths():
if path.is_dir():
@@ -678,8 +668,7 @@ def matplotlib_fname():
is not defined)
- On other platforms,
- ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined
- - Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always
- exist.
+ - Lastly, it looks in ``/etc/matplotlibrc``, which should always exist.
@@ -727,8 +716,7 @@ def matplotlib_fname():
- `$HOME/.matplotlib/matplotlibrc` if `$HOME` is defined.
- - Lastly, it looks in `$MATPLOTLIBDATA/matplotlibrc` for a
- system-defined copy.
+ - Lastly, it looks in `/etc/matplotlibrc` for a system-defined copy.
"""
def gen_candidates():
@@ -692,7 +681,7 @@ def matplotlib_fname():
@@ -741,7 +729,7 @@ def matplotlib_fname():
yield matplotlibrc
yield os.path.join(matplotlibrc, 'matplotlibrc')
yield os.path.join(get_configdir(), 'matplotlibrc')
@@ -52,29 +51,26 @@ index 825303171..7a4115491 100644
+ yield '/etc/matplotlibrc'
for fname in gen_candidates():
if os.path.exists(fname) and not os.path.isdir(fname):
if os.path.exists(fname):
diff --git a/lib/matplotlib/tests/test_rcparams.py b/lib/matplotlib/tests/test_rcparams.py
index d8fe73ceb..c3aeb58ef 100644
index 7eec4d421..4c74619f6 100644
--- a/lib/matplotlib/tests/test_rcparams.py
+++ b/lib/matplotlib/tests/test_rcparams.py
@@ -1,6 +1,7 @@
from collections import OrderedDict
import copy
import os
+from pathlib import Path
from unittest import mock
import warnings
@@ -457,11 +458,17 @@ def test_rcparams_reset_after_fail():
@@ -451,11 +451,22 @@ 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')
+ # This is the Fedora-specific location ...
+ if 'MATPLOTLIBDATA' in os.environ:
+ # ... in buildroot.
+ return os.path.join(os.environ['MATPLOTLIBDATA'],
+ '../../../../etc/matplotlibrc')
+ else:
+ # ... on installed systems.
+ return '/etc/matplotlibrc'
+
+
+def test_if_rctemplate_is_up_to_date(mplrc):
@@ -86,7 +82,7 @@ index d8fe73ceb..c3aeb58ef 100644
rclines = f.readlines()
missing = {}
for k, v in mpl.defaultParams.items():
@@ -484,11 +491,10 @@ def test_if_rctemplate_is_up_to_date():
@@ -478,11 +489,10 @@ def test_if_rctemplate_is_up_to_date():
.format(missing.items()))
@@ -101,5 +97,5 @@ index d8fe73ceb..c3aeb58ef 100644
newlines = []
for line in rclines:
--
2.21.1
2.20.1

View File

@@ -1,7 +1,7 @@
From 83ec21942e1b7d80000d801595c57a653eefa243 Mon Sep 17 00:00:00 2001
From 64c0ea2ea7986d6cb05b41d37226f510ffe41b76 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.
Subject: [PATCH 2/3] Increase tolerances for non-x86_64 arches.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
@@ -10,7 +10,7 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py
index a712680cd..6007c9b9a 100644
index 17c0d1967..e261513df 100644
--- a/lib/matplotlib/tests/test_streamplot.py
+++ b/lib/matplotlib/tests/test_streamplot.py
@@ -61,7 +61,7 @@ def test_linewidth():
@@ -23,10 +23,10 @@ index a712680cd..6007c9b9a 100644
def test_masks_and_nans():
X, Y, U, V = velocity_field()
diff --git a/lib/mpl_toolkits/tests/test_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py
index 95b1ae5a3..e054196b4 100644
index ddbf7e9f7..86e49cc45 100644
--- a/lib/mpl_toolkits/tests/test_axes_grid1.py
+++ b/lib/mpl_toolkits/tests/test_axes_grid1.py
@@ -362,7 +362,7 @@ def test_zooming_with_inverted_axes():
@@ -361,7 +361,7 @@ def test_zooming_with_inverted_axes():
@image_comparison(baseline_images=['anchored_direction_arrows'],
@@ -36,5 +36,5 @@ index 95b1ae5a3..e054196b4 100644
def test_anchored_direction_arrows():
fig, ax = plt.subplots()
--
2.21.1
2.20.1

View File

@@ -1,114 +0,0 @@
From 939fcad1ab9dc4986bd86842f616dc50cb6398e2 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sat, 4 May 2019 04:36:45 -0400
Subject: [PATCH 2/4] Set FreeType version to 2.10.0 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 | 5 ++++-
5 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 7a4115491..1bf9d3e03 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1361,7 +1361,7 @@ 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.0'
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 356b9ad42..84a1956ee 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -6207,7 +6207,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],
@@ -6225,7 +6225,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
@@ -6350,7 +6350,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 8769fcec3..e9ae292f6 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -416,4 +416,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 0b9469cb8..7963b82ff 100644
--- a/lib/matplotlib/tests/test_tightlayout.py
+++ b/lib/matplotlib/tests/test_tightlayout.py
@@ -186,12 +186,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 3e8b382cc..2a3fc3ee7 100644
--- a/setupext.py
+++ b/setupext.py
@@ -135,12 +135,15 @@ _freetype_hashes = {
'2.7.1': '162ef25aa64480b1189cdb261228e6c5c44f212aac4b4621e28cf2157efb59f5',
'2.8': '33a28fabac471891d0523033e99c0005b95e5618dc8ffa7fa47f9dadcacb1c9b',
'2.8.1': '876711d064a6a1bd74beb18dd37f219af26100f72daaebd2d86cb493d7cd7ec6',
+ '2.9': 'bf380e4d7c4f3b5b1c1a7b2bf3abb967bda5e9ab480d0df656e0e08c5019c5e6',
+ '2.9.1': 'ec391504e55498adceb30baceebd147a6e963f636eb617424bcfc47a169898ce',
+ '2.10.0': '955e17244e9b38adb0c98df66abb50467312e6bb70eac07e49ce6bd1a20e809a',
}
# 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.0'
LOCAL_FREETYPE_HASH = _freetype_hashes.get(LOCAL_FREETYPE_VERSION, 'unknown')
--
2.21.1

View File

@@ -1,7 +1,7 @@
From d9fada8cc0ef89142222f4c163ec9dd155662cb6 Mon Sep 17 00:00:00 2001
From 4b3c9145a4c247197a40c5314151566e437f7bbe 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.
Subject: [PATCH 3/3] Increase some tolerances for 32-bit systems.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
@@ -30,10 +30,10 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
22 files changed, 59 insertions(+), 63 deletions(-)
diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py
index 04d5bcda8..70de0263b 100644
index 85b8d5e87..f3fc47c68 100644
--- a/lib/matplotlib/testing/decorators.py
+++ b/lib/matplotlib/testing/decorators.py
@@ -341,7 +341,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol,
@@ -338,7 +338,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol,
return decorator
@@ -43,7 +43,7 @@ index 04d5bcda8..70de0263b 100644
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 9bf15d0b9..5339dd2eb 100644
index 283db9abe..2ae11142c 100644
--- a/lib/matplotlib/tests/test_artist.py
+++ b/lib/matplotlib/tests/test_artist.py
@@ -94,7 +94,8 @@ def test_collection_transform_of_none():
@@ -57,10 +57,10 @@ index 9bf15d0b9..5339dd2eb 100644
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 84a1956ee..50eb0e6a4 100644
index c0e0e560d..6e88c167c 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -562,7 +562,7 @@ def test_single_point():
@@ -554,7 +554,7 @@ def test_single_point():
@image_comparison(baseline_images=['single_date'], extensions=['png'],
@@ -69,7 +69,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_single_date():
time1 = [721964.0]
data1 = [-65.54]
@@ -1079,7 +1079,7 @@ def test_fill_between_interpolate():
@@ -1028,7 +1028,7 @@ def test_fill_between_interpolate():
@image_comparison(baseline_images=['fill_between_interpolate_decreasing'],
@@ -78,7 +78,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_fill_between_interpolate_decreasing():
p = np.array([724.3, 700, 655])
t = np.array([9.4, 7, 2.2])
@@ -1164,7 +1164,8 @@ def test_pcolormesh():
@@ -1110,7 +1110,8 @@ def test_pcolormesh():
@image_comparison(baseline_images=['pcolormesh_datetime_axis'],
@@ -88,7 +88,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_pcolormesh_datetime_axis():
fig = plt.figure()
fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15)
@@ -1190,7 +1191,8 @@ def test_pcolormesh_datetime_axis():
@@ -1136,7 +1137,8 @@ def test_pcolormesh_datetime_axis():
@image_comparison(baseline_images=['pcolor_datetime_axis'],
@@ -98,7 +98,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_pcolor_datetime_axis():
fig = plt.figure()
fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15)
@@ -1247,7 +1249,7 @@ def test_canonical():
@@ -1193,7 +1195,7 @@ def test_canonical():
@image_comparison(baseline_images=['arc_angles'], remove_text=True,
@@ -107,7 +107,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_arc_angles():
from matplotlib import patches
# Ellipse parameters
@@ -2644,7 +2646,7 @@ def test_boxplot_mod_artist_after_plotting():
@@ -2540,7 +2542,7 @@ def test_boxplot_mod_artist_after_plotting():
@image_comparison(baseline_images=['violinplot_vert_baseline',
'violinplot_vert_baseline'],
@@ -116,7 +116,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_vert_violinplot_baseline():
# First 9 digits of frac(sqrt(2))
np.random.seed(414213562)
@@ -2662,7 +2664,7 @@ def test_vert_violinplot_baseline():
@@ -2558,7 +2560,7 @@ def test_vert_violinplot_baseline():
@image_comparison(baseline_images=['violinplot_vert_showmeans'],
@@ -125,7 +125,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_vert_violinplot_showmeans():
ax = plt.axes()
# First 9 digits of frac(sqrt(3))
@@ -2673,7 +2675,7 @@ def test_vert_violinplot_showmeans():
@@ -2569,7 +2571,7 @@ def test_vert_violinplot_showmeans():
@image_comparison(baseline_images=['violinplot_vert_showextrema'],
@@ -134,7 +134,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_vert_violinplot_showextrema():
ax = plt.axes()
# First 9 digits of frac(sqrt(5))
@@ -2684,7 +2686,7 @@ def test_vert_violinplot_showextrema():
@@ -2580,7 +2582,7 @@ def test_vert_violinplot_showextrema():
@image_comparison(baseline_images=['violinplot_vert_showmedians'],
@@ -143,7 +143,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_vert_violinplot_showmedians():
ax = plt.axes()
# First 9 digits of frac(sqrt(7))
@@ -2695,7 +2697,7 @@ def test_vert_violinplot_showmedians():
@@ -2591,7 +2593,7 @@ def test_vert_violinplot_showmedians():
@image_comparison(baseline_images=['violinplot_vert_showall'],
@@ -152,7 +152,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_vert_violinplot_showall():
ax = plt.axes()
# First 9 digits of frac(sqrt(11))
@@ -2706,7 +2708,7 @@ def test_vert_violinplot_showall():
@@ -2602,7 +2604,7 @@ def test_vert_violinplot_showall():
@image_comparison(baseline_images=['violinplot_vert_custompoints_10'],
@@ -161,7 +161,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_vert_violinplot_custompoints_10():
ax = plt.axes()
# First 9 digits of frac(sqrt(13))
@@ -2717,7 +2719,7 @@ def test_vert_violinplot_custompoints_10():
@@ -2613,7 +2615,7 @@ def test_vert_violinplot_custompoints_10():
@image_comparison(baseline_images=['violinplot_vert_custompoints_200'],
@@ -170,7 +170,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_vert_violinplot_custompoints_200():
ax = plt.axes()
# First 9 digits of frac(sqrt(17))
@@ -2728,7 +2730,7 @@ def test_vert_violinplot_custompoints_200():
@@ -2624,7 +2626,7 @@ def test_vert_violinplot_custompoints_200():
@image_comparison(baseline_images=['violinplot_horiz_baseline'],
@@ -179,7 +179,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_horiz_violinplot_baseline():
ax = plt.axes()
# First 9 digits of frac(sqrt(19))
@@ -2739,7 +2741,7 @@ def test_horiz_violinplot_baseline():
@@ -2635,7 +2637,7 @@ def test_horiz_violinplot_baseline():
@image_comparison(baseline_images=['violinplot_horiz_showmedians'],
@@ -188,7 +188,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_horiz_violinplot_showmedians():
ax = plt.axes()
# First 9 digits of frac(sqrt(23))
@@ -2750,7 +2752,7 @@ def test_horiz_violinplot_showmedians():
@@ -2646,7 +2648,7 @@ def test_horiz_violinplot_showmedians():
@image_comparison(baseline_images=['violinplot_horiz_showmeans'],
@@ -197,7 +197,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_horiz_violinplot_showmeans():
ax = plt.axes()
# First 9 digits of frac(sqrt(29))
@@ -2761,7 +2763,7 @@ def test_horiz_violinplot_showmeans():
@@ -2657,7 +2659,7 @@ def test_horiz_violinplot_showmeans():
@image_comparison(baseline_images=['violinplot_horiz_showextrema'],
@@ -206,7 +206,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_horiz_violinplot_showextrema():
ax = plt.axes()
# First 9 digits of frac(sqrt(31))
@@ -2772,7 +2774,7 @@ def test_horiz_violinplot_showextrema():
@@ -2668,7 +2670,7 @@ def test_horiz_violinplot_showextrema():
@image_comparison(baseline_images=['violinplot_horiz_showall'],
@@ -215,7 +215,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_horiz_violinplot_showall():
ax = plt.axes()
# First 9 digits of frac(sqrt(37))
@@ -2783,7 +2785,7 @@ def test_horiz_violinplot_showall():
@@ -2679,7 +2681,7 @@ def test_horiz_violinplot_showall():
@image_comparison(baseline_images=['violinplot_horiz_custompoints_10'],
@@ -224,7 +224,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_horiz_violinplot_custompoints_10():
ax = plt.axes()
# First 9 digits of frac(sqrt(41))
@@ -2794,7 +2796,7 @@ def test_horiz_violinplot_custompoints_10():
@@ -2690,7 +2692,7 @@ def test_horiz_violinplot_custompoints_10():
@image_comparison(baseline_images=['violinplot_horiz_custompoints_200'],
@@ -233,7 +233,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_horiz_violinplot_custompoints_200():
ax = plt.axes()
# First 9 digits of frac(sqrt(43))
@@ -3518,8 +3520,7 @@ def test_vertex_markers():
@@ -3369,8 +3371,7 @@ def test_vertex_markers():
@image_comparison(baseline_images=['vline_hline_zorder',
@@ -243,7 +243,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_eb_line_zorder():
x = list(range(10))
@@ -4199,7 +4200,7 @@ def test_psd_noise():
@@ -4050,7 +4051,7 @@ def test_psd_noise():
@image_comparison(baseline_images=['csd_freqs'], remove_text=True,
@@ -252,7 +252,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_csd_freqs():
'''test axes.csd with sinusoidal stimuli'''
n = 10000
@@ -5117,7 +5118,7 @@ def test_rc_spines():
@@ -4943,7 +4944,7 @@ def test_rc_spines():
@image_comparison(baseline_images=['rc_grid'], extensions=['png'],
@@ -261,7 +261,7 @@ index 84a1956ee..50eb0e6a4 100644
def test_rc_grid():
fig = plt.figure()
rc_dict0 = {
@@ -5679,7 +5680,7 @@ def test_date_timezone_y():
@@ -5462,7 +5463,7 @@ def test_date_timezone_y():
@image_comparison(baseline_images=['date_timezone_x_and_y'],
@@ -271,7 +271,7 @@ index 84a1956ee..50eb0e6a4 100644
# Tests issue 5575
UTC = datetime.timezone.utc
diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py
index 773093100..37356d5e0 100644
index 6812ee1ad..5e5f19aac 100644
--- a/lib/matplotlib/tests/test_collections.py
+++ b/lib/matplotlib/tests/test_collections.py
@@ -466,7 +466,7 @@ def test_EllipseCollection():
@@ -284,10 +284,10 @@ index 773093100..37356d5e0 100644
from mpl_toolkits.mplot3d import Axes3D
diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py
index c65ad02c3..79deb249c 100644
index 1c358c09a..21019be34 100644
--- a/lib/matplotlib/tests/test_colorbar.py
+++ b/lib/matplotlib/tests/test_colorbar.py
@@ -97,7 +97,7 @@ def _colorbar_extension_length(spacing):
@@ -94,7 +94,7 @@ def _colorbar_extension_length(spacing):
@image_comparison(
baseline_images=['colorbar_extensions_shape_uniform',
'colorbar_extensions_shape_proportional'],
@@ -296,7 +296,7 @@ index c65ad02c3..79deb249c 100644
def test_colorbar_extension_shape():
'''Test rectangular colorbar extensions.'''
# Create figures for uniform and proportionally spaced colorbars.
@@ -107,7 +107,7 @@ def test_colorbar_extension_shape():
@@ -104,7 +104,7 @@ def test_colorbar_extension_shape():
@image_comparison(baseline_images=['colorbar_extensions_uniform',
'colorbar_extensions_proportional'],
@@ -305,7 +305,7 @@ index c65ad02c3..79deb249c 100644
def test_colorbar_extension_length():
'''Test variable length colorbar extensions.'''
# Create figures for uniform and proportionally spaced colorbars.
@@ -121,7 +121,7 @@ def test_colorbar_extension_length():
@@ -118,7 +118,7 @@ def test_colorbar_extension_length():
'cbar_sharing',
],
extensions=['png'], remove_text=True,
@@ -314,7 +314,7 @@ index c65ad02c3..79deb249c 100644
def test_colorbar_positioning():
data = np.arange(1200).reshape(30, 40)
levels = [0, 200, 400, 600, 800, 1000, 1200]
@@ -175,7 +175,7 @@ def test_colorbar_positioning():
@@ -172,7 +172,7 @@ def test_colorbar_positioning():
@image_comparison(baseline_images=['cbar_with_subplots_adjust'],
extensions=['png'], remove_text=True,
@@ -323,7 +323,7 @@ index c65ad02c3..79deb249c 100644
def test_gridspec_make_colorbar():
plt.figure()
data = np.arange(1200).reshape(30, 40)
@@ -233,7 +233,8 @@ def test_colorbarbase():
@@ -231,7 +231,8 @@ def test_colorbarbase():
@image_comparison(
baseline_images=['colorbar_closed_patch'],
@@ -334,7 +334,7 @@ index c65ad02c3..79deb249c 100644
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 e9ae292f6..0edfa1e27 100644
index de8161ea7..a1f307abe 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -246,7 +246,7 @@ def test_constrained_layout12():
@@ -347,10 +347,10 @@ index e9ae292f6..0edfa1e27 100644
def test_constrained_layout13():
'Test that padding works.'
diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py
index d78dcb1ff..ad39426e2 100644
index c1f27b9ef..149afadb9 100644
--- a/lib/matplotlib/tests/test_contour.py
+++ b/lib/matplotlib/tests/test_contour.py
@@ -226,7 +226,8 @@ def test_given_colors_levels_and_extends():
@@ -227,7 +227,8 @@ def test_given_colors_levels_and_extends():
@image_comparison(baseline_images=['contour_datetime_axis'],
@@ -360,7 +360,7 @@ index d78dcb1ff..ad39426e2 100644
def test_contour_datetime_axis():
fig = plt.figure()
fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15)
@@ -252,7 +253,8 @@ def test_contour_datetime_axis():
@@ -253,7 +254,8 @@ def test_contour_datetime_axis():
@image_comparison(baseline_images=['contour_test_label_transforms'],
@@ -370,7 +370,7 @@ index d78dcb1ff..ad39426e2 100644
def test_labels():
# Adapted from pylab_examples example code: contour_demo.py
# see issues #2475, #2843, and #2818 for explanation
@@ -283,7 +285,7 @@ def test_labels():
@@ -284,7 +286,7 @@ def test_labels():
@image_comparison(baseline_images=['contour_corner_mask_False',
'contour_corner_mask_True'],
@@ -380,10 +380,10 @@ index d78dcb1ff..ad39426e2 100644
n = 60
mask_level = 0.95
diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py
index 1254f3c7c..de11f6103 100644
index 8184d3eee..5a067f8e0 100644
--- a/lib/matplotlib/tests/test_cycles.py
+++ b/lib/matplotlib/tests/test_cycles.py
@@ -9,7 +9,6 @@ from cycler import cycler
@@ -10,7 +10,6 @@ from cycler import cycler
@image_comparison(baseline_images=['color_cycle_basic'], remove_text=True,
@@ -391,7 +391,7 @@ index 1254f3c7c..de11f6103 100644
extensions=['png'])
def test_colorcycle_basic():
fig, ax = plt.subplots()
@@ -27,7 +26,6 @@ def test_colorcycle_basic():
@@ -28,7 +27,6 @@ def test_colorcycle_basic():
@image_comparison(baseline_images=['marker_cycle', 'marker_cycle'],
@@ -399,7 +399,7 @@ index 1254f3c7c..de11f6103 100644
remove_text=True, extensions=['png'])
def test_marker_cycle():
fig, ax = plt.subplots()
@@ -61,7 +59,6 @@ def test_marker_cycle():
@@ -62,7 +60,6 @@ def test_marker_cycle():
@image_comparison(baseline_images=['lineprop_cycle_basic'], remove_text=True,
@@ -408,7 +408,7 @@ index 1254f3c7c..de11f6103 100644
def test_linestylecycle_basic():
fig, ax = plt.subplots()
diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py
index 6ecb3edbe..47aff1b74 100644
index 4c688eb05..826b44869 100644
--- a/lib/matplotlib/tests/test_figure.py
+++ b/lib/matplotlib/tests/test_figure.py
@@ -13,8 +13,7 @@ import numpy as np
@@ -422,10 +422,10 @@ index 6ecb3edbe..47aff1b74 100644
# 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 22cd78d46..b4d41f882 100644
index c0ffc061a..ace55c2f5 100644
--- a/lib/matplotlib/tests/test_image.py
+++ b/lib/matplotlib/tests/test_image.py
@@ -810,7 +810,7 @@ def test_imshow_endianess():
@@ -766,7 +766,7 @@ def test_imshow_endianess():
@image_comparison(baseline_images=['imshow_masked_interpolation'],
@@ -435,7 +435,7 @@ index 22cd78d46..b4d41f882 100644
def test_imshow_masked_interpolation():
diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
index b4bcecde8..45228e16c 100644
index d508d6f41..69286069d 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -108,7 +108,6 @@ def test_multiple_keys():
@@ -465,32 +465,32 @@ index b4bcecde8..45228e16c 100644
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 bbb442638..b5d291c87 100644
index a05c8b3c8..b6f11281f 100644
--- a/lib/matplotlib/tests/test_mathtext.py
+++ b/lib/matplotlib/tests/test_mathtext.py
@@ -173,7 +173,7 @@ def baseline_images(request, fontset, index):
@@ -169,7 +169,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):
def test_mathtext_rendering(baseline_images, fontset, index, test):
matplotlib.rcParams['mathtext.fontset'] = fontset
fig = plt.figure(figsize=(5.25, 0.75))
@@ -187,7 +187,7 @@ def test_mathtext_rendering(baseline_images, fontset, index, test, recwarn):
@@ -183,7 +183,7 @@ def test_mathtext_rendering(baseline_images, fontset, index, test):
['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):
def test_mathfont_rendering(baseline_images, fontset, index, test):
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 31c240a60..979ab3ad0 100644
index 89a77e258..2e5c16f75 100644
--- a/lib/matplotlib/tests/test_patches.py
+++ b/lib/matplotlib/tests/test_patches.py
@@ -259,9 +259,8 @@ def test_wedge_movement():
@@ -260,9 +260,8 @@ def test_wedge_movement():
assert getattr(w, attr) == new_v
@@ -515,10 +515,10 @@ index 6e80d8d98..0f158eb9e 100644
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 d8ee5ffa7..f43a7fd34 100644
index 9cb806c6f..c0ccf5f8c 100644
--- a/lib/matplotlib/tests/test_pickle.py
+++ b/lib/matplotlib/tests/test_pickle.py
@@ -41,7 +41,7 @@ def test_simple():
@@ -44,7 +44,7 @@ def test_simple():
@image_comparison(baseline_images=['multi_pickle'],
extensions=['png'], remove_text=True,
@@ -528,10 +528,10 @@ index d8ee5ffa7..f43a7fd34 100644
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 eab049d91..c3708890b 100644
index 4470e02fa..70aa1e718 100644
--- a/lib/matplotlib/tests/test_quiver.py
+++ b/lib/matplotlib/tests/test_quiver.py
@@ -155,7 +155,7 @@ def test_quiver_key_xy():
@@ -130,7 +130,7 @@ def test_quiver_key_pivot():
@image_comparison(baseline_images=['barbs_test_image'],
@@ -541,7 +541,7 @@ index eab049d91..c3708890b 100644
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 6007c9b9a..736105a56 100644
index e261513df..907841494 100644
--- a/lib/matplotlib/tests/test_streamplot.py
+++ b/lib/matplotlib/tests/test_streamplot.py
@@ -40,7 +40,7 @@ def test_startpoints():
@@ -554,7 +554,7 @@ index 6007c9b9a..736105a56 100644
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 f36f480af..2b773b042 100644
index 6275d5b54..a5c03f0a3 100644
--- a/lib/matplotlib/tests/test_transforms.py
+++ b/lib/matplotlib/tests/test_transforms.py
@@ -70,7 +70,7 @@ def test_external_transform_api():
@@ -567,10 +567,10 @@ index f36f480af..2b773b042 100644
# 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 7d0f38a70..a40d81a4f 100644
index fec498af3..fe8f3f383 100644
--- a/lib/matplotlib/tests/test_units.py
+++ b/lib/matplotlib/tests/test_units.py
@@ -73,7 +73,6 @@ def quantity_converter():
@@ -75,7 +75,6 @@ def quantity_converter():
# Tests that the conversion machinery works properly for classes that
# work as a facade over numpy arrays (like pint)
@image_comparison(baseline_images=['plot_pint'],
@@ -579,10 +579,10 @@ index 7d0f38a70..a40d81a4f 100644
def test_numpy_facade(quantity_converter):
# Register the class
diff --git a/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py b/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py
index 7105a6480..a5fecba1b 100644
index 929c0368a..e6e5ca1ff 100644
--- a/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py
+++ b/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py
@@ -19,7 +19,7 @@ def test_subplot():
@@ -21,7 +21,7 @@ def test_subplot():
@image_comparison(baseline_images=['curvelinear3'],
@@ -590,8 +590,8 @@ index 7105a6480..a5fecba1b 100644
+ extensions=['png'], style='default', tol=0.02)
def test_curvelinear3():
fig = plt.figure(figsize=(5, 5))
@@ -74,7 +74,7 @@ def test_curvelinear3():
fig.clf()
@@ -77,7 +77,7 @@ def test_curvelinear3():
@image_comparison(baseline_images=['curvelinear4'],
@@ -599,7 +599,7 @@ index 7105a6480..a5fecba1b 100644
+ extensions=['png'], style='default', tol=0.055)
def test_curvelinear4():
fig = plt.figure(figsize=(5, 5))
fig.clf()
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 32e1c884d..2b38866c5 100644
--- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
@@ -632,10 +632,10 @@ index 32e1c884d..2b38866c5 100644
fig = plt.figure(figsize=(5, 5))
diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py
index 4bfb6f8ff..a6eee9ff6 100644
index bc9c43ec7..48727de52 100644
--- a/lib/mpl_toolkits/tests/test_mplot3d.py
+++ b/lib/mpl_toolkits/tests/test_mplot3d.py
@@ -269,7 +269,7 @@ def test_text3d():
@@ -254,7 +254,7 @@ def test_text3d():
ax.set_zlabel('Z axis')
@@ -644,7 +644,7 @@ index 4bfb6f8ff..a6eee9ff6 100644
def test_trisurf3d():
n_angles = 36
n_radii = 8
@@ -778,7 +778,7 @@ class TestVoxels(object):
@@ -733,7 +733,7 @@ class TestVoxels(object):
@image_comparison(
baseline_images=['voxels-xyz'],
extensions=['png'],
@@ -654,5 +654,5 @@ index 4bfb6f8ff..a6eee9ff6 100644
def test_xyz(self):
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})
--
2.21.1
2.20.1

View File

@@ -1,12 +1,12 @@
From 390e418a5da886ce1b4358f454342c6af311b00a Mon Sep 17 00:00:00 2001
From 179885bd9a442bc171e562a8997abde2824997fa 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.
Subject: [PATCH 3/3] 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_axes.py | 6 +++---
lib/matplotlib/tests/test_backends_interactive.py | 2 +-
lib/matplotlib/tests/test_collections.py | 2 +-
lib/matplotlib/tests/test_constrainedlayout.py | 2 +-
@@ -15,13 +15,14 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
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_scale.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, 21 insertions(+), 21 deletions(-)
14 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py
index de596a9e0..9f12effa6 100644
index f678fbed3..bac0cb802 100644
--- a/lib/matplotlib/tests/test_arrow_patches.py
+++ b/lib/matplotlib/tests/test_arrow_patches.py
@@ -69,7 +69,7 @@ def __prepare_fancyarrow_dpi_cor_test():
@@ -43,10 +44,10 @@ index de596a9e0..9f12effa6 100644
def test_fancyarrow_dpi_cor_200dpi():
"""
diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
index 84a1956ee..eeafd816f 100644
index c0e0e560d..0021bbda4 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -395,7 +395,7 @@ def test_annotate_default_arrow():
@@ -387,7 +387,7 @@ def test_annotate_default_arrow():
assert ann.arrow_patch is not None
@@ -55,7 +56,7 @@ index 84a1956ee..eeafd816f 100644
def test_polar_annotations():
# you can specify the xypoint and the xytext in different
# positions and coordinate systems, and optionally turn on a
@@ -3519,7 +3519,7 @@ def test_vertex_markers():
@@ -3370,7 +3370,7 @@ def test_vertex_markers():
@image_comparison(baseline_images=['vline_hline_zorder',
'errorbar_zorder'],
@@ -64,11 +65,20 @@ index 84a1956ee..eeafd816f 100644
def test_eb_line_zorder():
x = list(range(10))
@@ -5142,7 +5142,7 @@ def test_title_location_roundtrip():
@image_comparison(baseline_images=["loglog"], remove_text=True,
extensions=['png'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.009)
def test_loglog():
fig, ax = plt.subplots()
x = np.arange(1, 11)
diff --git a/lib/matplotlib/tests/test_backends_interactive.py b/lib/matplotlib/tests/test_backends_interactive.py
index ad23abe3f..7b9660f2b 100644
index 00cbf5db9..33e6fb21a 100644
--- a/lib/matplotlib/tests/test_backends_interactive.py
+++ b/lib/matplotlib/tests/test_backends_interactive.py
@@ -104,7 +104,7 @@ fig.canvas.mpl_connect("draw_event", lambda event: timer.start())
@@ -105,7 +105,7 @@ fig.canvas.mpl_connect("draw_event", lambda event: timer.start())
plt.show()
"""
@@ -78,7 +88,7 @@ index ad23abe3f..7b9660f2b 100644
@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 773093100..9cce4ed9f 100644
index 6812ee1ad..582aabb5c 100644
--- a/lib/matplotlib/tests/test_collections.py
+++ b/lib/matplotlib/tests/test_collections.py
@@ -442,7 +442,7 @@ def test_barb_limits():
@@ -91,7 +101,7 @@ index 773093100..9cce4ed9f 100644
def test_EllipseCollection():
# Test basic functionality
diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index e9ae292f6..8e1fcb36f 100644
index de8161ea7..2af2d6a42 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -173,7 +173,7 @@ def test_constrained_layout9():
@@ -104,10 +114,10 @@ index e9ae292f6..8e1fcb36f 100644
'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 1254f3c7c..cea1522de 100644
index 8184d3eee..73b0f216d 100644
--- a/lib/matplotlib/tests/test_cycles.py
+++ b/lib/matplotlib/tests/test_cycles.py
@@ -9,7 +9,7 @@ from cycler import cycler
@@ -10,7 +10,7 @@ from cycler import cycler
@image_comparison(baseline_images=['color_cycle_basic'], remove_text=True,
@@ -116,7 +126,7 @@ index 1254f3c7c..cea1522de 100644
extensions=['png'])
def test_colorcycle_basic():
fig, ax = plt.subplots()
@@ -27,7 +27,7 @@ def test_colorcycle_basic():
@@ -28,7 +28,7 @@ def test_colorcycle_basic():
@image_comparison(baseline_images=['marker_cycle', 'marker_cycle'],
@@ -125,7 +135,7 @@ index 1254f3c7c..cea1522de 100644
remove_text=True, extensions=['png'])
def test_marker_cycle():
fig, ax = plt.subplots()
@@ -61,7 +61,7 @@ def test_marker_cycle():
@@ -62,7 +62,7 @@ def test_marker_cycle():
@image_comparison(baseline_images=['lineprop_cycle_basic'], remove_text=True,
@@ -135,7 +145,7 @@ index 1254f3c7c..cea1522de 100644
def test_linestylecycle_basic():
fig, ax = plt.subplots()
diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py
index 6ecb3edbe..207659648 100644
index 4c688eb05..63f562770 100644
--- a/lib/matplotlib/tests/test_figure.py
+++ b/lib/matplotlib/tests/test_figure.py
@@ -14,7 +14,7 @@ import pytest
@@ -148,10 +158,10 @@ index 6ecb3edbe..207659648 100644
# 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 22cd78d46..76149bce4 100644
index c0ffc061a..ca15df113 100644
--- a/lib/matplotlib/tests/test_image.py
+++ b/lib/matplotlib/tests/test_image.py
@@ -810,7 +810,7 @@ def test_imshow_endianess():
@@ -766,7 +766,7 @@ def test_imshow_endianess():
@image_comparison(baseline_images=['imshow_masked_interpolation'],
@@ -161,7 +171,7 @@ index 22cd78d46..76149bce4 100644
def test_imshow_masked_interpolation():
diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
index b4bcecde8..227b654cc 100644
index d508d6f41..9147ef336 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -108,7 +108,7 @@ def test_multiple_keys():
@@ -192,10 +202,10 @@ index b4bcecde8..227b654cc 100644
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 d8ee5ffa7..607c13346 100644
index 9cb806c6f..91774abfd 100644
--- a/lib/matplotlib/tests/test_pickle.py
+++ b/lib/matplotlib/tests/test_pickle.py
@@ -41,7 +41,7 @@ def test_simple():
@@ -44,7 +44,7 @@ def test_simple():
@image_comparison(baseline_images=['multi_pickle'],
extensions=['png'], remove_text=True,
@@ -204,8 +214,21 @@ index d8ee5ffa7..607c13346 100644
style='mpl20')
def test_complete():
fig = plt.figure('Figure with a label?', figsize=(10, 6))
diff --git a/lib/matplotlib/tests/test_scale.py b/lib/matplotlib/tests/test_scale.py
index ebe5c4de9..2999b624d 100644
--- a/lib/matplotlib/tests/test_scale.py
+++ b/lib/matplotlib/tests/test_scale.py
@@ -99,7 +99,7 @@ def test_logscale_transform_repr():
@image_comparison(baseline_images=['logscale_nonpos_values'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
+ tol=0.008,
extensions=['png'], style='mpl20')
def test_logscale_nonpos_values():
np.random.seed(19680801)
diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py
index 6007c9b9a..96d43a3e3 100644
index e261513df..c8c8faf99 100644
--- a/lib/matplotlib/tests/test_streamplot.py
+++ b/lib/matplotlib/tests/test_streamplot.py
@@ -49,7 +49,7 @@ def test_colormap():
@@ -218,10 +241,10 @@ index 6007c9b9a..96d43a3e3 100644
def test_linewidth():
X, Y, U, V = velocity_field()
diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py
index 7d0f38a70..ef21a166c 100644
index fec498af3..12a8d8a3e 100644
--- a/lib/matplotlib/tests/test_units.py
+++ b/lib/matplotlib/tests/test_units.py
@@ -73,7 +73,7 @@ def quantity_converter():
@@ -75,7 +75,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(baseline_images=['plot_pint'],
@@ -230,7 +253,7 @@ index 7d0f38a70..ef21a166c 100644
extensions=['png'], remove_text=False, style='mpl20')
def test_numpy_facade(quantity_converter):
# Register the class
@@ -98,7 +98,7 @@ def test_numpy_facade(quantity_converter):
@@ -100,7 +100,7 @@ def test_numpy_facade(quantity_converter):
# Tests gh-8908
@image_comparison(baseline_images=['plot_masked_units'],
@@ -262,5 +285,5 @@ index 32e1c884d..741d197b5 100644
def test_polar_box():
fig = plt.figure(figsize=(5, 5))
--
2.21.1
2.20.1

View File

@@ -34,17 +34,17 @@
# Use the same directory of the main package for subpackage licence and docs
%global _docdir_fmt %{name}
#global rctag rc2
#global rctag rc1
# Updated test images for new FreeType.
%global mpl_images_version 3.1.1
%global mpl_images_version 3.0.1
# The version of FreeType in this Fedora branch.
%global ftver 2.10.0
%global ftver 2.9.1
Name: python-matplotlib
Version: 3.1.3
Release: 1%{?rctag:.%{rctag}}%{?dist}
Version: 3.0.3
Release: 2%{?rctag:.%{rctag}}%{?dist}
Summary: Python 2D plotting library
# qt4_editor backend is MIT
License: Python and MIT
@@ -60,24 +60,21 @@ Patch0001: 0001-Force-using-system-qhull.patch
Patch0002: 0001-Use-packaged-jquery-and-jquery-ui.patch
# Fedora-specific patches; see:
# https://github.com/fedora-python/matplotlib/tree/fedora-patches-v3.1.x
# https://github.com/fedora-python/matplotlib/tree/fedora-patches-non-x86-v3.1.x
# https://github.com/QuLogic/matplotlib/tree/fedora-patches
# https://github.com/QuLogic/matplotlib/tree/fedora-patches-non-x86
# 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
# Search in /etc/matplotlibrc:
Patch1001: 0001-matplotlibrc-path-search-fix.patch
# Increase tolerances for new FreeType everywhere:
Patch1002: 0002-Set-FreeType-version-to-2.10.0-and-update-tolerances.patch
# Image tolerances for anything but x86_64:
Patch1003: 0003-Increase-tolerances-for-non-x86_64-arches.patch
Patch1002: 0002-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
Patch1003: 0003-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
Patch1004: 0003-Increase-some-tolerances-for-non-x86-arches.patch
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: glibc-langpack-en
BuildRequires: freetype-devel
BuildRequires: libpng-devel
BuildRequires: qhull-devel
@@ -147,8 +144,6 @@ Requires: python3-kiwisolver
Requires: python3-matplotlib-%{?backend_subpackage}%{!?backend_subpackage:tk}%{?_isa} = %{version}-%{release}
%if %{run_tests}
BuildRequires: python3-pytest
BuildRequires: python3-pytest-rerunfailures
BuildRequires: python3-pytest-timeout
BuildRequires: python3-pytest-xdist
%endif
Requires: python3-numpy
@@ -263,16 +258,15 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
# Fedora-specific patches follow:
%patch1001 -p1
# Updated test images for new FreeType.
%patch1002 -p1
gzip -dc %SOURCE1000 | tar xvf - --transform='s~^mpl-images-%{mpl_images_version}-with-freetype-%{ftver}/\([^/]\+\)/~lib/\1/tests/baseline_images/~'
%ifnarch x86_64
%patch1003 -p1
%patch1002 -p1
%endif
%ifarch aarch64 ppc64 ppc64le s390x
%patch1005 -p1
%patch1004 -p1
%endif
%ifarch i686 armv7hl
%patch1004 -p1
%patch1003 -p1
%endif
rm -r extern/libqhull
@@ -298,11 +292,13 @@ sed -i 's/\(USE_FONTCONFIG = \)False/\1True/' lib/matplotlib/font_manager.py
export http_proxy=http://127.0.0.1/
MPLCONFIGDIR=$PWD \
MATPLOTLIBDATA=$PWD/lib/matplotlib/mpl-data \
xvfb-run %{__python3} setup.py build
%if %{with_html}
# Need to make built matplotlib libs available for the sphinx extensions:
pushd doc
MPLCONFIGDIR=$PWD/.. \
MATPLOTLIBDATA=$PWD/../lib/matplotlib/mpl-data \
PYTHONPATH=`realpath ../build/lib.linux*` \
%{__python3} make.py html
popd
@@ -315,6 +311,7 @@ find examples -name '*.py' -exec chmod a-x '{}' \;
export http_proxy=http://127.0.0.1/
MPLCONFIGDIR=$PWD \
MATPLOTLIBDATA=$PWD/lib/matplotlib/mpl-data/ \
%{__python3} setup.py install -O1 --skip-build --root=%{buildroot}
chmod +x %{buildroot}%{python3_sitearch}/matplotlib/dates.py
mkdir -p %{buildroot}%{_sysconfdir} %{buildroot}%{_datadir}/matplotlib
@@ -335,29 +332,25 @@ export http_proxy=http://127.0.0.1/
# Skips:
# * test_invisible_Line_rendering: Checks for "slowness" that often fails on a
# heavily-loaded builder.
# * test_tinypages fails due to new Sphinx warning
# * wxagg is broken on ppc64le:
# https://bugzilla.redhat.com/show_bug.cgi?id=1738752
MPLCONFIGDIR=$PWD \
MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \
MATPLOTLIBRC=%{buildroot}%{_sysconfdir}/matplotlibrc \
PYTHONPATH=%{buildroot}%{python3_sitearch} \
PYTHONDONTWRITEBYTECODE=1 \
xvfb-run -a -s "-screen 0 640x480x24" \
%{__python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \
-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'
%endif
-k 'not test_invisible_Line_rendering and not backend_qt5'
# Run Qt5Agg tests separately to not conflict with Qt4 tests.
MPLCONFIGDIR=$PWD \
MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \
MATPLOTLIBRC=%{buildroot}%{_sysconfdir}/matplotlibrc \
PYTHONPATH=%{buildroot}%{python3_sitearch} \
PYTHONDONTWRITEBYTECODE=1 \
xvfb-run -a -s "-screen 0 640x480x24" \
%{__python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \
-m 'not network' -k 'Qt5Agg'
-m 'not network' \
matplotlib.tests.test_backend_qt5
%endif
%files -n python3-matplotlib-data
@@ -393,7 +386,9 @@ PYTHONDONTWRITEBYTECODE=1 \
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt4*
#exclude #{python3_sitearch}/matplotlib/backends/backend_qt5*.py
#exclude #{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5*
%exclude %{python3_sitearch}/matplotlib/backends/_gtk3_compat.py
%exclude %{python3_sitearch}/matplotlib/backends/backend_gtk*.py
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/_gtk3_compat.*
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_gtk*
%exclude %{python3_sitearch}/matplotlib/backends/_backend_tk.py
%exclude %{python3_sitearch}/matplotlib/backends/backend_tk*.py
@@ -428,7 +423,9 @@ PYTHONDONTWRITEBYTECODE=1 \
%files -n python3-matplotlib-gtk3
%{python3_sitearch}/matplotlib/backends/backend_gtk*.py
%{python3_sitearch}/matplotlib/backends/_gtk3_compat.py
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_gtk*
%{python3_sitearch}/matplotlib/backends/__pycache__/_gtk3_compat.*
%files -n python3-matplotlib-tk
%{python3_sitearch}/matplotlib/backends/backend_tk*.py
@@ -447,24 +444,6 @@ PYTHONDONTWRITEBYTECODE=1 \
%changelog
* Fri Feb 14 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.1.3-1
- Update to latest version
* Fri Nov 22 2019 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.1.2-1
- Update to latest version
* Fri Sep 06 2019 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.1.1-2
- Backport bool deprecation fix for Python 3.8
* Sun Aug 18 2019 Miro Hrončok <mhroncok@redhat.com> - 3.1.1-1.1
- Rebuilt for Python 3.8
* Thu Aug 08 2019 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.1.1-1
- Update to latest version
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.3-2.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Jul 3 2019 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.0.3-2
- Update Obsoletes to be later than the last python2 builds (#1726490)

View File

@@ -1,2 +1,2 @@
SHA512 (matplotlib-3.1.3.tar.gz) = d233a18449eac4c42ecc485d0df0c15e1e306f3945e5476b11b715d6bc190ca6f1c22e7d4b16d6c93c8a569e1c43b68b583339f0921f237a9920c7369854a09e
SHA512 (matplotlib-3.1.1-with-freetype-2.10.0.tar.gz) = 257546b047ff79302b616f1d37caa028a7b9abc1682cf10861e1347a3db9f437967abe24e11aee898ae11c6f163939d48bc5aeaec2894d6472b4326f8edaed8b
SHA512 (matplotlib-3.0.3.tar.gz) = 9fe00b8d0ca6dcf2f1b907118b656353e115b73f8b21adeb4391c87e164c111a4994c3ac17cdd02e75b896d9aa26c279618132f9a7bfe995c0f7c62356ed85ad
SHA512 (matplotlib-3.0.1-with-freetype-2.9.1.tar.gz) = 7d2f9fa2a1ae58107283877cbb96d74f79cfda4d6328bdee90d88b2a286eaad9ae8ff6d764f10a5c05eec6fb5de8598cada168fe7c85d33bd07873fdfc142e3a