Issue 7262: [doc] codecs.open() + eol (windows) (original) (raw)

Issue7262

Created on 2009-11-04 14:13 by shamilbi, last changed 2022-04-11 14:56 by admin.

Files
File name Uploaded Description Edit
eol-bug.py shamilbi,2009-11-04 14:13 code to reproduce
7262.patch analyst,2014-03-09 06:23 Patch review
Pull Requests
URL Status Linked Edit
PR 30231 open kumaraditya,2021-12-22 12:25
Messages (6)
msg94888 - (view) Author: (shamilbi) Date: 2009-11-04 14:13
different eol when writing to fp = codecs.open(.., 'w', 'cp866') (windows, python-2.6.4) def write(fp): fp.write("""\ a """) # eol=0d0a (windows, python-2.6.4) with open('0d0a.tmp', 'w') as fp: write(fp) # eol=0d0a (windows, python-2.6.4) with codecs.open('0d0a-codecs.tmp', 'w') as fp: write(fp) # --- BUG --- # eol=0a (windows, python-2.6.4) with codecs.open('0a-codecs.tmp', 'w', 'cp866') as fp: write(fp)
msg94895 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2009-11-04 18:02
The docs say:: Files are always opened in binary mode, even if no binary mode was specified. This is done to avoid data loss due to encodings using 8-bit values. This means that no automatic conversion of '\n' is done on reading and writing. But this does not match the code of codecs.open():: if encoding is not None and \ 'b' not in mode: # Force opening of the file in binary mode mode = mode + 'b' When the encoding is None, the file is opened in text mode. Marc-Andre, what do you think? is it a documentation bug instead?
msg94898 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2009-11-04 18:18
Amaury Forgeot d'Arc wrote: > > Amaury Forgeot d'Arc <amauryfa@gmail.com> added the comment: > > The docs say:: > Files are always opened in binary mode, even if no binary mode was > specified. This is done to avoid data loss due to encodings using > 8-bit values. This means that no automatic conversion of '\n' is done > on reading and writing. > > But this does not match the code of codecs.open():: > if encoding is not None and \ > 'b' not in mode: > # Force opening of the file in binary mode > mode = mode + 'b' > > When the encoding is None, the file is opened in text mode. > Marc-Andre, what do you think? is it a documentation bug instead? Agreed, it's a documentation bug. If no encoding is specified, codecs.open() works just like the standard open() (except for the default value of mode, but that's documented). The idea was to provide a drop-in replacement for open() - with the added encoding parameter support. Perhaps the default mode should have been 'r' to match the regular open() - I guess it's too late to change that, though.
msg189621 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2013-05-19 19:56
The docs still read the same. Would someone in the know like to propose a doc patch please.
msg212957 - (view) Author: (analyst) Date: 2014-03-09 06:23
Hi, I am new to Python Development. I would like to propose a patch for this issue.
msg408163 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-12-09 22:58
That paragraph was edited here: https://github.com/python/cpython/commit/b9fdb7a452c2b6f7a628118b5f695bd061b62cc8 but this point was not added.
History
Date User Action Args
2022-04-11 14:56:54 admin set github: 51511
2021-12-22 12:25:06 kumaraditya set nosy: + kumaradityapull_requests: + <pull%5Frequest28453>stage: needs patch -> patch review
2021-12-22 12:13:46 kumaraditya set versions: + Python 3.9, Python 3.10
2021-12-22 12:12:58 kumaraditya set versions: - Python 3.9, Python 3.10
2021-12-09 22:58:38 iritkatriel set nosy: + iritkatrieltitle: codecs.open() + eol (windows) -> [doc] codecs.open() + eol (windows)messages: + versions: + Python 3.9, Python 3.10, Python 3.11, - Python 2.7, Python 3.3, Python 3.4
2014-03-09 06:23:26 analyst set files: + 7262.patchnosy: + analystmessages: + keywords: + patch
2014-02-03 15:34:47 BreamoreBoy set nosy: - BreamoreBoy
2014-01-29 07:44:20 serhiy.storchaka set keywords: + easystage: needs patchcomponents: + Documentation, - Library (Lib)versions: + Python 2.7, Python 3.3, Python 3.4, - Python 2.6
2013-05-19 19:56:34 BreamoreBoy set nosy: + BreamoreBoymessages: +
2009-11-04 18🔞06 lemburg set messages: +
2009-11-04 18:02:07 amaury.forgeotdarc set assignee: lemburgmessages: + nosy: + amaury.forgeotdarc, lemburg
2009-11-04 14:13:29 shamilbi create