Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
gh-103935: Use io.open_code() when executing code in trace and prof…
…ile modules (GH-103947)
  • Loading branch information
gaogaotiantian authored and zooba committed Apr 27, 2023
commit a17c329cf9df30de52952393a94a6cbf65145304
3 changes: 2 additions & 1 deletion Lib/cProfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
__all__ = ["run", "runctx", "Profile"]

import _lsprof
import io
import profile as _pyprofile

# ____________________________________________________________
Expand Down Expand Up @@ -167,7 +168,7 @@ def main():
else:
progname = args[0]
sys.path.insert(0, os.path.dirname(progname))
with open(progname, 'rb') as fp:
with io.open_code(progname) as fp:
code = compile(fp.read(), progname, 'exec')
globs = {
'__file__': progname,
Expand Down
3 changes: 2 additions & 1 deletion Lib/profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
# governing permissions and limitations under the License.


import io
import sys
import time
import marshal
Expand Down Expand Up @@ -587,7 +588,7 @@ def main():
else:
progname = args[0]
sys.path.insert(0, os.path.dirname(progname))
with open(progname, 'rb') as fp:
with io.open_code(progname) as fp:
code = compile(fp.read(), progname, 'exec')
globs = {
'__file__': progname,
Expand Down
3 changes: 2 additions & 1 deletion Lib/trace.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
"""
__all__ = ['Trace', 'CoverageResults']

import io
import linecache
import os
import sys
Expand Down Expand Up @@ -716,7 +717,7 @@ def parse_ignore_dir(s):
sys.argv = [opts.progname, *opts.arguments]
sys.path[0] = os.path.dirname(opts.progname)

with open(opts.progname, 'rb') as fp:
with io.open_code(opts.progname) as fp:
code = compile(fp.read(), opts.progname, 'exec')
# try to emulate __main__ namespace as much as possible
globs = {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Use :func:`io.open_code` for files to be executed instead of raw :func:`open`