Yasuhito FUTATSUKI wrote on Fri, Jan 03, 2020 at 05:34:48 +0900:
> +++ build/run_tests.py        (working copy)
> @@ -64,6 +64,11 @@
> +if sys.version_info < (3, 5):
> +  import imp
> +else:
> +  import importlib.util

Add a comment here explaining the reason for this?  E.g., —

    # The imp module is deprecated since Python 3.4; the replacement we use,
    # module_from_spec(), is available since Python 3.5.

> @@ -821,10 +826,15 @@
>        if sys.version_info < (3, 0):
>          prog_mod = imp.load_module(progbase[:-3], open(progabs, 'r'), 
> progabs,
>                                     ('.py', 'U', imp.PY_SOURCE))
> -      else:
> +      elif sys.version_info < (3, 5):
>          prog_mod = imp.load_module(progbase[:-3],
>                                     open(progabs, 'r', encoding="utf-8"),
>                                     progabs, ('.py', 'U', imp.PY_SOURCE))
> +      else:
> +         spec = importlib.util.spec_from_file_location(progbase[:-3], 
> progabs)
> +         prog_mod = importlib.util.module_from_spec(spec) 
> +         sys.modules[progbase[:-3]] = prog_mod
> +         spec.loader.exec_module(prog_mod)

Looks good to me.  I looked at the docstrings of the called functions and
I don't see any reason not to use the code example as-is.

All tests pass, Python 3.5.3 on Linux.

Cheers,

Daniel

Reply via email to