From 78057b41591629aa676d8f128da8ec6c65ffaeb5 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Sun, 6 Nov 2016 19:35:08 -0800 Subject: [PATCH] Closes #27781: Removes special cases for the experimental aspect of PEP 529 --- Doc/whatsnew/3.6.rst | 5 ----- Lib/test/test_os.py | 9 ++------- Misc/NEWS | 4 ++-- Objects/unicodeobject.c | 11 +---------- 4 files changed, 5 insertions(+), 24 deletions(-) diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst index 1b943027b5f..84953306660 100644 --- a/Doc/whatsnew/3.6.rst +++ b/Doc/whatsnew/3.6.rst @@ -355,11 +355,6 @@ correctly encoded. To revert to the previous behaviour, set See :pep:`529` for more information and discussion of code modifications that may be required. -.. note:: - - This change is considered experimental for 3.6.0 beta releases. The default - encoding may change before the final release. - .. _whatsnew-pep487: PEP 487: Simpler customization of class creation diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 638244f04ac..628c61e5910 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -2860,13 +2860,8 @@ class OSErrorTests(unittest.TestCase): func(name, *func_args) except OSError as err: self.assertIs(err.filename, name, str(func)) - except RuntimeError as err: - if sys.platform != 'win32': - raise - - # issue27781: undecodable bytes currently raise RuntimeError - # by 3.6.0b4 this will become UnicodeDecodeError or nothing - self.assertIsInstance(err.__context__, UnicodeDecodeError) + except UnicodeDecodeError: + pass else: self.fail("No exception thrown by {}".format(func)) diff --git a/Misc/NEWS b/Misc/NEWS index 037a4f6a8f8..47acb520743 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -3270,7 +3270,7 @@ Library - Issue #24774: Fix docstring in http.server.test. Patch from Chiu-Hsiang Hsu. - Issue #21159: Improve message in configparser.InterpolationMissingOptionError. - Patch from �?ukasz Langa. + Patch from Łukasz Langa. - Issue #20362: Honour TestCase.longMessage correctly in assertRegex. Patch from Ilia Kurenkov. @@ -5198,7 +5198,7 @@ Library Based on patch by Martin Panter. - Issue #17293: uuid.getnode() now determines MAC address on AIX using netstat. - Based on patch by Aivars Kalv�?ns. + Based on patch by Aivars Kalvāns. - Issue #22769: Fixed ttk.Treeview.tag_has() when called without arguments. diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 50b21cf9e65..249cf578d9c 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -3843,18 +3843,9 @@ PyUnicode_DecodeFSDefaultAndSize(const char *s, Py_ssize_t size) cannot only rely on it: check also interp->fscodec_initialized for subinterpreters. */ if (Py_FileSystemDefaultEncoding && interp->fscodec_initialized) { - PyObject *res = PyUnicode_Decode(s, size, + return PyUnicode_Decode(s, size, Py_FileSystemDefaultEncoding, Py_FileSystemDefaultEncodeErrors); -#ifdef MS_WINDOWS - if (!res && PyErr_ExceptionMatches(PyExc_UnicodeDecodeError)) { - _PyErr_FormatFromCause(PyExc_RuntimeError, - "filesystem path bytes were not correctly encoded with '%s'. " - "Please report this at http://bugs.python.org/issue27781", - Py_FileSystemDefaultEncoding); - } -#endif - return res; } else { return PyUnicode_DecodeLocaleAndSize(s, size, Py_FileSystemDefaultEncodeErrors);