#9 Update to Matplotlib 3.0.0
Merged 6 months ago by churchyard. Opened 7 months ago by qulogic.
rpms/ qulogic/python-matplotlib mpl3  into  master

file modified
+6

@@ -26,3 +26,9 @@ 

  /matplotlib-2.2.3.tar.gz

  /matplotlib-2.2.3-with-freetype-2.8.tar.gz

  /matplotlib-2.2.3-with-freetype-2.9.1.tar.gz

+ /matplotlib-3.0.0rc1.tar.gz

+ /matplotlib-3.0.0rc1-with-freetype-2.9.1.tar.gz

+ /matplotlib-3.0.0rc2.tar.gz

+ /matplotlib-3.0.0rc2-with-freetype-2.9.1.tar.gz

+ /matplotlib-3.0.0.tar.gz

+ /matplotlib-3.0.0-with-freetype-2.9.1.tar.gz

@@ -1,32 +1,39 @@ 

- From e318adb6b70cdb27eb8cd5235909b8e8430080d7 Mon Sep 17 00:00:00 2001

+ From 2ff8ec9b9047b8197d96e651e038eab73e3a6cd2 Mon Sep 17 00:00:00 2001

  From: Elliott Sales de Andrade <quantum.analyst@gmail.com>

  Date: Wed, 27 Sep 2017 19:35:59 -0400

  Subject: [PATCH 1/3] matplotlibrc path search fix

  

  Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>

  ---

-  lib/matplotlib/__init__.py            |  8 +++++---

+  lib/matplotlib/__init__.py            | 18 +++---------------

   lib/matplotlib/tests/test_rcparams.py | 22 ++++++++++++++++------

-  2 files changed, 21 insertions(+), 9 deletions(-)

+  2 files changed, 19 insertions(+), 21 deletions(-)

  

  diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py

- index c5accc3c3..bc38f316c 100644

+ index f7b37ee3b..508e1658d 100644

  --- a/lib/matplotlib/__init__.py

  +++ b/lib/matplotlib/__init__.py

- @@ -738,9 +738,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):

+ @@ -664,18 +664,7 @@ def _get_data_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

- @@ -821,8 +824,7 @@ def matplotlib_fname():

+      def get_candidate_paths():

+ -        yield Path(__file__).with_name('mpl-data')

+ -        # setuptools' namespace_packages may highjack this init file

+ -        # so need to try something known to be in Matplotlib, not basemap.

+ -        import matplotlib.afm

+ -        yield Path(matplotlib.afm.__file__).with_name('mpl-data')

+ -        # py2exe zips pure python, so still need special check.

+ -        if getattr(sys, 'frozen', None):

+ -            yield Path(sys.executable).with_name('mpl-data')

+ -            # Try again assuming we need to step up one more directory.

+ -            yield Path(sys.executable).parent.with_name('mpl-data')

+ -            # Try again assuming sys.path[0] is a dir not a exe.

+ -            yield Path(sys.path[0]) / 'mpl-data'

+ +        yield Path('/usr/share/matplotlib/mpl-data')

+  

+      for path in get_candidate_paths():

+          if path.is_dir():

+ @@ -727,8 +716,7 @@ def matplotlib_fname():

   

            - `$HOME/.matplotlib/matplotlibrc` if `$HOME` is defined.

   

