New submission from Terry J. Reedy <tjre...@udel.edu>:
Built-in open has an encoding parameter whose default value depends on the
system: 'ascii' for some POSIX locales; 'latin1' or similar for most Windows
sold in the USA or western Europe; and ???. In idlelib.textview, the signature
for view_file currently includes 'encoding=None'. There have been 2 issues,
#32826 and another, about tests using the default failing because of 'Löwis' on
line 27 of CREDITS.txt. It therefore seems an error for a global
cross-platform application to use the default encoding.
To prevent this, we should remove '=None' from the encoding part of the
view_file definition and make view_file calls explicitly pass an encoding. For
IDLE itself, this will be 'ascii' or 'utf-8'.
This expands upon a note by Cheryl Sabella in #32826 about one of the three
calls that fail with the change until fixed.
I will not default to 'utf-8' because 'ascii' catches erroneous non-ascii
characters in ascii-only files. For instance, a draft of README.txt was
prepared with an editor that replaced ascii " and " with left and right quotes.
I will not restricting the encoding otherwise because there might be external
uses of the file that use other encodings.
PR to follow as soon as I get bpo number.
stage: commit review
title: IDLE: require encoding argument for textview.view_file
versions: Python 3.6, Python 3.7, Python 3.8
Python tracker <rep...@bugs.python.org>
Python-bugs-list mailing list