Serhiy Storchaka
0353b4eaaf
bpo-33138: Change standard error message for non-pickleable and non-copyable types. (GH-6239)
2018-10-31 02:28:07 +02:00
Alexey Izbyshev
a2670565d8
bpo-32236: open() emits RuntimeWarning if buffering=1 for binary mode (GH-4842)
...
If buffering=1 is specified for open() in binary mode, it is silently
treated as buffering=-1 (i.e., the default buffer size).
Coupled with the fact that line buffering is always supported in Python 2,
such behavior caused several issues (e.g., bpo-10344, bpo-21332).
Warn that line buffering is not supported if open() is called with
binary mode and buffering=1.
2018-10-20 02:22:31 +02:00
Raymond Hettinger
1401018da1
Remove wording that could be deemed to be perjorative (GH-9287)
2018-09-13 21:17:40 -07:00
Zackery Spytz
23db935bcf
bpo-25862: Fix assertion failures in io.TextIOWrapper.tell(). (GH-3918)
2018-06-29 13:14:58 +03:00
INADA Naoki
507434fd50
bpo-15216: io: TextIOWrapper.reconfigure() accepts encoding, errors and newline (GH-2343)
2017-12-21 09:59:53 +09:00
Antoine Pitrou
317def9fdb
bpo-17852: Revert incorrect fix based on misunderstanding of _Py_PyAtExit() semantics ( #4826 )
2017-12-13 01:39:26 +01:00
benfogle
9703f092ab
bpo-31976: Fix race condition when flushing a file is slow. ( #4331 )
2017-11-10 22:03:40 +01:00
Neil Schemenauer
0a1ff24acf
bpo-17852: Maintain a list of BufferedWriter objects. Flush them on exit. ( #3372 )
...
* Maintain a list of BufferedWriter objects. Flush them on exit.
In Python 3, the buffer and the underlying file object are separate
and so the order in which objects are finalized matters. This is
unlike Python 2 where the file and buffer were a single object and
finalization was done for both at the same time. In Python 3, if
the file is finalized and closed before the buffer then the data in
the buffer is lost.
This change adds a doubly linked list of open file buffers. An atexit
hook ensures they are flushed before proceeding with interpreter
shutdown. This is addition does not remove the need to properly close
files as there are other reasons why buffered data could get lost during
finalization.
Initial patch by Armin Rigo.
* Use weakref.WeakSet instead of WeakKeyDictionary.
* Simplify buffered double-linked list types.
* In _flush_all_writers(), suppress errors from flush().
* Remove NEWS entry, use blurb.
* Take more care when flushing file buffers from atexit.
The previous implementation was not careful enough to avoid
causing issues in multi-threaded cases. Check for buf->ok
and buf->finalizing before actually doing the flush. Also,
increase the refcnt to ensure the object does not disappear.
2017-09-22 10:17:30 -07:00
Antoine Pitrou
a6a4dc816d
bpo-31370: Remove support for threads-less builds ( #3385 )
...
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
Neil Schemenauer
db564238db
Revert "bpo-17852: Maintain a list of BufferedWriter objects. Flush them on exit. ( #1908 )" ( #3337 )
...
This reverts commit e38d12ed34
.
2017-09-04 22:13:17 -07:00
Neil Schemenauer
e38d12ed34
bpo-17852: Maintain a list of BufferedWriter objects. Flush them on exit. ( #1908 )
...
* Maintain a list of BufferedWriter objects. Flush them on exit.
In Python 3, the buffer and the underlying file object are separate
and so the order in which objects are finalized matters. This is
unlike Python 2 where the file and buffer were a single object and
finalization was done for both at the same time. In Python 3, if
the file is finalized and closed before the buffer then the data in
the buffer is lost.
This change adds a doubly linked list of open file buffers. An atexit
hook ensures they are flushed before proceeding with interpreter
shutdown. This is addition does not remove the need to properly close
files as there are other reasons why buffered data could get lost during
finalization.
Initial patch by Armin Rigo.
* Use weakref.WeakSet instead of WeakKeyDictionary.
* Simplify buffered double-linked list types.
* In _flush_all_writers(), suppress errors from flush().
* Remove NEWS entry, use blurb.
2017-09-04 20:18:38 -07:00
Oren Milman
de50360ac2
bpo-29741: Update some methods in the _pyio module to also accept integer types. Patch by Oren Milman. ( #560 )
2017-08-24 11:33:42 -07:00
Antoine Pitrou
3c2817b688
Fix bpo-30526: Add TextIOWrapper.reconfigure() and a TextIOWrapper.write_through attribute ( #1922 )
...
* Fix bpo-30526: Add TextIOWrapper.reconfigure()
* Apply Nick's improved wording
* Update Misc/NEWS
2017-06-03 12:32:28 +02:00
Jim Fasarakis-Hilliard
1e73dbbc29
Fix small exception typos in Lib ( #818 )
2017-03-26 13:59:08 -07:00
Serhiy Storchaka
d7d266c113
Merge from 3.6.
2016-12-07 13:32:09 +02:00
Serhiy Storchaka
427f10b442
Merge from 3.5.
2016-12-07 13:31:47 +02:00
Serhiy Storchaka
606ab86c0e
Change order of io.UnsupportedOperation base classes.
...
This makes tests passing after changes by issue #5322 .
2016-12-07 13:31:20 +02:00
Martin Panter
ccb2c0e310
Issue #23214 : Implement optional BufferedReader, BytesIO read1() argument
2016-10-20 23:48:14 +00:00
Martin Panter
62bdea58c5
Drop unused import
2016-06-12 01:56:50 +00:00
Ethan Furman
d62548afed
issue27186: add open/io.open; patch by Jelle Zijlstra
2016-06-04 14:38:43 -07:00
Martin Panter
0b7d84de6b
Issue #27171 : Merge typo fixes from 3.5
2016-06-02 10:11:18 +00:00
Martin Panter
e26da7c03a
Issue #27171 : Fix typos in documentation, comments, and test function names
2016-06-02 10:07:09 +00:00
Martin Panter
c249221dfd
Issue #20699 : Merge io bytes-like fixes from 3.5
2016-05-28 01:07:08 +00:00
Martin Panter
6bb91f3b6e
Issue #20699 : Document that “io” methods accept bytes-like objects
...
This matches the usage of ZipFile and BufferedWriter. This still requires
return values to be bytes() objects.
Also document and test that the write() methods should only access their
argument before they return.
2016-05-28 00:41:57 +00:00
Serhiy Storchaka
b6a9c9761c
Issue #26778 : Fixed "a/an/and" typos in code comment, documentation and error
...
messages.
2016-04-17 09:39:28 +03:00
Serhiy Storchaka
6a7b3a77b4
Issue #26778 : Fixed "a/an/and" typos in code comment and documentation.
2016-04-17 08:32:47 +03:00
Martin Panter
047f3b7376
Issue #22854 : Merge UnsupportedOperation fixes from 3.5
2016-03-31 08:25:59 +00:00
Martin Panter
754aab28ed
Issue #22854 : Clarify documentation about UnsupportedOperation and add tests
...
Also change BufferedReader.writable() and BufferedWriter.readable() to always
return False.
2016-03-31 07:21:56 +00:00
Victor Stinner
e19558af1b
Add a source parameter to warnings.warn()
...
Issue #26604 :
* Add a new optional source parameter to _warnings.warn() and warnings.warn()
* Modify asyncore, asyncio and _pyio modules to set the source parameter when
logging a ResourceWarning warning
2016-03-23 00:28:08 +01:00
Martin Panter
e56a919100
Issue #25523 : Merge a-to-an corrections from 3.5
2015-11-02 04:27:17 +00:00
Martin Panter
2eb819f7a8
Issue #25523 : Merge "a" to "an" fixes from 3.4 into 3.5
2015-11-02 04:04:57 +00:00
Martin Panter
7462b64911
Issue #25523 : Correct "a" article to "an" article
...
This changes the main documentation, doc strings, source code comments, and a
couple error messages in the test suite. In some cases the word was removed
or edited some other way to fix the grammar.
2015-11-02 03:37:02 +00:00
Serhiy Storchaka
ccb31673a6
Issue #24881 : Fixed setting binary mode in Python implementation of FileIO
...
on Windows and Cygwin. Patch from Akira Li.
2015-08-28 22:20:29 +03:00
Serhiy Storchaka
f0f55a00b7
Issue #24881 : Fixed setting binary mode in Python implementation of FileIO
...
on Windows and Cygwin. Patch from Akira Li.
2015-08-28 22:17:04 +03:00
Robert Collins
c94a1dc4c9
- Issue #2091 : error correctly on open() with mode 'U' and '+'
...
open() accepted a 'U' mode string containing '+', but 'U' can only be used with
'r'. Patch from Jeff Balogh and John O'Connor.
2015-07-26 06:43:13 +12:00
Antoine Pitrou
56452eea39
Issue #22982 : Improve BOM handling when seeking to multiple positions of a writable text file.
2015-04-13 20:02:33 +02:00
Antoine Pitrou
85e3ee749c
Issue #22982 : Improve BOM handling when seeking to multiple positions of a writable text file.
2015-04-13 20:01:21 +02:00
Serhiy Storchaka
71fd224af0
Issue #21859 : Added Python implementation of io.FileIO.
2015-04-10 16:16:16 +03:00
Serhiy Storchaka
8be6be427d
Issue #21802 : The reader in BufferedRWPair now is closed even when closing
...
writer failed in BufferedRWPair.close().
2015-03-24 23:23:28 +02:00
Serhiy Storchaka
7665be6087
Issue #21802 : The reader in BufferedRWPair now is closed even when closing
...
writer failed in BufferedRWPair.close().
2015-03-24 23:21:57 +02:00
Benjamin Peterson
41ce610d4c
merge 3.4
2015-03-18 21:36:23 -05:00
Benjamin Peterson
86fdbf3152
wrap properly
2015-03-18 21:35:38 -05:00
Charles-François Natali
6e6c59b508
Issue #23285 : PEP 475 -- Retry system calls failing with EINTR.
2015-02-07 13:27:50 +00:00
Serhiy Storchaka
32ca3dcb97
Issue #23099 : Closing io.BytesIO with exported buffer is rejected now to
...
prevent corrupting exported buffer.
2015-02-03 09:30:51 +02:00
Serhiy Storchaka
c057c3859c
Issue #23099 : Closing io.BytesIO with exported buffer is rejected now to
...
prevent corrupting exported buffer.
2015-02-03 02:00:18 +02:00
Benjamin Peterson
98beb7599e
merge 3.4 ( #23093 )
2014-12-21 21:00:51 -06:00
Benjamin Peterson
10e76b67c9
allow more operations to work on detached streams ( closes #23093 )
...
Patch by Martin Panter.
2014-12-21 20:51:50 -06:00
Nick Coghlan
d600951748
Issue #22869 : Split pythonrun into two modules
...
- interpreter startup and shutdown code moved to a new
pylifecycle.c module
- Py_OptimizeFlag moved into the new module with the other
global flags
2014-11-20 21:39:37 +10:00
Serhiy Storchaka
465e60e654
Issue #22033 : Reprs of most Python implemened classes now contain actual
...
class name instead of hardcoded one.
2014-07-25 23:36:00 +03:00
Benjamin Peterson
a96fea03e8
add BufferedIOBase.readinto1 ( closes #20578 )
...
Patch by Nikolaus Rath.
2014-06-22 14:17:44 -07:00
Serhiy Storchaka
f10063e3c3
Issue #21310 : Fixed possible resource leak in failed open().
2014-06-09 13:32:34 +03:00
Nick Coghlan
a9b15241c6
Close #20404 : blacklist non-text encodings in io.TextIOWrapper
...
- io.TextIOWrapper (and hence the open() builtin) now use the
internal codec marking system added for issue #19619
- also tweaked the C code to only look up the encoding once,
rather than multiple times
- the existing output type checks remain in place to deal with
unmarked third party codecs.
2014-02-04 22:11:18 +10:00
Antoine Pitrou
1328e9d0a0
Issue #20435 : Fix _pyio.StringIO.getvalue() to take into account newline translation settings.
2014-02-02 23:38:48 +01:00
Antoine Pitrou
57839a6349
Issue #20435 : Fix _pyio.StringIO.getvalue() to take into account newline translation settings.
2014-02-02 23:37:29 +01:00
Serhiy Storchaka
9f2e46de34
Issue #20424 : Python implementation of io.StringIO now supports lone surrogates.
2014-01-29 11:45:31 +02:00
Serhiy Storchaka
c92ea76f3f
Issue #20424 : Python implementation of io.StringIO now supports lone surrogates.
2014-01-29 11:33:26 +02:00
Serhiy Storchaka
6787a3806e
Issue #15204 : Deprecated the 'U' mode in file-like objects.
2013-11-23 22:12:06 +02:00
Serhiy Storchaka
3c41154331
Issue #17003 : Unified the size argument names in the io module with common
...
practice.
2013-09-16 23:18:10 +03:00
Victor Stinner
daf455554b
Issue #18571 : Implementation of the PEP 446: file descriptors and file handles
...
are now created non-inheritable; add functions os.get/set_inheritable(),
os.get/set_handle_inheritable() and socket.socket.get/set_inheritable().
2013-08-28 00:53:59 +02:00
Brett Cannon
cd171c8e92
Issue #18200 : Back out usage of ModuleNotFoundError (8d28d44f3a9a)
2013-07-04 17:43:24 -04:00
Brett Cannon
0a140668fa
Issue #18200 : Update the stdlib (except tests) to use
...
ModuleNotFoundError.
2013-06-13 20:57:26 -04:00
Victor Stinner
678ad51b38
Issue #17516 : remove dead code
2013-03-26 01:14:35 +01:00
Terry Jan Reedy
16b5c13668
Merge 3.3, issue #17047 : remove doubled words found in 2.7 to
...
3.4 Lib/*, as reported by Serhiy Storchaka and Matthew Barnett.
2013-03-11 17:59:07 -04:00
Terry Jan Reedy
98472b8396
Merge 3.2, issue #17047 : remove doubled words found in 2.7 to
...
3.4 Lib/*, as reported by Serhiy Storchaka and Matthew Barnett.
2013-03-11 17:58:27 -04:00
Terry Jan Reedy
c30b7b16ea
Issue #17047 : remove doubled words found in 2.7 to 3.4 Lib/*,
...
as reported by Serhiy Storchaka and Matthew Barnett.
2013-03-11 17:57:08 -04:00
Andrew Svetlov
f7a17b48d7
Replace IOError with OSError ( #16715 )
2012-12-25 16:47:37 +02: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
Andrew Svetlov
ad28c7f9da
Issue #16706 : get rid of os.error
2012-12-18 22:02:39 +02:00
Antoine Pitrou
11946fbe80
Issue #15841 : The readable(), writable() and seekable() methods of BytesIO
...
and StringIO objects now raise ValueError when the object has been closed.
Patch by Alessandro Moura.
2012-09-05 20:13:48 +02:00
Antoine Pitrou
1d857453b7
Issue #15841 : The readable(), writable() and seekable() methods of BytesIO
...
and StringIO objects now raise ValueError when the object has been closed.
Patch by Alessandro Moura.
2012-09-05 20:11:49 +02:00
Andrew Svetlov
4e9e9c1c44
Issue #15571 : comment the fact what python impl of TextIOWrapper always works in write_throuth mode
2012-08-13 16:09:54 +03: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
Jesus Cea
9436361e4c
Closes #10142 : Support for SEEK_HOLE/SEEK_DATA
2012-06-22 18:32:07 +02:00
Victor Stinner
f86a5e8a93
Close #11022 : TextIOWrapper doesn't call locale.setlocale() anymore
...
open() and io.TextIOWrapper are now calling locale.getpreferredencoding(False)
instead of locale.getpreferredencoding() in text mode if the encoding is not
specified. Don't change temporary the locale encoding using locale.setlocale(),
use the current locale encoding instead of the user preferred encoding.
Explain also in open() documentation that locale.getpreferredencoding(False) is
called if the encoding is not specified.
2012-06-05 13:43:22 +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
Charles-François Natali
d612de10e5
Issue #12760 : Refer to the new 'x' open mode as "exclusive creation" mode.
2012-01-14 11:51:00 +01:00
Charles-François Natali
dc3044c704
Issue #12760 : Add a create mode to open(). Patch by David Townshend.
2012-01-09 22:40:02 +01: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
Éric Araujo
e64052176d
Merge follow-up for #11254 and other changes from 3.2
2011-11-03 05:17:11 +01:00
Éric Araujo
3924230498
Fix typo
2011-11-03 00:08:48 +01:00
Ross Lagerwall
59142db6d3
Issue #12797 : Added custom opener parameter to builtin open() and FileIO.open().
2011-10-31 20:34:46 +02:00
Antoine Pitrou
24d659daaf
Use InterruptedError instead of checking for EINTR
2011-10-23 23:49:42 +02:00
Antoine Pitrou
6b4883dec0
PEP 3151 / issue #12555 : reworking the OS and IO exception hierarchy.
2011-10-12 02:54:14 +02:00
Antoine Pitrou
d42c1d09e9
Issue #12591 : Allow io.TextIOWrapper to work with raw IO objects (without
...
a read1() method), and add a *write_through* parameter to
mandate unbuffered writes.
2011-07-23 21:50:21 +02:00
Antoine Pitrou
e96ec68101
Issue #12591 : Allow io.TextIOWrapper to work with raw IO objects (without
...
a read1() method), and add an undocumented *write_through* parameter to
mandate unbuffered writes.
2011-07-23 21:46:35 +02:00
Victor Stinner
b57f108b03
Issue #12175 : BufferedReader.read(-1) now calls raw.readall() if available.
2011-05-26 00:19:38 +02:00
Victor Stinner
d2780aedce
(Merge 3.2) Issue #12175 : RawIOBase.readall() now returns None if read()
...
returns None.
2011-05-25 22:51:16 +02:00
Victor Stinner
988512cfd7
(Merge 3.1) Issue #12175 : RawIOBase.readall() now returns None if read()
...
returns None.
2011-05-25 22:49:15 +02:00
Victor Stinner
a80987f20d
Issue #12175 : RawIOBase.readall() now returns None if read() returns None.
2011-05-25 22:47:16 +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
211b81dd09
Issue #11114 : Fix catastrophic performance of tell() on text files (up
...
to 1000x faster in some cases). It is still one to two order of magnitudes
slower than binary tell().
2011-02-25 20:27:33 +00:00
Raymond Hettinger
cbb80896ae
Issue #10899 : Move function type annotations into docstrings.
...
Note, the docstrings (for the most part) were already very thorough
and included type information.
2011-01-13 18:15:51 +00:00
Georg Brandl
4d73b570eb
More PEP 8: no space around "=" in argument lists.
2011-01-13 07:13:06 +00:00
Raymond Hettinger
00fa03900c
Issue 10899: Remove function type annotations from the stdlib
2011-01-13 02:52:26 +00:00
Raymond Hettinger
d2b03e1409
Backport 87978: Do not expose function type annotations in the standard library.
2011-01-12 23:52:40 +00:00
Raymond Hettinger
3c94024c3e
Issue #10899 : No function type annotations in the standard library.
...
Removed function type annotations from _pyio.py.
2011-01-12 23:39:31 +00:00