@@ -36,20 +43,20 @@ 

       """

   

       def gen_candidates():

- @@ -835,7 +837,7 @@ def matplotlib_fname():

+ @@ -741,7 +729,7 @@ def matplotlib_fname():

               yield matplotlibrc

               yield os.path.join(matplotlibrc, 'matplotlibrc')

-          yield os.path.join(_get_configdir(), 'matplotlibrc')

+          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.exists(fname):

  diff --git a/lib/matplotlib/tests/test_rcparams.py b/lib/matplotlib/tests/test_rcparams.py

- index c0378e1bf..7f14bcc46 100644

+ index 7eec4d421..4c74619f6 100644

  --- a/lib/matplotlib/tests/test_rcparams.py

  +++ b/lib/matplotlib/tests/test_rcparams.py

- @@ -424,14 +424,25 @@ def test_rcparams_reset_after_fail():

+ @@ -451,11 +451,22 @@ def test_rcparams_reset_after_fail():

           assert mpl.rcParams['text.usetex'] is False

   

   

@@ -67,18 +74,15 @@ 

  +

  +

  +def test_if_rctemplate_is_up_to_date(mplrc):

-      # This tests if the matplotlibrc.template file

-      # contains all valid rcParams.

-      dep1 = mpl._all_deprecated

-      dep2 = mpl._deprecated_set

-      deprecated = list(dep1.union(dep2))

+      # This tests if the matplotlibrc.template file contains all valid rcParams.

+      deprecated = {*mpl._all_deprecated, *mpl._deprecated_remain_as_none}

  -    path_to_rc = os.path.join(mpl.get_data_path(), 'matplotlibrc')

  -    with open(path_to_rc, "r") as f:

  +    with open(mplrc, "r") as f:

           rclines = f.readlines()

       missing = {}

       for k, v in mpl.defaultParams.items():

- @@ -453,11 +464,10 @@ def test_if_rctemplate_is_up_to_date():

+ @@ -478,11 +489,10 @@ def test_if_rctemplate_is_up_to_date():

                            .format(missing.items()))

   

   

@@ -1,27 +1,40 @@ 

- From ece1f936ba4c130cf82d3954a5e677d96ca3a854 Mon Sep 17 00:00:00 2001

+ From 9b67dee47af3705cacc41d639f31a9bc99934111 Mon Sep 17 00:00:00 2001

  From: Elliott Sales de Andrade <quantum.analyst@gmail.com>

  Date: Tue, 23 Jan 2018 20:27:17 -0500

  Subject: [PATCH 2/3] Increase tolerances for non-x86_64 arches.

  

  Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>

  ---

-  lib/matplotlib/tests/test_streamplot.py | 3 +--

-  1 file changed, 1 insertion(+), 2 deletions(-)

+  lib/matplotlib/tests/test_streamplot.py   | 2 +-

+  lib/mpl_toolkits/tests/test_axes_grid1.py | 2 +-

+  2 files changed, 2 insertions(+), 2 deletions(-)

  

  diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py

- index 81a51e711..4f70ce861 100644

+ index 17c0d1967..e261513df 100644

  --- a/lib/matplotlib/tests/test_streamplot.py

  +++ b/lib/matplotlib/tests/test_streamplot.py

- @@ -58,8 +58,7 @@ def test_linewidth():

-                     linewidth=lw)

+ @@ -61,7 +61,7 @@ def test_linewidth():

   

   

- -@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)

+  @image_comparison(baseline_images=['streamplot_masks_and_nans'],

+ -                  tol=0.04 if on_win else 0,

+ +                  tol=0.04 if on_win else 0.01,

+                    remove_text=True, style='mpl20')

   def test_masks_and_nans():

       X, Y, U, V = velocity_field()

-      mask = np.zeros(U.shape, dtype=bool)

+ diff --git a/lib/mpl_toolkits/tests/test_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py

+ index 896ba503f..bd48bee72 100644

+ --- a/lib/mpl_toolkits/tests/test_axes_grid1.py

+ +++ b/lib/mpl_toolkits/tests/test_axes_grid1.py

+ @@ -359,7 +359,7 @@ def test_zooming_with_inverted_axes():

+  

+  

+  @image_comparison(baseline_images=['anchored_direction_arrows'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.02,

+                    extensions=['png'])

+  def test_anchored_direction_arrows():

+      fig, ax = plt.subplots()

  -- 

  2.17.1

  

@@ -1,4 +1,4 @@ 

- From b8a97810843ff739cb98cb5159843f2836dbd8b3 Mon Sep 17 00:00:00 2001

+ From a9c30f31914db1afc25a7e56ab0a02633b7b1f37 Mon Sep 17 00:00:00 2001

  From: Elliott Sales de Andrade <quantum.analyst@gmail.com>

  Date: Sat, 31 Mar 2018 00:15:14 -0400

  Subject: [PATCH 3/3] Increase some tolerances for 32-bit systems.

@@ -7,29 +7,33 @@ 

  ---

   lib/matplotlib/testing/decorators.py          |  2 +-

   lib/matplotlib/tests/test_artist.py           |  3 +-

-  lib/matplotlib/tests/test_axes.py             | 47 +++++++++----------

+  lib/matplotlib/tests/test_axes.py             | 49 ++++++++++---------

   lib/matplotlib/tests/test_collections.py      |  2 +-

   lib/matplotlib/tests/test_colorbar.py         | 11 +++--

   .../tests/test_constrainedlayout.py           |  2 +-

-  lib/matplotlib/tests/test_contour.py          |  6 +--

+  lib/matplotlib/tests/test_contour.py          |  8 +--

+  lib/matplotlib/tests/test_cycles.py           |  3 --

+  lib/matplotlib/tests/test_figure.py           |  3 +-

   lib/matplotlib/tests/test_image.py            |  2 +-

+  lib/matplotlib/tests/test_legend.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_pickle.py           |  2 +-

   lib/matplotlib/tests/test_quiver.py           |  2 +-

-  lib/matplotlib/tests/test_streamplot.py       |  3 +-

+  lib/matplotlib/tests/test_streamplot.py       |  2 +-

   lib/matplotlib/tests/test_transforms.py       |  2 +-

+  lib/matplotlib/tests/test_units.py            |  1 -

   .../tests/test_axisartist_floating_axes.py    |  4 +-

   ...test_axisartist_grid_helper_curvelinear.py |  6 +--

   lib/mpl_toolkits/tests/test_mplot3d.py        |  4 +-

-  18 files changed, 53 insertions(+), 54 deletions(-)

+  22 files changed, 59 insertions(+), 63 deletions(-)

  

  diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py

- index 0ce6e6252..9a80eec1a 100644

+ index 85b8d5e87..f3fc47c68 100644

  --- a/lib/matplotlib/testing/decorators.py

  +++ b/lib/matplotlib/testing/decorators.py

- @@ -408,7 +408,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol,

+ @@ -338,7 +338,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol,

       return decorator

   

   

@@ -39,10 +43,10 @@ 

                        savefig_kwarg=None,

                        # Default of mpl_test_settings fixture and cleanup too.

  diff --git a/lib/matplotlib/tests/test_artist.py b/lib/matplotlib/tests/test_artist.py

- index e6aff72bf..b60305bcf 100644

+ index 283db9abe..2ae11142c 100644

  --- a/lib/matplotlib/tests/test_artist.py

  +++ b/lib/matplotlib/tests/test_artist.py

- @@ -96,7 +96,8 @@ def test_collection_transform_of_none():

+ @@ -94,7 +94,8 @@ def test_collection_transform_of_none():

       assert isinstance(c._transOffset, mtransforms.IdentityTransform)

   

   

@@ -53,29 +57,19 @@ 

       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 2fa6c2c94..8c589f514 100644

+ index 6afed91f3..e931e7a4a 100644

  --- a/lib/matplotlib/tests/test_axes.py

  +++ b/lib/matplotlib/tests/test_axes.py

- @@ -555,7 +555,7 @@ def test_single_point():

-      plt.plot('b', 'b', 'o', data=data)

+ @@ -553,7 +553,7 @@ def test_single_point():

   

   

- -@image_comparison(baseline_images=['single_date'])

- +@image_comparison(baseline_images=['single_date'], tol=1.97)

+  @image_comparison(baseline_images=['single_date'], extensions=['png'],

+ -        style='mpl20')

+ +        style='mpl20', tol=1.97)

   def test_single_date():

       time1 = [721964.0]

       data1 = [-65.54]

- @@ -739,8 +739,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

- @@ -1023,7 +1022,7 @@ def test_fill_between_interpolate():

+ @@ -1027,7 +1027,7 @@ def test_fill_between_interpolate():

   

   

   @image_comparison(baseline_images=['fill_between_interpolate_decreasing'],

@@ -84,25 +78,27 @@ 

   def test_fill_between_interpolate_decreasing():

       p = np.array([724.3, 700, 655])

       t = np.array([9.4, 7, 2.2])

- @@ -1105,7 +1104,7 @@ def test_pcolormesh():

+ @@ -1109,7 +1109,8 @@ def test_pcolormesh():

   

   

   @image_comparison(baseline_images=['pcolormesh_datetime_axis'],

- -                  extensions=['png'], remove_text=False)

- +                  extensions=['png'], remove_text=False, tol=0.19)

+ -                  extensions=['png'], remove_text=False, style='mpl20')

+ +                  extensions=['png'], remove_text=False, style='mpl20',

+ +                  tol=0.19)

   def test_pcolormesh_datetime_axis():

       fig = plt.figure()

       fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15)

- @@ -1131,7 +1130,7 @@ def test_pcolormesh_datetime_axis():

+ @@ -1135,7 +1136,8 @@ 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)

+ -                  extensions=['png'], remove_text=False, style='mpl20')

+ +                  extensions=['png'], remove_text=False, style='mpl20',

+ +                  tol=0.19)

   def test_pcolor_datetime_axis():

       fig = plt.figure()

       fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15)

- @@ -1188,7 +1187,7 @@ def test_canonical():

+ @@ -1192,7 +1194,7 @@ def test_canonical():

   

   

   @image_comparison(baseline_images=['arc_angles'], remove_text=True,

@@ -111,7 +107,7 @@ 

   def test_arc_angles():

       from matplotlib import patches

       # Ellipse parameters

- @@ -2450,7 +2449,7 @@ def test_boxplot_mod_artist_after_plotting():

+ @@ -2533,7 +2535,7 @@ def test_boxplot_mod_artist_after_plotting():

   

   @image_comparison(baseline_images=['violinplot_vert_baseline',

                                      'violinplot_vert_baseline'],

@@ -120,7 +116,7 @@ 

   def test_vert_violinplot_baseline():

       # First 9 digits of frac(sqrt(2))

       np.random.seed(414213562)

- @@ -2468,7 +2467,7 @@ def test_vert_violinplot_baseline():

+ @@ -2551,7 +2553,7 @@ def test_vert_violinplot_baseline():

   

   

   @image_comparison(baseline_images=['violinplot_vert_showmeans'],

@@ -129,7 +125,7 @@ 

   def test_vert_violinplot_showmeans():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(3))

- @@ -2479,7 +2478,7 @@ def test_vert_violinplot_showmeans():

+ @@ -2562,7 +2564,7 @@ def test_vert_violinplot_showmeans():

   

   

   @image_comparison(baseline_images=['violinplot_vert_showextrema'],

@@ -138,7 +134,7 @@ 

   def test_vert_violinplot_showextrema():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(5))

- @@ -2490,7 +2489,7 @@ def test_vert_violinplot_showextrema():

+ @@ -2573,7 +2575,7 @@ def test_vert_violinplot_showextrema():

   

   

   @image_comparison(baseline_images=['violinplot_vert_showmedians'],

@@ -147,7 +143,7 @@ 

   def test_vert_violinplot_showmedians():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(7))

- @@ -2501,7 +2500,7 @@ def test_vert_violinplot_showmedians():

+ @@ -2584,7 +2586,7 @@ def test_vert_violinplot_showmedians():

   

   

   @image_comparison(baseline_images=['violinplot_vert_showall'],

@@ -156,7 +152,7 @@ 

   def test_vert_violinplot_showall():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(11))

- @@ -2512,7 +2511,7 @@ def test_vert_violinplot_showall():

+ @@ -2595,7 +2597,7 @@ def test_vert_violinplot_showall():

   

   

   @image_comparison(baseline_images=['violinplot_vert_custompoints_10'],

@@ -165,7 +161,7 @@ 

   def test_vert_violinplot_custompoints_10():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(13))

- @@ -2523,7 +2522,7 @@ def test_vert_violinplot_custompoints_10():

+ @@ -2606,7 +2608,7 @@ def test_vert_violinplot_custompoints_10():

   

   

   @image_comparison(baseline_images=['violinplot_vert_custompoints_200'],

@@ -174,7 +170,7 @@ 

   def test_vert_violinplot_custompoints_200():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(17))

- @@ -2534,7 +2533,7 @@ def test_vert_violinplot_custompoints_200():

+ @@ -2617,7 +2619,7 @@ def test_vert_violinplot_custompoints_200():

   

   

   @image_comparison(baseline_images=['violinplot_horiz_baseline'],

@@ -183,7 +179,7 @@ 

   def test_horiz_violinplot_baseline():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(19))

- @@ -2545,7 +2544,7 @@ def test_horiz_violinplot_baseline():

+ @@ -2628,7 +2630,7 @@ def test_horiz_violinplot_baseline():

   

   

   @image_comparison(baseline_images=['violinplot_horiz_showmedians'],

@@ -192,7 +188,7 @@ 

   def test_horiz_violinplot_showmedians():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(23))

- @@ -2556,7 +2555,7 @@ def test_horiz_violinplot_showmedians():

+ @@ -2639,7 +2641,7 @@ def test_horiz_violinplot_showmedians():

   

   

   @image_comparison(baseline_images=['violinplot_horiz_showmeans'],

@@ -201,7 +197,7 @@ 

   def test_horiz_violinplot_showmeans():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(29))

- @@ -2567,7 +2566,7 @@ def test_horiz_violinplot_showmeans():

+ @@ -2650,7 +2652,7 @@ def test_horiz_violinplot_showmeans():

   

   

   @image_comparison(baseline_images=['violinplot_horiz_showextrema'],

@@ -210,7 +206,7 @@ 

   def test_horiz_violinplot_showextrema():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(31))

- @@ -2578,7 +2577,7 @@ def test_horiz_violinplot_showextrema():

+ @@ -2661,7 +2663,7 @@ def test_horiz_violinplot_showextrema():

   

   

   @image_comparison(baseline_images=['violinplot_horiz_showall'],

@@ -219,7 +215,7 @@ 

   def test_horiz_violinplot_showall():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(37))

- @@ -2589,7 +2588,7 @@ def test_horiz_violinplot_showall():

+ @@ -2672,7 +2674,7 @@ def test_horiz_violinplot_showall():

   

   

   @image_comparison(baseline_images=['violinplot_horiz_custompoints_10'],

@@ -228,7 +224,7 @@ 

   def test_horiz_violinplot_custompoints_10():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(41))

- @@ -2600,7 +2599,7 @@ def test_horiz_violinplot_custompoints_10():

+ @@ -2683,7 +2685,7 @@ def test_horiz_violinplot_custompoints_10():

   

   

   @image_comparison(baseline_images=['violinplot_horiz_custompoints_200'],

@@ -237,7 +233,17 @@ 

   def test_horiz_violinplot_custompoints_200():

       ax = plt.axes()

       # First 9 digits of frac(sqrt(43))

- @@ -3947,7 +3946,7 @@ def test_psd_noise():

+ @@ -3347,8 +3349,7 @@ def test_vertex_markers():

+  

+  

+  @image_comparison(baseline_images=['vline_hline_zorder',

+ -                                   'errorbar_zorder'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0))

+ +                                   'errorbar_zorder'])

+  def test_eb_line_zorder():

+      x = list(range(10))

+  

+ @@ -4028,7 +4029,7 @@ def test_psd_noise():

   

   

   @image_comparison(baseline_images=['csd_freqs'], remove_text=True,

@@ -246,7 +252,7 @@ 

   def test_csd_freqs():

       '''test axes.csd with sinusoidal stimuli'''

       n = 10000

- @@ -4806,7 +4805,7 @@ def test_rc_spines():

+ @@ -4921,7 +4922,7 @@ def test_rc_spines():

   

   

   @image_comparison(baseline_images=['rc_grid'], extensions=['png'],

@@ -255,7 +261,7 @@ 

   def test_rc_grid():

       fig = plt.figure()

       rc_dict0 = {

- @@ -5301,7 +5300,7 @@ def test_date_timezone_y():

+ @@ -5440,7 +5441,7 @@ def test_date_timezone_y():

   

   

   @image_comparison(baseline_images=['date_timezone_x_and_y'],

@@ -263,12 +269,12 @@ 

  +                  extensions=['png'], tol=3.05)

   def test_date_timezone_x_and_y():

       # Tests issue 5575

-      time_index = [pytz.timezone('UTC').localize(datetime.datetime(

+      UTC = datetime.timezone.utc

  diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py

- index 291647d17..265f23fed 100644

+ index 6812ee1ad..5e5f19aac 100644

  --- a/lib/matplotlib/tests/test_collections.py

  +++ b/lib/matplotlib/tests/test_collections.py

- @@ -467,7 +467,7 @@ def test_EllipseCollection():

+ @@ -466,7 +466,7 @@ def test_EllipseCollection():

   

   

   @image_comparison(baseline_images=['polycollection_close'],

@@ -278,10 +284,10 @@ 

       from mpl_toolkits.mplot3d import Axes3D

   

  diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py

- index 12a9bed3b..86d2358fb 100644

+ index 56a829418..949eaf1b7 100644

  --- a/lib/matplotlib/tests/test_colorbar.py

  +++ b/lib/matplotlib/tests/test_colorbar.py

- @@ -95,7 +95,7 @@ def _colorbar_extension_length(spacing):

+ @@ -93,7 +93,7 @@ def _colorbar_extension_length(spacing):

   @image_comparison(

           baseline_images=['colorbar_extensions_shape_uniform',

                            'colorbar_extensions_shape_proportional'],

@@ -290,7 +296,7 @@ 

   def test_colorbar_extension_shape():

       '''Test rectangular colorbar extensions.'''

       # Create figures for uniform and proportionally spaced colorbars.

- @@ -105,7 +105,7 @@ def test_colorbar_extension_shape():

+ @@ -103,7 +103,7 @@ def test_colorbar_extension_shape():

   

   @image_comparison(baseline_images=['colorbar_extensions_uniform',

                                      'colorbar_extensions_proportional'],

@@ -299,7 +305,7 @@ 

   def test_colorbar_extension_length():

       '''Test variable length colorbar extensions.'''

       # Create figures for uniform and proportionally spaced colorbars.

- @@ -119,7 +119,7 @@ def test_colorbar_extension_length():

+ @@ -117,7 +117,7 @@ def test_colorbar_extension_length():

                                      'cbar_sharing',

                                      ],

                     extensions=['png'], remove_text=True,

@@ -308,7 +314,7 @@ 

   def test_colorbar_positioning():

       data = np.arange(1200).reshape(30, 40)

       levels = [0, 200, 400, 600, 800, 1000, 1200]

- @@ -173,7 +173,7 @@ def test_colorbar_positioning():

+ @@ -171,7 +171,7 @@ def test_colorbar_positioning():

   

   @image_comparison(baseline_images=['cbar_with_subplots_adjust'],

                     extensions=['png'], remove_text=True,

@@ -317,7 +323,7 @@ 

   def test_gridspec_make_colorbar():

       plt.figure()

       data = np.arange(1200).reshape(30, 40)

- @@ -232,7 +232,8 @@ def test_colorbarbase():

+ @@ -230,7 +230,8 @@ def test_colorbarbase():

   

   @image_comparison(

       baseline_images=['colorbar_closed_patch'],

@@ -328,10 +334,10 @@ 

       fig = plt.figure(figsize=(8, 6))

       ax1 = fig.add_axes([0.05, 0.85, 0.9, 0.1])

  diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py

- index fcf633a08..cad431771 100644

+ index 0803504ce..b3a615d5a 100644

  --- a/lib/matplotlib/tests/test_constrainedlayout.py

  +++ b/lib/matplotlib/tests/test_constrainedlayout.py

- @@ -295,7 +295,7 @@ def test_constrained_layout12():

+ @@ -246,7 +246,7 @@ def test_constrained_layout12():

       ax.set_xlabel('x-label')

   

   

@@ -341,28 +347,30 @@ 

   def test_constrained_layout13():

       'Test that padding works.'

  diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py

- index 42903ac68..f03a5d0af 100644

+ index 9868f4023..d8a490794 100644

  --- a/lib/matplotlib/tests/test_contour.py

  +++ b/lib/matplotlib/tests/test_contour.py

- @@ -217,7 +217,7 @@ def test_given_colors_levels_and_extends():

+ @@ -227,7 +227,8 @@ def test_given_colors_levels_and_extends():

   

   

   @image_comparison(baseline_images=['contour_datetime_axis'],

- -                  extensions=['png'], remove_text=False)

- +                  extensions=['png'], remove_text=False, tol=0.18)

+ -                  extensions=['png'], remove_text=False, style='mpl20')

+ +                  extensions=['png'], remove_text=False, style='mpl20',

+ +                  tol=0.18)

   def test_contour_datetime_axis():

       fig = plt.figure()

       fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15)

- @@ -243,7 +243,7 @@ def test_contour_datetime_axis():

+ @@ -253,7 +254,8 @@ def test_contour_datetime_axis():

   

   

   @image_comparison(baseline_images=['contour_test_label_transforms'],

- -                  extensions=['png'], remove_text=True)

- +                  extensions=['png'], remove_text=True, tol=1.38)

+ -                  extensions=['png'], remove_text=True, style='mpl20')

+ +                  extensions=['png'], remove_text=True, style='mpl20',

+ +                  tol=1.38)

   def test_labels():

       # Adapted from pylab_examples example code: contour_demo.py

       # see issues #2475, #2843, and #2818 for explanation

- @@ -274,7 +274,7 @@ def test_labels():

+ @@ -284,7 +286,7 @@ def test_labels():

   

   @image_comparison(baseline_images=['contour_corner_mask_False',

                                      'contour_corner_mask_True'],

@@ -371,24 +379,96 @@ 

   def test_corner_mask():

       n = 60

       mask_level = 0.95

+ diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py

+ index 8184d3eee..5a067f8e0 100644

+ --- a/lib/matplotlib/tests/test_cycles.py

+ +++ b/lib/matplotlib/tests/test_cycles.py

+ @@ -10,7 +10,6 @@ from cycler import cycler

+  

+  

+  @image_comparison(baseline_images=['color_cycle_basic'], remove_text=True,

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+                    extensions=['png'])

+  def test_colorcycle_basic():

+      fig, ax = plt.subplots()

+ @@ -28,7 +27,6 @@ def test_colorcycle_basic():

+  

+  

+  @image_comparison(baseline_images=['marker_cycle', 'marker_cycle'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+                    remove_text=True, extensions=['png'])

+  def test_marker_cycle():

+      fig, ax = plt.subplots()

+ @@ -62,7 +60,6 @@ def test_marker_cycle():

+  

+  

+  @image_comparison(baseline_images=['lineprop_cycle_basic'], remove_text=True,

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+                    extensions=['png'])

+  def test_linestylecycle_basic():

+      fig, ax = plt.subplots()

+ diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py

+ index 7cb5af621..d7d5ba2f0 100644

+ --- a/lib/matplotlib/tests/test_figure.py

+ +++ b/lib/matplotlib/tests/test_figure.py

+ @@ -13,8 +13,7 @@ import numpy as np

+  import pytest

+  

+  

+ -@image_comparison(baseline_images=['figure_align_labels'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0))

+ +@image_comparison(baseline_images=['figure_align_labels'])

+  def test_align_labels():

+      # Check the figure.align_labels() command

+      fig = plt.figure(tight_layout=True)

  diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py

- index e6da25789..ed3ab63c9 100644

+ index 893108258..b409e9453 100644

  --- a/lib/matplotlib/tests/test_image.py

  +++ b/lib/matplotlib/tests/test_image.py

- @@ -768,7 +768,7 @@ def test_imshow_endianess():

+ @@ -757,7 +757,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)

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.25,

+                    remove_text=True, style='mpl20')

   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 d508d6f41..69286069d 100644

+ --- a/lib/matplotlib/tests/test_legend.py

+ +++ b/lib/matplotlib/tests/test_legend.py

+ @@ -108,7 +108,6 @@ def test_multiple_keys():

+  

+  

+  @image_comparison(baseline_images=['rgba_alpha'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+                    extensions=['png'], remove_text=True)

+  def test_alpha_rgba():

+      import matplotlib.pyplot as plt

+ @@ -120,7 +119,6 @@ def test_alpha_rgba():

+  

+  

+  @image_comparison(baseline_images=['rcparam_alpha'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+                    extensions=['png'], remove_text=True)

+  def test_alpha_rcparam():

+      import matplotlib.pyplot as plt

+ @@ -148,8 +146,7 @@ def test_fancy():

+                 ncol=2, shadow=True, title="My legend", numpoints=1)

+  

+  

+ -@image_comparison(baseline_images=['framealpha'], remove_text=True,

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0))

+ +@image_comparison(baseline_images=['framealpha'], remove_text=True)

+  def test_framealpha():

+      x = np.linspace(1, 100, 100)

+      y = x

  diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py

- index cdc1093e1..ac0d8bf05 100644

+ index a05c8b3c8..b6f11281f 100644

  --- a/lib/matplotlib/tests/test_mathtext.py

  +++ b/lib/matplotlib/tests/test_mathtext.py

- @@ -173,7 +173,7 @@ def baseline_images(request, fontset, index):

+ @@ -169,7 +169,7 @@ def baseline_images(request, fontset, index):

                            ['cm', 'stix', 'stixsans', 'dejavusans',

                             'dejavuserif'])

   @pytest.mark.parametrize('baseline_images', ['mathtext'], indirect=True)

@@ -397,7 +477,7 @@ 

   def test_mathtext_rendering(baseline_images, fontset, index, test):

       matplotlib.rcParams['mathtext.fontset'] = fontset

       fig = plt.figure(figsize=(5.25, 0.75))

- @@ -187,7 +187,7 @@ def test_mathtext_rendering(baseline_images, fontset, index, test):

+ @@ -183,7 +183,7 @@ def test_mathtext_rendering(baseline_images, fontset, index, test):

                            ['cm', 'stix', 'stixsans', 'dejavusans',

                             'dejavuserif'])

   @pytest.mark.parametrize('baseline_images', ['mathfont'], indirect=True)

@@ -407,10 +487,10 @@ 

       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 ff1abb9c6..cc90e6bb0 100644

+ index 89a77e258..2e5c16f75 100644

  --- a/lib/matplotlib/tests/test_patches.py

  +++ b/lib/matplotlib/tests/test_patches.py

- @@ -266,9 +266,8 @@ def test_wedge_movement():

+ @@ -260,9 +260,8 @@ def test_wedge_movement():

           assert getattr(w, attr) == new_v

   

   

@@ -422,36 +502,36 @@ 

       ax = plt.axes()

   

  diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py

- index fe7265957..2addc35ed 100644

+ index 6e80d8d98..0f158eb9e 100644

  --- a/lib/matplotlib/tests/test_patheffects.py

  +++ b/lib/matplotlib/tests/test_patheffects.py

- @@ -121,7 +121,7 @@ def test_SimplePatchShadow_offset():

+ @@ -119,7 +119,7 @@ def test_SimplePatchShadow_offset():

       assert pe._offset == (4, 5)

   

   

- -@image_comparison(baseline_images=['collection'], tol=0.02)

- +@image_comparison(baseline_images=['collection'], tol=0.084)

+ -@image_comparison(baseline_images=['collection'], tol=0.02, style='mpl20')

+ +@image_comparison(baseline_images=['collection'], tol=0.084, style='mpl20')

   def test_collection():

       x, y = np.meshgrid(np.linspace(0, 10, 150), np.linspace(-5, 5, 100))

       data = np.sin(x) + np.cos(y)

  diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py

- index 89a5a512e..a25961284 100644

+ index 9cb806c6f..c0ccf5f8c 100644

  --- a/lib/matplotlib/tests/test_pickle.py

  +++ b/lib/matplotlib/tests/test_pickle.py

- @@ -42,7 +42,7 @@ def test_simple():

+ @@ -44,7 +44,7 @@ def test_simple():

   

   @image_comparison(baseline_images=['multi_pickle'],

                     extensions=['png'], remove_text=True,

- -                  style='mpl20')

- +                  style='mpl20', tol=0.11)

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.11,

+                    style='mpl20')

   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

+ index 4470e02fa..70aa1e718 100644

  --- a/lib/matplotlib/tests/test_quiver.py

  +++ b/lib/matplotlib/tests/test_quiver.py

- @@ -131,7 +131,7 @@ def test_quiver_key_pivot():

+ @@ -130,7 +130,7 @@ def test_quiver_key_pivot():

   

   

   @image_comparison(baseline_images=['barbs_test_image'],

@@ -461,37 +541,48 @@ 

       x = np.linspace(-5, 5, 5)

       X, Y = np.meshgrid(x, x)

  diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py

- index 4f70ce861..5bc8184f7 100644

+ index e261513df..907841494 100644

  --- a/lib/matplotlib/tests/test_streamplot.py

  +++ b/lib/matplotlib/tests/test_streamplot.py

- @@ -39,8 +39,7 @@ def test_startpoints():

-      plt.plot(start_x, start_y, 'ok')

+ @@ -40,7 +40,7 @@ def test_startpoints():

   

   

- -@image_comparison(baseline_images=['streamplot_colormap'],

- -                  tol=.02)

- +@image_comparison(baseline_images=['streamplot_colormap'])

+  @image_comparison(baseline_images=['streamplot_colormap'],

+ -                  tol=.04, remove_text=True, style='mpl20')

+ +                  remove_text=True, style='mpl20')

   def test_colormap():

       X, Y, U, V = velocity_field()

       plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2,

  diff --git a/lib/matplotlib/tests/test_transforms.py b/lib/matplotlib/tests/test_transforms.py

- index 06985db84..8efaef898 100644

+ index 6275d5b54..a5c03f0a3 100644

  --- a/lib/matplotlib/tests/test_transforms.py

  +++ b/lib/matplotlib/tests/test_transforms.py

- @@ -74,7 +74,7 @@ def test_external_transform_api():

+ @@ -70,7 +70,7 @@ def test_external_transform_api():

   

   

   @image_comparison(baseline_images=['pre_transform_data'],

- -                  tol=0.08)

- +                  tol=0.155)

+ -                  tol=0.08, remove_text=True, style='mpl20')

+ +                  tol=0.155, remove_text=True, style='mpl20')

   def test_pre_transform_plotting():

       # a catch-all for as many as possible plot layouts which handle

       # pre-transforming the data NOTE: The axis range is important in this

+ diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py

+ index 20840d7b8..80744294d 100644

+ --- a/lib/matplotlib/tests/test_units.py

+ +++ b/lib/matplotlib/tests/test_units.py

+ @@ -41,7 +41,6 @@ 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'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+                    extensions=['png'], remove_text=False, style='mpl20')

+  def test_numpy_facade():

+      # Create an instance of the conversion interface and

  diff --git a/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py b/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py

- index de7226609..2676fc842 100644

+ index 929c0368a..e6e5ca1ff 100644

  --- a/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py

  +++ b/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py

- @@ -24,7 +24,7 @@ def test_subplot():

+ @@ -21,7 +21,7 @@ def test_subplot():

   

   

   @image_comparison(baseline_images=['curvelinear3'],

@@ -500,20 +591,20 @@ 

   def test_curvelinear3():

       fig = plt.figure(figsize=(5, 5))

       fig.clf()

- @@ -80,7 +80,7 @@ def test_curvelinear3():

+ @@ -77,7 +77,7 @@ def test_curvelinear3():

   

   

   @image_comparison(baseline_images=['curvelinear4'],

- -                  extensions=['png'], style='default', tol=0.01)

+ -                  extensions=['png'], style='default', tol=0.015)

  +                  extensions=['png'], style='default', tol=0.055)

   def test_curvelinear4():

       fig = plt.figure(figsize=(5, 5))

       fig.clf()

  diff --git a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py

- index a7c637428..e22f4ac3e 100644

+ index 0f5e86322..590430315 100644

  --- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py

  +++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py

- @@ -19,7 +19,7 @@ from mpl_toolkits.axisartist.grid_helper_curvelinear import \

+ @@ -17,7 +17,7 @@ from mpl_toolkits.axisartist.grid_helper_curvelinear import \

   

   

   @image_comparison(baseline_images=['custom_transform'],

@@ -522,16 +613,16 @@ 

   def test_custom_transform():

       class MyTransform(Transform):

           input_dims = 2

- @@ -91,7 +91,7 @@ def test_custom_transform():

+ @@ -85,7 +85,7 @@ def test_custom_transform():

   

   

   @image_comparison(baseline_images=['polar_box'],

- -                  extensions=['png'], style='default', tol=0.03)

- +                  extensions=['png'], style='default', tol=0.08)

+ -                  tol={'aarch64': 0.04}.get(platform.machine(), 0.03),

+ +                  tol=0.08,

+                    extensions=['png'], style='default')

   def test_polar_box():

       fig = plt.figure(figsize=(5, 5))

-  

- @@ -152,7 +152,7 @@ def test_polar_box():

+ @@ -147,7 +147,7 @@ def test_polar_box():

   

   

   @image_comparison(baseline_images=['axis_direction'],

@@ -541,10 +632,10 @@ 

       fig = plt.figure(figsize=(5, 5))

   

  diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py

- index 0a506db92..44e1681fc 100644

+ index 8d2815408..816a26c35 100644

  --- a/lib/mpl_toolkits/tests/test_mplot3d.py

  +++ b/lib/mpl_toolkits/tests/test_mplot3d.py

- @@ -225,7 +225,7 @@ def test_text3d():

+ @@ -241,7 +241,7 @@ def test_text3d():

       ax.set_zlabel('Z axis')

   

   

@@ -553,7 +644,7 @@ 

   def test_trisurf3d():

       n_angles = 36

       n_radii = 8

- @@ -704,7 +704,7 @@ class TestVoxels(object):

+ @@ -720,7 +720,7 @@ class TestVoxels(object):

       @image_comparison(

           baseline_images=['voxels-xyz'],

           extensions=['png'],

@@ -1,53 +1,53 @@ 

- From 3e2bfee4e8ce28fffa7e9cd0a054429af2e2ebe3 Mon Sep 17 00:00:00 2001

+ From 642f104f23c78af5d6010916961ec62779290ea5 Mon Sep 17 00:00:00 2001

  From: Elliott Sales de Andrade <quantum.analyst@gmail.com>

  Date: Sat, 31 Mar 2018 00:33:37 -0400

  Subject: [PATCH 3/3] Increase some tolerances for non-x86 arches.

  

  Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>

  ---

-  lib/matplotlib/tests/test_arrow_patches.py                 | 4 ++--

-  lib/matplotlib/tests/test_axes.py                          | 7 ++++---

-  lib/matplotlib/tests/test_backends_interactive.py          | 2 +-

-  lib/matplotlib/tests/test_collections.py                   | 2 +-

-  lib/matplotlib/tests/test_constrainedlayout.py             | 2 +-

-  lib/matplotlib/tests/test_cycles.py                        | 6 +++---

-  lib/matplotlib/tests/test_figure.py                        | 2 +-

-  lib/matplotlib/tests/test_image.py                         | 2 +-

-  lib/matplotlib/tests/test_legend.py                        | 6 +++---

-  lib/matplotlib/tests/test_pickle.py                        | 2 +-

-  lib/matplotlib/tests/test_scale.py                         | 2 +-

-  lib/matplotlib/tests/test_streamplot.py                    | 2 +-

-  lib/matplotlib/tests/test_units.py                         | 4 ++--

-  .../tests/test_axisartist_grid_helper_curvelinear.py       | 2 +-

-  14 files changed, 23 insertions(+), 22 deletions(-)

+  lib/matplotlib/tests/test_arrow_patches.py                  | 4 ++--

+  lib/matplotlib/tests/test_axes.py                           | 6 +++---

+  lib/matplotlib/tests/test_backends_interactive.py           | 2 +-

+  lib/matplotlib/tests/test_collections.py                    | 2 +-

+  lib/matplotlib/tests/test_constrainedlayout.py              | 2 +-

+  lib/matplotlib/tests/test_cycles.py                         | 6 +++---

+  lib/matplotlib/tests/test_figure.py                         | 2 +-

+  lib/matplotlib/tests/test_image.py                          | 2 +-

+  lib/matplotlib/tests/test_legend.py                         | 6 +++---

+  lib/matplotlib/tests/test_pickle.py                         | 2 +-

+  lib/matplotlib/tests/test_scale.py                          | 2 +-

+  lib/matplotlib/tests/test_streamplot.py                     | 2 +-

+  lib/matplotlib/tests/test_units.py                          | 4 ++--

+  .../tests/test_axisartist_grid_helper_curvelinear.py        | 2 +-

+  14 files changed, 22 insertions(+), 22 deletions(-)

  

  diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py

- index 44f87c5fe..fb50ae710 100644

+ index f678fbed3..bac0cb802 100644

  --- a/lib/matplotlib/tests/test_arrow_patches.py

  +++ b/lib/matplotlib/tests/test_arrow_patches.py

- @@ -68,7 +68,7 @@ def __prepare_fancyarrow_dpi_cor_test():

-  

+ @@ -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,

+                    remove_text=True, extensions=['png'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.016,

                     savefig_kwarg=dict(dpi=100))

   def test_fancyarrow_dpi_cor_100dpi():

       """

