diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2021-01-09 08:27:11 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2021-01-10 09:46:18 -0500 |
commit | 474847081a11b0f643df5950f4763ac29a1524b0 (patch) | |
tree | 943e1f295b26ba7fcf64d836ca0941b905398b17 /coverage/backward.py | |
parent | f08d8a8a1d6f852a9bc04a950ec9f9facaf92f5e (diff) | |
download | python-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.py | 12 |
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': |