Commit Graph

121 Commits

Author SHA1 Message Date
R David Murray 67bfe80758 #17275: Fix class name in init errors in C bufferedio classes.
This fixes an apparent copy-and-paste error.

Patch by Manuel Jacob.
2013-02-23 21:51:05 -05:00
Benjamin Peterson 4c05969fc4 merge 3.3 (#16597) 2012-12-20 11:55:16 -06:00
Benjamin Peterson 68623614f0 call close on the underlying stream even if flush raises (closes #16597)
Patch by Serhiy Storchaka.
2012-12-20 11:53:11 -06:00
Jesus Cea dc469454ec Closes #15488: Closed files keep their buffer alive 2012-10-04 12:37:56 +02:00
Christian Heimes 8f734ebe94 Fixed reference leak in error branch of _bufferedreader_read_all(). The variable data can contain a bytes object but it wasn't cleaned up when PyList_New() failed. CID 715364 2012-09-10 17:46:09 +02:00
Antoine Pitrou a264384fe6 Issue #15487: Add a __sizeof__ implementation for buffered I/O objects.
Patch by Serhiy Storchaka.
2012-07-29 19:04:57 +02:00
Antoine Pitrou 10f0c50a0b Issue #15487: Add a __sizeof__ implementation for buffered I/O objects.
Patch by Serhiy Storchaka.
2012-07-29 19:02:46 +02:00
Florent Xicluna 109d57358e Issue #13248: io: Remove obsolete argument "max_buffer_size" of BufferedWriter and BufferedRWPair. 2012-07-07 17:03:22 +02:00
Gregory P. Smith 990a5feba7 Fixes issue #12268: File readline, readlines and read() or readall() methods
no longer lose data when an underlying read system call is interrupted.
IOError is no longer raised due to a read system call returning EINTR
from within these methods.
2012-06-24 00:23:47 -07:00
Gregory P. Smith 5135992164 Fixes issue #12268: File readline, readlines and read() or readall() methods
no longer lose data when an underlying read system call is interrupted.
IOError is no longer raised due to a read system call returning EINTR
from within these methods.
2012-06-23 23:55:39 -07:00
Jesus Cea 9436361e4c Closes #10142: Support for SEEK_HOLE/SEEK_DATA 2012-06-22 18:32:07 +02:00
Jesus Cea 990eff0776 Backing out 86dc014cdd74. Not ready yet 2012-04-26 17:05:31 +02:00
Jesus Cea 2b47f0a23f Close #10142: Support for SEEK_HOLE/SEEK_DATA 2012-04-26 16:39:35 +02:00
Antoine Pitrou 7fe601c5bf 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:22:01 +01:00
Antoine Pitrou 58fcf9f801 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
Antoine Pitrou 56a220ae4e Issue #13393: BufferedReader.read1() now asks the full requested size to
the raw stream instead of limiting itself to the buffer size.
2011-11-16 00:56:10 +01:00
Martin v. Löwis 767046aab1 Replace {Get,Set,Has}AttrString with *AttrId. 2011-10-14 15:35:36 +02:00
Martin v. Löwis bd928fef42 Rename _Py_identifier to _Py_IDENTIFIER. 2011-10-14 10:20:37 +02:00
Antoine Pitrou 6b4883dec0 PEP 3151 / issue #12555: reworking the OS and IO exception hierarchy. 2011-10-12 02:54:14 +02:00
Martin v. Löwis afe55bba33 Add API for static strings, primarily good for identifiers.
Thanks to Konrad Schöbel and Jasper Schulz for helping with the mass-editing.
2011-10-09 10:38:36 +02:00
Charles-François Natali 42c28cdd1d 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-05 19:53:43 +02:00
Antoine Pitrou 1e44fecc52 Issue #13087: BufferedReader.seek() now always raises UnsupportedOperation
if the underlying raw stream is unseekable, even if the seek could be
satisfied using the internal buffer.  Patch by John O'Connor.
2011-10-04 12:26:20 +02:00
Charles-François Natali b619bb27ed 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-05 19:55:56 +02:00
Antoine Pitrou bf009f0bce Issue #13087: BufferedReader.seek() now always raises UnsupportedOperation
if the underlying raw stream is unseekable, even if the seek could be
satisfied using the internal buffer.  Patch by John OConnor.
2011-10-04 12:28:52 +02:00
Antoine Pitrou e8bb1a0229 Issue #12213: Fix a buffering bug with interleaved reads and writes that
could appear on BufferedRandom streams.
2011-08-20 14:52:04 +02:00
Antoine Pitrou e05565ec5a Issue #12213: Fix a buffering bug with interleaved reads and writes that
could appear on BufferedRandom streams.
2011-08-20 14:39:23 +02:00
Victor Stinner bc93a116eb Close #12229: Remove an unused argument of _bufferedreader_peek_unlocked(),
io.BufferedReader._peek_unlocked(). Patch written by John O'Connor.
2011-06-01 00:01:24 +02:00
Victor Stinner b57f108b03 Issue #12175: BufferedReader.read(-1) now calls raw.readall() if available. 2011-05-26 00:19:38 +02:00
Antoine Pitrou b89b31a158 Issue #12062: 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:25:53 +02:00
Antoine Pitrou 00dd182b8e Issue #12062: 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:16:28 +02:00
Antoine Pitrou 7c40489180 Issue #12062: 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:13:33 +02:00
Antoine Pitrou 4e19e11958 Fix compile error under Windows 2011-05-12 02:07:00 +02:00
Antoine Pitrou 3486a98dcd Issue #9971: Write an optimized implementation of BufferedReader.readinto().
Patch by John O'Connor.
2011-05-12 01:57:53 +02:00
Antoine Pitrou d843c2d86f Merged revisions 88610 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r88610 | antoine.pitrou | 2011-02-25 22:24:11 +0100 (ven., 25 févr. 2011) | 4 lines

  Issue #10956: Buffered I/O classes retry reading or writing after a signal
  has arrived and the handler returned successfully.
........
2011-02-25 21:34:39 +00:00
Antoine Pitrou 707ce82cab Issue #10956: Buffered I/O classes retry reading or writing after a signal
has arrived and the handler returned successfully.
2011-02-25 21:24:11 +00:00
Antoine Pitrou 6cfc5124f2 Merged revisions 87427 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r87427 | antoine.pitrou | 2010-12-21 22:20:59 +0100 (mar., 21 déc. 2010) | 3 lines

  Issue #10750: The `raw` attribute of buffered IO objects is now read-only.
........
2010-12-21 21:26:09 +00:00
Antoine Pitrou 7f8f41808b Issue #10750: The `raw` attribute of buffered IO objects is now read-only. 2010-12-21 21:20:59 +00:00
Antoine Pitrou 976157f9f3 Merged revisions 86981,86984 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r86981 | antoine.pitrou | 2010-12-03 19:41:39 +0100 (ven., 03 déc. 2010) | 5 lines

  Issue #10478: Reentrant calls inside buffered IO objects (for example by
  way of a signal handler) now raise a RuntimeError instead of freezing the
  current process.
........
  r86984 | antoine.pitrou | 2010-12-03 20:14:17 +0100 (ven., 03 déc. 2010) | 3 lines

  Add an "advanced topics" section to the io doc.
........
2010-12-03 19:21:49 +00:00
Antoine Pitrou f3b68b3f98 Issue #10478: Reentrant calls inside buffered IO objects (for example by
way of a signal handler) now raise a RuntimeError instead of freezing the
current process.
2010-12-03 18:41:39 +00:00
Matthias Klose bee3316083 Modules/_io/bufferedio.c (buffered_dealloc_warn): Make it static. 2010-11-16 20:07:51 +00:00
Antoine Pitrou 243757eb79 Issue #10180: Pickling file objects is now explicitly forbidden, since
unpickling them produced nonsensical results.
2010-11-05 21:15:39 +00:00
Antoine Pitrou e033e06db0 Issue #10093: ResourceWarnings are now issued when files and sockets are
deallocated without explicit closing.  These warnings are silenced by
default, except in pydebug mode.
2010-10-29 10:38:18 +00:00
Antoine Pitrou 16b11de04e Merged revisions 84239 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r84239 | antoine.pitrou | 2010-08-21 21:09:32 +0200 (sam., 21 août 2010) | 4 lines

  Issue #9617: Signals received during a low-level write operation aren't
  ignored by the buffered IO layer anymore.
........
2010-08-21 19:17:57 +00:00
Antoine Pitrou b46b9d59ef Issue #9617: Signals received during a low-level write operation aren't
ignored by the buffered IO layer anymore.
2010-08-21 19:09:32 +00:00
Antoine Pitrou 00091cada6 Merged revisions 83944 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83944 | antoine.pitrou | 2010-08-11 15:31:33 +0200 (mer., 11 août 2010) | 6 lines

  Issue #9550: a BufferedReader could issue an additional read when the
  original read request had been satisfied, which can block indefinitely
  when the underlying raw IO channel is e.g. a socket.  Report and original
  patch by Jason V. Miller.
........
2010-08-11 13:38:10 +00:00
Antoine Pitrou 32cfedeb1c Issue #9550: a BufferedReader could issue an additional read when the
original read request had been satisfied, which can block indefinitely
when the underlying raw IO channel is e.g. a socket.  Report and original
patch by Jason V. Miller.
2010-08-11 13:31:33 +00:00
Antoine Pitrou f6df1ee171 Merged revisions 83411 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83411 | antoine.pitrou | 2010-08-01 18:53:42 +0200 (dim., 01 août 2010) | 4 lines

  Issue #9448: Fix a leak of OS resources (mutexes or semaphores) when
  re-initializing a buffered IO object by calling its `__init__` method.
........
2010-08-01 16:57:42 +00:00
Antoine Pitrou c881f1592f Issue #9448: Fix a leak of OS resources (mutexes or semaphores) when
re-initializing a buffered IO object by calling its `__init__` method.
2010-08-01 16:53:42 +00:00
Antoine Pitrou faf9007d86 Merged revisions 80722 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r80722 | antoine.pitrou | 2010-05-03 18:48:20 +0200 (lun., 03 mai 2010) | 11 lines

  Merged revisions 80720 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r80720 | antoine.pitrou | 2010-05-03 18:25:33 +0200 (lun., 03 mai 2010) | 5 lines

    Issue #7865: The close() method of :mod:`io` objects should not swallow
    exceptions raised by the implicit flush().  Also ensure that calling
    close() several times is supported.  Patch by Pascal Chambon.
  ........
................
2010-05-03 16:58:19 +00:00
Antoine Pitrou 6be8876623 Merged revisions 80720 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80720 | antoine.pitrou | 2010-05-03 18:25:33 +0200 (lun., 03 mai 2010) | 5 lines

  Issue #7865: The close() method of :mod:`io` objects should not swallow
  exceptions raised by the implicit flush().  Also ensure that calling
  close() several times is supported.  Patch by Pascal Chambon.
........
2010-05-03 16:48:20 +00:00
Benjamin Peterson 6b59f77c43 Merged revisions 76806,76808 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r76806 | benjamin.peterson | 2009-12-13 13:25:34 -0600 (Sun, 13 Dec 2009) | 14 lines

  Merged revisions 76805 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r76805 | benjamin.peterson | 2009-12-13 13:19:07 -0600 (Sun, 13 Dec 2009) | 7 lines

    accept None as the same as having passed no argument in file types #7349

    This is for consistency with imitation file objects like StringIO and BytesIO.

    This commit also adds a few tests, where they were lacking for concerned
    methods.
  ........
................
  r76808 | benjamin.peterson | 2009-12-13 13:28:09 -0600 (Sun, 13 Dec 2009) | 9 lines

  Merged revisions 76807 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r76807 | benjamin.peterson | 2009-12-13 13:27:02 -0600 (Sun, 13 Dec 2009) | 1 line

    remove unused variable
  ........
................
2009-12-13 19:30:15 +00:00
Benjamin Peterson bf5ff76597 Merged revisions 76805 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76805 | benjamin.peterson | 2009-12-13 13:19:07 -0600 (Sun, 13 Dec 2009) | 7 lines

  accept None as the same as having passed no argument in file types #7349

  This is for consistency with imitation file objects like StringIO and BytesIO.

  This commit also adds a few tests, where they were lacking for concerned
  methods.
........
2009-12-13 19:25:34 +00:00
Mark Dickinson 1a0aaaabb6 Merged revisions 76502 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76502 | mark.dickinson | 2009-11-24 20:51:48 +0000 (Tue, 24 Nov 2009) | 3 lines

  Issue #7228:  Fix format mismatch when printing something of type off_t.
  (Should silence some compiler warnings.)
........
2009-11-24 20:54:11 +00:00
Antoine Pitrou 5800b27104 Merged revisions 76007 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76007 | antoine.pitrou | 2009-11-01 12:58:22 +0100 (dim., 01 nov. 2009) | 3 lines

  Buffered I/O: optimize lock taking in the common non-contended case.
........
2009-11-01 12:05:48 +00:00
Mark Dickinson 00de1bdcfc Merged revisions 75941 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r75941 | mark.dickinson | 2009-10-29 09:58:06 +0000 (Thu, 29 Oct 2009) | 11 lines

  Merged revisions 75939 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r75939 | mark.dickinson | 2009-10-29 09:46:04 +0000 (Thu, 29 Oct 2009) | 5 lines

    Roll back ill-considered attempts to fix printf specifier mismatch for off_t.
    The sensible solution seems to be to implement %lld for PyString_FromFormat(V)
    and PyErr_Format.  See issue #7228.
  ........
................
2009-10-29 10:01:23 +00:00
Mark Dickinson cb9285cd37 Merged revisions 75939 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75939 | mark.dickinson | 2009-10-29 09:46:04 +0000 (Thu, 29 Oct 2009) | 5 lines

  Roll back ill-considered attempts to fix printf specifier mismatch for off_t.
  The sensible solution seems to be to implement %lld for PyString_FromFormat(V)
  and PyErr_Format.  See issue #7228.
