mirror of
https://github.com/python/cpython.git
synced 2025-08-22 17:55:18 +00:00
bpo-39517: Allow runpy.run_path() to accept path-like objects (GH-18699)
This commit is contained in:
parent
4ca060d8ad
commit
0911ea5c17
3 changed files with 14 additions and 2 deletions
|
@ -15,6 +15,7 @@ import importlib.machinery # importlib first so we can test #15386 via -m
|
|||
import importlib.util
|
||||
import io
|
||||
import types
|
||||
import os
|
||||
from pkgutil import read_code, get_importer
|
||||
|
||||
__all__ = [
|
||||
|
@ -229,11 +230,12 @@ def _get_main_module_details(error=ImportError):
|
|||
|
||||
def _get_code_from_file(run_name, fname):
|
||||
# Check for a compiled file first
|
||||
with io.open_code(fname) as f:
|
||||
decoded_path = os.path.abspath(os.fsdecode(fname))
|
||||
with io.open_code(decoded_path) as f:
|
||||
code = read_code(f)
|
||||
if code is None:
|
||||
# That didn't work, so try it as normal source code
|
||||
with io.open_code(fname) as f:
|
||||
with io.open_code(decoded_path) as f:
|
||||
code = compile(f.read(), fname, 'exec')
|
||||
return code, fname
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue