Compare commits

..

14 Commits
f41 ... f42

Author SHA1 Message Date
Elliott Sales de Andrade
9ec656f711 Update to latest version (#2402615) 2026-01-06 20:18:56 -05:00
Elliott Sales de Andrade
4657ee6ac4 Reduce testing dependencies on i686 2026-01-06 19:28:17 -05:00
Elliott Sales de Andrade
36bb5d7fa0 Ignore test failures in GTK
It seems to incorrectly set the initial size, but that is fixed in F43,
so this is only done for F42 here.

[skip changelog]
2025-09-12 04:54:26 -04:00
Elliott Sales de Andrade
f2d972fa1d Update to latest version (#2385842) 2025-08-30 03:42:05 -04:00
Elliott Sales de Andrade
d0eaec2e00 Update to latest version (#2385842) 2025-07-31 21:53:04 -04:00
Elliott Sales de Andrade
492a599cee Backport fix for OffsetBox custom picker
- fixes rhbz#2367456
2025-05-30 22:45:07 -04:00
Elliott Sales de Andrade
3560f7bf0d Fix button images in toolmanager
This was reported upstream in https://github.com/matplotlib/matplotlib/issues/30116.
2025-05-28 01:47:06 -04:00
Elliott Sales de Andrade
5d73432d40 Update to latest version (#2348860) 2025-05-09 21:29:37 -04:00
Elliott Sales de Andrade
b69289819e Fix tests on non-x86_64 architectures
- fixes rhbz#2341338
2025-01-24 21:21:58 -05:00
Fedora Release Engineering
dabb8167f1 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-18 16:01:23 +00:00
Elliott Sales de Andrade
f02849f05b Update to latest version (#2304229) 2025-01-11 01:04:18 -05:00
Elliott Sales de Andrade
ed37137f1e Reduce default backend to Recommends
- fixes rhbz#1321456
2025-01-11 01:03:53 -05:00
Elliott Sales de Andrade
4271371599 Run GUI tests on Wayland as well 2024-12-19 05:19:16 -05:00
Orion Poplawski
8b8c357ab9 Rebuild with numpy 2.0 2024-12-15 22:24:54 -07:00
10 changed files with 252 additions and 265 deletions

7
.gitignore vendored
View File

@@ -115,3 +115,10 @@ matplotlib-1.0.0-without-gpc.tar.gz
/matplotlib-3.9.3.tar.gz
/matplotlib-3.9.3-with-freetype-2.13.1.tar.gz
/matplotlib-3.9.4.tar.gz
/matplotlib-3.10.0.tar.gz
/matplotlib-3.10.0-with-freetype-2.13.1.tar.gz
/matplotlib-3.10.3.tar.gz
/matplotlib-3.10.3-with-freetype-2.13.1.tar.gz
/matplotlib-3.10.5.tar.gz
/matplotlib-3.10.6.tar.gz
/matplotlib-3.10.8.tar.gz

View File

@@ -1,5 +1,5 @@
From d6ce8e5420b08b80203391f4172442249012087a Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
From 3c225cf3905d734a27df25e3a53a904a55f2904e Mon Sep 17 00:00:00 2001
From: Sandro Tosi <morph@debian.org>
Date: Wed, 27 Sep 2017 19:35:59 -0400
Subject: [PATCH 1/5] matplotlibrc path search fix
@@ -10,10 +10,10 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index ad4676b11a..b925a4a703 100644
index 2786f9b7b9..64ba02afd6 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -589,7 +589,8 @@ def get_cachedir():
@@ -593,7 +593,8 @@ def get_cachedir():
@_logged_cached('matplotlib data path: %s')
def get_data_path():
"""Return the path to Matplotlib data."""
@@ -23,7 +23,7 @@ index ad4676b11a..b925a4a703 100644
def matplotlib_fname():
@@ -609,6 +610,7 @@ def matplotlib_fname():
@@ -613,6 +614,7 @@ def matplotlib_fname():
is not defined)
- On other platforms,
- ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined
@@ -31,7 +31,7 @@ index ad4676b11a..b925a4a703 100644
- Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always
exist.
"""
@@ -627,6 +629,7 @@ def matplotlib_fname():
@@ -631,6 +633,7 @@ def matplotlib_fname():
yield matplotlibrc
yield os.path.join(matplotlibrc, 'matplotlibrc')
yield os.path.join(get_configdir(), 'matplotlibrc')
@@ -40,10 +40,10 @@ index ad4676b11a..b925a4a703 100644
for fname in gen_candidates():
diff --git a/lib/matplotlib/backend_tools.py b/lib/matplotlib/backend_tools.py
index 5076ae5635..e74c33678c 100644
index 87ed794022..9d80539114 100644
--- a/lib/matplotlib/backend_tools.py
+++ b/lib/matplotlib/backend_tools.py
@@ -605,7 +605,7 @@ class ToolHome(ViewsPositionsBase):
@@ -596,7 +596,7 @@ class ToolHome(ViewsPositionsBase):
"""Restore the original view limits."""
description = 'Reset original view'
@@ -52,7 +52,7 @@ index 5076ae5635..e74c33678c 100644
default_keymap = property(lambda self: mpl.rcParams['keymap.home'])
_on_trigger = 'home'
@@ -614,7 +614,7 @@ class ToolBack(ViewsPositionsBase):
@@ -605,7 +605,7 @@ class ToolBack(ViewsPositionsBase):
"""Move back up the view limits stack."""
description = 'Back to previous view'
@@ -61,7 +61,7 @@ index 5076ae5635..e74c33678c 100644
default_keymap = property(lambda self: mpl.rcParams['keymap.back'])
_on_trigger = 'back'
@@ -623,7 +623,7 @@ class ToolForward(ViewsPositionsBase):
@@ -614,7 +614,7 @@ class ToolForward(ViewsPositionsBase):
"""Move forward in the view lim stack."""
description = 'Forward to next view'
@@ -70,7 +70,7 @@ index 5076ae5635..e74c33678c 100644
default_keymap = property(lambda self: mpl.rcParams['keymap.forward'])
_on_trigger = 'forward'
@@ -632,14 +632,14 @@ class ConfigureSubplotsBase(ToolBase):
@@ -623,14 +623,14 @@ class ConfigureSubplotsBase(ToolBase):
"""Base tool for the configuration of subplots."""
description = 'Configure subplots'
@@ -87,7 +87,7 @@ index 5076ae5635..e74c33678c 100644
default_keymap = property(lambda self: mpl.rcParams['keymap.save'])
@@ -714,7 +714,7 @@ class ToolZoom(ZoomPanBase):
@@ -705,7 +705,7 @@ class ToolZoom(ZoomPanBase):
"""A Tool for zooming using a rectangle selector."""
description = 'Zoom to rectangle'
@@ -96,7 +96,7 @@ index 5076ae5635..e74c33678c 100644
default_keymap = property(lambda self: mpl.rcParams['keymap.zoom'])
cursor = cursors.SELECT_REGION
radio_group = 'default'
@@ -836,7 +836,7 @@ class ToolPan(ZoomPanBase):
@@ -827,7 +827,7 @@ class ToolPan(ZoomPanBase):
default_keymap = property(lambda self: mpl.rcParams['keymap.pan'])
description = 'Pan axes with left mouse, zoom with right'
@@ -105,7 +105,7 @@ index 5076ae5635..e74c33678c 100644
cursor = cursors.MOVE
radio_group = 'default'
@@ -900,7 +900,7 @@ class ToolPan(ZoomPanBase):
@@ -891,7 +891,7 @@ class ToolPan(ZoomPanBase):
class ToolHelpBase(ToolBase):
description = 'Print tool list, shortcuts and description'
default_keymap = property(lambda self: mpl.rcParams['keymap.help'])
@@ -115,5 +115,5 @@ index 5076ae5635..e74c33678c 100644
@staticmethod
def format_shortcut(key_sequence):
--
2.49.0
2.52.0

View File

@@ -0,0 +1,127 @@
From 7b4e2945933049429d00d6f3900d2cdf992c80df 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/5] Set FreeType version to 2.13.1 and update tolerances
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
extern/meson.build | 2 +-
lib/matplotlib/__init__.py | 2 +-
lib/matplotlib/tests/test_axes.py | 4 ++--
lib/matplotlib/tests/test_backend_pgf.py | 2 +-
lib/matplotlib/tests/test_ft2font.py | 6 +++---
lib/matplotlib/tests/test_legend.py | 4 ++--
lib/matplotlib/tests/test_polar.py | 2 +-
7 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/extern/meson.build b/extern/meson.build
index 5463183a90..c7233815af 100644
--- a/extern/meson.build
+++ b/extern/meson.build
@@ -13,7 +13,7 @@ else
# must match the value in `lib/matplotlib.__init__.py`. Also update the docs
# in `docs/devel/dependencies.rst`. Bump the cache key in
# `.circleci/config.yml` when changing requirements.
- LOCAL_FREETYPE_VERSION = '2.6.1'
+ LOCAL_FREETYPE_VERSION = '2.13.1'
freetype_proj = subproject(
f'freetype-@LOCAL_FREETYPE_VERSION@',
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 64ba02afd6..9fe5fb7abf 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1364,7 +1364,7 @@ def _val_or_rc(val, rc_name):
def _init_tests():
# The version of FreeType to install locally for running the tests. This must match
# the value in `meson.build`.
- LOCAL_FREETYPE_VERSION = '2.6.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 159fc70282..b304186fc9 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -8084,7 +8084,7 @@ def test_normal_axes():
]
for nn, b in enumerate(bbaxis):
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
- assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=2)
+ assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=0)
target = [
[150.0, 119.999, 930.0, 11.111],
@@ -8102,7 +8102,7 @@ def test_normal_axes():
target = [85.5138, 75.88888, 1021.11, 1017.11]
targetbb = mtransforms.Bbox.from_bounds(*target)
- assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=2)
+ assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=0)
# test that get_position roundtrips to get_window_extent
axbb = ax.get_position().transformed(fig.transFigure).bounds
diff --git a/lib/matplotlib/tests/test_backend_pgf.py b/lib/matplotlib/tests/test_backend_pgf.py
index e218a81cdc..839ad724e1 100644
--- a/lib/matplotlib/tests/test_backend_pgf.py
+++ b/lib/matplotlib/tests/test_backend_pgf.py
@@ -165,7 +165,7 @@ def test_pathclip():
# test mixed mode rendering
@needs_pgf_xelatex
@pytest.mark.backend('pgf')
-@image_comparison(['pgf_mixedmode.pdf'], style='default')
+@image_comparison(['pgf_mixedmode.pdf'], style='default', tol=0.87)
def test_mixedmode():
mpl.rcParams.update({'font.family': 'serif', 'pgf.rcfonts': False})
Y, X = np.ogrid[-1:1:40j, -1:1:40j]
diff --git a/lib/matplotlib/tests/test_ft2font.py b/lib/matplotlib/tests/test_ft2font.py
index 6ba23bab34..0aee3222f1 100644
--- a/lib/matplotlib/tests/test_ft2font.py
+++ b/lib/matplotlib/tests/test_ft2font.py
@@ -706,10 +706,10 @@ def test_ft2font_get_sfnt_table(font_name, header):
@pytest.mark.parametrize('left, right, unscaled, unfitted, default', [
# These are all the same class.
- ('A', 'A', 57, 248, 256), ('A', 'À', 57, 248, 256), ('A', 'Á', 57, 248, 256),
- ('A', 'Â', 57, 248, 256), ('A', 'Ã', 57, 248, 256), ('A', 'Ä', 57, 248, 256),
+ ('A', 'A', 57, 247, 256), ('A', 'À', 57, 247, 256), ('A', 'Á', 57, 247, 256),
+ ('A', 'Â', 57, 247, 256), ('A', 'Ã', 57, 247, 256), ('A', 'Ä', 57, 247, 256),
# And a few other random ones.
- ('D', 'A', -36, -156, -128), ('T', '.', -243, -1056, -1024),
+ ('D', 'A', -36, -156, -128), ('T', '.', -243, -1055, -1024),
('X', 'C', -149, -647, -640), ('-', 'J', 114, 495, 512),
])
def test_ft2font_get_kerning(left, right, unscaled, unfitted, default):
diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
index eb3bfca7c2..c01be3aec0 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -520,9 +520,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 844ab8cf3a..826a8a0c3a 100644
--- a/lib/matplotlib/tests/test_polar.py
+++ b/lib/matplotlib/tests/test_polar.py
@@ -328,7 +328,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)
+ bb.extents, [107.7778, 29.2778, 539.7847, 450.7222], rtol=1)
@check_figures_equal(extensions=["png"])
--
2.52.0

View File

@@ -1,41 +0,0 @@
From 33d00a269895431919512d203ba3158abf67af08 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Fri, 11 Aug 2023 02:36:06 -0400
Subject: [PATCH 2/5] Unpin NumPy build requirement
This is so high simply to take advantage of the new
backwards-compatibility guarantee in NumPy 1.25, but Fedora will never
run against a version different from the one it was built against.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
pyproject.toml | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index aa6aa23506..1894bbf3cd 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -76,18 +76,7 @@ requires = [
"meson-python>=0.13.1,<0.17.0",
"pybind11>=2.6,!=2.13.3",
"setuptools_scm>=7",
-
- # Comments on numpy build requirement range:
- #
- # 1. >=2.0.x is the numpy requirement for wheel builds for distribution
- # on PyPI - building against 2.x yields wheels that are also
- # ABI-compatible with numpy 1.x at runtime.
- # 2. Note that building against numpy 1.x works fine too - users and
- # redistributors can do this by installing the numpy version they like
- # and disabling build isolation.
- # 3. The <2.3 upper bound is for matching the numpy deprecation policy,
- # it should not be loosened.
- "numpy>=2.0.0rc1,<2.3",
+ "numpy",
]
[tool.meson-python.args]
--
2.49.0

View File

@@ -1,171 +0,0 @@
From a1fea1cd2a25652721553f8dc4c40faf663c76e1 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 3/5] Set FreeType version to 2.13.1 and update tolerances
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
extern/meson.build | 2 +-
lib/matplotlib/__init__.py | 2 +-
lib/matplotlib/tests/test_axes.py | 4 ++--
lib/matplotlib/tests/test_backend_pgf.py | 2 +-
lib/matplotlib/tests/test_constrainedlayout.py | 10 +++++-----
lib/matplotlib/tests/test_legend.py | 4 ++--
lib/matplotlib/tests/test_polar.py | 2 +-
lib/matplotlib/tests/test_tightlayout.py | 10 +++++-----
8 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/extern/meson.build b/extern/meson.build
index 662feb7872..df42b908af 100644
--- a/extern/meson.build
+++ b/extern/meson.build
@@ -14,7 +14,7 @@ else
# must match the value in `lib/matplotlib.__init__.py`. Also update the docs
# in `docs/devel/dependencies.rst`. Bump the cache key in
# `.circleci/config.yml` when changing requirements.
- LOCAL_FREETYPE_VERSION = '2.6.1'
+ LOCAL_FREETYPE_VERSION = '2.13.1'
freetype_proj = subproject(
f'freetype-@LOCAL_FREETYPE_VERSION@',
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index b925a4a703..ec68e4932b 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1316,7 +1316,7 @@ def _val_or_rc(val, rc_name):
def _init_tests():
# The version of FreeType to install locally for running the tests. This must match
# the value in `meson.build`.
- LOCAL_FREETYPE_VERSION = '2.6.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 e99ef129eb..2355c82f62 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -7765,7 +7765,7 @@ def test_normal_axes():
]
for nn, b in enumerate(bbaxis):
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
- assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=2)
+ assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=0)
target = [
[150.0, 119.999, 930.0, 11.111],
@@ -7783,7 +7783,7 @@ def test_normal_axes():
target = [85.5138, 75.88888, 1021.11, 1017.11]
targetbb = mtransforms.Bbox.from_bounds(*target)
- assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=2)
+ assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=0)
# test that get_position roundtrips to get_window_extent
axbb = ax.get_position().transformed(fig.transFigure).bounds
diff --git a/lib/matplotlib/tests/test_backend_pgf.py b/lib/matplotlib/tests/test_backend_pgf.py
index 8a83515f16..26bc9d6c48 100644
--- a/lib/matplotlib/tests/test_backend_pgf.py
+++ b/lib/matplotlib/tests/test_backend_pgf.py
@@ -165,7 +165,7 @@ def test_pathclip():
# test mixed mode rendering
@needs_pgf_xelatex
@pytest.mark.backend('pgf')
-@image_comparison(['pgf_mixedmode.pdf'], style='default')
+@image_comparison(['pgf_mixedmode.pdf'], style='default', tol=0.87)
def test_mixedmode():
mpl.rcParams.update({'font.family': 'serif', 'pgf.rcfonts': False})
Y, X = np.ogrid[-1:1:40j, -1:1:40j]
diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
index 4dc4d9501e..47a4e80bb5 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -435,7 +435,7 @@ def test_hidden_axes():
extents1 = np.copy(axs[0, 0].get_position().extents)
np.testing.assert_allclose(
- extents1, [0.045552, 0.543288, 0.47819, 0.982638], rtol=1e-5)
+ extents1, [0.045552, 0.543288, 0.47819, 0.982638], rtol=1e-2)
def test_colorbar_align():
@@ -641,9 +641,9 @@ 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)
+ np.testing.assert_allclose(pos.x1, 0.7024, atol=1e-2)
# wider than tall
fig, axs = plt.subplots(2, 3, layout='compressed',
@@ -656,10 +656,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 3c2af27564..2b8709f934 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -520,9 +520,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 6b3c08d2eb..5160112e37 100644
--- a/lib/matplotlib/tests/test_polar.py
+++ b/lib/matplotlib/tests/test_polar.py
@@ -321,7 +321,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)
+ bb.extents, [107.7778, 29.2778, 539.7847, 450.7222], rtol=1)
@check_figures_equal(extensions=["png"])
diff --git a/lib/matplotlib/tests/test_tightlayout.py b/lib/matplotlib/tests/test_tightlayout.py
index 9c654f4d1f..9678e34a80 100644
--- a/lib/matplotlib/tests/test_tightlayout.py
+++ b/lib/matplotlib/tests/test_tightlayout.py
@@ -174,13 +174,13 @@ def test_outward_ticks():
# These values were obtained after visual checking that they correspond
# to a tight layouting that did take the ticks into account.
expected = [
- [[0.091, 0.607], [0.433, 0.933]],
- [[0.579, 0.607], [0.922, 0.933]],
- [[0.091, 0.140], [0.433, 0.466]],
- [[0.579, 0.140], [0.922, 0.466]],
+ [[0.09, 0.61], [0.43, 0.93]],
+ [[0.58, 0.61], [0.92, 0.93]],
+ [[0.09, 0.14], [0.43, 0.47]],
+ [[0.58, 0.14], [0.92, 0.47]],
]
for nn, ax in enumerate(fig.axes):
- assert_array_equal(np.round(ax.get_position().get_points(), 3),
+ assert_array_equal(np.round(ax.get_position().get_points(), 2),
expected[nn])
--
2.49.0

View File

@@ -1,7 +1,7 @@
From 31e6b3d9271e2229c50b587023efaeb78cc2fa1e Mon Sep 17 00:00:00 2001
From a05766154a8aa81691f3318b706d286bb87fb1c6 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Fri, 13 Dec 2024 02:03:33 -0500
Subject: [PATCH 4/5] Unpin meson-python build requirement
Subject: [PATCH 3/5] Unpin meson-python build requirement
This is pinned to fix sdists, but we already have one and are building a
wheel, which should be fine.
@@ -12,27 +12,27 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 1894bbf3cd..bdf2119f1b 100644
index 23c441b52c..f762c85d98 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -48,7 +48,7 @@ requires-python = ">=3.9"
@@ -48,7 +48,7 @@ requires-python = ">=3.10"
[project.optional-dependencies]
# Should be a copy of the build dependencies below.
dev = [
- "meson-python>=0.13.1,<0.17.0",
+ "meson-python>=0.13.1",
"numpy>=1.25",
"pybind11>=2.6,!=2.13.3",
"pybind11>=2.13.2,!=2.13.3",
"setuptools_scm>=7",
@@ -73,7 +73,7 @@ dev = [
# Not required by us but setuptools_scm without a version, cso _if_
@@ -72,7 +72,7 @@ dev = [
build-backend = "mesonpy"
# Also keep in sync with optional dependencies above.
requires = [
- "meson-python>=0.13.1,<0.17.0",
+ "meson-python>=0.13.1",
"pybind11>=2.6,!=2.13.3",
"pybind11>=2.13.2,!=2.13.3",
"setuptools_scm>=7",
"numpy",
]
--
2.49.0
2.52.0

View File

@@ -1,7 +1,7 @@
From 6e8ee8e1b2c6e0207010f8f4078976ef80489cfb Mon Sep 17 00:00:00 2001
From 9522bbb8e713e167581e705dc4f8c4364b05da2d 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 5/5] Use old stride_windows implementation on 32-bit x86
Subject: [PATCH 4/5] Use old stride_windows implementation on 32-bit x86
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
@@ -9,7 +9,7 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
1 file changed, 35 insertions(+), 4 deletions(-)
diff --git a/lib/matplotlib/mlab.py b/lib/matplotlib/mlab.py
index e1f08c0da5..5c0d56c74d 100644
index 8326ac186e..bdaa34b734 100644
--- a/lib/matplotlib/mlab.py
+++ b/lib/matplotlib/mlab.py
@@ -49,6 +49,7 @@ Spectral functions
@@ -80,5 +80,5 @@ index e1f08c0da5..5c0d56c74d 100644
resultY = resultY * window.reshape((-1, 1))
resultY = np.fft.fft(resultY, n=pad_to, axis=0)[:numFreqs, :]
--
2.49.0
2.52.0

View File

@@ -0,0 +1,32 @@
From 5944097c27a6b65168a0287daeb9f7f9b8f9f7f3 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Tue, 12 Nov 2024 01:05:25 -0500
Subject: [PATCH 5/5] Partially revert "TST: Fix minor issues in interactive
backend test (#28838)"
This reverts commit 7c7f94c5f71e99f148255e3bb570fec25c8fe754.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/tests/test_backends_interactive.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/matplotlib/tests/test_backends_interactive.py b/lib/matplotlib/tests/test_backends_interactive.py
index 4e3c1bbc2b..cb8c458d0d 100644
--- a/lib/matplotlib/tests/test_backends_interactive.py
+++ b/lib/matplotlib/tests/test_backends_interactive.py
@@ -232,7 +232,10 @@ def _test_interactive_impl():
result_after = io.BytesIO()
fig.savefig(result_after, format='png')
- assert result.getvalue() == result_after.getvalue()
+ if 'qt' not in backend and 'wx' not in backend and 'gtk4' not in backend:
+ # FIXME: This should be enabled everywhere once Qt5 is fixed on macOS
+ # to not resize incorrectly.
+ assert result.getvalue() == result_after.getvalue()
@pytest.mark.parametrize("env", _get_testable_interactive_backends())
--
2.52.0

View File

@@ -10,8 +10,8 @@
%bcond_without wx
%endif
# the default backend; one of GTK3Agg GTK3Cairo MacOSX Qt4Agg Qt5Agg TkAgg
# WXAgg Agg Cairo PS PDF SVG
# The default backend; one of GTK3Agg GTK3Cairo GTK4Agg GTK4Cairo MacOSX QtAgg
# TkAgg WXAgg Agg Cairo PS PDF SVG
%global backend TkAgg
%if "%{backend}" == "TkAgg"
@@ -32,13 +32,13 @@
%global _docdir_fmt %{name}
# Updated test images for new FreeType.
%global mpl_images_version 3.9.3
%global mpl_images_version 3.10.3
# The version of FreeType in this Fedora branch.
%global ftver 2.13.1
Name: python-matplotlib
Version: 3.9.4
Version: 3.10.8
%global Version %{version_no_tilde %{quote:%nil}}
Release: %autorelease
Summary: Python 2D plotting library
@@ -54,15 +54,16 @@ Source0: %pypi_source matplotlib %{Version}
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
# We don't need to use NumPy 1.25.
Patch1002: 0002-Unpin-NumPy-build-requirement.patch
# Increase tolerances for new FreeType everywhere:
Patch1003: 0003-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patch
Patch1002: 0002-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patch
# We don't need to use older meson-python.
Patch1004: 0004-Unpin-meson-python-build-requirement.patch
Patch1003: 0003-Unpin-meson-python-build-requirement.patch
# https://github.com/matplotlib/matplotlib/pull/21190#issuecomment-1223271888
Patch0001: 0005-Use-old-stride_windows-implementation-on-32-bit-x86.patch
Patch0001: 0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch
# Temporary fix for some tests.
Patch0002: 0005-Partially-revert-TST-Fix-minor-issues-in-interactive.patch
BuildRequires: gcc
BuildRequires: gcc-c++
@@ -70,20 +71,25 @@ BuildRequires: glibc-langpack-en
BuildRequires: freetype-devel
BuildRequires: libpng-devel
BuildRequires: qhull-devel
BuildRequires: xorg-x11-server-Xvfb
%ifnarch %{ix86}
BuildRequires: xwayland-run
%endif
BuildRequires: zlib-devel
%ifnarch %{ix86}
BuildRequires: ghostscript
# No ImageMagick for EL8/ELN/EL9
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} < 8)
BuildRequires: ImageMagick
%endif
BuildRequires: inkscape
%endif
BuildRequires: font(dejavusans)
BuildRequires: font(notosanscjkjp)
BuildRequires: font(wenquanyizenhei)
%ifnarch %{ix86}
BuildRequires: texlive-collection-basic
BuildRequires: texlive-collection-fontsrecommended
BuildRequires: texlive-collection-latex
@@ -132,6 +138,7 @@ BuildRequires: tex(cmr10.tfm)
BuildRequires: tex(cmss10.tfm)
BuildRequires: tex(cmsy10.tfm)
BuildRequires: tex(cmtt10.tfm)
%endif
%description
Matplotlib is a Python 2D plotting library which produces publication
@@ -172,7 +179,9 @@ Obsoletes: python-matplotlib-data-fonts < 3
%package -n python3-matplotlib
Summary: Python 2D plotting library
BuildRequires: python3-devel
%ifnarch %{ix86}
BuildRequires: python3dist(pycairo)
%endif
BuildRequires: python3dist(pytz)
BuildRequires: python3dist(sphinx)
Requires: dejavu-sans-fonts
@@ -180,14 +189,16 @@ Recommends: texlive-dvipng
Requires: (texlive-dvipng if texlive-base)
Requires: python3-matplotlib-data = %{version}-%{release}
Requires: python3dist(pycairo)
Requires: python3-matplotlib-%{?backend_subpackage}%{!?backend_subpackage:tk}%{?_isa} = %{version}-%{release}
Recommends: python3-matplotlib-%{?backend_subpackage}%{!?backend_subpackage:tk}%{?_isa} = %{version}-%{release}
%if %{with check}
BuildRequires: python3dist(pytest)
BuildRequires: python3dist(pytest-rerunfailures)
BuildRequires: python3dist(pytest-timeout)
BuildRequires: python3dist(pytest-xdist)
%ifnarch %{ix86}
BuildRequires: python3dist(pikepdf)
%endif
%endif
%if %{without bundled_fonts}
Requires: stix-math-fonts
%else
@@ -208,7 +219,10 @@ errorcharts, scatterplots, etc, with just a few lines of code.
%package -n python3-matplotlib-qt5
Summary: Qt5 backend for python3-matplotlib
BuildRequires: python3dist(cairocffi)
%ifnarch %{ix86}
BuildRequires: python3dist(pyqt5)
BuildRequires: qt5-qtwayland
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3dist(cairocffi)
Requires: python3dist(pyqt5)
@@ -220,8 +234,11 @@ Obsoletes: python3-matplotlib-qt4 < 3.5.0-0
%package -n python3-matplotlib-qt6
Summary: Qt6 backend for python3-matplotlib
BuildRequires: python3dist(cairocffi)
%ifnarch %{ix86}
BuildRequires: python3dist(pyqt6)
BuildRequires: python3-pyqt6
BuildRequires: qt6-qtwayland
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3dist(cairocffi)
Requires: python3dist(pyqt6)
@@ -231,9 +248,11 @@ Requires: python3dist(pyqt6)
%package -n python3-matplotlib-gtk3
Summary: GTK3 backend for python3-matplotlib
%ifnarch %{ix86}
# This should be converted to typelib(Gtk) when supported
BuildRequires: gtk3
BuildRequires: python3-gobject
%endif
Requires: gtk3%{?_isa}
Requires: python3-gobject%{?_isa}
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
@@ -243,9 +262,11 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%package -n python3-matplotlib-gtk4
Summary: GTK4 backend for python3-matplotlib
%ifnarch %{ix86}
# This should be converted to typelib(Gtk) when supported
BuildRequires: gtk4
BuildRequires: python3-gobject
%endif
Requires: gtk4%{?_isa}
Requires: python3-gobject%{?_isa}
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
@@ -255,8 +276,10 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%package -n python3-matplotlib-tk
Summary: Tk backend for python3-matplotlib
%ifnarch %{ix86}
BuildRequires: python3-pillow-tk
BuildRequires: python3-tkinter
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-pillow-tk
Requires: python3-tkinter
@@ -267,7 +290,9 @@ Requires: python3-tkinter
%if %{with wx}
%package -n python3-matplotlib-wx
Summary: WX backend for python3-matplotlib
%ifnarch %{ix86}
BuildRequires: python3dist(wxpython)
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3dist(wxpython)
@@ -353,12 +378,14 @@ rm -rf %{buildroot}%{_datadir}/matplotlib/mpl-data/fonts
# These files confuse pytest, and we want to test the installed copy.
rm -rf build*/
%ifnarch %{ix86}
# We need to prime this LaTeX cache stuff, or it might fail while running tests
# in parallel.
mktexfmt latex.fmt
mktexfmt lualatex.fmt
mktexfmt pdflatex.fmt
mktexfmt xelatex.fmt
%endif
# Also prime the font cache.
%{py3_test_envvars} %{python3} -c 'import matplotlib.font_manager'
@@ -368,20 +395,26 @@ export http_proxy=http://127.0.0.1/
k="${k-}${k+ and }not test_invisible_Line_rendering"
# This test is flaky.
k="${k-}${k+ and }not test_form_widget_get_with_datetime_and_date_fields"
%ifarch %{ix86}
# This test won't work due to Xvfb not existing.
k="${k-}${k+ and }not test_cross_Qt_imports"
%endif
# This fixes GTK4 which is missing a dependency for its current default renderer.
GSK_RENDERER=cairo \
MPLCONFIGDIR=$PWD \
env MPLCONFIGDIR=$PWD \
%{pytest} -ra -n auto \
-m 'not network' -k "${k-}" \
--pyargs matplotlib mpl_toolkits.axes_grid1 mpl_toolkits.axisartist mpl_toolkits.mplot3d
%ifnarch %{ix86}
xvfb-run -a -s "-screen 0 640x480x24" \
# Skip GTK3Cairo tests that are broken in virtual display.
k="${k-}${k+ and }not (test_interactive_thread_safety and gtk3cairo)"
k="${k-}${k+ and }not (test_interactive_timers and gtk3cairo)"
# Run backend tests with Wayland.
wlheadless-run -- env MPLCONFIGDIR=$PWD GDK_BACKEND=wayland QT_QPA_PLATFORM=wayland \
%{pytest} -vra -n auto \
-m 'not network' -k "${k-}" \
--pyargs matplotlib.tests.test_backend_gtk3 matplotlib.tests.test_backend_qt matplotlib.tests.test_backend_tk matplotlib.tests.test_backends_interactive
# Run backend tests with XWayland.
xwfb-run -- env MPLCONFIGDIR=$PWD \
%{pytest} -ra -n auto \
-m 'not network' -k "${k-}" \
--pyargs matplotlib.tests.test_backend_gtk3 matplotlib.tests.test_backend_qt matplotlib.tests.test_backend_tk matplotlib.tests.test_backends_interactive
%endif
env %{pytest} -ra -n auto \
-m 'not network' -k "${k-}" \
--pyargs matplotlib mpl_toolkits.axes_grid1 mpl_toolkits.axisartist mpl_toolkits.mplot3d
%endif

View File

@@ -1,2 +1,2 @@
SHA512 (matplotlib-3.9.4.tar.gz) = adfa875cba0b030ee0efaf11ed1be881858dc13391c966a2d9485ae2358fccf0b5356e16966a0c9da9f682e4a9d2f3960551756aca30ddc048632346548b1447
SHA512 (matplotlib-3.9.3-with-freetype-2.13.1.tar.gz) = 53cb50ae711ba5ba38d42b7723bbfbd74d022cad6ab91de6c05fb0e971c0b8212ad33359b2ea7ce5a0365cdb1708cd58773bae2e0bf0d4a37696b28206083eed
SHA512 (matplotlib-3.10.8.tar.gz) = 66d07fb0b13821e88f6e6fe9f9882542340c074198dce7d5f8bf5d65d1c64326ae7517ad38d6357491c54aedd8cd1b03f555ad6d9337754db5dbd43c6305ab3f
SHA512 (matplotlib-3.10.3-with-freetype-2.13.1.tar.gz) = bb32e57bbd341c652d03361e3785145a9e89f59709eb588882f81cba4061c8aa7250c0d46ed07a588d75a055d72bbc6126c59e8777634385a458287f6ef8812f