scripts: Update to use exec_module() instead of load_module()

This is deprecated in python 3.12 and Fedora 35 is throwing warnings so
move to the new functions.

(From OE-Core rev: 655cd3f614d736416eab0d708b7c49674bf5c977)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2022-01-04 23:06:50 +00:00
parent 6209684ca6
commit fc2bc42eec
2 changed files with 11 additions and 4 deletions

View File

@ -18,7 +18,8 @@ import sys
import tempfile
import threading
import importlib
from importlib import machinery
import importlib.machinery
import importlib.util
class KeepAliveStreamHandler(logging.StreamHandler):
def __init__(self, keepalive=True, **kwargs):
@ -82,7 +83,9 @@ def load_plugins(logger, plugins, pluginpath):
logger.debug('Loading plugin %s' % name)
spec = importlib.machinery.PathFinder.find_spec(name, path=[pluginpath] )
if spec:
return spec.loader.load_module()
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)
return mod
def plugin_name(filename):
return os.path.splitext(os.path.basename(filename))[0]

View File

@ -9,9 +9,11 @@ __all__ = ['ImagerPlugin', 'SourcePlugin']
import os
import logging
import types
from collections import defaultdict
from importlib.machinery import SourceFileLoader
import importlib
import importlib.util
from wic import WicError
from wic.misc import get_bitbake_var
@ -54,7 +56,9 @@ class PluginMgr:
mname = fname[:-3]
mpath = os.path.join(ppath, fname)
logger.debug("loading plugin module %s", mpath)
SourceFileLoader(mname, mpath).load_module()
spec = importlib.util.spec_from_file_location(mname, mpath)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
return PLUGINS.get(ptype)