Compare commits

...

23 Commits
f32 ... f33

Author SHA1 Message Date
Elliott Sales de Andrade
171d221430 Update to 3.3.4. 2021-01-28 04:31:52 -05:00
Fedora Release Engineering
2b82ad2a3b - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 11:38:22 +00:00
Elliott Sales de Andrade
98cb5a1a9b Fix bug with running LaTeX tests in parallel. 2021-01-27 01:26:04 -05:00
Elliott Sales de Andrade
ac8946e2f5 Merge remote-tracking branch 'refs/remotes/origin/master' 2021-01-21 02:22:27 -05:00
Tomas Popela
4cdf22e67a Don't build the Qt 4 backend in ELN/RHEL 9 as Qt 4 won't be available there
Reuse 588e490738
2020-12-02 15:49:09 +01:00
Elliott Sales de Andrade
7da34af983 Remove an old patch. 2020-11-12 19:51:34 -05:00
Elliott Sales de Andrade
c24355dafa Update to latest version. 2020-11-12 01:35:38 -05:00
Elliott Sales de Andrade
e3697cc92e Update to 3.3.2. 2020-09-15 04:15:49 -04:00
Elliott Sales de Andrade
3995507d1b Update to latest version. 2020-08-25 01:54:22 -04:00
Elliott Sales de Andrade
ad9824fe33 Re-enable wx test on ppc64le.
The bug appears to have been fixed.
2020-08-13 04:11:19 -04:00
Fedora Release Engineering
f853587a87 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 02:04:15 +00:00
Elliott Sales de Andrade
4524214523 Modernize some macro usage. 2020-07-19 02:41:39 -04:00
Elliott Sales de Andrade
26c79f2797 Update to latest version. 2020-07-19 02:41:37 -04:00
Elliott Sales de Andrade
c7c1d89af8 Don't install Inkscape on s390x.
It appears to be buggy and produce incorrect test results.
2020-06-30 21:09:32 -04:00
Elliott Sales de Andrade
9d428b07ae Add more test dependencies. 2020-06-30 05:42:19 -04:00
Elliott Sales de Andrade
037e6aee2b Update to 3.3.0rc1. 2020-06-29 20:38:52 -04:00
Elliott Sales de Andrade
02546b29b2 Make texlive dependencies more explicit. 2020-06-20 05:02:11 -04:00
Elliott Sales de Andrade
107b5a1d51 Sort texlive packages, by type, then name. 2020-06-20 04:48:13 -04:00
Elliott Sales de Andrade
8d41fb7796 Remove old file exclusions. 2020-06-20 04:28:59 -04:00
Elliott Sales de Andrade
d52452b8de Merge branch 'f32' 2020-06-20 04:22:53 -04:00
Miro Hrončok
713ad4038b Only recommend texlive-dvipng (but require it if texlive is installed)
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1509657
See also https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/ZGQJOTPJLK4JDB763ZS2MM46BDDKUGA3/
2020-06-02 11:48:59 +02:00
Miro Hrončok
d613f4be7e Rebuilt for Python 3.9 2020-05-25 16:22:25 +02:00
Miro Hrončok
f5b673f304 Add explicit texlive BRs 2020-05-21 16:04:47 +02:00
11 changed files with 240 additions and 1345 deletions

9
.gitignore vendored
View File

@@ -49,3 +49,12 @@ matplotlib-1.0.0-without-gpc.tar.gz
/matplotlib-3.2.1.tar.gz
/matplotlib-3.2.2.tar.gz
/matplotlib-3.2.2-with-freetype-2.10.1.tar.gz
/matplotlib-3.3.0rc1.tar.gz
/matplotlib-3.3.0rc1-with-freetype-2.10.1.tar.gz
/matplotlib-3.3.0.tar.gz
/matplotlib-3.3.0-with-freetype-2.10.2.tar.gz
/matplotlib-3.3.1.tar.gz
/matplotlib-3.3.2.tar.gz
/matplotlib-3.3.3.tar.gz
/matplotlib-3.3.3-with-freetype-2.10.4.tar.gz
/matplotlib-3.3.4.tar.gz

View File

@@ -1,37 +0,0 @@
From ee5c28ea8cd17cbc04d5a9b79d5ce1326df93466 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Fri, 30 Mar 2018 03:15:51 -0400
Subject: [PATCH] Force using system qhull.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
setupext.py | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/setupext.py b/setupext.py
index 3e8b382cc..66a278b0c 100644
--- a/setupext.py
+++ b/setupext.py
@@ -838,14 +838,12 @@ class Png(SetupPackage):
class Qhull(SetupPackage):
name = "qhull"
+ def check(self):
+ self.__class__.found_external = True
+ return ' Using system copy.'
+
def add_flags(self, ext):
- # Qhull doesn't distribute pkg-config info, so we have no way of
- # knowing whether a system install is recent enough. Thus, always use
- # the vendored version.
- ext.include_dirs.insert(0, 'extern')
- ext.sources.extend(sorted(glob.glob('extern/libqhull/*.c')))
- if sysconfig.get_config_var('LIBM') == '-lm':
- ext.libraries.extend('m')
+ ext.libraries.append('qhull')
class TTConv(SetupPackage):
--
2.21.0

View File

@@ -1,121 +0,0 @@
From a3fec73e39558f1a8d41663fe05783889e735af4 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sat, 2 Mar 2019 18:18:29 -0500
Subject: [PATCH] Use packaged jquery and jquery-ui.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
.../backends/web_backend/all_figures.html | 6 +--
.../backends/web_backend/single_figure.html | 6 +--
setup.py | 54 -------------------
3 files changed, 6 insertions(+), 60 deletions(-)
diff --git a/lib/matplotlib/backends/web_backend/all_figures.html b/lib/matplotlib/backends/web_backend/all_figures.html
index 41f48dc6d..69097eb4f 100644
--- a/lib/matplotlib/backends/web_backend/all_figures.html
+++ b/lib/matplotlib/backends/web_backend/all_figures.html
@@ -3,9 +3,9 @@
<link rel="stylesheet" href="{{ prefix }}/_static/css/page.css" type="text/css">
<link rel="stylesheet" href="{{ prefix }}/_static/css/boilerplate.css" type="text/css" />
<link rel="stylesheet" href="{{ prefix }}/_static/css/fbm.css" type="text/css" />
- <link rel="stylesheet" href="{{ prefix }}/_static/jquery-ui-1.12.1/jquery-ui.min.css" >
- <script src="{{ prefix }}/_static/jquery-ui-1.12.1/external/jquery/jquery.js"></script>
- <script src="{{ prefix }}/_static/jquery-ui-1.12.1/jquery-ui.min.js"></script>
+ <link rel="stylesheet" href="/usr/share/javascript/jquery_ui/jquery-ui.min.css" >
+ <script src="/usr/share/javascript/jquery/latest/jquery.min.js"></script>
+ <script src="/usr/share/javascript/jquery_ui/jquery-ui.min.js"></script>
<script src="{{ prefix }}/_static/js/mpl_tornado.js"></script>
<script src="{{ prefix }}/js/mpl.js"></script>
diff --git a/lib/matplotlib/backends/web_backend/single_figure.html b/lib/matplotlib/backends/web_backend/single_figure.html
index 4d5a366fb..c11c86618 100644
--- a/lib/matplotlib/backends/web_backend/single_figure.html
+++ b/lib/matplotlib/backends/web_backend/single_figure.html
@@ -3,9 +3,9 @@
<link rel="stylesheet" href="{{ prefix }}/_static/css/page.css" type="text/css">
<link rel="stylesheet" href="{{ prefix }}/_static/css/boilerplate.css" type="text/css" />
<link rel="stylesheet" href="{{ prefix }}/_static/css/fbm.css" type="text/css" />
- <link rel="stylesheet" href="{{ prefix }}/_static/jquery-ui-1.12.1/jquery-ui.min.css" >
- <script src="{{ prefix }}/_static/jquery-ui-1.12.1/external/jquery/jquery.js"></script>
- <script src="{{ prefix }}/_static/jquery-ui-1.12.1/jquery-ui.min.js"></script>
+ <link rel="stylesheet" href="/usr/share/javascript/jquery_ui/jquery-ui.min.css" >
+ <script src="/usr/share/javascript/jquery/latest/jquery.min.js"></script>
+ <script src="/usr/share/javascript/jquery_ui/jquery-ui.min.js"></script>
<script src="{{ prefix }}/_static/js/mpl_tornado.js"></script>
<script src="{{ prefix }}/js/mpl.js"></script>
<script>
diff --git a/setup.py b/setup.py
index bf03159fb..81c2f96d7 100644
--- a/setup.py
+++ b/setup.py
@@ -28,8 +28,6 @@ from zipfile import ZipFile
from setuptools import setup, find_packages, Extension
from setuptools.command.build_ext import build_ext as BuildExtCommand
-from setuptools.command.develop import develop as DevelopCommand
-from setuptools.command.install_lib import install_lib as InstallLibCommand
from setuptools.command.test import test as TestCommand
# The setuptools version of sdist adds a setup.cfg file to the tree.
@@ -120,58 +118,6 @@ cmdclass['test'] = NoopTestCommand
cmdclass['build_ext'] = BuildExtraLibraries
-def _download_jquery_to(dest):
- # Note: When bumping the jquery-ui version, also update the versions in
- # single_figure.html and all_figures.html.
- url = "https://jqueryui.com/resources/download/jquery-ui-1.12.1.zip"
- sha = "f8233674366ab36b2c34c577ec77a3d70cac75d2e387d8587f3836345c0f624d"
- name = Path(url).stem
- if (dest / name).exists():
- return
- # If we are installing from an sdist, use the already downloaded jquery-ui.
- sdist_src = Path("lib/matplotlib/backends/web_backend", name)
- if sdist_src.exists():
- shutil.copytree(sdist_src, dest / name)
- return
- if not (dest / name).exists():
- dest.mkdir(parents=True, exist_ok=True)
- try:
- buff = download_or_cache(url, sha)
- except Exception:
- raise IOError(
- "Failed to download jquery-ui. Please download "
- "{url} and extract it to {dest}.".format(url=url, dest=dest))
- with ZipFile(buff) as zf:
- zf.extractall(dest)
-
-
-# Relying on versioneer's implementation detail.
-class sdist_with_jquery(cmdclass['sdist']):
- def make_release_tree(self, base_dir, files):
- super().make_release_tree(base_dir, files)
- _download_jquery_to(
- Path(base_dir, "lib/matplotlib/backends/web_backend/"))
-
-
-# Affects install and bdist_wheel.
-class install_lib_with_jquery(InstallLibCommand):
- def run(self):
- super().run()
- _download_jquery_to(
- Path(self.install_dir, "matplotlib/backends/web_backend/"))
-
-
-class develop_with_jquery(DevelopCommand):
- def run(self):
- super().run()
- _download_jquery_to(Path("lib/matplotlib/backends/web_backend/"))
-
-
-cmdclass['sdist'] = sdist_with_jquery
-cmdclass['install_lib'] = install_lib_with_jquery
-cmdclass['develop'] = develop_with_jquery
-
-
# One doesn't normally see `if __name__ == '__main__'` blocks in a setup.py,
# however, this is needed on Windows to avoid creating infinite subprocesses
# when using multiprocessing.
--
2.25.4

