Compare commits

...

21 Commits
f36 ... f38

Author SHA1 Message Date
Elliott Sales de Andrade
39fe5a6638 Update to 3.7.4 2023-11-18 05:10:10 -05:00
Elliott Sales de Andrade
675be646ef Update to latest version 2023-09-12 19:20:16 -04:00
Elliott Sales de Andrade
05ffcff315 Update to latest version (#2220649) 2023-07-06 21:01:14 -04:00
Miro Hrončok
bca414e4f1 Enable wx tests
[skip changelog]
2023-06-27 17:55:23 +02:00
Tomáš Hrnčiar
13941a96df Skip tests failing with Python 3.12.0b3+ 2023-06-27 15:48:09 +02:00
Elliott Sales de Andrade
545cd052bc Backport fixes for Python 3.12 2023-06-22 04:56:24 -04:00
Python Maint
cec6c4b5b4 Rebuilt for Python 3.12 2023-06-19 22:35:25 +02:00
Elliott Sales de Andrade
a567434c0d Update to latest version (#2164642) 2023-03-06 20:03:16 -05:00
Elliott Sales de Andrade
6053ff6f06 Update to 3.7.0 2023-02-27 22:46:41 -05:00
Elliott Sales de Andrade
0b92076142 Fix pgf tests with TeXLive 2022 2023-01-23 21:55:35 -05:00
Elliott Sales de Andrade
c601b679e9 Update to latest version (#2160309) 2023-01-23 20:53:27 -05:00
Fedora Release Engineering
2b3a520dad Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-20 14:36:46 +00:00
Elliott Sales de Andrade
0744231c69 Add Qt6 subpackage
Now possible since PyQt6 has been packaged.
2022-12-01 04:03:47 -05:00
Elliott Sales de Andrade
a5632a4923 Update license to SPDX 2022-11-30 01:57:46 -05:00
Elliott Sales de Andrade
5f242fa596 Re-enable inkscape testing on s390x 2022-11-30 00:50:21 -05:00
Elliott Sales de Andrade
fbc57eefdb Update to latest version (#2139597) 2022-11-03 01:40:25 -04:00
Elliott Sales de Andrade
06a8e578fd Update to latest version (#2133173) 2022-10-15 00:46:15 -04:00
Elliott Sales de Andrade
c30bc8df54 Update to latest version (#2127352) 2022-09-19 21:25:45 -04:00
Elliott Sales de Andrade
8b94e4ad13 Update to latest release candidate (#2119958) 2022-08-29 23:11:52 -04:00
Elliott Sales de Andrade
704b8e1dc2 Update to latest release candidate (#2119958) 2022-08-22 18:45:24 -04:00
Elliott Sales de Andrade
36d9ebc96c Allow setuptools-scm 7 2022-08-12 17:49:26 -04:00
9 changed files with 228 additions and 280 deletions

22
.gitignore vendored
View File

@@ -80,3 +80,25 @@ matplotlib-1.0.0-without-gpc.tar.gz
/matplotlib-3.5.3.tar.gz
/matplotlib-3.5.3-with-freetype-2.11.0.tar.gz
/matplotlib-3.5.3-with-freetype-2.12.1.tar.gz
/matplotlib-3.6.0rc1.tar.gz
/matplotlib-3.6.0rc1-with-freetype-2.12.1.tar.gz
/matplotlib-3.6.0rc2.tar.gz
/matplotlib-3.6.0rc2-with-freetype-2.12.1.tar.gz
/matplotlib-3.6.0.tar.gz
/matplotlib-3.6.0-with-freetype-2.12.1.tar.gz
/matplotlib-3.6.1.tar.gz
/matplotlib-3.6.1-with-freetype-2.12.1.tar.gz
/matplotlib-3.6.2.tar.gz
/matplotlib-3.6.3.tar.gz
/pgf_pdflatex.pdf
/pgf_rcupdate2.pdf
/matplotlib-3.7.0rc1.tar.gz
/matplotlib-3.7.0rc1-with-freetype-2.12.1.tar.gz
/matplotlib-3.7.0.tar.gz
/matplotlib-3.7.0-with-freetype-2.12.1.tar.gz
/matplotlib-3.7.1.tar.gz
/matplotlib-3.7.1-with-freetype-2.12.1.tar.gz
/matplotlib-3.7.2.tar.gz
/matplotlib-3.7.2-with-freetype-2.13.1.tar.gz
/matplotlib-3.7.3.tar.gz
/matplotlib-3.7.4.tar.gz

View File

@@ -1,7 +1,7 @@
From a2d7ef7b895d3b0bc9654d31c6cb40935eec0ce9 Mon Sep 17 00:00:00 2001
From 7f525ad4de95f9e9ec90a39498eefd22aadcedda Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Wed, 27 Sep 2017 19:35:59 -0400
Subject: [PATCH 1/3] matplotlibrc path search fix
Subject: [PATCH 1/4] matplotlibrc path search fix
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
@@ -9,10 +9,10 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index b8fd4f9860..23841c8377 100644
index ae68094000..06fb76827d 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -526,7 +526,8 @@ def get_cachedir():
@@ -570,7 +570,8 @@ def get_cachedir():
@_logged_cached('matplotlib data path: %s')
def get_data_path():
"""Return the path to Matplotlib data."""
@@ -22,7 +22,7 @@ index b8fd4f9860..23841c8377 100644
def matplotlib_fname():
@@ -546,6 +547,7 @@ def matplotlib_fname():
@@ -590,6 +591,7 @@ def matplotlib_fname():
is not defined)
- On other platforms,
- ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined
@@ -30,7 +30,7 @@ index b8fd4f9860..23841c8377 100644
- Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always
exist.
"""
@@ -564,6 +566,7 @@ def matplotlib_fname():
@@ -608,6 +610,7 @@ def matplotlib_fname():
yield matplotlibrc
yield os.path.join(matplotlibrc, 'matplotlibrc')
yield os.path.join(get_configdir(), 'matplotlibrc')
@@ -39,5 +39,5 @@ index b8fd4f9860..23841c8377 100644
for fname in gen_candidates():
--
2.36.1
2.41.0

View File

@@ -0,0 +1,26 @@
From 4fc7594b7f3eb3a9b8c9b2ea53aa7230cc7305a9 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Thu, 26 Jan 2023 06:40:06 -0500
Subject: [PATCH 2/4] Don't require oldest-supported-numpy
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index e887bd0975..673981f236 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -2,7 +2,7 @@
build-backend = "setuptools.build_meta"
requires = [
"certifi>=2020.06.20",
- "oldest-supported-numpy",
+ "numpy",
"pybind11>=2.6",
"setuptools>=42",
"setuptools_scm>=7",
--
2.41.0

View File

@@ -1,127 +0,0 @@
From 5fcd96777ede1f29bc3f749d12152879a4d67fdf Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Tue, 24 Aug 2021 04:47:50 -0400
Subject: [PATCH 3/3] Increase a few test tolerances on some arches.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/tests/test_axes.py | 6 ++++--
lib/matplotlib/tests/test_colorbar.py | 5 ++++-
lib/matplotlib/tests/test_contour.py | 3 ++-
lib/matplotlib/tests/test_image.py | 4 ++--
lib/matplotlib/tests/test_lines.py | 4 +++-
lib/matplotlib/tests/test_streamplot.py | 3 ++-
6 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
index f0b247a7bb..0a025bb6c7 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -918,7 +918,8 @@ def test_imshow():
ax.imshow("r", data=data)
-@image_comparison(['imshow_clip'], style='mpl20')
+@image_comparison(['imshow_clip'], style='mpl20',
+ tol=0 if platform.machine() == 'x86_64' else 1.24)
def test_imshow_clip():
# As originally reported by Gellule Xg <gellule.xg@free.fr>
# use former defaults to match existing baseline image
@@ -2127,7 +2128,8 @@ def test_contour_hatching():
extend='both', alpha=0.5)
-@image_comparison(['contour_colorbar'], style='mpl20')
+@image_comparison(['contour_colorbar'], style='mpl20',
+ tol=0 if platform.machine() == 'x86_64' else 0.02)
def test_contour_colorbar():
x, y, z = contour_dat()
diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py
index f103fde7ee..920f392fc5 100644
--- a/lib/matplotlib/tests/test_colorbar.py
+++ b/lib/matplotlib/tests/test_colorbar.py
@@ -1,3 +1,5 @@
+import platform
+
import numpy as np
import pytest
@@ -230,7 +232,8 @@ def test_colorbar_single_ax_panchor_east(constrained):
assert ax.get_anchor() == 'E'
-@image_comparison(['contour_colorbar.png'], remove_text=True)
+@image_comparison(['contour_colorbar.png'], remove_text=True,
+ tol=0 if platform.machine() == 'x86_64' else 0.01)
def test_contour_colorbar():
fig, ax = plt.subplots(figsize=(4, 2))
data = np.arange(1200).reshape(30, 40) - 500
diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py
index f4854db502..c4f0a2a31d 100644
--- a/lib/matplotlib/tests/test_contour.py
+++ b/lib/matplotlib/tests/test_contour.py
@@ -345,7 +345,8 @@ def test_contourf_log_extension():
@image_comparison(['contour_addlines.png'],
- remove_text=True, style='mpl20', tol=0.03)
+ remove_text=True, style='mpl20',
+ tol=0.03 if platform.machine() == 'x86_64' else 0.15)
# tolerance is because image changed minutely when tick finding on
# colorbars was cleaned up...
def test_contour_addlines():
diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py
index ae02a50727..15f843fd42 100644
--- a/lib/matplotlib/tests/test_image.py
+++ b/lib/matplotlib/tests/test_image.py
@@ -1329,8 +1329,8 @@ def test_nonuniform_and_pcolor():
ax.set(xlim=(0, 10))
-@image_comparison(["rgba_antialias.png"], style="mpl20",
- remove_text=True)
+@image_comparison(["rgba_antialias.png"], style="mpl20", remove_text=True,
+ tol=0 if platform.machine() == 'x86_64' else 0.007)
def test_rgba_antialias():
fig, axs = plt.subplots(2, 2, figsize=(3.5, 3.5), sharex=False,
sharey=False, constrained_layout=True)
diff --git a/lib/matplotlib/tests/test_lines.py b/lib/matplotlib/tests/test_lines.py
index f6917a134b..a7b5772e8c 100644
--- a/lib/matplotlib/tests/test_lines.py
+++ b/lib/matplotlib/tests/test_lines.py
@@ -3,6 +3,7 @@ Tests specific to the lines module.
"""
import itertools
+import platform
import timeit
from types import SimpleNamespace
@@ -162,7 +163,8 @@ def test_set_drawstyle():
assert len(line.get_path().vertices) == len(x)
-@image_comparison(['line_collection_dashes'], remove_text=True, style='mpl20')
+@image_comparison(['line_collection_dashes'], remove_text=True, style='mpl20',
+ tol=0 if platform.machine() == 'x86_64' else 0.62)
def test_set_line_coll_dash_image():
fig, ax = plt.subplots()
np.random.seed(0)
diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py
index c8824feb06..879d43f28b 100644
--- a/lib/matplotlib/tests/test_streamplot.py
+++ b/lib/matplotlib/tests/test_streamplot.py
@@ -34,7 +34,8 @@ def test_startpoints():
plt.plot(start_x, start_y, 'ok')
-@image_comparison(['streamplot_colormap'], remove_text=True, style='mpl20')
+@image_comparison(['streamplot_colormap'], remove_text=True, style='mpl20',
+ tol=0.01)
def test_colormap():
X, Y, U, V = velocity_field()
plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2,
--
2.36.1

View File

@@ -1,37 +1,37 @@
From 70e97e4ede29ccc16bad1d329d08b27d753a8f00 Mon Sep 17 00:00:00 2001
From 3701d77ac6d708557ccc12dbbfe1ab114d36c319 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/3] Set FreeType version to 2.12.1 and update tolerances.
Subject: [PATCH 3/4] Set FreeType version to 2.13.1 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 | 4 ++--
lib/matplotlib/tests/test_constrainedlayout.py | 2 +-
lib/matplotlib/tests/test_mathtext.py | 7 +++++--
lib/matplotlib/tests/test_polar.py | 2 +-
lib/matplotlib/tests/test_tightlayout.py | 10 +++++-----
setupext.py | 15 +++++++++++++--
7 files changed, 28 insertions(+), 14 deletions(-)
lib/matplotlib/__init__.py | 2 +-
lib/matplotlib/tests/test_axes.py | 4 ++--
.../tests/test_constrainedlayout.py | 8 +++----
lib/matplotlib/tests/test_legend.py | 4 ++--
lib/matplotlib/tests/test_polar.py | 2 +-
lib/matplotlib/tests/test_tightlayout.py | 10 ++++-----
setupext.py | 21 +++++++++++++++++--
7 files changed, 34 insertions(+), 17 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 23841c8377..f7f76cbae6 100644
index 06fb76827d..0760141c77 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1203,7 +1203,7 @@ default_test_modules = [
@@ -1288,7 +1288,7 @@ def is_interactive():
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.12.1'
+ LOCAL_FREETYPE_VERSION = '2.13.1'
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 3bd3fecac3..f0b247a7bb 100644
index cef1c76af6..f1b7a0e884 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -6732,7 +6732,7 @@ def test_normal_axes():
@@ -7433,7 +7433,7 @@ def test_normal_axes():
]
for nn, b in enumerate(bbaxis):
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
@@ -40,7 +40,7 @@ index 3bd3fecac3..f0b247a7bb 100644
target = [
[150.0, 119.999, 930.0, 11.111],
@@ -6750,7 +6750,7 @@ def test_normal_axes():
@@ -7451,7 +7451,7 @@ def test_normal_axes():
target = [85.5138, 75.88888, 1021.11, 1017.11]
targetbb = mtransforms.Bbox.from_bounds(*target)
@@ -50,10 +50,10 @@ index 3bd3fecac3..f0b247a7bb 100644
# test that get_position roundtrips to get_window_extent
axbb = ax.get_position().transformed(fig.transFigure).bounds
diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index 8fd3cc5a35..b1e0fa57cd 100644
index ee08c375c7..8d72db556b 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -431,7 +431,7 @@ def test_hidden_axes():
@@ -432,7 +432,7 @@ def test_hidden_axes():
extents1 = np.copy(axs[0, 0].get_position().extents)
np.testing.assert_allclose(
@@ -62,42 +62,49 @@ index 8fd3cc5a35..b1e0fa57cd 100644
def test_colorbar_align():
diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py
index 6921a17980..ba0e2a3a6c 100644
--- a/lib/matplotlib/tests/test_mathtext.py
+++ b/lib/matplotlib/tests/test_mathtext.py
@@ -1,5 +1,6 @@
import io
from pathlib import Path
+import platform
import re
import shlex
from xml.etree import ElementTree as ET
@@ -192,7 +193,8 @@ def baseline_images(request, fontset, index, text):
@pytest.mark.parametrize(
'fontset', ['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.011 if platform.machine() in ('ppc64le', 's390x') else 0)
def test_mathtext_rendering(baseline_images, fontset, index, text):
mpl.rcParams['mathtext.fontset'] = fontset
fig = plt.figure(figsize=(5.25, 0.75))
@@ -216,7 +218,8 @@ def test_mathtext_rendering_lightweight(baseline_images, fontset, index, text):
@pytest.mark.parametrize(
'fontset', ['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.011 if platform.machine() in ('ppc64le', 's390x') else 0)
def test_mathfont_rendering(baseline_images, fontset, index, text):
mpl.rcParams['mathtext.fontset'] = fontset
fig = plt.figure(figsize=(5.25, 0.75))
@@ -638,7 +638,7 @@ def test_compressed1():
fig.draw_without_rendering()
pos = axs[0, 0].get_position()
- np.testing.assert_allclose(pos.x0, 0.2344, atol=1e-3)
+ np.testing.assert_allclose(pos.x0, 0.2344, atol=1e-2)
pos = axs[0, 1].get_position()
np.testing.assert_allclose(pos.x1, 0.7024, atol=1e-3)
@@ -653,10 +653,10 @@ def test_compressed1():
pos = axs[0, 0].get_position()
np.testing.assert_allclose(pos.x0, 0.06195, atol=1e-3)
- np.testing.assert_allclose(pos.y1, 0.8537, atol=1e-3)
+ np.testing.assert_allclose(pos.y1, 0.8537, atol=1e-2)
pos = axs[1, 2].get_position()
np.testing.assert_allclose(pos.x1, 0.8618, atol=1e-3)
- np.testing.assert_allclose(pos.y0, 0.1934, atol=1e-3)
+ np.testing.assert_allclose(pos.y0, 0.1934, atol=1e-2)
@pytest.mark.parametrize('arg, state', [
diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
index a8d7fd107d..cbca9e93e9 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -522,9 +522,9 @@ def test_figure_legend_outside():
fig.draw_without_rendering()
assert_allclose(axs.get_window_extent().extents,
- axbb[nn])
+ axbb[nn], rtol=1)
assert_allclose(leg.get_window_extent().extents,
- legbb[nn])
+ legbb[nn], rtol=1)
@image_comparison(['legend_stackplot.png'])
diff --git a/lib/matplotlib/tests/test_polar.py b/lib/matplotlib/tests/test_polar.py
index 85aece5fce..9fea856af4 100644
index 9d6e78da2c..5f6ed538d1 100644
--- a/lib/matplotlib/tests/test_polar.py
+++ b/lib/matplotlib/tests/test_polar.py
@@ -314,7 +314,7 @@ def test_get_tightbbox_polar():
@@ -321,7 +321,7 @@ def test_get_tightbbox_polar():
fig.canvas.draw()
bb = ax.get_tightbbox(fig.canvas.get_renderer())
assert_allclose(
@@ -107,10 +114,10 @@ index 85aece5fce..9fea856af4 100644
@check_figures_equal(extensions=["png"])
diff --git a/lib/matplotlib/tests/test_tightlayout.py b/lib/matplotlib/tests/test_tightlayout.py
index e9b01b160d..beab853489 100644
index 968f0da7b5..89caa81b98 100644
--- a/lib/matplotlib/tests/test_tightlayout.py
+++ b/lib/matplotlib/tests/test_tightlayout.py
@@ -172,12 +172,12 @@ def test_outward_ticks():
@@ -173,12 +173,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.
@@ -129,15 +136,17 @@ index e9b01b160d..beab853489 100644
diff --git a/setupext.py b/setupext.py
index ae8c21599f..abd01d8813 100644
index a898d642d6..b22d875d6f 100644
--- a/setupext.py
+++ b/setupext.py
@@ -167,14 +167,24 @@ _freetype_hashes = {
@@ -176,13 +176,29 @@ _freetype_hashes = {
'955e17244e9b38adb0c98df66abb50467312e6bb70eac07e49ce6bd1a20e809a',
'2.10.1':
'3a60d391fd579440561bf0e7f31af2222bc610ad6ce4d9d7bd2165bca8669110',
+ '2.10.2':
+ 'e09aa914e4f7a5d723ac381420949c55c0b90b15744adce5d1406046022186ab',
+ '2.10.3':
+ '9dfb4e11efd6e460a87b1991a64bc69344ee7dc219d9b29e7faabc1c168ce8b0',
+ '2.10.4':
+ '5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac',
+ '2.11.0':
@@ -149,17 +158,20 @@ index ae8c21599f..abd01d8813 100644
+ '7940a46eeb0255baaa87c553d72778c4f8daa2b8888c8e2a05766a2a8686740c',
+ '2.12.1':
+ 'efe71fd4b8246f1b0b1b9bfca13cfff1c9ad85930340c27df469733bbb620938',
+ '2.13.0':
+ 'a7aca0e532a276ea8d85bd31149f0a74c33d19c8d287116ef8f5f8357b4f1f80',
+ '2.13.1':
+ '0b109c59914f25b4411a8de2a506fdd18fa8457eb86eca6c7b15c19110a92fa5',
}
# 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). Also update the cache path in `.circleci/config.yml`.
# must match the value in lib/matplotlib.__init__.py, and the cache path in
# `.circleci/config.yml`.
-TESTING_VERSION_OF_FREETYPE = '2.6.1'
+TESTING_VERSION_OF_FREETYPE = '2.12.1'
+TESTING_VERSION_OF_FREETYPE = '2.13.1'
if sys.platform.startswith('win') and platform.machine() == 'ARM64':
# older versions of freetype are not supported for win/arm64
# Matplotlib tests will not pass
@@ -593,6 +603,7 @@ class FreeType(SetupPackage):
@@ -597,6 +613,7 @@ class FreeType(SetupPackage):
ext.extra_objects.insert(
0, str(src_path / 'objs' / '.libs' / libfreetype))
ext.define_macros.append(('FREETYPE_BUILD_TYPE', 'local'))
@@ -168,5 +180,5 @@ index ae8c21599f..abd01d8813 100644
def do_custom_build(self, env):
# We're using a system freetype
--
2.36.1
2.41.0

View File

@@ -0,0 +1,36 @@
From 5d12c697908d1103dc7fa2d915ad82d357975709 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Mon, 22 Aug 2022 18:43:28 -0400
Subject: [PATCH 4/4] Use old stride_windows implementation on 32-bit x86
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/mlab.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/matplotlib/mlab.py b/lib/matplotlib/mlab.py
index 059cf0f162..943eb18e6f 100644
--- a/lib/matplotlib/mlab.py
+++ b/lib/matplotlib/mlab.py
@@ -52,6 +52,7 @@ Spectral functions
import functools
from numbers import Number
+import sys
import numpy as np
@@ -252,7 +253,9 @@ def stride_windows(x, n, noverlap=None, axis=0):
def _stride_windows(x, n, noverlap=0, axis=0):
# np>=1.20 provides sliding_window_view, and we only ever use axis=0.
- if hasattr(np.lib.stride_tricks, "sliding_window_view") and axis == 0:
+ if (sys.maxsize > 2**32 and # NumPy version on 32-bit OOMs.
+ hasattr(np.lib.stride_tricks, "sliding_window_view") and
+ axis == 0):
if noverlap >= n:
raise ValueError('noverlap must be less than n')
return np.lib.stride_tricks.sliding_window_view(
--
2.41.0

View File

@@ -1,38 +0,0 @@
From dc5b6e87b6f4e1817720ea5aea1110231aab5667 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Wed, 4 May 2022 20:41:01 -0400
Subject: [PATCH] Skip additional backend tests on import error
All the Qt tests in this file already do this, and the remaining one
fails if running headless.
---
lib/matplotlib/tests/test_backend_gtk3.py | 2 +-
lib/matplotlib/tests/test_backend_qt.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/matplotlib/tests/test_backend_gtk3.py b/lib/matplotlib/tests/test_backend_gtk3.py
index 5442930d117f..937ddef5a13f 100644
--- a/lib/matplotlib/tests/test_backend_gtk3.py
+++ b/lib/matplotlib/tests/test_backend_gtk3.py
@@ -6,7 +6,7 @@
pytest.importorskip("matplotlib.backends.backend_gtk3agg")
-@pytest.mark.backend("gtk3agg")
+@pytest.mark.backend("gtk3agg", skip_on_importerror=True)
def test_correct_key():
pytest.xfail("test_widget_send_event is not triggering key_press_event")
diff --git a/lib/matplotlib/tests/test_backend_qt.py b/lib/matplotlib/tests/test_backend_qt.py
index eee4e56536ec..61abf58ac84e 100644
--- a/lib/matplotlib/tests/test_backend_qt.py
+++ b/lib/matplotlib/tests/test_backend_qt.py
@@ -193,7 +193,7 @@ def test_other_signal_before_sigint(target, kwargs):
plt.figure()
-@pytest.mark.backend('Qt5Agg')
+@pytest.mark.backend('Qt5Agg', skip_on_importerror=True)
def test_fig_sigint_override(qt_core):
from matplotlib.backends.backend_qt5 import _BackendQT5
# Create a figure

View File

@@ -30,21 +30,21 @@
%global _docdir_fmt %{name}
# Updated test images for new FreeType.
%global mpl_images_version 3.5.3
%global mpl_images_version 3.7.2
# The version of FreeType in this Fedora branch.
%global ftver 2.12.1
%global ftver 2.13.1
Name: python-matplotlib
Version: 3.5.3
%global Version 3.5.3
Version: 3.7.4
%global Version 3.7.4
Release: %autorelease
Summary: Python 2D plotting library
# qt_editor backend is 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}/matplotlib-%{Version}.tar.gz
# ResizeObserver at end of lib/matplotlib/backends/web_backend/js/mpl.js is CC0
License: PSF-2.0 and MIT and CC0-1.0
URL: https://matplotlib.org
Source0: %pypi_source matplotlib %{Version}
Source1: mplsetup.cfg
# Fedora-specific patches; see:
@@ -53,9 +53,12 @@ Source1: mplsetup.cfg
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
Patch1002: 0002-Don-t-require-oldest-supported-numpy.patch
# Increase tolerances for new FreeType everywhere:
Patch1002: 0002-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patch
Patch1003: 0003-Increase-a-few-test-tolerances-on-some-arches.patch
Patch1003: 0003-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patch
# https://github.com/matplotlib/matplotlib/pull/21190#issuecomment-1223271888
Patch0001: 0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch
BuildRequires: gcc
BuildRequires: gcc-c++
@@ -71,9 +74,11 @@ BuildRequires: ghostscript
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} < 8)
BuildRequires: ImageMagick
%endif
%ifnarch s390x
BuildRequires: inkscape
%endif
BuildRequires: font(dejavusans)
BuildRequires: font(notosanscjkjp)
BuildRequires: font(wenquanyizenhei)
BuildRequires: texlive-collection-basic
BuildRequires: texlive-collection-fontsrecommended
@@ -86,39 +91,35 @@ 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(chemformula.sty)
BuildRequires: tex(color.sty)
BuildRequires: tex(courier.sty)
BuildRequires: tex(euler.sty)
BuildRequires: tex(fancyhdr.sty)
BuildRequires: tex(fontenc.sty)
BuildRequires: tex(fontspec.sty)
BuildRequires: tex(geometry.sty)
BuildRequires: tex(graphicx.sty)
BuildRequires: tex(helvet.sty)
BuildRequires: tex(hyperref.sty)
BuildRequires: tex(import.sty)
BuildRequires: tex(inputenc.sty)
BuildRequires: tex(lmodern.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)
BuildRequires: tex(underscore.sty)
# See BakomaFonts._fontmap in lib/matplotlib/mathtext.py
BuildRequires: tex(cmb10.tfm)
BuildRequires: tex(cmex10.tfm)
@@ -153,9 +154,9 @@ Obsoletes: python-matplotlib-data < 3
%if %{with bundled_fonts}
%package -n python3-matplotlib-data-fonts
Summary: Fonts used by python-matplotlib
# STIX and Computer Modern is OFL
# Carlogo, STIX and Computer Modern is OFL
# DejaVu is Bitstream Vera and Public Domain
License: OFL and Bitstream Vera and Public Domain
License: OFL-1.1 and Bitstream-Vera and LicenseRef-Fedora-Public-Domain
BuildArch: noarch
Requires: python3-matplotlib-data = %{version}-%{release}
Obsoletes: python-matplotlib-data-fonts < 3
@@ -167,22 +168,21 @@ Obsoletes: python-matplotlib-data-fonts < 3
%package -n python3-matplotlib
Summary: Python 2D plotting library
BuildRequires: python3-devel
BuildRequires: python3-cairo
BuildRequires: python3-gobject
BuildRequires: python3-pytz
BuildRequires: python3-sphinx
BuildRequires: python3dist(pycairo)
BuildRequires: python3dist(pytz)
BuildRequires: python3dist(sphinx)
Requires: dejavu-sans-fonts
Recommends: texlive-dvipng
Requires: (texlive-dvipng if texlive-base)
Requires: python3-matplotlib-data = %{version}-%{release}
Requires: python3-cairo
Requires: python3dist(pycairo)
Requires: python3-matplotlib-%{?backend_subpackage}%{!?backend_subpackage:tk}%{?_isa} = %{version}-%{release}
%if %{with check}
BuildRequires: python3-pytest
BuildRequires: python3-pytest-rerunfailures
BuildRequires: python3-pytest-timeout
BuildRequires: python3-pytest-xdist
BuildRequires: python3-pikepdf
BuildRequires: python3dist(pytest)
BuildRequires: python3dist(pytest-rerunfailures)
BuildRequires: python3dist(pytest-timeout)
BuildRequires: python3dist(pytest-xdist)
BuildRequires: python3dist(pikepdf)
%endif
%if %{without bundled_fonts}
Requires: stix-math-fonts
@@ -203,14 +203,27 @@ errorcharts, scatterplots, etc, with just a few lines of code.
%package -n python3-matplotlib-qt5
Summary: Qt5 backend for python3-matplotlib
BuildRequires: python3-qt5
BuildRequires: python3dist(cairocffi)
BuildRequires: python3dist(pyqt5)
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-qt5
Requires: python3dist(cairocffi)
Requires: python3dist(pyqt5)
Obsoletes: python3-matplotlib-qt4 < 3.5.0-0
%description -n python3-matplotlib-qt5
%{summary}
%package -n python3-matplotlib-qt6
Summary: Qt6 backend for python3-matplotlib
BuildRequires: python3dist(cairocffi)
BuildRequires: python3dist(pyqt6)
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3dist(cairocffi)
Requires: python3dist(pyqt6)
%description -n python3-matplotlib-qt6
%{summary}
%package -n python3-matplotlib-gtk3
Summary: GTK3 backend for python3-matplotlib
# This should be converted to typelib(Gtk) when supported
@@ -249,9 +262,9 @@ Requires: python3-tkinter
%if %{with wx}
%package -n python3-matplotlib-wx
Summary: WX backend for python3-matplotlib
BuildRequires: python3-wxpython4
BuildRequires: python3dist(wxpython)
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-wxpython4
Requires: python3dist(wxpython)
%description -n python3-matplotlib-wx
%{summary}
@@ -262,7 +275,7 @@ Summary: Documentation files for python-matplotlib
%if %{with html}
BuildRequires: graphviz
BuildRequires: make
BuildRequires: python3-sphinx
BuildRequires: python3dist(sphinx)
BuildRequires: tex(latex)
BuildRequires: tex-preview
%endif
@@ -283,15 +296,15 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%autosetup -n matplotlib-%{Version} -N
# Fedora-specific patches follow:
%patch1001 -p1
%autopatch -p1 -m 1000
# Updated test images for new FreeType.
%patch1002 -p1
gzip -dc %SOURCE1000 | tar xf - --transform='s~^mpl-images-%{mpl_images_version}-with-freetype-%{ftver}/\([^/]\+\)/~lib/\1/tests/baseline_images/~'
gzip -dc %SOURCE1000 | tar xf - --transform='s~^mpl-images-%{mpl_images_version}-with-freetype-%{ftver}/~~'
# Copy mplsetup.cfg to the builddir
cp -p %{SOURCE1} mplsetup.cfg
%patch1003 -p1
# Backports or reported upstream
%autopatch -p1 -M 999
%generate_buildrequires
@@ -306,7 +319,7 @@ MPLCONFIGDIR=$PWD %pyproject_wheel
%if %{with html}
# Need to make built matplotlib libs available for the sphinx extensions:
MPLCONFIGDIR=$PWD \
PYTHONPATH=$(ls -d %{_pyproject_builddir}/pip-req-build-*/build/lib.%{python3_platform}-%{python3_version}) \
PYTHONPATH="%{pyproject_site_lib}" \
make -C doc html
%endif
# Ensure all example files are non-executable so that the -doc
@@ -357,7 +370,7 @@ MPLCONFIGDIR=$PWD \
env %{pytest} -ra -n auto \
-m 'not network' \
-k 'not test_invisible_Line_rendering and not test_form_widget_get_with_datetime_and_date_fields' \
--pyargs matplotlib mpl_toolkits.tests
--pyargs matplotlib mpl_toolkits.axes_grid1 mpl_toolkits.axisartist mpl_toolkits.mplot3d
%endif
@@ -380,13 +393,13 @@ MPLCONFIGDIR=$PWD \
%files -n python3-matplotlib
%license LICENSE/
%doc README.rst
%doc README.md
%{python3_sitearch}/matplotlib-*.dist-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/*
%exclude %{python3_sitearch}/mpl_toolkits/*/tests/baseline_images/*
%pycached %{python3_sitearch}/pylab.py
%pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_qt5*.py
%pycached %exclude %{python3_sitearch}/matplotlib/backends/backend_gtk*.py
@@ -400,11 +413,15 @@ MPLCONFIGDIR=$PWD \
%files -n python3-matplotlib-test-data
%{python3_sitearch}/matplotlib/tests/baseline_images/
%{python3_sitearch}/mpl_toolkits/tests/baseline_images/
%{python3_sitearch}/mpl_toolkits/*/tests/baseline_images/
%files -n python3-matplotlib-qt5
%pycached %{python3_sitearch}/matplotlib/backends/backend_qt5*.py
# This is handled by backend_qt*.py (no number), so the package exists only for
# the dependencies.
%files -n python3-matplotlib-qt6
%files -n python3-matplotlib-gtk3
%pycached %{python3_sitearch}/matplotlib/backends/backend_gtk3*.py

View File

@@ -1,2 +1,2 @@
SHA512 (matplotlib-3.5.3.tar.gz) = 8d8bc28ef62a2373a0740ba5322f04ddbcc6485caf06883b54904f1ff7c979b9c4425516274d2b9e0cb63607d11bc3149044bee7ccac37de6ccd80480791cd4d
SHA512 (matplotlib-3.5.3-with-freetype-2.12.1.tar.gz) = 52793236ed8bafb8f9bd18608a69e1893e95cde2a2af416d7688ce6919df2af199752f7bf05ac41525e231a316fd3fd0192f2c5d0e399708161dec0939e1101e
SHA512 (matplotlib-3.7.4.tar.gz) = 65c17babc7535aa6bdf9ab3db23681411e66dfba840065ae30c56a212ba472da0d189ddb50f7000adb44e579f04d33f1bf572a0a3c50beea6241e138c17a7669
SHA512 (matplotlib-3.7.2-with-freetype-2.13.1.tar.gz) = 1a8bdaa0b6b3ec3d310aff96c04c99d9350534992592d8d3c99530ef63aa8a4289c5195a791139b9d69b8472eb010ee3d8a248fa8e8dc3941403387321db6e14