- @@ -83,7 +83,7 @@ def test_fancyarrow_dpi_cor_100dpi():

-  

+ @@ -85,7 +85,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,

+                    remove_text=True, extensions=['png'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.019,

                     savefig_kwarg=dict(dpi=200))

   def test_fancyarrow_dpi_cor_200dpi():

       """

  diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py

- index 2fa6c2c94..f785e3e89 100644

+ index 6afed91f3..755be5570 100644

  --- a/lib/matplotlib/tests/test_axes.py

  +++ b/lib/matplotlib/tests/test_axes.py

- @@ -389,7 +389,7 @@ def test_annotate_default_arrow():

+ @@ -386,7 +386,7 @@ def test_annotate_default_arrow():

       assert ann.arrow_patch is not None

   

   

@@ -56,53 +56,55 @@ 

   def test_polar_annotations():

       # you can specify the xypoint and the xytext in different

       # positions and coordinate systems, and optionally turn on a

- @@ -3267,7 +3267,8 @@ def test_vertex_markers():

-  

+ @@ -3348,7 +3348,7 @@ def test_vertex_markers():

   

   @image_comparison(baseline_images=['vline_hline_zorder',

- -                                   'errorbar_zorder'])

- +                                   'errorbar_zorder'],

+                                     'errorbar_zorder'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0))

  +                  tol=0.02)

   def test_eb_line_zorder():

-      x = list(xrange(10))

-  

- @@ -5000,7 +5001,7 @@ def test_title_location_roundtrip():

+      x = list(range(10))

   

+ @@ -5120,7 +5120,7 @@ def test_title_location_roundtrip():

   

   @image_comparison(baseline_images=["loglog"], remove_text=True,

- -                  extensions=['png'])

- +                  extensions=['png'], tol=0.009)

+                    extensions=['png'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0))

+ +                  tol=0.009)

   def test_loglog():

       fig, ax = plt.subplots()

       x = np.arange(1, 11)

  diff --git a/lib/matplotlib/tests/test_backends_interactive.py b/lib/matplotlib/tests/test_backends_interactive.py

- index df7a5d08a..3567d7f3d 100644

+ index 7ba47be93..bf05c5286 100644

  --- a/lib/matplotlib/tests/test_backends_interactive.py

  +++ b/lib/matplotlib/tests/test_backends_interactive.py

- @@ -55,4 +55,4 @@ def test_backend(backend):

-      environ["MPLBACKEND"] = backend

-      proc = Popen([sys.executable, "-c", _test_script], env=environ)

-      # Empirically, 1s is not enough on Travis.

- -    assert proc.wait(timeout=10) == 0

- +    assert proc.wait(timeout=30) == 0

+ @@ -101,7 +101,7 @@ fig.canvas.mpl_connect("draw_event", lambda event: timer.start())

+  

+  plt.show()

+  """

