Compare commits

...

30 Commits
f39 ... f43

Author SHA1 Message Date
Elliott Sales de Andrade
ef6d83f8cb Update to latest version (#2402615) 2026-01-06 22:27:59 -05:00
Elliott Sales de Andrade
bf7f2e8c26 Reduce testing dependencies on i686 2025-12-28 05:45:45 -05:00
Elliott Sales de Andrade
4a9aa8cc5f Fix Obsoletes for python3-matplotlib-data (#2400415) 2025-10-01 00:27:32 -04:00
Python Maint
67cfdf16e6 Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 13:43:08 +02:00
Elliott Sales de Andrade
babfa71d28 Update to latest version (#2385842) 2025-08-30 02:28:24 -04:00
Python Maint
fb6bd19e9a Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 14:06:17 +02:00
Elliott Sales de Andrade
3b30af1392 Update to latest version (#2385842) 2025-07-31 21:47:20 -04:00
Fedora Release Engineering
15ef8e9ff8 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 08:46:11 +00:00
Python Maint
7c6d477c42 Rebuilt for Python 3.14 2025-06-03 18:05:44 +02:00
Elliott Sales de Andrade
53105ce245 Backport fix for OffsetBox custom picker
- fixes rhbz#2367456
2025-05-30 22:43:35 -04:00
Elliott Sales de Andrade
9ded60e8c1 Fix data-fonts subpackage arch-ness
[skip changelog]
2025-05-28 05:04:17 -04:00
Elliott Sales de Andrade
2c247d43e1 Remove split data subpackage
This was added to reduce duplicate data between Python 2 and Python 3
packages, but there are no longer any Python 2 packages.
2025-05-28 04:17:27 -04:00
Karolina Surma
72dc76a446 Skip tests failing with Python 3.14 in Copr
[skip changelog]
2025-05-26 14:01:52 +02:00
Miro Hrončok
42d4911499 Python 3.14 support 2025-05-26 14:01:28 +02: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
Elliott Sales de Andrade
b7a53bdd09 Update to latest version 2024-12-13 21:37:22 -05:00
Elliott Sales de Andrade
63d95ef5f2 Update to latest version 2024-12-05 15:32:28 -05:00
Elliott Sales de Andrade
db71fa5183 Read the runtime dependencies from pyproject.toml
By switching to `-p` argument of `pyproject_buildrequires`, we don't
have to build the project twice.
2024-11-30 04:30:37 -05:00
Fedora Release Engineering
5211b69b49 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 13:02:11 +00:00
Elliott Sales de Andrade
ec553ec074 Update to latest version (#2295755) 2024-07-05 04:50:41 -04:00
Python Maint
3d74b361b1 Rebuilt for Python 3.13 2024-06-09 22:43:11 +02:00
Python Maint
e7c8d98b41 Bootstrap for Python 3.13 2024-06-08 20:41:40 +02:00
Karolina Surma
51c7ba15fe Move IPython to html dependencies
It's only required for generating the documentation, see:
https://github.com/matplotlib/matplotlib/blob/v3.9.0/requirements/doc/doc-requirements.txt#L12
2024-05-30 09:34:35 +02:00
Elliott Sales de Andrade
aff8846c80 Update to latest version (#2274216) 2024-05-17 01:06:08 -04:00
12 changed files with 317 additions and 360 deletions

15
.gitignore vendored
View File

@@ -108,3 +108,18 @@ matplotlib-1.0.0-without-gpc.tar.gz
/matplotlib-3.8.3.tar.gz /matplotlib-3.8.3.tar.gz
/matplotlib-3.8.3-with-freetype-2.13.1.tar.gz /matplotlib-3.8.3-with-freetype-2.13.1.tar.gz
/matplotlib-3.8.4.tar.gz /matplotlib-3.8.4.tar.gz
/matplotlib-3.9.0.tar.gz
/matplotlib-3.9.0-with-freetype-2.13.1.tar.gz
/matplotlib-3.9.1.tar.gz
/matplotlib-3.9.1-with-freetype-2.13.1.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
/matplotlib-3.10.8-with-freetype-2.14.1.tar.gz

View File

@@ -1,28 +1,18 @@
From ce0e47a95ec43750080afa889b35ec26106a6a47 Mon Sep 17 00:00:00 2001 From 50c46d80a99b6bdbb61733b0eef69649f22701ab Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com> From: Sandro Tosi <morph@debian.org>
Date: Wed, 27 Sep 2017 19:35:59 -0400 Date: Wed, 27 Sep 2017 19:35:59 -0400
Subject: [PATCH 1/5] matplotlibrc path search fix Subject: [PATCH 1/5] matplotlibrc path search fix
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com> Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
--- ---
lib/matplotlib/__init__.py | 5 ++++- lib/matplotlib/__init__.py | 2 ++
1 file changed, 4 insertions(+), 1 deletion(-) 1 file changed, 2 insertions(+)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 353406832c..26dd9372e1 100644 index 2786f9b7b9..79cccf0892 100644
--- a/lib/matplotlib/__init__.py --- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py
@@ -582,7 +582,8 @@ def get_cachedir(): @@ -613,6 +613,7 @@ def matplotlib_fname():
@_logged_cached('matplotlib data path: %s')
def get_data_path():
"""Return the path to Matplotlib data."""
- return str(Path(__file__).with_name("mpl-data"))
+ return str(Path(__file__).parent.parent.parent.parent.parent /
+ 'share/matplotlib/mpl-data')
def matplotlib_fname():
@@ -602,6 +603,7 @@ def matplotlib_fname():
is not defined) is not defined)
- On other platforms, - On other platforms,
- ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined - ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined
@@ -30,7 +20,7 @@ index 353406832c..26dd9372e1 100644
- Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always - Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always
exist. exist.
""" """
@@ -620,6 +622,7 @@ def matplotlib_fname(): @@ -631,6 +632,7 @@ def matplotlib_fname():
yield matplotlibrc yield matplotlibrc
yield os.path.join(matplotlibrc, 'matplotlibrc') yield os.path.join(matplotlibrc, 'matplotlibrc')
yield os.path.join(get_configdir(), 'matplotlibrc') yield os.path.join(get_configdir(), 'matplotlibrc')
@@ -39,5 +29,5 @@ index 353406832c..26dd9372e1 100644
for fname in gen_candidates(): for fname in gen_candidates():
-- --
2.43.0 2.52.0

View File

@@ -0,0 +1,127 @@
From 4550b06f9de6c23d7b87a34d2bca1c9aaa594a3e 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.14.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..928eb6bd56 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.14.1'
freetype_proj = subproject(
f'freetype-@LOCAL_FREETYPE_VERSION@',
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 79cccf0892..04d716b54c 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1363,7 +1363,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.14.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 05484ecf85b7f9ca67da454a4147098023626a81 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 44f56d8cc1..33ce124527 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,18 +5,7 @@ requires = [
"pybind11>=2.6",
"setuptools>=64",
"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.setuptools_scm]
--
2.43.0

View File

@@ -1,202 +0,0 @@
From 1bbba2045f0722ccd97513037d49f2f656e349df 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>
---
lib/matplotlib/__init__.py | 2 +-
lib/matplotlib/tests/test_axes.py | 4 ++--
lib/matplotlib/tests/test_backend_pgf.py | 2 +-
.../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 ++++-----
setupext.py | 21 +++++++++++++++++--
8 files changed, 36 insertions(+), 19 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 26dd9372e1..81b77d455f 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1307,7 +1307,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 `setupext.py`
- 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 0372747009..9cee2dbd41 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -7642,7 +7642,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],
@@ -7660,7 +7660,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 6703dfe315..ea6a8d9630 100644
--- a/lib/matplotlib/tests/test_constrainedlayout.py
+++ b/lib/matplotlib/tests/test_constrainedlayout.py
@@ -432,7 +432,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():
@@ -638,9 +638,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',
@@ -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 759ac6aada..8140d4d69f 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -516,9 +516,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 9a1c6be6fc..7df88e96b4 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 968f0da7b5..89caa81b98 100644
--- a/lib/matplotlib/tests/test_tightlayout.py
+++ b/lib/matplotlib/tests/test_tightlayout.py
@@ -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.
- ans = [[[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]]]
+ ans = [[[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),
ans[nn])
diff --git a/setupext.py b/setupext.py
index 9f78d88c87..6dc740e8f7 100644
--- a/setupext.py
+++ b/setupext.py
@@ -176,14 +176,30 @@ _freetype_hashes = {
'955e17244e9b38adb0c98df66abb50467312e6bb70eac07e49ce6bd1a20e809a',
'2.10.1':
'3a60d391fd579440561bf0e7f31af2222bc610ad6ce4d9d7bd2165bca8669110',
+ '2.10.2':
+ 'e09aa914e4f7a5d723ac381420949c55c0b90b15744adce5d1406046022186ab',
+ '2.10.3':
+ '9dfb4e11efd6e460a87b1991a64bc69344ee7dc219d9b29e7faabc1c168ce8b0',
+ '2.10.4':
+ '5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac',
+ '2.11.0':
+ 'a45c6b403413abd5706f3582f04c8339d26397c4304b78fa552f2215df64101f',
'2.11.1':
- 'f8db94d307e9c54961b39a1cc799a67d46681480696ed72ecf78d4473770f09b'
+ 'f8db94d307e9c54961b39a1cc799a67d46681480696ed72ecf78d4473770f09b',
+ '2.12.0':
+ '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 the cache path in
# `.circleci/config.yml`. Also update the docs in
# `docs/devel/dependencies.rst`.
-TESTING_VERSION_OF_FREETYPE = '2.6.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
@@ -599,6 +615,7 @@ class FreeType(SetupPackage):
name = ext.name.split('.')[-1]
ext.extra_link_args.append(
f'-Wl,-exported_symbol,_PyInit_{name}')
+ ext.libraries.append('brotlidec')
def do_custom_build(self, env):
# We're using a system freetype
--
2.43.0

View File

@@ -0,0 +1,38 @@
From ff0a79b707eb6603c0cb0bd3778c3c88fbacfac8 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 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.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
pyproject.toml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 23c441b52c..f762c85d98 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -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",
"pybind11>=2.13.2,!=2.13.3",
"setuptools_scm>=7",
# 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.13.2,!=2.13.3",
"setuptools_scm>=7",
]
--
2.52.0

View File

@@ -1,4 +1,4 @@
From 59c900f49d605c1300c4bdaef23c94ad32a07e29 Mon Sep 17 00:00:00 2001 From abf5f01b8fa262c71f7ccdf189c608f189028a44 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com> From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Mon, 22 Aug 2022 18:43:28 -0400 Date: Mon, 22 Aug 2022 18:43:28 -0400
Subject: [PATCH 4/5] Use old stride_windows implementation on 32-bit x86 Subject: [PATCH 4/5] Use old stride_windows implementation on 32-bit x86
@@ -9,7 +9,7 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
1 file changed, 35 insertions(+), 4 deletions(-) 1 file changed, 35 insertions(+), 4 deletions(-)
diff --git a/lib/matplotlib/mlab.py b/lib/matplotlib/mlab.py diff --git a/lib/matplotlib/mlab.py b/lib/matplotlib/mlab.py
index 1948e6333e..158417a1c0 100644 index 8326ac186e..bdaa34b734 100644
--- a/lib/matplotlib/mlab.py --- a/lib/matplotlib/mlab.py
+++ b/lib/matplotlib/mlab.py +++ b/lib/matplotlib/mlab.py
@@ -49,6 +49,7 @@ Spectral functions @@ -49,6 +49,7 @@ Spectral functions
@@ -80,5 +80,5 @@ index 1948e6333e..158417a1c0 100644
resultY = resultY * window.reshape((-1, 1)) resultY = resultY * window.reshape((-1, 1))
resultY = np.fft.fft(resultY, n=pad_to, axis=0)[:numFreqs, :] resultY = np.fft.fft(resultY, n=pad_to, axis=0)[:numFreqs, :]
-- --
2.43.0 2.52.0

View File

@@ -0,0 +1,32 @@
From 7a5bbfe3bd5905a7daefac690ebdfd7403c8ef7a 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..903ae87cbb 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:
+ # 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

@@ -1,26 +0,0 @@
From f6edb2b275f8fb4daa047df0b12008eac53306f0 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Fri, 11 Aug 2023 05:13:38 -0400
Subject: [PATCH 5/5] TST: Increase some tolerances for non-x86 arches
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/mpl_toolkits/mplot3d/tests/test_axes3d.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py
index b3fcffcc6e..f400312859 100644
--- a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py
+++ b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py
@@ -2264,7 +2264,7 @@ def test_scatter_masked_color():
len(super(type(path3d), path3d).get_facecolors())
-@mpl3d_image_comparison(['surface3d_zsort_inf.png'], style='mpl20')
+@mpl3d_image_comparison(['surface3d_zsort_inf.png'], style='mpl20', tol=0.055)
def test_surface3d_zsort_inf():
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
--
2.43.0

View File

@@ -1,8 +0,0 @@
[libs]
system_freetype = True
system_qhull = True
[packages]
tests = True
toolkits = True
toolkits_tests = True

View File

@@ -10,8 +10,8 @@
%bcond_without wx %bcond_without wx
%endif %endif
# the default backend; one of GTK3Agg GTK3Cairo MacOSX Qt4Agg Qt5Agg TkAgg # The default backend; one of GTK3Agg GTK3Cairo GTK4Agg GTK4Cairo MacOSX QtAgg
# WXAgg Agg Cairo PS PDF SVG # TkAgg WXAgg Agg Cairo PS PDF SVG
%global backend TkAgg %global backend TkAgg
%if "%{backend}" == "TkAgg" %if "%{backend}" == "TkAgg"
@@ -26,17 +26,19 @@
% endif % endif
%endif %endif
%global build_backend_args -Csetup-args="-Dsystem-freetype=true" -Csetup-args="-Dsystem-qhull=true" -Cinstall-args="--tags=data,python-runtime,runtime,tests"
# Use the same directory of the main package for subpackage licence and docs # Use the same directory of the main package for subpackage licence and docs
%global _docdir_fmt %{name} %global _docdir_fmt %{name}
# Updated test images for new FreeType. # Updated test images for new FreeType.
%global mpl_images_version 3.8.3 %global mpl_images_version 3.10.8
# The version of FreeType in this Fedora branch. # The version of FreeType in this Fedora branch.
%global ftver 2.13.1 %global ftver 2.14.1
Name: python-matplotlib Name: python-matplotlib
Version: 3.8.4 Version: 3.10.8
%global Version %{version_no_tilde %{quote:%nil}} %global Version %{version_no_tilde %{quote:%nil}}
Release: %autorelease Release: %autorelease
Summary: Python 2D plotting library Summary: Python 2D plotting library
@@ -45,7 +47,6 @@ Summary: Python 2D plotting library
License: PSF-2.0 AND MIT AND CC0-1.0 License: PSF-2.0 AND MIT AND CC0-1.0
URL: https://matplotlib.org URL: https://matplotlib.org
Source0: %pypi_source matplotlib %{Version} Source0: %pypi_source matplotlib %{Version}
Source1: mplsetup.cfg
# Fedora-specific patches; see: # Fedora-specific patches; see:
# https://github.com/fedora-python/matplotlib/tree/fedora-patches # https://github.com/fedora-python/matplotlib/tree/fedora-patches
@@ -53,15 +54,16 @@ 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 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: # Search in /etc/matplotlibrc:
Patch1001: 0001-matplotlibrc-path-search-fix.patch 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: # 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.
Patch1003: 0003-Unpin-meson-python-build-requirement.patch
# https://github.com/matplotlib/matplotlib/pull/21190#issuecomment-1223271888 # https://github.com/matplotlib/matplotlib/pull/21190#issuecomment-1223271888
Patch0001: 0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch Patch0001: 0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch
# https://github.com/matplotlib/matplotlib/pull/26502
Patch0002: 0005-TST-Increase-some-tolerances-for-non-x86-arches.patch # Temporary fix for some tests.
Patch0002: 0005-Partially-revert-TST-Fix-minor-issues-in-interactive.patch
BuildRequires: gcc BuildRequires: gcc
BuildRequires: gcc-c++ BuildRequires: gcc-c++
@@ -69,20 +71,25 @@ BuildRequires: glibc-langpack-en
BuildRequires: freetype-devel BuildRequires: freetype-devel
BuildRequires: libpng-devel BuildRequires: libpng-devel
BuildRequires: qhull-devel BuildRequires: qhull-devel
BuildRequires: xorg-x11-server-Xvfb %ifnarch %{ix86}
BuildRequires: xwayland-run
%endif
BuildRequires: zlib-devel BuildRequires: zlib-devel
%ifnarch %{ix86}
BuildRequires: ghostscript BuildRequires: ghostscript
# No ImageMagick for EL8/ELN/EL9 # No ImageMagick for EL8/ELN/EL9
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} < 8) %if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} < 8)
BuildRequires: ImageMagick BuildRequires: ImageMagick
%endif %endif
BuildRequires: inkscape BuildRequires: inkscape
%endif
BuildRequires: font(dejavusans) BuildRequires: font(dejavusans)
BuildRequires: font(notosanscjkjp) BuildRequires: font(notosanscjkjp)
BuildRequires: font(wenquanyizenhei) BuildRequires: font(wenquanyizenhei)
%ifnarch %{ix86}
BuildRequires: texlive-collection-basic BuildRequires: texlive-collection-basic
BuildRequires: texlive-collection-fontsrecommended BuildRequires: texlive-collection-fontsrecommended
BuildRequires: texlive-collection-latex BuildRequires: texlive-collection-latex
@@ -131,6 +138,7 @@ BuildRequires: tex(cmr10.tfm)
BuildRequires: tex(cmss10.tfm) BuildRequires: tex(cmss10.tfm)
BuildRequires: tex(cmsy10.tfm) BuildRequires: tex(cmsy10.tfm)
BuildRequires: tex(cmtt10.tfm) BuildRequires: tex(cmtt10.tfm)
%endif
%description %description
Matplotlib is a Python 2D plotting library which produces publication Matplotlib is a Python 2D plotting library which produces publication
@@ -143,25 +151,17 @@ Matplotlib tries to make easy things easy and hard things possible.
You can generate plots, histograms, power spectra, bar charts, You can generate plots, histograms, power spectra, bar charts,
errorcharts, scatterplots, etc, with just a few lines of code. 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}
Requires: python3-matplotlib-data-fonts = %{version}-%{release}
%endif
Obsoletes: python-matplotlib-data < 3
%description -n python3-matplotlib-data
%{summary}
%if %{with bundled_fonts} %if %{with bundled_fonts}
%package -n python3-matplotlib-data-fonts %package -n python3-matplotlib-data-fonts
Summary: Fonts used by python-matplotlib Summary: Fonts used by python-matplotlib
# Carlogo, STIX and Computer Modern is OFL # Carlogo, STIX and Computer Modern is OFL
# DejaVu is Bitstream Vera and Public Domain # DejaVu is Bitstream Vera and Public Domain
License: OFL-1.1 and Bitstream-Vera and LicenseRef-Fedora-Public-Domain License: OFL-1.1 AND Bitstream-Vera AND LicenseRef-Fedora-Public-Domain
BuildArch: noarch %if %{without bundled_fonts}
Requires: python3-matplotlib-data = %{version}-%{release} Requires: stix-math-fonts
%else
Provides: bundled(stix-math-fonts)
%endif
Obsoletes: python-matplotlib-data-fonts < 3 Obsoletes: python-matplotlib-data-fonts < 3
%description -n python3-matplotlib-data-fonts %description -n python3-matplotlib-data-fonts
@@ -171,27 +171,30 @@ Obsoletes: python-matplotlib-data-fonts < 3
%package -n python3-matplotlib %package -n python3-matplotlib
Summary: Python 2D plotting library Summary: Python 2D plotting library
BuildRequires: python3-devel BuildRequires: python3-devel
%ifnarch %{ix86}
BuildRequires: python3dist(pycairo) BuildRequires: python3dist(pycairo)
%endif
BuildRequires: python3dist(pytz) BuildRequires: python3dist(pytz)
BuildRequires: python3dist(sphinx) BuildRequires: python3dist(sphinx)
Requires: dejavu-sans-fonts Requires: dejavu-sans-fonts
Recommends: texlive-dvipng Recommends: texlive-dvipng
Requires: (texlive-dvipng if texlive-base) Requires: (texlive-dvipng if texlive-base)
Requires: python3-matplotlib-data = %{version}-%{release} Requires: python3-matplotlib-data-fonts = %{version}-%{release}
Requires: python3dist(pycairo) 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} %if %{with check}
BuildRequires: python3dist(pytest) BuildRequires: python3dist(pytest)
BuildRequires: python3dist(pytest-rerunfailures) BuildRequires: python3dist(pytest-rerunfailures)
BuildRequires: python3dist(pytest-timeout) BuildRequires: python3dist(pytest-timeout)
BuildRequires: python3dist(pytest-xdist) BuildRequires: python3dist(pytest-xdist)
%ifnarch %{ix86}
BuildRequires: python3dist(pikepdf) BuildRequires: python3dist(pikepdf)
%endif %endif
%if %{without bundled_fonts}
Requires: stix-math-fonts
%else
Provides: bundled(stix-math-fonts)
%endif %endif
# Remove in F45.
Provides: python3-matplotlib-data = %{version}-%{release}
Obsoletes: python3-matplotlib-data < 3.11~~~
Obsoletes: python-matplotlib-data < 3
%description -n python3-matplotlib %description -n python3-matplotlib
Matplotlib is a Python 2D plotting library which produces publication Matplotlib is a Python 2D plotting library which produces publication
@@ -207,7 +210,10 @@ errorcharts, scatterplots, etc, with just a few lines of code.
%package -n python3-matplotlib-qt5 %package -n python3-matplotlib-qt5
Summary: Qt5 backend for python3-matplotlib Summary: Qt5 backend for python3-matplotlib
BuildRequires: python3dist(cairocffi) BuildRequires: python3dist(cairocffi)
%ifnarch %{ix86}
BuildRequires: python3dist(pyqt5) BuildRequires: python3dist(pyqt5)
BuildRequires: qt5-qtwayland
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3dist(cairocffi) Requires: python3dist(cairocffi)
Requires: python3dist(pyqt5) Requires: python3dist(pyqt5)
@@ -219,7 +225,11 @@ Obsoletes: python3-matplotlib-qt4 < 3.5.0-0
%package -n python3-matplotlib-qt6 %package -n python3-matplotlib-qt6
Summary: Qt6 backend for python3-matplotlib Summary: Qt6 backend for python3-matplotlib
BuildRequires: python3dist(cairocffi) BuildRequires: python3dist(cairocffi)
%ifnarch %{ix86}
BuildRequires: python3dist(pyqt6) BuildRequires: python3dist(pyqt6)
BuildRequires: python3-pyqt6
BuildRequires: qt6-qtwayland
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3dist(cairocffi) Requires: python3dist(cairocffi)
Requires: python3dist(pyqt6) Requires: python3dist(pyqt6)
@@ -229,9 +239,15 @@ Requires: python3dist(pyqt6)
%package -n python3-matplotlib-gtk3 %package -n python3-matplotlib-gtk3
Summary: GTK3 backend for python3-matplotlib Summary: GTK3 backend for python3-matplotlib
%ifnarch %{ix86}
# For Cairo and xlib typelib files.
BuildRequires: gobject-introspection
# This should be converted to typelib(Gtk) when supported # This should be converted to typelib(Gtk) when supported
BuildRequires: gtk3 BuildRequires: gtk3
BuildRequires: python3-gobject BuildRequires: python3-gobject
%endif
# For Cairo and xlib typelib files.
Requires: gobject-introspection
Requires: gtk3%{?_isa} Requires: gtk3%{?_isa}
Requires: python3-gobject%{?_isa} Requires: python3-gobject%{?_isa}
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
@@ -241,9 +257,15 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%package -n python3-matplotlib-gtk4 %package -n python3-matplotlib-gtk4
Summary: GTK4 backend for python3-matplotlib Summary: GTK4 backend for python3-matplotlib
%ifnarch %{ix86}
# For Cairo and xlib typelib files.
BuildRequires: gobject-introspection
# This should be converted to typelib(Gtk) when supported # This should be converted to typelib(Gtk) when supported
BuildRequires: gtk4 BuildRequires: gtk4
BuildRequires: python3-gobject BuildRequires: python3-gobject
%endif
# For Cairo and xlib typelib files.
Requires: gobject-introspection
Requires: gtk4%{?_isa} Requires: gtk4%{?_isa}
Requires: python3-gobject%{?_isa} Requires: python3-gobject%{?_isa}
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
@@ -253,8 +275,10 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%package -n python3-matplotlib-tk %package -n python3-matplotlib-tk
Summary: Tk backend for python3-matplotlib Summary: Tk backend for python3-matplotlib
%ifnarch %{ix86}
BuildRequires: python3-pillow-tk BuildRequires: python3-pillow-tk
BuildRequires: python3-tkinter BuildRequires: python3-tkinter
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-pillow-tk Requires: python3-pillow-tk
Requires: python3-tkinter Requires: python3-tkinter
@@ -265,7 +289,9 @@ Requires: python3-tkinter
%if %{with wx} %if %{with wx}
%package -n python3-matplotlib-wx %package -n python3-matplotlib-wx
Summary: WX backend for python3-matplotlib Summary: WX backend for python3-matplotlib
%ifnarch %{ix86}
BuildRequires: python3dist(wxpython) BuildRequires: python3dist(wxpython)
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3dist(wxpython) Requires: python3dist(wxpython)
@@ -281,6 +307,7 @@ BuildRequires: make
BuildRequires: python3dist(sphinx) BuildRequires: python3dist(sphinx)
BuildRequires: tex(latex) BuildRequires: tex(latex)
BuildRequires: tex-preview BuildRequires: tex-preview
BuildRequires: ipython
%endif %endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
@@ -303,22 +330,19 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
# Updated test images for new FreeType. # Updated test images for new FreeType.
gzip -dc %SOURCE1000 | tar xf - --transform='s~^mpl-images-%{mpl_images_version}-with-freetype-%{ftver}/~~' 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
# Backports or reported upstream # Backports or reported upstream
%autopatch -p1 -M 999 %autopatch -p1 -M 999
%generate_buildrequires %generate_buildrequires
%pyproject_buildrequires -r %pyproject_buildrequires -p
%build %build
%set_build_flags %set_build_flags
export http_proxy=http://127.0.0.1/ export http_proxy=http://127.0.0.1/
MPLCONFIGDIR=$PWD %pyproject_wheel MPLCONFIGDIR=$PWD %pyproject_wheel %build_backend_args
%if %{with html} %if %{with html}
# Need to make built matplotlib libs available for the sphinx extensions: # Need to make built matplotlib libs available for the sphinx extensions:
MPLCONFIGDIR=$PWD \ MPLCONFIGDIR=$PWD \
@@ -336,16 +360,12 @@ export http_proxy=http://127.0.0.1/
MPLCONFIGDIR=$PWD %pyproject_install MPLCONFIGDIR=$PWD %pyproject_install
# Delete unnecessary files. # Delete unnecessary files.
rm %{buildroot}%{python3_sitearch}/matplotlib/backends/web_backend/.{eslintrc.js,prettierignore,prettierrc}
rm %{buildroot}%{python3_sitearch}/matplotlib/tests/tinypages/.gitignore rm %{buildroot}%{python3_sitearch}/matplotlib/tests/tinypages/.gitignore
rm %{buildroot}%{python3_sitearch}/matplotlib/tests/tinypages/_static/.gitignore rm %{buildroot}%{python3_sitearch}/matplotlib/tests/tinypages/_static/.gitignore
# Move files to Fedora-specific locations. # Move files to Fedora-specific locations.
mkdir -p %{buildroot}%{_sysconfdir} %{buildroot}%{_datadir}/matplotlib
mv %{buildroot}%{python3_sitearch}/matplotlib/mpl-data \
%{buildroot}%{_datadir}/matplotlib
%if %{without bundled_fonts} %if %{without bundled_fonts}
rm -rf %{buildroot}%{_datadir}/matplotlib/mpl-data/fonts rm -rf %{buildroot}%{python3_sitearch}/matplotlib/mpl-data/fonts
%endif %endif
@@ -354,40 +374,52 @@ rm -rf %{buildroot}%{_datadir}/matplotlib/mpl-data/fonts
# These files confuse pytest, and we want to test the installed copy. # These files confuse pytest, and we want to test the installed copy.
rm -rf build*/ rm -rf build*/
%ifnarch %{ix86}
# We need to prime this LaTeX cache stuff, or it might fail while running tests # We need to prime this LaTeX cache stuff, or it might fail while running tests
# in parallel. # in parallel.
mktexfmt latex.fmt mktexfmt latex.fmt
mktexfmt lualatex.fmt mktexfmt lualatex.fmt
mktexfmt pdflatex.fmt mktexfmt pdflatex.fmt
mktexfmt xelatex.fmt mktexfmt xelatex.fmt
%endif
# Also prime the font cache. # Also prime the font cache.
%{py3_test_envvars} %{python3} -c 'import matplotlib.font_manager' %{py3_test_envvars} %{python3} -c 'import matplotlib.font_manager'
export http_proxy=http://127.0.0.1/ export http_proxy=http://127.0.0.1/
# Skips:
# * test_invisible_Line_rendering: Checks for "slowness" that often fails on a # This test checks for "slowness" that often fails on a heavily-loaded builder.
# heavily-loaded builder. k="${k-}${k+ and }not test_invisible_Line_rendering"
# * test_form_widget_get_with_datetime_and_date_fields is flaky. # This test is flaky.
MPLCONFIGDIR=$PWD \ k="${k-}${k+ and }not test_form_widget_get_with_datetime_and_date_fields"
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} %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)"
# These two segfault, resp. timeout in Python 3.14 Copr test environment
k="${k-}${k+ and }not test_interactive_thread_safety"
k="${k-}${k+ and }not test_figuremanager_cleans_own_mainloop"
# 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 %endif
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.axes_grid1 mpl_toolkits.axisartist mpl_toolkits.mplot3d
%endif %endif
%files -n python3-matplotlib-data
%{_datadir}/matplotlib/mpl-data/
%if %{with bundled_fonts}
%exclude %{_datadir}/matplotlib/mpl-data/fonts/
%endif
%if %{with bundled_fonts}
%files -n python3-matplotlib-data-fonts %files -n python3-matplotlib-data-fonts
%{_datadir}/matplotlib/mpl-data/fonts/ %if %{with bundled_fonts}
%{python3_sitearch}/matplotlib/mpl-data/fonts/
%endif %endif
%files -n python3-matplotlib-doc %files -n python3-matplotlib-doc

View File

@@ -1,2 +1,2 @@
SHA512 (matplotlib-3.8.4.tar.gz) = d4c6a5b3484927dbae1b1203e9984b67d08c958c4a5136abaa805f1eb221146fb1211e5f20456e281d41fc09c94917a796ffacfdb185c58eeeb6d19e60c78b1a SHA512 (matplotlib-3.10.8.tar.gz) = 66d07fb0b13821e88f6e6fe9f9882542340c074198dce7d5f8bf5d65d1c64326ae7517ad38d6357491c54aedd8cd1b03f555ad6d9337754db5dbd43c6305ab3f
SHA512 (matplotlib-3.8.3-with-freetype-2.13.1.tar.gz) = 72b207fac6539cf9e64706cbd61be4bf2349be8d5f66083db1f014cdbdf049c48f2ce17a67ac0e646f668818cff6ffa9053fc31f2c2f4bc3f8e9f70272146d8f SHA512 (matplotlib-3.10.8-with-freetype-2.14.1.tar.gz) = 03f5b406caced1e2a59f914a64808b146954ce2285551cb2314664f883a05cbc93a92a28f5c259817a77e048012542d09a0180a230591e40ccef297f477a1e5b