........
2009-10-29 09:58:06 +00:00
Mark Dickinson 121fbe4745 Merged revisions 75881 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r75881 | mark.dickinson | 2009-10-27 21:49:48 +0000 (Tue, 27 Oct 2009) | 10 lines

  Merged revisions 75879 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r75879 | mark.dickinson | 2009-10-27 21:48:20 +0000 (Tue, 27 Oct 2009) | 3 lines

    Silence gcc warnings when trying to print an off_t using "lld", on platforms
    where off_t has type long (e.g., 64-bit Linux).
  ........
................
2009-10-27 21:51:51 +00:00
Mark Dickinson d430ebe1fd Merged revisions 75879 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75879 | mark.dickinson | 2009-10-27 21:48:20 +0000 (Tue, 27 Oct 2009) | 3 lines

  Silence gcc warnings when trying to print an off_t using "lld", on platforms
  where off_t has type long (e.g., 64-bit Linux).
........
2009-10-27 21:49:48 +00:00
Mark Dickinson 6576848855 Merged revisions 75729 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r75729 | mark.dickinson | 2009-10-26 20:02:55 +0000 (Mon, 26 Oct 2009) | 10 lines

  Merged revisions 75728 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r75728 | mark.dickinson | 2009-10-26 19:59:23 +0000 (Mon, 26 Oct 2009) | 3 lines

    Use correct conversion specifier and length modifier when printing an
    integer of type off_t.  Also, don't assume that long long is available.
  ........
................
2009-10-27 18:43:44 +00:00
Mark Dickinson 238b1098ca Merged revisions 75728 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75728 | mark.dickinson | 2009-10-26 19:59:23 +0000 (Mon, 26 Oct 2009) | 3 lines

  Use correct conversion specifier and length modifier when printing an
  integer of type off_t.  Also, don't assume that long long is available.
........
2009-10-26 20:02:55 +00:00
Amaury Forgeot d'Arc e1b60d4849 Merged revisions 75258 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75258 | amaury.forgeotdarc | 2009-10-05 22:18:05 +0200 (lun., 05 oct. 2009) | 2 lines

  Fix compilation warning on Windows, where size_t is 32bit but file offsets are 64bit.
........
2009-10-05 21:09:00 +00:00
Antoine Pitrou 0473e56964 Merged revisions 74338 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r74338 | antoine.pitrou | 2009-08-06 22:29:56 +0200 (jeu., 06 août 2009) | 14 lines

  Merged revisions 74336 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r74336 | antoine.pitrou | 2009-08-06 22:18:29 +0200 (jeu., 06 août 2009) | 8 lines

    Issue #6629: Fix a data corruption issue in the new `io` package, which could
    occur when writing to a BufferedRandom object (e.g. a file opened in "rb+" or
    "wb+" mode) after having buffered a certain amount of data for reading. This
    bug was not present in the pure Python implementation.

    Yes, this is a serious issue.
  ........
................
2009-08-06 20:52:43 +00:00
Antoine Pitrou a0ceb731fb Merged revisions 74336 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r74336 | antoine.pitrou | 2009-08-06 22:18:29 +0200 (jeu., 06 août 2009) | 8 lines

  Issue #6629: Fix a data corruption issue in the new `io` package, which could
  occur when writing to a BufferedRandom object (e.g. a file opened in "rb+" or
  "wb+" mode) after having buffered a certain amount of data for reading. This
  bug was not present in the pure Python implementation.

  Yes, this is a serious issue.
........
2009-08-06 20:29:56 +00:00
Benjamin Peterson 680bf1afe8 move to a naming scheme with all lowercase and underscores 2009-06-12 02:07:12 +00:00
Antoine Pitrou 716c444edc Issue #5761: Add the name of the underlying file to the repr() of various IO objects. 2009-05-23 19:04:03 +00:00
Benjamin Peterson d2e0c7955f implement a detach() method for BufferedIOBase and TextIOBase #5883 2009-05-01 20:40:59 +00:00
Benjamin Peterson 1fea321502 use NULL for the ends of tables 2009-04-19 03:15:20 +00:00
Antoine Pitrou cf4c749680 Issue #5734: BufferedRWPair was poorly tested and had several glaring bugs.
Patch by Brian Quinlan.
2009-04-19 00:09:36 +00:00
Antoine Pitrou 711af3ae1e #5502: accelerate binary buffered IO (especially small operations).
On a suggestion by Victor Stinner.
2009-04-11 15:39:24 +00:00
Georg Brandl dfd734429e Merge revision 71222 from trunk: #5615: make it possible to configure --without-threads again. 2009-04-05 11:47:34 +00:00
Alexandre Vassalotti 8d8d630003 Issue 5682: Move _io module into its own subdirectory.
Reviewed by: Antoine Pitrou
2009-04-04 19:58:40 +00:00