[Python-checkins] gh-51511: Note that codecs.open()'s encoding parameter affects automatic conversion to binary mode (#94370)

gvanrossum webhook-mailer at python.org
Fri Oct 21 19:01:14 EDT 2022


https://github.com/python/cpython/commit/d9407b174c81fda33e6c09a6f988c9a7cb8368af
commit: d9407b174c81fda33e6c09a6f988c9a7cb8368af
branch: main
author: Stanley <46876382+slateny at users.noreply.github.com>
committer: gvanrossum <gvanrossum at gmail.com>
date: 2022-10-21T16:01:05-07:00
summary:

gh-51511: Note that codecs.open()'s encoding parameter affects automatic conversion to binary mode (#94370)

files:
M Doc/library/codecs.rst
M Lib/codecs.py
M Lib/test/test_codecs.py

diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst
index 4a665f2254f8..8225236350d2 100644
--- a/Doc/library/codecs.rst
+++ b/Doc/library/codecs.rst
@@ -189,7 +189,8 @@ wider range of codecs when working with binary files:
 
    .. note::
 
-      Underlying encoded files are always opened in binary mode.
+      If *encoding* is not ``None``, then the
+      underlying encoded files are always opened in binary mode.
       No automatic conversion of ``'\n'`` is done on reading and writing.
       The *mode* argument may be any binary mode acceptable to the built-in
       :func:`open` function; the ``'b'`` is automatically added.
diff --git a/Lib/codecs.py b/Lib/codecs.py
index 5a1e7ec80400..c1c55d8afef3 100644
--- a/Lib/codecs.py
+++ b/Lib/codecs.py
@@ -878,7 +878,8 @@ def open(filename, mode='r', encoding=None, errors='strict', buffering=-1):
         codecs. Output is also codec dependent and will usually be
         Unicode as well.
 
-        Underlying encoded files are always opened in binary mode.
+        If encoding is not None, then the
+        underlying encoded files are always opened in binary mode.
         The default file mode is 'r', meaning to open the file in read mode.
 
         encoding specifies the encoding which is to be used for the
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 57f3648eb701..32a704f4e97e 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -708,7 +708,8 @@ def test_decoder_state(self):
                                          "spamspam", self.spambe)
 
     def test_bug691291(self):
-        # Files are always opened in binary mode, even if no binary mode was
+        # If encoding is not None, then
+        # files are always opened in binary mode, even if no binary mode was
         # specified.  This means that no automatic conversion of '\n' is done
         # on reading and writing.
         s1 = 'Hello\r\nworld\r\n'



More information about the Python-checkins mailing list