]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Revert "bpo-43510: PEP 597: Accept `encoding="locale"` in binary mode (GH-25103)...
authorInada Naoki <songofacandy@gmail.com>
Wed, 31 Mar 2021 09:49:41 +0000 (18:49 +0900)
committerGitHub <noreply@github.com>
Wed, 31 Mar 2021 09:49:41 +0000 (18:49 +0900)
This reverts commit ff3c9739bd69aa8b58007e63c9e40e6708b4761e.

Lib/_pyio.py
Lib/test/test_io.py
Modules/_io/_iomodule.c

index ba0b0a29b5013d5e0d033f67d559f9bb4f57f39d..0f182d42402063e9dac2d8c45007300c98fdc101 100644 (file)
@@ -221,7 +221,7 @@ def open(file, mode="r", buffering=-1, encoding=None, errors=None,
         raise ValueError("can't have read/write/append mode at once")
     if not (creating or reading or writing or appending):
         raise ValueError("must have exactly one of read/write/append mode")
-    if binary and encoding is not None and encoding != "locale":
+    if binary and encoding is not None:
         raise ValueError("binary mode doesn't take an encoding argument")
     if binary and errors is not None:
         raise ValueError("binary mode doesn't take an errors argument")
index 6a9ce39f08eb581a3c1df3cfde58d9057e7af4aa..c731302a9f22f6afd12be3f730c130b6791d106b 100644 (file)
@@ -531,17 +531,6 @@ class IOTest(unittest.TestCase):
                     self.assertRaises(OSError, obj.truncate)
                     self.assertRaises(OSError, obj.truncate, 0)
 
-    def test_open_binmode_encoding(self):
-        """open() raises ValueError when encoding is specified in bin mode"""
-        self.assertRaises(ValueError, self.open, os_helper.TESTFN,
-                          "wb", encoding="utf-8")
-
-        # encoding=None and encoding="locale" is allowed.
-        with self.open(os_helper.TESTFN, "wb", encoding=None):
-            pass
-        with self.open(os_helper.TESTFN, "wb", encoding="locale"):
-            pass
-
     def test_open_handles_NUL_chars(self):
         fn_with_NUL = 'foo\0bar'
         self.assertRaises(ValueError, self.open, fn_with_NUL, 'w')
index c627ca257fd5efa95cfa3a85a90bfed5d300e16f..652c2ce5b0d61f329d07c9fe7fe3b6c9e55c1088 100644 (file)
@@ -346,8 +346,7 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
         goto error;
     }
 
-    if (binary && encoding != NULL
-            && strcmp(encoding, "locale") != 0) {
+    if (binary && encoding != NULL) {
         PyErr_SetString(PyExc_ValueError,
                         "binary mode doesn't take an encoding argument");
         goto error;