+ -_test_timeout = 10  # Empirically, 1s is not enough on Travis.

+ +_test_timeout = 30  # Empirically, 1s is not enough on Travis.

+  

+  

+  @pytest.mark.parametrize("backend", _get_testable_interactive_backends())

  diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py

- index 291647d17..6b623ef52 100644

+ index 6812ee1ad..582aabb5c 100644

  --- a/lib/matplotlib/tests/test_collections.py

  +++ b/lib/matplotlib/tests/test_collections.py

- @@ -443,7 +443,7 @@ def test_barb_limits():

-  

+ @@ -442,7 +442,7 @@ def test_barb_limits():

   

   @image_comparison(baseline_images=['EllipseCollection_test_image'],

- -                  extensions=['png'],

- +                  extensions=['png'], tol=0.012,

+                    extensions=['png'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.012,

                     remove_text=True)

   def test_EllipseCollection():

       # Test basic functionality

  diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py

- index fcf633a08..725365d2e 100644

+ index 0803504ce..63e3c6781 100644

  --- a/lib/matplotlib/tests/test_constrainedlayout.py

  +++ b/lib/matplotlib/tests/test_constrainedlayout.py

- @@ -222,7 +222,7 @@ def test_constrained_layout9():

+ @@ -173,7 +173,7 @@ def test_constrained_layout9():

   

   

   @image_comparison(baseline_images=['constrained_layout10'],

@@ -112,167 +114,167 @@ 

       'Test for handling legend outside axis'

       fig, axs = plt.subplots(2, 2, constrained_layout=True)

  diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py

- index dfa0f7c79..ac605c8ab 100644

+ index 8184d3eee..73b0f216d 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)

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.008,

+                    extensions=['png'])

   def test_colorcycle_basic():

       fig, ax = plt.subplots()

