diff --git a/.gitignore b/.gitignore index 4df50f3..b55f993 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,5 @@ matplotlib-1.0.0-without-gpc.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 diff --git a/0001-matplotlibrc-path-search-fix.patch b/0001-matplotlibrc-path-search-fix.patch index fd90740..eac2d14 100644 --- a/0001-matplotlibrc-path-search-fix.patch +++ b/0001-matplotlibrc-path-search-fix.patch @@ -1,7 +1,7 @@ -From e56c8930052b4ac06f5ae58cac8d97dec728f314 Mon Sep 17 00:00:00 2001 +From 9dc36f4d7c7c63c7a38aea73c4c25b0e54c44573 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Wed, 27 Sep 2017 19:35:59 -0400 -Subject: [PATCH 1/7] matplotlibrc path search fix +Subject: [PATCH 1/3] matplotlibrc path search fix Signed-off-by: Elliott Sales de Andrade --- @@ -9,7 +9,7 @@ Signed-off-by: Elliott Sales de Andrade 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py -index e19ceabf9..809fff933 100644 +index c425fe818..409217f6b 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py @@ -536,33 +536,11 @@ def get_data_path(*, _from_rc=None): diff --git a/0002-Set-FreeType-version-to-2.10.1-and-update-tolerances.patch b/0002-Set-FreeType-version-to-2.10.2-and-update-tolerances.patch similarity index 80% rename from 0002-Set-FreeType-version-to-2.10.1-and-update-tolerances.patch rename to 0002-Set-FreeType-version-to-2.10.2-and-update-tolerances.patch index ffcc5f4..f2f3535 100644 --- a/0002-Set-FreeType-version-to-2.10.1-and-update-tolerances.patch +++ b/0002-Set-FreeType-version-to-2.10.2-and-update-tolerances.patch @@ -1,7 +1,7 @@ -From e67b2eb6fb233085fb58e61217a946ea28f3649f Mon Sep 17 00:00:00 2001 +From a5bf4b21aa32f3e02cf66e0f8e63ebd2abb7cb61 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 14 Feb 2020 06:05:42 -0500 -Subject: [PATCH 2/7] Set FreeType version to 2.10.1 and update tolerances. +Subject: [PATCH 2/3] Set FreeType version to 2.10.2 and update tolerances. Signed-off-by: Elliott Sales de Andrade --- @@ -10,27 +10,27 @@ Signed-off-by: Elliott Sales de Andrade lib/matplotlib/tests/test_constrainedlayout.py | 2 +- lib/matplotlib/tests/test_polar.py | 2 +- lib/matplotlib/tests/test_tightlayout.py | 10 +++++----- - setupext.py | 2 +- - 6 files changed, 11 insertions(+), 11 deletions(-) + setupext.py | 4 +++- + 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py -index 809fff933..3c8cd20e0 100644 +index 409217f6b..f578a3961 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py -@@ -1164,7 +1164,7 @@ default_test_modules = [ +@@ -1182,7 +1182,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' ++ LOCAL_FREETYPE_VERSION = '2.10.2' 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 2a61b232f..107936d19 100644 +index 6eedf20d5..bad298928 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py -@@ -5934,7 +5934,7 @@ def test_normal_axes(): +@@ -5955,7 +5955,7 @@ def test_normal_axes(): ] for nn, b in enumerate(bbaxis): targetbb = mtransforms.Bbox.from_bounds(*target[nn]) @@ -39,7 +39,7 @@ index 2a61b232f..107936d19 100644 target = [ [150.0, 119.999, 930.0, 11.111], -@@ -5952,7 +5952,7 @@ def test_normal_axes(): +@@ -5973,7 +5973,7 @@ def test_normal_axes(): target = [85.5138, 75.88888, 1021.11, 1017.11] targetbb = mtransforms.Bbox.from_bounds(*target) @@ -59,10 +59,10 @@ index 46e6b9663..593b3fb3e 100644 - extents1, [0.045552, 0.548288, 0.47319, 0.982638], rtol=1e-5) + extents1, [0.045552, 0.548288, 0.47319, 0.982638], rtol=1e-2) diff --git a/lib/matplotlib/tests/test_polar.py b/lib/matplotlib/tests/test_polar.py -index 100954ac3..3594a9224 100644 +index da9a77c82..a7a98ef59 100644 --- a/lib/matplotlib/tests/test_polar.py +++ b/lib/matplotlib/tests/test_polar.py -@@ -311,7 +311,7 @@ def test_get_tightbbox_polar(): +@@ -314,7 +314,7 @@ def test_get_tightbbox_polar(): fig.canvas.draw() bb = ax.get_tightbbox(fig.canvas.get_renderer()) assert_allclose( @@ -94,15 +94,22 @@ index 9ad2e0a9a..7c9085a31 100644 diff --git a/setupext.py b/setupext.py -index 4a838eedd..a084f881a 100644 +index 19c2868bd..c59ce6706 100644 --- a/setupext.py +++ b/setupext.py -@@ -126,7 +126,7 @@ _freetype_hashes = { +@@ -121,12 +121,14 @@ _freetype_hashes = { + '955e17244e9b38adb0c98df66abb50467312e6bb70eac07e49ce6bd1a20e809a', + '2.10.1': + '3a60d391fd579440561bf0e7f31af2222bc610ad6ce4d9d7bd2165bca8669110', ++ '2.10.2': ++ 'e09aa914e4f7a5d723ac381420949c55c0b90b15744adce5d1406046022186ab', + } + # 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.1' ++LOCAL_FREETYPE_VERSION = '2.10.2' LOCAL_FREETYPE_HASH = _freetype_hashes.get(LOCAL_FREETYPE_VERSION, 'unknown') diff --git a/0003-Increase-default-tolerance-slightly-for-32-bit-syste.patch b/0003-Increase-default-tolerance-slightly-for-32-bit-syste.patch deleted file mode 100644 index 4a85571..0000000 --- a/0003-Increase-default-tolerance-slightly-for-32-bit-syste.patch +++ /dev/null @@ -1,28 +0,0 @@ -From a200118d059ec46d29ef2e5b71892d60d31a6103 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade -Date: Sun, 28 Jun 2020 17:37:36 -0400 -Subject: [PATCH 3/7] Increase default tolerance slightly for 32-bit systems. - -Around 900 tests fail on 32-bit systems, but with rather small RMS. - -Signed-off-by: Elliott Sales de Andrade ---- - lib/matplotlib/testing/decorators.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py -index cb6812d7e..207612d2a 100644 ---- a/lib/matplotlib/testing/decorators.py -+++ b/lib/matplotlib/testing/decorators.py -@@ -378,6 +378,8 @@ def image_comparison(baseline_images, extensions=None, tol=0, - extensions = ['png', 'pdf', 'svg'] - if savefig_kwarg is None: - savefig_kwarg = dict() # default no kwargs to savefig -+ if sys.maxsize <= 2**32: -+ tol += 0.06 - return _pytest_image_comparison( - baseline_images=baseline_images, extensions=extensions, tol=tol, - freetype_version=freetype_version, remove_text=remove_text, --- -2.25.4 - diff --git a/0003-TST-Ignore-deprecations-when-switching-backends.patch b/0003-TST-Ignore-deprecations-when-switching-backends.patch new file mode 100644 index 0000000..3ede78d --- /dev/null +++ b/0003-TST-Ignore-deprecations-when-switching-backends.patch @@ -0,0 +1,56 @@ +From d54cb926a832a39cee06b677203f8a3d5ff2f084 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade +Date: Sat, 18 Jul 2020 21:40:26 -0400 +Subject: [PATCH 3/3] TST: Ignore deprecations when switching backends. + +Otherwise, stuff like Qt4 backend cannot be tested because the +deprecation warning will cause a failure. + +Signed-off-by: Elliott Sales de Andrade +--- + lib/matplotlib/testing/conftest.py | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/lib/matplotlib/testing/conftest.py b/lib/matplotlib/testing/conftest.py +index 563a9fc0f..391dd5d49 100644 +--- a/lib/matplotlib/testing/conftest.py ++++ b/lib/matplotlib/testing/conftest.py +@@ -78,21 +78,21 @@ def mpl_test_settings(request): + style, = style_marker.args + + matplotlib.testing.setup() +- if backend is not None: +- # This import must come after setup() so it doesn't load the +- # default backend prematurely. +- import matplotlib.pyplot as plt +- try: +- plt.switch_backend(backend) +- except ImportError as exc: +- # Should only occur for the cairo backend tests, if neither +- # pycairo nor cairocffi are installed. +- if 'cairo' in backend.lower() or skip_on_importerror: +- pytest.skip("Failed to switch to backend {} ({})." +- .format(backend, exc)) +- else: +- raise + with cbook._suppress_matplotlib_deprecation_warning(): ++ if backend is not None: ++ # This import must come after setup() so it doesn't load the ++ # default backend prematurely. ++ import matplotlib.pyplot as plt ++ try: ++ plt.switch_backend(backend) ++ except ImportError as exc: ++ # Should only occur for the cairo backend tests, if neither ++ # pycairo nor cairocffi are installed. ++ if 'cairo' in backend.lower() or skip_on_importerror: ++ pytest.skip("Failed to switch to backend {} ({})." ++ .format(backend, exc)) ++ else: ++ raise + matplotlib.style.use(style) + try: + yield +-- +2.25.4 + diff --git a/0004-Update-aarch64-tolerances.patch b/0004-Update-aarch64-tolerances.patch deleted file mode 100644 index bdbf526..0000000 --- a/0004-Update-aarch64-tolerances.patch +++ /dev/null @@ -1,223 +0,0 @@ -From 954ebfd469a0979e0817db96760ea1f5542f2729 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade -Date: Mon, 29 Jun 2020 03:49:29 -0400 -Subject: [PATCH 4/7] Update aarch64 tolerances. - -Signed-off-by: Elliott Sales de Andrade ---- - lib/matplotlib/tests/test_backend_pgf.py | 6 +----- - lib/matplotlib/tests/test_collections.py | 4 +--- - lib/matplotlib/tests/test_contour.py | 4 +++- - lib/matplotlib/tests/test_figure.py | 2 +- - lib/matplotlib/tests/test_image.py | 2 +- - lib/matplotlib/tests/test_legend.py | 4 ++-- - lib/matplotlib/tests/test_patheffects.py | 2 +- - lib/matplotlib/tests/test_polar.py | 5 ++++- - lib/matplotlib/tests/test_streamplot.py | 4 +--- - lib/matplotlib/tests/test_units.py | 4 ++-- - lib/mpl_toolkits/tests/test_axes_grid1.py | 2 +- - 11 files changed, 18 insertions(+), 21 deletions(-) - -diff --git a/lib/matplotlib/tests/test_backend_pgf.py b/lib/matplotlib/tests/test_backend_pgf.py -index 2d125ad29..702cc6c35 100644 ---- a/lib/matplotlib/tests/test_backend_pgf.py -+++ b/lib/matplotlib/tests/test_backend_pgf.py -@@ -8,7 +8,6 @@ from tempfile import TemporaryDirectory - - import numpy as np - import pytest --import platform - - import matplotlib as mpl - import matplotlib.pyplot as plt -@@ -179,10 +178,7 @@ def test_pathclip(): - # test mixed mode rendering - @needs_xelatex - @pytest.mark.backend('pgf') --@image_comparison(['pgf_mixedmode.pdf'], style='default', -- tol={'aarch64': 1.086, 'x86_64': 1.086}.get( -- platform.machine(), 0.0 -- )) -+@image_comparison(['pgf_mixedmode.pdf'], style='default') - def test_mixedmode(): - rc_xelatex = {'font.family': 'serif', - 'pgf.rcfonts': False} -diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py -index 77f6e1884..d457fe372 100644 ---- a/lib/matplotlib/tests/test_collections.py -+++ b/lib/matplotlib/tests/test_collections.py -@@ -1,5 +1,4 @@ - import io --import platform - from types import SimpleNamespace - - import numpy as np -@@ -334,8 +333,7 @@ def test_barb_limits(): - decimal=1) - - --@image_comparison(['EllipseCollection_test_image.png'], remove_text=True, -- tol={'aarch64': 0.02}.get(platform.machine(), 0.0)) -+@image_comparison(['EllipseCollection_test_image.png'], remove_text=True) - def test_EllipseCollection(): - # Test basic functionality - fig, ax = plt.subplots() -diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py -index 1a1c5f442..e233a2b79 100644 ---- a/lib/matplotlib/tests/test_contour.py -+++ b/lib/matplotlib/tests/test_contour.py -@@ -1,4 +1,5 @@ - import datetime -+import platform - import re - - import numpy as np -@@ -189,7 +190,8 @@ def test_contour_datetime_axis(): - - - @image_comparison(['contour_test_label_transforms.png'], -- remove_text=True, style='mpl20') -+ remove_text=True, style='mpl20', -+ tol={'aarch64': 0.08}.get(platform.machine(), 0)) - def test_labels(): - # Adapted from pylab_examples example code: contour_demo.py - # see issues #2475, #2843, and #2818 for explanation -diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py -index bb1623509..2340f2199 100644 ---- a/lib/matplotlib/tests/test_figure.py -+++ b/lib/matplotlib/tests/test_figure.py -@@ -22,7 +22,7 @@ import pytest - - - @image_comparison(['figure_align_labels'], -- tol={'aarch64': 0.02}.get(platform.machine(), 0.0)) -+ tol={'aarch64': 0.01}.get(platform.machine(), 0)) - def test_align_labels(): - fig = plt.figure(tight_layout=True) - gs = gridspec.GridSpec(3, 3) -diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py -index b5fd6e6fe..d07b80bef 100644 ---- a/lib/matplotlib/tests/test_image.py -+++ b/lib/matplotlib/tests/test_image.py -@@ -861,7 +861,7 @@ def test_imshow_endianess(): - - - @image_comparison(['imshow_masked_interpolation'], -- tol={'aarch64': 0.02}.get(platform.machine(), 0.0), -+ tol={'aarch64': 0.01}.get(platform.machine(), 0), - 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 df09a884b..b6ccb28dd 100644 ---- a/lib/matplotlib/tests/test_legend.py -+++ b/lib/matplotlib/tests/test_legend.py -@@ -105,7 +105,7 @@ def test_multiple_keys(): - - - @image_comparison(['rgba_alpha.png'], remove_text=True, -- tol={'aarch64': 0.02}.get(platform.machine(), 0.0)) -+ tol={'aarch64': 0.01}.get(platform.machine(), 0)) - def test_alpha_rgba(): - fig, ax = plt.subplots(1, 1) - ax.plot(range(10), lw=5) -@@ -114,7 +114,7 @@ def test_alpha_rgba(): - - - @image_comparison(['rcparam_alpha.png'], remove_text=True, -- tol={'aarch64': 0.02}.get(platform.machine(), 0.0)) -+ tol={'aarch64': 0.01}.get(platform.machine(), 0)) - def test_alpha_rcparam(): - fig, ax = plt.subplots(1, 1) - ax.plot(range(10), lw=5) -diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py -index d8c54e770..77b6ae314 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.03, 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_polar.py b/lib/matplotlib/tests/test_polar.py -index 3594a9224..7b5fd6af9 100644 ---- a/lib/matplotlib/tests/test_polar.py -+++ b/lib/matplotlib/tests/test_polar.py -@@ -1,3 +1,5 @@ -+import platform -+ - import numpy as np - from numpy.testing import assert_allclose - import pytest -@@ -7,7 +9,8 @@ from matplotlib import pyplot as plt - from matplotlib.testing.decorators import image_comparison, check_figures_equal - - --@image_comparison(['polar_axes'], style='default') -+@image_comparison(['polar_axes'], style='default', -+ tol={'aarch64': 0.01}.get(platform.machine(), 0)) - def test_polar_annotations(): - # You can specify the xypoint and the xytext in different positions and - # coordinate systems, and optionally turn on a connecting line and mark the -diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py -index d2218f6f2..2e795c2a3 100644 ---- a/lib/matplotlib/tests/test_streamplot.py -+++ b/lib/matplotlib/tests/test_streamplot.py -@@ -1,5 +1,4 @@ - import sys --import platform - - import numpy as np - from numpy.testing import assert_array_almost_equal -@@ -48,8 +47,7 @@ def test_colormap(): - plt.colorbar() - - --@image_comparison(['streamplot_linewidth'], remove_text=True, style='mpl20', -- tol={'aarch64': 0.02}.get(platform.machine(), 0.0)) -+@image_comparison(['streamplot_linewidth'], remove_text=True, style='mpl20') - 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 25396ff0f..137b12aa9 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={'aarch64': 0.01}.get(platform.machine(), 0)) - 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={'aarch64': 0.01}.get(platform.machine(), 0)) - 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_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py -index 0aa2c7600..30ea87445 100644 ---- a/lib/mpl_toolkits/tests/test_axes_grid1.py -+++ b/lib/mpl_toolkits/tests/test_axes_grid1.py -@@ -331,7 +331,7 @@ def test_zooming_with_inverted_axes(): - - - @image_comparison(['anchored_direction_arrows.png'], -- tol={'aarch64': 0.02}.get(platform.machine(), 0.0)) -+ tol={'aarch64': 0.01}.get(platform.machine(), 0)) - def test_anchored_direction_arrows(): - fig, ax = plt.subplots() - ax.imshow(np.zeros((10, 10)), interpolation='nearest') --- -2.25.4 - diff --git a/0005-Increase-tolerance-for-ppc64le-and-s390x.patch b/0005-Increase-tolerance-for-ppc64le-and-s390x.patch deleted file mode 100644 index 2045338..0000000 --- a/0005-Increase-tolerance-for-ppc64le-and-s390x.patch +++ /dev/null @@ -1,219 +0,0 @@ -From efd56e93d7e8f6a63d734f98c6110795dd914418 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade -Date: Mon, 29 Jun 2020 17:29:56 -0400 -Subject: [PATCH 5/7] Increase tolerance for ppc64le and s390x. - -These are mostly the same as the aarch64 increased tolerances. - -Signed-off-by: Elliott Sales de Andrade ---- - lib/matplotlib/tests/test_arrow_patches.py | 6 ++++-- - lib/matplotlib/tests/test_axes.py | 3 ++- - lib/matplotlib/tests/test_contour.py | 3 ++- - lib/matplotlib/tests/test_figure.py | 3 ++- - lib/matplotlib/tests/test_image.py | 3 ++- - lib/matplotlib/tests/test_legend.py | 9 ++++++--- - lib/matplotlib/tests/test_pickle.py | 3 ++- - lib/matplotlib/tests/test_polar.py | 3 ++- - lib/matplotlib/tests/test_units.py | 6 ++++-- - lib/mpl_toolkits/tests/test_axes_grid1.py | 3 ++- - .../tests/test_axisartist_grid_helper_curvelinear.py | 3 ++- - 11 files changed, 30 insertions(+), 15 deletions(-) - -diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py -index 2218a2e7f..037558c02 100644 ---- a/lib/matplotlib/tests/test_arrow_patches.py -+++ b/lib/matplotlib/tests/test_arrow_patches.py -@@ -67,7 +67,8 @@ 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={'aarch64': 0.02, 'ppc64le': 0.02, -+ 's390x': 0.02}.get(platform.machine(), 0), - savefig_kwarg=dict(dpi=100)) - def test_fancyarrow_dpi_cor_100dpi(): - """ -@@ -82,7 +83,8 @@ 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={'aarch64': 0.02, 'ppc64le': 0.02, -+ 's390x': 0.02}.get(platform.machine(), 0), - 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 107936d19..48cfdf582 100644 ---- a/lib/matplotlib/tests/test_axes.py -+++ b/lib/matplotlib/tests/test_axes.py -@@ -3705,7 +3705,8 @@ def test_vertex_markers(): - - - @image_comparison(['vline_hline_zorder', 'errorbar_zorder'], -- tol={'aarch64': 0.02}.get(platform.machine(), 0.0)) -+ tol={'aarch64': 0.02, 'ppc64le': 0.02, -+ 's390x': 0.02}.get(platform.machine(), 0)) - def test_eb_line_zorder(): - x = list(range(10)) - -diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py -index e233a2b79..178c7abb3 100644 ---- a/lib/matplotlib/tests/test_contour.py -+++ b/lib/matplotlib/tests/test_contour.py -@@ -191,7 +191,8 @@ def test_contour_datetime_axis(): - - @image_comparison(['contour_test_label_transforms.png'], - remove_text=True, style='mpl20', -- tol={'aarch64': 0.08}.get(platform.machine(), 0)) -+ tol={'aarch64': 0.08, 'ppc64le': 0.08, -+ 's390x': 0.08}.get(platform.machine(), 0)) - def test_labels(): - # Adapted from pylab_examples example code: contour_demo.py - # see issues #2475, #2843, and #2818 for explanation -diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py -index 2340f2199..ff375e4bf 100644 ---- a/lib/matplotlib/tests/test_figure.py -+++ b/lib/matplotlib/tests/test_figure.py -@@ -22,7 +22,8 @@ import pytest - - - @image_comparison(['figure_align_labels'], -- tol={'aarch64': 0.01}.get(platform.machine(), 0)) -+ tol={'aarch64': 0.01, 'ppc64le': 0.01, -+ 's390x': 0.01}.get(platform.machine(), 0)) - def test_align_labels(): - fig = plt.figure(tight_layout=True) - gs = gridspec.GridSpec(3, 3) -diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py -index d07b80bef..a6cecc28c 100644 ---- a/lib/matplotlib/tests/test_image.py -+++ b/lib/matplotlib/tests/test_image.py -@@ -861,7 +861,8 @@ def test_imshow_endianess(): - - - @image_comparison(['imshow_masked_interpolation'], -- tol={'aarch64': 0.01}.get(platform.machine(), 0), -+ tol={'aarch64': 0.01, 'ppc64le': 0.01, -+ 's390x': 0.01}.get(platform.machine(), 0), - 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 b6ccb28dd..24d267405 100644 ---- a/lib/matplotlib/tests/test_legend.py -+++ b/lib/matplotlib/tests/test_legend.py -@@ -105,7 +105,8 @@ def test_multiple_keys(): - - - @image_comparison(['rgba_alpha.png'], remove_text=True, -- tol={'aarch64': 0.01}.get(platform.machine(), 0)) -+ tol={'aarch64': 0.01, 'ppc64le': 0.01, -+ 's390x': 0.01}.get(platform.machine(), 0)) - def test_alpha_rgba(): - fig, ax = plt.subplots(1, 1) - ax.plot(range(10), lw=5) -@@ -114,7 +115,8 @@ def test_alpha_rgba(): - - - @image_comparison(['rcparam_alpha.png'], remove_text=True, -- tol={'aarch64': 0.01}.get(platform.machine(), 0)) -+ tol={'aarch64': 0.01, 'ppc64le': 0.01, -+ 's390x': 0.01}.get(platform.machine(), 0)) - def test_alpha_rcparam(): - fig, ax = plt.subplots(1, 1) - ax.plot(range(10), lw=5) -@@ -140,7 +142,8 @@ def test_fancy(): - - - @image_comparison(['framealpha'], remove_text=True, -- tol={'aarch64': 0.02}.get(platform.machine(), 0.0)) -+ tol={'aarch64': 0.02, 'ppc64le': 0.02, -+ 's390x': 0.02}.get(platform.machine(), 0)) - 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 6a78526b5..864853bba 100644 ---- a/lib/matplotlib/tests/test_pickle.py -+++ b/lib/matplotlib/tests/test_pickle.py -@@ -41,7 +41,8 @@ def test_simple(): - - - @image_comparison(['multi_pickle.png'], remove_text=True, style='mpl20', -- tol={'aarch64': 0.082}.get(platform.machine(), 0.0)) -+ tol={'aarch64': 0.082, 'ppc64le': 0.082, -+ 's390x': 0.082}.get(platform.machine(), 0)) - def test_complete(): - fig = plt.figure('Figure with a label?', figsize=(10, 6)) - -diff --git a/lib/matplotlib/tests/test_polar.py b/lib/matplotlib/tests/test_polar.py -index 7b5fd6af9..9f94f84cd 100644 ---- a/lib/matplotlib/tests/test_polar.py -+++ b/lib/matplotlib/tests/test_polar.py -@@ -10,7 +10,8 @@ from matplotlib.testing.decorators import image_comparison, check_figures_equal - - - @image_comparison(['polar_axes'], style='default', -- tol={'aarch64': 0.01}.get(platform.machine(), 0)) -+ tol={'aarch64': 0.01, 'ppc64le': 0.01, -+ 's390x': 0.01}.get(platform.machine(), 0)) - def test_polar_annotations(): - # You can specify the xypoint and the xytext in different positions and - # coordinate systems, and optionally turn on a connecting line and mark the -diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py -index 137b12aa9..b7b3197ac 100644 ---- a/lib/matplotlib/tests/test_units.py -+++ b/lib/matplotlib/tests/test_units.py -@@ -74,7 +74,8 @@ 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.01}.get(platform.machine(), 0)) -+ tol={'aarch64': 0.01, 'ppc64le': 0.01, -+ 's390x': 0.01}.get(platform.machine(), 0)) - def test_numpy_facade(quantity_converter): - # use former defaults to match existing baseline image - plt.rcParams['axes.formatter.limits'] = -7, 7 -@@ -101,7 +102,8 @@ def test_numpy_facade(quantity_converter): - - # Tests gh-8908 - @image_comparison(['plot_masked_units.png'], remove_text=True, style='mpl20', -- tol={'aarch64': 0.01}.get(platform.machine(), 0)) -+ tol={'aarch64': 0.01, 'ppc64le': 0.01, -+ 's390x': 0.01}.get(platform.machine(), 0)) - 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_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py -index 30ea87445..fd8b9632f 100644 ---- a/lib/mpl_toolkits/tests/test_axes_grid1.py -+++ b/lib/mpl_toolkits/tests/test_axes_grid1.py -@@ -331,7 +331,8 @@ def test_zooming_with_inverted_axes(): - - - @image_comparison(['anchored_direction_arrows.png'], -- tol={'aarch64': 0.01}.get(platform.machine(), 0)) -+ tol={'aarch64': 0.01, 'ppc64le': 0.01, -+ 's390x': 0.01}.get(platform.machine(), 0)) - def test_anchored_direction_arrows(): - fig, ax = plt.subplots() - ax.imshow(np.zeros((10, 10)), interpolation='nearest') -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 bed21a640..d9b3b9b8b 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,8 @@ 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={'aarch64': 0.034, 'ppc64le': 0.034, -+ 's390x': 0.034}.get(platform.machine(), 0.03)) - def test_custom_transform(): - class MyTransform(Transform): - input_dims = output_dims = 2 --- -2.25.4 - diff --git a/0006-Fix-running-contour-s-test_internal_cpp_api-directly.patch b/0006-Fix-running-contour-s-test_internal_cpp_api-directly.patch deleted file mode 100644 index 4b649bb..0000000 --- a/0006-Fix-running-contour-s-test_internal_cpp_api-directly.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 717fb2ce07ac66794df6b4e1833e14d2c8036233 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade -Date: Mon, 29 Jun 2020 17:35:37 -0400 -Subject: [PATCH 6/7] Fix running contour's test_internal_cpp_api directly. - -The `matplotlib._contour` module is lazily loaded, so using it directly -(as done in this test) may fail if something else doesn't load it. This -test would fail if it was the first contour-related test run in a -process (if testing in parallel), or if just called as the only test, -i.e., this commit fixes: -``` -$ pytest -k test_internal_cpp_api lib/matplotlib/tests/test_contour.py -__________ test_internal_cpp_api[args0-TypeError-function takes exactly 6 arguments (0 given)] __________ - -args = (), cls = , message = 'function takes exactly 6 arguments (0 given)' - - @pytest.mark.parametrize("args, cls, message", [ - ((), TypeError, - 'function takes exactly 6 arguments (0 given)'), - ((1, 2, 3, 4, 5, 6), ValueError, - 'Expected 2-dimensional array, got 0'), - (([[0]], [[0]], [[]], None, True, 0), ValueError, - 'x, y and z must all be 2D arrays with the same dimensions'), - (([[0]], [[0]], [[0]], None, True, 0), ValueError, - 'x, y and z must all be at least 2x2 arrays'), - ((*[np.arange(4).reshape((2, 2))] * 3, [[0]], True, 0), ValueError, - 'If mask is set it must be a 2D array with the same dimensions as x.'), - ]) - def test_internal_cpp_api(args, cls, message): # Github issue 8197. - with pytest.raises(cls, match=re.escape(message)): -> mpl._contour.QuadContourGenerator(*args) -E AttributeError: module 'matplotlib' has no attribute '_contour' - -lib/matplotlib/tests/test_contour.py:269: AttributeError - -This is a corollary to b672f68f89fb0d3a90a15571f0c1810fe93724ce for tri. - -Signed-off-by: Elliott Sales de Andrade ---- - lib/matplotlib/tests/test_contour.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py -index 178c7abb3..7c3337fea 100644 ---- a/lib/matplotlib/tests/test_contour.py -+++ b/lib/matplotlib/tests/test_contour.py -@@ -268,11 +268,13 @@ def test_contourf_symmetric_locator(): - 'If mask is set it must be a 2D array with the same dimensions as x.'), - ]) - def test_internal_cpp_api(args, cls, message): # Github issue 8197. -+ from matplotlib import _contour # noqa: ensure lazy-loaded module *is* loaded. - with pytest.raises(cls, match=re.escape(message)): - mpl._contour.QuadContourGenerator(*args) - - - def test_internal_cpp_api_2(): -+ from matplotlib import _contour # noqa: ensure lazy-loaded module *is* loaded. - arr = [[0, 1], [2, 3]] - qcg = mpl._contour.QuadContourGenerator(arr, arr, arr, None, True, 0) - with pytest.raises( --- -2.25.4 - diff --git a/0007-Increase-tolerance-for-test_usetex-and-test_rgba_mar.patch b/0007-Increase-tolerance-for-test_usetex-and-test_rgba_mar.patch deleted file mode 100644 index c1f7c11..0000000 --- a/0007-Increase-tolerance-for-test_usetex-and-test_rgba_mar.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 1c614f815ec7f563cbfbab4f8a2155a46080965b Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade -Date: Tue, 30 Jun 2020 04:43:57 -0400 -Subject: [PATCH 7/7] Increase tolerance for test_usetex and test_rgba_markers. - -These should have been updated in images, but weren't. They can be fixed -properly for 3.3.0 final. - -Signed-off-by: Elliott Sales de Andrade ---- - lib/matplotlib/tests/test_axes.py | 2 +- - lib/matplotlib/tests/test_usetex.py | 3 ++- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index 48cfdf582..50dc95925 100644 ---- a/lib/matplotlib/tests/test_axes.py -+++ b/lib/matplotlib/tests/test_axes.py -@@ -3435,7 +3435,7 @@ def test_transparent_markers(): - ax.plot(data, 'D', mfc='none', markersize=100) - - --@image_comparison(['rgba_markers'], remove_text=True) -+@image_comparison(['rgba_markers'], remove_text=True, tol=6.2) - def test_rgba_markers(): - fig, axs = plt.subplots(ncols=2) - rcolors = [(1, 0, 0, 1), (1, 0, 0, 0.5)] -diff --git a/lib/matplotlib/tests/test_usetex.py b/lib/matplotlib/tests/test_usetex.py -index 25006f174..c2a9c9b20 100644 ---- a/lib/matplotlib/tests/test_usetex.py -+++ b/lib/matplotlib/tests/test_usetex.py -@@ -13,7 +13,8 @@ if not mpl.checkdep_usetex(True): - @image_comparison( - baseline_images=['test_usetex'], - extensions=['pdf', 'png'], -- style="mpl20") -+ style="mpl20", -+ tol=12.9) - def test_usetex(): - mpl.rcParams['text.usetex'] = True - fig = plt.figure() --- -2.25.4 - diff --git a/python-matplotlib.spec b/python-matplotlib.spec index e6012bb..a937807 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -35,15 +35,15 @@ %global _docdir_fmt %{name} # Updated test images for new FreeType. -%global mpl_images_version 3.3.0rc1 +%global mpl_images_version 3.3.0 # The version of FreeType in this Fedora branch. -%global ftver 2.10.1 +%global ftver 2.10.2 Name: python-matplotlib Version: 3.3.0 -%global Version 3.3.0rc1 -Release: 0.2.rc1%{?dist} +%global Version 3.3.0 +Release: 1%{?dist} Summary: Python 2D plotting library # qt4_editor backend is MIT License: Python and MIT @@ -53,7 +53,6 @@ Source1: setup.cfg # Fedora-specific patches; see: # 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. 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: @@ -61,14 +60,8 @@ Patch1001: 0001-matplotlibrc-path-search-fix.patch # Increase tolerances for new FreeType everywhere: Patch1002: 0002-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patch -# https://github.com/matplotlib/matplotlib/pull/17800 -Patch0001: 0003-Increase-default-tolerance-slightly-for-32-bit-syste.patch -Patch0002: 0004-Update-aarch64-tolerances.patch -Patch0003: 0005-Increase-tolerance-for-ppc64le-and-s390x.patch -# https://github.com/matplotlib/matplotlib/pull/17797 -Patch0004: 0006-Fix-running-contour-s-test_internal_cpp_api-directly.patch -# Will be fixed for 3.3.0 final. -Patch0005: 0007-Increase-tolerance-for-test_usetex-and-test_rgba_mar.patch +# https://github.com/matplotlib/matplotlib/pull/17963 +Patch0001: 0003-TST-Ignore-deprecations-when-switching-backends.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -315,10 +308,6 @@ rm -r extern/libqhull cp -p %{SOURCE1} setup.cfg %patch0001 -p1 -%patch0002 -p1 -%patch0003 -p1 -%patch0004 -p1 -%patch0005 -p1 %build @@ -460,6 +449,10 @@ PYTHONDONTWRITEBYTECODE=1 \ %changelog +* Sat Jul 18 2020 Elliott Sales de Andrade - 3.3.0-1 +- Update to latest version +- Fixes RHBZ#1858120 + * Tue Jun 30 2020 Elliott Sales de Andrade - 3.3.0-0.2.rc1 - Add more test dependencies diff --git a/sources b/sources index 12cab17..89381e5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (matplotlib-3.3.0rc1.tar.gz) = f47e5473a152d87c5d2e707394f3ccf050b185e1f318ff7141e3ff0a013cb896ddbb6a1164d00b3201ea0d403c71a418c6c5dbaecd413bb9c5c28c8ff73affd0 -SHA512 (matplotlib-3.3.0rc1-with-freetype-2.10.1.tar.gz) = ed7448325e1e29bbb8abbef39944afb8c15250bc0c0ed2f8739156c83318bd5931012360779e1375bc7f020662739bb7a47c16822a1575439aee75579b526060 +SHA512 (matplotlib-3.3.0.tar.gz) = 79555a175ef1e63da4f3d2457dc44dd825dbe4b5833696fa9ba57bfc654dc4df286ede4357ee276f19d674be1cb622e8718000a74c1f122cc13641f4d3ad0ada +SHA512 (matplotlib-3.3.0-with-freetype-2.10.2.tar.gz) = c0ed4a7faa07ff3bdfde10f04f8f4bf1176e6f67d3565a147e98e3ffa75d0de71b24d81f4db55d9c0ca0a40f22d416ca132b791298ff20bf35a93698cd8fab86