From: Victor Stinner Date: Tue, 5 Jul 2011 12:30:41 +0000 (+0200) Subject: Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support Python X-Git-Tag: v3.2.2rc1~137 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=91e08772a6da22166a2ad4ee52fecaf80df9e5e9;p=python 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). --- diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 2533226025..aa4b6d5c4f 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -2580,7 +2580,7 @@ def _url_handler(url, content_type="text/html"): def html_getfile(path): """Get and display a source file listing safely.""" path = path.replace('%20', ' ') - with open(path, 'r') as fp: + with tokenize.open(path) as fp: lines = html.escape(fp.read()) body = '
%s
' % lines heading = html.heading( diff --git a/Misc/NEWS b/Misc/NEWS index ae0ed58226..0bc7cd76e0 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -27,6 +27,10 @@ Library - Issue #12467: warnings: fix a race condition if a warning is emitted at 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, instead of text mode using the locale encoding, to avoid encoding issues.