-      ax.set_prop_cycle(cycler('color', ['r', 'g', 'y']))

- @@ -27,7 +27,7 @@ def test_colorcycle_basic():

+ @@ -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)

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.008,

+                    remove_text=True, extensions=['png'])

   def test_marker_cycle():

       fig, ax = plt.subplots()

-      ax.set_prop_cycle(cycler('c', ['r', 'g', 'y']) +

- @@ -60,7 +60,7 @@ def test_marker_cycle():

+ @@ -62,7 +62,7 @@ def test_marker_cycle():

   

   

   @image_comparison(baseline_images=['lineprop_cycle_basic'], remove_text=True,

- -                  extensions=['png'])

- +                  extensions=['png'], tol=0.009)

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.009,

+                    extensions=['png'])

   def test_linestylecycle_basic():

       fig, ax = plt.subplots()

-      ax.set_prop_cycle(cycler('ls', ['-', '--', ':']))

  diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py

- index 69752e17d..e7c57d470 100644

+ index 7cb5af621..128cae5ec 100644

  --- a/lib/matplotlib/tests/test_figure.py

  +++ b/lib/matplotlib/tests/test_figure.py

- @@ -14,7 +14,7 @@ import numpy as np

-  import pytest

+ @@ -14,7 +14,7 @@ import pytest

   

   