View File

@@ -1,27 +1,25 @@
From 4431ff98f5f95a65378f4fa4b6e6fe02280911bf Mon Sep 17 00:00:00 2001
From 7d34e4c6cf3e9f0b68d0a7f70f5c832a24b74d7e Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Wed, 27 Sep 2017 19:35:59 -0400
Subject: [PATCH 1/4] matplotlibrc path search fix
Subject: [PATCH 1/2] matplotlibrc path search fix
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/__init__.py | 31 ++++-----------------------
lib/matplotlib/tests/test_rcparams.py | 15 +++++++++----
2 files changed, 15 insertions(+), 31 deletions(-)
lib/matplotlib/__init__.py | 28 ++++------------------------
1 file changed, 4 insertions(+), 24 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index fa1caecda..d2bd48800 100644
index 1c47973f15..202acce525 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -654,34 +654,12 @@ def _get_data_path():
"3.1", name="MATPLOTLIBDATA", obj_type="environment variable")
return path
@@ -536,33 +536,11 @@ def get_data_path(*, _from_rc=None):
@_logged_cached('(private) matplotlib data path: %s')
def _get_data_path():
- path = Path(__file__).with_name("mpl-data")
+ path = (Path(__file__).parent.parent.parent.parent.parent /
+ 'share/matplotlib/mpl-data')
if path.is_dir():
defaultParams['datapath'][0] = str(path)
return str(path)
- cbook.warn_deprecated(
@@ -50,62 +48,22 @@ index fa1caecda..d2bd48800 100644
raise RuntimeError('Could not find the matplotlib data files')
@@ -712,8 +690,7 @@ def matplotlib_fname():
@@ -583,6 +561,7 @@ def matplotlib_fname():
is not defined)
- On other platforms,
- ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined
- - Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always
- exist.
+ - Lastly, it looks in ``/etc/matplotlibrc``, which should always exist.
+ - ``/etc/matplotlibrc``
- Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always
exist.
"""
def gen_candidates():
@@ -726,7 +703,7 @@ def matplotlib_fname():
@@ -597,6 +576,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'
yield os.path.join(_get_data_path(), 'matplotlibrc')
for fname in gen_candidates():
if os.path.exists(fname) and not os.path.isdir(fname):
diff --git a/lib/matplotlib/tests/test_rcparams.py b/lib/matplotlib/tests/test_rcparams.py
index 87dfbeceb..54885da47 100644
--- a/lib/matplotlib/tests/test_rcparams.py
+++ b/lib/matplotlib/tests/test_rcparams.py
@@ -460,10 +460,17 @@ def test_rcparams_reset_after_fail():
assert mpl.rcParams['text.usetex'] is False
-def test_if_rctemplate_is_up_to_date():
+@pytest.fixture
+def mplrc():
+ # This is the Fedora-specific location.
+ return (Path(__file__).parent.parent.parent.parent.parent.parent.parent /
+ 'etc/matplotlibrc')
+
+
+def test_if_rctemplate_is_up_to_date(mplrc):
# This tests if the matplotlibrc.template file contains all valid rcParams.
deprecated = {*mpl._all_deprecated, *mpl._deprecated_remain_as_none}
- with cbook._get_data_path('matplotlibrc').open() as file:
+ with mplrc.open() as file:
rclines = file.readlines()
missing = {}
for k, v in mpl.defaultParams.items():
@@ -483,10 +490,10 @@ def test_if_rctemplate_is_up_to_date():
.format(missing.items()))
-def test_if_rctemplate_would_be_valid(tmpdir):
+def test_if_rctemplate_would_be_valid(tmpdir, mplrc):
# This tests if the matplotlibrc.template file would result in a valid
# rc file if all lines are uncommented.
- with cbook._get_data_path('matplotlibrc').open() as file:
+ with mplrc.open() as file:
rclines = file.readlines()
newlines = []
for line in rclines:
--
2.25.4
2.29.2

View File

@@ -1,35 +1,36 @@
From c61647b9604ce6538fa28b807d094056b005258d Mon Sep 17 00:00:00 2001
From 40ed55c16c0d3f7d2365af5c6a8f99e02eadae31 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Fri, 14 Feb 2020 06:05:42 -0500
Subject: [PATCH 2/4] Set FreeType version to 2.10.1 and update tolerances.
Subject: [PATCH 2/2] Set FreeType version to 2.10.4 and update tolerances.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/__init__.py | 2 +-
lib/matplotlib/tests/test_axes.py | 6 +++---
lib/matplotlib/tests/test_axes.py | 4 ++--
lib/matplotlib/tests/test_constrainedlayout.py | 2 +-
lib/matplotlib/tests/test_polar.py | 2 +-
lib/matplotlib/tests/test_tightlayout.py | 10 +++++-----
setupext.py | 2 +-
5 files changed, 11 insertions(+), 11 deletions(-)
setupext.py | 6 +++++-
6 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index d2bd48800..ff06bf049 100644
index 202acce525..18731b7c4d 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1313,7 +1313,7 @@ default_test_modules = [
@@ -1198,7 +1198,7 @@ default_test_modules = [
def _init_tests():
# The version of FreeType to install locally for running the
# tests. This must match the value in `setupext.py`
- LOCAL_FREETYPE_VERSION = '2.6.1'
+ LOCAL_FREETYPE_VERSION = '2.10.1'
+ LOCAL_FREETYPE_VERSION = '2.10.4'
from matplotlib import ft2font
if (ft2font.__freetype_version__ != LOCAL_FREETYPE_VERSION or
diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
index 75636301d..b5bfc32c3 100644
index e0b340da1e..9090c2930c 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -6425,7 +6425,7 @@ def test_normal_axes():
@@ -6055,7 +6055,7 @@ def test_normal_axes():
]
for nn, b in enumerate(bbaxis):
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
@@ -38,7 +39,7 @@ index 75636301d..b5bfc32c3 100644
target = [
[150.0, 119.999, 930.0, 11.111],
@@ -6443,7 +6443,7 @@ def test_normal_axes():
@@ -6073,7 +6073,7 @@ def test_normal_axes():
target = [85.5138, 75.88888, 1021.11, 1017.11]
targetbb = mtransforms.Bbox.from_bounds(*target)
@@ -47,30 +48,34 @@ index 75636301d..b5bfc32c3 100644
# test that get_position roundtrips to get_window_extent
axbb = ax.get_position().transformed(fig.transFigure).bounds
@@ -6568,7 +6568,7 @@ def test_get_tightbbox_polar():
diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index 46e6b9663e..593b3fb3ee 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -398,4 +398,4 @@ def test_hidden_axes():
extents1 = np.copy(axs[0, 0].get_position().extents)
np.testing.assert_allclose(
- extents1, [0.045552, 0.548288, 0.47319, 0.982638], rtol=1e-5)
+ extents1, [0.045552, 0.548288, 0.47319, 0.982638], rtol=1e-2)
diff --git a/lib/matplotlib/tests/test_polar.py b/lib/matplotlib/tests/test_polar.py
index da9a77c825..a7a98ef59e 100644
--- a/lib/matplotlib/tests/test_polar.py
+++ b/lib/matplotlib/tests/test_polar.py
@@ -314,7 +314,7 @@ def test_get_tightbbox_polar():
fig.canvas.draw()
bb = ax.get_tightbbox(fig.canvas.get_renderer())
assert_allclose(bb.extents,
- [107.7778, 29.2778, 539.7847, 450.7222], rtol=1e-03)
+ [107.7778, 29.2778, 539.7847, 450.7222], rtol=1)
assert_allclose(
- bb.extents, [107.7778, 29.2778, 539.7847, 450.7222], rtol=1e-03)
+ bb.extents, [107.7778, 29.2778, 539.7847, 450.7222], rtol=1)
@check_figures_equal(extensions=["png"])
diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index c91037eae..75311e70e 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -399,4 +399,4 @@ def test_hidden_axes():
extents1 = np.copy(axs[0, 0].get_position().extents)
np.testing.assert_allclose(extents1,
- [0.045552, 0.548288, 0.47319, 0.982638], rtol=1e-5)
+ [0.045552, 0.548288, 0.47319, 0.982638], rtol=1e-2)
diff --git a/lib/matplotlib/tests/test_tightlayout.py b/lib/matplotlib/tests/test_tightlayout.py
index 377dfb649..6e6d8afe2 100644
index 9ad2e0a9a0..7c9085a314 100644
--- a/lib/matplotlib/tests/test_tightlayout.py
+++ b/lib/matplotlib/tests/test_tightlayout.py
@@ -172,12 +172,12 @@ def test_outward_ticks():
@@ -171,12 +171,12 @@ def test_outward_ticks():
plt.tight_layout()
# These values were obtained after visual checking that they correspond
# to a tight layouting that did take the ticks into account.
@@ -89,18 +94,27 @@ index 377dfb649..6e6d8afe2 100644
diff --git a/setupext.py b/setupext.py
index 09cd6bbd7..c3c96d4e0 100644
index dfa004d7f0..8ec77feed9 100644
--- a/setupext.py
+++ b/setupext.py
@@ -152,7 +152,7 @@ _freetype_hashes = {
@@ -129,12 +129,16 @@ _freetype_hashes = {
'955e17244e9b38adb0c98df66abb50467312e6bb70eac07e49ce6bd1a20e809a',
'2.10.1':
'3a60d391fd579440561bf0e7f31af2222bc610ad6ce4d9d7bd2165bca8669110',
+ '2.10.2':
+ 'e09aa914e4f7a5d723ac381420949c55c0b90b15744adce5d1406046022186ab',
+ '2.10.4':
+ '5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac',
}
# This is the version of FreeType to use when building a local
# version. It must match the value in
# lib/matplotlib.__init__.py and also needs to be changed below in the
# embedded windows build script (grep for "REMINDER" in this file)
-LOCAL_FREETYPE_VERSION = '2.6.1'
+LOCAL_FREETYPE_VERSION = '2.10.1'
+LOCAL_FREETYPE_VERSION = '2.10.4'
LOCAL_FREETYPE_HASH = _freetype_hashes.get(LOCAL_FREETYPE_VERSION, 'unknown')
--
2.25.4
2.29.2

View File

@@ -1,42 +0,0 @@
From e952bc36999a141a5c026544bae0c52817d4edd9 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Tue, 23 Jan 2018 20:27:17 -0500
Subject: [PATCH 3/4] Increase tolerances for non-x86_64 arches.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/tests/test_streamplot.py | 4 ++--
lib/mpl_toolkits/tests/test_axes_grid1.py | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py
index d2218f6f2..1afc60543 100644
--- a/lib/matplotlib/tests/test_streamplot.py
+++ b/lib/matplotlib/tests/test_streamplot.py
@@ -63,8 +63,8 @@ def test_linewidth():
linewidth=lw)
-@image_comparison(['streamplot_masks_and_nans'],
- remove_text=True, style='mpl20', tol=0.04 if on_win else 0)
+@image_comparison(baseline_images=['streamplot_masks_and_nans'],
+ remove_text=True, style='mpl20', tol=0.04 if on_win else .01)
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 9ed9a9280..56a3bd14a 100644
--- a/lib/mpl_toolkits/tests/test_axes_grid1.py
+++ b/lib/mpl_toolkits/tests/test_axes_grid1.py
@@ -343,7 +343,7 @@ def test_zooming_with_inverted_axes():
@image_comparison(['anchored_direction_arrows.png'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.02)
def test_anchored_direction_arrows():
fig, ax = plt.subplots()
ax.imshow(np.zeros((10, 10)), interpolation='nearest')
--
2.25.4

View File

@@ -1,665 +0,0 @@
From 928df2339ec6f8cc838f2b46c4bef4b10dc66c52 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sat, 31 Mar 2018 00:15:14 -0400
Subject: [PATCH 4/4] Increase some tolerances for 32-bit systems.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/testing/decorators.py | 2 +-
lib/matplotlib/tests/test_artist.py | 2 +-
lib/matplotlib/tests/test_axes.py | 48 +++++++++----------
lib/matplotlib/tests/test_collections.py | 2 +-
lib/matplotlib/tests/test_colorbar.py | 10 ++--
.../tests/test_constrainedlayout.py | 2 +-
lib/matplotlib/tests/test_contour.py | 6 +--
lib/matplotlib/tests/test_cycles.py | 9 ++--
lib/matplotlib/tests/test_figure.py | 3 +-
lib/matplotlib/tests/test_image.py | 2 +-
lib/matplotlib/tests/test_legend.py | 9 ++--
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 | 2 +-
lib/matplotlib/tests/test_transforms.py | 2 +-
lib/matplotlib/tests/test_units.py | 3 +-
.../tests/test_axisartist_floating_axes.py | 4 +-
...test_axisartist_grid_helper_curvelinear.py | 7 ++-
lib/mpl_toolkits/tests/test_mplot3d.py | 4 +-
22 files changed, 60 insertions(+), 70 deletions(-)
diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py
index cd447976b..545bf2cfe 100644
--- a/lib/matplotlib/testing/decorators.py
+++ b/lib/matplotlib/testing/decorators.py
@@ -269,7 +269,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_artist.py b/lib/matplotlib/tests/test_artist.py
index a598e822d..becc9b46d 100644
--- a/lib/matplotlib/tests/test_artist.py
+++ b/lib/matplotlib/tests/test_artist.py
@@ -94,7 +94,7 @@ def test_collection_transform_of_none():
assert isinstance(c._transOffset, mtransforms.IdentityTransform)
-@image_comparison(["clip_path_clipping"], remove_text=True)
+@image_comparison(["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 b5bfc32c3..8bf3afb54 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -563,7 +563,7 @@ def test_single_point():
plt.plot('b', 'b', 'o', data=data)
-@image_comparison(['single_date.png'], style='mpl20')
+@image_comparison(['single_date.png'], style='mpl20', tol=1.97)
def test_single_date():
# use former defaults to match existing baseline image
plt.rcParams['axes.formatter.limits'] = -7, 7
@@ -1097,7 +1097,7 @@ def test_fill_between_interpolate():
@image_comparison(['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])
@@ -1212,7 +1212,7 @@ def test_pcolormesh_alpha():
@image_comparison(['pcolormesh_datetime_axis.png'],
- remove_text=False, style='mpl20')
+ 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)
@@ -1238,7 +1238,7 @@ def test_pcolormesh_datetime_axis():
@image_comparison(['pcolor_datetime_axis.png'],
- remove_text=False, style='mpl20')
+ 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)
@@ -1294,7 +1294,8 @@ def test_canonical():
ax.plot([1, 2, 3])
-@image_comparison(['arc_angles.png'], remove_text=True, style='default')
+@image_comparison(['arc_angles.png'], remove_text=True, style='default',
+ tol=0.17)
def test_arc_angles():
from matplotlib import patches
# Ellipse parameters
@@ -2769,7 +2770,7 @@ def test_boxplot_mod_artist_after_plotting():
@image_comparison(['violinplot_vert_baseline.png',
- 'violinplot_vert_baseline.png'])
+ 'violinplot_vert_baseline.png'], tol=0.24)
def test_vert_violinplot_baseline():
# First 9 digits of frac(sqrt(2))
np.random.seed(414213562)
@@ -2786,7 +2787,7 @@ def test_vert_violinplot_baseline():
showmedians=0, data=data)
-@image_comparison(['violinplot_vert_showmeans.png'])
+@image_comparison(['violinplot_vert_showmeans.png'], tol=0.23)
def test_vert_violinplot_showmeans():
ax = plt.axes()
# First 9 digits of frac(sqrt(3))
@@ -2796,7 +2797,7 @@ def test_vert_violinplot_showmeans():
showmedians=0)
-@image_comparison(['violinplot_vert_showextrema.png'])
+@image_comparison(['violinplot_vert_showextrema.png'], tol=0.23)
def test_vert_violinplot_showextrema():
ax = plt.axes()
# First 9 digits of frac(sqrt(5))
@@ -2806,7 +2807,7 @@ def test_vert_violinplot_showextrema():
showmedians=0)
-@image_comparison(['violinplot_vert_showmedians.png'])
+@image_comparison(['violinplot_vert_showmedians.png'], tol=0.23)
def test_vert_violinplot_showmedians():
ax = plt.axes()
# First 9 digits of frac(sqrt(7))
@@ -2816,7 +2817,7 @@ def test_vert_violinplot_showmedians():
showmedians=1)
-@image_comparison(['violinplot_vert_showall.png'])
+@image_comparison(['violinplot_vert_showall.png'], tol=0.2)
def test_vert_violinplot_showall():
ax = plt.axes()
# First 9 digits of frac(sqrt(11))
@@ -2827,7 +2828,7 @@ def test_vert_violinplot_showall():
quantiles=[[0.1, 0.9], [0.2, 0.8], [0.3, 0.7], [0.4, 0.6]])
-@image_comparison(['violinplot_vert_custompoints_10.png'])
+@image_comparison(['violinplot_vert_custompoints_10.png'], tol=0.22)
def test_vert_violinplot_custompoints_10():
ax = plt.axes()
# First 9 digits of frac(sqrt(13))
@@ -2837,7 +2838,7 @@ def test_vert_violinplot_custompoints_10():
showmedians=0, points=10)
-@image_comparison(['violinplot_vert_custompoints_200.png'])
+@image_comparison(['violinplot_vert_custompoints_200.png'], tol=0.22)
def test_vert_violinplot_custompoints_200():
ax = plt.axes()
# First 9 digits of frac(sqrt(17))
@@ -2847,7 +2848,7 @@ def test_vert_violinplot_custompoints_200():
showmedians=0, points=200)
-@image_comparison(['violinplot_horiz_baseline.png'])
+@image_comparison(['violinplot_horiz_baseline.png'], tol=0.2)
def test_horiz_violinplot_baseline():
ax = plt.axes()
# First 9 digits of frac(sqrt(19))
@@ -2857,7 +2858,7 @@ def test_horiz_violinplot_baseline():
showextrema=0, showmedians=0)
-@image_comparison(['violinplot_horiz_showmedians.png'])
+@image_comparison(['violinplot_horiz_showmedians.png'], tol=0.23)
def test_horiz_violinplot_showmedians():
ax = plt.axes()
# First 9 digits of frac(sqrt(23))
@@ -2867,7 +2868,7 @@ def test_horiz_violinplot_showmedians():
showextrema=0, showmedians=1)
-@image_comparison(['violinplot_horiz_showmeans.png'])
+@image_comparison(['violinplot_horiz_showmeans.png'], tol=0.25)
def test_horiz_violinplot_showmeans():
ax = plt.axes()
# First 9 digits of frac(sqrt(29))
@@ -2877,7 +2878,7 @@ def test_horiz_violinplot_showmeans():
showextrema=0, showmedians=0)
-@image_comparison(['violinplot_horiz_showextrema.png'])
+@image_comparison(['violinplot_horiz_showextrema.png'], tol=0.2)
def test_horiz_violinplot_showextrema():
ax = plt.axes()
# First 9 digits of frac(sqrt(31))
@@ -2887,7 +2888,7 @@ def test_horiz_violinplot_showextrema():
showextrema=1, showmedians=0)
-@image_comparison(['violinplot_horiz_showall.png'])
+@image_comparison(['violinplot_horiz_showall.png'], tol=0.19)
def test_horiz_violinplot_showall():
ax = plt.axes()
# First 9 digits of frac(sqrt(37))
@@ -2898,7 +2899,7 @@ def test_horiz_violinplot_showall():
quantiles=[[0.1, 0.9], [0.2, 0.8], [0.3, 0.7], [0.4, 0.6]])
-@image_comparison(['violinplot_horiz_custompoints_10.png'])
+@image_comparison(['violinplot_horiz_custompoints_10.png'], tol=0.22)
def test_horiz_violinplot_custompoints_10():
ax = plt.axes()
# First 9 digits of frac(sqrt(41))
@@ -2908,7 +2909,7 @@ def test_horiz_violinplot_custompoints_10():
showextrema=0, showmedians=0, points=10)
-@image_comparison(['violinplot_horiz_custompoints_200.png'])
+@image_comparison(['violinplot_horiz_custompoints_200.png'], tol=0.22)
def test_horiz_violinplot_custompoints_200():
ax = plt.axes()
# First 9 digits of frac(sqrt(43))
@@ -3672,8 +3673,7 @@ def test_vertex_markers():
ax.set_ylim([-1, 10])
-@image_comparison(['vline_hline_zorder', 'errorbar_zorder'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['vline_hline_zorder', 'errorbar_zorder'])
def test_eb_line_zorder():
x = list(range(10))
@@ -4360,7 +4360,7 @@ def test_psd_noise():
ax3.set_ylabel('')
-@image_comparison(['csd_freqs.png'], remove_text=True, tol=0.002)
+@image_comparison(['csd_freqs.png'], remove_text=True, tol=0.21)
def test_csd_freqs():
'''test axes.csd with sinusoidal stimuli'''
n = 10000
@@ -5264,7 +5264,7 @@ def test_rc_spines():
fig, ax = plt.subplots()
-@image_comparison(['rc_grid.png'], savefig_kwarg={'dpi': 40})
+@image_comparison(['rc_grid.png'], savefig_kwarg={'dpi': 40}, tol=0.2)
def test_rc_grid():
fig = plt.figure()
rc_dict0 = {
@@ -5806,7 +5806,7 @@ def test_date_timezone_y():
plt.plot_date([3] * 3, time_index, tz='UTC', xdate=False, ydate=True)
-@image_comparison(['date_timezone_x_and_y.png'])
+@image_comparison(['date_timezone_x_and_y.png'], tol=3.05)
def test_date_timezone_x_and_y():
# Tests issue 5575
UTC = datetime.timezone.utc
diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py
index 3f5b3bf1a..773573918 100644
--- a/lib/matplotlib/tests/test_collections.py
+++ b/lib/matplotlib/tests/test_collections.py
@@ -461,7 +461,7 @@ def test_EllipseCollection():
ax.autoscale_view()
-@image_comparison(['polycollection_close.png'], remove_text=True)
+@image_comparison(['polycollection_close.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 6d1f39149..4d70f8506 100644
--- a/lib/matplotlib/tests/test_colorbar.py
+++ b/lib/matplotlib/tests/test_colorbar.py
@@ -95,7 +95,7 @@ def _colorbar_extension_length(spacing):
@image_comparison(['colorbar_extensions_shape_uniform.png',
- 'colorbar_extensions_shape_proportional.png'])
+ 'colorbar_extensions_shape_proportional.png'], tol=0.16)
def test_colorbar_extension_shape():
'''Test rectangular colorbar extensions.'''
# Create figures for uniform and proportionally spaced colorbars.
@@ -104,7 +104,7 @@ def test_colorbar_extension_shape():
@image_comparison(['colorbar_extensions_uniform.png',
- 'colorbar_extensions_proportional.png'])
+ 'colorbar_extensions_proportional.png'], tol=0.25)
def test_colorbar_extension_length():
'''Test variable length colorbar extensions.'''
# Create figures for uniform and proportionally spaced colorbars.
@@ -118,7 +118,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]
@@ -171,7 +171,7 @@ def test_colorbar_positioning():
@image_comparison(['cbar_with_subplots_adjust.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)
@@ -226,7 +226,7 @@ def test_colorbarbase():
ColorbarBase(ax, plt.cm.bone)
-@image_comparison(['colorbar_closed_patch'], remove_text=True)
+@image_comparison(['colorbar_closed_patch'], 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_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index 75311e70e..64e7bcd25 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -234,7 +234,7 @@ def test_constrained_layout12():
ax.set_xlabel('x-label')
-@image_comparison(['constrained_layout13.png'], tol=2.e-2)
+@image_comparison(['constrained_layout13.png'], tol=3e-2)
def test_constrained_layout13():
'Test that padding works.'
fig, axs = plt.subplots(2, 2, constrained_layout=True)
diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py
index 4aabd36a7..14a52920e 100644
--- a/lib/matplotlib/tests/test_contour.py
+++ b/lib/matplotlib/tests/test_contour.py
@@ -162,7 +162,7 @@ def test_given_colors_levels_and_extends():
@image_comparison(['contour_datetime_axis.png'],
- remove_text=False, style='mpl20')
+ 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)
@@ -188,7 +188,7 @@ def test_contour_datetime_axis():
@image_comparison(['contour_test_label_transforms.png'],
- remove_text=True, style='mpl20')
+ 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
@@ -219,7 +219,7 @@ def test_labels():
@image_comparison(['contour_corner_mask_False.png',
'contour_corner_mask_True.png'],
- remove_text=True)
+ remove_text=True, tol=0.19)
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 ee67b4e41..3ae6e4ebc 100644
--- a/lib/matplotlib/tests/test_cycles.py
+++ b/lib/matplotlib/tests/test_cycles.py
@@ -8,8 +8,7 @@ import pytest
from cycler import cycler
-@image_comparison(['color_cycle_basic.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['color_cycle_basic.png'], remove_text=True)
def test_colorcycle_basic():
fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('color', ['r', 'g', 'y']))
@@ -25,8 +24,7 @@ def test_colorcycle_basic():
ax.legend(loc='upper left')
-@image_comparison(['marker_cycle.png', 'marker_cycle.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['marker_cycle.png', 'marker_cycle.png'], remove_text=True)
def test_marker_cycle():
fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('c', ['r', 'g', 'y']) +
@@ -58,8 +56,7 @@ def test_marker_cycle():
ax.legend(loc='upper left')
-@image_comparison(['lineprop_cycle_basic.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['lineprop_cycle_basic.png'], remove_text=True)
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 b5ca0ed5b..272fd6101 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(['figure_align_labels'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['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 93cfbb260..6dcdac4dd 100644
--- a/lib/matplotlib/tests/test_image.py
+++ b/lib/matplotlib/tests/test_image.py
@@ -928,7 +928,7 @@ def test_imshow_endianess():
@image_comparison(['imshow_masked_interpolation'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
+ tol=0.25,
remove_text=True, style='mpl20')
def test_imshow_masked_interpolation():
diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
index 71499da44..42413a5c1 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -105,8 +105,7 @@ def test_multiple_keys():
(p2, p1): HandlerTuple(ndivide=None, pad=0)})
-@image_comparison(['rgba_alpha.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['rgba_alpha.png'], remove_text=True)
def test_alpha_rgba():
import matplotlib.pyplot as plt
@@ -116,8 +115,7 @@ def test_alpha_rgba():
leg.legendPatch.set_facecolor([1, 0, 0, 0.5])
-@image_comparison(['rcparam_alpha.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['rcparam_alpha.png'], remove_text=True)
def test_alpha_rcparam():
import matplotlib.pyplot as plt
@@ -144,8 +142,7 @@ def test_fancy():
ncol=2, shadow=True, title="My legend", numpoints=1)
-@image_comparison(['framealpha'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['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 508e29fa0..f6862e631 100644
--- a/lib/matplotlib/tests/test_mathtext.py
+++ b/lib/matplotlib/tests/test_mathtext.py
@@ -172,7 +172,7 @@ def baseline_images(request, fontset, index):
['cm', 'stix', 'stixsans', 'dejavusans',
'dejavuserif'])
@pytest.mark.parametrize('baseline_images', ['mathtext'], indirect=True)
-@image_comparison(baseline_images=None)
+@image_comparison(baseline_images=None, tol=0.31)
def test_mathtext_rendering(baseline_images, fontset, index, test, recwarn):
matplotlib.rcParams['mathtext.fontset'] = fontset
fig = plt.figure(figsize=(5.25, 0.75))
@@ -186,7 +186,7 @@ def test_mathtext_rendering(baseline_images, fontset, index, test, recwarn):
['cm', 'stix', 'stixsans', 'dejavusans',
'dejavuserif'])
@pytest.mark.parametrize('baseline_images', ['mathfont'], indirect=True)
-@image_comparison(baseline_images=None, extensions=['png'])
+@image_comparison(baseline_images=None, extensions=['png'], tol=0.3)
def test_mathfont_rendering(baseline_images, fontset, index, test, recwarn):
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 c0eda5542..62670dbbf 100644
--- a/lib/matplotlib/tests/test_patches.py
+++ b/lib/matplotlib/tests/test_patches.py
@@ -257,8 +257,7 @@ def test_wedge_movement():
assert getattr(w, attr) == new_v
-# png needs tol>=0.06, pdf tol>=1.617
-@image_comparison(['wedge_range'], remove_text=True, tol=1.65 if on_win else 0)
+@image_comparison(['wedge_range'], 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 eddd1a3a1..f6993ec31 100644
--- a/lib/matplotlib/tests/test_patheffects.py
+++ b/lib/matplotlib/tests/test_patheffects.py
@@ -115,7 +115,7 @@ def test_SimplePatchShadow_offset():
assert pe._offset == (4, 5)
-@image_comparison(['collection'], tol=0.02, style='mpl20')
+@image_comparison(['collection'], tol=0.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 0fad3cdf2..aab0b29c6 100644
--- a/lib/matplotlib/tests/test_pickle.py
+++ b/lib/matplotlib/tests/test_pickle.py
@@ -41,7 +41,7 @@ def test_simple():
@image_comparison(['multi_pickle.png'], remove_text=True, style='mpl20',
- tol={'aarch64': 0.082}.get(platform.machine(), 0.0))
+ 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 719c8fbc1..fd28062e1 100644
--- a/lib/matplotlib/tests/test_quiver.py
+++ b/lib/matplotlib/tests/test_quiver.py
@@ -173,7 +173,7 @@ def test_quiver_key_xy():
ax.quiverkey(q, X=x, Y=0.8, U=1, angle=angle, label='', color='b')
-@image_comparison(['barbs_test_image.png'], remove_text=True)
+@image_comparison(['barbs_test_image.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_streamplot.py b/lib/matplotlib/tests/test_streamplot.py
index 1afc60543..aa12ab5ea 100644
--- a/lib/matplotlib/tests/test_streamplot.py
+++ b/lib/matplotlib/tests/test_streamplot.py
@@ -40,7 +40,7 @@ def test_startpoints():
@image_comparison(['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 f35467ee7..b3ca0c020 100644
--- a/lib/matplotlib/tests/test_transforms.py
+++ b/lib/matplotlib/tests/test_transforms.py
@@ -68,7 +68,7 @@ def test_external_transform_api():
@image_comparison(['pre_transform_data'],
- 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 f14425144..c1afffcaa 100644
--- a/lib/matplotlib/tests/test_units.py
+++ b/lib/matplotlib/tests/test_units.py
@@ -73,8 +73,7 @@ def quantity_converter():
# Tests that the conversion machinery works properly for classes that
# work as a facade over numpy arrays (like pint)
-@image_comparison(['plot_pint.png'], remove_text=False, style='mpl20',
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+@image_comparison(['plot_pint.png'], remove_text=False, style='mpl20')
def test_numpy_facade(quantity_converter):
# use former defaults to match existing baseline image
plt.rcParams['axes.formatter.limits'] = -7, 7
diff --git a/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py b/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py
index e69b63f99..0c2dd5660 100644
--- a/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py
+++ b/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py
@@ -18,7 +18,7 @@ def test_subplot():
fig.add_subplot(ax)
-@image_comparison(['curvelinear3.png'], style='default', tol=0.01)
+@image_comparison(['curvelinear3.png'], style='default', tol=0.02)
def test_curvelinear3():
fig = plt.figure(figsize=(5, 5))
@@ -72,7 +72,7 @@ def test_curvelinear3():
l.set_clip_path(ax1.patch)
-@image_comparison(['curvelinear4.png'], style='default', tol=0.015)
+@image_comparison(['curvelinear4.png'], style='default', tol=0.055)
def test_curvelinear4():
# Remove this line when this test image is regenerated.
plt.rcParams['text.kerning_factor'] = 6
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 611908063..8add49b46 100644
--- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
+++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
@@ -16,8 +16,7 @@ from mpl_toolkits.axisartist.grid_helper_curvelinear import \
GridHelperCurveLinear
-@image_comparison(['custom_transform.png'], style='default',
- tol={'aarch64': 0.034}.get(platform.machine(), 0.03))
+@image_comparison(['custom_transform.png'], style='default', tol=0.035)
def test_custom_transform():
class MyTransform(Transform):
input_dims = 2
@@ -84,7 +83,7 @@ def test_custom_transform():
@image_comparison(['polar_box.png'], style='default',
- tol={'aarch64': 0.04}.get(platform.machine(), 0.03))
+ tol=0.08)
def test_polar_box():
# Remove this line when this test image is regenerated.
plt.rcParams['text.kerning_factor'] = 6
@@ -147,7 +146,7 @@ def test_polar_box():
ax1.grid(True)
-@image_comparison(['axis_direction.png'], style='default', tol=0.03)
+@image_comparison(['axis_direction.png'], style='default', tol=0.05)
def test_axis_direction():
# Remove this line when this test image is regenerated.
plt.rcParams['text.kerning_factor'] = 6
diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py
index 592096b74..69ac5a2b3 100644
--- a/lib/mpl_toolkits/tests/test_mplot3d.py
+++ b/lib/mpl_toolkits/tests/test_mplot3d.py
@@ -280,7 +280,7 @@ def test_text3d():
ax.set_zlabel('Z axis')
-@image_comparison(['trisurf3d.png'], remove_text=True, tol=0.03)
+@image_comparison(['trisurf3d.png'], remove_text=True, tol=0.05)
def test_trisurf3d():
n_angles = 36
n_radii = 8
@@ -756,7 +756,7 @@ class TestVoxels:
assert voxels[coord], "faces returned for absent voxel"
assert isinstance(poly, art3d.Poly3DCollection)
- @image_comparison(['voxels-xyz.png'], tol=0.01)
+ @image_comparison(['voxels-xyz.png'], tol=0.02)
def test_xyz(self):
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})
--
2.25.4

View File

@@ -1,267 +0,0 @@
From 91ef378043f12f16a9a1f03437d9f51220dff305 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sat, 31 Mar 2018 00:33:37 -0400
Subject: [PATCH 4/4] Increase some tolerances for non-x86 arches.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/tests/test_arrow_patches.py | 4 ++--
lib/matplotlib/tests/test_axes.py | 4 ++--
lib/matplotlib/tests/test_backends_interactive.py | 2 +-
lib/matplotlib/tests/test_collections.py | 2 +-
lib/matplotlib/tests/test_constrainedlayout.py | 3 ++-
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_streamplot.py | 2 +-
lib/matplotlib/tests/test_units.py | 4 ++--
.../tests/test_axisartist_grid_helper_curvelinear.py | 4 ++--
13 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py
index a9409e2c1..9627b3569 100644
--- a/lib/matplotlib/tests/test_arrow_patches.py
+++ b/lib/matplotlib/tests/test_arrow_patches.py
@@ -67,7 +67,7 @@ def __prepare_fancyarrow_dpi_cor_test():
@image_comparison(['fancyarrow_dpi_cor_100dpi.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
+ tol=0.016,
savefig_kwarg=dict(dpi=100))
def test_fancyarrow_dpi_cor_100dpi():
"""
@@ -82,7 +82,7 @@ def test_fancyarrow_dpi_cor_100dpi():
@image_comparison(['fancyarrow_dpi_cor_200dpi.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
+ tol=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 b5bfc32c3..a956412d1 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -407,7 +407,7 @@ def test_annotate_default_arrow():
assert ann.arrow_patch is not None
-@image_comparison(['polar_axes'], style='default')
+@image_comparison(['polar_axes'], style='default', tol=0.01)
def test_polar_annotations():
# you can specify the xypoint and the xytext in different
# positions and coordinate systems, and optionally turn on a
@@ -3673,7 +3673,7 @@ def test_vertex_markers():
@image_comparison(['vline_hline_zorder', 'errorbar_zorder'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.02)
def test_eb_line_zorder():
x = list(range(10))
diff --git a/lib/matplotlib/tests/test_backends_interactive.py b/lib/matplotlib/tests/test_backends_interactive.py
index 7465bb919..8300ab627 100644
--- a/lib/matplotlib/tests/test_backends_interactive.py
+++ b/lib/matplotlib/tests/test_backends_interactive.py
@@ -126,7 +126,7 @@ if not backend.startswith('qt5') and sys.platform == 'darwin':
# not resize incorrectly.
assert_equal(result.getvalue(), result_after.getvalue())
"""
-_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 3f5b3bf1a..8c5549bad 100644
--- a/lib/matplotlib/tests/test_collections.py
+++ b/lib/matplotlib/tests/test_collections.py
@@ -439,7 +439,7 @@ def test_barb_limits():
@image_comparison(['EllipseCollection_test_image.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.012)
def test_EllipseCollection():
# Test basic functionality
fig, ax = plt.subplots()
diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index 75311e70e..8de7b987d 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -164,7 +164,8 @@ def test_constrained_layout9():
fig.suptitle('Test Suptitle', fontsize=28)
-@image_comparison(['constrained_layout10.png'])
+@image_comparison(['constrained_layout10.png'],
+ tol=0.01)
def test_constrained_layout10():
'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 ee67b4e41..c52a5b0f8 100644
--- a/lib/matplotlib/tests/test_cycles.py
+++ b/lib/matplotlib/tests/test_cycles.py
@@ -9,7 +9,7 @@ from cycler import cycler
@image_comparison(['color_cycle_basic.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.008)
def test_colorcycle_basic():
fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('color', ['r', 'g', 'y']))
@@ -26,7 +26,7 @@ def test_colorcycle_basic():
@image_comparison(['marker_cycle.png', 'marker_cycle.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.008)
def test_marker_cycle():
fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('c', ['r', 'g', 'y']) +
@@ -59,7 +59,7 @@ def test_marker_cycle():
@image_comparison(['lineprop_cycle_basic.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.009)
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 b5ca0ed5b..284cccb15 100644
--- a/lib/matplotlib/tests/test_figure.py
+++ b/lib/matplotlib/tests/test_figure.py
@@ -14,7 +14,7 @@ import pytest
@image_comparison(['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 93cfbb260..122c884da 100644
--- a/lib/matplotlib/tests/test_image.py
+++ b/lib/matplotlib/tests/test_image.py
@@ -928,7 +928,7 @@ def test_imshow_endianess():
@image_comparison(['imshow_masked_interpolation'],
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
+ tol=0.006,
remove_text=True, style='mpl20')
def test_imshow_masked_interpolation():
diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
index 71499da44..23cfcb873 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -106,7 +106,7 @@ def test_multiple_keys():
@image_comparison(['rgba_alpha.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.007)
def test_alpha_rgba():
import matplotlib.pyplot as plt
@@ -117,7 +117,7 @@ def test_alpha_rgba():
@image_comparison(['rcparam_alpha.png'], remove_text=True,
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.007)
def test_alpha_rcparam():
import matplotlib.pyplot as plt
@@ -145,7 +145,7 @@ def test_fancy():
@image_comparison(['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 0fad3cdf2..4d2599607 100644
--- a/lib/matplotlib/tests/test_pickle.py
+++ b/lib/matplotlib/tests/test_pickle.py
@@ -41,7 +41,7 @@ def test_simple():
@image_comparison(['multi_pickle.png'], remove_text=True, style='mpl20',
- tol={'aarch64': 0.082}.get(platform.machine(), 0.0))
+ tol=0.082)
def test_complete():
fig = plt.figure('Figure with a label?', figsize=(10, 6))
diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py
index 1afc60543..dcac38102 100644
--- a/lib/matplotlib/tests/test_streamplot.py
+++ b/lib/matplotlib/tests/test_streamplot.py
@@ -49,7 +49,7 @@ def test_colormap():
@image_comparison(['streamplot_linewidth'], remove_text=True, style='mpl20',
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.002)
def test_linewidth():
X, Y, U, V = velocity_field()
speed = np.hypot(U, V)
diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py
index f14425144..fd8f26502 100644
--- a/lib/matplotlib/tests/test_units.py
+++ b/lib/matplotlib/tests/test_units.py
@@ -74,7 +74,7 @@ def quantity_converter():
# Tests that the conversion machinery works properly for classes that
# work as a facade over numpy arrays (like pint)
@image_comparison(['plot_pint.png'], remove_text=False, style='mpl20',
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.003)
def test_numpy_facade(quantity_converter):
# use former defaults to match existing baseline image
plt.rcParams['axes.formatter.limits'] = -7, 7
@@ -101,7 +101,7 @@ def test_numpy_facade(quantity_converter):
# Tests gh-8908
@image_comparison(['plot_masked_units.png'], remove_text=True, style='mpl20',
- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
+ tol=0.007)
def test_plot_masked_units():
data = np.linspace(-5, 5)
data_masked = np.ma.array(data, mask=(data > -2) & (data < 2))
diff --git a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
index 611908063..be11d7c6b 100644
--- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
+++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
@@ -17,7 +17,7 @@ from mpl_toolkits.axisartist.grid_helper_curvelinear import \
@image_comparison(['custom_transform.png'], style='default',
- tol={'aarch64': 0.034}.get(platform.machine(), 0.03))
+ tol=0.04)
def test_custom_transform():
class MyTransform(Transform):
input_dims = 2
@@ -84,7 +84,7 @@ def test_custom_transform():
@image_comparison(['polar_box.png'], style='default',
- tol={'aarch64': 0.04}.get(platform.machine(), 0.03))
+ tol=0.04)
def test_polar_box():
# Remove this line when this test image is regenerated.
plt.rcParams['text.kerning_factor'] = 6
--
2.25.4

View File

@@ -1,12 +1,14 @@
%global with_html 0
%bcond_with html
%bcond_without check
# https://fedorahosted.org/fpc/ticket/381
%bcond_without bundled_fonts
# It seems like there's some kind of weird occasional error where a
# build (often aarch64 or ppc64) will fail in one of the Stix font
# tests with a huge RMS difference, but if you run the same build again,
# you won't get the same error. Unless someone can figure out what's
# going on, we just have to keep re-running the build until it doesn't
# happen.
%global run_tests 1
# No qt4 for EL8/ELN/EL9
%if 0%{?rhel} >= 8
%bcond_with qt4
%else
%bcond_without qt4
%endif
# the default backend; one of GTK3Agg GTK3Cairo MacOSX Qt4Agg Qt5Agg TkAgg
# WXAgg Agg Cairo PS PDF SVG
@@ -28,52 +30,35 @@
% endif
%endif
# https://fedorahosted.org/fpc/ticket/381
%global with_bundled_fonts 1
# Use the same directory of the main package for subpackage licence and docs
%global _docdir_fmt %{name}
#global rctag rc2
# Updated test images for new FreeType.
%global mpl_images_version 3.2.2
%global mpl_images_version 3.3.3
# The version of FreeType in this Fedora branch.
%global ftver 2.10.1
%global ftver 2.10.4
Name: python-matplotlib
Version: 3.2.2
Release: 1%{?rctag:.%{rctag}}%{?dist}
Version: 3.3.4
%global Version 3.3.4
Release: 1%{?dist}
Summary: Python 2D plotting library
# qt4_editor backend is MIT
License: Python and MIT
# ResizeObserver at end of lib/matplotlib/backends/web_backend/js/mpl.js is Public Domain
License: Python and MIT and Public Domain
URL: http://matplotlib.org
Source0: https://github.com/matplotlib/matplotlib/archive/v%{version}%{?rctag}/matplotlib-%{version}%{?rctag}.tar.gz
Source0: https://github.com/matplotlib/matplotlib/archive/v%{Version}/matplotlib-%{Version}.tar.gz
Source1: setup.cfg
# Because the qhull package stopped shipping pkgconfig files.
# https://src.fedoraproject.org/rpms/qhull/pull-request/1
Patch0001: 0001-Force-using-system-qhull.patch
# Don't attempt to download jQuery and jQuery UI
Patch0002: 0001-Use-packaged-jquery-and-jquery-ui.patch
# Fedora-specific patches; see:
# https://github.com/fedora-python/matplotlib/tree/fedora-patches
# https://github.com/fedora-python/matplotlib/tree/fedora-patches-non-x86
# Updated test images for new FreeType.
Source1000: https://github.com/QuLogic/mpl-images/archive/v%{mpl_images_version}-with-freetype-%{ftver}/matplotlib-%{mpl_images_version}-with-freetype-%{ftver}.tar.gz
# Search in /etc/matplotlibrc:
Patch1001: 0001-matplotlibrc-path-search-fix.patch
# Increase tolerances for new FreeType everywhere:
Patch1002: 0002-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patch
# Image tolerances for anything but x86_64:
Patch1003: 0003-Increase-tolerances-for-non-x86_64-arches.patch
# Image tolerances for 32-bit systems: i686 armv7hl
Patch1004: 0004-Increase-some-tolerances-for-32-bit-systems.patch
# Image tolerances for 64-bit (but not x86_64) systems: aarch64 ppc64(le) s390x
Patch1005: 0004-Increase-some-tolerances-for-non-x86-arches.patch
BuildRequires: gcc
BuildRequires: gcc-c++
@@ -81,10 +66,61 @@ BuildRequires: glibc-langpack-en
BuildRequires: freetype-devel
BuildRequires: libpng-devel
BuildRequires: qhull-devel
BuildRequires: texlive-cm
BuildRequires: xorg-x11-server-Xvfb
BuildRequires: zlib-devel
BuildRequires: ghostscript
BuildRequires: ImageMagick
%ifnarch s390x
BuildRequires: inkscape
%endif
BuildRequires: texlive-dvipng
BuildRequires: texlive-latex-bin
BuildRequires: texlive-tex-bin
BuildRequires: texlive-xetex-bin
# Search for documentclass and add the classes here.
BuildRequires: tex(article.cls)
BuildRequires: tex(minimal.cls)
# Search for inputenc and add any encodings used with it.
BuildRequires: tex(utf8.def)
BuildRequires: tex(utf8x.def)
# Found with: rg -Io 'usepackage(\[.+\])?\{.+\}' lib | rg -o '\{.+\}' | sort -u
# and then removing duplicates in one line, etc.
BuildRequires: tex(avant.sty)
BuildRequires: tex(bm.sty)
BuildRequires: tex(chancery.sty)
BuildRequires: tex(charter.sty)
BuildRequires: tex(color.sty)
BuildRequires: tex(courier.sty)
BuildRequires: tex(euler.sty)
BuildRequires: tex(fontenc.sty)
BuildRequires: tex(fontspec.sty)
BuildRequires: tex(geometry.sty)
BuildRequires: tex(graphicx.sty)
BuildRequires: tex(helvet.sty)
BuildRequires: tex(import.sty)
BuildRequires: tex(inputenc.sty)
BuildRequires: tex(mathpazo.sty)
BuildRequires: tex(mathptmx.sty)
BuildRequires: tex(pgf.sty)
BuildRequires: tex(preview.sty)
BuildRequires: tex(psfrag.sty)
BuildRequires: tex(sfmath.sty)
BuildRequires: tex(textcomp.sty)
BuildRequires: tex(txfonts.sty)
BuildRequires: tex(type1cm.sty)
BuildRequires: tex(type1ec.sty)
BuildRequires: tex(unicode-math.sty)
# See BakomaFonts._fontmap in lib/matplotlib/mathtext.py
BuildRequires: tex(cmb10.tfm)
BuildRequires: tex(cmex10.tfm)
BuildRequires: tex(cmmi10.tfm)
BuildRequires: tex(cmr10.tfm)
BuildRequires: tex(cmss10.tfm)
BuildRequires: tex(cmsy10.tfm)
BuildRequires: tex(cmtt10.tfm)
%description
Matplotlib is a Python 2D plotting library which produces publication
quality figures in a variety of hardcopy formats and interactive
@@ -99,16 +135,15 @@ errorcharts, scatterplots, etc, with just a few lines of code.
%package -n python3-matplotlib-data
Summary: Data used by python-matplotlib
BuildArch: noarch
%if %{with_bundled_fonts}
%if %{with bundled_fonts}
Requires: python3-matplotlib-data-fonts = %{version}-%{release}
%endif
Obsoletes: python-matplotlib-data < 3
%{?python_provide:%python_provide python3-matplotlib-data}
%description -n python3-matplotlib-data
%{summary}
%if %{with_bundled_fonts}
%if %{with bundled_fonts}
%package -n python3-matplotlib-data-fonts
Summary: Fonts used by python-matplotlib
# STIX and Computer Modern is OFL
@@ -117,7 +152,6 @@ License: OFL and Bitstream Vera and Public Domain
BuildArch: noarch
Requires: python3-matplotlib-data = %{version}-%{release}
Obsoletes: python-matplotlib-data-fonts < 3
%{?python_provide:%python_provide python3-matplotlib-data-fonts}
%description -n python3-matplotlib-data-fonts
%{summary}
@@ -126,6 +160,7 @@ Obsoletes: python-matplotlib-data-fonts < 3
%package -n python3-matplotlib
Summary: Python 2D plotting library
BuildRequires: python3-cairo
BuildRequires: python3-certifi >= 2020.06.20
BuildRequires: python3-cycler >= 0.10.0
BuildRequires: python3-dateutil
BuildRequires: python3-devel
@@ -138,28 +173,29 @@ BuildRequires: python3-pyparsing
BuildRequires: python3-pytz
BuildRequires: python3-sphinx
Requires: dejavu-sans-fonts
Requires: dvipng
Recommends: texlive-dvipng
Requires: (texlive-dvipng if texlive-base)
Requires: python3-matplotlib-data = %{version}-%{release}
Requires: python3-cairo
Requires: python3-cycler >= 0.10.0
Requires: python3-dateutil
Requires: python3-kiwisolver
Requires: python3-matplotlib-%{?backend_subpackage}%{!?backend_subpackage:tk}%{?_isa} = %{version}-%{release}
%if %{run_tests}
%if %{with check}
BuildRequires: python3-pytest
BuildRequires: python3-pytest-rerunfailures
BuildRequires: python3-pytest-timeout
BuildRequires: python3-pytest-xdist
BuildRequires: python3-pikepdf
%endif
Requires: python3-numpy
Recommends: python3-pillow
Requires: python3-pyparsing
%if !%{with_bundled_fonts}
%if %{without bundled_fonts}
Requires: stix-math-fonts
%else
Provides: bundled(stix-math-fonts)
%endif
%{?python_provide:%python_provide python3-matplotlib}
%description -n python3-matplotlib
Matplotlib is a Python 2D plotting library which produces publication
@@ -172,16 +208,17 @@ 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.
%if %{with qt4}
%package -n python3-matplotlib-qt4
Summary: Qt4 backend for python3-matplotlib
BuildRequires: python3-PyQt4-devel
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-matplotlib-qt5
Requires: python3-PyQt4
%{?python_provide:%python_provide python3-matplotlib-qt4}
%description -n python3-matplotlib-qt4
%{summary}
%endif
%package -n python3-matplotlib-qt5
Summary: Qt5 backend for python3-matplotlib
@@ -201,7 +238,6 @@ BuildRequires: python3-gobject
Requires: gtk3%{?_isa}
Requires: python3-gobject%{?_isa}
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python3-matplotlib-gtk3}
%description -n python3-matplotlib-gtk3
%{summary}
@@ -211,7 +247,6 @@ Summary: Tk backend for python3-matplotlib
BuildRequires: python3-tkinter
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-tkinter
%{?python_provide:%python_provide python3-matplotlib-tk}
%description -n python3-matplotlib-tk
%{summary}
@@ -221,15 +256,13 @@ Summary: WX backend for python3-matplotlib
BuildRequires: python3-wxpython4
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-wxpython4
%{?python_provide:%python_provide python3-matplotlib-wx}
%description -n python3-matplotlib-wx
%{summary}
%package -n python3-matplotlib-doc
Summary: Documentation files for python-matplotlib
%if %{with_html}
BuildRequires: dvipng
%if %{with html}
BuildRequires: graphviz
BuildRequires: python3-sphinx
BuildRequires: tex(latex)
@@ -248,32 +281,19 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%package -n python3-matplotlib-test-data
Summary: Test data for python3-matplotlib
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python3-matplotlib-test-data}
%description -n python3-matplotlib-test-data
%{summary}
%prep
%autosetup -n matplotlib-%{version}%{?rctag} -N
%patch0001 -p1
%patch0002 -p1
%autosetup -n matplotlib-%{Version} -N
# Fedora-specific patches follow:
%patch1001 -p1
# Updated test images for new FreeType.
%patch1002 -p1
gzip -dc %SOURCE1000 | tar xvf - --transform='s~^mpl-images-%{mpl_images_version}-with-freetype-%{ftver}/\([^/]\+\)/~lib/\1/tests/baseline_images/~'
%ifnarch x86_64
%patch1003 -p1
%endif
%ifarch aarch64 ppc64 ppc64le s390x
%patch1005 -p1
%endif
%ifarch i686 armv7hl
%patch1004 -p1
%endif
gzip -dc %SOURCE1000 | tar xf - --transform='s~^mpl-images-%{mpl_images_version}-with-freetype-%{ftver}/\([^/]\+\)/~lib/\1/tests/baseline_images/~'
rm -r extern/libqhull
# Copy setup.cfg to the builddir
@@ -284,154 +304,176 @@ cp -p %{SOURCE1} setup.cfg
%set_build_flags
export http_proxy=http://127.0.0.1/
MPLCONFIGDIR=$PWD \
xvfb-run %{__python3} setup.py build
%if %{with_html}
MPLCONFIGDIR=$PWD %py3_build
%if %{with html}
# Need to make built matplotlib libs available for the sphinx extensions:
pushd doc
MPLCONFIGDIR=$PWD/.. \
PYTHONPATH=`realpath ../build/lib.linux*` \
%{__python3} make.py html
%{python3} make.py html
popd
%endif
# Ensure all example files are non-executable so that the -doc
# package doesn't drag in dependencies
find examples -name '*.py' -exec chmod a-x '{}' \;
%install
export http_proxy=http://127.0.0.1/
MPLCONFIGDIR=$PWD \
%{__python3} setup.py install -O1 --skip-build --root=%{buildroot}
chmod +x %{buildroot}%{python3_sitearch}/matplotlib/dates.py
MPLCONFIGDIR=$PWD %py3_install
mkdir -p %{buildroot}%{_sysconfdir} %{buildroot}%{_datadir}/matplotlib
mv %{buildroot}%{python3_sitearch}/matplotlib/mpl-data/matplotlibrc \
%{buildroot}%{_sysconfdir}
mv %{buildroot}%{python3_sitearch}/matplotlib/mpl-data \
%{buildroot}%{_datadir}/matplotlib
%if !%{with_bundled_fonts}
%if %{without bundled_fonts}
rm -rf %{buildroot}%{_datadir}/matplotlib/mpl-data/fonts
%endif
%if %{run_tests}
%if %{with check}
%check
# These files confuse pytest, and we want to test the installed copy.
rm -rf build*/
# We need to prime this LaTeX cache stuff, or it might fail while running tests
# in parallel.
mktexfmt lualatex.fmt
mktexfmt pdflatex.fmt
mktexfmt xelatex.fmt
export http_proxy=http://127.0.0.1/
# Skips:
# * test_invisible_Line_rendering: Checks for "slowness" that often fails on a
# heavily-loaded builder.
# * wxagg is broken on ppc64le:
# https://bugzilla.redhat.com/show_bug.cgi?id=1738752
MPLCONFIGDIR=$PWD \
MATPLOTLIBRC=%{buildroot}%{_sysconfdir}/matplotlibrc \
PYTHONPATH=%{buildroot}%{python3_sitearch} \
PYTHONDONTWRITEBYTECODE=1 \
xvfb-run -a -s "-screen 0 640x480x24" \
%{__python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \
%{python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \
-m 'not network' \
%ifarch ppc64le
-k 'not test_invisible_Line_rendering and not Qt5Agg and not wxagg'
%else
-k 'not test_invisible_Line_rendering and not Qt5Agg'
%endif
# Run Qt5Agg tests separately to not conflict with Qt4 tests.
MPLCONFIGDIR=$PWD \
MATPLOTLIBRC=%{buildroot}%{_sysconfdir}/matplotlibrc \
PYTHONPATH=%{buildroot}%{python3_sitearch} \
PYTHONDONTWRITEBYTECODE=1 \
xvfb-run -a -s "-screen 0 640x480x24" \
%{__python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \
%{python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \
-m 'not network' -k 'Qt5Agg'
%endif
%files -n python3-matplotlib-data
%{_sysconfdir}/matplotlibrc
%{_datadir}/matplotlib/mpl-data/
%if %{with_bundled_fonts}
%if %{with bundled_fonts}
%exclude %{_datadir}/matplotlib/mpl-data/fonts/
%endif
%if %{with_bundled_fonts}
%if %{with bundled_fonts}
%files -n python3-matplotlib-data-fonts
%{_datadir}/matplotlib/mpl-data/fonts/
%endif
%files -n python3-matplotlib-doc
%doc examples
%if %{with_html}
%if %{with html}
%doc doc/build/html/*
%endif
%files -n python3-matplotlib
%license LICENSE/
%doc README.rst
%{python3_sitearch}/*egg-info
%{python3_sitearch}/matplotlib-*.egg-info/
%{python3_sitearch}/matplotlib-*-nspkg.pth
%{python3_sitearch}/matplotlib/
%exclude %{python3_sitearch}/matplotlib/tests/baseline_images/*
%{python3_sitearch}/mpl_toolkits/
%exclude %{python3_sitearch}/mpl_toolkits/tests/baseline_images/*
%{python3_sitearch}/pylab.py*
%{python3_sitearch}/__pycache__/*
%exclude %{python3_sitearch}/matplotlib/backends/backend_qt4*.py
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt4*
#exclude #{python3_sitearch}/matplotlib/backends/backend_qt5*.py
#exclude #{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5*
%exclude %{python3_sitearch}/matplotlib/backends/backend_gtk*.py
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_gtk*
%exclude %{python3_sitearch}/matplotlib/backends/_backend_tk.py
%exclude %{python3_sitearch}/matplotlib/backends/backend_tk*.py
%exclude %{python3_sitearch}/matplotlib/backends/tkagg.py
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/_backend_tk.*
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_tk*.*
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/tkagg.*
%pycached %{python3_sitearch}/pylab.py
%pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_qt4*.py
%if %{without qt4}
%pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_qt5*.py
%endif
%pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_gtk*.py
%pycached %exclude %{python3_sitearch}/matplotlib/backends/_backend_tk.py
%pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_tk*.py
%exclude %{python3_sitearch}/matplotlib/backends/_tkagg.*
%exclude %{python3_sitearch}/matplotlib/backends/backend_wx*
%exclude %{python3_sitearch}/matplotlib/backends/wx_compat.*
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_wx*
%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/wx_compat.*
%pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_wx*.py
%exclude %{_pkgdocdir}/*/
%files -n python3-matplotlib-test-data
%{python3_sitearch}/matplotlib/tests/baseline_images/
%{python3_sitearch}/mpl_toolkits/tests/baseline_images/
%if %{with qt4}
%files -n python3-matplotlib-qt4
%{python3_sitearch}/matplotlib/backends/backend_qt4.py
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt4.*
%{python3_sitearch}/matplotlib/backends/backend_qt4agg.py
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt4agg.*
%pycached %{python3_sitearch}/matplotlib/backends/backend_qt4.py
%pycached %{python3_sitearch}/matplotlib/backends/backend_qt4agg.py
%endif
# This subpackage is empty because the Qt4 backend imports it, so we leave
# these files in the default package, and only use this one for dependencies.
%files -n python3-matplotlib-qt5
#{python3_sitearch}/matplotlib/backends/backend_qt5.py
#{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5.*
#{python3_sitearch}/matplotlib/backends/backend_qt5agg.py
#{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5agg.*
%if %{without qt4}
%pycached %{python3_sitearch}/matplotlib/backends/backend_qt5.py
%pycached %{python3_sitearch}/matplotlib/backends/backend_qt5agg.py
%endif
%files -n python3-matplotlib-gtk3
%{python3_sitearch}/matplotlib/backends/backend_gtk*.py
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_gtk*
%pycached %{python3_sitearch}/matplotlib/backends/backend_gtk*.py
%files -n python3-matplotlib-tk
%{python3_sitearch}/matplotlib/backends/backend_tk*.py
%{python3_sitearch}/matplotlib/backends/_backend_tk.py
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_tk*.*
%{python3_sitearch}/matplotlib/backends/__pycache__/_backend_tk.*
%pycached %{python3_sitearch}/matplotlib/backends/backend_tk*.py
%pycached %{python3_sitearch}/matplotlib/backends/_backend_tk.py
%{python3_sitearch}/matplotlib/backends/_tkagg.*
%files -n python3-matplotlib-wx
%{python3_sitearch}/matplotlib/backends/backend_wx*.py
%{python3_sitearch}/matplotlib/backends/__pycache__/backend_wx*
%pycached %{python3_sitearch}/matplotlib/backends/backend_wx*.py
%changelog
* Thu Jan 28 2021 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.4-1
- Update to latest version (#1921574)
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Dec 02 2020 Tomas Popela <tpopela@redhat.com> - 3.3.3-2
- Don't build the Qt 4 backend in ELN/RHEL 9 as Qt 4 won't be available there
(reuse
https://src.fedoraproject.org/rpms/python-matplotlib/c/588e490738b06d525910f05bc1ba3f3f05ec7d50?branch=epel8)
* Thu Nov 12 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.3-1
- Update to latest version (#1897021)
* Tue Sep 15 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.2-1
- Update to latest version (#1878999)
* Thu Aug 13 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.1-1
- Update to latest version
- Fixes RHBZ#1868838
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sat Jul 18 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.0-1
- Update to latest version
- Fixes RHBZ#1858120
* Tue Jun 30 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.0-0.2.rc1
- Add more test dependencies
* Mon Jun 29 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.3.0-0.1.rc1
- Update to latest version
* Sat Jun 20 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.2.2-1
- Update to latest version
* Mon Jun 01 2020 Miro Hrončok <mhroncok@redhat.com> - 3.2.1-2
- Only recommend texlive-dvipng (but require it if texlive is installed) (#1509657)
* Mon May 25 2020 Miro Hrončok <mhroncok@redhat.com> - 3.2.1-1.1
- Rebuilt for Python 3.9
* Wed Mar 18 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 3.2.1-1
- Update to latest version

View File

@@ -1,3 +1,7 @@
[libs]
system_freetype = True
system_qhull = True
[packages]
tests = True
toolkits = True

View File

@@ -1,2 +1,2 @@
SHA512 (matplotlib-3.2.2.tar.gz) = 4c9312e929357a7c73ead51fa1a679c04b2b9735edfe0f1a2d08a07ec4d94d67df4ff6e8c6d594665a3b270cd3033c48ea8f2aa50fb1e2746812f24c27181f59
SHA512 (matplotlib-3.2.2-with-freetype-2.10.1.tar.gz) = 498fb1224f74c5254e3a2620d4d36571ed712a7ac261bcb4b2a548ea57d6b7431634dfad547b529d6fa1a3fab90e6b489150afe815485a3030d1e899edfd9be8
SHA512 (matplotlib-3.3.4.tar.gz) = e29bcd17ea2b65c26c75421a319d3f21c5b0148c9e61d55d719c191c07342ed19032f97cde269647bd545ed45b5e142483e50caf29ffd421acde5b0b3bfa238b
SHA512 (matplotlib-3.3.3-with-freetype-2.10.4.tar.gz) = b583842a24edc5deb39a3182797199081500fb089bff467a9e55d3612d8c049d43ed08385d42060271928f5cb02240599c7173a65c213fae9bafb2081c54c5a1