diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2014-05-17 14:56:40 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2014-05-17 14:56:40 -0400 |
commit | f5c6fd96beb04ccd7a86817ad5be1163f8409420 (patch) | |
tree | 063c9c92cc1ec679c323b310e8e2379fed34e469 /coverage | |
parent | b52c96fe479e4b30d19dd6be62a032791ac20ba3 (diff) | |
download | python-coveragepy-git-f5c6fd96beb04ccd7a86817ad5be1163f8409420.tar.gz |
Avoid a bunch of deprecated functions.
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/backward.py | 34 | ||||
-rw-r--r-- | coverage/execfile.py | 8 |
2 files changed, 35 insertions, 7 deletions
diff --git a/coverage/backward.py b/coverage/backward.py index 98407e38..a7888a24 100644 --- a/coverage/backward.py +++ b/coverage/backward.py @@ -135,7 +135,7 @@ except KeyError: BUILTINS = sys.modules['builtins'] -# imp was deprecated in Python 3.4 +# imp was deprecated in Python 3.3 try: import importlib, importlib.util imp = None @@ -144,12 +144,40 @@ except ImportError: # we only want to use importlib if it has everything we need. try: - importlib.util.find_spec + importlib_util_find_spec = importlib.util.find_spec except Exception: import imp - importlib = None + importlib_util_find_spec = None try: PYC_MAGIC_NUMBER = importlib.util.MAGIC_NUMBER except AttributeError: PYC_MAGIC_NUMBER = imp.get_magic() + + +def import_local_file(modname): + """Import a local file as a module. + + Opens a file in the current directory named `modname`.py, imports it + as `modname`, and returns the module object. + + """ + try: + from importlib.machinery import SourceFileLoader + except ImportError: + SourceFileLoader = None + + modfile = modname + '.py' + if SourceFileLoader: + mod = SourceFileLoader(modname, modfile).load_module() + else: + for suff in imp.get_suffixes(): + if suff[0] == '.py': + break + + with open(modfile, 'r') as f: + # pylint: disable=W0631 + # (Using possibly undefined loop variable 'suff') + mod = imp.load_module(modname, f, modfile, suff) + + return mod diff --git a/coverage/execfile.py b/coverage/execfile.py index bc8fdaa2..b7877b6a 100644 --- a/coverage/execfile.py +++ b/coverage/execfile.py @@ -3,11 +3,11 @@ import marshal, os, sys, types from coverage.backward import open_python_source, BUILTINS -from coverage.backward import PYC_MAGIC_NUMBER, imp, importlib +from coverage.backward import PYC_MAGIC_NUMBER, imp, importlib_util_find_spec from coverage.misc import ExceptionDuringRun, NoCode, NoSource -if importlib: +if importlib_util_find_spec: def find_module(modulename): """Find the module named `modulename`. @@ -16,7 +16,7 @@ if importlib: """ # pylint: disable=no-member try: - spec = importlib.util.find_spec(modulename) + spec = importlib_util_find_spec(modulename) except ImportError as err: raise NoSource(str(err)) if not spec: @@ -25,7 +25,7 @@ if importlib: packagename = spec.name if pathname.endswith("__init__.py"): mod_main = modulename + ".__main__" - spec = importlib.util.find_spec(mod_main) + spec = importlib_util_find_spec(mod_main) if not spec: raise NoSource( "No module named %s; " |