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=...
https://src.fedoraproject.org/cgit/rpms/python-matplotlib.git/commit/?id=...
https://src.fedoraproject.org/cgit/rpms/python-matplotlib.git/commit/?id=...
https://src.fedoraproject.org/cgit/rpms/python-matplotlib.git/commit/?id=....
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(a)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(a)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(a)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%{version}%{?rctag}/mat...
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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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%{version}%{?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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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%{version}%{?rctag}.tar...
+Source0:
https://github.com/matplotlib/matplotlib/archive/v%{version}%{?rctag}/mat...
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(a)gmail.com> - 2.1.2-1
+- Update to latest release
+
* Sun Dec 10 2017 Elliott Sales de Andrade <quantum.analyst(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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%{version}%{?rctag}.tar...
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(a)gmail.com> - 2.1.1-1
+- Update to latest release
+
* Mon Oct 16 2017 Elliott Sales de Andrade <quantum.analyst(a)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(a)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(a)gmail.com> - 2.1.0-1
+- Update to latest release
+
* Thu Sep 28 2017 Elliott Sales de Andrade <quantum.analyst(a)gmail.com> - 2.0.2-1
- Update to latest release
commit 3f6380df613d15a4337025b87e8e3eb54bab5127
Author: Elliott Sales de Andrade <quantum.analyst(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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%{version}%{?rctag}.tar...
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(a)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(a)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(a)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(a)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(a)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(a)gmail.com> - 2.0.2-1
+- Update to latest release
+
* Thu Sep 28 2017 Elliott Sales de Andrade <quantum.analyst(a)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(a)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%{version}%{?rctag}.tar...
-Source0: matplotlib-%{version}-without-copyrighted.tar.xz
+Source0:
https://github.com/matplotlib/matplotlib/archive/v%{version}%{?rctag}.tar...
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(a)gmail.com> - 2.0.1-1
+- Update to latest release
+
* Thu Aug 03 2017 Fedora Release Engineering <releng(a)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(a)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 \