- -@image_comparison(baseline_images=['figure_align_labels'])

- +@image_comparison(baseline_images=['figure_align_labels'], tol=0.01)

+  @image_comparison(baseline_images=['figure_align_labels'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0))

+ +                  tol=0.01)

   def test_align_labels():

       # Check the figure.align_labels() command

       fig = plt.figure(tight_layout=True)

  diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py

- index e6da25789..626e9eb94 100644

+ index 893108258..cf7975071 100644

  --- a/lib/matplotlib/tests/test_image.py

  +++ b/lib/matplotlib/tests/test_image.py

- @@ -768,7 +768,7 @@ def test_imshow_endianess():

+ @@ -757,7 +757,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)

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.006,

+                    remove_text=True, style='mpl20')

   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 55b8adc77..1784ff966 100644

+ index d508d6f41..9147ef336 100644

  --- a/lib/matplotlib/tests/test_legend.py

  +++ b/lib/matplotlib/tests/test_legend.py

- @@ -145,7 +145,7 @@ def test_multiple_keys():

+ @@ -108,7 +108,7 @@ def test_multiple_keys():

   

   

   @image_comparison(baseline_images=['rgba_alpha'],

- -                  extensions=['png'], remove_text=True)

- +                  extensions=['png'], remove_text=True, tol=0.007)

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.007,

