From: jsnklln Date: Mon, 18 Nov 2019 19:11:13 +0000 (-0500) Subject: bpo-38722: Runpy use io.open_code() (GH-17234) X-Git-Tag: v3.9.0a1~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e243bae9999418859106328d9fce71815b7eb2fe;p=thirdparty%2FPython%2Fcpython.git bpo-38722: Runpy use io.open_code() (GH-17234) https://bugs.python.org/issue38722 Automerge-Triggered-By: @taleinat --- diff --git a/Lib/runpy.py b/Lib/runpy.py index d86f0e4a3c49..8adc91e32f31 100644 --- a/Lib/runpy.py +++ b/Lib/runpy.py @@ -13,6 +13,7 @@ importers when locating support scripts as well as when importing modules. import sys import importlib.machinery # importlib first so we can test #15386 via -m import importlib.util +import io import types from pkgutil import read_code, get_importer @@ -228,11 +229,11 @@ def _get_main_module_details(error=ImportError): def _get_code_from_file(run_name, fname): # Check for a compiled file first - with open(fname, "rb") as f: + with io.open_code(fname) as f: code = read_code(f) if code is None: # That didn't work, so try it as normal source code - with open(fname, "rb") as f: + with io.open_code(fname) as f: code = compile(f.read(), fname, 'exec') return code, fname diff --git a/Misc/NEWS.d/next/Security/2019-11-18-16-17-56.bpo-38722.x3mECW.rst b/Misc/NEWS.d/next/Security/2019-11-18-16-17-56.bpo-38722.x3mECW.rst new file mode 100644 index 000000000000..0277d3e5689a --- /dev/null +++ b/Misc/NEWS.d/next/Security/2019-11-18-16-17-56.bpo-38722.x3mECW.rst @@ -0,0 +1,2 @@ +:mod:`runpy` now uses :meth:`io.open_code` to open code files. +Patch by Jason Killen.