From 7ddf7711f32e176c75582f39ed73e9bcd9991d5b Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Fri, 1 Sep 2023 12:11:35 +0200 Subject: [PATCH] Use find_spec() in meta importer The `find_module()` method of meta importers has been deprecated for a long time. Python 3.12 no longer falls back to `find_module()`. See: https://docs.python.org/3.12/whatsnew/3.12.html#removed Related: https://pagure.io/freeipa/issue/9437 Signed-off-by: Christian Heimes Reviewed-By: Alexander Bokovoy --- ipaplatform/_importhook.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ipaplatform/_importhook.py b/ipaplatform/_importhook.py index c7b2cc1f57b..3f4a1532814 100644 --- a/ipaplatform/_importhook.py +++ b/ipaplatform/_importhook.py @@ -21,10 +21,11 @@ class IpaMetaImporter: def __init__(self, platform): self.platform = platform - def find_module(self, fullname, path=None): + def find_spec(self, fullname, path=None, target=None): """Meta importer hook""" if fullname in self.modules: - return self + module = self.load_module(fullname) + return module.__spec__ return None def load_module(self, fullname):