+                    extensions=['png'], remove_text=True)

   def test_alpha_rgba():

       import matplotlib.pyplot as plt

-  

- @@ -156,7 +156,7 @@ def test_alpha_rgba():

+ @@ -120,7 +120,7 @@ def test_alpha_rgba():

   

   

   @image_comparison(baseline_images=['rcparam_alpha'],

- -                  extensions=['png'], remove_text=True)

- +                  extensions=['png'], remove_text=True, tol=0.007)

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.007,

+                    extensions=['png'], remove_text=True)

   def test_alpha_rcparam():

       import matplotlib.pyplot as plt

+ @@ -149,7 +149,7 @@ def test_fancy():

   

- @@ -183,7 +183,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)

+  @image_comparison(baseline_images=['framealpha'], remove_text=True,

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0))

+ +                  tol=0.018)

   def test_framealpha():

       x = np.linspace(1, 100, 100)

       y = x

  diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py

- index 89a5a512e..99051dee7 100644

+ index 9cb806c6f..91774abfd 100644

  --- a/lib/matplotlib/tests/test_pickle.py

  +++ b/lib/matplotlib/tests/test_pickle.py

- @@ -42,7 +42,7 @@ def test_simple():

+ @@ -44,7 +44,7 @@ def test_simple():

   

   @image_comparison(baseline_images=['multi_pickle'],

                     extensions=['png'], remove_text=True,

- -                  style='mpl20')

- +                  style='mpl20', tol=0.004)

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.004,

+                    style='mpl20')

   def test_complete():

       fig = plt.figure('Figure with a label?', figsize=(10, 6))

-  

  diff --git a/lib/matplotlib/tests/test_scale.py b/lib/matplotlib/tests/test_scale.py

- index dd5b18182..ebebb0525 100644

+ index ebe5c4de9..2999b624d 100644

  --- a/lib/matplotlib/tests/test_scale.py

  +++ b/lib/matplotlib/tests/test_scale.py

- @@ -96,7 +96,7 @@ def test_logscale_transform_repr():

+ @@ -99,7 +99,7 @@ def test_logscale_transform_repr():

   

   

   @image_comparison(baseline_images=['logscale_nonpos_values'], remove_text=True,

- -                  extensions=['png'], style='mpl20')

- +                  extensions=['png'], style='mpl20', tol=0.008)

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.008,

+                    extensions=['png'], style='mpl20')

   def test_logscale_nonpos_values():

       np.random.seed(19680801)

-      xs = np.random.normal(size=int(1e3))

  diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py

- index 4f70ce861..4e52ed0c4 100644

+ index e261513df..c8c8faf99 100644

  --- a/lib/matplotlib/tests/test_streamplot.py

  +++ b/lib/matplotlib/tests/test_streamplot.py

- @@ -48,7 +48,7 @@ def test_colormap():

-      plt.colorbar()

+ @@ -49,7 +49,7 @@ def test_colormap():

   

   

- -@image_comparison(baseline_images=['streamplot_linewidth'])

- +@image_comparison(baseline_images=['streamplot_linewidth'], tol=0.002)

+  @image_comparison(baseline_images=['streamplot_linewidth'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.002,

+                    remove_text=True, style='mpl20')

   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 65c8da7ea..c69d1d531 100644

+ index 20840d7b8..ddddcdc44 100644

  --- a/lib/matplotlib/tests/test_units.py

  +++ b/lib/matplotlib/tests/test_units.py

- @@ -43,7 +43,7 @@ class Quantity(object):

-  

+ @@ -41,7 +41,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,

+  @image_comparison(baseline_images=['plot_pint'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.003,

                     extensions=['png'], remove_text=False, style='mpl20')

   def test_numpy_facade():

       # Create an instance of the conversion interface and

- @@ -87,7 +87,7 @@ def test_numpy_facade():

-  

+ @@ -86,7 +86,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,

+  @image_comparison(baseline_images=['plot_masked_units'],

+ -                  tol={'aarch64': 0.02}.get(platform.machine(), 0.0),

+ +                  tol=0.007,

                     extensions=['png'], remove_text=True, style='mpl20')

   def test_plot_masked_units():

       data = np.linspace(-5, 5)

  diff --git a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py

- index a7c637428..8fc5b25b1 100644

+ index 0f5e86322..83c1054a4 100644

  --- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py

  +++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py

- @@ -91,7 +91,7 @@ def test_custom_transform():

+ @@ -85,7 +85,7 @@ def test_custom_transform():

   

   

   @image_comparison(baseline_images=['polar_box'],

- -                  extensions=['png'], style='default', tol=0.03)

- +                  extensions=['png'], style='default', tol=0.04)

+ -                  tol={'aarch64': 0.04}.get(platform.machine(), 0.03),

+ +                  tol=0.04,

+                    extensions=['png'], style='default')

   def test_polar_box():

       fig = plt.figure(figsize=(5, 5))

-  

  -- 

  2.17.1

  

file added
+31

@@ -0,0 +1,31 @@ 

+ From bb337935d04b63d454a81e16a9ac2063a7d945c3 Mon Sep 17 00:00:00 2001

+ From: Antony Lee <anntzer.lee@gmail.com>

+ Date: Tue, 18 Sep 2018 22:46:17 +0200

+ Subject: [PATCH] Properly declare the interactive framework for the qt4foo

+  backends.

+ 

+ ---

+  lib/matplotlib/backends/backend_qt4agg.py   | 2 +-

+  lib/matplotlib/backends/backend_qt4cairo.py | 2 +-

+  2 files changed, 2 insertions(+), 2 deletions(-)

+ 

+ diff --git a/lib/matplotlib/backends/backend_qt4agg.py b/lib/matplotlib/backends/backend_qt4agg.py

+ index 65785bbd32b..8f4e265ac42 100644

+ --- a/lib/matplotlib/backends/backend_qt4agg.py

+ +++ b/lib/matplotlib/backends/backend_qt4agg.py

+ @@ -8,4 +8,4 @@

+  

+  @_BackendQT5Agg.export

+  class _BackendQT4Agg(_BackendQT5Agg):

+ -    pass

+ +    required_interactive_framework = "qt4"

+ diff --git a/lib/matplotlib/backends/backend_qt4cairo.py b/lib/matplotlib/backends/backend_qt4cairo.py

+ index f94851da382..94d703afa4e 100644

+ --- a/lib/matplotlib/backends/backend_qt4cairo.py

+ +++ b/lib/matplotlib/backends/backend_qt4cairo.py

+ @@ -3,4 +3,4 @@

+  

+  @_BackendQT5Cairo.export

+  class _BackendQT4Cairo(_BackendQT5Cairo):

+ -    pass

+ +    required_interactive_framework = "qt4"

file modified
+112 -301

