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.

----------
assignee: terry.reedy
components: IDLE
messages: 312085
nosy: terry.reedy
priority: normal
severity: normal
stage: commit review
status: open
title: IDLE: require encoding argument for textview.view_file
type: behavior
versions: Python 3.6, Python 3.7, Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32837>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to