summaryrefslogtreecommitdiff
path: root/coverage/backward.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-01-09 08:27:11 -0500
committerNed Batchelder <ned@nedbatchelder.com>2021-01-10 09:46:18 -0500
commit474847081a11b0f643df5950f4763ac29a1524b0 (patch)
tree943e1f295b26ba7fcf64d836ca0941b905398b17 /coverage/backward.py
parentf08d8a8a1d6f852a9bc04a950ec9f9facaf92f5e (diff)
downloadpython-coveragepy-git-474847081a11b0f643df5950f4763ac29a1524b0.tar.gz
Use the modern way to load modules by file name.
Python 3.10 finally got super-noisy about load_module, which has been deprecated since 3.4! https://docs.python.org/3/library/importlib.html#importlib.abc.Loader.load_module
Diffstat (limited to 'coverage/backward.py')
-rw-r--r--coverage/backward.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/coverage/backward.py b/coverage/backward.py
index 9d1d78e5..8af3452b 100644
--- a/coverage/backward.py
+++ b/coverage/backward.py
@@ -245,15 +245,17 @@ def import_local_file(modname, modfile=None):
"""
try:
- from importlib.machinery import SourceFileLoader
+ import importlib.util as importlib_util
except ImportError:
- SourceFileLoader = None
+ importlib_util = None
if modfile is None:
modfile = modname + '.py'
- if SourceFileLoader:
- # pylint: disable=no-value-for-parameter, deprecated-method
- mod = SourceFileLoader(modname, modfile).load_module()
+ if importlib_util:
+ spec = importlib_util.spec_from_file_location(modname, modfile)
+ mod = importlib_util.module_from_spec(spec)
+ sys.modules[modname] = mod
+ spec.loader.exec_module(mod)
else:
for suff in imp.get_suffixes(): # pragma: part covered
if suff[0] == '.py':