]> granicus.if.org Git - python/commit
bpo-34485: Enhance init_sys_streams() (GH-8978)
authorVictor Stinner <vstinner@redhat.com>
Tue, 28 Aug 2018 21:26:33 +0000 (23:26 +0200)
committerGitHub <noreply@github.com>
Tue, 28 Aug 2018 21:26:33 +0000 (23:26 +0200)
commit9e4994d410970fb4e75168401d159ba47a8f7108
tree31eb67e89ade21902bfe925d353f650ae95fb5d8
parentd500e5307aec9c5d535f66d567fadb9c587a9a36
bpo-34485: Enhance init_sys_streams() (GH-8978)

Python now gets the locale encoding with C code to initialize the encoding
of standard streams like sys.stdout. Moreover, the encoding is now
initialized to the Python codec name to get a normalized encoding name and
to ensure that the codec is loaded. The change avoids importing
_bootlocale and _locale modules at startup by default.

When the PYTHONIOENCODING environment variable only contains an encoding,
the error handler is now is now set explicitly to "strict".

Rename also get_default_standard_stream_error_handler() to
get_stdio_errors().

Reduce the buffer to format the "cpXXX" string (Windows locale encoding).
Lib/test/test_embed.py
Lib/test/test_sys.py
Lib/test/test_utf8_mode.py
Misc/NEWS.d/next/Core and Builtins/2018-08-28-17-48-40.bpo-34485.aFwck2.rst [new file with mode: 0644]
Misc/NEWS.d/next/Core and Builtins/2018-08-28-23-01-14.bpo-34485.dq1Kqk.rst [new file with mode: 0644]
Modules/_localemodule.c
Programs/_testembed.c
Python/pylifecycle.c