diff --git a/bpo-45167-fixes.patch b/bpo-45167-fixes.patch new file mode 100644 index 0000000..fdd8932 --- /dev/null +++ b/bpo-45167-fixes.patch @@ -0,0 +1,59 @@ +From 8871c7285fc097fd1bf713aa184cba7e2804f625 Mon Sep 17 00:00:00 2001 +From: Bas van Beek +Date: Wed, 10 Nov 2021 15:36:00 +0100 +Subject: [PATCH] MAINT: Do not forward `__(deep)copy__` calls of + `_GenericAlias` to the wrapped type + +Adapt to the python 3.9.8 changes made in bpo-45167. +--- + numpy/typing/_generic_alias.py | 2 ++ + numpy/typing/tests/test_generic_alias.py | 16 ++++++++++++++++ + 2 files changed, 18 insertions(+) + +diff --git a/numpy/typing/_generic_alias.py b/numpy/typing/_generic_alias.py +index 932f12dd05d..1eb2c8c05f0 100644 +--- a/numpy/typing/_generic_alias.py ++++ b/numpy/typing/_generic_alias.py +@@ -185,6 +185,8 @@ def __eq__(self, value: object) -> bool: + "__mro_entries__", + "__reduce__", + "__reduce_ex__", ++ "__copy__", ++ "__deepcopy__", + }) + + def __getattribute__(self, name: str) -> Any: +diff --git a/numpy/typing/tests/test_generic_alias.py b/numpy/typing/tests/test_generic_alias.py +index 3021d985934..39343420bdc 100644 +--- a/numpy/typing/tests/test_generic_alias.py ++++ b/numpy/typing/tests/test_generic_alias.py +@@ -1,6 +1,7 @@ + from __future__ import annotations + + import sys ++import copy + import types + import pickle + import weakref +@@ -80,6 +81,21 @@ def test_pass(self, name: str, func: FuncType) -> None: + value_ref = func(NDArray_ref) + assert value == value_ref + ++ @pytest.mark.parametrize("name,func", [ ++ ("__copy__", lambda n: n == copy.copy(n)), ++ ("__deepcopy__", lambda n: n == copy.deepcopy(n)), ++ ]) ++ def test_copy(self, name: str, func: FuncType) -> None: ++ value = func(NDArray) ++ ++ # xref bpo-45167 ++ GE_398 = ( ++ sys.version_info[:2] == (3, 9) and sys.version_info >= (3, 9, 8) ++ ) ++ if GE_398 or sys.version_info >= (3, 10, 1): ++ value_ref = func(NDArray_ref) ++ assert value == value_ref ++ + def test_weakref(self) -> None: + """Test ``__weakref__``.""" + value = weakref.ref(NDArray)() diff --git a/python-numpy.changes b/python-numpy.changes index 17fd0ec..44318d4 100644 --- a/python-numpy.changes +++ b/python-numpy.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Nov 19 00:33:15 UTC 2021 - Steve Kowalik + +- Add patch bpo-45167-fixes.patch: + * Support Python >= 3.9.8 changes. + ------------------------------------------------------------------- Tue Nov 9 15:27:58 UTC 2021 - Andreas Schwab diff --git a/python-numpy.spec b/python-numpy.spec index 7ba42f6..705a220 100644 --- a/python-numpy.spec +++ b/python-numpy.spec @@ -84,6 +84,8 @@ Source99: python-numpy-rpmlintrc Patch0: numpy-buildfix.patch # PATCH-FIX-OPENSUSE numpy-1.9.0-remove-__declspec.patch -- fix for spurious compiler warnings that cause build failure Patch1: numpy-1.9.0-remove-__declspec.patch +# PATCH-FIX-UPSTREAM -- gh#numpy/numpy/commit/8871c7285fc097fd1bf713aa184cba7e2804f625 +Patch2: bpo-45167-fixes.patch BuildConflicts: gcc11 < 11.2 BuildRequires: %{python_module Cython >= 0.29.24} BuildRequires: %{python_module base >= 3.7}