Issue 26335: Make mmap.write return the number of bytes written like other write methods (original) (raw)

Created on 2016-02-10 22:55 by jstasiak, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
mmap_write_return_count.patch jstasiak,2016-02-10 22:55 review
mmap_write_return_count2.patch jstasiak,2016-02-23 23:39 review
mmap_write_return_count3.patch jstasiak,2016-02-25 10:05
Messages (8)
msg260053 - (view) Author: Jakub Stasiak (jstasiak) * Date: 2016-02-10 22:55
Since mmap objects are said to "behave like both bytearray and like file objects" I believe it's appropriate for the mmap.write() method to return the number of bytes written like write() of other file objects/interfaces I could find in the standard library for consistency reasons: https://docs.python.org/3/library/io.html#io.BufferedIOBase.write https://docs.python.org/3/library/io.html#io.BufferedWriter.write https://docs.python.org/3/library/io.html#io.RawIOBase.write https://docs.python.org/3/library/io.html#io.TextIOBase.write Why I believe this would be useful: code that writes to file objects and tests the number of bytes/characters written right now will likely fail when it's passed a mmap object because its write() method returns None. With this patch applied it'll work transparently. Please find proposed patch attached, I included information about the exception type in the documentation as it seems fitting (apologies for generating the patch using Git, I'll generate using Mercurial if necessary).
msg260706 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2016-02-23 00:02
Thanks for the patch, Jakub. I don't use mmap module much so I don't have an opinion about the feature, but it sounds reasonable. I left some review comments on Rietveld: http://bugs.python.org/review/26335/
msg260750 - (view) Author: Jakub Stasiak (jstasiak) * Date: 2016-02-23 23:39
Oops, sorry for the silliness in the C code, thanks for reviewing. I modified as suggested, please find the new patch attached.
msg260759 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016-02-24 02:28
Patch looks okay to me. I guess it would be good to write a What’s New entry as well.
msg260847 - (view) Author: Jakub Stasiak (jstasiak) * Date: 2016-02-25 10:05
Thank you. I didn't know whether to add an entry to Doc/whatsnew/3.6.rst, Misc/NEWS or both so I chose both, feel free to modify/remove as needed. The new patch also doesn't have a typo in the versionchanged directive present in the version 2. I noticed more typos like this (single colon instead of double colon), I'll create a separate issue.
msg261128 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016-03-02 17:29
New changeset ba71aecec943 by Berker Peksag in branch 'default': Issue #26335: Make mmap.write() return the number of bytes written like https://hg.python.org/cpython/rev/ba71aecec943
msg261129 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2016-03-02 17:31
Thanks for the patch, Jakub!
msg261143 - (view) Author: Jakub Stasiak (jstasiak) * Date: 2016-03-03 00:02
Glad I could help, thanks for merging!
History
Date User Action Args
2022-04-11 14:58:27 admin set github: 70523
2016-03-03 00:02:26 jstasiak set messages: +
2016-03-02 17:31:09 berker.peksag set status: open -> closedresolution: fixedmessages: + stage: patch review -> resolved
2016-03-02 17:29:56 python-dev set nosy: + python-devmessages: +
2016-02-25 10:05:33 jstasiak set files: + mmap_write_return_count3.patchmessages: +
2016-02-24 02:28:37 martin.panter set nosy: + martin.pantermessages: +
2016-02-23 23:39:34 jstasiak set files: + mmap_write_return_count2.patchmessages: +
2016-02-23 00:02:13 berker.peksag set nosy: + berker.peksagmessages: + components: + Extension Modules, - Library (Lib), IOstage: patch review
2016-02-12 23:23:45 terry.reedy set nosy: + twouters
2016-02-10 22:55:37 jstasiak create