@@ -8,8 +8,8 @@ 

  # happen.

  %global run_tests               1

  

- # the default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo

- # CocoaAgg MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG

+ # the default backend; one of GTK3Agg GTK3Cairo MacOSX Qt4Agg Qt5Agg TkAgg

+ # WXAgg Agg Cairo PS PDF SVG

  %global backend                 TkAgg

  

  %if "%{backend}" == "TkAgg"

@@ -20,6 +20,10 @@ 

  %  else

  %    if "%{backend}" == "Qt5Agg"

  %global backend_subpackage qt5

+ %    else

+ %      if "%{backend}" == "WXAgg"

+ %global backend_subpackage wx

+ %      endif

  %    endif

  %  endif

  %endif

@@ -33,14 +37,10 @@ 

  #global rctag rc1

  

  # The version of FreeType in this Fedora branch.

- %if %{fedora} >= 29

  %global ftver 2.9.1

- %else

- %global ftver 2.8

- %endif

  

  Name:           python-matplotlib

- Version:        2.2.3

+ Version:        3.0.0

  Release:        1%{?rctag:.%{rctag}}%{?dist}

  Summary:        Python 2D plotting library

  # qt4_editor backend is MIT

@@ -52,12 +52,14 @@ 

  # Because the qhull package stopped shipping pkgconfig files.

  # https://src.fedoraproject.org/rpms/qhull/pull-request/1

  Patch0001:      0001-Force-using-system-qhull.patch

+ # https://github.com/matplotlib/matplotlib/pull/12157

+ Patch0002:      12157.patch

  

  # Fedora-specific patches; see:

  # https://github.com/QuLogic/matplotlib/tree/fedora-patches

  # https://github.com/QuLogic/matplotlib/tree/fedora-patches-non-x86

  # Updated test images for new FreeType.

- Source1000:     https://github.com/QuLogic/mpl-images/archive/v%{version}-with-freetype-%{ftver}/matplotlib-%{version}-with-freetype-%{ftver}.tar.gz

+ Source1000:     https://github.com/QuLogic/mpl-images/archive/v%{version}%{?rctag}-with-freetype-%{ftver}/matplotlib-%{version}%{?rctag}-with-freetype-%{ftver}.tar.gz

  # Search in /etc/matplotlibrc:

  Patch1001:      0001-matplotlibrc-path-search-fix.patch

  # Image tolerances for anything but x86_64:

@@ -67,6 +69,8 @@ 

  # Image tolerances for 64-bit (but not x86_64) systems: aarch64 ppc64(le) s390x

  Patch1004:      0003-Increase-some-tolerances-for-non-x86-arches.patch

  

+ BuildRequires:  gcc

+ BuildRequires:  gcc-c++

  BuildRequires:  freetype-devel

  BuildRequires:  libpng-devel

  BuildRequires:  qhull-devel

@@ -85,185 +89,28 @@ 

  You can generate plots, histograms, power spectra, bar charts,

  errorcharts, scatterplots, etc, with just a few lines of code.

  

- %package -n python2-matplotlib

- Summary:        Python 2D plotting library

- BuildRequires:  python2-numpy

- BuildRequires:  python2-pyparsing

- BuildRequires:  python2-dateutil

- BuildRequires:  python2-kiwisolver

- BuildRequires:  python2-pyside

- BuildRequires:  python2-setuptools

- BuildRequires:  python2-six

- BuildRequires:  python2-sphinx

- BuildRequires:  python2-subprocess32

- BuildRequires:  python2-devel

- BuildRequires:  python2-backports-functools_lru_cache

- BuildRequires:  python2-pillow

- BuildRequires:  python2-pytz

- %if %{with_html}

- BuildRequires:  %{_bindir}/pdftops

- # circular dependency: python2-basemap requires matplotlib

- BuildRequires:  python2-basemap

- BuildRequires:  python2-ipython-sphinx

- BuildRequires:  python2-numpydoc

- BuildRequires:  python2-scikit-image

- BuildRequires:  python2-colorspacious

- BuildRequires:  python2-cycler >= 0.10.0

- %endif

- %if %{run_tests}

- BuildRequires:  python2-pytest

- BuildRequires:  python2-pytest-xdist

- BuildRequires:  python2-cycler >= 0.10.0

- BuildRequires:  python2-mock

- %endif

- Requires:       dejavu-sans-fonts

- Requires:       dvipng

- Requires:       python2-numpy

- Requires:       python2-pyparsing

- Requires:       python2-cycler >= 0.10.0

- Requires:       python2-dateutil

- Requires:       python2-kiwisolver

- 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

- Requires:       python2-six

- Requires:       python2-subprocess32

- Requires:       python2-pytz

- %if !%{with_bundled_fonts}

- Requires:       stix-math-fonts

- %else

- Provides:       bundled(stix-math-fonts)

- %endif

- %{?python_provide:%python_provide python2-matplotlib}

- Provides:       bundled(agg) = 2.4

- Provides:       bundled(ttconv)

- Provides:       bundled(js-jquery1) = 1.11.3

- Provides:       bundled(js-jquery1-ui) = 1.11.4

- Provides:       bundled(texlive-helvetic)

- 

- %description -n python2-matplotlib

- Matplotlib is a python 2D plotting library which produces publication

- quality figures in a variety of hardcopy formats and interactive

- environments across platforms. matplotlib can be used in python

- scripts, the python and ipython shell, web application servers, and

- six graphical user interface toolkits.

- 

- Matplotlib tries to make easy things easy and hard things possible.

- You can generate plots, histograms, power spectra, bar charts,

- errorcharts, scatterplots, etc, with just a few lines of code.

- 

- %package -n python2-matplotlib-qt4

- Summary:        Qt4 backend for python-matplotlib

- BuildRequires:  PyQt4-devel

- Requires:       python2-PyQt4

- Requires:       python2-matplotlib%{?_isa} = %{version}-%{release}

- Requires:       python2-matplotlib-qt5

- %{?python_provide:%python_provide python2-matplotlib-qt4}

- 

- %description -n python2-matplotlib-qt4

- %{summary}

- 

- %package -n python2-matplotlib-qt5

- Summary:        Qt5 backend for python-matplotlib

- BuildRequires:  python2-qt5

- Requires:       python2-qt5

- Requires:       python2-matplotlib%{?_isa} = %{version}-%{release}

- %{?python_provide:%python_provide python2-matplotlib-qt5}

- 

- %description -n python2-matplotlib-qt5

- %{summary}

- 

- %package -n python2-matplotlib-gtk

- Summary:        GTK backend for python-matplotlib

- BuildRequires:  gtk2-devel

- BuildRequires:  pycairo-devel

- BuildRequires:  pygtk2-devel

- Requires:       pycairo

- Requires:       pygtk2

- Requires:       python2-matplotlib%{?_isa} = %{version}-%{release}

- %{?python_provide:%python_provide python2-matplotlib-gtk}

- 

- %description -n python2-matplotlib-gtk

- %{summary}

- 

- %package -n python2-matplotlib-gtk3

- Summary:        GTK3 backend for python-matplotlib

- # This should be converted to typelib(Gtk) when supported

- BuildRequires:  gtk3

- BuildRequires:  pygobject3-base

- Requires:       gtk3%{?_isa}

- Requires:       pygobject3-base%{?_isa}

- Requires:       python2-matplotlib%{?_isa} = %{version}-%{release}

- %{?python_provide:%python_provide python2-matplotlib-gtk3}

- 

- %description -n python2-matplotlib-gtk3

- %{summary}

- 

- %package -n python2-matplotlib-tk

- Summary:        Tk backend for python-matplotlib

- BuildRequires:  tcl-devel

- BuildRequires:  tkinter

- BuildRequires:  tk-devel

- Requires:       python2-matplotlib%{?_isa} = %{version}-%{release}

- Requires:       tkinter

- %{?python_provide:%python_provide python2-matplotlib-tk}

- 

- %description -n python2-matplotlib-tk

- %{summary}