Commit Graph

91 Commits

Author SHA1 Message Date
Serhiy Storchaka 8688acaf2e Issue #20440: Applied yet one patch for using Py_SETREF.
The patch is automatically generated, it replaces the code that uses Py_CLEAR.
2015-12-27 12:38:48 +02:00
Serhiy Storchaka c06a6d0958 Issue #25421: __sizeof__ methods of builtin types now use dynamic basic size.
This allows sys.getsize() to work correctly with their subclasses with
__slots__ defined.
2015-12-19 20:07:48 +02:00
Martin Panter dab305ef05 Issue #22413: Document newline effect on StringIO initializer and getvalue
Also add to comment in the C code.
2015-10-10 02:52:30 +00:00
Martin Panter 6f80464f4a Issue #25030: Do not document seek() as if it accepts keyword arguments
Patch from Shiyao Ma.
2015-09-11 03:58:30 +00:00
Serhiy Storchaka c7797dc748 Issue #19543: Emit deprecation warning for known non-text encodings.
Backported issues #19619: encode() and decode() methods and constructors
of str, unicode and bytearray classes now emit deprecation warning for known
non-text encodings when Python is ran with the -3 option.

Backported issues #20404: io.TextIOWrapper (and hence io.open()) now uses the
internal codec marking system added to emit deprecation warning for known non-text
encodings at stream construction time when Python is ran with the -3 option.
2015-05-31 20:21:00 +03:00
Serhiy Storchaka 461295443f Issue #21859: Corrected FileIO docstrings. 2015-04-10 16:08:33 +03:00
Serhiy Storchaka 96d8012964 Issue #23785: Fixed memory leak in TextIOWrapper.tell() in rare circumstances. 2015-03-30 10:00:49 +03:00
Serhiy Storchaka aa64c46ac9 Issue #23781: Add private helper function _PyErr_ReplaceException() that
corresponds _PyErr_ChainExceptions() in Python 3 to help porting patches
from Python 3.
2015-03-30 09:48:42 +03:00
Serhiy Storchaka f95a57f9a1 Issue #21802: The reader in BufferedRWPair now is closed even when closing
writer failed in BufferedRWPair.close().
2015-03-24 23:23:42 +02:00
Serhiy Storchaka 3173f7c904 Issue #5700: io.FileIO() called flush() after closing the file.
flush() was not called in close() if closefd=False.
2015-02-21 00:34:20 +02:00
Benjamin Peterson 53ae6145a0 allow more operations to work on detached streams (closes #23093)
Patch by Martin Panter.
2014-12-21 20:51:50 -06:00
Benjamin Peterson 1c873bf77d clear BufferedRWPair weakrefs on deallocation (closes #22517) 2014-09-29 22:46:57 -04:00
Berker Peksag b5dc3dcb92 Issue #21860: Correct docstrings of FileIO.seek() and FileIO.truncate() methods.
Patch by Terry Chia.
2014-09-24 12:54:25 +03:00
Benjamin Peterson a83050196d properly decref the return value of close() 2014-07-04 17:00:25 -07:00
Victor Stinner f6b3c84a4a Issue #21090: io.FileIO.readall() does not ignore I/O errors anymore. Before,
it ignored I/O errors if at least the first C call read() succeed.
2014-07-02 23:12:48 +02:00
Serhiy Storchaka 05b0a1be37 Issue #21310: Fixed possible resource leak in failed open(). 2014-06-09 13:32:08 +03:00
Kristján Valur Jónsson be580f2e48 Issue #20434 Correct error handlin of _PyString_Resize and _PyBytes_Resize 2014-04-25 09:51:21 +00:00
Andrew Kuchling 68e85e5834 #15840: make docs consistent by saying operations on closed files raise ValueError.
Patch by Caelyn McAulay.

Neither Caelyn nor I could find any cases in 2.7 or 3.4/5 where an
operation on a closed stream raised IOError; generally the C
implementation have a macro to check for the stream being closed, and
these macros all raised ValueError.  If we find any, a new bug should
be opened.
2014-04-15 16:07:52 -04:00
Serhiy Storchaka 1d19f97eed Issue #17671: Fixed a crash when use non-initialized io.BufferedRWPair.
Based on patch by Stephen Tu.
2014-02-12 10:52:07 +02:00
Antoine Pitrou 213fec4bff Issue #18876: The FileIO.mode attribute now better reflects the actual mode under which the file was opened.
Patch by Erik Bray.
2013-09-04 20:46:33 +02:00
Serhiy Storchaka a9885e93ee Issue #13461: Fix a crash in the TextIOWrapper.tell method and in the "replace"
error handler on 64-bit platforms.  Patch by Yogesh Chaudhari.
2013-08-20 20:08:53 +03:00
Terry Jan Reedy ce9cc49104 Issue #17047: remove doubled words found in 2.7 to 3.4 Modules/*,
as reported by Serhiy Storchaka and Matthew Barnett.
2013-03-11 17:41:44 -04:00
R David Murray 5b2cf5e651 #17275: Fix class name in init errors in C bufferedio classes.
This fixes an apparent copy-and-paste error.

Original patch by Manuel Jacob.
2013-02-23 22:11:21 -05:00
Serhiy Storchaka 354d50ee37 Issue #17106: Fix a segmentation fault in io.TextIOWrapper when an underlying
stream or a decoder produces data of an unexpected type (i.e. when
io.TextIOWrapper initialized with text stream or use bytes-to-bytes codec).
2013-02-03 17:10:42 +02:00
Gregory P. Smith a998ad0135 Additional fix for Issue #12268: The io module file object writelines() methods
no longer abort early when one of its write system calls is interrupted (EINTR).
2013-02-01 13:02:59 -08:00
Serhiy Storchaka 74f49ab28b Issue #15989: Fix several occurrences of integer overflow
when result of PyInt_AsLong() or PyLong_AsLong() narrowed
to int without checks.

This is a backport of changesets 13e2e44db99d and 525407d89277.
2013-01-19 12:55:39 +02:00
Victor Stinner 23a32ba0e5 Issue #16367: Fix FileIO.readall() on Windows for files larger than 2 GB 2013-01-03 03:33:21 +01:00
Benjamin Peterson a2d6d7121e call close on the underlying stream even if flush raises (#16597) 2012-12-20 12:24:10 -06:00
Andrew Svetlov 4bb142b1b7 Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:27:37 +02:00
Gregory P. Smith 99716166b1 Fixes Issue #12268 for the io module - File readline, readlines and
read or readall methods no longer lose data when an underlying read
system call is interrupted within an io module object.  IOError is no
longer raised due to a read system call returning EINTR from within
these methods.

This is a backport of changeset 781b95159954 from 3.2.
The earlier 2.7 changeset 67dc99a989cd already fixed this for the
builtin python 2.x file object.
2012-10-12 13:02:06 -07:00
Ezio Melotti ba372a59d1 #15796: Fix \n in readline docstring. 2012-09-18 07:17:49 +03:00
Antoine Pitrou c5eec0e387 Issue #15841: The readable(), writable() and seekable() methods of io.BytesIO
and io.StringIO objects now raise ValueError when the object has been closed.
Patch by Alessandro Moura.
2012-09-05 20:11:49 +02:00
Antoine Pitrou c5bef75c77 Issue #15604: Update uses of PyObject_IsTrue() to check for and handle errors correctly.
Patch by Serhiy Storchaka.
2012-08-15 23:16:51 +02:00
Antoine Pitrou 76370f4977 Make TextIOWrapper's documentation clearer by copying the newline argument's description from open(). 2012-08-04 00:55:38 +02:00
Antoine Pitrou baee34c344 Issue #15489: Add a __sizeof__ implementation for BytesIO objects.
Patch by Serhiy Storchaka.
2012-07-30 00:01:06 +02:00
Antoine Pitrou bff5df0d1c Issue #15487: Add a __sizeof__ implementation for buffered I/O objects.
Patch by Serhiy Storchaka.
2012-07-29 19:02:46 +02:00
Antoine Pitrou c2ec992698 Issue #15247: FileIO now raises an error when given a file descriptor pointing to a directory. 2012-07-06 18:48:24 +02:00
Hynek Schlawack 9bd4bf2a3d #10053: Don't close FDs when FileIO.__init__ fails
Loosely based on the work by Hirokazu Yamamoto.
2012-06-21 19:45:19 +02:00
Hynek Schlawack 877effc298 #4841: Fix FileIO constructor to honor closefd when called repeatedly
Patch by Victor Stinner.
2012-05-25 09:24:18 +02:00
Antoine Pitrou 4b536d4771 Issue #14437: Fix building the _io module under Cygwin. 2012-03-31 23:53:07 +02:00
Éric Araujo 7f4b3be2cc Fix typo “seperator” 2012-02-26 01:41:39 +01:00
Antoine Pitrou 5aa7df320f Issue #13322: Fix BufferedWriter.write() to ensure that BlockingIOError is
raised when the wrapped raw file is non-blocking and the write would block.
Previous code assumed that the raw write() would raise BlockingIOError, but
RawIOBase.write() is defined to returned None when the call would block.
Patch by sbt.
2011-11-21 20:16:44 +01:00
Nadeem Vawda 36248154a9 Issue #13159: Replace FileIO's quadratic-time buffer growth algorithm with a linear-time one.
Also fix the builtin file class and the bz2 module, which used the same algorithm.
2011-10-13 13:52:46 +02:00
Charles-François Natali 9ffcbf71a5 Issue #13070: Fix a crash when a TextIOWrapper caught in a reference cycle
would be finalized after the reference to its underlying BufferedRWPair's
writer got cleared by the GC.
2011-10-06 19:09:45 +02:00
Antoine Pitrou 808cec536a Issue #12213: Fix a buffering bug with interleaved reads and writes that
could appear on io.BufferedRandom streams.
2011-08-20 15:40:58 +02:00
Eli Bendersky eaf312a0a4 Issue #12434: make StringIO.write error message consistent with Python 2.7 nomenclature 2011-07-22 14:39:55 +03:00
Victor Stinner 59729ff609 Issue #9611, #9015: FileIO.read(), FileIO.readinto(), FileIO.write() and
os.write() clamp the length to INT_MAX on Windows.
2011-07-05 11:28:19 +02:00
Victor Stinner daf17e9bc8 Issue #12175: RawIOBase.readall() now returns None if read() returns None. 2011-05-25 22:52:37 +02:00
Victor Stinner 5100a405dc Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError if
the file is closed.
2011-05-25 22:15:36 +02:00
Antoine Pitrou ee46a7bf9c Issue #12062: In the `io` module, fix a flushing bug when doing a certain
type of I/O sequence on a file opened in read+write mode (namely: reading,
seeking a bit forward, writing, then seeking before the previous write but
still within buffered data, and writing again).
2011-05-13 00:31:52 +02:00