New submission from STINNER Victor <vstin...@redhat.com>:

Currently, the code to select the encoding and error handler of sys.stdin, 
sys.stdout and sys.stderr is run later in Py_Initialize(). I propose to move 
most of this code into _PyCoreConfig_Read() and add stdio_encoding and 
stdio_errors to _PyCoreConfig to easily let Python embedders to select the 
encoding.

Attached PR implements this idea. During Py_Initialize(), the code still reads 
the LC_CTYPE locale to choose the error handler if stdio_errors is NULL. This 
check cannot be done earlier, since the LC_CTYPE locale is only set to the user 
locale in Py_Initialize(): after _PyCoreConfig_Read().

The Py_SetStandardStreamEncoding() function has been added by Nick Coghlan in 
bpo-16129.

    This new pre-initialization API allows embedding
    applications like Blender to force a particular
    encoding and error handler for the standard IO streams.

----------
messages: 323980
nosy: vstinner
priority: normal
severity: normal
status: open
title: _PyCoreConfig: add stdio_encoding and stdio_errors
versions: Python 3.8

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

Reply via email to