commit:     dbae7b6aecf8c3f3ccf7b0fdcc5251fa03d7711a
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Fri Aug  4 15:50:43 2023 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Fri Aug  4 15:52:50 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dbae7b6a

dev-python/snapshottest: enable py3.12

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 .../files/snapshottest-0.6.0-py3.12-imp.patch      | 41 ++++++++++++++++++++++
 dev-python/snapshottest/snapshottest-0.6.0.ebuild  |  5 +--
 2 files changed, 44 insertions(+), 2 deletions(-)

diff --git a/dev-python/snapshottest/files/snapshottest-0.6.0-py3.12-imp.patch 
b/dev-python/snapshottest/files/snapshottest-0.6.0-py3.12-imp.patch
new file mode 100644
index 000000000000..64c1bf69bfe8
--- /dev/null
+++ b/dev-python/snapshottest/files/snapshottest-0.6.0-py3.12-imp.patch
@@ -0,0 +1,41 @@
+https://github.com/syrusakbary/snapshottest/pull/168
+From: MarcellPerger1 <[email protected]>
+Date: Tue, 18 Jul 2023 19:28:22 +0100
+Subject: [PATCH] Use importlib instead of imp
+
+--- a/snapshottest/module.py
++++ b/snapshottest/module.py
+@@ -1,7 +1,8 @@
+ import codecs
+ import errno
+ import os
+-import imp
++import sys
++import importlib.util
+ from collections import defaultdict
+ import logging
+
+@@ -17,6 +18,14 @@ def _escape_quotes(text):
+     return text.replace("'", "\\'")
+
+
++def _load_source(module_name, filepath):
++    spec = importlib.util.spec_from_file_location(module_name, filepath)
++    module = importlib.util.module_from_spec(spec)
++    sys.modules[module_name] = module
++    spec.loader.exec_module(module)
++    return module
++
++
+ class SnapshotModule(object):
+     _snapshot_modules = {}
+
+@@ -33,7 +42,7 @@ def __init__(self, module, filepath):
+
+     def load_snapshots(self):
+         try:
+-            source = imp.load_source(self.module, self.filepath)
++            source = _load_source(self.module, self.filepath)
+         # except FileNotFoundError:  # Python 3
+         except (IOError, OSError) as err:
+             if err.errno == errno.ENOENT:

diff --git a/dev-python/snapshottest/snapshottest-0.6.0.ebuild 
b/dev-python/snapshottest/snapshottest-0.6.0.ebuild
index 939e60178153..d01d038c7f3c 100644
--- a/dev-python/snapshottest/snapshottest-0.6.0.ebuild
+++ b/dev-python/snapshottest/snapshottest-0.6.0.ebuild
@@ -4,7 +4,7 @@
 EAPI=8
 
 DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
 
 inherit distutils-r1
 
@@ -30,7 +30,8 @@ RDEPEND="
 distutils_enable_tests pytest
 
 PATCHES=(
-       "${FILESDIR}/snapshottest-0.6.0-remove-fastdiff.patch"
+       "${FILESDIR}/${PN}-0.6.0-remove-fastdiff.patch"
+       "${FILESDIR}/${PN}-0.6.0-py3.12-imp.patch"
 )
 
 python_prepare_all() {

Reply via email to