From dcb342b5f9d931b030ca310bf3e175bbc54df5aa Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Fri, 21 Oct 2022 16:28:25 -0700 Subject: gh-51511: Note that codecs.open()'s encoding parameter affects automatic conversion to binary mode (GH-94370) (cherry picked from commit d9407b174c81fda33e6c09a6f988c9a7cb8368af) Co-authored-by: Stanley <46876382+slateny@users.noreply.github.com> --- Doc/library/codecs.rst | 3 ++- Lib/codecs.py | 3 ++- Lib/test/test_codecs.py | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst index 1c10462..7d56327 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 e6ad6e3..3b173b6 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 a9c43d9..8edd5ac 100644 --- a/Lib/test/test_codecs.py +++ b/Lib/test/test_codecs.py @@ -705,7 +705,8 @@ class UTF16Test(ReadTest, unittest.TestCase): "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' -- cgit v0.12