Kaydet (Commit) 91e08772 authored tarafından Victor Stinner's avatar Victor Stinner

Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support Python

scripts using a encoding different than UTF-8 (read the coding cookie of the
script).
üst 2cfb6f3a
...@@ -2580,7 +2580,7 @@ def _url_handler(url, content_type="text/html"): ...@@ -2580,7 +2580,7 @@ def _url_handler(url, content_type="text/html"):
def html_getfile(path): def html_getfile(path):
"""Get and display a source file listing safely.""" """Get and display a source file listing safely."""
path = path.replace('%20', ' ') path = path.replace('%20', ' ')
with open(path, 'r') as fp: with tokenize.open(path) as fp:
lines = html.escape(fp.read()) lines = html.escape(fp.read())
body = '<pre>%s</pre>' % lines body = '<pre>%s</pre>' % lines
heading = html.heading( heading = html.heading(
......
...@@ -27,6 +27,10 @@ Library ...@@ -27,6 +27,10 @@ Library
- Issue #12467: warnings: fix a race condition if a warning is emitted at - Issue #12467: warnings: fix a race condition if a warning is emitted at
shutdown, if globals()['__file__'] is None. shutdown, if globals()['__file__'] is None.
- Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support
Python scripts using a encoding different than UTF-8 (read the coding cookie
of the script).
- Issue #12451: pydoc: importfile() now opens the Python script in binary mode, - Issue #12451: pydoc: importfile() now opens the Python script in binary mode,
instead of text mode using the locale encoding, to avoid encoding issues. instead of text mode using the locale encoding, to avoid encoding issues.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment