commit:     62450f869d71631ddf1f11dbce2b687f90f081ef
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri May 24 09:32:43 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri May 24 11:09:16 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=62450f86

dev-python/pycollada: Fix compatibility with >=dev-python/numpy-2

Closes: https://bugs.gentoo.org/932518
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../pycollada/files/pycollada-0.8-numpy-2.patch    | 76 ++++++++++++++++++++++
 ...ycollada-0.8.ebuild => pycollada-0.8-r1.ebuild} |  5 ++
 2 files changed, 81 insertions(+)

diff --git a/dev-python/pycollada/files/pycollada-0.8-numpy-2.patch 
b/dev-python/pycollada/files/pycollada-0.8-numpy-2.patch
new file mode 100644
index 000000000000..4ffb80a8b61e
--- /dev/null
+++ b/dev-python/pycollada/files/pycollada-0.8-numpy-2.patch
@@ -0,0 +1,76 @@
+From 2049c3625bef06ba5fad8169c042cbdb3641b4d1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <[email protected]>
+Date: Fri, 24 May 2024 11:27:57 +0200
+Subject: [PATCH] Fix tests with NumPy 2.0
+
+Replace the deprecated `string_` and `unicode_` aliases with the modern
+`bytes_` and `str_` replacements to fix compatibility with NumPy 2.0.
+This change does not change anything for NumPy 1.x where both types
+are aliases to each other.
+---
+ collada/source.py            | 4 ++--
+ collada/tests/test_source.py | 8 ++++----
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/collada/source.py b/collada/source.py
+index e7c7a06..6a0e715 100644
+--- a/collada/source.py
++++ b/collada/source.py
+@@ -318,7 +318,7 @@ def load(collada, localscope, node):
+                 values = [v for v in arraynode.text.split()]
+             except ValueError:
+                 raise DaeMalformedError('Corrupted IDREF array')
+-        data = numpy.array(values, dtype=numpy.unicode_)
++        data = numpy.array(values, dtype=numpy.str_)
+         paramnodes = node.findall('%s/%s/%s' % 
(collada.tag('technique_common'), collada.tag('accessor'), 
collada.tag('param')))
+         if not paramnodes:
+             raise DaeIncompleteError('No accessor info in source node')
+@@ -425,7 +425,7 @@ def load(collada, localscope, node):
+                 values = [v for v in arraynode.text.split()]
+             except ValueError:
+                 raise DaeMalformedError('Corrupted Name array')
+-        data = numpy.array(values, dtype=numpy.unicode_)
++        data = numpy.array(values, dtype=numpy.str_)
+         paramnodes = node.findall('%s/%s/%s' % (tag('technique_common'), 
tag('accessor'), tag
+                                                 ('param')))
+         if not paramnodes:
+diff --git a/collada/tests/test_source.py b/collada/tests/test_source.py
+index 9ec0529..81dda61 100644
+--- a/collada/tests/test_source.py
++++ b/collada/tests/test_source.py
+@@ -31,7 +31,7 @@ def test_float_source_saving(self):
+ 
+     def test_idref_source_saving(self):
+         idrefsource = collada.source.IDRefSource("myidrefsource",
+-                                                 numpy.array(['Ref1', 
'Ref2'], dtype=numpy.string_),
++                                                 numpy.array(['Ref1', 
'Ref2'], dtype=numpy.bytes_),
+                                                  ('MORPH_TARGET',))
+         self.assertEqual(idrefsource.id, "myidrefsource")
+         self.assertEqual(len(idrefsource), 2)
+@@ -39,7 +39,7 @@ def test_idref_source_saving(self):
+         self.assertIsNotNone(str(idrefsource))
+         idrefsource.id = "youridrefsource"
+         idrefsource.components = ('JOINT_TARGET', 'WHATEVER_TARGET')
+-        idrefsource.data = numpy.array(['Ref5', 'Ref6', 'Ref7', 'Ref8', 
'Ref9', 'Ref10'], dtype=numpy.string_)
++        idrefsource.data = numpy.array(['Ref5', 'Ref6', 'Ref7', 'Ref8', 
'Ref9', 'Ref10'], dtype=numpy.bytes_)
+         idrefsource.save()
+         loaded_idrefsource = collada.source.Source.load(self.dummy, {}, 
fromstring(tostring(idrefsource.xmlnode)))
+         self.assertTrue(isinstance(loaded_idrefsource, 
collada.source.IDRefSource))
+@@ -49,7 +49,7 @@ def test_idref_source_saving(self):
+ 
+     def test_name_source_saving(self):
+         namesource = collada.source.NameSource("mynamesource",
+-                                               numpy.array(['Name1', 
'Name2'], dtype=numpy.string_),
++                                               numpy.array(['Name1', 
'Name2'], dtype=numpy.bytes_),
+                                                ('JOINT',))
+         self.assertEqual(namesource.id, "mynamesource")
+         self.assertEqual(len(namesource), 2)
+@@ -57,7 +57,7 @@ def test_name_source_saving(self):
+         self.assertIsNotNone(str(namesource))
+         namesource.id = "yournamesource"
+         namesource.components = ('WEIGHT', 'WHATEVER')
+-        namesource.data = numpy.array(['Name1', 'Name2', 'Name3', 'Name4', 
'Name5', 'Name6'], dtype=numpy.string_)
++        namesource.data = numpy.array(['Name1', 'Name2', 'Name3', 'Name4', 
'Name5', 'Name6'], dtype=numpy.bytes_)
+         namesource.save()
+         loaded_namesource = collada.source.Source.load(self.dummy, {}, 
fromstring(tostring(namesource.xmlnode)))
+         self.assertTrue(isinstance(loaded_namesource, 
collada.source.NameSource))

diff --git a/dev-python/pycollada/pycollada-0.8.ebuild 
b/dev-python/pycollada/pycollada-0.8-r1.ebuild
similarity index 91%
rename from dev-python/pycollada/pycollada-0.8.ebuild
rename to dev-python/pycollada/pycollada-0.8-r1.ebuild
index 6b416a491a78..d565b4949a52 100644
--- a/dev-python/pycollada/pycollada-0.8.ebuild
+++ b/dev-python/pycollada/pycollada-0.8-r1.ebuild
@@ -32,6 +32,11 @@ RDEPEND="
 
 DOCS=( AUTHORS.md COPYING README.markdown )
 
+PATCHES=(
+       # https://github.com/pycollada/pycollada/pull/147
+       "${FILESDIR}/${P}-numpy-2.patch"
+)
+
 distutils_enable_sphinx docs
 distutils_enable_tests unittest
 

Reply via email to