Update to latest version (#2385842)

This commit is contained in:
Elliott Sales de Andrade
2025-07-31 21:47:20 -04:00
parent 15ef8e9ff8
commit 3b30af1392
10 changed files with 28 additions and 160 deletions
+1
View File
@@ -119,3 +119,4 @@ matplotlib-1.0.0-without-gpc.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
+7 -7
View File
@@ -1,18 +1,18 @@
From 37007fd04ff67cf7c766aa6cd4fa9e564841cb17 Mon Sep 17 00:00:00 2001
From fde17e6359d32d90abcebc39a464c3f559a3fbca 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/5] matplotlibrc path search fix
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/__init__.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
lib/matplotlib/__init__.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 5f964e0b34..f82d92466a 100644
index 2786f9b7b9..79cccf0892 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -610,6 +610,7 @@ def matplotlib_fname():
@@ -613,6 +613,7 @@ def matplotlib_fname():
is not defined)
- On other platforms,
- ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined
@@ -20,7 +20,7 @@ index 5f964e0b34..f82d92466a 100644
- Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always
exist.
"""
@@ -628,6 +629,7 @@ def matplotlib_fname():
@@ -631,6 +632,7 @@ def matplotlib_fname():
yield matplotlibrc
yield os.path.join(matplotlibrc, 'matplotlibrc')
yield os.path.join(get_configdir(), 'matplotlibrc')
@@ -29,5 +29,5 @@ index 5f964e0b34..f82d92466a 100644
for fname in gen_candidates():
--
2.49.0
2.50.0
@@ -1,4 +1,4 @@
From 944d5021f46735045a69af1e57ff0bb0c43e7fbb Mon Sep 17 00:00:00 2001
From 77bca4cb9812bb6d3abf4ad727c98e81b2952a15 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
@@ -28,10 +28,10 @@ index 5463183a90..c7233815af 100644
freetype_proj = subproject(
f'freetype-@LOCAL_FREETYPE_VERSION@',
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index f82d92466a..c0551b5b5f 100644
index 79cccf0892..3b81bf54bc 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1361,7 +1361,7 @@ def _val_or_rc(val, rc_name):
@@ -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`.
@@ -41,10 +41,10 @@ index f82d92466a..c0551b5b5f 100644
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 e3fc1ada99..28870ea736 100644
index 159fc70282..b304186fc9 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -8065,7 +8065,7 @@ def test_normal_axes():
@@ -8084,7 +8084,7 @@ def test_normal_axes():
]
for nn, b in enumerate(bbaxis):
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
@@ -53,7 +53,7 @@ index e3fc1ada99..28870ea736 100644
target = [
[150.0, 119.999, 930.0, 11.111],
@@ -8083,7 +8083,7 @@ def test_normal_axes():
@@ -8102,7 +8102,7 @@ def test_normal_axes():
target = [85.5138, 75.88888, 1021.11, 1017.11]
targetbb = mtransforms.Bbox.from_bounds(*target)
@@ -94,10 +94,10 @@ index 6ba23bab34..0aee3222f1 100644
])
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 5e69044866..0b6413e97f 100644
index eb3bfca7c2..c01be3aec0 100644
--- a/lib/matplotlib/tests/test_legend.py
+++ b/lib/matplotlib/tests/test_legend.py
@@ -508,9 +508,9 @@ def test_figure_legend_outside():
@@ -520,9 +520,9 @@ def test_figure_legend_outside():
fig.draw_without_rendering()
assert_allclose(axs.get_window_extent().extents,
@@ -110,7 +110,7 @@ index 5e69044866..0b6413e97f 100644
@image_comparison(['legend_stackplot.png'],
diff --git a/lib/matplotlib/tests/test_polar.py b/lib/matplotlib/tests/test_polar.py
index 87c8efe304..af5f2d2c6a 100644
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():
@@ -123,5 +123,5 @@ index 87c8efe304..af5f2d2c6a 100644
@check_figures_equal(extensions=["png"])
--
2.49.0
2.50.0
@@ -1,4 +1,4 @@
From 814405dd99896a362bdd18b42e591d6594e59dcf Mon Sep 17 00:00:00 2001
From 825d864d5210f5a67554b0e0c874ab997cd74676 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
@@ -12,7 +12,7 @@ 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 e6d1abaf53..76755eec25 100644
index 5666016f05..2cd1e1c758 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -47,7 +47,7 @@ requires-python = ">=3.10"
@@ -34,5 +34,5 @@ index e6d1abaf53..76755eec25 100644
"setuptools_scm>=7",
]
--
2.49.0
2.50.0
@@ -1,4 +1,4 @@
From 97f398b19278f450ffdcecf8443489ec981321a4 Mon Sep 17 00:00:00 2001
From a91551b8de91535eef12752f95dfcb97aea8aed5 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/5] Use old stride_windows implementation on 32-bit x86
@@ -80,5 +80,5 @@ index 8326ac186e..bdaa34b734 100644
resultY = resultY * window.reshape((-1, 1))
resultY = np.fft.fft(resultY, n=pad_to, axis=0)[:numFreqs, :]
--
2.49.0
2.50.0
@@ -1,4 +1,4 @@
From 236b1b8164088b2b9ac85b5d83e9d6cf41269935 Mon Sep 17 00:00:00 2001
From ba6139686ff3c884aa2e6a5397c1f2f2cc951346 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
@@ -12,7 +12,7 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
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 063c72e2cd..5dd53440f7 100644
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():
@@ -28,5 +28,5 @@ index 063c72e2cd..5dd53440f7 100644
@pytest.mark.parametrize("env", _get_testable_interactive_backends())
--
2.49.0
2.50.0
-43
View File
@@ -1,43 +0,0 @@
From 4b8e2a011804f44233e6973697c31a97075e78d4 Mon Sep 17 00:00:00 2001
From: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com>
Date: Sat, 24 May 2025 02:01:41 +0200
Subject: [PATCH] Backport PR #30096: Fix OffsetBox custom picker
---
lib/matplotlib/offsetbox.py | 4 +++-
lib/matplotlib/tests/test_offsetbox.py | 10 ++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/lib/matplotlib/offsetbox.py b/lib/matplotlib/offsetbox.py
index e987e969871a..f3b9bb7d5d2f 100644
--- a/lib/matplotlib/offsetbox.py
+++ b/lib/matplotlib/offsetbox.py
@@ -1506,7 +1506,9 @@ def __init__(self, ref_artist, use_blit=False):
@staticmethod
def _picker(artist, mouseevent):
# A custom picker to prevent dragging on mouse scroll events
- return (artist.contains(mouseevent) and mouseevent.name != "scroll_event"), {}
+ if mouseevent.name == "scroll_event":
+ return False, {}
+ return artist.contains(mouseevent)
# A property, not an attribute, to maintain picklability.
canvas = property(lambda self: self.ref_artist.get_figure(root=True).canvas)
diff --git a/lib/matplotlib/tests/test_offsetbox.py b/lib/matplotlib/tests/test_offsetbox.py
index b23a8da7dc05..57add85b110a 100644
--- a/lib/matplotlib/tests/test_offsetbox.py
+++ b/lib/matplotlib/tests/test_offsetbox.py
@@ -460,3 +460,13 @@ def test_draggable_in_subfigure():
fig.canvas.draw() # Texts are non-pickable until the first draw.
MouseEvent("button_press_event", fig.canvas, 1, 1)._process()
assert ann._draggable.got_artist
+ # Stop dragging the annotation.
+ MouseEvent("button_release_event", fig.canvas, 1, 1)._process()
+ assert not ann._draggable.got_artist
+ # A scroll event should not initiate a drag.
+ MouseEvent("scroll_event", fig.canvas, 1, 1)._process()
+ assert not ann._draggable.got_artist
+ # An event outside the annotation should not initiate a drag.
+ bbox = ann.get_window_extent()
+ MouseEvent("button_press_event", fig.canvas, bbox.x1+2, bbox.y1+2)._process()
+ assert not ann._draggable.got_artist
+1 -7
View File
@@ -38,7 +38,7 @@
%global ftver 2.13.1
Name: python-matplotlib
Version: 3.10.3
Version: 3.10.5
%global Version %{version_no_tilde %{quote:%nil}}
Release: %autorelease
Summary: Python 2D plotting library
@@ -65,12 +65,6 @@ 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
# https://github.com/matplotlib/matplotlib/pull/29393
Patch0004: python3.14.patch
# https://github.com/matplotlib/matplotlib/pull/30096
Patch0005: https://github.com/matplotlib/matplotlib/pull/30101.patch
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: glibc-langpack-en
-84
View File
@@ -1,84 +0,0 @@
From caf65e3e55bbf7d60712beb9053ee51a134608b0 Mon Sep 17 00:00:00 2001
From: Thomas A Caswell <tcaswell@gmail.com>
Date: Tue, 31 Dec 2024 15:08:31 -0500
Subject: [PATCH] MNT: use copy.deepcopy to implement deepcopy method
We provide deepcopy and copy methods as a shortcut for users to avoid having to
import the copy module and call the required function. Directly calling
`__deepcopy__` side-steps all of the memoization machinery and may lead to
incorrect results.
---
lib/matplotlib/path.py | 20 ++++++++++++++++++--
lib/matplotlib/transforms.py | 8 +++++++-
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/lib/matplotlib/path.py b/lib/matplotlib/path.py
index 5f5a0f3..eac8cbd 100644
--- a/lib/matplotlib/path.py
+++ b/lib/matplotlib/path.py
@@ -11,6 +11,7 @@ visualisation.
import copy
from functools import lru_cache
+import sys
from weakref import WeakValueDictionary
import numpy as np
@@ -282,11 +283,26 @@ class Path:
readonly, even if the source `Path` is.
"""
# Deepcopying arrays (vertices, codes) strips the writeable=False flag.
- p = copy.deepcopy(super(), memo)
+ if sys.version_info >= (3, 14):
+ from copy import _reconstruct, _keep_alive
+ rv = super().__reduce_ex__(4)
+ assert memo is not None
+ p = _reconstruct(self, memo, *rv)
+ if memo is not None:
+ memo[id(self)] = p
+ _keep_alive(self, memo)
+
+ else:
+ p = copy.deepcopy(super(), memo)
p._readonly = False
return p
- deepcopy = __deepcopy__
+ def deepcopy(self, memo=None):
+ """
+ Return a shallow copy of the `Path`, which will share the
+ vertices and codes with the source `Path`.
+ """
+ return copy.deepcopy(self, memo=memo)
@classmethod
def make_compound_path_from_polys(cls, XY):
diff --git a/lib/matplotlib/transforms.py b/lib/matplotlib/transforms.py
index 2934b0a..74d3c68 100644
--- a/lib/matplotlib/transforms.py
+++ b/lib/matplotlib/transforms.py
@@ -38,6 +38,7 @@ of how to use transforms.
import copy
import functools
import itertools
+import sys
import textwrap
import weakref
import math
@@ -141,7 +142,12 @@ class TransformNode:
for k, v in self._parents.items() if v is not None}
def __copy__(self):
- other = copy.copy(super())
+ if sys.version_info >= (3, 14):
+ from copy import _reconstruct
+ rv = super().__reduce_ex__(4)
+ other = _reconstruct(self, None, *rv)
+ else:
+ other = copy.copy(super())
# If `c = a + b; a1 = copy(a)`, then modifications to `a1` do not
# propagate back to `c`, i.e. we need to clear the parents of `a1`.
other._parents = {}
--
2.48.1
+1 -1
View File
@@ -1,2 +1,2 @@
SHA512 (matplotlib-3.10.3.tar.gz) = c3027fa116f45a4a7d7ac8e7ce87f509a6604b283c39b74379e8d84a05df61283ddf4e79036c9b83b2dff13291b59945d26aeb7420873d3b275097817a12be72
SHA512 (matplotlib-3.10.5.tar.gz) = 761388d0aad410b80179b3bb97d63b6a99d71338a0eb8801702f4a38f4a1a0fdecd8fbb6401e664d2f30a0256f412167c7c102fc494664c1837495572ebf3caa
SHA512 (matplotlib-3.10.3-with-freetype-2.13.1.tar.gz) = bb32e57bbd341c652d03361e3785145a9e89f59709eb588882f81cba4061c8aa7250c0d46ed07a588d75a055d72bbc6126c59e8777634385a458287f6ef8812f