The package rpms/python-matplotlib.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/python-matplotlib.git/commit/?id=8d6... https://src.fedoraproject.org/cgit/rpms/python-matplotlib.git/commit/?id=b47... https://src.fedoraproject.org/cgit/rpms/python-matplotlib.git/commit/?id=3f6... https://src.fedoraproject.org/cgit/rpms/python-matplotlib.git/commit/?id=c93....
Change: +%ifarch aarch64 ppc64 ppc64le s390x +%ifarch i686 armv7hl +%ifarch i686 -%ifarch i686
Thanks.
Full change: ============
commit 14e86457fd7bf7b4e3509a6234ef30156495430b Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Wed Jan 24 04:27:51 2018 -0500
Add patch to link with libdl.
diff --git a/0001-Add-libdl-on-Unix-like-systems.patch b/0001-Add-libdl-on-Unix-like-systems.patch new file mode 100644 index 0000000..5cbbeca --- /dev/null +++ b/0001-Add-libdl-on-Unix-like-systems.patch @@ -0,0 +1,29 @@ +From 77bae7e7ea5c02f5be0d59dabeae6c3c09571fbe Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Wed, 24 Jan 2018 02:51:55 -0500 +Subject: [PATCH] Add libdl on Unix-like systems. + +Not linking with libdl causes errors when -z defs is in the linker +flags. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + setupext.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/setupext.py b/setupext.py +index d0f3f2070..6d2c3e296 100644 +--- a/setupext.py ++++ b/setupext.py +@@ -1493,6 +1493,8 @@ class BackendTkAgg(OptionalBackendPackage): + if sys.platform == 'win32': + # PSAPI library needed for finding Tcl / Tk at run time + ext.libraries.extend(['psapi']) ++ elif sys.platform != 'darwin': ++ ext.libraries.extend(['dl']) + + + class BackendGtk(OptionalBackendPackage): +-- +2.14.3 + diff --git a/python-matplotlib.spec b/python-matplotlib.spec index e0b55a5..e2a5481 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -64,12 +64,18 @@ URL: http://matplotlib.org Source0: https://github.com/matplotlib/matplotlib/archive/v%%7Bversion%7D%%7B?rctag%7... Source1: setup.cfg
+# https://github.com/matplotlib/matplotlib/pull/10310 +Patch0001: 0001-Add-libdl-on-Unix-like-systems.patch + # Fedora-specific patches. +# https://github.com/QuLogic/mpl-images Source1000: matplotlib-%{version}-with-freetype-2.8.tar.gz +# https://github.com/QuLogic/matplotlib/tree/fedora-patches Patch1001: 0001-matplotlibrc-path-search-fix.patch Patch1002: 0002-Increase-tolerances-for-FreeType-2.7.1.patch Patch1003: 0003-Increase-tolerances-for-FT-2.7.1-and-other-arches.patch Patch1004: 0004-Increase-some-tolerances-for-32-bit-systems.patch +# https://github.com/QuLogic/matplotlib/tree/fedora-patches-non-x86 Patch1005: 0004-Increase-some-tolerances-for-non-x86-arches.patch
BuildRequires: freetype-devel @@ -383,6 +389,9 @@ Requires: python3-tkinter
%prep %autosetup -n matplotlib-%{version}%{?rctag} -N +%patch0001 -p1 + +# Fedora-specific patches follow: %patch1001 -p1 %if %{fedora} > 26 # Updated test images for FreeType 2.8.
commit 8d6885671d52a2eb12d36324a1302f6ebd9bc5f0 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Wed Jan 24 03:02:57 2018 -0500
Increase tolerances on non-x86 systems.
diff --git a/0001-matplotlibrc-path-search-fix.patch b/0001-matplotlibrc-path-search-fix.patch index d3d4acb..f069fde 100644 --- a/0001-matplotlibrc-path-search-fix.patch +++ b/0001-matplotlibrc-path-search-fix.patch @@ -1,7 +1,7 @@ From 69b627b84fa8081748d93d180deb2218b99270a4 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/3] matplotlibrc path search fix +Subject: [PATCH 1/4] matplotlibrc path search fix
Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com --- diff --git a/0002-Increase-tolerances-for-FreeType-2.7.1.patch b/0002-Increase-tolerances-for-FreeType-2.7.1.patch new file mode 100644 index 0000000..4db5b16 --- /dev/null +++ b/0002-Increase-tolerances-for-FreeType-2.7.1.patch @@ -0,0 +1,118 @@ +From f146998e2bf6db54dae926ceec57d2baa6003ea0 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Tue, 23 Jan 2018 20:22:05 -0500 +Subject: [PATCH 2/4] Increase tolerances for FreeType 2.7.1. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/testing/decorators.py | 2 +- + lib/matplotlib/tests/test_axes.py | 5 ++--- + lib/matplotlib/tests/test_mathtext.py | 4 ++-- + lib/matplotlib/tests/test_patches.py | 3 +-- + lib/matplotlib/tests/test_streamplot.py | 3 +-- + lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- + 6 files changed, 8 insertions(+), 11 deletions(-) + +diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py +index c5e069b31..ebd68cfab 100644 +--- a/lib/matplotlib/testing/decorators.py ++++ b/lib/matplotlib/testing/decorators.py +@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, + return decorator + + +-def image_comparison(baseline_images, extensions=None, tol=0, ++def image_comparison(baseline_images, extensions=None, tol=0.1, + freetype_version=None, remove_text=False, + savefig_kwarg=None, + # Default of mpl_test_settings fixture and cleanup too. +diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py +index 7164d0cec..6492cc140 100644 +--- a/lib/matplotlib/tests/test_axes.py ++++ b/lib/matplotlib/tests/test_axes.py +@@ -671,8 +671,7 @@ def test_polar_rlabel_position(): + ax.tick_params(rotation='auto') + + +-@image_comparison(baseline_images=['polar_theta_wedge'], style='default', +- tol=0.01 if six.PY2 else 0) ++@image_comparison(baseline_images=['polar_theta_wedge'], style='default') + def test_polar_theta_limits(): + r = np.arange(0, 3.0, 0.01) + theta = 2*np.pi*r +@@ -4679,7 +4678,7 @@ def test_rc_spines(): + + + @image_comparison(baseline_images=['rc_grid'], extensions=['png'], +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.2) + def test_rc_grid(): + fig = plt.figure() + rc_dict0 = { +diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py +index 7ef77ce6a..b8c9c9e8b 100644 +--- a/lib/matplotlib/tests/test_mathtext.py ++++ b/lib/matplotlib/tests/test_mathtext.py +@@ -174,7 +174,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): + matplotlib.rcParams['mathtext.fontset'] = fontset + fig = plt.figure(figsize=(5.25, 0.75)) +@@ -188,7 +188,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): + 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 20ffa6b08..81737c84d 100644 +--- a/lib/matplotlib/tests/test_patches.py ++++ b/lib/matplotlib/tests/test_patches.py +@@ -267,9 +267,8 @@ def test_wedge_movement(): + assert getattr(w, attr) == new_v + + +-# png needs tol>=0.06, pdf tol>=1.617 + @image_comparison(baseline_images=['wedge_range'], +- remove_text=True, tol=1.65 if on_win else 0) ++ remove_text=True) + def test_wedge_range(): + ax = plt.axes() + +diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py +index 1d7e09fef..48f1e0683 100644 +--- a/lib/matplotlib/tests/test_streamplot.py ++++ b/lib/matplotlib/tests/test_streamplot.py +@@ -40,8 +40,7 @@ def test_startpoints(): + plt.plot(start_x, start_y, 'ok') + + +-@image_comparison(baseline_images=['streamplot_colormap'], +- tol=.02) ++@image_comparison(baseline_images=['streamplot_colormap']) + def test_colormap(): + X, Y, U, V = velocity_field() + plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, +diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py +index c157433c7..c13f3be2f 100644 +--- a/lib/mpl_toolkits/tests/test_mplot3d.py ++++ b/lib/mpl_toolkits/tests/test_mplot3d.py +@@ -658,7 +658,7 @@ class TestVoxels(object): + @image_comparison( + baseline_images=['voxels-xyz'], + extensions=['png'], +- tol=0.01 ++ tol=0.02 + ) + def test_xyz(self): + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) +-- +2.14.3 + diff --git a/0002-TST-Increase-tolerances-for-FreeType-2.7.1.patch b/0002-TST-Increase-tolerances-for-FreeType-2.7.1.patch deleted file mode 100644 index 754498a..0000000 --- a/0002-TST-Increase-tolerances-for-FreeType-2.7.1.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 593459d2a9223d69180fed80622f4e7e2cf96239 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Sun, 15 Oct 2017 17:35:47 -0400 -Subject: [PATCH 2/3] TST: Increase tolerances for FreeType 2.7.1. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/testing/decorators.py | 2 +- - lib/matplotlib/tests/test_axes.py | 5 ++--- - lib/matplotlib/tests/test_mathtext.py | 4 ++-- - lib/matplotlib/tests/test_patches.py | 3 +-- - lib/matplotlib/tests/test_patheffects.py | 2 +- - lib/matplotlib/tests/test_streamplot.py | 6 ++---- - lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- - 7 files changed, 10 insertions(+), 14 deletions(-) - -diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py -index c5e069b31..ebd68cfab 100644 ---- a/lib/matplotlib/testing/decorators.py -+++ b/lib/matplotlib/testing/decorators.py -@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, - return decorator - - --def image_comparison(baseline_images, extensions=None, tol=0, -+def image_comparison(baseline_images, extensions=None, tol=0.1, - freetype_version=None, remove_text=False, - savefig_kwarg=None, - # Default of mpl_test_settings fixture and cleanup too. -diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index 7164d0cec..6492cc140 100644 ---- a/lib/matplotlib/tests/test_axes.py -+++ b/lib/matplotlib/tests/test_axes.py -@@ -671,8 +671,7 @@ def test_polar_rlabel_position(): - ax.tick_params(rotation='auto') - - --@image_comparison(baseline_images=['polar_theta_wedge'], style='default', -- tol=0.01 if six.PY2 else 0) -+@image_comparison(baseline_images=['polar_theta_wedge'], style='default') - def test_polar_theta_limits(): - r = np.arange(0, 3.0, 0.01) - theta = 2*np.pi*r -@@ -4679,7 +4678,7 @@ def test_rc_spines(): - - - @image_comparison(baseline_images=['rc_grid'], extensions=['png'], -- savefig_kwarg={'dpi': 40}) -+ savefig_kwarg={'dpi': 40}, tol=0.2) - def test_rc_grid(): - fig = plt.figure() - rc_dict0 = { -diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py -index 7ef77ce6a..b8c9c9e8b 100644 ---- a/lib/matplotlib/tests/test_mathtext.py -+++ b/lib/matplotlib/tests/test_mathtext.py -@@ -174,7 +174,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): - matplotlib.rcParams['mathtext.fontset'] = fontset - fig = plt.figure(figsize=(5.25, 0.75)) -@@ -188,7 +188,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): - 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 20ffa6b08..81737c84d 100644 ---- a/lib/matplotlib/tests/test_patches.py -+++ b/lib/matplotlib/tests/test_patches.py -@@ -267,9 +267,8 @@ def test_wedge_movement(): - assert getattr(w, attr) == new_v - - --# png needs tol>=0.06, pdf tol>=1.617 - @image_comparison(baseline_images=['wedge_range'], -- remove_text=True, tol=1.65 if on_win else 0) -+ remove_text=True) - def test_wedge_range(): - ax = plt.axes() - -diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py -index 9b8a4379c..b46d8cec4 100644 ---- a/lib/matplotlib/tests/test_patheffects.py -+++ b/lib/matplotlib/tests/test_patheffects.py -@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): - assert pe._offset == (4, 5) - - --@image_comparison(baseline_images=['collection'], tol=0.015) -+@image_comparison(baseline_images=['collection']) - 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_streamplot.py b/lib/matplotlib/tests/test_streamplot.py -index 1d7e09fef..b62ca2198 100644 ---- a/lib/matplotlib/tests/test_streamplot.py -+++ b/lib/matplotlib/tests/test_streamplot.py -@@ -40,8 +40,7 @@ def test_startpoints(): - plt.plot(start_x, start_y, 'ok') - - --@image_comparison(baseline_images=['streamplot_colormap'], -- tol=.02) -+@image_comparison(baseline_images=['streamplot_colormap']) - def test_colormap(): - X, Y, U, V = velocity_field() - plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, -@@ -59,8 +58,7 @@ def test_linewidth(): - linewidth=lw) - - --@image_comparison(baseline_images=['streamplot_masks_and_nans'], -- tol=0.04 if on_win else 0) -+@image_comparison(baseline_images=['streamplot_masks_and_nans']) - def test_masks_and_nans(): - X, Y, U, V = velocity_field() - mask = np.zeros(U.shape, dtype=bool) -diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py -index c157433c7..c13f3be2f 100644 ---- a/lib/mpl_toolkits/tests/test_mplot3d.py -+++ b/lib/mpl_toolkits/tests/test_mplot3d.py -@@ -658,7 +658,7 @@ class TestVoxels(object): - @image_comparison( - baseline_images=['voxels-xyz'], - extensions=['png'], -- tol=0.01 -+ tol=0.02 - ) - def test_xyz(self): - fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) --- -2.14.3 - diff --git a/0003-Increase-tolerances-for-FT-2.7.1-and-other-arches.patch b/0003-Increase-tolerances-for-FT-2.7.1-and-other-arches.patch new file mode 100644 index 0000000..bc5d355 --- /dev/null +++ b/0003-Increase-tolerances-for-FT-2.7.1-and-other-arches.patch @@ -0,0 +1,41 @@ +From 1e4e5f12b804561ab5b6bfa4ad76d44523d1568e 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 FT 2.7.1 and other arches. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/tests/test_patheffects.py | 2 +- + lib/matplotlib/tests/test_streamplot.py | 3 +-- + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py +index 9b8a4379c..e36d6deb6 100644 +--- a/lib/matplotlib/tests/test_patheffects.py ++++ b/lib/matplotlib/tests/test_patheffects.py +@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): + assert pe._offset == (4, 5) + + +-@image_comparison(baseline_images=['collection'], tol=0.015) ++@image_comparison(baseline_images=['collection'], tol=0.019) + 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_streamplot.py b/lib/matplotlib/tests/test_streamplot.py +index 48f1e0683..aadcf6bfd 100644 +--- a/lib/matplotlib/tests/test_streamplot.py ++++ b/lib/matplotlib/tests/test_streamplot.py +@@ -58,8 +58,7 @@ def test_linewidth(): + linewidth=lw) + + +-@image_comparison(baseline_images=['streamplot_masks_and_nans'], +- tol=0.04 if on_win else 0) ++@image_comparison(baseline_images=['streamplot_masks_and_nans'], tol=0.01) + def test_masks_and_nans(): + X, Y, U, V = velocity_field() + mask = np.zeros(U.shape, dtype=bool) +-- +2.14.3 + diff --git a/0003-TST-Increase-some-tolerances-for-32-bit-systems.patch b/0003-TST-Increase-some-tolerances-for-32-bit-systems.patch deleted file mode 100644 index d0a02ec..0000000 --- a/0003-TST-Increase-some-tolerances-for-32-bit-systems.patch +++ /dev/null @@ -1,388 +0,0 @@ -From 61eac9a522a7907db3fe01680d249789d1cff710 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Sun, 15 Oct 2017 21:11:26 -0400 -Subject: [PATCH 3/3] TST: Increase some tolerances for 32-bit systems. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/tests/test_artist.py | 3 ++- - lib/matplotlib/tests/test_axes.py | 42 ++++++++++++++++---------------- - lib/matplotlib/tests/test_collections.py | 2 +- - lib/matplotlib/tests/test_colorbar.py | 11 +++++---- - lib/matplotlib/tests/test_contour.py | 6 ++--- - lib/matplotlib/tests/test_image.py | 2 +- - lib/matplotlib/tests/test_pickle.py | 2 +- - lib/matplotlib/tests/test_quiver.py | 2 +- - lib/matplotlib/tests/test_transforms.py | 2 +- - lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- - 10 files changed, 38 insertions(+), 36 deletions(-) - -diff --git a/lib/matplotlib/tests/test_artist.py b/lib/matplotlib/tests/test_artist.py -index 786d50903..105714ef4 100644 ---- a/lib/matplotlib/tests/test_artist.py -+++ b/lib/matplotlib/tests/test_artist.py -@@ -95,7 +95,8 @@ def test_collection_transform_of_none(): - assert isinstance(c._transOffset, mtransforms.IdentityTransform) - - --@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True) -+@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True, -+ tol=0.28) - def test_clipping(): - exterior = mpath.Path.unit_rectangle().deepcopy() - exterior.vertices *= 4 -diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index 6492cc140..8609d8c31 100644 ---- a/lib/matplotlib/tests/test_axes.py -+++ b/lib/matplotlib/tests/test_axes.py -@@ -483,7 +483,7 @@ def test_single_point(): - plt.plot('b', 'b', 'o', data=data) - - --@image_comparison(baseline_images=['single_date']) -+@image_comparison(baseline_images=['single_date'], tol=1.97) - def test_single_date(): - time1 = [721964.0] - data1 = [-65.54] -@@ -971,7 +971,7 @@ def test_fill_between_interpolate(): - - - @image_comparison(baseline_images=['fill_between_interpolate_decreasing'], -- style='mpl20', remove_text=True) -+ style='mpl20', remove_text=True, tol=0.78) - def test_fill_between_interpolate_decreasing(): - p = np.array([724.3, 700, 655]) - t = np.array([9.4, 7, 2.2]) -@@ -1085,7 +1085,7 @@ def test_pcolormesh(): - - - @image_comparison(baseline_images=['pcolormesh_datetime_axis'], -- extensions=['png'], remove_text=False) -+ extensions=['png'], remove_text=False, tol=0.19) - def test_pcolormesh_datetime_axis(): - fig = plt.figure() - fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -1111,7 +1111,7 @@ def test_pcolormesh_datetime_axis(): - - - @image_comparison(baseline_images=['pcolor_datetime_axis'], -- extensions=['png'], remove_text=False) -+ extensions=['png'], remove_text=False, tol=0.19) - def test_pcolor_datetime_axis(): - fig = plt.figure() - fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -1167,7 +1167,7 @@ def test_canonical(): - - - @image_comparison(baseline_images=['arc_angles'], remove_text=True, -- style='default', extensions=['png']) -+ style='default', extensions=['png'], tol=0.17) - def test_arc_angles(): - from matplotlib import patches - # Ellipse parameters -@@ -2433,7 +2433,7 @@ def test_boxplot_mod_artist_after_plotting(): - - @image_comparison(baseline_images=['violinplot_vert_baseline', - 'violinplot_vert_baseline'], -- extensions=['png']) -+ extensions=['png'], tol=0.24) - def test_vert_violinplot_baseline(): - # First 9 digits of frac(sqrt(2)) - np.random.seed(414213562) -@@ -2451,7 +2451,7 @@ def test_vert_violinplot_baseline(): - - - @image_comparison(baseline_images=['violinplot_vert_showmeans'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_vert_violinplot_showmeans(): - ax = plt.axes() - # First 9 digits of frac(sqrt(3)) -@@ -2462,7 +2462,7 @@ def test_vert_violinplot_showmeans(): - - - @image_comparison(baseline_images=['violinplot_vert_showextrema'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_vert_violinplot_showextrema(): - ax = plt.axes() - # First 9 digits of frac(sqrt(5)) -@@ -2473,7 +2473,7 @@ def test_vert_violinplot_showextrema(): - - - @image_comparison(baseline_images=['violinplot_vert_showmedians'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_vert_violinplot_showmedians(): - ax = plt.axes() - # First 9 digits of frac(sqrt(7)) -@@ -2484,7 +2484,7 @@ def test_vert_violinplot_showmedians(): - - - @image_comparison(baseline_images=['violinplot_vert_showall'], -- extensions=['png']) -+ extensions=['png'], tol=0.2) - def test_vert_violinplot_showall(): - ax = plt.axes() - # First 9 digits of frac(sqrt(11)) -@@ -2495,7 +2495,7 @@ def test_vert_violinplot_showall(): - - - @image_comparison(baseline_images=['violinplot_vert_custompoints_10'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_vert_violinplot_custompoints_10(): - ax = plt.axes() - # First 9 digits of frac(sqrt(13)) -@@ -2506,7 +2506,7 @@ def test_vert_violinplot_custompoints_10(): - - - @image_comparison(baseline_images=['violinplot_vert_custompoints_200'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_vert_violinplot_custompoints_200(): - ax = plt.axes() - # First 9 digits of frac(sqrt(17)) -@@ -2517,7 +2517,7 @@ def test_vert_violinplot_custompoints_200(): - - - @image_comparison(baseline_images=['violinplot_horiz_baseline'], -- extensions=['png']) -+ extensions=['png'], tol=0.2) - def test_horiz_violinplot_baseline(): - ax = plt.axes() - # First 9 digits of frac(sqrt(19)) -@@ -2528,7 +2528,7 @@ def test_horiz_violinplot_baseline(): - - - @image_comparison(baseline_images=['violinplot_horiz_showmedians'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_horiz_violinplot_showmedians(): - ax = plt.axes() - # First 9 digits of frac(sqrt(23)) -@@ -2539,7 +2539,7 @@ def test_horiz_violinplot_showmedians(): - - - @image_comparison(baseline_images=['violinplot_horiz_showmeans'], -- extensions=['png']) -+ extensions=['png'], tol=0.25) - def test_horiz_violinplot_showmeans(): - ax = plt.axes() - # First 9 digits of frac(sqrt(29)) -@@ -2550,7 +2550,7 @@ def test_horiz_violinplot_showmeans(): - - - @image_comparison(baseline_images=['violinplot_horiz_showextrema'], -- extensions=['png']) -+ extensions=['png'], tol=0.2) - def test_horiz_violinplot_showextrema(): - ax = plt.axes() - # First 9 digits of frac(sqrt(31)) -@@ -2561,7 +2561,7 @@ def test_horiz_violinplot_showextrema(): - - - @image_comparison(baseline_images=['violinplot_horiz_showall'], -- extensions=['png']) -+ extensions=['png'], tol=0.19) - def test_horiz_violinplot_showall(): - ax = plt.axes() - # First 9 digits of frac(sqrt(37)) -@@ -2572,7 +2572,7 @@ def test_horiz_violinplot_showall(): - - - @image_comparison(baseline_images=['violinplot_horiz_custompoints_10'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_horiz_violinplot_custompoints_10(): - ax = plt.axes() - # First 9 digits of frac(sqrt(41)) -@@ -2583,7 +2583,7 @@ def test_horiz_violinplot_custompoints_10(): - - - @image_comparison(baseline_images=['violinplot_horiz_custompoints_200'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_horiz_violinplot_custompoints_200(): - ax = plt.axes() - # First 9 digits of frac(sqrt(43)) -@@ -3909,7 +3909,7 @@ def test_psd_noise(): - - - @image_comparison(baseline_images=['csd_freqs'], remove_text=True, -- extensions=['png']) -+ extensions=['png'], tol=0.21) - def test_csd_freqs(): - '''test axes.csd with sinusoidal stimuli''' - n = 10000 -@@ -5153,7 +5153,7 @@ def test_date_timezone_y(): - - - @image_comparison(baseline_images=['date_timezone_x_and_y'], -- extensions=['png']) -+ extensions=['png'], tol=3.05) - def test_date_timezone_x_and_y(): - # Tests issue 5575 - time_index = [pytz.timezone('UTC').localize(datetime.datetime( -diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py -index c27aeb11a..9d39a3e91 100644 ---- a/lib/matplotlib/tests/test_collections.py -+++ b/lib/matplotlib/tests/test_collections.py -@@ -468,7 +468,7 @@ def test_EllipseCollection(): - - - @image_comparison(baseline_images=['polycollection_close'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.45) - def test_polycollection_close(): - from mpl_toolkits.mplot3d import Axes3D - -diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py -index b75ba7e9f..cfbb16444 100644 ---- a/lib/matplotlib/tests/test_colorbar.py -+++ b/lib/matplotlib/tests/test_colorbar.py -@@ -96,7 +96,7 @@ def _colorbar_extension_length(spacing): - @image_comparison( - baseline_images=['colorbar_extensions_shape_uniform', - 'colorbar_extensions_shape_proportional'], -- extensions=['png']) -+ extensions=['png'], tol=0.16) - def test_colorbar_extension_shape(): - '''Test rectangular colorbar extensions.''' - # Create figures for uniform and proportionally spaced colorbars. -@@ -106,7 +106,7 @@ def test_colorbar_extension_shape(): - - @image_comparison(baseline_images=['colorbar_extensions_uniform', - 'colorbar_extensions_proportional'], -- extensions=['png']) -+ extensions=['png'], tol=0.25) - def test_colorbar_extension_length(): - '''Test variable length colorbar extensions.''' - # Create figures for uniform and proportionally spaced colorbars. -@@ -120,7 +120,7 @@ def test_colorbar_extension_length(): - 'cbar_sharing', - ], - extensions=['png'], remove_text=True, -- savefig_kwarg={'dpi': 40}) -+ savefig_kwarg={'dpi': 40}, tol=0.17) - def test_colorbar_positioning(): - data = np.arange(1200).reshape(30, 40) - levels = [0, 200, 400, 600, 800, 1000, 1200] -@@ -174,7 +174,7 @@ def test_colorbar_positioning(): - - @image_comparison(baseline_images=['cbar_with_subplots_adjust'], - extensions=['png'], remove_text=True, -- savefig_kwarg={'dpi': 40}) -+ savefig_kwarg={'dpi': 40}, tol=0.17) - def test_gridspec_make_colorbar(): - plt.figure() - data = np.arange(1200).reshape(30, 40) -@@ -234,7 +234,8 @@ def test_colorbarbase(): - - @image_comparison( - baseline_images=['colorbar_closed_patch'], -- remove_text=True) -+ remove_text=True, -+ tol=0.22) - def test_colorbar_closed_patch(): - fig = plt.figure(figsize=(8, 6)) - ax1 = fig.add_axes([0.05, 0.85, 0.9, 0.1]) -diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py -index 16ac9e865..29c1b26f2 100644 ---- a/lib/matplotlib/tests/test_contour.py -+++ b/lib/matplotlib/tests/test_contour.py -@@ -228,7 +228,7 @@ def test_given_colors_levels_and_extends(): - - - @image_comparison(baseline_images=['contour_datetime_axis'], -- extensions=['png'], remove_text=False) -+ extensions=['png'], remove_text=False, tol=0.18) - def test_contour_datetime_axis(): - fig = plt.figure() - fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -254,7 +254,7 @@ def test_contour_datetime_axis(): - - - @image_comparison(baseline_images=['contour_test_label_transforms'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.74) - def test_labels(): - # Adapted from pylab_examples example code: contour_demo.py - # see issues #2475, #2843, and #2818 for explanation -@@ -283,7 +283,7 @@ def test_labels(): - - @image_comparison(baseline_images=['contour_corner_mask_False', - 'contour_corner_mask_True'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.19) - def test_corner_mask(): - n = 60 - mask_level = 0.95 -diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py -index fd6430d56..e9bf1b1db 100644 ---- a/lib/matplotlib/tests/test_image.py -+++ b/lib/matplotlib/tests/test_image.py -@@ -754,7 +754,7 @@ def test_imshow_endianess(): - - - @image_comparison(baseline_images=['imshow_masked_interpolation'], -- remove_text=True, style='mpl20') -+ remove_text=True, style='mpl20', tol=0.25) - def test_imshow_masked_interpolation(): - - cm = copy(plt.get_cmap('viridis')) -diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py -index bd6ac6862..512f07948 100644 ---- a/lib/matplotlib/tests/test_pickle.py -+++ b/lib/matplotlib/tests/test_pickle.py -@@ -43,7 +43,7 @@ def test_simple(): - - @image_comparison(baseline_images=['multi_pickle'], - extensions=['png'], remove_text=True, -- style='mpl20') -+ style='mpl20', tol=0.11) - def test_complete(): - fig = plt.figure('Figure with a label?', figsize=(10, 6)) - -diff --git a/lib/matplotlib/tests/test_quiver.py b/lib/matplotlib/tests/test_quiver.py -index a0e1e674f..ede6bfc64 100644 ---- a/lib/matplotlib/tests/test_quiver.py -+++ b/lib/matplotlib/tests/test_quiver.py -@@ -131,7 +131,7 @@ def test_quiver_key_pivot(): - - - @image_comparison(baseline_images=['barbs_test_image'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.11) - def test_barbs(): - x = np.linspace(-5, 5, 5) - X, Y = np.meshgrid(x, x) -diff --git a/lib/matplotlib/tests/test_transforms.py b/lib/matplotlib/tests/test_transforms.py -index 8f19a50f3..fa4a9aa18 100644 ---- a/lib/matplotlib/tests/test_transforms.py -+++ b/lib/matplotlib/tests/test_transforms.py -@@ -75,7 +75,7 @@ def test_external_transform_api(): - - - @image_comparison(baseline_images=['pre_transform_data'], -- tol=0.08) -+ tol=0.155) - def test_pre_transform_plotting(): - # a catch-all for as many as possible plot layouts which handle - # pre-transforming the data NOTE: The axis range is important in this -diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py -index c13f3be2f..81a28aadb 100644 ---- a/lib/mpl_toolkits/tests/test_mplot3d.py -+++ b/lib/mpl_toolkits/tests/test_mplot3d.py -@@ -198,7 +198,7 @@ def test_text3d(): - ax.set_zlabel('Z axis') - - --@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.03) -+@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.05) - def test_trisurf3d(): - n_angles = 36 - n_radii = 8 --- -2.14.3 - diff --git a/0004-Increase-some-tolerances-for-32-bit-systems.patch b/0004-Increase-some-tolerances-for-32-bit-systems.patch new file mode 100644 index 0000000..a7012bc --- /dev/null +++ b/0004-Increase-some-tolerances-for-32-bit-systems.patch @@ -0,0 +1,402 @@ +From 25c7d1af15f4478e795250360d2f778a76c2358d Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Wed, 24 Jan 2018 01:38:52 -0500 +Subject: [PATCH 4/4] Increase some tolerances for 32-bit systems. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/tests/test_artist.py | 3 ++- + lib/matplotlib/tests/test_axes.py | 42 ++++++++++++++++---------------- + lib/matplotlib/tests/test_collections.py | 2 +- + lib/matplotlib/tests/test_colorbar.py | 11 +++++---- + lib/matplotlib/tests/test_contour.py | 6 ++--- + lib/matplotlib/tests/test_image.py | 2 +- + lib/matplotlib/tests/test_patheffects.py | 2 +- + lib/matplotlib/tests/test_pickle.py | 2 +- + lib/matplotlib/tests/test_quiver.py | 2 +- + lib/matplotlib/tests/test_transforms.py | 2 +- + lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- + 11 files changed, 39 insertions(+), 37 deletions(-) + +diff --git a/lib/matplotlib/tests/test_artist.py b/lib/matplotlib/tests/test_artist.py +index 786d50903..105714ef4 100644 +--- a/lib/matplotlib/tests/test_artist.py ++++ b/lib/matplotlib/tests/test_artist.py +@@ -95,7 +95,8 @@ def test_collection_transform_of_none(): + assert isinstance(c._transOffset, mtransforms.IdentityTransform) + + +-@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True) ++@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True, ++ tol=0.28) + def test_clipping(): + exterior = mpath.Path.unit_rectangle().deepcopy() + exterior.vertices *= 4 +diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py +index 6492cc140..8609d8c31 100644 +--- a/lib/matplotlib/tests/test_axes.py ++++ b/lib/matplotlib/tests/test_axes.py +@@ -483,7 +483,7 @@ def test_single_point(): + plt.plot('b', 'b', 'o', data=data) + + +-@image_comparison(baseline_images=['single_date']) ++@image_comparison(baseline_images=['single_date'], tol=1.97) + def test_single_date(): + time1 = [721964.0] + data1 = [-65.54] +@@ -971,7 +971,7 @@ def test_fill_between_interpolate(): + + + @image_comparison(baseline_images=['fill_between_interpolate_decreasing'], +- style='mpl20', remove_text=True) ++ style='mpl20', remove_text=True, tol=0.78) + def test_fill_between_interpolate_decreasing(): + p = np.array([724.3, 700, 655]) + t = np.array([9.4, 7, 2.2]) +@@ -1085,7 +1085,7 @@ def test_pcolormesh(): + + + @image_comparison(baseline_images=['pcolormesh_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.19) + def test_pcolormesh_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -1111,7 +1111,7 @@ def test_pcolormesh_datetime_axis(): + + + @image_comparison(baseline_images=['pcolor_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.19) + def test_pcolor_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -1167,7 +1167,7 @@ def test_canonical(): + + + @image_comparison(baseline_images=['arc_angles'], remove_text=True, +- style='default', extensions=['png']) ++ style='default', extensions=['png'], tol=0.17) + def test_arc_angles(): + from matplotlib import patches + # Ellipse parameters +@@ -2433,7 +2433,7 @@ def test_boxplot_mod_artist_after_plotting(): + + @image_comparison(baseline_images=['violinplot_vert_baseline', + 'violinplot_vert_baseline'], +- extensions=['png']) ++ extensions=['png'], tol=0.24) + def test_vert_violinplot_baseline(): + # First 9 digits of frac(sqrt(2)) + np.random.seed(414213562) +@@ -2451,7 +2451,7 @@ def test_vert_violinplot_baseline(): + + + @image_comparison(baseline_images=['violinplot_vert_showmeans'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showmeans(): + ax = plt.axes() + # First 9 digits of frac(sqrt(3)) +@@ -2462,7 +2462,7 @@ def test_vert_violinplot_showmeans(): + + + @image_comparison(baseline_images=['violinplot_vert_showextrema'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showextrema(): + ax = plt.axes() + # First 9 digits of frac(sqrt(5)) +@@ -2473,7 +2473,7 @@ def test_vert_violinplot_showextrema(): + + + @image_comparison(baseline_images=['violinplot_vert_showmedians'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showmedians(): + ax = plt.axes() + # First 9 digits of frac(sqrt(7)) +@@ -2484,7 +2484,7 @@ def test_vert_violinplot_showmedians(): + + + @image_comparison(baseline_images=['violinplot_vert_showall'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_vert_violinplot_showall(): + ax = plt.axes() + # First 9 digits of frac(sqrt(11)) +@@ -2495,7 +2495,7 @@ def test_vert_violinplot_showall(): + + + @image_comparison(baseline_images=['violinplot_vert_custompoints_10'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_vert_violinplot_custompoints_10(): + ax = plt.axes() + # First 9 digits of frac(sqrt(13)) +@@ -2506,7 +2506,7 @@ def test_vert_violinplot_custompoints_10(): + + + @image_comparison(baseline_images=['violinplot_vert_custompoints_200'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_vert_violinplot_custompoints_200(): + ax = plt.axes() + # First 9 digits of frac(sqrt(17)) +@@ -2517,7 +2517,7 @@ def test_vert_violinplot_custompoints_200(): + + + @image_comparison(baseline_images=['violinplot_horiz_baseline'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_horiz_violinplot_baseline(): + ax = plt.axes() + # First 9 digits of frac(sqrt(19)) +@@ -2528,7 +2528,7 @@ def test_horiz_violinplot_baseline(): + + + @image_comparison(baseline_images=['violinplot_horiz_showmedians'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_horiz_violinplot_showmedians(): + ax = plt.axes() + # First 9 digits of frac(sqrt(23)) +@@ -2539,7 +2539,7 @@ def test_horiz_violinplot_showmedians(): + + + @image_comparison(baseline_images=['violinplot_horiz_showmeans'], +- extensions=['png']) ++ extensions=['png'], tol=0.25) + def test_horiz_violinplot_showmeans(): + ax = plt.axes() + # First 9 digits of frac(sqrt(29)) +@@ -2550,7 +2550,7 @@ def test_horiz_violinplot_showmeans(): + + + @image_comparison(baseline_images=['violinplot_horiz_showextrema'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_horiz_violinplot_showextrema(): + ax = plt.axes() + # First 9 digits of frac(sqrt(31)) +@@ -2561,7 +2561,7 @@ def test_horiz_violinplot_showextrema(): + + + @image_comparison(baseline_images=['violinplot_horiz_showall'], +- extensions=['png']) ++ extensions=['png'], tol=0.19) + def test_horiz_violinplot_showall(): + ax = plt.axes() + # First 9 digits of frac(sqrt(37)) +@@ -2572,7 +2572,7 @@ def test_horiz_violinplot_showall(): + + + @image_comparison(baseline_images=['violinplot_horiz_custompoints_10'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_horiz_violinplot_custompoints_10(): + ax = plt.axes() + # First 9 digits of frac(sqrt(41)) +@@ -2583,7 +2583,7 @@ def test_horiz_violinplot_custompoints_10(): + + + @image_comparison(baseline_images=['violinplot_horiz_custompoints_200'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_horiz_violinplot_custompoints_200(): + ax = plt.axes() + # First 9 digits of frac(sqrt(43)) +@@ -3909,7 +3909,7 @@ def test_psd_noise(): + + + @image_comparison(baseline_images=['csd_freqs'], remove_text=True, +- extensions=['png']) ++ extensions=['png'], tol=0.21) + def test_csd_freqs(): + '''test axes.csd with sinusoidal stimuli''' + n = 10000 +@@ -5153,7 +5153,7 @@ def test_date_timezone_y(): + + + @image_comparison(baseline_images=['date_timezone_x_and_y'], +- extensions=['png']) ++ extensions=['png'], tol=3.05) + def test_date_timezone_x_and_y(): + # Tests issue 5575 + time_index = [pytz.timezone('UTC').localize(datetime.datetime( +diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py +index c27aeb11a..9d39a3e91 100644 +--- a/lib/matplotlib/tests/test_collections.py ++++ b/lib/matplotlib/tests/test_collections.py +@@ -468,7 +468,7 @@ def test_EllipseCollection(): + + + @image_comparison(baseline_images=['polycollection_close'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.45) + def test_polycollection_close(): + from mpl_toolkits.mplot3d import Axes3D + +diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py +index b75ba7e9f..cfbb16444 100644 +--- a/lib/matplotlib/tests/test_colorbar.py ++++ b/lib/matplotlib/tests/test_colorbar.py +@@ -96,7 +96,7 @@ def _colorbar_extension_length(spacing): + @image_comparison( + baseline_images=['colorbar_extensions_shape_uniform', + 'colorbar_extensions_shape_proportional'], +- extensions=['png']) ++ extensions=['png'], tol=0.16) + def test_colorbar_extension_shape(): + '''Test rectangular colorbar extensions.''' + # Create figures for uniform and proportionally spaced colorbars. +@@ -106,7 +106,7 @@ def test_colorbar_extension_shape(): + + @image_comparison(baseline_images=['colorbar_extensions_uniform', + 'colorbar_extensions_proportional'], +- extensions=['png']) ++ extensions=['png'], tol=0.25) + def test_colorbar_extension_length(): + '''Test variable length colorbar extensions.''' + # Create figures for uniform and proportionally spaced colorbars. +@@ -120,7 +120,7 @@ def test_colorbar_extension_length(): + 'cbar_sharing', + ], + extensions=['png'], remove_text=True, +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.17) + def test_colorbar_positioning(): + data = np.arange(1200).reshape(30, 40) + levels = [0, 200, 400, 600, 800, 1000, 1200] +@@ -174,7 +174,7 @@ def test_colorbar_positioning(): + + @image_comparison(baseline_images=['cbar_with_subplots_adjust'], + extensions=['png'], remove_text=True, +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.17) + def test_gridspec_make_colorbar(): + plt.figure() + data = np.arange(1200).reshape(30, 40) +@@ -234,7 +234,8 @@ def test_colorbarbase(): + + @image_comparison( + baseline_images=['colorbar_closed_patch'], +- remove_text=True) ++ remove_text=True, ++ tol=0.22) + def test_colorbar_closed_patch(): + fig = plt.figure(figsize=(8, 6)) + ax1 = fig.add_axes([0.05, 0.85, 0.9, 0.1]) +diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py +index 16ac9e865..29c1b26f2 100644 +--- a/lib/matplotlib/tests/test_contour.py ++++ b/lib/matplotlib/tests/test_contour.py +@@ -228,7 +228,7 @@ def test_given_colors_levels_and_extends(): + + + @image_comparison(baseline_images=['contour_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.18) + def test_contour_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -254,7 +254,7 @@ def test_contour_datetime_axis(): + + + @image_comparison(baseline_images=['contour_test_label_transforms'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.74) + def test_labels(): + # Adapted from pylab_examples example code: contour_demo.py + # see issues #2475, #2843, and #2818 for explanation +@@ -283,7 +283,7 @@ def test_labels(): + + @image_comparison(baseline_images=['contour_corner_mask_False', + 'contour_corner_mask_True'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.19) + def test_corner_mask(): + n = 60 + mask_level = 0.95 +diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py +index fd6430d56..e9bf1b1db 100644 +--- a/lib/matplotlib/tests/test_image.py ++++ b/lib/matplotlib/tests/test_image.py +@@ -754,7 +754,7 @@ def test_imshow_endianess(): + + + @image_comparison(baseline_images=['imshow_masked_interpolation'], +- remove_text=True, style='mpl20') ++ remove_text=True, style='mpl20', tol=0.25) + def test_imshow_masked_interpolation(): + + cm = copy(plt.get_cmap('viridis')) +diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py +index e36d6deb6..985d69cb2 100644 +--- a/lib/matplotlib/tests/test_patheffects.py ++++ b/lib/matplotlib/tests/test_patheffects.py +@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): + assert pe._offset == (4, 5) + + +-@image_comparison(baseline_images=['collection'], tol=0.019) ++@image_comparison(baseline_images=['collection'], tol=0.084) + def test_collection(): + x, y = np.meshgrid(np.linspace(0, 10, 150), np.linspace(-5, 5, 100)) + data = np.sin(x) + np.cos(y) +diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py +index bd6ac6862..512f07948 100644 +--- a/lib/matplotlib/tests/test_pickle.py ++++ b/lib/matplotlib/tests/test_pickle.py +@@ -43,7 +43,7 @@ def test_simple(): + + @image_comparison(baseline_images=['multi_pickle'], + extensions=['png'], remove_text=True, +- style='mpl20') ++ style='mpl20', tol=0.11) + def test_complete(): + fig = plt.figure('Figure with a label?', figsize=(10, 6)) + +diff --git a/lib/matplotlib/tests/test_quiver.py b/lib/matplotlib/tests/test_quiver.py +index a0e1e674f..ede6bfc64 100644 +--- a/lib/matplotlib/tests/test_quiver.py ++++ b/lib/matplotlib/tests/test_quiver.py +@@ -131,7 +131,7 @@ def test_quiver_key_pivot(): + + + @image_comparison(baseline_images=['barbs_test_image'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.11) + def test_barbs(): + x = np.linspace(-5, 5, 5) + X, Y = np.meshgrid(x, x) +diff --git a/lib/matplotlib/tests/test_transforms.py b/lib/matplotlib/tests/test_transforms.py +index 8f19a50f3..fa4a9aa18 100644 +--- a/lib/matplotlib/tests/test_transforms.py ++++ b/lib/matplotlib/tests/test_transforms.py +@@ -75,7 +75,7 @@ def test_external_transform_api(): + + + @image_comparison(baseline_images=['pre_transform_data'], +- tol=0.08) ++ tol=0.155) + def test_pre_transform_plotting(): + # a catch-all for as many as possible plot layouts which handle + # pre-transforming the data NOTE: The axis range is important in this +diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py +index c13f3be2f..81a28aadb 100644 +--- a/lib/mpl_toolkits/tests/test_mplot3d.py ++++ b/lib/mpl_toolkits/tests/test_mplot3d.py +@@ -198,7 +198,7 @@ def test_text3d(): + ax.set_zlabel('Z axis') + + +-@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.03) ++@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.05) + def test_trisurf3d(): + n_angles = 36 + n_radii = 8 +-- +2.14.3 + diff --git a/0004-Increase-some-tolerances-for-non-x86-arches.patch b/0004-Increase-some-tolerances-for-non-x86-arches.patch new file mode 100644 index 0000000..349ce92 --- /dev/null +++ b/0004-Increase-some-tolerances-for-non-x86-arches.patch @@ -0,0 +1,216 @@ +From cd26dbd863d0cf2cce4d249c4941cf68d6f838ba Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Wed, 24 Jan 2018 03:02:19 -0500 +Subject: [PATCH 4/4] Increase some tolerances for non-x86 arches. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/tests/test_arrow_patches.py | 4 ++-- + lib/matplotlib/tests/test_axes.py | 5 +++-- + lib/matplotlib/tests/test_collections.py | 2 +- + lib/matplotlib/tests/test_cycles.py | 6 +++--- + 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 ++-- + 10 files changed, 18 insertions(+), 17 deletions(-) + +diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py +index 0a5894a30..1f75169ca 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(): + + + @image_comparison(baseline_images=['fancyarrow_dpi_cor_100dpi'], +- remove_text=True, extensions=['png'], ++ remove_text=True, extensions=['png'], tol=0.016, + savefig_kwarg=dict(dpi=100)) + def test_fancyarrow_dpi_cor_100dpi(): + """ +@@ -84,7 +84,7 @@ def test_fancyarrow_dpi_cor_100dpi(): + + + @image_comparison(baseline_images=['fancyarrow_dpi_cor_200dpi'], +- remove_text=True, extensions=['png'], ++ remove_text=True, extensions=['png'], tol=0.019, + savefig_kwarg=dict(dpi=200)) + def test_fancyarrow_dpi_cor_200dpi(): + """ +diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py +index 6492cc140..3bd1c0fda 100644 +--- a/lib/matplotlib/tests/test_axes.py ++++ b/lib/matplotlib/tests/test_axes.py +@@ -3229,7 +3229,8 @@ def test_vertex_markers(): + + + @image_comparison(baseline_images=['vline_hline_zorder', +- 'errorbar_zorder']) ++ 'errorbar_zorder'], ++ tol=0.02) + def test_eb_line_zorder(): + x = list(xrange(10)) + +@@ -4866,7 +4867,7 @@ def test_title_location_roundtrip(): + + + @image_comparison(baseline_images=["loglog"], remove_text=True, +- extensions=['png']) ++ extensions=['png'], tol=0.009) + def test_loglog(): + fig, ax = plt.subplots() + x = np.arange(1, 11) +diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py +index c27aeb11a..969bf41cf 100644 +--- a/lib/matplotlib/tests/test_collections.py ++++ b/lib/matplotlib/tests/test_collections.py +@@ -444,7 +444,7 @@ def test_barb_limits(): + + + @image_comparison(baseline_images=['EllipseCollection_test_image'], +- extensions=['png'], ++ extensions=['png'], tol=0.012, + remove_text=True) + def test_EllipseCollection(): + # Test basic functionality +diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py +index eadaf2508..5d1144f5e 100644 +--- a/lib/matplotlib/tests/test_cycles.py ++++ b/lib/matplotlib/tests/test_cycles.py +@@ -10,7 +10,7 @@ from cycler import cycler + + + @image_comparison(baseline_images=['color_cycle_basic'], remove_text=True, +- extensions=['png']) ++ extensions=['png'], tol=0.008) + def test_colorcycle_basic(): + fig = plt.figure() + ax = fig.add_subplot(111) +@@ -28,7 +28,7 @@ def test_colorcycle_basic(): + + + @image_comparison(baseline_images=['marker_cycle', 'marker_cycle'], +- remove_text=True, extensions=['png']) ++ remove_text=True, extensions=['png'], tol=0.008) + def test_marker_cycle(): + fig = plt.figure() + ax = fig.add_subplot(111) +@@ -63,7 +63,7 @@ def test_marker_cycle(): + + + @image_comparison(baseline_images=['lineprop_cycle_basic'], remove_text=True, +- extensions=['png']) ++ extensions=['png'], tol=0.009) + def test_linestylecycle_basic(): + fig = plt.figure() + ax = fig.add_subplot(111) +diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py +index fd6430d56..b4190713f 100644 +--- a/lib/matplotlib/tests/test_image.py ++++ b/lib/matplotlib/tests/test_image.py +@@ -754,7 +754,7 @@ def test_imshow_endianess(): + + + @image_comparison(baseline_images=['imshow_masked_interpolation'], +- remove_text=True, style='mpl20') ++ remove_text=True, style='mpl20', tol=0.006) + def test_imshow_masked_interpolation(): + + cm = copy(plt.get_cmap('viridis')) +diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py +index e63aa8ef9..d984bcac1 100644 +--- a/lib/matplotlib/tests/test_legend.py ++++ b/lib/matplotlib/tests/test_legend.py +@@ -141,7 +141,7 @@ def test_multiple_keys(): + + + @image_comparison(baseline_images=['rgba_alpha'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.007) + def test_alpha_rgba(): + import matplotlib.pyplot as plt + +@@ -152,7 +152,7 @@ def test_alpha_rgba(): + + + @image_comparison(baseline_images=['rcparam_alpha'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.007) + def test_alpha_rcparam(): + import matplotlib.pyplot as plt + +@@ -179,7 +179,7 @@ def test_fancy(): + ncol=2, shadow=True, title="My legend", numpoints=1) + + +-@image_comparison(baseline_images=['framealpha'], remove_text=True) ++@image_comparison(baseline_images=['framealpha'], remove_text=True, tol=0.018) + def test_framealpha(): + x = np.linspace(1, 100, 100) + y = x +diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py +index bd6ac6862..ea8afd807 100644 +--- a/lib/matplotlib/tests/test_pickle.py ++++ b/lib/matplotlib/tests/test_pickle.py +@@ -41,7 +41,7 @@ def test_simple(): + pickle.dump(fig, BytesIO(), pickle.HIGHEST_PROTOCOL) + + +-@image_comparison(baseline_images=['multi_pickle'], ++@image_comparison(baseline_images=['multi_pickle'], tol=0.004, + extensions=['png'], remove_text=True, + style='mpl20') + def test_complete(): +diff --git a/lib/matplotlib/tests/test_scale.py b/lib/matplotlib/tests/test_scale.py +index 9b78377b2..4994ba91d 100644 +--- a/lib/matplotlib/tests/test_scale.py ++++ b/lib/matplotlib/tests/test_scale.py +@@ -75,7 +75,7 @@ def test_extra_kwargs_raise(): + + + @image_comparison(baseline_images=['logscale_nonpos_values'], remove_text=True, +- extensions=['png'], style='mpl20') ++ extensions=['png'], style='mpl20', tol=0.008) + def test_logscale_nonpos_values(): + np.random.seed(19680801) + xs = np.random.normal(size=int(1e3)) +diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py +index aadcf6bfd..473991268 100644 +--- a/lib/matplotlib/tests/test_streamplot.py ++++ b/lib/matplotlib/tests/test_streamplot.py +@@ -48,7 +48,7 @@ def test_colormap(): + plt.colorbar() + + +-@image_comparison(baseline_images=['streamplot_linewidth']) ++@image_comparison(baseline_images=['streamplot_linewidth'], tol=0.002) + def test_linewidth(): + X, Y, U, V = velocity_field() + speed = np.sqrt(U*U + V*V) +diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py +index f72ac2c60..781a3850e 100644 +--- a/lib/matplotlib/tests/test_units.py ++++ b/lib/matplotlib/tests/test_units.py +@@ -39,7 +39,7 @@ class Quantity(object): + + # 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'], ++@image_comparison(baseline_images=['plot_pint'], tol=0.003, + extensions=['png'], remove_text=False, style='mpl20') + def test_numpy_facade(): + # Create an instance of the conversion interface and +@@ -83,7 +83,7 @@ def test_numpy_facade(): + + + # Tests gh-8908 +-@image_comparison(baseline_images=['plot_masked_units'], ++@image_comparison(baseline_images=['plot_masked_units'], tol=0.007, + extensions=['png'], remove_text=True, style='mpl20') + def test_plot_masked_units(): + data = np.linspace(-5, 5) +-- +2.14.3 + diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 01df64b..e0b55a5 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -67,8 +67,10 @@ Source1: setup.cfg # Fedora-specific patches. Source1000: matplotlib-%{version}-with-freetype-2.8.tar.gz Patch1001: 0001-matplotlibrc-path-search-fix.patch -Patch1002: 0002-TST-Increase-tolerances-for-FreeType-2.7.1.patch -Patch1686: 0003-TST-Increase-some-tolerances-for-32-bit-systems.patch +Patch1002: 0002-Increase-tolerances-for-FreeType-2.7.1.patch +Patch1003: 0003-Increase-tolerances-for-FT-2.7.1-and-other-arches.patch +Patch1004: 0004-Increase-some-tolerances-for-32-bit-systems.patch +Patch1005: 0004-Increase-some-tolerances-for-non-x86-arches.patch
BuildRequires: freetype-devel BuildRequires: libpng-devel @@ -389,13 +391,19 @@ gzip -dc %SOURCE1000 | tar xvf - --transform='s~^([^/]+)/~lib/\1/tests/baseli # Apply this because 32-bit output is a bit off. %patch1002 -p1 %endif +%ifnarch x86_64 +%patch1003 -p1 +%endif +%ifarch aarch64 ppc64 ppc64le s390x +%patch1005 -p1 +%endif %else # Small tweaks to tolerances for FreeType 2.7.1. %patch1002 -p1 +%patch1003 -p1 %endif %ifarch i686 -# Switch to full autosetup when 32-bit systems are dropped. -%patch1686 -p1 +%patch1004 -p1 %endif rm -r extern/libqhull
commit b470c189c1904f9c34546286a62883a4891c3796 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Tue Jan 23 02:31:22 2018 -0500
Also apply tolerance patch for 32-bit systems.
diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 290a188..01df64b 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -385,6 +385,10 @@ Requires: python3-tkinter %if %{fedora} > 26 # Updated test images for FreeType 2.8. gzip -dc %SOURCE1000 | tar xvf - --transform='s~^([^/]+)/~lib/\1/tests/baseline_images/~' +%ifarch i686 armv7hl +# Apply this because 32-bit output is a bit off. +%patch1002 -p1 +%endif %else # Small tweaks to tolerances for FreeType 2.7.1. %patch1002 -p1
commit 75d0d8966b955adb3d1ad9c860d4dfe8341fe850 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Wed Dec 20 01:02:55 2017 -0500
Add test images re-generated with FreeType 2.8.
diff --git a/.gitignore b/.gitignore index 003fc18..f5347ce 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-2.1.0.tar.gz /matplotlib-2.1.1.tar.gz /matplotlib-2.1.2.tar.gz +/matplotlib-2.1.2-with-freetype-2.8.tar.gz diff --git a/python-matplotlib.spec b/python-matplotlib.spec index c263f77..290a188 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -65,6 +65,7 @@ Source0: https://github.com/matplotlib/matplotlib/archive/v%%7Bversion%7D%%7B?r Source1: setup.cfg
# Fedora-specific patches. +Source1000: matplotlib-%{version}-with-freetype-2.8.tar.gz Patch1001: 0001-matplotlibrc-path-search-fix.patch Patch1002: 0002-TST-Increase-tolerances-for-FreeType-2.7.1.patch Patch1686: 0003-TST-Increase-some-tolerances-for-32-bit-systems.patch @@ -381,7 +382,13 @@ Requires: python3-tkinter %prep %autosetup -n matplotlib-%{version}%{?rctag} -N %patch1001 -p1 +%if %{fedora} > 26 +# Updated test images for FreeType 2.8. +gzip -dc %SOURCE1000 | tar xvf - --transform='s~^([^/]+)/~lib/\1/tests/baseline_images/~' +%else +# Small tweaks to tolerances for FreeType 2.7.1. %patch1002 -p1 +%endif %ifarch i686 # Switch to full autosetup when 32-bit systems are dropped. %patch1686 -p1 diff --git a/sources b/sources index 504a6c7..33a00ad 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (matplotlib-2.1.2.tar.gz) = fd93901b12a7f47cdc36d38d18de43b0cc8623dcd5597cfc1177e63cf90b0c87f718135176e2c077cd1316566a394e09e8e8e9db2ce128ee7f03021cac45543e +SHA512 (matplotlib-2.1.2-with-freetype-2.8.tar.gz) = abe03cf24d653ecaefcda56b60631b7200d7e2d5078801f61270d5329da8e6767773a1347a1c9c7b457a0a12427c345d70e700c156dedab27275875f5bcbc439
commit 0326098544a9263cb2e854d4806425722f2e9990 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Sun Jan 21 04:05:53 2018 -0500
Update to latest release.
diff --git a/.gitignore b/.gitignore index 833972c..003fc18 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-2.1.0rc1.tar.gz /matplotlib-2.1.0.tar.gz /matplotlib-2.1.1.tar.gz +/matplotlib-2.1.2.tar.gz diff --git a/0001-Use-fuzzy-comparison-for-stroke-join-determination.patch b/0001-Use-fuzzy-comparison-for-stroke-join-determination.patch deleted file mode 100644 index 1bc68bc..0000000 --- a/0001-Use-fuzzy-comparison-for-stroke-join-determination.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8dba6d00d8ead090f6161854f9e64d28ea18e663 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Sun, 15 Oct 2017 17:16:11 -0400 -Subject: [PATCH 1/4] Use fuzzy comparison for stroke join determination. - -This sometimes produces something just slightly different from 0 -compared to x86(_64). - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - extern/agg24-svn/include/agg_math_stroke.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/extern/agg24-svn/include/agg_math_stroke.h b/extern/agg24-svn/include/agg_math_stroke.h -index 4806dcd4b..4871d96ce 100644 ---- a/extern/agg24-svn/include/agg_math_stroke.h -+++ b/extern/agg24-svn/include/agg_math_stroke.h -@@ -391,7 +391,8 @@ namespace agg - vc.remove_all(); - - double cp = cross_product(v0.x, v0.y, v1.x, v1.y, v2.x, v2.y); -- if(cp != 0 && (cp > 0) == (m_width > 0)) -+ if ((cp > agg::vertex_dist_epsilon && m_width > 0) || -+ (cp < -agg::vertex_dist_epsilon && m_width < 0)) - { - // Inner join - //--------------- --- -2.13.6 - diff --git a/0001-matplotlibrc-path-search-fix.patch b/0001-matplotlibrc-path-search-fix.patch new file mode 100644 index 0000000..d3d4acb --- /dev/null +++ b/0001-matplotlibrc-path-search-fix.patch @@ -0,0 +1,39 @@ +From 69b627b84fa8081748d93d180deb2218b99270a4 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/3] matplotlibrc path search fix + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/__init__.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py +index 3ba486af1..b8caf27dc 100644 +--- a/lib/matplotlib/__init__.py ++++ b/lib/matplotlib/__init__.py +@@ -635,9 +635,12 @@ def _get_data_path(): + + _file = _decode_filesystem_path(__file__) + path = os.sep.join([os.path.dirname(_file), 'mpl-data']) ++ path = '/usr/share/matplotlib/mpl-data' + if os.path.isdir(path): + return path + ++ raise RuntimeError('Could not find the matplotlib data files') ++ + # setuptools' namespace_packages may highjack this init file + # so need to try something known to be in matplotlib, not basemap + import matplotlib.afm +@@ -731,7 +734,7 @@ def matplotlib_fname(): + yield matplotlibrc + yield os.path.join(matplotlibrc, 'matplotlibrc') + yield os.path.join(_get_configdir(), 'matplotlibrc') +- yield os.path.join(get_data_path(), 'matplotlibrc') ++ yield '/etc/matplotlibrc' + + for fname in gen_candidates(): + if os.path.isfile(fname): +-- +2.14.3 + diff --git a/0002-TST-Increase-tolerances-for-FreeType-2.7.1.patch b/0002-TST-Increase-tolerances-for-FreeType-2.7.1.patch new file mode 100644 index 0000000..754498a --- /dev/null +++ b/0002-TST-Increase-tolerances-for-FreeType-2.7.1.patch @@ -0,0 +1,142 @@ +From 593459d2a9223d69180fed80622f4e7e2cf96239 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Sun, 15 Oct 2017 17:35:47 -0400 +Subject: [PATCH 2/3] TST: Increase tolerances for FreeType 2.7.1. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/testing/decorators.py | 2 +- + lib/matplotlib/tests/test_axes.py | 5 ++--- + lib/matplotlib/tests/test_mathtext.py | 4 ++-- + lib/matplotlib/tests/test_patches.py | 3 +-- + lib/matplotlib/tests/test_patheffects.py | 2 +- + lib/matplotlib/tests/test_streamplot.py | 6 ++---- + lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- + 7 files changed, 10 insertions(+), 14 deletions(-) + +diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py +index c5e069b31..ebd68cfab 100644 +--- a/lib/matplotlib/testing/decorators.py ++++ b/lib/matplotlib/testing/decorators.py +@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, + return decorator + + +-def image_comparison(baseline_images, extensions=None, tol=0, ++def image_comparison(baseline_images, extensions=None, tol=0.1, + freetype_version=None, remove_text=False, + savefig_kwarg=None, + # Default of mpl_test_settings fixture and cleanup too. +diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py +index 7164d0cec..6492cc140 100644 +--- a/lib/matplotlib/tests/test_axes.py ++++ b/lib/matplotlib/tests/test_axes.py +@@ -671,8 +671,7 @@ def test_polar_rlabel_position(): + ax.tick_params(rotation='auto') + + +-@image_comparison(baseline_images=['polar_theta_wedge'], style='default', +- tol=0.01 if six.PY2 else 0) ++@image_comparison(baseline_images=['polar_theta_wedge'], style='default') + def test_polar_theta_limits(): + r = np.arange(0, 3.0, 0.01) + theta = 2*np.pi*r +@@ -4679,7 +4678,7 @@ def test_rc_spines(): + + + @image_comparison(baseline_images=['rc_grid'], extensions=['png'], +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.2) + def test_rc_grid(): + fig = plt.figure() + rc_dict0 = { +diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py +index 7ef77ce6a..b8c9c9e8b 100644 +--- a/lib/matplotlib/tests/test_mathtext.py ++++ b/lib/matplotlib/tests/test_mathtext.py +@@ -174,7 +174,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): + matplotlib.rcParams['mathtext.fontset'] = fontset + fig = plt.figure(figsize=(5.25, 0.75)) +@@ -188,7 +188,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): + 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 20ffa6b08..81737c84d 100644 +--- a/lib/matplotlib/tests/test_patches.py ++++ b/lib/matplotlib/tests/test_patches.py +@@ -267,9 +267,8 @@ def test_wedge_movement(): + assert getattr(w, attr) == new_v + + +-# png needs tol>=0.06, pdf tol>=1.617 + @image_comparison(baseline_images=['wedge_range'], +- remove_text=True, tol=1.65 if on_win else 0) ++ remove_text=True) + def test_wedge_range(): + ax = plt.axes() + +diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py +index 9b8a4379c..b46d8cec4 100644 +--- a/lib/matplotlib/tests/test_patheffects.py ++++ b/lib/matplotlib/tests/test_patheffects.py +@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): + assert pe._offset == (4, 5) + + +-@image_comparison(baseline_images=['collection'], tol=0.015) ++@image_comparison(baseline_images=['collection']) + 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_streamplot.py b/lib/matplotlib/tests/test_streamplot.py +index 1d7e09fef..b62ca2198 100644 +--- a/lib/matplotlib/tests/test_streamplot.py ++++ b/lib/matplotlib/tests/test_streamplot.py +@@ -40,8 +40,7 @@ def test_startpoints(): + plt.plot(start_x, start_y, 'ok') + + +-@image_comparison(baseline_images=['streamplot_colormap'], +- tol=.02) ++@image_comparison(baseline_images=['streamplot_colormap']) + def test_colormap(): + X, Y, U, V = velocity_field() + plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, +@@ -59,8 +58,7 @@ def test_linewidth(): + linewidth=lw) + + +-@image_comparison(baseline_images=['streamplot_masks_and_nans'], +- tol=0.04 if on_win else 0) ++@image_comparison(baseline_images=['streamplot_masks_and_nans']) + def test_masks_and_nans(): + X, Y, U, V = velocity_field() + mask = np.zeros(U.shape, dtype=bool) +diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py +index c157433c7..c13f3be2f 100644 +--- a/lib/mpl_toolkits/tests/test_mplot3d.py ++++ b/lib/mpl_toolkits/tests/test_mplot3d.py +@@ -658,7 +658,7 @@ class TestVoxels(object): + @image_comparison( + baseline_images=['voxels-xyz'], + extensions=['png'], +- tol=0.01 ++ tol=0.02 + ) + def test_xyz(self): + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) +-- +2.14.3 + diff --git a/0002-matplotlibrc-path-search-fix.patch b/0002-matplotlibrc-path-search-fix.patch deleted file mode 100644 index 2193a1b..0000000 --- a/0002-matplotlibrc-path-search-fix.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 22121f236ebdc8f8539c2c0901073dce80f4edd8 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 2/4] matplotlibrc path search fix - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/__init__.py | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py -index 3ba486af1..b8caf27dc 100644 ---- a/lib/matplotlib/__init__.py -+++ b/lib/matplotlib/__init__.py -@@ -635,9 +635,12 @@ def _get_data_path(): - - _file = _decode_filesystem_path(__file__) - path = os.sep.join([os.path.dirname(_file), 'mpl-data']) -+ path = '/usr/share/matplotlib/mpl-data' - if os.path.isdir(path): - return path - -+ raise RuntimeError('Could not find the matplotlib data files') -+ - # setuptools' namespace_packages may highjack this init file - # so need to try something known to be in matplotlib, not basemap - import matplotlib.afm -@@ -731,7 +734,7 @@ def matplotlib_fname(): - yield matplotlibrc - yield os.path.join(matplotlibrc, 'matplotlibrc') - yield os.path.join(_get_configdir(), 'matplotlibrc') -- yield os.path.join(get_data_path(), 'matplotlibrc') -+ yield '/etc/matplotlibrc' - - for fname in gen_candidates(): - if os.path.isfile(fname): --- -2.13.6 - diff --git a/0003-TST-Increase-some-tolerances-for-32-bit-systems.patch b/0003-TST-Increase-some-tolerances-for-32-bit-systems.patch new file mode 100644 index 0000000..d0a02ec --- /dev/null +++ b/0003-TST-Increase-some-tolerances-for-32-bit-systems.patch @@ -0,0 +1,388 @@ +From 61eac9a522a7907db3fe01680d249789d1cff710 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Sun, 15 Oct 2017 21:11:26 -0400 +Subject: [PATCH 3/3] TST: Increase some tolerances for 32-bit systems. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/tests/test_artist.py | 3 ++- + lib/matplotlib/tests/test_axes.py | 42 ++++++++++++++++---------------- + lib/matplotlib/tests/test_collections.py | 2 +- + lib/matplotlib/tests/test_colorbar.py | 11 +++++---- + lib/matplotlib/tests/test_contour.py | 6 ++--- + lib/matplotlib/tests/test_image.py | 2 +- + lib/matplotlib/tests/test_pickle.py | 2 +- + lib/matplotlib/tests/test_quiver.py | 2 +- + lib/matplotlib/tests/test_transforms.py | 2 +- + lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- + 10 files changed, 38 insertions(+), 36 deletions(-) + +diff --git a/lib/matplotlib/tests/test_artist.py b/lib/matplotlib/tests/test_artist.py +index 786d50903..105714ef4 100644 +--- a/lib/matplotlib/tests/test_artist.py ++++ b/lib/matplotlib/tests/test_artist.py +@@ -95,7 +95,8 @@ def test_collection_transform_of_none(): + assert isinstance(c._transOffset, mtransforms.IdentityTransform) + + +-@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True) ++@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True, ++ tol=0.28) + def test_clipping(): + exterior = mpath.Path.unit_rectangle().deepcopy() + exterior.vertices *= 4 +diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py +index 6492cc140..8609d8c31 100644 +--- a/lib/matplotlib/tests/test_axes.py ++++ b/lib/matplotlib/tests/test_axes.py +@@ -483,7 +483,7 @@ def test_single_point(): + plt.plot('b', 'b', 'o', data=data) + + +-@image_comparison(baseline_images=['single_date']) ++@image_comparison(baseline_images=['single_date'], tol=1.97) + def test_single_date(): + time1 = [721964.0] + data1 = [-65.54] +@@ -971,7 +971,7 @@ def test_fill_between_interpolate(): + + + @image_comparison(baseline_images=['fill_between_interpolate_decreasing'], +- style='mpl20', remove_text=True) ++ style='mpl20', remove_text=True, tol=0.78) + def test_fill_between_interpolate_decreasing(): + p = np.array([724.3, 700, 655]) + t = np.array([9.4, 7, 2.2]) +@@ -1085,7 +1085,7 @@ def test_pcolormesh(): + + + @image_comparison(baseline_images=['pcolormesh_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.19) + def test_pcolormesh_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -1111,7 +1111,7 @@ def test_pcolormesh_datetime_axis(): + + + @image_comparison(baseline_images=['pcolor_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.19) + def test_pcolor_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -1167,7 +1167,7 @@ def test_canonical(): + + + @image_comparison(baseline_images=['arc_angles'], remove_text=True, +- style='default', extensions=['png']) ++ style='default', extensions=['png'], tol=0.17) + def test_arc_angles(): + from matplotlib import patches + # Ellipse parameters +@@ -2433,7 +2433,7 @@ def test_boxplot_mod_artist_after_plotting(): + + @image_comparison(baseline_images=['violinplot_vert_baseline', + 'violinplot_vert_baseline'], +- extensions=['png']) ++ extensions=['png'], tol=0.24) + def test_vert_violinplot_baseline(): + # First 9 digits of frac(sqrt(2)) + np.random.seed(414213562) +@@ -2451,7 +2451,7 @@ def test_vert_violinplot_baseline(): + + + @image_comparison(baseline_images=['violinplot_vert_showmeans'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showmeans(): + ax = plt.axes() + # First 9 digits of frac(sqrt(3)) +@@ -2462,7 +2462,7 @@ def test_vert_violinplot_showmeans(): + + + @image_comparison(baseline_images=['violinplot_vert_showextrema'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showextrema(): + ax = plt.axes() + # First 9 digits of frac(sqrt(5)) +@@ -2473,7 +2473,7 @@ def test_vert_violinplot_showextrema(): + + + @image_comparison(baseline_images=['violinplot_vert_showmedians'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showmedians(): + ax = plt.axes() + # First 9 digits of frac(sqrt(7)) +@@ -2484,7 +2484,7 @@ def test_vert_violinplot_showmedians(): + + + @image_comparison(baseline_images=['violinplot_vert_showall'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_vert_violinplot_showall(): + ax = plt.axes() + # First 9 digits of frac(sqrt(11)) +@@ -2495,7 +2495,7 @@ def test_vert_violinplot_showall(): + + + @image_comparison(baseline_images=['violinplot_vert_custompoints_10'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_vert_violinplot_custompoints_10(): + ax = plt.axes() + # First 9 digits of frac(sqrt(13)) +@@ -2506,7 +2506,7 @@ def test_vert_violinplot_custompoints_10(): + + + @image_comparison(baseline_images=['violinplot_vert_custompoints_200'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_vert_violinplot_custompoints_200(): + ax = plt.axes() + # First 9 digits of frac(sqrt(17)) +@@ -2517,7 +2517,7 @@ def test_vert_violinplot_custompoints_200(): + + + @image_comparison(baseline_images=['violinplot_horiz_baseline'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_horiz_violinplot_baseline(): + ax = plt.axes() + # First 9 digits of frac(sqrt(19)) +@@ -2528,7 +2528,7 @@ def test_horiz_violinplot_baseline(): + + + @image_comparison(baseline_images=['violinplot_horiz_showmedians'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_horiz_violinplot_showmedians(): + ax = plt.axes() + # First 9 digits of frac(sqrt(23)) +@@ -2539,7 +2539,7 @@ def test_horiz_violinplot_showmedians(): + + + @image_comparison(baseline_images=['violinplot_horiz_showmeans'], +- extensions=['png']) ++ extensions=['png'], tol=0.25) + def test_horiz_violinplot_showmeans(): + ax = plt.axes() + # First 9 digits of frac(sqrt(29)) +@@ -2550,7 +2550,7 @@ def test_horiz_violinplot_showmeans(): + + + @image_comparison(baseline_images=['violinplot_horiz_showextrema'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_horiz_violinplot_showextrema(): + ax = plt.axes() + # First 9 digits of frac(sqrt(31)) +@@ -2561,7 +2561,7 @@ def test_horiz_violinplot_showextrema(): + + + @image_comparison(baseline_images=['violinplot_horiz_showall'], +- extensions=['png']) ++ extensions=['png'], tol=0.19) + def test_horiz_violinplot_showall(): + ax = plt.axes() + # First 9 digits of frac(sqrt(37)) +@@ -2572,7 +2572,7 @@ def test_horiz_violinplot_showall(): + + + @image_comparison(baseline_images=['violinplot_horiz_custompoints_10'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_horiz_violinplot_custompoints_10(): + ax = plt.axes() + # First 9 digits of frac(sqrt(41)) +@@ -2583,7 +2583,7 @@ def test_horiz_violinplot_custompoints_10(): + + + @image_comparison(baseline_images=['violinplot_horiz_custompoints_200'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_horiz_violinplot_custompoints_200(): + ax = plt.axes() + # First 9 digits of frac(sqrt(43)) +@@ -3909,7 +3909,7 @@ def test_psd_noise(): + + + @image_comparison(baseline_images=['csd_freqs'], remove_text=True, +- extensions=['png']) ++ extensions=['png'], tol=0.21) + def test_csd_freqs(): + '''test axes.csd with sinusoidal stimuli''' + n = 10000 +@@ -5153,7 +5153,7 @@ def test_date_timezone_y(): + + + @image_comparison(baseline_images=['date_timezone_x_and_y'], +- extensions=['png']) ++ extensions=['png'], tol=3.05) + def test_date_timezone_x_and_y(): + # Tests issue 5575 + time_index = [pytz.timezone('UTC').localize(datetime.datetime( +diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py +index c27aeb11a..9d39a3e91 100644 +--- a/lib/matplotlib/tests/test_collections.py ++++ b/lib/matplotlib/tests/test_collections.py +@@ -468,7 +468,7 @@ def test_EllipseCollection(): + + + @image_comparison(baseline_images=['polycollection_close'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.45) + def test_polycollection_close(): + from mpl_toolkits.mplot3d import Axes3D + +diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py +index b75ba7e9f..cfbb16444 100644 +--- a/lib/matplotlib/tests/test_colorbar.py ++++ b/lib/matplotlib/tests/test_colorbar.py +@@ -96,7 +96,7 @@ def _colorbar_extension_length(spacing): + @image_comparison( + baseline_images=['colorbar_extensions_shape_uniform', + 'colorbar_extensions_shape_proportional'], +- extensions=['png']) ++ extensions=['png'], tol=0.16) + def test_colorbar_extension_shape(): + '''Test rectangular colorbar extensions.''' + # Create figures for uniform and proportionally spaced colorbars. +@@ -106,7 +106,7 @@ def test_colorbar_extension_shape(): + + @image_comparison(baseline_images=['colorbar_extensions_uniform', + 'colorbar_extensions_proportional'], +- extensions=['png']) ++ extensions=['png'], tol=0.25) + def test_colorbar_extension_length(): + '''Test variable length colorbar extensions.''' + # Create figures for uniform and proportionally spaced colorbars. +@@ -120,7 +120,7 @@ def test_colorbar_extension_length(): + 'cbar_sharing', + ], + extensions=['png'], remove_text=True, +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.17) + def test_colorbar_positioning(): + data = np.arange(1200).reshape(30, 40) + levels = [0, 200, 400, 600, 800, 1000, 1200] +@@ -174,7 +174,7 @@ def test_colorbar_positioning(): + + @image_comparison(baseline_images=['cbar_with_subplots_adjust'], + extensions=['png'], remove_text=True, +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.17) + def test_gridspec_make_colorbar(): + plt.figure() + data = np.arange(1200).reshape(30, 40) +@@ -234,7 +234,8 @@ def test_colorbarbase(): + + @image_comparison( + baseline_images=['colorbar_closed_patch'], +- remove_text=True) ++ remove_text=True, ++ tol=0.22) + def test_colorbar_closed_patch(): + fig = plt.figure(figsize=(8, 6)) + ax1 = fig.add_axes([0.05, 0.85, 0.9, 0.1]) +diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py +index 16ac9e865..29c1b26f2 100644 +--- a/lib/matplotlib/tests/test_contour.py ++++ b/lib/matplotlib/tests/test_contour.py +@@ -228,7 +228,7 @@ def test_given_colors_levels_and_extends(): + + + @image_comparison(baseline_images=['contour_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.18) + def test_contour_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -254,7 +254,7 @@ def test_contour_datetime_axis(): + + + @image_comparison(baseline_images=['contour_test_label_transforms'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.74) + def test_labels(): + # Adapted from pylab_examples example code: contour_demo.py + # see issues #2475, #2843, and #2818 for explanation +@@ -283,7 +283,7 @@ def test_labels(): + + @image_comparison(baseline_images=['contour_corner_mask_False', + 'contour_corner_mask_True'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.19) + def test_corner_mask(): + n = 60 + mask_level = 0.95 +diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py +index fd6430d56..e9bf1b1db 100644 +--- a/lib/matplotlib/tests/test_image.py ++++ b/lib/matplotlib/tests/test_image.py +@@ -754,7 +754,7 @@ def test_imshow_endianess(): + + + @image_comparison(baseline_images=['imshow_masked_interpolation'], +- remove_text=True, style='mpl20') ++ remove_text=True, style='mpl20', tol=0.25) + def test_imshow_masked_interpolation(): + + cm = copy(plt.get_cmap('viridis')) +diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py +index bd6ac6862..512f07948 100644 +--- a/lib/matplotlib/tests/test_pickle.py ++++ b/lib/matplotlib/tests/test_pickle.py +@@ -43,7 +43,7 @@ def test_simple(): + + @image_comparison(baseline_images=['multi_pickle'], + extensions=['png'], remove_text=True, +- style='mpl20') ++ style='mpl20', tol=0.11) + def test_complete(): + fig = plt.figure('Figure with a label?', figsize=(10, 6)) + +diff --git a/lib/matplotlib/tests/test_quiver.py b/lib/matplotlib/tests/test_quiver.py +index a0e1e674f..ede6bfc64 100644 +--- a/lib/matplotlib/tests/test_quiver.py ++++ b/lib/matplotlib/tests/test_quiver.py +@@ -131,7 +131,7 @@ def test_quiver_key_pivot(): + + + @image_comparison(baseline_images=['barbs_test_image'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.11) + def test_barbs(): + x = np.linspace(-5, 5, 5) + X, Y = np.meshgrid(x, x) +diff --git a/lib/matplotlib/tests/test_transforms.py b/lib/matplotlib/tests/test_transforms.py +index 8f19a50f3..fa4a9aa18 100644 +--- a/lib/matplotlib/tests/test_transforms.py ++++ b/lib/matplotlib/tests/test_transforms.py +@@ -75,7 +75,7 @@ def test_external_transform_api(): + + + @image_comparison(baseline_images=['pre_transform_data'], +- tol=0.08) ++ tol=0.155) + def test_pre_transform_plotting(): + # a catch-all for as many as possible plot layouts which handle + # pre-transforming the data NOTE: The axis range is important in this +diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py +index c13f3be2f..81a28aadb 100644 +--- a/lib/mpl_toolkits/tests/test_mplot3d.py ++++ b/lib/mpl_toolkits/tests/test_mplot3d.py +@@ -198,7 +198,7 @@ def test_text3d(): + ax.set_zlabel('Z axis') + + +-@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.03) ++@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.05) + def test_trisurf3d(): + n_angles = 36 + n_radii = 8 +-- +2.14.3 + diff --git a/0003-TST-Increase-tolerances-for-FreeType-2.7.1.patch b/0003-TST-Increase-tolerances-for-FreeType-2.7.1.patch deleted file mode 100644 index ad9c914..0000000 --- a/0003-TST-Increase-tolerances-for-FreeType-2.7.1.patch +++ /dev/null @@ -1,128 +0,0 @@ -From cfdc835923407810bd087f60332cdc8cdcb23f05 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Sun, 15 Oct 2017 17:35:47 -0400 -Subject: [PATCH 3/4] TST: Increase tolerances for FreeType 2.7.1. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/testing/decorators.py | 2 +- - lib/matplotlib/tests/test_axes.py | 4 ++-- - lib/matplotlib/tests/test_mathtext.py | 4 ++-- - lib/matplotlib/tests/test_patches.py | 2 +- - lib/matplotlib/tests/test_patheffects.py | 2 +- - lib/matplotlib/tests/test_streamplot.py | 2 +- - lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- - 7 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py -index c5e069b31..ebd68cfab 100644 ---- a/lib/matplotlib/testing/decorators.py -+++ b/lib/matplotlib/testing/decorators.py -@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, - return decorator - - --def image_comparison(baseline_images, extensions=None, tol=0, -+def image_comparison(baseline_images, extensions=None, tol=0.1, - freetype_version=None, remove_text=False, - savefig_kwarg=None, - # Default of mpl_test_settings fixture and cleanup too. -diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index 33be78004..c73e55802 100644 ---- a/lib/matplotlib/tests/test_axes.py -+++ b/lib/matplotlib/tests/test_axes.py -@@ -672,7 +672,7 @@ def test_polar_rlabel_position(): - - - @image_comparison(baseline_images=['polar_theta_wedge'], style='default', -- tol=0.01 if six.PY2 else 0) -+ tol=0.1) - def test_polar_theta_limits(): - r = np.arange(0, 3.0, 0.01) - theta = 2*np.pi*r -@@ -4679,7 +4679,7 @@ def test_rc_spines(): - - - @image_comparison(baseline_images=['rc_grid'], extensions=['png'], -- savefig_kwarg={'dpi': 40}) -+ savefig_kwarg={'dpi': 40}, tol=0.2) - def test_rc_grid(): - fig = plt.figure() - rc_dict0 = { -diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py -index 7ef77ce6a..b8c9c9e8b 100644 ---- a/lib/matplotlib/tests/test_mathtext.py -+++ b/lib/matplotlib/tests/test_mathtext.py -@@ -174,7 +174,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): - matplotlib.rcParams['mathtext.fontset'] = fontset - fig = plt.figure(figsize=(5.25, 0.75)) -@@ -188,7 +188,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): - 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 20ffa6b08..9f5088f0f 100644 ---- a/lib/matplotlib/tests/test_patches.py -+++ b/lib/matplotlib/tests/test_patches.py -@@ -269,7 +269,7 @@ def test_wedge_movement(): - - # png needs tol>=0.06, pdf tol>=1.617 - @image_comparison(baseline_images=['wedge_range'], -- remove_text=True, tol=1.65 if on_win else 0) -+ remove_text=True, tol=0.1) - def test_wedge_range(): - ax = plt.axes() - -diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py -index 9b8a4379c..ebbcd6529 100644 ---- a/lib/matplotlib/tests/test_patheffects.py -+++ b/lib/matplotlib/tests/test_patheffects.py -@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): - assert pe._offset == (4, 5) - - --@image_comparison(baseline_images=['collection'], tol=0.015) -+@image_comparison(baseline_images=['collection'], tol=0.1) - 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_streamplot.py b/lib/matplotlib/tests/test_streamplot.py -index ac997b2b2..cd7233e2e 100644 ---- a/lib/matplotlib/tests/test_streamplot.py -+++ b/lib/matplotlib/tests/test_streamplot.py -@@ -36,7 +36,7 @@ def test_startpoints(): - - - @image_comparison(baseline_images=['streamplot_colormap'], -- tol=0.002) -+ tol=0.1) - def test_colormap(): - X, Y, U, V = velocity_field() - plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, -diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py -index c157433c7..c13f3be2f 100644 ---- a/lib/mpl_toolkits/tests/test_mplot3d.py -+++ b/lib/mpl_toolkits/tests/test_mplot3d.py -@@ -658,7 +658,7 @@ class TestVoxels(object): - @image_comparison( - baseline_images=['voxels-xyz'], - extensions=['png'], -- tol=0.01 -+ tol=0.02 - ) - def test_xyz(self): - fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) --- -2.13.6 - diff --git a/0004-TST-Increase-some-tolerances-for-32-bit-systems.patch b/0004-TST-Increase-some-tolerances-for-32-bit-systems.patch deleted file mode 100644 index 520122d..0000000 --- a/0004-TST-Increase-some-tolerances-for-32-bit-systems.patch +++ /dev/null @@ -1,388 +0,0 @@ -From 4fbf2473e97a259494117a408a5efa377fa5a947 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Sun, 15 Oct 2017 21:11:26 -0400 -Subject: [PATCH 4/4] TST: Increase some tolerances for 32-bit systems. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/tests/test_artist.py | 3 ++- - lib/matplotlib/tests/test_axes.py | 42 ++++++++++++++++---------------- - lib/matplotlib/tests/test_collections.py | 2 +- - lib/matplotlib/tests/test_colorbar.py | 11 +++++---- - lib/matplotlib/tests/test_contour.py | 6 ++--- - lib/matplotlib/tests/test_image.py | 2 +- - lib/matplotlib/tests/test_pickle.py | 2 +- - lib/matplotlib/tests/test_quiver.py | 2 +- - lib/matplotlib/tests/test_transforms.py | 2 +- - lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- - 10 files changed, 38 insertions(+), 36 deletions(-) - -diff --git a/lib/matplotlib/tests/test_artist.py b/lib/matplotlib/tests/test_artist.py -index 786d50903..105714ef4 100644 ---- a/lib/matplotlib/tests/test_artist.py -+++ b/lib/matplotlib/tests/test_artist.py -@@ -95,7 +95,8 @@ def test_collection_transform_of_none(): - assert isinstance(c._transOffset, mtransforms.IdentityTransform) - - --@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True) -+@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True, -+ tol=0.28) - def test_clipping(): - exterior = mpath.Path.unit_rectangle().deepcopy() - exterior.vertices *= 4 -diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index c73e55802..90db6dfda 100644 ---- a/lib/matplotlib/tests/test_axes.py -+++ b/lib/matplotlib/tests/test_axes.py -@@ -483,7 +483,7 @@ def test_single_point(): - plt.plot('b', 'b', 'o', data=data) - - --@image_comparison(baseline_images=['single_date']) -+@image_comparison(baseline_images=['single_date'], tol=1.97) - def test_single_date(): - time1 = [721964.0] - data1 = [-65.54] -@@ -972,7 +972,7 @@ def test_fill_between_interpolate(): - - - @image_comparison(baseline_images=['fill_between_interpolate_decreasing'], -- style='mpl20', remove_text=True) -+ style='mpl20', remove_text=True, tol=0.78) - def test_fill_between_interpolate_decreasing(): - p = np.array([724.3, 700, 655]) - t = np.array([9.4, 7, 2.2]) -@@ -1086,7 +1086,7 @@ def test_pcolormesh(): - - - @image_comparison(baseline_images=['pcolormesh_datetime_axis'], -- extensions=['png'], remove_text=False) -+ extensions=['png'], remove_text=False, tol=0.19) - def test_pcolormesh_datetime_axis(): - fig = plt.figure() - fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -1112,7 +1112,7 @@ def test_pcolormesh_datetime_axis(): - - - @image_comparison(baseline_images=['pcolor_datetime_axis'], -- extensions=['png'], remove_text=False) -+ extensions=['png'], remove_text=False, tol=0.19) - def test_pcolor_datetime_axis(): - fig = plt.figure() - fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -1168,7 +1168,7 @@ def test_canonical(): - - - @image_comparison(baseline_images=['arc_angles'], remove_text=True, -- style='default', extensions=['png']) -+ style='default', extensions=['png'], tol=0.17) - def test_arc_angles(): - from matplotlib import patches - # Ellipse parameters -@@ -2434,7 +2434,7 @@ def test_boxplot_mod_artist_after_plotting(): - - @image_comparison(baseline_images=['violinplot_vert_baseline', - 'violinplot_vert_baseline'], -- extensions=['png']) -+ extensions=['png'], tol=0.24) - def test_vert_violinplot_baseline(): - # First 9 digits of frac(sqrt(2)) - np.random.seed(414213562) -@@ -2452,7 +2452,7 @@ def test_vert_violinplot_baseline(): - - - @image_comparison(baseline_images=['violinplot_vert_showmeans'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_vert_violinplot_showmeans(): - ax = plt.axes() - # First 9 digits of frac(sqrt(3)) -@@ -2463,7 +2463,7 @@ def test_vert_violinplot_showmeans(): - - - @image_comparison(baseline_images=['violinplot_vert_showextrema'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_vert_violinplot_showextrema(): - ax = plt.axes() - # First 9 digits of frac(sqrt(5)) -@@ -2474,7 +2474,7 @@ def test_vert_violinplot_showextrema(): - - - @image_comparison(baseline_images=['violinplot_vert_showmedians'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_vert_violinplot_showmedians(): - ax = plt.axes() - # First 9 digits of frac(sqrt(7)) -@@ -2485,7 +2485,7 @@ def test_vert_violinplot_showmedians(): - - - @image_comparison(baseline_images=['violinplot_vert_showall'], -- extensions=['png']) -+ extensions=['png'], tol=0.2) - def test_vert_violinplot_showall(): - ax = plt.axes() - # First 9 digits of frac(sqrt(11)) -@@ -2496,7 +2496,7 @@ def test_vert_violinplot_showall(): - - - @image_comparison(baseline_images=['violinplot_vert_custompoints_10'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_vert_violinplot_custompoints_10(): - ax = plt.axes() - # First 9 digits of frac(sqrt(13)) -@@ -2507,7 +2507,7 @@ def test_vert_violinplot_custompoints_10(): - - - @image_comparison(baseline_images=['violinplot_vert_custompoints_200'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_vert_violinplot_custompoints_200(): - ax = plt.axes() - # First 9 digits of frac(sqrt(17)) -@@ -2518,7 +2518,7 @@ def test_vert_violinplot_custompoints_200(): - - - @image_comparison(baseline_images=['violinplot_horiz_baseline'], -- extensions=['png']) -+ extensions=['png'], tol=0.2) - def test_horiz_violinplot_baseline(): - ax = plt.axes() - # First 9 digits of frac(sqrt(19)) -@@ -2529,7 +2529,7 @@ def test_horiz_violinplot_baseline(): - - - @image_comparison(baseline_images=['violinplot_horiz_showmedians'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_horiz_violinplot_showmedians(): - ax = plt.axes() - # First 9 digits of frac(sqrt(23)) -@@ -2540,7 +2540,7 @@ def test_horiz_violinplot_showmedians(): - - - @image_comparison(baseline_images=['violinplot_horiz_showmeans'], -- extensions=['png']) -+ extensions=['png'], tol=0.25) - def test_horiz_violinplot_showmeans(): - ax = plt.axes() - # First 9 digits of frac(sqrt(29)) -@@ -2551,7 +2551,7 @@ def test_horiz_violinplot_showmeans(): - - - @image_comparison(baseline_images=['violinplot_horiz_showextrema'], -- extensions=['png']) -+ extensions=['png'], tol=0.2) - def test_horiz_violinplot_showextrema(): - ax = plt.axes() - # First 9 digits of frac(sqrt(31)) -@@ -2562,7 +2562,7 @@ def test_horiz_violinplot_showextrema(): - - - @image_comparison(baseline_images=['violinplot_horiz_showall'], -- extensions=['png']) -+ extensions=['png'], tol=0.19) - def test_horiz_violinplot_showall(): - ax = plt.axes() - # First 9 digits of frac(sqrt(37)) -@@ -2573,7 +2573,7 @@ def test_horiz_violinplot_showall(): - - - @image_comparison(baseline_images=['violinplot_horiz_custompoints_10'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_horiz_violinplot_custompoints_10(): - ax = plt.axes() - # First 9 digits of frac(sqrt(41)) -@@ -2584,7 +2584,7 @@ def test_horiz_violinplot_custompoints_10(): - - - @image_comparison(baseline_images=['violinplot_horiz_custompoints_200'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_horiz_violinplot_custompoints_200(): - ax = plt.axes() - # First 9 digits of frac(sqrt(43)) -@@ -3910,7 +3910,7 @@ def test_psd_noise(): - - - @image_comparison(baseline_images=['csd_freqs'], remove_text=True, -- extensions=['png']) -+ extensions=['png'], tol=0.21) - def test_csd_freqs(): - '''test axes.csd with sinusoidal stimuli''' - n = 10000 -@@ -5136,7 +5136,7 @@ def test_date_timezone_y(): - - - @image_comparison(baseline_images=['date_timezone_x_and_y'], -- extensions=['png']) -+ extensions=['png'], tol=3.05) - def test_date_timezone_x_and_y(): - # Tests issue 5575 - time_index = [pytz.timezone('UTC').localize(datetime.datetime( -diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py -index c27aeb11a..9d39a3e91 100644 ---- a/lib/matplotlib/tests/test_collections.py -+++ b/lib/matplotlib/tests/test_collections.py -@@ -468,7 +468,7 @@ def test_EllipseCollection(): - - - @image_comparison(baseline_images=['polycollection_close'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.45) - def test_polycollection_close(): - from mpl_toolkits.mplot3d import Axes3D - -diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py -index b75ba7e9f..cfbb16444 100644 ---- a/lib/matplotlib/tests/test_colorbar.py -+++ b/lib/matplotlib/tests/test_colorbar.py -@@ -96,7 +96,7 @@ def _colorbar_extension_length(spacing): - @image_comparison( - baseline_images=['colorbar_extensions_shape_uniform', - 'colorbar_extensions_shape_proportional'], -- extensions=['png']) -+ extensions=['png'], tol=0.16) - def test_colorbar_extension_shape(): - '''Test rectangular colorbar extensions.''' - # Create figures for uniform and proportionally spaced colorbars. -@@ -106,7 +106,7 @@ def test_colorbar_extension_shape(): - - @image_comparison(baseline_images=['colorbar_extensions_uniform', - 'colorbar_extensions_proportional'], -- extensions=['png']) -+ extensions=['png'], tol=0.25) - def test_colorbar_extension_length(): - '''Test variable length colorbar extensions.''' - # Create figures for uniform and proportionally spaced colorbars. -@@ -120,7 +120,7 @@ def test_colorbar_extension_length(): - 'cbar_sharing', - ], - extensions=['png'], remove_text=True, -- savefig_kwarg={'dpi': 40}) -+ savefig_kwarg={'dpi': 40}, tol=0.17) - def test_colorbar_positioning(): - data = np.arange(1200).reshape(30, 40) - levels = [0, 200, 400, 600, 800, 1000, 1200] -@@ -174,7 +174,7 @@ def test_colorbar_positioning(): - - @image_comparison(baseline_images=['cbar_with_subplots_adjust'], - extensions=['png'], remove_text=True, -- savefig_kwarg={'dpi': 40}) -+ savefig_kwarg={'dpi': 40}, tol=0.17) - def test_gridspec_make_colorbar(): - plt.figure() - data = np.arange(1200).reshape(30, 40) -@@ -234,7 +234,8 @@ def test_colorbarbase(): - - @image_comparison( - baseline_images=['colorbar_closed_patch'], -- remove_text=True) -+ remove_text=True, -+ tol=0.22) - def test_colorbar_closed_patch(): - fig = plt.figure(figsize=(8, 6)) - ax1 = fig.add_axes([0.05, 0.85, 0.9, 0.1]) -diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py -index 16ac9e865..29c1b26f2 100644 ---- a/lib/matplotlib/tests/test_contour.py -+++ b/lib/matplotlib/tests/test_contour.py -@@ -228,7 +228,7 @@ def test_given_colors_levels_and_extends(): - - - @image_comparison(baseline_images=['contour_datetime_axis'], -- extensions=['png'], remove_text=False) -+ extensions=['png'], remove_text=False, tol=0.18) - def test_contour_datetime_axis(): - fig = plt.figure() - fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -254,7 +254,7 @@ def test_contour_datetime_axis(): - - - @image_comparison(baseline_images=['contour_test_label_transforms'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.74) - def test_labels(): - # Adapted from pylab_examples example code: contour_demo.py - # see issues #2475, #2843, and #2818 for explanation -@@ -283,7 +283,7 @@ def test_labels(): - - @image_comparison(baseline_images=['contour_corner_mask_False', - 'contour_corner_mask_True'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.19) - def test_corner_mask(): - n = 60 - mask_level = 0.95 -diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py -index 0e423ab5f..8a46116fd 100644 ---- a/lib/matplotlib/tests/test_image.py -+++ b/lib/matplotlib/tests/test_image.py -@@ -754,7 +754,7 @@ def test_imshow_endianess(): - - - @image_comparison(baseline_images=['imshow_masked_interpolation'], -- remove_text=True, style='mpl20') -+ remove_text=True, style='mpl20', tol=0.25) - def test_imshow_masked_interpolation(): - - cm = copy(plt.get_cmap('viridis')) -diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py -index bd6ac6862..512f07948 100644 ---- a/lib/matplotlib/tests/test_pickle.py -+++ b/lib/matplotlib/tests/test_pickle.py -@@ -43,7 +43,7 @@ def test_simple(): - - @image_comparison(baseline_images=['multi_pickle'], - extensions=['png'], remove_text=True, -- style='mpl20') -+ style='mpl20', tol=0.11) - def test_complete(): - fig = plt.figure('Figure with a label?', figsize=(10, 6)) - -diff --git a/lib/matplotlib/tests/test_quiver.py b/lib/matplotlib/tests/test_quiver.py -index a0e1e674f..ede6bfc64 100644 ---- a/lib/matplotlib/tests/test_quiver.py -+++ b/lib/matplotlib/tests/test_quiver.py -@@ -131,7 +131,7 @@ def test_quiver_key_pivot(): - - - @image_comparison(baseline_images=['barbs_test_image'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.11) - def test_barbs(): - x = np.linspace(-5, 5, 5) - X, Y = np.meshgrid(x, x) -diff --git a/lib/matplotlib/tests/test_transforms.py b/lib/matplotlib/tests/test_transforms.py -index 8f19a50f3..2fbe41187 100644 ---- a/lib/matplotlib/tests/test_transforms.py -+++ b/lib/matplotlib/tests/test_transforms.py -@@ -75,7 +75,7 @@ def test_external_transform_api(): - - - @image_comparison(baseline_images=['pre_transform_data'], -- tol=0.08) -+ tol=0.15) - def test_pre_transform_plotting(): - # a catch-all for as many as possible plot layouts which handle - # pre-transforming the data NOTE: The axis range is important in this -diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py -index c13f3be2f..81a28aadb 100644 ---- a/lib/mpl_toolkits/tests/test_mplot3d.py -+++ b/lib/mpl_toolkits/tests/test_mplot3d.py -@@ -198,7 +198,7 @@ def test_text3d(): - ax.set_zlabel('Z axis') - - --@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.03) -+@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.05) - def test_trisurf3d(): - n_angles = 36 - n_radii = 8 --- -2.13.6 - diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 6f62755..c263f77 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -54,24 +54,20 @@ #global rctag rc1
Name: python-matplotlib -Version: 2.1.1 +Version: 2.1.2 Release: 1%{?rctag:.%{rctag}}%{?dist} Summary: Python 2D plotting library Group: Development/Libraries # qt4_editor backend is MIT License: Python and MIT URL: http://matplotlib.org -Source0: https://github.com/matplotlib/matplotlib/archive/v%%7Bversion%7D%%7B?rctag%7... +Source0: https://github.com/matplotlib/matplotlib/archive/v%%7Bversion%7D%%7B?rctag%7... Source1: setup.cfg
-# Depending on https://bugzilla.redhat.com/show_bug.cgi?id=1502499 -# this may or may not go upstream. -Patch0001: 0001-Use-fuzzy-comparison-for-stroke-join-determination.patch - # Fedora-specific patches. -Patch1001: 0002-matplotlibrc-path-search-fix.patch -Patch1002: 0003-TST-Increase-tolerances-for-FreeType-2.7.1.patch -Patch1686: 0004-TST-Increase-some-tolerances-for-32-bit-systems.patch +Patch1001: 0001-matplotlibrc-path-search-fix.patch +Patch1002: 0002-TST-Increase-tolerances-for-FreeType-2.7.1.patch +Patch1686: 0003-TST-Increase-some-tolerances-for-32-bit-systems.patch
BuildRequires: freetype-devel BuildRequires: libpng-devel @@ -384,7 +380,6 @@ Requires: python3-tkinter
%prep %autosetup -n matplotlib-%{version}%{?rctag} -N -%patch0001 -p1 %patch1001 -p1 %patch1002 -p1 %ifarch i686 @@ -606,6 +601,9 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} \ %endif
%changelog +* Sun Jan 21 2018 Elliott Sales de Andrade quantum.analyst@gmail.com - 2.1.2-1 +- Update to latest release + * Sun Dec 10 2017 Elliott Sales de Andrade quantum.analyst@gmail.com - 2.1.1-1 - Update to latest release
diff --git a/sources b/sources index 086c88f..504a6c7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (matplotlib-2.1.1.tar.gz) = 7faa6e4d215d863c436f5d5df9b2a19cf7044ec8e75be4c2e5b70ecb9fff7db03a8f092449401755c40a9ba719d1b0a7cc286e1e5ae5926b74cf91ec3826134f +SHA512 (matplotlib-2.1.2.tar.gz) = fd93901b12a7f47cdc36d38d18de43b0cc8623dcd5597cfc1177e63cf90b0c87f718135176e2c077cd1316566a394e09e8e8e9db2ce128ee7f03021cac45543e
commit 2d712efe1efca62909fba369e96de4732dad36e3 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Sun Dec 10 05:15:28 2017 -0500
Update to latest version.
diff --git a/.gitignore b/.gitignore index 16e590d..833972c 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-2.0.2.tar.gz /matplotlib-2.1.0rc1.tar.gz /matplotlib-2.1.0.tar.gz +/matplotlib-2.1.1.tar.gz diff --git a/0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch b/0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch deleted file mode 100644 index fc5e4a1..0000000 --- a/0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0420e360523e3452467bfc7d9bb19c3593cde2e7 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Thu, 5 Oct 2017 21:26:53 -0400 -Subject: [PATCH 1/9] TST: Skip sphinxext if unavailable instead of error. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/sphinxext/tests/test_tinypages.py | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/lib/matplotlib/sphinxext/tests/test_tinypages.py b/lib/matplotlib/sphinxext/tests/test_tinypages.py -index 5141a4cdd..6ee3e9e07 100644 ---- a/lib/matplotlib/sphinxext/tests/test_tinypages.py -+++ b/lib/matplotlib/sphinxext/tests/test_tinypages.py -@@ -22,8 +22,7 @@ def setup_module(): - ret = call([sys.executable, '-msphinx', '--help'], - stdout=PIPE, stderr=PIPE) - if ret != 0: -- raise RuntimeError( -- "'{} -msphinx' does not return 0".format(sys.executable)) -+ pytest.skip("'{} -msphinx' does not return 0".format(sys.executable)) - - - @cbook.deprecated("2.1", alternative="filecmp.cmp") --- -2.13.5 - diff --git a/0001-Use-fuzzy-comparison-for-stroke-join-determination.patch b/0001-Use-fuzzy-comparison-for-stroke-join-determination.patch new file mode 100644 index 0000000..1bc68bc --- /dev/null +++ b/0001-Use-fuzzy-comparison-for-stroke-join-determination.patch @@ -0,0 +1,30 @@ +From 8dba6d00d8ead090f6161854f9e64d28ea18e663 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Sun, 15 Oct 2017 17:16:11 -0400 +Subject: [PATCH 1/4] Use fuzzy comparison for stroke join determination. + +This sometimes produces something just slightly different from 0 +compared to x86(_64). + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + extern/agg24-svn/include/agg_math_stroke.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/extern/agg24-svn/include/agg_math_stroke.h b/extern/agg24-svn/include/agg_math_stroke.h +index 4806dcd4b..4871d96ce 100644 +--- a/extern/agg24-svn/include/agg_math_stroke.h ++++ b/extern/agg24-svn/include/agg_math_stroke.h +@@ -391,7 +391,8 @@ namespace agg + vc.remove_all(); + + double cp = cross_product(v0.x, v0.y, v1.x, v1.y, v2.x, v2.y); +- if(cp != 0 && (cp > 0) == (m_width > 0)) ++ if ((cp > agg::vertex_dist_epsilon && m_width > 0) || ++ (cp < -agg::vertex_dist_epsilon && m_width < 0)) + { + // Inner join + //--------------- +-- +2.13.6 + diff --git a/0002-TST-Capture-all-internal-warnings.patch b/0002-TST-Capture-all-internal-warnings.patch deleted file mode 100644 index 4cbfd34..0000000 --- a/0002-TST-Capture-all-internal-warnings.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 279f95dae9dcd74d51c5913254889712697d1d8a Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Fri, 6 Oct 2017 20:06:09 -0400 -Subject: [PATCH 2/9] TST: Capture all internal warnings. - -These are either deprecations, or checks for old, but probably -incorrect, behaviour. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/tests/test_axes.py | 10 ++++++++-- - lib/matplotlib/tests/test_cbook.py | 22 ++++++++++++---------- - lib/matplotlib/tests/test_colors.py | 10 +++++++++- - lib/matplotlib/tests/test_dates.py | 5 ++++- - lib/matplotlib/tests/test_image.py | 4 ++-- - 5 files changed, 35 insertions(+), 16 deletions(-) - -diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index 0c22740a4..273b6f4ec 100644 ---- a/lib/matplotlib/tests/test_axes.py -+++ b/lib/matplotlib/tests/test_axes.py -@@ -1677,13 +1677,19 @@ def test_as_mpl_axes_api(): - ax_via_gca = plt.gca(projection=prj) - assert ax_via_gca is ax - # try getting the axes given a different polar projection -- ax_via_gca = plt.gca(projection=prj2) -+ with pytest.warns(UserWarning) as rec: -+ ax_via_gca = plt.gca(projection=prj2) -+ assert len(rec) == 1 -+ assert 'Requested projection is different' in str(rec[0].message) - assert ax_via_gca is not ax - assert ax.get_theta_offset() == 0, ax.get_theta_offset() - assert ax_via_gca.get_theta_offset() == np.pi, \ - ax_via_gca.get_theta_offset() - # try getting the axes given an == (not is) polar projection -- ax_via_gca = plt.gca(projection=prj3) -+ with pytest.warns(UserWarning): -+ ax_via_gca = plt.gca(projection=prj3) -+ assert len(rec) == 1 -+ assert 'Requested projection is different' in str(rec[0].message) - assert ax_via_gca is ax - plt.close() - -diff --git a/lib/matplotlib/tests/test_cbook.py b/lib/matplotlib/tests/test_cbook.py -index f254b173c..4ff2cc52a 100644 ---- a/lib/matplotlib/tests/test_cbook.py -+++ b/lib/matplotlib/tests/test_cbook.py -@@ -29,16 +29,18 @@ def test_is_hashable(): - - def test_restrict_dict(): - d = {'foo': 'bar', 1: 2} -- d1 = cbook.restrict_dict(d, ['foo', 1]) -- assert d1 == d -- d2 = cbook.restrict_dict(d, ['bar', 2]) -- assert d2 == {} -- d3 = cbook.restrict_dict(d, {'foo': 1}) -- assert d3 == {'foo': 'bar'} -- d4 = cbook.restrict_dict(d, {}) -- assert d4 == {} -- d5 = cbook.restrict_dict(d, {'foo', 2}) -- assert d5 == {'foo': 'bar'} -+ with pytest.warns(cbook.deprecation.MatplotlibDeprecationWarning) as rec: -+ d1 = cbook.restrict_dict(d, ['foo', 1]) -+ assert d1 == d -+ d2 = cbook.restrict_dict(d, ['bar', 2]) -+ assert d2 == {} -+ d3 = cbook.restrict_dict(d, {'foo': 1}) -+ assert d3 == {'foo': 'bar'} -+ d4 = cbook.restrict_dict(d, {}) -+ assert d4 == {} -+ d5 = cbook.restrict_dict(d, {'foo', 2}) -+ assert d5 == {'foo': 'bar'} -+ assert len(rec) == 5 - # check that d was not modified - assert d == {'foo': 'bar', 1: 2} - -diff --git a/lib/matplotlib/tests/test_colors.py b/lib/matplotlib/tests/test_colors.py -index 721813e62..82c73fe71 100644 ---- a/lib/matplotlib/tests/test_colors.py -+++ b/lib/matplotlib/tests/test_colors.py -@@ -690,7 +690,7 @@ def test_tableau_order(): - assert list(mcolors.TABLEAU_COLORS.values()) == dflt_cycle - - --def test_ndarray_subclass_norm(): -+def test_ndarray_subclass_norm(recwarn): - # Emulate an ndarray subclass that handles units - # which objects when adding or subtracting with other - # arrays. See #6622 and #8696 -@@ -707,3 +707,11 @@ def test_ndarray_subclass_norm(): - mcolors.SymLogNorm(3, vmax=5, linscale=1), - mcolors.PowerNorm(1)]: - assert_array_equal(norm(data.view(MyArray)), norm(data)) -+ if isinstance(norm, mcolors.PowerNorm): -+ assert len(recwarn) == 1 -+ warn = recwarn.pop(UserWarning) -+ assert ('Power-law scaling on negative values is ill-defined' -+ in str(warn.message)) -+ else: -+ assert len(recwarn) == 0 -+ recwarn.clear() -diff --git a/lib/matplotlib/tests/test_dates.py b/lib/matplotlib/tests/test_dates.py -index 9f69d2ea7..437482f5f 100644 ---- a/lib/matplotlib/tests/test_dates.py -+++ b/lib/matplotlib/tests/test_dates.py -@@ -96,7 +96,10 @@ def test_too_many_date_ticks(): - tf = datetime.datetime(2000, 1, 20) - fig = plt.figure() - ax = fig.add_subplot(1, 1, 1) -- ax.set_xlim((t0, tf), auto=True) -+ with pytest.warns(UserWarning) as rec: -+ ax.set_xlim((t0, tf), auto=True) -+ assert len(rec) == 1 -+ assert 'Attempting to set identical left==right' in str(rec[0].message) - ax.plot([], []) - ax.xaxis.set_major_locator(mdates.DayLocator()) - with pytest.raises(RuntimeError): -diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py -index 68a22894e..6240dd219 100644 ---- a/lib/matplotlib/tests/test_image.py -+++ b/lib/matplotlib/tests/test_image.py -@@ -603,7 +603,8 @@ def test_load_from_url(): - - @image_comparison(baseline_images=['log_scale_image'], - remove_text=True) --def test_log_scale_image(): -+# The recwarn fixture captures a warning in image_comparison. -+def test_log_scale_image(recwarn): - Z = np.zeros((10, 10)) - Z[::2] = 1 - -@@ -615,7 +616,6 @@ def test_log_scale_image(): - ax.set_yscale('log') - - -- - @image_comparison(baseline_images=['rotate_image'], - remove_text=True) - def test_rotate_image(): --- -2.13.5 - diff --git a/0002-matplotlibrc-path-search-fix.patch b/0002-matplotlibrc-path-search-fix.patch new file mode 100644 index 0000000..2193a1b --- /dev/null +++ b/0002-matplotlibrc-path-search-fix.patch @@ -0,0 +1,39 @@ +From 22121f236ebdc8f8539c2c0901073dce80f4edd8 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 2/4] matplotlibrc path search fix + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/__init__.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py +index 3ba486af1..b8caf27dc 100644 +--- a/lib/matplotlib/__init__.py ++++ b/lib/matplotlib/__init__.py +@@ -635,9 +635,12 @@ def _get_data_path(): + + _file = _decode_filesystem_path(__file__) + path = os.sep.join([os.path.dirname(_file), 'mpl-data']) ++ path = '/usr/share/matplotlib/mpl-data' + if os.path.isdir(path): + return path + ++ raise RuntimeError('Could not find the matplotlib data files') ++ + # setuptools' namespace_packages may highjack this init file + # so need to try something known to be in matplotlib, not basemap + import matplotlib.afm +@@ -731,7 +734,7 @@ def matplotlib_fname(): + yield matplotlibrc + yield os.path.join(matplotlibrc, 'matplotlibrc') + yield os.path.join(_get_configdir(), 'matplotlibrc') +- yield os.path.join(get_data_path(), 'matplotlibrc') ++ yield '/etc/matplotlibrc' + + for fname in gen_candidates(): + if os.path.isfile(fname): +-- +2.13.6 + diff --git a/0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch b/0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch deleted file mode 100644 index 041284e..0000000 --- a/0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch +++ /dev/null @@ -1,28 +0,0 @@ -From ee4253242cbaf972443ee49c59f056d8957f4f4f Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Fri, 6 Oct 2017 20:53:16 -0400 -Subject: [PATCH 3/9] TST: Don't require LaTeX or Inkscape for nose tests. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/tests/test_compare_images.py | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/lib/matplotlib/tests/test_compare_images.py b/lib/matplotlib/tests/test_compare_images.py -index 488fae823..f5bb9dda8 100644 ---- a/lib/matplotlib/tests/test_compare_images.py -+++ b/lib/matplotlib/tests/test_compare_images.py -@@ -203,6 +203,10 @@ def test_nose_image_comparison(func, kwargs, errors, failures, dots, - assert failures[self.failure_count][1] in str(err[1]) - self.failure_count += 1 - -+ # Make sure that multiple extensions work, but don't require LaTeX or -+ # Inkscape to do so. -+ kwargs.setdefault('extensions', ['png', 'png', 'png']) -+ - func = image_comparison(**kwargs)(func) - loader = nose.loader.TestLoader() - suite = loader.loadTestsFromGenerator( --- -2.13.5 - diff --git a/0003-TST-Increase-tolerances-for-FreeType-2.7.1.patch b/0003-TST-Increase-tolerances-for-FreeType-2.7.1.patch new file mode 100644 index 0000000..ad9c914 --- /dev/null +++ b/0003-TST-Increase-tolerances-for-FreeType-2.7.1.patch @@ -0,0 +1,128 @@ +From cfdc835923407810bd087f60332cdc8cdcb23f05 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Sun, 15 Oct 2017 17:35:47 -0400 +Subject: [PATCH 3/4] TST: Increase tolerances for FreeType 2.7.1. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/testing/decorators.py | 2 +- + lib/matplotlib/tests/test_axes.py | 4 ++-- + lib/matplotlib/tests/test_mathtext.py | 4 ++-- + lib/matplotlib/tests/test_patches.py | 2 +- + lib/matplotlib/tests/test_patheffects.py | 2 +- + lib/matplotlib/tests/test_streamplot.py | 2 +- + lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- + 7 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py +index c5e069b31..ebd68cfab 100644 +--- a/lib/matplotlib/testing/decorators.py ++++ b/lib/matplotlib/testing/decorators.py +@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, + return decorator + + +-def image_comparison(baseline_images, extensions=None, tol=0, ++def image_comparison(baseline_images, extensions=None, tol=0.1, + freetype_version=None, remove_text=False, + savefig_kwarg=None, + # Default of mpl_test_settings fixture and cleanup too. +diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py +index 33be78004..c73e55802 100644 +--- a/lib/matplotlib/tests/test_axes.py ++++ b/lib/matplotlib/tests/test_axes.py +@@ -672,7 +672,7 @@ def test_polar_rlabel_position(): + + + @image_comparison(baseline_images=['polar_theta_wedge'], style='default', +- tol=0.01 if six.PY2 else 0) ++ tol=0.1) + def test_polar_theta_limits(): + r = np.arange(0, 3.0, 0.01) + theta = 2*np.pi*r +@@ -4679,7 +4679,7 @@ def test_rc_spines(): + + + @image_comparison(baseline_images=['rc_grid'], extensions=['png'], +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.2) + def test_rc_grid(): + fig = plt.figure() + rc_dict0 = { +diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py +index 7ef77ce6a..b8c9c9e8b 100644 +--- a/lib/matplotlib/tests/test_mathtext.py ++++ b/lib/matplotlib/tests/test_mathtext.py +@@ -174,7 +174,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): + matplotlib.rcParams['mathtext.fontset'] = fontset + fig = plt.figure(figsize=(5.25, 0.75)) +@@ -188,7 +188,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): + 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 20ffa6b08..9f5088f0f 100644 +--- a/lib/matplotlib/tests/test_patches.py ++++ b/lib/matplotlib/tests/test_patches.py +@@ -269,7 +269,7 @@ def test_wedge_movement(): + + # png needs tol>=0.06, pdf tol>=1.617 + @image_comparison(baseline_images=['wedge_range'], +- remove_text=True, tol=1.65 if on_win else 0) ++ remove_text=True, tol=0.1) + def test_wedge_range(): + ax = plt.axes() + +diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py +index 9b8a4379c..ebbcd6529 100644 +--- a/lib/matplotlib/tests/test_patheffects.py ++++ b/lib/matplotlib/tests/test_patheffects.py +@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): + assert pe._offset == (4, 5) + + +-@image_comparison(baseline_images=['collection'], tol=0.015) ++@image_comparison(baseline_images=['collection'], tol=0.1) + 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_streamplot.py b/lib/matplotlib/tests/test_streamplot.py +index ac997b2b2..cd7233e2e 100644 +--- a/lib/matplotlib/tests/test_streamplot.py ++++ b/lib/matplotlib/tests/test_streamplot.py +@@ -36,7 +36,7 @@ def test_startpoints(): + + + @image_comparison(baseline_images=['streamplot_colormap'], +- tol=0.002) ++ tol=0.1) + def test_colormap(): + X, Y, U, V = velocity_field() + plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, +diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py +index c157433c7..c13f3be2f 100644 +--- a/lib/mpl_toolkits/tests/test_mplot3d.py ++++ b/lib/mpl_toolkits/tests/test_mplot3d.py +@@ -658,7 +658,7 @@ class TestVoxels(object): + @image_comparison( + baseline_images=['voxels-xyz'], + extensions=['png'], +- tol=0.01 ++ tol=0.02 + ) + def test_xyz(self): + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) +-- +2.13.6 + diff --git a/0004-Fix-AxesImage.get_cursor_data-on-arm.patch b/0004-Fix-AxesImage.get_cursor_data-on-arm.patch deleted file mode 100644 index 0feb2ca..0000000 --- a/0004-Fix-AxesImage.get_cursor_data-on-arm.patch +++ /dev/null @@ -1,34 +0,0 @@ -From a95786dc8f982c8f7d212badad883754fe448c98 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Sat, 7 Oct 2017 00:28:59 -0400 -Subject: [PATCH 4/9] Fix AxesImage.get_cursor_data on arm. - -For some reason, NaN gets converted to 0 as an integer instead of -INT_MIN like on x86. - -Fixes #6538. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/image.py | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py -index ea2331cb4..52decc3ec 100644 ---- a/lib/matplotlib/image.py -+++ b/lib/matplotlib/image.py -@@ -822,7 +822,10 @@ class AxesImage(_ImageBase): - array_extent = Bbox([[0, 0], arr.shape[:2]]) - trans = BboxTransform(boxin=data_extent, boxout=array_extent) - y, x = event.ydata, event.xdata -- i, j = trans.transform_point([y, x]).astype(int) -+ point = trans.transform_point([y, x]) -+ if any(np.isnan(point)): -+ return None -+ i, j = point.astype(int) - # Clip the coordinates at array bounds - if not (0 <= i < arr.shape[0]) or not (0 <= j < arr.shape[1]): - return None --- -2.13.5 - diff --git a/0004-TST-Increase-some-tolerances-for-32-bit-systems.patch b/0004-TST-Increase-some-tolerances-for-32-bit-systems.patch new file mode 100644 index 0000000..520122d --- /dev/null +++ b/0004-TST-Increase-some-tolerances-for-32-bit-systems.patch @@ -0,0 +1,388 @@ +From 4fbf2473e97a259494117a408a5efa377fa5a947 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Sun, 15 Oct 2017 21:11:26 -0400 +Subject: [PATCH 4/4] TST: Increase some tolerances for 32-bit systems. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/tests/test_artist.py | 3 ++- + lib/matplotlib/tests/test_axes.py | 42 ++++++++++++++++---------------- + lib/matplotlib/tests/test_collections.py | 2 +- + lib/matplotlib/tests/test_colorbar.py | 11 +++++---- + lib/matplotlib/tests/test_contour.py | 6 ++--- + lib/matplotlib/tests/test_image.py | 2 +- + lib/matplotlib/tests/test_pickle.py | 2 +- + lib/matplotlib/tests/test_quiver.py | 2 +- + lib/matplotlib/tests/test_transforms.py | 2 +- + lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- + 10 files changed, 38 insertions(+), 36 deletions(-) + +diff --git a/lib/matplotlib/tests/test_artist.py b/lib/matplotlib/tests/test_artist.py +index 786d50903..105714ef4 100644 +--- a/lib/matplotlib/tests/test_artist.py ++++ b/lib/matplotlib/tests/test_artist.py +@@ -95,7 +95,8 @@ def test_collection_transform_of_none(): + assert isinstance(c._transOffset, mtransforms.IdentityTransform) + + +-@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True) ++@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True, ++ tol=0.28) + def test_clipping(): + exterior = mpath.Path.unit_rectangle().deepcopy() + exterior.vertices *= 4 +diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py +index c73e55802..90db6dfda 100644 +--- a/lib/matplotlib/tests/test_axes.py ++++ b/lib/matplotlib/tests/test_axes.py +@@ -483,7 +483,7 @@ def test_single_point(): + plt.plot('b', 'b', 'o', data=data) + + +-@image_comparison(baseline_images=['single_date']) ++@image_comparison(baseline_images=['single_date'], tol=1.97) + def test_single_date(): + time1 = [721964.0] + data1 = [-65.54] +@@ -972,7 +972,7 @@ def test_fill_between_interpolate(): + + + @image_comparison(baseline_images=['fill_between_interpolate_decreasing'], +- style='mpl20', remove_text=True) ++ style='mpl20', remove_text=True, tol=0.78) + def test_fill_between_interpolate_decreasing(): + p = np.array([724.3, 700, 655]) + t = np.array([9.4, 7, 2.2]) +@@ -1086,7 +1086,7 @@ def test_pcolormesh(): + + + @image_comparison(baseline_images=['pcolormesh_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.19) + def test_pcolormesh_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -1112,7 +1112,7 @@ def test_pcolormesh_datetime_axis(): + + + @image_comparison(baseline_images=['pcolor_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.19) + def test_pcolor_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -1168,7 +1168,7 @@ def test_canonical(): + + + @image_comparison(baseline_images=['arc_angles'], remove_text=True, +- style='default', extensions=['png']) ++ style='default', extensions=['png'], tol=0.17) + def test_arc_angles(): + from matplotlib import patches + # Ellipse parameters +@@ -2434,7 +2434,7 @@ def test_boxplot_mod_artist_after_plotting(): + + @image_comparison(baseline_images=['violinplot_vert_baseline', + 'violinplot_vert_baseline'], +- extensions=['png']) ++ extensions=['png'], tol=0.24) + def test_vert_violinplot_baseline(): + # First 9 digits of frac(sqrt(2)) + np.random.seed(414213562) +@@ -2452,7 +2452,7 @@ def test_vert_violinplot_baseline(): + + + @image_comparison(baseline_images=['violinplot_vert_showmeans'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showmeans(): + ax = plt.axes() + # First 9 digits of frac(sqrt(3)) +@@ -2463,7 +2463,7 @@ def test_vert_violinplot_showmeans(): + + + @image_comparison(baseline_images=['violinplot_vert_showextrema'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showextrema(): + ax = plt.axes() + # First 9 digits of frac(sqrt(5)) +@@ -2474,7 +2474,7 @@ def test_vert_violinplot_showextrema(): + + + @image_comparison(baseline_images=['violinplot_vert_showmedians'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showmedians(): + ax = plt.axes() + # First 9 digits of frac(sqrt(7)) +@@ -2485,7 +2485,7 @@ def test_vert_violinplot_showmedians(): + + + @image_comparison(baseline_images=['violinplot_vert_showall'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_vert_violinplot_showall(): + ax = plt.axes() + # First 9 digits of frac(sqrt(11)) +@@ -2496,7 +2496,7 @@ def test_vert_violinplot_showall(): + + + @image_comparison(baseline_images=['violinplot_vert_custompoints_10'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_vert_violinplot_custompoints_10(): + ax = plt.axes() + # First 9 digits of frac(sqrt(13)) +@@ -2507,7 +2507,7 @@ def test_vert_violinplot_custompoints_10(): + + + @image_comparison(baseline_images=['violinplot_vert_custompoints_200'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_vert_violinplot_custompoints_200(): + ax = plt.axes() + # First 9 digits of frac(sqrt(17)) +@@ -2518,7 +2518,7 @@ def test_vert_violinplot_custompoints_200(): + + + @image_comparison(baseline_images=['violinplot_horiz_baseline'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_horiz_violinplot_baseline(): + ax = plt.axes() + # First 9 digits of frac(sqrt(19)) +@@ -2529,7 +2529,7 @@ def test_horiz_violinplot_baseline(): + + + @image_comparison(baseline_images=['violinplot_horiz_showmedians'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_horiz_violinplot_showmedians(): + ax = plt.axes() + # First 9 digits of frac(sqrt(23)) +@@ -2540,7 +2540,7 @@ def test_horiz_violinplot_showmedians(): + + + @image_comparison(baseline_images=['violinplot_horiz_showmeans'], +- extensions=['png']) ++ extensions=['png'], tol=0.25) + def test_horiz_violinplot_showmeans(): + ax = plt.axes() + # First 9 digits of frac(sqrt(29)) +@@ -2551,7 +2551,7 @@ def test_horiz_violinplot_showmeans(): + + + @image_comparison(baseline_images=['violinplot_horiz_showextrema'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_horiz_violinplot_showextrema(): + ax = plt.axes() + # First 9 digits of frac(sqrt(31)) +@@ -2562,7 +2562,7 @@ def test_horiz_violinplot_showextrema(): + + + @image_comparison(baseline_images=['violinplot_horiz_showall'], +- extensions=['png']) ++ extensions=['png'], tol=0.19) + def test_horiz_violinplot_showall(): + ax = plt.axes() + # First 9 digits of frac(sqrt(37)) +@@ -2573,7 +2573,7 @@ def test_horiz_violinplot_showall(): + + + @image_comparison(baseline_images=['violinplot_horiz_custompoints_10'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_horiz_violinplot_custompoints_10(): + ax = plt.axes() + # First 9 digits of frac(sqrt(41)) +@@ -2584,7 +2584,7 @@ def test_horiz_violinplot_custompoints_10(): + + + @image_comparison(baseline_images=['violinplot_horiz_custompoints_200'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_horiz_violinplot_custompoints_200(): + ax = plt.axes() + # First 9 digits of frac(sqrt(43)) +@@ -3910,7 +3910,7 @@ def test_psd_noise(): + + + @image_comparison(baseline_images=['csd_freqs'], remove_text=True, +- extensions=['png']) ++ extensions=['png'], tol=0.21) + def test_csd_freqs(): + '''test axes.csd with sinusoidal stimuli''' + n = 10000 +@@ -5136,7 +5136,7 @@ def test_date_timezone_y(): + + + @image_comparison(baseline_images=['date_timezone_x_and_y'], +- extensions=['png']) ++ extensions=['png'], tol=3.05) + def test_date_timezone_x_and_y(): + # Tests issue 5575 + time_index = [pytz.timezone('UTC').localize(datetime.datetime( +diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py +index c27aeb11a..9d39a3e91 100644 +--- a/lib/matplotlib/tests/test_collections.py ++++ b/lib/matplotlib/tests/test_collections.py +@@ -468,7 +468,7 @@ def test_EllipseCollection(): + + + @image_comparison(baseline_images=['polycollection_close'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.45) + def test_polycollection_close(): + from mpl_toolkits.mplot3d import Axes3D + +diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py +index b75ba7e9f..cfbb16444 100644 +--- a/lib/matplotlib/tests/test_colorbar.py ++++ b/lib/matplotlib/tests/test_colorbar.py +@@ -96,7 +96,7 @@ def _colorbar_extension_length(spacing): + @image_comparison( + baseline_images=['colorbar_extensions_shape_uniform', + 'colorbar_extensions_shape_proportional'], +- extensions=['png']) ++ extensions=['png'], tol=0.16) + def test_colorbar_extension_shape(): + '''Test rectangular colorbar extensions.''' + # Create figures for uniform and proportionally spaced colorbars. +@@ -106,7 +106,7 @@ def test_colorbar_extension_shape(): + + @image_comparison(baseline_images=['colorbar_extensions_uniform', + 'colorbar_extensions_proportional'], +- extensions=['png']) ++ extensions=['png'], tol=0.25) + def test_colorbar_extension_length(): + '''Test variable length colorbar extensions.''' + # Create figures for uniform and proportionally spaced colorbars. +@@ -120,7 +120,7 @@ def test_colorbar_extension_length(): + 'cbar_sharing', + ], + extensions=['png'], remove_text=True, +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.17) + def test_colorbar_positioning(): + data = np.arange(1200).reshape(30, 40) + levels = [0, 200, 400, 600, 800, 1000, 1200] +@@ -174,7 +174,7 @@ def test_colorbar_positioning(): + + @image_comparison(baseline_images=['cbar_with_subplots_adjust'], + extensions=['png'], remove_text=True, +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.17) + def test_gridspec_make_colorbar(): + plt.figure() + data = np.arange(1200).reshape(30, 40) +@@ -234,7 +234,8 @@ def test_colorbarbase(): + + @image_comparison( + baseline_images=['colorbar_closed_patch'], +- remove_text=True) ++ remove_text=True, ++ tol=0.22) + def test_colorbar_closed_patch(): + fig = plt.figure(figsize=(8, 6)) + ax1 = fig.add_axes([0.05, 0.85, 0.9, 0.1]) +diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py +index 16ac9e865..29c1b26f2 100644 +--- a/lib/matplotlib/tests/test_contour.py ++++ b/lib/matplotlib/tests/test_contour.py +@@ -228,7 +228,7 @@ def test_given_colors_levels_and_extends(): + + + @image_comparison(baseline_images=['contour_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.18) + def test_contour_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -254,7 +254,7 @@ def test_contour_datetime_axis(): + + + @image_comparison(baseline_images=['contour_test_label_transforms'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.74) + def test_labels(): + # Adapted from pylab_examples example code: contour_demo.py + # see issues #2475, #2843, and #2818 for explanation +@@ -283,7 +283,7 @@ def test_labels(): + + @image_comparison(baseline_images=['contour_corner_mask_False', + 'contour_corner_mask_True'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.19) + def test_corner_mask(): + n = 60 + mask_level = 0.95 +diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py +index 0e423ab5f..8a46116fd 100644 +--- a/lib/matplotlib/tests/test_image.py ++++ b/lib/matplotlib/tests/test_image.py +@@ -754,7 +754,7 @@ def test_imshow_endianess(): + + + @image_comparison(baseline_images=['imshow_masked_interpolation'], +- remove_text=True, style='mpl20') ++ remove_text=True, style='mpl20', tol=0.25) + def test_imshow_masked_interpolation(): + + cm = copy(plt.get_cmap('viridis')) +diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py +index bd6ac6862..512f07948 100644 +--- a/lib/matplotlib/tests/test_pickle.py ++++ b/lib/matplotlib/tests/test_pickle.py +@@ -43,7 +43,7 @@ def test_simple(): + + @image_comparison(baseline_images=['multi_pickle'], + extensions=['png'], remove_text=True, +- style='mpl20') ++ style='mpl20', tol=0.11) + def test_complete(): + fig = plt.figure('Figure with a label?', figsize=(10, 6)) + +diff --git a/lib/matplotlib/tests/test_quiver.py b/lib/matplotlib/tests/test_quiver.py +index a0e1e674f..ede6bfc64 100644 +--- a/lib/matplotlib/tests/test_quiver.py ++++ b/lib/matplotlib/tests/test_quiver.py +@@ -131,7 +131,7 @@ def test_quiver_key_pivot(): + + + @image_comparison(baseline_images=['barbs_test_image'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.11) + def test_barbs(): + x = np.linspace(-5, 5, 5) + X, Y = np.meshgrid(x, x) +diff --git a/lib/matplotlib/tests/test_transforms.py b/lib/matplotlib/tests/test_transforms.py +index 8f19a50f3..2fbe41187 100644 +--- a/lib/matplotlib/tests/test_transforms.py ++++ b/lib/matplotlib/tests/test_transforms.py +@@ -75,7 +75,7 @@ def test_external_transform_api(): + + + @image_comparison(baseline_images=['pre_transform_data'], +- tol=0.08) ++ tol=0.15) + def test_pre_transform_plotting(): + # a catch-all for as many as possible plot layouts which handle + # pre-transforming the data NOTE: The axis range is important in this +diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py +index c13f3be2f..81a28aadb 100644 +--- a/lib/mpl_toolkits/tests/test_mplot3d.py ++++ b/lib/mpl_toolkits/tests/test_mplot3d.py +@@ -198,7 +198,7 @@ def test_text3d(): + ax.set_zlabel('Z axis') + + +-@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.03) ++@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.05) + def test_trisurf3d(): + n_angles = 36 + n_radii = 8 +-- +2.13.6 + diff --git a/0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch b/0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch deleted file mode 100644 index 2a7edd5..0000000 --- a/0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch +++ /dev/null @@ -1,37 +0,0 @@ -From aaab55ffee458dc867f3f51e2a9908c6885b7dec Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Sat, 7 Oct 2017 05:40:35 -0400 -Subject: [PATCH 5/9] TST: Use fuzzy comparison in test_psd_csd_equal. - -Fixes #7158. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/tests/test_mlab.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/lib/matplotlib/tests/test_mlab.py b/lib/matplotlib/tests/test_mlab.py -index 15047bdeb..ef36eaf0b 100644 ---- a/lib/matplotlib/tests/test_mlab.py -+++ b/lib/matplotlib/tests/test_mlab.py -@@ -7,7 +7,7 @@ import tempfile - import warnings - - from numpy.testing import (assert_allclose, assert_almost_equal, -- assert_array_equal) -+ assert_array_equal, assert_array_almost_equal_nulp) - import numpy.ma.testutils as matest - import numpy as np - import datetime as datetime -@@ -1985,7 +1985,7 @@ class TestSpectral(object): - noverlap=self.nover_density, - pad_to=self.pad_to_density, - sides=self.sides) -- assert_array_equal(Pxx, Pxy) -+ assert_array_almost_equal_nulp(Pxx, Pxy) - assert_array_equal(freqsxx, freqsxy) - - def test_specgram_auto_default_equal(self): --- -2.13.5 - diff --git a/0006-Use-fuzzy-comparison-for-stroke-join-determination.patch b/0006-Use-fuzzy-comparison-for-stroke-join-determination.patch deleted file mode 100644 index a0419ea..0000000 --- a/0006-Use-fuzzy-comparison-for-stroke-join-determination.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 5b1c238764a6f594991459f2c269e41157edba2f Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Sun, 15 Oct 2017 17:16:11 -0400 -Subject: [PATCH 6/9] Use fuzzy comparison for stroke join determination. - -This sometimes produces something just slightly different from 0 -compared to x86(_64). - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - extern/agg24-svn/include/agg_math_stroke.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/extern/agg24-svn/include/agg_math_stroke.h b/extern/agg24-svn/include/agg_math_stroke.h -index 4806dcd4b..4871d96ce 100644 ---- a/extern/agg24-svn/include/agg_math_stroke.h -+++ b/extern/agg24-svn/include/agg_math_stroke.h -@@ -391,7 +391,8 @@ namespace agg - vc.remove_all(); - - double cp = cross_product(v0.x, v0.y, v1.x, v1.y, v2.x, v2.y); -- if(cp != 0 && (cp > 0) == (m_width > 0)) -+ if ((cp > agg::vertex_dist_epsilon && m_width > 0) || -+ (cp < -agg::vertex_dist_epsilon && m_width < 0)) - { - // Inner join - //--------------- --- -2.13.5 - diff --git a/0007-matplotlibrc-path-search-fix.patch b/0007-matplotlibrc-path-search-fix.patch deleted file mode 100644 index 588e07d..0000000 --- a/0007-matplotlibrc-path-search-fix.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 400b97c30de5aa45e48a26c552dc310a3c1cf758 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 7/9] matplotlibrc path search fix - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/__init__.py | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py -index 00488a134..b989bc380 100644 ---- a/lib/matplotlib/__init__.py -+++ b/lib/matplotlib/__init__.py -@@ -635,9 +635,12 @@ def _get_data_path(): - - _file = _decode_filesystem_path(__file__) - path = os.sep.join([os.path.dirname(_file), 'mpl-data']) -+ path = '/usr/share/matplotlib/mpl-data' - if os.path.isdir(path): - return path - -+ raise RuntimeError('Could not find the matplotlib data files') -+ - # setuptools' namespace_packages may highjack this init file - # so need to try something known to be in matplotlib, not basemap - import matplotlib.afm -@@ -731,7 +734,7 @@ def matplotlib_fname(): - yield matplotlibrc - yield os.path.join(matplotlibrc, 'matplotlibrc') - yield os.path.join(_get_configdir(), 'matplotlibrc') -- yield os.path.join(get_data_path(), 'matplotlibrc') -+ yield '/etc/matplotlibrc' - - for fname in gen_candidates(): - if os.path.isfile(fname): --- -2.13.5 - diff --git a/0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch b/0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch deleted file mode 100644 index dd1b5c6..0000000 --- a/0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch +++ /dev/null @@ -1,128 +0,0 @@ -From ce6e4fd43193698df2168fa946be479e5f8b96ff Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Sun, 15 Oct 2017 17:35:47 -0400 -Subject: [PATCH 8/9] TST: Increase tolerances for FreeType 2.7.1. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/testing/decorators.py | 2 +- - lib/matplotlib/tests/test_axes.py | 4 ++-- - lib/matplotlib/tests/test_mathtext.py | 4 ++-- - lib/matplotlib/tests/test_patches.py | 2 +- - lib/matplotlib/tests/test_patheffects.py | 2 +- - lib/matplotlib/tests/test_streamplot.py | 2 +- - lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- - 7 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py -index c5e069b31..ebd68cfab 100644 ---- a/lib/matplotlib/testing/decorators.py -+++ b/lib/matplotlib/testing/decorators.py -@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, - return decorator - - --def image_comparison(baseline_images, extensions=None, tol=0, -+def image_comparison(baseline_images, extensions=None, tol=0.1, - freetype_version=None, remove_text=False, - savefig_kwarg=None, - # Default of mpl_test_settings fixture and cleanup too. -diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index 273b6f4ec..4cf9cfa29 100644 ---- a/lib/matplotlib/tests/test_axes.py -+++ b/lib/matplotlib/tests/test_axes.py -@@ -672,7 +672,7 @@ def test_polar_rlabel_position(): - - - @image_comparison(baseline_images=['polar_theta_wedge'], style='default', -- tol=0.01 if six.PY2 else 0) -+ tol=0.1) - def test_polar_theta_limits(): - r = np.arange(0, 3.0, 0.01) - theta = 2*np.pi*r -@@ -4641,7 +4641,7 @@ def test_rc_spines(): - - - @image_comparison(baseline_images=['rc_grid'], extensions=['png'], -- savefig_kwarg={'dpi': 40}) -+ savefig_kwarg={'dpi': 40}, tol=0.2) - def test_rc_grid(): - fig = plt.figure() - rc_dict0 = { -diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py -index 7ef77ce6a..b8c9c9e8b 100644 ---- a/lib/matplotlib/tests/test_mathtext.py -+++ b/lib/matplotlib/tests/test_mathtext.py -@@ -174,7 +174,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): - matplotlib.rcParams['mathtext.fontset'] = fontset - fig = plt.figure(figsize=(5.25, 0.75)) -@@ -188,7 +188,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): - 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 20ffa6b08..9f5088f0f 100644 ---- a/lib/matplotlib/tests/test_patches.py -+++ b/lib/matplotlib/tests/test_patches.py -@@ -269,7 +269,7 @@ def test_wedge_movement(): - - # png needs tol>=0.06, pdf tol>=1.617 - @image_comparison(baseline_images=['wedge_range'], -- remove_text=True, tol=1.65 if on_win else 0) -+ remove_text=True, tol=0.1) - def test_wedge_range(): - ax = plt.axes() - -diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py -index 9b8a4379c..ebbcd6529 100644 ---- a/lib/matplotlib/tests/test_patheffects.py -+++ b/lib/matplotlib/tests/test_patheffects.py -@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): - assert pe._offset == (4, 5) - - --@image_comparison(baseline_images=['collection'], tol=0.015) -+@image_comparison(baseline_images=['collection'], tol=0.1) - 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_streamplot.py b/lib/matplotlib/tests/test_streamplot.py -index ac997b2b2..cd7233e2e 100644 ---- a/lib/matplotlib/tests/test_streamplot.py -+++ b/lib/matplotlib/tests/test_streamplot.py -@@ -36,7 +36,7 @@ def test_startpoints(): - - - @image_comparison(baseline_images=['streamplot_colormap'], -- tol=0.002) -+ tol=0.1) - def test_colormap(): - X, Y, U, V = velocity_field() - plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, -diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py -index c157433c7..c13f3be2f 100644 ---- a/lib/mpl_toolkits/tests/test_mplot3d.py -+++ b/lib/mpl_toolkits/tests/test_mplot3d.py -@@ -658,7 +658,7 @@ class TestVoxels(object): - @image_comparison( - baseline_images=['voxels-xyz'], - extensions=['png'], -- tol=0.01 -+ tol=0.02 - ) - def test_xyz(self): - fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) --- -2.13.5 - diff --git a/0009-TST-Increase-some-tolerances-for-32-bit-systems.patch b/0009-TST-Increase-some-tolerances-for-32-bit-systems.patch deleted file mode 100644 index 5393acf..0000000 --- a/0009-TST-Increase-some-tolerances-for-32-bit-systems.patch +++ /dev/null @@ -1,388 +0,0 @@ -From 7adef54248198dfff9cd74178b56a383d8ba40f8 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade quantum.analyst@gmail.com -Date: Sun, 15 Oct 2017 21:11:26 -0400 -Subject: [PATCH 9/9] TST: Increase some tolerances for 32-bit systems. - -Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com ---- - lib/matplotlib/tests/test_artist.py | 3 ++- - lib/matplotlib/tests/test_axes.py | 42 ++++++++++++++++---------------- - lib/matplotlib/tests/test_collections.py | 2 +- - lib/matplotlib/tests/test_colorbar.py | 11 +++++---- - lib/matplotlib/tests/test_contour.py | 6 ++--- - lib/matplotlib/tests/test_image.py | 2 +- - lib/matplotlib/tests/test_pickle.py | 2 +- - lib/matplotlib/tests/test_quiver.py | 2 +- - lib/matplotlib/tests/test_transforms.py | 2 +- - lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- - 10 files changed, 38 insertions(+), 36 deletions(-) - -diff --git a/lib/matplotlib/tests/test_artist.py b/lib/matplotlib/tests/test_artist.py -index 71b87e5af..151e58387 100644 ---- a/lib/matplotlib/tests/test_artist.py -+++ b/lib/matplotlib/tests/test_artist.py -@@ -95,7 +95,8 @@ def test_collection_transform_of_none(): - assert isinstance(c._transOffset, mtransforms.IdentityTransform) - - --@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True) -+@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True, -+ tol=0.28) - def test_clipping(): - exterior = mpath.Path.unit_rectangle().deepcopy() - exterior.vertices *= 4 -diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index 4cf9cfa29..1cf0a00f2 100644 ---- a/lib/matplotlib/tests/test_axes.py -+++ b/lib/matplotlib/tests/test_axes.py -@@ -483,7 +483,7 @@ def test_single_point(): - plt.plot('b', 'b', 'o', data=data) - - --@image_comparison(baseline_images=['single_date']) -+@image_comparison(baseline_images=['single_date'], tol=1.97) - def test_single_date(): - time1 = [721964.0] - data1 = [-65.54] -@@ -969,7 +969,7 @@ def test_fill_between_interpolate(): - - - @image_comparison(baseline_images=['fill_between_interpolate_decreasing'], -- style='mpl20', remove_text=True) -+ style='mpl20', remove_text=True, tol=0.78) - def test_fill_between_interpolate_decreasing(): - p = np.array([724.3, 700, 655]) - t = np.array([9.4, 7, 2.2]) -@@ -1083,7 +1083,7 @@ def test_pcolormesh(): - - - @image_comparison(baseline_images=['pcolormesh_datetime_axis'], -- extensions=['png'], remove_text=False) -+ extensions=['png'], remove_text=False, tol=0.19) - def test_pcolormesh_datetime_axis(): - fig = plt.figure() - fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -1109,7 +1109,7 @@ def test_pcolormesh_datetime_axis(): - - - @image_comparison(baseline_images=['pcolor_datetime_axis'], -- extensions=['png'], remove_text=False) -+ extensions=['png'], remove_text=False, tol=0.19) - def test_pcolor_datetime_axis(): - fig = plt.figure() - fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -1159,7 +1159,7 @@ def test_canonical(): - - - @image_comparison(baseline_images=['arc_angles'], remove_text=True, -- style='default', extensions=['png']) -+ style='default', extensions=['png'], tol=0.17) - def test_arc_angles(): - from matplotlib import patches - # Ellipse parameters -@@ -2396,7 +2396,7 @@ def test_boxplot_mod_artist_after_plotting(): - - @image_comparison(baseline_images=['violinplot_vert_baseline', - 'violinplot_vert_baseline'], -- extensions=['png']) -+ extensions=['png'], tol=0.24) - def test_vert_violinplot_baseline(): - # First 9 digits of frac(sqrt(2)) - np.random.seed(414213562) -@@ -2414,7 +2414,7 @@ def test_vert_violinplot_baseline(): - - - @image_comparison(baseline_images=['violinplot_vert_showmeans'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_vert_violinplot_showmeans(): - ax = plt.axes() - # First 9 digits of frac(sqrt(3)) -@@ -2425,7 +2425,7 @@ def test_vert_violinplot_showmeans(): - - - @image_comparison(baseline_images=['violinplot_vert_showextrema'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_vert_violinplot_showextrema(): - ax = plt.axes() - # First 9 digits of frac(sqrt(5)) -@@ -2436,7 +2436,7 @@ def test_vert_violinplot_showextrema(): - - - @image_comparison(baseline_images=['violinplot_vert_showmedians'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_vert_violinplot_showmedians(): - ax = plt.axes() - # First 9 digits of frac(sqrt(7)) -@@ -2447,7 +2447,7 @@ def test_vert_violinplot_showmedians(): - - - @image_comparison(baseline_images=['violinplot_vert_showall'], -- extensions=['png']) -+ extensions=['png'], tol=0.2) - def test_vert_violinplot_showall(): - ax = plt.axes() - # First 9 digits of frac(sqrt(11)) -@@ -2458,7 +2458,7 @@ def test_vert_violinplot_showall(): - - - @image_comparison(baseline_images=['violinplot_vert_custompoints_10'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_vert_violinplot_custompoints_10(): - ax = plt.axes() - # First 9 digits of frac(sqrt(13)) -@@ -2469,7 +2469,7 @@ def test_vert_violinplot_custompoints_10(): - - - @image_comparison(baseline_images=['violinplot_vert_custompoints_200'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_vert_violinplot_custompoints_200(): - ax = plt.axes() - # First 9 digits of frac(sqrt(17)) -@@ -2480,7 +2480,7 @@ def test_vert_violinplot_custompoints_200(): - - - @image_comparison(baseline_images=['violinplot_horiz_baseline'], -- extensions=['png']) -+ extensions=['png'], tol=0.2) - def test_horiz_violinplot_baseline(): - ax = plt.axes() - # First 9 digits of frac(sqrt(19)) -@@ -2491,7 +2491,7 @@ def test_horiz_violinplot_baseline(): - - - @image_comparison(baseline_images=['violinplot_horiz_showmedians'], -- extensions=['png']) -+ extensions=['png'], tol=0.23) - def test_horiz_violinplot_showmedians(): - ax = plt.axes() - # First 9 digits of frac(sqrt(23)) -@@ -2502,7 +2502,7 @@ def test_horiz_violinplot_showmedians(): - - - @image_comparison(baseline_images=['violinplot_horiz_showmeans'], -- extensions=['png']) -+ extensions=['png'], tol=0.25) - def test_horiz_violinplot_showmeans(): - ax = plt.axes() - # First 9 digits of frac(sqrt(29)) -@@ -2513,7 +2513,7 @@ def test_horiz_violinplot_showmeans(): - - - @image_comparison(baseline_images=['violinplot_horiz_showextrema'], -- extensions=['png']) -+ extensions=['png'], tol=0.2) - def test_horiz_violinplot_showextrema(): - ax = plt.axes() - # First 9 digits of frac(sqrt(31)) -@@ -2524,7 +2524,7 @@ def test_horiz_violinplot_showextrema(): - - - @image_comparison(baseline_images=['violinplot_horiz_showall'], -- extensions=['png']) -+ extensions=['png'], tol=0.19) - def test_horiz_violinplot_showall(): - ax = plt.axes() - # First 9 digits of frac(sqrt(37)) -@@ -2535,7 +2535,7 @@ def test_horiz_violinplot_showall(): - - - @image_comparison(baseline_images=['violinplot_horiz_custompoints_10'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_horiz_violinplot_custompoints_10(): - ax = plt.axes() - # First 9 digits of frac(sqrt(41)) -@@ -2546,7 +2546,7 @@ def test_horiz_violinplot_custompoints_10(): - - - @image_comparison(baseline_images=['violinplot_horiz_custompoints_200'], -- extensions=['png']) -+ extensions=['png'], tol=0.22) - def test_horiz_violinplot_custompoints_200(): - ax = plt.axes() - # First 9 digits of frac(sqrt(43)) -@@ -3872,7 +3872,7 @@ def test_psd_noise(): - - - @image_comparison(baseline_images=['csd_freqs'], remove_text=True, -- extensions=['png']) -+ extensions=['png'], tol=0.21) - def test_csd_freqs(): - '''test axes.csd with sinusoidal stimuli''' - n = 10000 -@@ -5103,7 +5103,7 @@ def test_date_timezone_y(): - - - @image_comparison(baseline_images=['date_timezone_x_and_y'], -- extensions=['png']) -+ extensions=['png'], tol=3.05) - def test_date_timezone_x_and_y(): - # Tests issue 5575 - time_index = [pytz.timezone('UTC').localize(datetime.datetime( -diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py -index c27aeb11a..9d39a3e91 100644 ---- a/lib/matplotlib/tests/test_collections.py -+++ b/lib/matplotlib/tests/test_collections.py -@@ -468,7 +468,7 @@ def test_EllipseCollection(): - - - @image_comparison(baseline_images=['polycollection_close'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.45) - def test_polycollection_close(): - from mpl_toolkits.mplot3d import Axes3D - -diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py -index b75ba7e9f..cfbb16444 100644 ---- a/lib/matplotlib/tests/test_colorbar.py -+++ b/lib/matplotlib/tests/test_colorbar.py -@@ -96,7 +96,7 @@ def _colorbar_extension_length(spacing): - @image_comparison( - baseline_images=['colorbar_extensions_shape_uniform', - 'colorbar_extensions_shape_proportional'], -- extensions=['png']) -+ extensions=['png'], tol=0.16) - def test_colorbar_extension_shape(): - '''Test rectangular colorbar extensions.''' - # Create figures for uniform and proportionally spaced colorbars. -@@ -106,7 +106,7 @@ def test_colorbar_extension_shape(): - - @image_comparison(baseline_images=['colorbar_extensions_uniform', - 'colorbar_extensions_proportional'], -- extensions=['png']) -+ extensions=['png'], tol=0.25) - def test_colorbar_extension_length(): - '''Test variable length colorbar extensions.''' - # Create figures for uniform and proportionally spaced colorbars. -@@ -120,7 +120,7 @@ def test_colorbar_extension_length(): - 'cbar_sharing', - ], - extensions=['png'], remove_text=True, -- savefig_kwarg={'dpi': 40}) -+ savefig_kwarg={'dpi': 40}, tol=0.17) - def test_colorbar_positioning(): - data = np.arange(1200).reshape(30, 40) - levels = [0, 200, 400, 600, 800, 1000, 1200] -@@ -174,7 +174,7 @@ def test_colorbar_positioning(): - - @image_comparison(baseline_images=['cbar_with_subplots_adjust'], - extensions=['png'], remove_text=True, -- savefig_kwarg={'dpi': 40}) -+ savefig_kwarg={'dpi': 40}, tol=0.17) - def test_gridspec_make_colorbar(): - plt.figure() - data = np.arange(1200).reshape(30, 40) -@@ -234,7 +234,8 @@ def test_colorbarbase(): - - @image_comparison( - baseline_images=['colorbar_closed_patch'], -- remove_text=True) -+ remove_text=True, -+ tol=0.22) - def test_colorbar_closed_patch(): - fig = plt.figure(figsize=(8, 6)) - ax1 = fig.add_axes([0.05, 0.85, 0.9, 0.1]) -diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py -index 842bb908d..b50d71075 100644 ---- a/lib/matplotlib/tests/test_contour.py -+++ b/lib/matplotlib/tests/test_contour.py -@@ -209,7 +209,7 @@ def test_given_colors_levels_and_extends(): - - - @image_comparison(baseline_images=['contour_datetime_axis'], -- extensions=['png'], remove_text=False) -+ extensions=['png'], remove_text=False, tol=0.18) - def test_contour_datetime_axis(): - fig = plt.figure() - fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -235,7 +235,7 @@ def test_contour_datetime_axis(): - - - @image_comparison(baseline_images=['contour_test_label_transforms'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.74) - def test_labels(): - # Adapted from pylab_examples example code: contour_demo.py - # see issues #2475, #2843, and #2818 for explanation -@@ -264,7 +264,7 @@ def test_labels(): - - @image_comparison(baseline_images=['contour_corner_mask_False', - 'contour_corner_mask_True'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.19) - def test_corner_mask(): - n = 60 - mask_level = 0.95 -diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py -index 6240dd219..a4b51c52d 100644 ---- a/lib/matplotlib/tests/test_image.py -+++ b/lib/matplotlib/tests/test_image.py -@@ -748,7 +748,7 @@ def test_imshow_endianess(): - - - @image_comparison(baseline_images=['imshow_masked_interpolation'], -- remove_text=True, style='mpl20') -+ remove_text=True, style='mpl20', tol=0.25) - def test_imshow_masked_interpolation(): - - cm = copy(plt.get_cmap('viridis')) -diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py -index bd6ac6862..512f07948 100644 ---- a/lib/matplotlib/tests/test_pickle.py -+++ b/lib/matplotlib/tests/test_pickle.py -@@ -43,7 +43,7 @@ def test_simple(): - - @image_comparison(baseline_images=['multi_pickle'], - extensions=['png'], remove_text=True, -- style='mpl20') -+ style='mpl20', tol=0.11) - def test_complete(): - fig = plt.figure('Figure with a label?', figsize=(10, 6)) - -diff --git a/lib/matplotlib/tests/test_quiver.py b/lib/matplotlib/tests/test_quiver.py -index a0e1e674f..ede6bfc64 100644 ---- a/lib/matplotlib/tests/test_quiver.py -+++ b/lib/matplotlib/tests/test_quiver.py -@@ -131,7 +131,7 @@ def test_quiver_key_pivot(): - - - @image_comparison(baseline_images=['barbs_test_image'], -- extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.11) - def test_barbs(): - x = np.linspace(-5, 5, 5) - X, Y = np.meshgrid(x, x) -diff --git a/lib/matplotlib/tests/test_transforms.py b/lib/matplotlib/tests/test_transforms.py -index 8f19a50f3..2fbe41187 100644 ---- a/lib/matplotlib/tests/test_transforms.py -+++ b/lib/matplotlib/tests/test_transforms.py -@@ -75,7 +75,7 @@ def test_external_transform_api(): - - - @image_comparison(baseline_images=['pre_transform_data'], -- tol=0.08) -+ tol=0.15) - def test_pre_transform_plotting(): - # a catch-all for as many as possible plot layouts which handle - # pre-transforming the data NOTE: The axis range is important in this -diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py -index c13f3be2f..81a28aadb 100644 ---- a/lib/mpl_toolkits/tests/test_mplot3d.py -+++ b/lib/mpl_toolkits/tests/test_mplot3d.py -@@ -198,7 +198,7 @@ def test_text3d(): - ax.set_zlabel('Z axis') - - --@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.03) -+@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.05) - def test_trisurf3d(): - n_angles = 36 - n_radii = 8 --- -2.13.5 - diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 606fd26..6f62755 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -54,7 +54,7 @@ #global rctag rc1
Name: python-matplotlib -Version: 2.1.0 +Version: 2.1.1 Release: 1%{?rctag:.%{rctag}}%{?dist} Summary: Python 2D plotting library Group: Development/Libraries @@ -64,20 +64,14 @@ URL: http://matplotlib.org Source0: https://github.com/matplotlib/matplotlib/archive/v%%7Bversion%7D%%7B?rctag%7... Source1: setup.cfg
-# https://github.com/matplotlib/matplotlib/pull/9304 -Patch0001: 0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch -Patch0002: 0002-TST-Capture-all-internal-warnings.patch -Patch0003: 0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch -Patch0004: 0004-Fix-AxesImage.get_cursor_data-on-arm.patch -Patch0005: 0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch # Depending on https://bugzilla.redhat.com/show_bug.cgi?id=1502499 # this may or may not go upstream. -Patch0006: 0006-Use-fuzzy-comparison-for-stroke-join-determination.patch +Patch0001: 0001-Use-fuzzy-comparison-for-stroke-join-determination.patch
# Fedora-specific patches. -Patch1001: 0007-matplotlibrc-path-search-fix.patch -Patch1002: 0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch -Patch1686: 0009-TST-Increase-some-tolerances-for-32-bit-systems.patch +Patch1001: 0002-matplotlibrc-path-search-fix.patch +Patch1002: 0003-TST-Increase-tolerances-for-FreeType-2.7.1.patch +Patch1686: 0004-TST-Increase-some-tolerances-for-32-bit-systems.patch
BuildRequires: freetype-devel BuildRequires: libpng-devel @@ -391,11 +385,6 @@ Requires: python3-tkinter %prep %autosetup -n matplotlib-%{version}%{?rctag} -N %patch0001 -p1 -%patch0002 -p1 -%patch0003 -p1 -%patch0004 -p1 -%patch0005 -p1 -%patch0006 -p1 %patch1001 -p1 %patch1002 -p1 %ifarch i686 @@ -617,6 +606,9 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} \ %endif
%changelog +* Sun Dec 10 2017 Elliott Sales de Andrade quantum.analyst@gmail.com - 2.1.1-1 +- Update to latest release + * Mon Oct 16 2017 Elliott Sales de Andrade quantum.analyst@gmail.com - 2.1.0-1 - Update to latest release
diff --git a/sources b/sources index 6d2d577..086c88f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (matplotlib-2.1.0.tar.gz) = 19fa97eeb483218f92d72900654984387e90b9f9cc8fd62209443a6eaeb1415e68d7d9c20c5ae0028f99836db58f12aff3af56e756a4673f5130e3f5a724ca87 +SHA512 (matplotlib-2.1.1.tar.gz) = 7faa6e4d215d863c436f5d5df9b2a19cf7044ec8e75be4c2e5b70ecb9fff7db03a8f092449401755c40a9ba719d1b0a7cc286e1e5ae5926b74cf91ec3826134f
commit 09769170a4bd8e4572e4410c858608ccd6ca15ef Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Mon Oct 16 02:44:45 2017 -0400
Add changelog for update.
diff --git a/python-matplotlib.spec b/python-matplotlib.spec index c2cd13a..606fd26 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -70,6 +70,8 @@ Patch0002: 0002-TST-Capture-all-internal-warnings.patch Patch0003: 0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch Patch0004: 0004-Fix-AxesImage.get_cursor_data-on-arm.patch Patch0005: 0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch +# Depending on https://bugzilla.redhat.com/show_bug.cgi?id=1502499 +# this may or may not go upstream. Patch0006: 0006-Use-fuzzy-comparison-for-stroke-join-determination.patch
# Fedora-specific patches. @@ -615,6 +617,9 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} \ %endif
%changelog +* Mon Oct 16 2017 Elliott Sales de Andrade quantum.analyst@gmail.com - 2.1.0-1 +- Update to latest release + * Thu Sep 28 2017 Elliott Sales de Andrade quantum.analyst@gmail.com - 2.0.2-1 - Update to latest release
commit 3f6380df613d15a4337025b87e8e3eb54bab5127 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Sun Oct 15 18:16:56 2017 -0400
Increase some tolerances for 32-bit systems.
diff --git a/0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch b/0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch index eda7d8d..fc5e4a1 100644 --- a/0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch +++ b/0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch @@ -1,7 +1,7 @@ From 0420e360523e3452467bfc7d9bb19c3593cde2e7 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Thu, 5 Oct 2017 21:26:53 -0400 -Subject: [PATCH 1/8] TST: Skip sphinxext if unavailable instead of error. +Subject: [PATCH 1/9] TST: Skip sphinxext if unavailable instead of error.
Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com --- diff --git a/0002-TST-Capture-all-internal-warnings.patch b/0002-TST-Capture-all-internal-warnings.patch index 499cd78..4cbfd34 100644 --- a/0002-TST-Capture-all-internal-warnings.patch +++ b/0002-TST-Capture-all-internal-warnings.patch @@ -1,7 +1,7 @@ From 279f95dae9dcd74d51c5913254889712697d1d8a Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Fri, 6 Oct 2017 20:06:09 -0400 -Subject: [PATCH 2/8] TST: Capture all internal warnings. +Subject: [PATCH 2/9] TST: Capture all internal warnings.
These are either deprecations, or checks for old, but probably incorrect, behaviour. diff --git a/0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch b/0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch index e31393b..041284e 100644 --- a/0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch +++ b/0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch @@ -1,7 +1,7 @@ From ee4253242cbaf972443ee49c59f056d8957f4f4f Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Fri, 6 Oct 2017 20:53:16 -0400 -Subject: [PATCH 3/8] TST: Don't require LaTeX or Inkscape for nose tests. +Subject: [PATCH 3/9] TST: Don't require LaTeX or Inkscape for nose tests.
Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com --- diff --git a/0004-Fix-AxesImage.get_cursor_data-on-arm.patch b/0004-Fix-AxesImage.get_cursor_data-on-arm.patch index 7e5751f..0feb2ca 100644 --- a/0004-Fix-AxesImage.get_cursor_data-on-arm.patch +++ b/0004-Fix-AxesImage.get_cursor_data-on-arm.patch @@ -1,7 +1,7 @@ From a95786dc8f982c8f7d212badad883754fe448c98 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Sat, 7 Oct 2017 00:28:59 -0400 -Subject: [PATCH 4/8] Fix AxesImage.get_cursor_data on arm. +Subject: [PATCH 4/9] Fix AxesImage.get_cursor_data on arm.
For some reason, NaN gets converted to 0 as an integer instead of INT_MIN like on x86. diff --git a/0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch b/0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch index 20b09aa..2a7edd5 100644 --- a/0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch +++ b/0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch @@ -1,7 +1,7 @@ From aaab55ffee458dc867f3f51e2a9908c6885b7dec Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Sat, 7 Oct 2017 05:40:35 -0400 -Subject: [PATCH 5/8] TST: Use fuzzy comparison in test_psd_csd_equal. +Subject: [PATCH 5/9] TST: Use fuzzy comparison in test_psd_csd_equal.
Fixes #7158.
diff --git a/0006-Use-fuzzy-comparison-for-stroke-join-determination.patch b/0006-Use-fuzzy-comparison-for-stroke-join-determination.patch index d765404..a0419ea 100644 --- a/0006-Use-fuzzy-comparison-for-stroke-join-determination.patch +++ b/0006-Use-fuzzy-comparison-for-stroke-join-determination.patch @@ -1,7 +1,7 @@ From 5b1c238764a6f594991459f2c269e41157edba2f Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Sun, 15 Oct 2017 17:16:11 -0400 -Subject: [PATCH 6/8] Use fuzzy comparison for stroke join determination. +Subject: [PATCH 6/9] Use fuzzy comparison for stroke join determination.
This sometimes produces something just slightly different from 0 compared to x86(_64). diff --git a/0007-matplotlibrc-path-search-fix.patch b/0007-matplotlibrc-path-search-fix.patch index 7876c37..588e07d 100644 --- a/0007-matplotlibrc-path-search-fix.patch +++ b/0007-matplotlibrc-path-search-fix.patch @@ -1,7 +1,7 @@ From 400b97c30de5aa45e48a26c552dc310a3c1cf758 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 7/8] matplotlibrc path search fix +Subject: [PATCH 7/9] matplotlibrc path search fix
Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com --- diff --git a/0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch b/0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch index a735833..dd1b5c6 100644 --- a/0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch +++ b/0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch @@ -1,7 +1,7 @@ From ce6e4fd43193698df2168fa946be479e5f8b96ff Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Sun, 15 Oct 2017 17:35:47 -0400 -Subject: [PATCH 8/8] TST: Increase tolerances for FreeType 2.7.1. +Subject: [PATCH 8/9] TST: Increase tolerances for FreeType 2.7.1.
Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com --- diff --git a/0009-TST-Increase-some-tolerances-for-32-bit-systems.patch b/0009-TST-Increase-some-tolerances-for-32-bit-systems.patch new file mode 100644 index 0000000..5393acf --- /dev/null +++ b/0009-TST-Increase-some-tolerances-for-32-bit-systems.patch @@ -0,0 +1,388 @@ +From 7adef54248198dfff9cd74178b56a383d8ba40f8 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Sun, 15 Oct 2017 21:11:26 -0400 +Subject: [PATCH 9/9] TST: Increase some tolerances for 32-bit systems. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/tests/test_artist.py | 3 ++- + lib/matplotlib/tests/test_axes.py | 42 ++++++++++++++++---------------- + lib/matplotlib/tests/test_collections.py | 2 +- + lib/matplotlib/tests/test_colorbar.py | 11 +++++---- + lib/matplotlib/tests/test_contour.py | 6 ++--- + lib/matplotlib/tests/test_image.py | 2 +- + lib/matplotlib/tests/test_pickle.py | 2 +- + lib/matplotlib/tests/test_quiver.py | 2 +- + lib/matplotlib/tests/test_transforms.py | 2 +- + lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- + 10 files changed, 38 insertions(+), 36 deletions(-) + +diff --git a/lib/matplotlib/tests/test_artist.py b/lib/matplotlib/tests/test_artist.py +index 71b87e5af..151e58387 100644 +--- a/lib/matplotlib/tests/test_artist.py ++++ b/lib/matplotlib/tests/test_artist.py +@@ -95,7 +95,8 @@ def test_collection_transform_of_none(): + assert isinstance(c._transOffset, mtransforms.IdentityTransform) + + +-@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True) ++@image_comparison(baseline_images=["clip_path_clipping"], remove_text=True, ++ tol=0.28) + def test_clipping(): + exterior = mpath.Path.unit_rectangle().deepcopy() + exterior.vertices *= 4 +diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py +index 4cf9cfa29..1cf0a00f2 100644 +--- a/lib/matplotlib/tests/test_axes.py ++++ b/lib/matplotlib/tests/test_axes.py +@@ -483,7 +483,7 @@ def test_single_point(): + plt.plot('b', 'b', 'o', data=data) + + +-@image_comparison(baseline_images=['single_date']) ++@image_comparison(baseline_images=['single_date'], tol=1.97) + def test_single_date(): + time1 = [721964.0] + data1 = [-65.54] +@@ -969,7 +969,7 @@ def test_fill_between_interpolate(): + + + @image_comparison(baseline_images=['fill_between_interpolate_decreasing'], +- style='mpl20', remove_text=True) ++ style='mpl20', remove_text=True, tol=0.78) + def test_fill_between_interpolate_decreasing(): + p = np.array([724.3, 700, 655]) + t = np.array([9.4, 7, 2.2]) +@@ -1083,7 +1083,7 @@ def test_pcolormesh(): + + + @image_comparison(baseline_images=['pcolormesh_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.19) + def test_pcolormesh_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -1109,7 +1109,7 @@ def test_pcolormesh_datetime_axis(): + + + @image_comparison(baseline_images=['pcolor_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.19) + def test_pcolor_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -1159,7 +1159,7 @@ def test_canonical(): + + + @image_comparison(baseline_images=['arc_angles'], remove_text=True, +- style='default', extensions=['png']) ++ style='default', extensions=['png'], tol=0.17) + def test_arc_angles(): + from matplotlib import patches + # Ellipse parameters +@@ -2396,7 +2396,7 @@ def test_boxplot_mod_artist_after_plotting(): + + @image_comparison(baseline_images=['violinplot_vert_baseline', + 'violinplot_vert_baseline'], +- extensions=['png']) ++ extensions=['png'], tol=0.24) + def test_vert_violinplot_baseline(): + # First 9 digits of frac(sqrt(2)) + np.random.seed(414213562) +@@ -2414,7 +2414,7 @@ def test_vert_violinplot_baseline(): + + + @image_comparison(baseline_images=['violinplot_vert_showmeans'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showmeans(): + ax = plt.axes() + # First 9 digits of frac(sqrt(3)) +@@ -2425,7 +2425,7 @@ def test_vert_violinplot_showmeans(): + + + @image_comparison(baseline_images=['violinplot_vert_showextrema'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showextrema(): + ax = plt.axes() + # First 9 digits of frac(sqrt(5)) +@@ -2436,7 +2436,7 @@ def test_vert_violinplot_showextrema(): + + + @image_comparison(baseline_images=['violinplot_vert_showmedians'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_vert_violinplot_showmedians(): + ax = plt.axes() + # First 9 digits of frac(sqrt(7)) +@@ -2447,7 +2447,7 @@ def test_vert_violinplot_showmedians(): + + + @image_comparison(baseline_images=['violinplot_vert_showall'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_vert_violinplot_showall(): + ax = plt.axes() + # First 9 digits of frac(sqrt(11)) +@@ -2458,7 +2458,7 @@ def test_vert_violinplot_showall(): + + + @image_comparison(baseline_images=['violinplot_vert_custompoints_10'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_vert_violinplot_custompoints_10(): + ax = plt.axes() + # First 9 digits of frac(sqrt(13)) +@@ -2469,7 +2469,7 @@ def test_vert_violinplot_custompoints_10(): + + + @image_comparison(baseline_images=['violinplot_vert_custompoints_200'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_vert_violinplot_custompoints_200(): + ax = plt.axes() + # First 9 digits of frac(sqrt(17)) +@@ -2480,7 +2480,7 @@ def test_vert_violinplot_custompoints_200(): + + + @image_comparison(baseline_images=['violinplot_horiz_baseline'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_horiz_violinplot_baseline(): + ax = plt.axes() + # First 9 digits of frac(sqrt(19)) +@@ -2491,7 +2491,7 @@ def test_horiz_violinplot_baseline(): + + + @image_comparison(baseline_images=['violinplot_horiz_showmedians'], +- extensions=['png']) ++ extensions=['png'], tol=0.23) + def test_horiz_violinplot_showmedians(): + ax = plt.axes() + # First 9 digits of frac(sqrt(23)) +@@ -2502,7 +2502,7 @@ def test_horiz_violinplot_showmedians(): + + + @image_comparison(baseline_images=['violinplot_horiz_showmeans'], +- extensions=['png']) ++ extensions=['png'], tol=0.25) + def test_horiz_violinplot_showmeans(): + ax = plt.axes() + # First 9 digits of frac(sqrt(29)) +@@ -2513,7 +2513,7 @@ def test_horiz_violinplot_showmeans(): + + + @image_comparison(baseline_images=['violinplot_horiz_showextrema'], +- extensions=['png']) ++ extensions=['png'], tol=0.2) + def test_horiz_violinplot_showextrema(): + ax = plt.axes() + # First 9 digits of frac(sqrt(31)) +@@ -2524,7 +2524,7 @@ def test_horiz_violinplot_showextrema(): + + + @image_comparison(baseline_images=['violinplot_horiz_showall'], +- extensions=['png']) ++ extensions=['png'], tol=0.19) + def test_horiz_violinplot_showall(): + ax = plt.axes() + # First 9 digits of frac(sqrt(37)) +@@ -2535,7 +2535,7 @@ def test_horiz_violinplot_showall(): + + + @image_comparison(baseline_images=['violinplot_horiz_custompoints_10'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_horiz_violinplot_custompoints_10(): + ax = plt.axes() + # First 9 digits of frac(sqrt(41)) +@@ -2546,7 +2546,7 @@ def test_horiz_violinplot_custompoints_10(): + + + @image_comparison(baseline_images=['violinplot_horiz_custompoints_200'], +- extensions=['png']) ++ extensions=['png'], tol=0.22) + def test_horiz_violinplot_custompoints_200(): + ax = plt.axes() + # First 9 digits of frac(sqrt(43)) +@@ -3872,7 +3872,7 @@ def test_psd_noise(): + + + @image_comparison(baseline_images=['csd_freqs'], remove_text=True, +- extensions=['png']) ++ extensions=['png'], tol=0.21) + def test_csd_freqs(): + '''test axes.csd with sinusoidal stimuli''' + n = 10000 +@@ -5103,7 +5103,7 @@ def test_date_timezone_y(): + + + @image_comparison(baseline_images=['date_timezone_x_and_y'], +- extensions=['png']) ++ extensions=['png'], tol=3.05) + def test_date_timezone_x_and_y(): + # Tests issue 5575 + time_index = [pytz.timezone('UTC').localize(datetime.datetime( +diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py +index c27aeb11a..9d39a3e91 100644 +--- a/lib/matplotlib/tests/test_collections.py ++++ b/lib/matplotlib/tests/test_collections.py +@@ -468,7 +468,7 @@ def test_EllipseCollection(): + + + @image_comparison(baseline_images=['polycollection_close'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.45) + def test_polycollection_close(): + from mpl_toolkits.mplot3d import Axes3D + +diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py +index b75ba7e9f..cfbb16444 100644 +--- a/lib/matplotlib/tests/test_colorbar.py ++++ b/lib/matplotlib/tests/test_colorbar.py +@@ -96,7 +96,7 @@ def _colorbar_extension_length(spacing): + @image_comparison( + baseline_images=['colorbar_extensions_shape_uniform', + 'colorbar_extensions_shape_proportional'], +- extensions=['png']) ++ extensions=['png'], tol=0.16) + def test_colorbar_extension_shape(): + '''Test rectangular colorbar extensions.''' + # Create figures for uniform and proportionally spaced colorbars. +@@ -106,7 +106,7 @@ def test_colorbar_extension_shape(): + + @image_comparison(baseline_images=['colorbar_extensions_uniform', + 'colorbar_extensions_proportional'], +- extensions=['png']) ++ extensions=['png'], tol=0.25) + def test_colorbar_extension_length(): + '''Test variable length colorbar extensions.''' + # Create figures for uniform and proportionally spaced colorbars. +@@ -120,7 +120,7 @@ def test_colorbar_extension_length(): + 'cbar_sharing', + ], + extensions=['png'], remove_text=True, +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.17) + def test_colorbar_positioning(): + data = np.arange(1200).reshape(30, 40) + levels = [0, 200, 400, 600, 800, 1000, 1200] +@@ -174,7 +174,7 @@ def test_colorbar_positioning(): + + @image_comparison(baseline_images=['cbar_with_subplots_adjust'], + extensions=['png'], remove_text=True, +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.17) + def test_gridspec_make_colorbar(): + plt.figure() + data = np.arange(1200).reshape(30, 40) +@@ -234,7 +234,8 @@ def test_colorbarbase(): + + @image_comparison( + baseline_images=['colorbar_closed_patch'], +- remove_text=True) ++ remove_text=True, ++ tol=0.22) + def test_colorbar_closed_patch(): + fig = plt.figure(figsize=(8, 6)) + ax1 = fig.add_axes([0.05, 0.85, 0.9, 0.1]) +diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py +index 842bb908d..b50d71075 100644 +--- a/lib/matplotlib/tests/test_contour.py ++++ b/lib/matplotlib/tests/test_contour.py +@@ -209,7 +209,7 @@ def test_given_colors_levels_and_extends(): + + + @image_comparison(baseline_images=['contour_datetime_axis'], +- extensions=['png'], remove_text=False) ++ extensions=['png'], remove_text=False, tol=0.18) + def test_contour_datetime_axis(): + fig = plt.figure() + fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) +@@ -235,7 +235,7 @@ def test_contour_datetime_axis(): + + + @image_comparison(baseline_images=['contour_test_label_transforms'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.74) + def test_labels(): + # Adapted from pylab_examples example code: contour_demo.py + # see issues #2475, #2843, and #2818 for explanation +@@ -264,7 +264,7 @@ def test_labels(): + + @image_comparison(baseline_images=['contour_corner_mask_False', + 'contour_corner_mask_True'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.19) + def test_corner_mask(): + n = 60 + mask_level = 0.95 +diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py +index 6240dd219..a4b51c52d 100644 +--- a/lib/matplotlib/tests/test_image.py ++++ b/lib/matplotlib/tests/test_image.py +@@ -748,7 +748,7 @@ def test_imshow_endianess(): + + + @image_comparison(baseline_images=['imshow_masked_interpolation'], +- remove_text=True, style='mpl20') ++ remove_text=True, style='mpl20', tol=0.25) + def test_imshow_masked_interpolation(): + + cm = copy(plt.get_cmap('viridis')) +diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py +index bd6ac6862..512f07948 100644 +--- a/lib/matplotlib/tests/test_pickle.py ++++ b/lib/matplotlib/tests/test_pickle.py +@@ -43,7 +43,7 @@ def test_simple(): + + @image_comparison(baseline_images=['multi_pickle'], + extensions=['png'], remove_text=True, +- style='mpl20') ++ style='mpl20', tol=0.11) + def test_complete(): + fig = plt.figure('Figure with a label?', figsize=(10, 6)) + +diff --git a/lib/matplotlib/tests/test_quiver.py b/lib/matplotlib/tests/test_quiver.py +index a0e1e674f..ede6bfc64 100644 +--- a/lib/matplotlib/tests/test_quiver.py ++++ b/lib/matplotlib/tests/test_quiver.py +@@ -131,7 +131,7 @@ def test_quiver_key_pivot(): + + + @image_comparison(baseline_images=['barbs_test_image'], +- extensions=['png'], remove_text=True) ++ extensions=['png'], remove_text=True, tol=0.11) + def test_barbs(): + x = np.linspace(-5, 5, 5) + X, Y = np.meshgrid(x, x) +diff --git a/lib/matplotlib/tests/test_transforms.py b/lib/matplotlib/tests/test_transforms.py +index 8f19a50f3..2fbe41187 100644 +--- a/lib/matplotlib/tests/test_transforms.py ++++ b/lib/matplotlib/tests/test_transforms.py +@@ -75,7 +75,7 @@ def test_external_transform_api(): + + + @image_comparison(baseline_images=['pre_transform_data'], +- tol=0.08) ++ tol=0.15) + def test_pre_transform_plotting(): + # a catch-all for as many as possible plot layouts which handle + # pre-transforming the data NOTE: The axis range is important in this +diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py +index c13f3be2f..81a28aadb 100644 +--- a/lib/mpl_toolkits/tests/test_mplot3d.py ++++ b/lib/mpl_toolkits/tests/test_mplot3d.py +@@ -198,7 +198,7 @@ def test_text3d(): + ax.set_zlabel('Z axis') + + +-@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.03) ++@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.05) + def test_trisurf3d(): + n_angles = 36 + n_radii = 8 +-- +2.13.5 + diff --git a/python-matplotlib.spec b/python-matplotlib.spec index ee1f8fd..c2cd13a 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -75,6 +75,7 @@ Patch0006: 0006-Use-fuzzy-comparison-for-stroke-join-determination.patch # Fedora-specific patches. Patch1001: 0007-matplotlibrc-path-search-fix.patch Patch1002: 0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch +Patch1686: 0009-TST-Increase-some-tolerances-for-32-bit-systems.patch
BuildRequires: freetype-devel BuildRequires: libpng-devel @@ -386,7 +387,19 @@ Requires: python3-tkinter %endif
%prep -%autosetup -n matplotlib-%{version}%{?rctag} -p1 +%autosetup -n matplotlib-%{version}%{?rctag} -N +%patch0001 -p1 +%patch0002 -p1 +%patch0003 -p1 +%patch0004 -p1 +%patch0005 -p1 +%patch0006 -p1 +%patch1001 -p1 +%patch1002 -p1 +%ifarch i686 +# Switch to full autosetup when 32-bit systems are dropped. +%patch1686 -p1 +%endif rm -r extern/libqhull
# Copy setup.cfg to the builddir
commit c9345fa6ce419de4e2bfa4db2788fdd2910b44e5 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Sun Oct 15 18:16:56 2017 -0400
Simplify and update patches.
diff --git a/0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch b/0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch new file mode 100644 index 0000000..eda7d8d --- /dev/null +++ b/0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch @@ -0,0 +1,27 @@ +From 0420e360523e3452467bfc7d9bb19c3593cde2e7 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Thu, 5 Oct 2017 21:26:53 -0400 +Subject: [PATCH 1/8] TST: Skip sphinxext if unavailable instead of error. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/sphinxext/tests/test_tinypages.py | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/lib/matplotlib/sphinxext/tests/test_tinypages.py b/lib/matplotlib/sphinxext/tests/test_tinypages.py +index 5141a4cdd..6ee3e9e07 100644 +--- a/lib/matplotlib/sphinxext/tests/test_tinypages.py ++++ b/lib/matplotlib/sphinxext/tests/test_tinypages.py +@@ -22,8 +22,7 @@ def setup_module(): + ret = call([sys.executable, '-msphinx', '--help'], + stdout=PIPE, stderr=PIPE) + if ret != 0: +- raise RuntimeError( +- "'{} -msphinx' does not return 0".format(sys.executable)) ++ pytest.skip("'{} -msphinx' does not return 0".format(sys.executable)) + + + @cbook.deprecated("2.1", alternative="filecmp.cmp") +-- +2.13.5 + diff --git a/0002-TST-Capture-all-internal-warnings.patch b/0002-TST-Capture-all-internal-warnings.patch new file mode 100644 index 0000000..499cd78 --- /dev/null +++ b/0002-TST-Capture-all-internal-warnings.patch @@ -0,0 +1,142 @@ +From 279f95dae9dcd74d51c5913254889712697d1d8a Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Fri, 6 Oct 2017 20:06:09 -0400 +Subject: [PATCH 2/8] TST: Capture all internal warnings. + +These are either deprecations, or checks for old, but probably +incorrect, behaviour. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/tests/test_axes.py | 10 ++++++++-- + lib/matplotlib/tests/test_cbook.py | 22 ++++++++++++---------- + lib/matplotlib/tests/test_colors.py | 10 +++++++++- + lib/matplotlib/tests/test_dates.py | 5 ++++- + lib/matplotlib/tests/test_image.py | 4 ++-- + 5 files changed, 35 insertions(+), 16 deletions(-) + +diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py +index 0c22740a4..273b6f4ec 100644 +--- a/lib/matplotlib/tests/test_axes.py ++++ b/lib/matplotlib/tests/test_axes.py +@@ -1677,13 +1677,19 @@ def test_as_mpl_axes_api(): + ax_via_gca = plt.gca(projection=prj) + assert ax_via_gca is ax + # try getting the axes given a different polar projection +- ax_via_gca = plt.gca(projection=prj2) ++ with pytest.warns(UserWarning) as rec: ++ ax_via_gca = plt.gca(projection=prj2) ++ assert len(rec) == 1 ++ assert 'Requested projection is different' in str(rec[0].message) + assert ax_via_gca is not ax + assert ax.get_theta_offset() == 0, ax.get_theta_offset() + assert ax_via_gca.get_theta_offset() == np.pi, \ + ax_via_gca.get_theta_offset() + # try getting the axes given an == (not is) polar projection +- ax_via_gca = plt.gca(projection=prj3) ++ with pytest.warns(UserWarning): ++ ax_via_gca = plt.gca(projection=prj3) ++ assert len(rec) == 1 ++ assert 'Requested projection is different' in str(rec[0].message) + assert ax_via_gca is ax + plt.close() + +diff --git a/lib/matplotlib/tests/test_cbook.py b/lib/matplotlib/tests/test_cbook.py +index f254b173c..4ff2cc52a 100644 +--- a/lib/matplotlib/tests/test_cbook.py ++++ b/lib/matplotlib/tests/test_cbook.py +@@ -29,16 +29,18 @@ def test_is_hashable(): + + def test_restrict_dict(): + d = {'foo': 'bar', 1: 2} +- d1 = cbook.restrict_dict(d, ['foo', 1]) +- assert d1 == d +- d2 = cbook.restrict_dict(d, ['bar', 2]) +- assert d2 == {} +- d3 = cbook.restrict_dict(d, {'foo': 1}) +- assert d3 == {'foo': 'bar'} +- d4 = cbook.restrict_dict(d, {}) +- assert d4 == {} +- d5 = cbook.restrict_dict(d, {'foo', 2}) +- assert d5 == {'foo': 'bar'} ++ with pytest.warns(cbook.deprecation.MatplotlibDeprecationWarning) as rec: ++ d1 = cbook.restrict_dict(d, ['foo', 1]) ++ assert d1 == d ++ d2 = cbook.restrict_dict(d, ['bar', 2]) ++ assert d2 == {} ++ d3 = cbook.restrict_dict(d, {'foo': 1}) ++ assert d3 == {'foo': 'bar'} ++ d4 = cbook.restrict_dict(d, {}) ++ assert d4 == {} ++ d5 = cbook.restrict_dict(d, {'foo', 2}) ++ assert d5 == {'foo': 'bar'} ++ assert len(rec) == 5 + # check that d was not modified + assert d == {'foo': 'bar', 1: 2} + +diff --git a/lib/matplotlib/tests/test_colors.py b/lib/matplotlib/tests/test_colors.py +index 721813e62..82c73fe71 100644 +--- a/lib/matplotlib/tests/test_colors.py ++++ b/lib/matplotlib/tests/test_colors.py +@@ -690,7 +690,7 @@ def test_tableau_order(): + assert list(mcolors.TABLEAU_COLORS.values()) == dflt_cycle + + +-def test_ndarray_subclass_norm(): ++def test_ndarray_subclass_norm(recwarn): + # Emulate an ndarray subclass that handles units + # which objects when adding or subtracting with other + # arrays. See #6622 and #8696 +@@ -707,3 +707,11 @@ def test_ndarray_subclass_norm(): + mcolors.SymLogNorm(3, vmax=5, linscale=1), + mcolors.PowerNorm(1)]: + assert_array_equal(norm(data.view(MyArray)), norm(data)) ++ if isinstance(norm, mcolors.PowerNorm): ++ assert len(recwarn) == 1 ++ warn = recwarn.pop(UserWarning) ++ assert ('Power-law scaling on negative values is ill-defined' ++ in str(warn.message)) ++ else: ++ assert len(recwarn) == 0 ++ recwarn.clear() +diff --git a/lib/matplotlib/tests/test_dates.py b/lib/matplotlib/tests/test_dates.py +index 9f69d2ea7..437482f5f 100644 +--- a/lib/matplotlib/tests/test_dates.py ++++ b/lib/matplotlib/tests/test_dates.py +@@ -96,7 +96,10 @@ def test_too_many_date_ticks(): + tf = datetime.datetime(2000, 1, 20) + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1) +- ax.set_xlim((t0, tf), auto=True) ++ with pytest.warns(UserWarning) as rec: ++ ax.set_xlim((t0, tf), auto=True) ++ assert len(rec) == 1 ++ assert 'Attempting to set identical left==right' in str(rec[0].message) + ax.plot([], []) + ax.xaxis.set_major_locator(mdates.DayLocator()) + with pytest.raises(RuntimeError): +diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py +index 68a22894e..6240dd219 100644 +--- a/lib/matplotlib/tests/test_image.py ++++ b/lib/matplotlib/tests/test_image.py +@@ -603,7 +603,8 @@ def test_load_from_url(): + + @image_comparison(baseline_images=['log_scale_image'], + remove_text=True) +-def test_log_scale_image(): ++# The recwarn fixture captures a warning in image_comparison. ++def test_log_scale_image(recwarn): + Z = np.zeros((10, 10)) + Z[::2] = 1 + +@@ -615,7 +616,6 @@ def test_log_scale_image(): + ax.set_yscale('log') + + +- + @image_comparison(baseline_images=['rotate_image'], + remove_text=True) + def test_rotate_image(): +-- +2.13.5 + diff --git a/0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch b/0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch new file mode 100644 index 0000000..e31393b --- /dev/null +++ b/0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch @@ -0,0 +1,28 @@ +From ee4253242cbaf972443ee49c59f056d8957f4f4f Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Fri, 6 Oct 2017 20:53:16 -0400 +Subject: [PATCH 3/8] TST: Don't require LaTeX or Inkscape for nose tests. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/tests/test_compare_images.py | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/lib/matplotlib/tests/test_compare_images.py b/lib/matplotlib/tests/test_compare_images.py +index 488fae823..f5bb9dda8 100644 +--- a/lib/matplotlib/tests/test_compare_images.py ++++ b/lib/matplotlib/tests/test_compare_images.py +@@ -203,6 +203,10 @@ def test_nose_image_comparison(func, kwargs, errors, failures, dots, + assert failures[self.failure_count][1] in str(err[1]) + self.failure_count += 1 + ++ # Make sure that multiple extensions work, but don't require LaTeX or ++ # Inkscape to do so. ++ kwargs.setdefault('extensions', ['png', 'png', 'png']) ++ + func = image_comparison(**kwargs)(func) + loader = nose.loader.TestLoader() + suite = loader.loadTestsFromGenerator( +-- +2.13.5 + diff --git a/0004-Fix-AxesImage.get_cursor_data-on-arm.patch b/0004-Fix-AxesImage.get_cursor_data-on-arm.patch new file mode 100644 index 0000000..7e5751f --- /dev/null +++ b/0004-Fix-AxesImage.get_cursor_data-on-arm.patch @@ -0,0 +1,34 @@ +From a95786dc8f982c8f7d212badad883754fe448c98 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Sat, 7 Oct 2017 00:28:59 -0400 +Subject: [PATCH 4/8] Fix AxesImage.get_cursor_data on arm. + +For some reason, NaN gets converted to 0 as an integer instead of +INT_MIN like on x86. + +Fixes #6538. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/image.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py +index ea2331cb4..52decc3ec 100644 +--- a/lib/matplotlib/image.py ++++ b/lib/matplotlib/image.py +@@ -822,7 +822,10 @@ class AxesImage(_ImageBase): + array_extent = Bbox([[0, 0], arr.shape[:2]]) + trans = BboxTransform(boxin=data_extent, boxout=array_extent) + y, x = event.ydata, event.xdata +- i, j = trans.transform_point([y, x]).astype(int) ++ point = trans.transform_point([y, x]) ++ if any(np.isnan(point)): ++ return None ++ i, j = point.astype(int) + # Clip the coordinates at array bounds + if not (0 <= i < arr.shape[0]) or not (0 <= j < arr.shape[1]): + return None +-- +2.13.5 + diff --git a/0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch b/0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch new file mode 100644 index 0000000..20b09aa --- /dev/null +++ b/0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch @@ -0,0 +1,37 @@ +From aaab55ffee458dc867f3f51e2a9908c6885b7dec Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Sat, 7 Oct 2017 05:40:35 -0400 +Subject: [PATCH 5/8] TST: Use fuzzy comparison in test_psd_csd_equal. + +Fixes #7158. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/tests/test_mlab.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/matplotlib/tests/test_mlab.py b/lib/matplotlib/tests/test_mlab.py +index 15047bdeb..ef36eaf0b 100644 +--- a/lib/matplotlib/tests/test_mlab.py ++++ b/lib/matplotlib/tests/test_mlab.py +@@ -7,7 +7,7 @@ import tempfile + import warnings + + from numpy.testing import (assert_allclose, assert_almost_equal, +- assert_array_equal) ++ assert_array_equal, assert_array_almost_equal_nulp) + import numpy.ma.testutils as matest + import numpy as np + import datetime as datetime +@@ -1985,7 +1985,7 @@ class TestSpectral(object): + noverlap=self.nover_density, + pad_to=self.pad_to_density, + sides=self.sides) +- assert_array_equal(Pxx, Pxy) ++ assert_array_almost_equal_nulp(Pxx, Pxy) + assert_array_equal(freqsxx, freqsxy) + + def test_specgram_auto_default_equal(self): +-- +2.13.5 + diff --git a/0006-Use-fuzzy-comparison-for-stroke-join-determination.patch b/0006-Use-fuzzy-comparison-for-stroke-join-determination.patch new file mode 100644 index 0000000..d765404 --- /dev/null +++ b/0006-Use-fuzzy-comparison-for-stroke-join-determination.patch @@ -0,0 +1,30 @@ +From 5b1c238764a6f594991459f2c269e41157edba2f Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Sun, 15 Oct 2017 17:16:11 -0400 +Subject: [PATCH 6/8] Use fuzzy comparison for stroke join determination. + +This sometimes produces something just slightly different from 0 +compared to x86(_64). + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + extern/agg24-svn/include/agg_math_stroke.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/extern/agg24-svn/include/agg_math_stroke.h b/extern/agg24-svn/include/agg_math_stroke.h +index 4806dcd4b..4871d96ce 100644 +--- a/extern/agg24-svn/include/agg_math_stroke.h ++++ b/extern/agg24-svn/include/agg_math_stroke.h +@@ -391,7 +391,8 @@ namespace agg + vc.remove_all(); + + double cp = cross_product(v0.x, v0.y, v1.x, v1.y, v2.x, v2.y); +- if(cp != 0 && (cp > 0) == (m_width > 0)) ++ if ((cp > agg::vertex_dist_epsilon && m_width > 0) || ++ (cp < -agg::vertex_dist_epsilon && m_width < 0)) + { + // Inner join + //--------------- +-- +2.13.5 + diff --git a/0007-matplotlibrc-path-search-fix.patch b/0007-matplotlibrc-path-search-fix.patch new file mode 100644 index 0000000..7876c37 --- /dev/null +++ b/0007-matplotlibrc-path-search-fix.patch @@ -0,0 +1,39 @@ +From 400b97c30de5aa45e48a26c552dc310a3c1cf758 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 7/8] matplotlibrc path search fix + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/__init__.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py +index 00488a134..b989bc380 100644 +--- a/lib/matplotlib/__init__.py ++++ b/lib/matplotlib/__init__.py +@@ -635,9 +635,12 @@ def _get_data_path(): + + _file = _decode_filesystem_path(__file__) + path = os.sep.join([os.path.dirname(_file), 'mpl-data']) ++ path = '/usr/share/matplotlib/mpl-data' + if os.path.isdir(path): + return path + ++ raise RuntimeError('Could not find the matplotlib data files') ++ + # setuptools' namespace_packages may highjack this init file + # so need to try something known to be in matplotlib, not basemap + import matplotlib.afm +@@ -731,7 +734,7 @@ def matplotlib_fname(): + yield matplotlibrc + yield os.path.join(matplotlibrc, 'matplotlibrc') + yield os.path.join(_get_configdir(), 'matplotlibrc') +- yield os.path.join(get_data_path(), 'matplotlibrc') ++ yield '/etc/matplotlibrc' + + for fname in gen_candidates(): + if os.path.isfile(fname): +-- +2.13.5 + diff --git a/0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch b/0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch new file mode 100644 index 0000000..a735833 --- /dev/null +++ b/0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch @@ -0,0 +1,128 @@ +From ce6e4fd43193698df2168fa946be479e5f8b96ff Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade quantum.analyst@gmail.com +Date: Sun, 15 Oct 2017 17:35:47 -0400 +Subject: [PATCH 8/8] TST: Increase tolerances for FreeType 2.7.1. + +Signed-off-by: Elliott Sales de Andrade quantum.analyst@gmail.com +--- + lib/matplotlib/testing/decorators.py | 2 +- + lib/matplotlib/tests/test_axes.py | 4 ++-- + lib/matplotlib/tests/test_mathtext.py | 4 ++-- + lib/matplotlib/tests/test_patches.py | 2 +- + lib/matplotlib/tests/test_patheffects.py | 2 +- + lib/matplotlib/tests/test_streamplot.py | 2 +- + lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- + 7 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py +index c5e069b31..ebd68cfab 100644 +--- a/lib/matplotlib/testing/decorators.py ++++ b/lib/matplotlib/testing/decorators.py +@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, + return decorator + + +-def image_comparison(baseline_images, extensions=None, tol=0, ++def image_comparison(baseline_images, extensions=None, tol=0.1, + freetype_version=None, remove_text=False, + savefig_kwarg=None, + # Default of mpl_test_settings fixture and cleanup too. +diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py +index 273b6f4ec..4cf9cfa29 100644 +--- a/lib/matplotlib/tests/test_axes.py ++++ b/lib/matplotlib/tests/test_axes.py +@@ -672,7 +672,7 @@ def test_polar_rlabel_position(): + + + @image_comparison(baseline_images=['polar_theta_wedge'], style='default', +- tol=0.01 if six.PY2 else 0) ++ tol=0.1) + def test_polar_theta_limits(): + r = np.arange(0, 3.0, 0.01) + theta = 2*np.pi*r +@@ -4641,7 +4641,7 @@ def test_rc_spines(): + + + @image_comparison(baseline_images=['rc_grid'], extensions=['png'], +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.2) + def test_rc_grid(): + fig = plt.figure() + rc_dict0 = { +diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py +index 7ef77ce6a..b8c9c9e8b 100644 +--- a/lib/matplotlib/tests/test_mathtext.py ++++ b/lib/matplotlib/tests/test_mathtext.py +@@ -174,7 +174,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): + matplotlib.rcParams['mathtext.fontset'] = fontset + fig = plt.figure(figsize=(5.25, 0.75)) +@@ -188,7 +188,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): + 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 20ffa6b08..9f5088f0f 100644 +--- a/lib/matplotlib/tests/test_patches.py ++++ b/lib/matplotlib/tests/test_patches.py +@@ -269,7 +269,7 @@ def test_wedge_movement(): + + # png needs tol>=0.06, pdf tol>=1.617 + @image_comparison(baseline_images=['wedge_range'], +- remove_text=True, tol=1.65 if on_win else 0) ++ remove_text=True, tol=0.1) + def test_wedge_range(): + ax = plt.axes() + +diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py +index 9b8a4379c..ebbcd6529 100644 +--- a/lib/matplotlib/tests/test_patheffects.py ++++ b/lib/matplotlib/tests/test_patheffects.py +@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): + assert pe._offset == (4, 5) + + +-@image_comparison(baseline_images=['collection'], tol=0.015) ++@image_comparison(baseline_images=['collection'], tol=0.1) + 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_streamplot.py b/lib/matplotlib/tests/test_streamplot.py +index ac997b2b2..cd7233e2e 100644 +--- a/lib/matplotlib/tests/test_streamplot.py ++++ b/lib/matplotlib/tests/test_streamplot.py +@@ -36,7 +36,7 @@ def test_startpoints(): + + + @image_comparison(baseline_images=['streamplot_colormap'], +- tol=0.002) ++ tol=0.1) + def test_colormap(): + X, Y, U, V = velocity_field() + plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, +diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py +index c157433c7..c13f3be2f 100644 +--- a/lib/mpl_toolkits/tests/test_mplot3d.py ++++ b/lib/mpl_toolkits/tests/test_mplot3d.py +@@ -658,7 +658,7 @@ class TestVoxels(object): + @image_comparison( + baseline_images=['voxels-xyz'], + extensions=['png'], +- tol=0.01 ++ tol=0.02 + ) + def test_xyz(self): + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) +-- +2.13.5 + diff --git a/20_matplotlibrc_path_search_fix.patch b/20_matplotlibrc_path_search_fix.patch deleted file mode 100644 index d449500..0000000 --- a/20_matplotlibrc_path_search_fix.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/lib/matplotlib/__init__.py 2016-04-04 12:54:26.427194940 +0200 -+++ b/lib/matplotlib/__init__.py 2016-04-04 12:56:12.662590255 +0200 -@@ -635,9 +635,12 @@ def _get_data_path(): - - _file = _decode_filesystem_path(__file__) - path = os.sep.join([os.path.dirname(_file), 'mpl-data']) -+ path = '/usr/share/matplotlib/mpl-data' - if os.path.isdir(path): - return path - -+ raise RuntimeError('Could not find the matplotlib data files') -+ - # setuptools' namespace_packages may highjack this init file - # so need to try something known to be in matplotlib, not basemap - import matplotlib.afm -@@ -731,7 +734,7 @@ def matplotlib_fname(): - yield matplotlibrc - yield os.path.join(matplotlibrc, 'matplotlibrc') - yield os.path.join(_get_configdir(), 'matplotlibrc') -- yield os.path.join(get_data_path(), 'matplotlibrc') -+ yield '/etc/matplotlibrc' - - for fname in gen_candidates(): - if os.path.isfile(fname): diff --git a/python-matplotlib-disable-failing-tests-arm.patch b/python-matplotlib-disable-failing-tests-arm.patch deleted file mode 100644 index 69f1027..0000000 --- a/python-matplotlib-disable-failing-tests-arm.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -up matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests matplotlib-1.5.1/lib/matplotlib/tests/test_image.py ---- matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests 2016-05-23 14:04:41.000000000 +0200 -+++ matplotlib-1.5.1/lib/matplotlib/tests/test_image.py 2016-06-02 00:28:37.076703843 +0200 -@@ -200,7 +200,8 @@ def test_cursor_data(): - - event = MouseEvent('motion_notify_event', fig.canvas, xdisp, ydisp) - z = im.get_cursor_data(event) -- assert z is None, "Did not get None, got %d" % z -+ #0 instead of None on armv7hl -+ #assert z is None, "Did not get None, got %d" % z - - # Hmm, something is wrong here... I get 0, not None... - # But, this works further down in the tests with extents flipped -@@ -238,14 +239,16 @@ def test_cursor_data(): - - event = MouseEvent('motion_notify_event', fig.canvas, xdisp, ydisp) - z = im.get_cursor_data(event) -- assert z is None, "Did not get None, got %d" % z -+ #0 instead of None on armv7hl -+ #assert z is None, "Did not get None, got %d" % z - - x, y = 0.01, -0.01 - xdisp, ydisp = ax.transData.transform_point([x, y]) - - event = MouseEvent('motion_notify_event', fig.canvas, xdisp, ydisp) - z = im.get_cursor_data(event) -- assert z is None, "Did not get None, got %d" % z -+ #0 instead of None on armv7hl -+ #assert z is None, "Did not get None, got %d" % z - - - @image_comparison(baseline_images=['image_clip'], style='mpl20') diff --git a/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch b/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch deleted file mode 100644 index 3f5fc38..0000000 --- a/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py.new 2017-01-07 21:28:07.736224906 -0800 -@@ -1529,7 +1529,7 @@ def test_contour_colorbar(): - cbar.add_lines(cs2, erase=False) - - --@image_comparison(baseline_images=['hist2d', 'hist2d']) -+@image_comparison(baseline_images=['hist2d', 'hist2d'], tol=10.677) - def test_hist2d(): - np.random.seed(0) - # make it not symmetric in case we switch x and y axis ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mlab.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mlab.py.new 2017-01-07 21:30:47.502916717 -0800 -@@ -1153,8 +1153,6 @@ class TestDetrend(object): - 'fstims,len_x,NFFT_density,nover_density,pad_to_density,pad_to_spectrum', - [ - ([], None, -1, -1, -1, -1), -- ([4], None, -1, -1, -1, -1), -- ([4, 5, 10], None, -1, -1, -1, -1), - ([], None, None, -1, -1, None), - ([], None, -1, -1, None, None), - ([], None, None, -1, None, None), -@@ -1166,8 +1164,6 @@ class TestDetrend(object): - ], - ids=[ - 'nosig', -- 'Fs4', -- 'FsAll', - 'nosig_noNFFT', - 'nosig_nopad_to', - 'nosig_noNFFT_no_pad_to', ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_quiver.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_quiver.py.new 2017-01-07 21:29:53.441682625 -0800 -@@ -130,7 +130,7 @@ def test_quiver_key_pivot(): - ax.quiverkey(q, 0, 0.5, 1, 'W', labelpos='W') - - --@image_comparison(baseline_images=['barbs_test_image'], -+@image_comparison(baseline_images=['barbs_test_image'], tol=0.8, - extensions=['png'], remove_text=True) - def test_barbs(): - x = np.linspace(-5, 5, 5) ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py.new 2017-01-07 21:21:29.478503151 -0800 -@@ -75,7 +75,7 @@ def test_external_transform_api(): - - - @image_comparison(baseline_images=['pre_transform_data'], -- tol=0.08) -+ tol=0.9) - def test_pre_transform_plotting(): - # a catch-all for as many as possible plot layouts which handle - # pre-transforming the data NOTE: The axis range is important in this diff --git a/python-matplotlib-increase-tests-tolerance-i686.patch b/python-matplotlib-increase-tests-tolerance-i686.patch deleted file mode 100644 index 4622676..0000000 --- a/python-matplotlib-increase-tests-tolerance-i686.patch +++ /dev/null @@ -1,65 +0,0 @@ ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py.new 2017-01-07 21:35:06.874039829 -0800 -@@ -481,7 +481,7 @@ def test_single_point(): - plt.plot('b', 'b', 'o', data=data) - - --@image_comparison(baseline_images=['single_date']) -+@image_comparison(baseline_images=['single_date'], tol=1.97) - def test_single_date(): - time1 = [721964.0] - data1 = [-65.54] -@@ -5057,7 +5057,7 @@ def test_date_timezone_y(): - - - @image_comparison(baseline_images=['date_timezone_x_and_y'], -- extensions=['png']) -+ extensions=['png'], tol=3.042) - def test_date_timezone_x_and_y(): - # Tests issue 5575 - time_index = [pytz.timezone('UTC').localize(datetime.datetime( ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_collections.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_collections.py.new 2017-01-07 21:35:52.016235301 -0800 -@@ -467,7 +467,7 @@ def test_EllipseCollection(): - ax.autoscale_view() - - --@image_comparison(baseline_images=['polycollection_close'], -+@image_comparison(baseline_images=['polycollection_close'], tol=0.446, - extensions=['png'], remove_text=True) - def test_polycollection_close(): - from mpl_toolkits.mplot3d import Axes3D ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_contour.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_contour.py.new 2017-01-07 21:36:29.283396673 -0800 -@@ -234,7 +234,7 @@ def test_contour_datetime_axis(): - label.set_rotation(30) - - --@image_comparison(baseline_images=['contour_test_label_transforms'], -+@image_comparison(baseline_images=['contour_test_label_transforms'], tol=0.731, - extensions=['png'], remove_text=True) - def test_labels(): - # Adapted from pylab_examples example code: contour_demo.py ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py.new 2017-01-07 21:21:29.478503151 -0800 -@@ -75,7 +75,7 @@ def test_external_transform_api(): - - - @image_comparison(baseline_images=['pre_transform_data'], -- tol=0.08) -+ tol=0.15) - def test_pre_transform_plotting(): - # a catch-all for as many as possible plot layouts which handle - # pre-transforming the data NOTE: The axis range is important in this ---- matplotlib-2.0.0rc2/lib/mpl_toolkits/tests/test_mplot3d.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/mpl_toolkits/tests/test_mplot3d.py.new 2017-01-07 21:37:04.144547626 -0800 -@@ -198,7 +198,7 @@ def test_text3d(): - ax.set_zlabel('Z axis') - - --@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.03) -+@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.081) - def test_trisurf3d(): - n_angles = 36 - n_radii = 8 - diff --git a/python-matplotlib-increase-tests-tolerance.patch b/python-matplotlib-increase-tests-tolerance.patch deleted file mode 100644 index def952f..0000000 --- a/python-matplotlib-increase-tests-tolerance.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- matplotlib-2.0.0rc2/lib/matplotlib/testing/decorators.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/testing/decorators.py.new 2017-01-07 21:19:51.078081193 -0800 -@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, - return decorator - - --def image_comparison(baseline_images, extensions=None, tol=0, -+def image_comparison(baseline_images, extensions=None, tol=0.306, - freetype_version=None, remove_text=False, - savefig_kwarg=None, - # Default of mpl_test_settings fixture and cleanup too. ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mathtext.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mathtext.py.new 2017-01-07 22:02:42.396426402 -0800 -@@ -174,7 +174,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.310) - def test_mathtext_rendering(baseline_images, fontset, index, test): - matplotlib.rcParams['mathtext.fontset'] = fontset - fig = plt.figure(figsize=(5.25, 0.75)) -@@ -188,7 +188,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.310) - def test_mathfont_rendering(baseline_images, fontset, index, test): - matplotlib.rcParams['mathtext.fontset'] = fontset - fig = plt.figure(figsize=(5.25, 0.75)) ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_patheffects.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_patheffects.py.new 2017-01-07 21:21:08.014411109 -0800 -@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): - assert pe._offset == (4, 5) - - --@image_comparison(baseline_images=['collection'], tol=0.015) -+@image_comparison(baseline_images=['collection'], tol=0.083) - def test_collection(): - x, y = np.meshgrid(np.linspace(0, 10, 150), np.linspace(-5, 5, 100)) - data = np.sin(x) + np.cos(y) ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_streamplot.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_streamplot.py.new 2017-01-07 21:20:42.180300328 -0800 -@@ -36,7 +36,7 @@ def test_startpoints(): - - - @image_comparison(baseline_images=['streamplot_colormap'], -- tol=0.002) -+ tol=0.009) - def test_colormap(): - X, Y, U, V = velocity_field() - plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, diff --git a/python-matplotlib-qhull.patch b/python-matplotlib-qhull.patch deleted file mode 100644 index 1e266c3..0000000 --- a/python-matplotlib-qhull.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up matplotlib-1.5.2rc2/setupext.py.qh matplotlib-1.5.2rc2/setupext.py ---- matplotlib-1.5.2rc2/setupext.py.qh 2016-06-04 00:09:22.605827942 +0200 -+++ matplotlib-1.5.2rc2/setupext.py 2016-06-04 00:09:22.611827972 +0200 -@@ -1018,7 +1018,7 @@ class Qhull(SetupPackage): - # present on this system, so check if the header files can be - # found. - include_dirs = [ -- os.path.join(x, 'qhull') for x in get_include_dirs()] -+ os.path.join(x, 'libqhull') for x in get_include_dirs()] - if has_include_file(include_dirs, 'qhull_a.h'): - return 'Using system Qhull (version unknown, no pkg-config info)' - else: -diff -up matplotlib-1.5.2rc2/src/qhull_wrap.c.qh matplotlib-1.5.2rc2/src/qhull_wrap.c ---- matplotlib-1.5.2rc2/src/qhull_wrap.c.qh 2016-05-27 04:19:34.000000000 +0200 -+++ matplotlib-1.5.2rc2/src/qhull_wrap.c 2016-06-04 00:09:22.608827957 +0200 -@@ -7,7 +7,7 @@ - */ - #include "Python.h" - #include "numpy/noprefix.h" --#include "qhull/qhull_a.h" -+#include <libqhull/qhull_a.h> - #include <stdio.h> - - diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 2dc1d64..ee1f8fd 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -64,16 +64,17 @@ URL: http://matplotlib.org Source0: https://github.com/matplotlib/matplotlib/archive/v%%7Bversion%7D%%7B?rctag%7... Source1: setup.cfg
-Patch2: 20_matplotlibrc_path_search_fix.patch -# https://github.com/matplotlib/matplotlib/issues/6538 -Patch8: python-matplotlib-disable-failing-tests-arm.patch -# https://github.com/matplotlib/matplotlib/issues/7134 -# https://github.com/matplotlib/matplotlib/issues/7158 -# https://github.com/matplotlib/matplotlib/issues/7159 -# https://github.com/matplotlib/matplotlib/issues/7797 -Patch10: python-matplotlib-increase-tests-tolerance.patch -Patch11: python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch -Patch13: python-matplotlib-increase-tests-tolerance-i686.patch +# https://github.com/matplotlib/matplotlib/pull/9304 +Patch0001: 0001-TST-Skip-sphinxext-if-unavailable-instead-of-error.patch +Patch0002: 0002-TST-Capture-all-internal-warnings.patch +Patch0003: 0003-TST-Don-t-require-LaTeX-or-Inkscape-for-nose-tests.patch +Patch0004: 0004-Fix-AxesImage.get_cursor_data-on-arm.patch +Patch0005: 0005-TST-Use-fuzzy-comparison-in-test_psd_csd_equal.patch +Patch0006: 0006-Use-fuzzy-comparison-for-stroke-join-determination.patch + +# Fedora-specific patches. +Patch1001: 0007-matplotlibrc-path-search-fix.patch +Patch1002: 0008-TST-Increase-tolerances-for-FreeType-2.7.1.patch
BuildRequires: freetype-devel BuildRequires: libpng-devel @@ -102,7 +103,9 @@ BuildRequires: python-setuptools BuildRequires: python-six BuildRequires: python-subprocess32 BuildRequires: python2-devel +%if %{fedora} > 26 BuildRequires: python2-backports +%endif BuildRequires: python2-backports-functools_lru_cache BuildRequires: python2-pillow BuildRequires: pytz @@ -383,7 +386,7 @@ Requires: python3-tkinter %endif
%prep -%setup -q -n matplotlib-%{version}%{?rctag} +%autosetup -n matplotlib-%{version}%{?rctag} -p1 rm -r extern/libqhull
# Copy setup.cfg to the builddir @@ -402,18 +405,6 @@ fi sed -i 's/(USE_FONTCONFIG = )False/\1True/' lib/matplotlib/font_manager.py %endif
-%patch2 -p1 -%ifarch armv7hl aarch64 -%patch8 -p1 -b .tests-arm -%endif - -%patch10 -p1 -b .tests -%ifarch aarch64 %{power64} s390 s390x -%patch11 -p1 -b .tests-aarch64ppc64 -%endif -%ifarch i686 -%patch13 -p1 -b .tests-i686 -%endif
%build export http_proxy=http://127.0.0.1/ @@ -503,9 +494,7 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} \
%files -n python2-matplotlib %license LICENSE/ -%doc CONTRIBUTING.md -%doc CHANGELOG -%doc README.rst +%doc README.rst CONTRIBUTING.md %{python2_sitearch}/*egg-info %{python2_sitearch}/matplotlib-*-nspkg.pth %{python2_sitearch}/matplotlib/ @@ -564,9 +553,7 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} \ %if %{with_python3} %files -n python3-matplotlib %license LICENSE/ -%doc CONTRIBUTING.md -%doc CHANGELOG -%doc README.rst +%doc README.rst CONTRIBUTING.md %{python3_sitearch}/*egg-info %{python3_sitearch}/matplotlib-*-nspkg.pth %{python3_sitearch}/matplotlib/
commit 4cf6018279229d045a745a37bfe16fdc219f3868 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Sat Oct 7 04:44:54 2017 -0400
Use 24-bit screen for Xvfb.
Without this mode, the Qt5 test crashes.
diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 0797100..2dc1d64 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -477,13 +477,15 @@ echo "backend : %{backend}" > matplotlibrc MPLCONFIGDIR=$PWD \ MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \ PYTHONPATH=%{buildroot}%{python2_sitearch} \ - xvfb-run -a %{__python2} -m pytest --pyargs matplotlib -m 'not network' -k 'not test_polycollection_close' -ra + xvfb-run -a -s "-screen 0 640x480x24" \ + %{__python2} -m pytest --pyargs matplotlib -m 'not network' -k 'not test_polycollection_close' -ra
%if %{with_python3} MPLCONFIGDIR=$PWD \ MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \ PYTHONPATH=%{buildroot}%{python3_sitearch} \ - xvfb-run -a %{__python3} tests.py -m 'not network' -ra + xvfb-run -a -s "-screen 0 640x480x24" \ + %{__python3} tests.py -m 'not network' -ra %endif %endif # run_tests
commit f28833ef2d1e5954b04ea3cc380d28d5db13051d Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Fri Oct 6 21:22:37 2017 -0400
Disable broken tests.
diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 478bc31..0797100 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -472,16 +472,18 @@ rm -rf build*/ export http_proxy=http://127.0.0.1/ # This should match the default backend echo "backend : %{backend}" > matplotlibrc +# Full tests are not run because pytest doesn't seem to understand namespace +# packages in PYTHONPATH. MPLCONFIGDIR=$PWD \ MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \ PYTHONPATH=%{buildroot}%{python2_sitearch} \ - xvfb-run -a %{__python2} -m pytest -m 'not network' --pyargs matplotlib -ra + xvfb-run -a %{__python2} -m pytest --pyargs matplotlib -m 'not network' -k 'not test_polycollection_close' -ra
%if %{with_python3} MPLCONFIGDIR=$PWD \ MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \ PYTHONPATH=%{buildroot}%{python3_sitearch} \ - xvfb-run -a %{__python3} -m pytest -m 'not network' --pyargs matplotlib -ra + xvfb-run -a %{__python3} tests.py -m 'not network' -ra %endif %endif # run_tests
commit 58a05487aac19f9c44373a725898bd888e741779 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Fri Oct 6 19:29:27 2017 -0400
Update to final 2.1.0 release.
diff --git a/.gitignore b/.gitignore index fbb431c..16e590d 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-2.0.1.tar.gz /matplotlib-2.0.2.tar.gz /matplotlib-2.1.0rc1.tar.gz +/matplotlib-2.1.0.tar.gz diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 49a1540..478bc31 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -51,7 +51,7 @@ # Use the same directory of the main package for subpackage licence and docs %global _docdir_fmt %{name}
-%global rctag rc1 +#global rctag rc1
Name: python-matplotlib Version: 2.1.0 diff --git a/sources b/sources index e3fa4e5..6d2d577 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (matplotlib-2.1.0rc1.tar.gz) = 192a9d3de0d2e5e11dd4a4a937367424dccc25f2bd804f3d0dfdadc3115d06125d1ffb7852c77d4eea0d8de06f991b3b8dd995346b9591bbecee6c83014aa0d9 +SHA512 (matplotlib-2.1.0.tar.gz) = 19fa97eeb483218f92d72900654984387e90b9f9cc8fd62209443a6eaeb1415e68d7d9c20c5ae0028f99836db58f12aff3af56e756a4673f5130e3f5a724ca87
commit 5ff9cbe46037a9d91a3348576e40e8af3cf93781 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Wed Sep 27 01:29:13 2017 -0400
Update to 2.1.0 rc1.
diff --git a/.gitignore b/.gitignore index 0e7af29..fbb431c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-2.0.0-without-copyrighted.tar.xz /matplotlib-2.0.1.tar.gz /matplotlib-2.0.2.tar.gz +/matplotlib-2.1.0rc1.tar.gz diff --git a/20_matplotlibrc_path_search_fix.patch b/20_matplotlibrc_path_search_fix.patch index 32cd91e..d449500 100644 --- a/20_matplotlibrc_path_search_fix.patch +++ b/20_matplotlibrc_path_search_fix.patch @@ -1,6 +1,6 @@ --- a/lib/matplotlib/__init__.py 2016-04-04 12:54:26.427194940 +0200 +++ b/lib/matplotlib/__init__.py 2016-04-04 12:56:12.662590255 +0200 -@@ -713,9 +713,12 @@ def _get_data_path(): +@@ -635,9 +635,12 @@ def _get_data_path():
_file = _decode_filesystem_path(__file__) path = os.sep.join([os.path.dirname(_file), 'mpl-data']) @@ -13,12 +13,12 @@ # setuptools' namespace_packages may highjack this init file # so need to try something known to be in matplotlib, not basemap import matplotlib.afm -@@ -843,7 +846,7 @@ def matplotlib_fname(): - home, '.matplotlib', 'matplotlibrc') - return fname +@@ -731,7 +734,7 @@ def matplotlib_fname(): + yield matplotlibrc + yield os.path.join(matplotlibrc, 'matplotlibrc') + yield os.path.join(_get_configdir(), 'matplotlibrc') +- yield os.path.join(get_data_path(), 'matplotlibrc') ++ yield '/etc/matplotlibrc'
-- path = get_data_path() # guaranteed to exist or raise -+ path = '/etc' # guaranteed to exist or raise - fname = os.path.join(path, 'matplotlibrc') - if not os.path.exists(fname): - warnings.warn('Could not find matplotlibrc; using defaults') + for fname in gen_candidates(): + if os.path.isfile(fname): diff --git a/python-matplotlib-disable-failing-tests-arm.patch b/python-matplotlib-disable-failing-tests-arm.patch index 3653fdb..69f1027 100644 --- a/python-matplotlib-disable-failing-tests-arm.patch +++ b/python-matplotlib-disable-failing-tests-arm.patch @@ -1,7 +1,7 @@ diff -up matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests matplotlib-1.5.1/lib/matplotlib/tests/test_image.py --- matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests 2016-05-23 14:04:41.000000000 +0200 +++ matplotlib-1.5.1/lib/matplotlib/tests/test_image.py 2016-06-02 00:28:37.076703843 +0200 -@@ -217,7 +217,8 @@ def test_cursor_data(): +@@ -200,7 +200,8 @@ def test_cursor_data():
event = MouseEvent('motion_notify_event', fig.canvas, xdisp, ydisp) z = im.get_cursor_data(event) @@ -11,7 +11,7 @@ diff -up matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests matplotlib-1.
# Hmm, something is wrong here... I get 0, not None... # But, this works further down in the tests with extents flipped -@@ -255,14 +256,16 @@ def test_cursor_data(): +@@ -238,14 +239,16 @@ def test_cursor_data():
event = MouseEvent('motion_notify_event', fig.canvas, xdisp, ydisp) z = im.get_cursor_data(event) @@ -29,4 +29,4 @@ diff -up matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests matplotlib-1. + #assert z is None, "Did not get None, got %d" % z
- @image_comparison(baseline_images=['image_clip']) + @image_comparison(baseline_images=['image_clip'], style='mpl20') diff --git a/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch b/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch index c3db33a..3f5fc38 100644 --- a/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch +++ b/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch @@ -1,6 +1,6 @@ --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py.new 2017-01-07 21:28:07.736224906 -0800 -@@ -1322,7 +1322,7 @@ def test_contour_colorbar(): +@@ -1529,7 +1529,7 @@ def test_contour_colorbar(): cbar.add_lines(cs2, erase=False)
@@ -8,103 +8,30 @@ +@image_comparison(baseline_images=['hist2d', 'hist2d'], tol=10.677) def test_hist2d(): np.random.seed(0) - # make it not symetric in case we switch x and y axis + # make it not symmetric in case we switch x and y axis --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mlab.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mlab.py.new 2017-01-07 21:30:47.502916717 -0800 -@@ -2279,90 +2279,6 @@ class spectral_testcase_nosig_complex_defaultsided( - iscomplex=True, sides='default', nsides=2) - - --class spectral_testcase_Fs4_real_onesided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=False, sides='onesided', nsides=1) -- -- --class spectral_testcase_Fs4_real_twosided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=False, sides='twosided', nsides=2) -- -- --class spectral_testcase_Fs4_real_defaultsided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=False, sides='default', nsides=1) -- -- --class spectral_testcase_Fs4_complex_onesided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=True, sides='onesided', nsides=1) -- -- --class spectral_testcase_Fs4_complex_twosided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=True, sides='twosided', nsides=2) -- -- --class spectral_testcase_Fs4_complex_defaultsided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=True, sides='default', nsides=2) -- -- --class spectral_testcase_FsAll_real_onesided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=False, sides='onesided', nsides=1) -- -- --class spectral_testcase_FsAll_real_twosided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=False, sides='twosided', nsides=2) -- -- --class spectral_testcase_FsAll_real_defaultsided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=False, sides='default', nsides=1) -- -- --class spectral_testcase_FsAll_complex_onesided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=True, sides='onesided', nsides=1) -- -- --class spectral_testcase_FsAll_complex_twosided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=True, sides='twosided', nsides=2) -- -- --class spectral_testcase_FsAll_complex_defaultsided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=True, sides='default', nsides=2) -- -- - class spectral_testcase_nosig_real_onesided_noNFFT( - spectral_testcase_nosig_real_onesided): - def setUp(self): +@@ -1153,8 +1153,6 @@ class TestDetrend(object): + 'fstims,len_x,NFFT_density,nover_density,pad_to_density,pad_to_spectrum', + [ + ([], None, -1, -1, -1, -1), +- ([4], None, -1, -1, -1, -1), +- ([4, 5, 10], None, -1, -1, -1, -1), + ([], None, None, -1, -1, None), + ([], None, -1, -1, None, None), + ([], None, None, -1, None, None), +@@ -1166,8 +1164,6 @@ class TestDetrend(object): + ], + ids=[ + 'nosig', +- 'Fs4', +- 'FsAll', + 'nosig_noNFFT', + 'nosig_nopad_to', + 'nosig_noNFFT_no_pad_to', --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_quiver.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_quiver.py.new 2017-01-07 21:29:53.441682625 -0800 -@@ -135,7 +135,7 @@ def test_quiver_key_pivot(): +@@ -130,7 +130,7 @@ def test_quiver_key_pivot(): ax.quiverkey(q, 0, 0.5, 1, 'W', labelpos='W')
@@ -115,7 +42,7 @@ x = np.linspace(-5, 5, 5) --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py.new 2017-01-07 21:21:29.478503151 -0800 -@@ -82,7 +82,7 @@ def test_external_transform_api(): +@@ -75,7 +75,7 @@ def test_external_transform_api():
@image_comparison(baseline_images=['pre_transform_data'], diff --git a/python-matplotlib-increase-tests-tolerance-i686.patch b/python-matplotlib-increase-tests-tolerance-i686.patch index 06c77d0..4622676 100644 --- a/python-matplotlib-increase-tests-tolerance-i686.patch +++ b/python-matplotlib-increase-tests-tolerance-i686.patch @@ -1,7 +1,7 @@ --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py.new 2017-01-07 21:35:06.874039829 -0800 -@@ -389,7 +389,7 @@ def test_single_point(): - plt.plot('b','b', 'o', data=data) +@@ -481,7 +481,7 @@ def test_single_point(): + plt.plot('b', 'b', 'o', data=data)
-@image_comparison(baseline_images=['single_date']) @@ -9,7 +9,7 @@ def test_single_date(): time1 = [721964.0] data1 = [-65.54] -@@ -4759,7 +4759,7 @@ def test_date_timezone_y(): +@@ -5057,7 +5057,7 @@ def test_date_timezone_y():
@image_comparison(baseline_images=['date_timezone_x_and_y'], @@ -20,7 +20,7 @@ time_index = [pytz.timezone('UTC').localize(datetime.datetime( --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_collections.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_collections.py.new 2017-01-07 21:35:52.016235301 -0800 -@@ -489,7 +489,7 @@ def test_EllipseCollection(): +@@ -467,7 +467,7 @@ def test_EllipseCollection(): ax.autoscale_view()
@@ -31,7 +31,7 @@ from mpl_toolkits.mplot3d import Axes3D --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_contour.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_contour.py.new 2017-01-07 21:36:29.283396673 -0800 -@@ -233,7 +233,7 @@ def test_contour_datetime_axis(): +@@ -234,7 +234,7 @@ def test_contour_datetime_axis(): label.set_rotation(30)
@@ -42,7 +42,7 @@ # Adapted from pylab_examples example code: contour_demo.py --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py.new 2017-01-07 21:21:29.478503151 -0800 -@@ -82,7 +82,7 @@ def test_external_transform_api(): +@@ -75,7 +75,7 @@ def test_external_transform_api():
@image_comparison(baseline_images=['pre_transform_data'], @@ -53,7 +53,7 @@ # pre-transforming the data NOTE: The axis range is important in this --- matplotlib-2.0.0rc2/lib/mpl_toolkits/tests/test_mplot3d.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/mpl_toolkits/tests/test_mplot3d.py.new 2017-01-07 21:37:04.144547626 -0800 -@@ -171,7 +171,7 @@ def test_text3d(): +@@ -198,7 +198,7 @@ def test_text3d(): ax.set_zlabel('Z axis')
diff --git a/python-matplotlib-increase-tests-tolerance.patch b/python-matplotlib-increase-tests-tolerance.patch index 0abeef9..def952f 100644 --- a/python-matplotlib-increase-tests-tolerance.patch +++ b/python-matplotlib-increase-tests-tolerance.patch @@ -1,29 +1,38 @@ --- matplotlib-2.0.0rc2/lib/matplotlib/testing/decorators.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/testing/decorators.py.new 2017-01-07 21:19:51.078081193 -0800 -@@ -266,7 +266,7 @@ class ImageComparisonTest(CleanupTest): +@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, + return decorator
- yield do_test, fignum, actual_fname, expected_fname
--def image_comparison(baseline_images=None, extensions=None, tol=0, -+def image_comparison(baseline_images=None, extensions=None, tol=0.306, +-def image_comparison(baseline_images, extensions=None, tol=0, ++def image_comparison(baseline_images, extensions=None, tol=0.306, freetype_version=None, remove_text=False, - savefig_kwarg=None, style='_classic_test'): - """ + savefig_kwarg=None, + # Default of mpl_test_settings fixture and cleanup too. --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mathtext.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mathtext.py.new 2017-01-07 22:02:42.396426402 -0800 -@@ -159,7 +159,7 @@ for fonts, chars in font_test_specs: - - def make_set(basename, fontset, tests, extensions=None): - def make_test(filename, test): -- @image_comparison(baseline_images=[filename], extensions=extensions) -+ @image_comparison(baseline_images=[filename], extensions=extensions, tol=0.310) - def single_test(): - matplotlib.rcParams['mathtext.fontset'] = fontset - fig = plt.figure(figsize=(5.25, 0.75)) +@@ -174,7 +174,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.310) + def test_mathtext_rendering(baseline_images, fontset, index, test): + matplotlib.rcParams['mathtext.fontset'] = fontset + fig = plt.figure(figsize=(5.25, 0.75)) +@@ -188,7 +188,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.310) + def test_mathfont_rendering(baseline_images, fontset, index, test): + matplotlib.rcParams['mathtext.fontset'] = fontset + fig = plt.figure(figsize=(5.25, 0.75)) --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_patheffects.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_patheffects.py.new 2017-01-07 21:21:08.014411109 -0800 -@@ -138,7 +138,7 @@ def test_SimplePatchShadow_offset(): - assert_equal(pe._offset, (4, 5)) +@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): + assert pe._offset == (4, 5)
-@image_comparison(baseline_images=['collection'], tol=0.015) @@ -31,20 +40,9 @@ def test_collection(): x, y = np.meshgrid(np.linspace(0, 10, 150), np.linspace(-5, 5, 100)) data = np.sin(x) + np.cos(y) ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_png.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_png.py.new 2017-01-07 21:20:22.388215456 -0800 -@@ -17,7 +17,7 @@ on_win = (sys.platform == 'win32') - - - @image_comparison(baseline_images=['pngsuite'], extensions=['png'], -- tol=0.01 if on_win else 0) -+ tol=0.014) - def test_pngsuite(): - dirname = os.path.join( - os.path.dirname(__file__), --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_streamplot.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_streamplot.py.new 2017-01-07 21:20:42.180300328 -0800 -@@ -18,7 +18,7 @@ def velocity_field(): +@@ -36,7 +36,7 @@ def test_startpoints():
@image_comparison(baseline_images=['streamplot_colormap'], diff --git a/python-matplotlib.spec b/python-matplotlib.spec index c227a98..49a1540 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -51,10 +51,10 @@ # Use the same directory of the main package for subpackage licence and docs %global _docdir_fmt %{name}
-#global rctag rc2 +%global rctag rc1
Name: python-matplotlib -Version: 2.0.2 +Version: 2.1.0 Release: 1%{?rctag:.%{rctag}}%{?dist} Summary: Python 2D plotting library Group: Development/Libraries @@ -67,8 +67,6 @@ Source1: setup.cfg Patch2: 20_matplotlibrc_path_search_fix.patch # https://github.com/matplotlib/matplotlib/issues/6538 Patch8: python-matplotlib-disable-failing-tests-arm.patch -# https://github.com/matplotlib/matplotlib/issues/6791 -Patch9: python-matplotlib-qhull.patch # https://github.com/matplotlib/matplotlib/issues/7134 # https://github.com/matplotlib/matplotlib/issues/7158 # https://github.com/matplotlib/matplotlib/issues/7159 @@ -99,13 +97,13 @@ Summary: Python 2D plotting library BuildRequires: numpy BuildRequires: pyparsing BuildRequires: python-dateutil -BuildRequires: python-pycxx-devel BuildRequires: python-pyside BuildRequires: python-setuptools BuildRequires: python-six BuildRequires: python-subprocess32 BuildRequires: python2-devel -BuildRequires: python2-functools32 +BuildRequires: python2-backports +BuildRequires: python2-backports-functools_lru_cache BuildRequires: python2-pillow BuildRequires: pytz %if %{with_html} @@ -119,7 +117,7 @@ BuildRequires: python2-colorspacious BuildRequires: python2-cycler >= 0.10.0 %endif %if %{run_tests} -BuildRequires: python-nose +BuildRequires: python2-pytest BuildRequires: python2-cycler >= 0.10.0 BuildRequires: python2-mock %endif @@ -129,7 +127,7 @@ Requires: numpy Requires: pyparsing Requires: python2-cycler >= 0.10.0 Requires: python-dateutil -Requires: python2-functools32 +Requires: python2-backports-functools_lru_cache Requires: python-matplotlib-data = %{version}-%{release} %{?backend_subpackage:Requires: python2-matplotlib-%{backend_subpackage}%{?_isa} = %{version}-%{release}} Recommends: python2-pillow @@ -292,7 +290,6 @@ BuildRequires: python3-setuptools BuildRequires: python3-gobject BuildRequires: python3-numpy BuildRequires: python3-pillow -BuildRequires: python3-pycxx-devel BuildRequires: python3-pyparsing BuildRequires: python3-pytz BuildRequires: python3-six @@ -304,8 +301,7 @@ Requires: python3-cycler >= 0.10.0 Requires: python3-dateutil Requires: python3-matplotlib-%{?backend_subpackage}%{!?backend_subpackage:tk}%{?_isa} = %{version}-%{release} %if %{run_tests} -BuildRequires: python3-mock -BuildRequires: python3-nose +BuildRequires: python3-pytest %endif Requires: python3-numpy Recommends: python3-pillow @@ -388,7 +384,7 @@ Requires: python3-tkinter
%prep %setup -q -n matplotlib-%{version}%{?rctag} -rm -r extern/qhull +rm -r extern/libqhull
# Copy setup.cfg to the builddir sed 's/(backend = ).*/\1%{backend}/' >setup.cfg <%{SOURCE1} @@ -411,10 +407,6 @@ sed -i 's/(USE_FONTCONFIG = )False/\1True/' lib/matplotlib/font_manager.py %patch8 -p1 -b .tests-arm %endif
-%if 0%{?fedora} > 24 -# Installation paths changed -%patch9 -p1 -b .qh -%endif %patch10 -p1 -b .tests %ifarch aarch64 %{power64} s390 s390x %patch11 -p1 -b .tests-aarch64ppc64 @@ -474,19 +466,22 @@ rm -fr %{buildroot}%{python3_sitearch}/matplotlib/mpl-data
%if %{run_tests} %check +# These files confuse pytest, and we want to test the installed copy. +rm -rf build*/ + export http_proxy=http://127.0.0.1/ # This should match the default backend echo "backend : %{backend}" > matplotlibrc MPLCONFIGDIR=$PWD \ MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \ PYTHONPATH=%{buildroot}%{python2_sitearch} \ - xvfb-run -a %{__python2} tests.py --no-network --processes=$(getconf _NPROCESSORS_ONLN) --process-timeout=300 + xvfb-run -a %{__python2} -m pytest -m 'not network' --pyargs matplotlib -ra
%if %{with_python3} MPLCONFIGDIR=$PWD \ MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \ PYTHONPATH=%{buildroot}%{python3_sitearch} \ - xvfb-run -a %{__python3} tests.py --no-network --processes=$(getconf _NPROCESSORS_ONLN) --process-timeout=300 + xvfb-run -a %{__python3} -m pytest -m 'not network' --pyargs matplotlib -ra %endif %endif # run_tests
diff --git a/setup.cfg b/setup.cfg index a68796b..978e5f4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,7 @@ [packages] tests = True +toolkits = True +toolkits_tests = True
[rc_options] backend = GTKAgg diff --git a/sources b/sources index 59daa0d..e3fa4e5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (matplotlib-2.0.2.tar.gz) = 154117eeb2a285bb3cd4a7e31b4a9681d036af558ad3c5b79a37916ca57e0961b1836ee4ce92bc5aef32fa64a7c980047d6c3d75cd529c8c51d6cabd152942fc +SHA512 (matplotlib-2.1.0rc1.tar.gz) = 192a9d3de0d2e5e11dd4a4a937367424dccc25f2bd804f3d0dfdadc3115d06125d1ffb7852c77d4eea0d8de06f991b3b8dd995346b9591bbecee6c83014aa0d9
commit 730689d98e76a34f24c9e80d9dfe69b5e208a930 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Thu Sep 28 02:40:53 2017 -0400
Update to Matplotlib 2.0.2.
diff --git a/.gitignore b/.gitignore index 07019e0..0e7af29 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-2.0.0.tar.gz /matplotlib-2.0.0-without-copyrighted.tar.xz /matplotlib-2.0.1.tar.gz +/matplotlib-2.0.2.tar.gz diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 8d91af3..c227a98 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -54,7 +54,7 @@ #global rctag rc2
Name: python-matplotlib -Version: 2.0.1 +Version: 2.0.2 Release: 1%{?rctag:.%{rctag}}%{?dist} Summary: Python 2D plotting library Group: Development/Libraries @@ -616,6 +616,9 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} \ %endif
%changelog +* Thu Sep 28 2017 Elliott Sales de Andrade quantum.analyst@gmail.com - 2.0.2-1 +- Update to latest release + * Thu Sep 28 2017 Elliott Sales de Andrade quantum.analyst@gmail.com - 2.0.1-1 - Update to latest release
diff --git a/sources b/sources index 74e4583..59daa0d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (matplotlib-2.0.1.tar.gz) = 763e7b980d66a66b8928f2dcb09b48a8e13f1092a6aa52ffa5d0247ee10747f97d35cf059f0cce51a95fce240850c4c03c6e49d9b26fddfcc4f049864d8767ce +SHA512 (matplotlib-2.0.2.tar.gz) = 154117eeb2a285bb3cd4a7e31b4a9681d036af558ad3c5b79a37916ca57e0961b1836ee4ce92bc5aef32fa64a7c980047d6c3d75cd529c8c51d6cabd152942fc
commit 14e87c45462554f2e26bf363d34dec5a4b15965b Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Thu Sep 28 01:15:02 2017 -0400
Update to 2.0.1.
diff --git a/.gitignore b/.gitignore index 250f927..07019e0 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-2.0.0rc2.tar.gz /matplotlib-2.0.0.tar.gz /matplotlib-2.0.0-without-copyrighted.tar.xz +/matplotlib-2.0.1.tar.gz diff --git a/20_matplotlibrc_path_search_fix.patch b/20_matplotlibrc_path_search_fix.patch index b4d708a..32cd91e 100644 --- a/20_matplotlibrc_path_search_fix.patch +++ b/20_matplotlibrc_path_search_fix.patch @@ -1,6 +1,6 @@ --- a/lib/matplotlib/__init__.py 2016-04-04 12:54:26.427194940 +0200 +++ b/lib/matplotlib/__init__.py 2016-04-04 12:56:12.662590255 +0200 -@@ -682,9 +682,12 @@ +@@ -713,9 +713,12 @@ def _get_data_path():
_file = _decode_filesystem_path(__file__) path = os.sep.join([os.path.dirname(_file), 'mpl-data']) @@ -13,7 +13,7 @@ # setuptools' namespace_packages may highjack this init file # so need to try something known to be in matplotlib, not basemap import matplotlib.afm -@@ -812,7 +815,7 @@ +@@ -843,7 +846,7 @@ def matplotlib_fname(): home, '.matplotlib', 'matplotlibrc') return fname
diff --git a/python-matplotlib-disable-failing-tests-arm.patch b/python-matplotlib-disable-failing-tests-arm.patch index a435a1c..3653fdb 100644 --- a/python-matplotlib-disable-failing-tests-arm.patch +++ b/python-matplotlib-disable-failing-tests-arm.patch @@ -1,7 +1,7 @@ diff -up matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests matplotlib-1.5.1/lib/matplotlib/tests/test_image.py --- matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests 2016-05-23 14:04:41.000000000 +0200 +++ matplotlib-1.5.1/lib/matplotlib/tests/test_image.py 2016-06-02 00:28:37.076703843 +0200 -@@ -186,7 +186,8 @@ def test_cursor_data(): +@@ -217,7 +217,8 @@ def test_cursor_data():
event = MouseEvent('motion_notify_event', fig.canvas, xdisp, ydisp) z = im.get_cursor_data(event) @@ -11,7 +11,7 @@ diff -up matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests matplotlib-1.
# Hmm, something is wrong here... I get 0, not None... # But, this works further down in the tests with extents flipped -@@ -224,14 +225,16 @@ def test_cursor_data(): +@@ -255,14 +256,16 @@ def test_cursor_data():
event = MouseEvent('motion_notify_event', fig.canvas, xdisp, ydisp) z = im.get_cursor_data(event) diff --git a/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch b/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch index f83f97f..c3db33a 100644 --- a/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch +++ b/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch @@ -1,6 +1,6 @@ --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py.new 2017-01-07 21:28:07.736224906 -0800 -@@ -1285,7 +1285,7 @@ +@@ -1322,7 +1322,7 @@ def test_contour_colorbar(): cbar.add_lines(cs2, erase=False)
@@ -9,31 +9,9 @@ def test_hist2d(): np.random.seed(0) # make it not symetric in case we switch x and y axis ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_quiver.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_quiver.py.new 2017-01-07 21:29:53.441682625 -0800 -@@ -135,7 +135,7 @@ - ax.quiverkey(q, 0, 0.5, 1, 'W', labelpos='W') - - --@image_comparison(baseline_images=['barbs_test_image'], -+@image_comparison(baseline_images=['barbs_test_image'], tol=0.8, - extensions=['png'], remove_text=True) - def test_barbs(): - x = np.linspace(-5, 5, 5) ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py.new 2017-01-07 21:21:29.478503151 -0800 -@@ -82,7 +82,7 @@ - - - @image_comparison(baseline_images=['pre_transform_data'], -- tol=0.08) -+ tol=0.9) - def test_pre_transform_plotting(): - # a catch-all for as many as possible plot layouts which handle - # pre-transforming the data NOTE: The axis range is important in this --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mlab.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mlab.py.new 2017-01-07 21:30:47.502916717 -0800 -@@ -2279,90 +2279,6 @@ +@@ -2279,90 +2279,6 @@ class spectral_testcase_nosig_complex_defaultsided( iscomplex=True, sides='default', nsides=2)
@@ -124,3 +102,25 @@ class spectral_testcase_nosig_real_onesided_noNFFT( spectral_testcase_nosig_real_onesided): def setUp(self): +--- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_quiver.py 2016-12-18 11:40:53.000000000 -0800 ++++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_quiver.py.new 2017-01-07 21:29:53.441682625 -0800 +@@ -135,7 +135,7 @@ def test_quiver_key_pivot(): + ax.quiverkey(q, 0, 0.5, 1, 'W', labelpos='W') + + +-@image_comparison(baseline_images=['barbs_test_image'], ++@image_comparison(baseline_images=['barbs_test_image'], tol=0.8, + extensions=['png'], remove_text=True) + def test_barbs(): + x = np.linspace(-5, 5, 5) +--- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py 2016-12-18 11:40:53.000000000 -0800 ++++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py.new 2017-01-07 21:21:29.478503151 -0800 +@@ -82,7 +82,7 @@ def test_external_transform_api(): + + + @image_comparison(baseline_images=['pre_transform_data'], +- tol=0.08) ++ tol=0.9) + def test_pre_transform_plotting(): + # a catch-all for as many as possible plot layouts which handle + # pre-transforming the data NOTE: The axis range is important in this diff --git a/python-matplotlib-increase-tests-tolerance-i686.patch b/python-matplotlib-increase-tests-tolerance-i686.patch index 01a0e44..06c77d0 100644 --- a/python-matplotlib-increase-tests-tolerance-i686.patch +++ b/python-matplotlib-increase-tests-tolerance-i686.patch @@ -1,6 +1,6 @@ --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py.new 2017-01-07 21:35:06.874039829 -0800 -@@ -361,7 +361,7 @@ +@@ -389,7 +389,7 @@ def test_single_point(): plt.plot('b','b', 'o', data=data)
@@ -9,7 +9,7 @@ def test_single_date(): time1 = [721964.0] data1 = [-65.54] -@@ -4696,7 +4696,7 @@ +@@ -4759,7 +4759,7 @@ def test_date_timezone_y():
@image_comparison(baseline_images=['date_timezone_x_and_y'], @@ -20,7 +20,7 @@ time_index = [pytz.timezone('UTC').localize(datetime.datetime( --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_collections.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_collections.py.new 2017-01-07 21:35:52.016235301 -0800 -@@ -489,7 +489,7 @@ +@@ -489,7 +489,7 @@ def test_EllipseCollection(): ax.autoscale_view()
@@ -31,7 +31,7 @@ from mpl_toolkits.mplot3d import Axes3D --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_contour.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_contour.py.new 2017-01-07 21:36:29.283396673 -0800 -@@ -233,7 +233,7 @@ +@@ -233,7 +233,7 @@ def test_contour_datetime_axis(): label.set_rotation(30)
@@ -40,20 +40,9 @@ extensions=['png'], remove_text=True) def test_labels(): # Adapted from pylab_examples example code: contour_demo.py ---- matplotlib-2.0.0rc2/lib/mpl_toolkits/tests/test_mplot3d.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/mpl_toolkits/tests/test_mplot3d.py.new 2017-01-07 21:37:04.144547626 -0800 -@@ -171,7 +171,7 @@ - ax.set_zlabel('Z axis') - - --@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.03) -+@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.081) - def test_trisurf3d(): - n_angles = 36 - n_radii = 8 --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py.new 2017-01-07 21:21:29.478503151 -0800 -@@ -82,7 +82,7 @@ +@@ -82,7 +82,7 @@ def test_external_transform_api():
@image_comparison(baseline_images=['pre_transform_data'], @@ -62,4 +51,15 @@ def test_pre_transform_plotting(): # a catch-all for as many as possible plot layouts which handle # pre-transforming the data NOTE: The axis range is important in this +--- matplotlib-2.0.0rc2/lib/mpl_toolkits/tests/test_mplot3d.py 2016-12-18 11:40:53.000000000 -0800 ++++ matplotlib-2.0.0rc2/lib/mpl_toolkits/tests/test_mplot3d.py.new 2017-01-07 21:37:04.144547626 -0800 +@@ -171,7 +171,7 @@ def test_text3d(): + ax.set_zlabel('Z axis') + + +-@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.03) ++@image_comparison(baseline_images=['trisurf3d'], remove_text=True, tol=0.081) + def test_trisurf3d(): + n_angles = 36 + n_radii = 8
diff --git a/python-matplotlib-increase-tests-tolerance.patch b/python-matplotlib-increase-tests-tolerance.patch index 82276ca..0abeef9 100644 --- a/python-matplotlib-increase-tests-tolerance.patch +++ b/python-matplotlib-increase-tests-tolerance.patch @@ -1,17 +1,39 @@ --- matplotlib-2.0.0rc2/lib/matplotlib/testing/decorators.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/testing/decorators.py.new 2017-01-07 21:19:51.078081193 -0800 -@@ -266,7 +266,7 @@ +@@ -266,7 +266,7 @@ class ImageComparisonTest(CleanupTest):
yield do_test, fignum, actual_fname, expected_fname
-def image_comparison(baseline_images=None, extensions=None, tol=0, +def image_comparison(baseline_images=None, extensions=None, tol=0.306, freetype_version=None, remove_text=False, - savefig_kwarg=None, style='classic'): + savefig_kwarg=None, style='_classic_test'): """ +--- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mathtext.py 2016-12-18 11:40:53.000000000 -0800 ++++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mathtext.py.new 2017-01-07 22:02:42.396426402 -0800 +@@ -159,7 +159,7 @@ for fonts, chars in font_test_specs: + + def make_set(basename, fontset, tests, extensions=None): + def make_test(filename, test): +- @image_comparison(baseline_images=[filename], extensions=extensions) ++ @image_comparison(baseline_images=[filename], extensions=extensions, tol=0.310) + def single_test(): + matplotlib.rcParams['mathtext.fontset'] = fontset + fig = plt.figure(figsize=(5.25, 0.75)) +--- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_patheffects.py 2016-12-18 11:40:53.000000000 -0800 ++++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_patheffects.py.new 2017-01-07 21:21:08.014411109 -0800 +@@ -138,7 +138,7 @@ def test_SimplePatchShadow_offset(): + assert_equal(pe._offset, (4, 5)) + + +-@image_comparison(baseline_images=['collection'], tol=0.015) ++@image_comparison(baseline_images=['collection'], tol=0.083) + def test_collection(): + x, y = np.meshgrid(np.linspace(0, 10, 150), np.linspace(-5, 5, 100)) + data = np.sin(x) + np.cos(y) --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_png.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_png.py.new 2017-01-07 21:20:22.388215456 -0800 -@@ -17,7 +17,7 @@ +@@ -17,7 +17,7 @@ on_win = (sys.platform == 'win32')
@image_comparison(baseline_images=['pngsuite'], extensions=['png'], @@ -22,7 +44,7 @@ os.path.dirname(__file__), --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_streamplot.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_streamplot.py.new 2017-01-07 21:20:42.180300328 -0800 -@@ -18,7 +18,7 @@ +@@ -18,7 +18,7 @@ def velocity_field():
@image_comparison(baseline_images=['streamplot_colormap'], @@ -31,25 +53,3 @@ def test_colormap(): X, Y, U, V = velocity_field() plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_patheffects.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_patheffects.py.new 2017-01-07 21:21:08.014411109 -0800 -@@ -110,7 +110,7 @@ - assert_equal(pe._offset, (4, 5)) - - --@image_comparison(baseline_images=['collection'], tol=0.015) -+@image_comparison(baseline_images=['collection'], tol=0.083) - def test_collection(): - x, y = np.meshgrid(np.linspace(0, 10, 150), np.linspace(-5, 5, 100)) - data = np.sin(x) + np.cos(y) ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mathtext.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mathtext.py.new 2017-01-07 22:02:42.396426402 -0800 -@@ -158,7 +158,7 @@ - - def make_set(basename, fontset, tests, extensions=None): - def make_test(filename, test): -- @image_comparison(baseline_images=[filename], extensions=extensions) -+ @image_comparison(baseline_images=[filename], extensions=extensions, tol=0.310) - def single_test(): - matplotlib.rcParams['mathtext.fontset'] = fontset - fig = plt.figure(figsize=(5.25, 0.75)) diff --git a/python-matplotlib.spec b/python-matplotlib.spec index f5fa221..8d91af3 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -54,15 +54,14 @@ #global rctag rc2
Name: python-matplotlib -Version: 2.0.0 -Release: 3%{?rctag:.%{rctag}}%{?dist}.2 +Version: 2.0.1 +Release: 1%{?rctag:.%{rctag}}%{?dist} Summary: Python 2D plotting library Group: Development/Libraries # qt4_editor backend is MIT License: Python and MIT URL: http://matplotlib.org -#Source0: https://github.com/matplotlib/matplotlib/archive/v%%7Bversion%7D%%7B?rctag%7... -Source0: matplotlib-%{version}-without-copyrighted.tar.xz +Source0: https://github.com/matplotlib/matplotlib/archive/v%%7Bversion%7D%%7B?rctag%7... Source1: setup.cfg
Patch2: 20_matplotlibrc_path_search_fix.patch @@ -617,6 +616,9 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} \ %endif
%changelog +* Thu Sep 28 2017 Elliott Sales de Andrade quantum.analyst@gmail.com - 2.0.1-1 +- Update to latest release + * Thu Aug 03 2017 Fedora Release Engineering releng@fedoraproject.org - 2.0.0-3.2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
diff --git a/remove-files.sh b/remove-files.sh deleted file mode 100755 index c7a6624..0000000 --- a/remove-files.sh +++ /dev/null @@ -1,21 +0,0 @@ -#! /bin/sh - -version=$1 - -[ -z $version ] && exit 1 - -dir=matplotlib-${version} -file=matplotlib-${version}.tar.gz -result=matplotlib-${version}-without-copyrighted.tar.xz - -test -f $file || exit 1 - -rm -rf matplotlib-${version} -tar xzf $file - -# https://github.com/matplotlib/matplotlib/issues/8034 -rm -vr matplotlib-${version}/lib/matplotlib/mpl-data/sample_data/necked_tensile_specimen.png -rm -vr matplotlib-${version}/examples/images_contours_and_fields/interpolation_none_vs_nearest.py - -rm -f $result -tar cJf $result $dir diff --git a/sources b/sources index 390ce37..74e4583 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (matplotlib-2.0.0-without-copyrighted.tar.xz) = 6413b0187b3d7ce5e4cbfaf7de4f42a747f1a415dbe3dca71c5f0ff0b8ac7139dc2807302bfbc67428281cfc7744cc23c6bbda041cd0568eff71801a740b862d +SHA512 (matplotlib-2.0.1.tar.gz) = 763e7b980d66a66b8928f2dcb09b48a8e13f1092a6aa52ffa5d0247ee10747f97d35cf059f0cce51a95fce240850c4c03c6e49d9b26fddfcc4f049864d8767ce
commit e9a5a6f0c089c2102ae56534f9aab3a399b1ba12 Author: Elliott Sales de Andrade quantum.analyst@gmail.com Date: Wed Sep 27 19:58:07 2017 -0400
Remove outdated patches.
diff --git a/python-matplotlib-disable-failing-tests.patch b/python-matplotlib-disable-failing-tests.patch deleted file mode 100644 index b9ac52d..0000000 --- a/python-matplotlib-disable-failing-tests.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up matplotlib-2.0.0b3/lib/matplotlib/sphinxext/tests/test_tinypages.py.tests matplotlib-2.0.0b3/lib/matplotlib/sphinxext/tests/test_tinypages.py ---- matplotlib-2.0.0b3/lib/matplotlib/sphinxext/tests/test_tinypages.py.tests 2016-07-17 01:04:11.000000000 +0200 -+++ matplotlib-2.0.0b3/lib/matplotlib/sphinxext/tests/test_tinypages.py 2016-08-29 13:41:47.661198880 +0200 -@@ -1,6 +1,7 @@ - """ Tests for tinypages build using sphinx extensions """ - - import shutil -+import sys - import tempfile - - from os.path import (join as pjoin, dirname, isdir) -@@ -16,6 +17,8 @@ TINY_PAGES = pjoin(HERE, 'tinypages') - - def setup(): - # Check we have the sphinx-build command -+ if sys.version_info[0] >= 3: -+ raise SkipTest('sphinx-build works only with python 2.x') - try: - ret = call(['sphinx-build', '--help'], stdout=PIPE, stderr=PIPE) - except OSError: diff --git a/python-matplotlib-noagg.patch b/python-matplotlib-noagg.patch deleted file mode 100644 index 51bac9c..0000000 --- a/python-matplotlib-noagg.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- setupext.py.orig 2013-08-02 09:39:43.914247832 +0200 -+++ setupext.py 2013-08-02 09:40:14.785304342 +0200 -@@ -914,28 +914,13 @@ class LibAgg(SetupPackage): - self.__class__.found_external = True - try: - return self._check_for_pkg_config( -- 'libagg', 'agg2/agg_basics.h', min_version='PATCH') -+ 'libagg', 'agg2/agg_basics.h', min_version='2.5.0') - except CheckFailed as e: - self.__class__.found_external = False - return str(e) + ' Using local copy.' - - def add_flags(self, ext): -- if self.found_external: -- pkg_config.setup_extension(ext, 'libagg') -- else: -- ext.include_dirs.append('extern/agg24/include') -- agg_sources = [ -- 'agg_bezier_arc.cpp', -- 'agg_curves.cpp', -- 'agg_image_filters.cpp', -- 'agg_trans_affine.cpp', -- 'agg_vcgen_contour.cpp', -- 'agg_vcgen_dash.cpp', -- 'agg_vcgen_stroke.cpp', -- 'agg_vpgen_segmentator.cpp' -- ] -- ext.sources.extend( -- os.path.join('extern', 'agg24', 'src', x) for x in agg_sources) -+ pkg_config.setup_extension(ext, 'libagg', default_include_dirs=["/usr/include/agg2"]) - - - class FreeType(SetupPackage): diff --git a/python-matplotlib-use-system-six.patch b/python-matplotlib-use-system-six.patch deleted file mode 100644 index dd3dcc8..0000000 --- a/python-matplotlib-use-system-six.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -up matplotlib-1.5.1/setupext.py.six matplotlib-1.5.1/setupext.py ---- matplotlib-1.5.1/setupext.py.six 2016-01-10 23:20:20.000000000 +0100 -+++ matplotlib-1.5.1/setupext.py 2016-05-18 13:44:21.534494158 +0200 -@@ -1026,6 +1026,18 @@ class Qhull(SetupPackage): - ext.sources.extend(glob.glob('extern/qhull/*.c')) - - -+class Six(SetupPackage): -+ name = "six" -+ -+ def check(self): -+ try: -+ import six -+ except ImportError: -+ return 'not found. pip may install it below.' -+ -+ return 'version %s' % six.__version__ -+ -+ - class TTConv(SetupPackage): - name = "ttconv" - -diff -up matplotlib-1.5.1/setup.py.six matplotlib-1.5.1/setup.py ---- matplotlib-1.5.1/setup.py.six 2016-01-10 23:20:20.000000000 +0100 -+++ matplotlib-1.5.1/setup.py 2016-05-18 13:44:21.528494040 +0200 -@@ -84,7 +84,7 @@ mpl_packages = [ - setupext.Delaunay(), - setupext.QhullWrap(), - setupext.Tri(), -- setupext.Externals(), -+ setupext.Six(), - 'Optional subpackages', - setupext.SampleData(), - setupext.Toolkits(), diff --git a/python-matplotlib.spec b/python-matplotlib.spec index d5a0e93..f5fa221 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -424,10 +424,6 @@ sed -i 's/(USE_FONTCONFIG = )False/\1True/' lib/matplotlib/font_manager.py %patch13 -p1 -b .tests-i686 %endif
-chmod -x lib/matplotlib/mpl-data/images/*.svg -chmod -x lib/matplotlib/{dates,sankey}.py -chmod -x lib/mpl_toolkits/mplot3d/*.py - %build export http_proxy=http://127.0.0.1/ MPLCONFIGDIR=$PWD \
arch-excludes@lists.fedoraproject.org