summaryrefslogtreecommitdiffstats
path: root/Lib/_pyio.py
Commit message (Collapse)AuthorAgeFilesLines
* bpo-15216: io: TextIOWrapper.reconfigure() accepts encoding, errors and ↵INADA Naoki2017-12-211-20/+56
| | | | newline (GH-2343)
* bpo-17852: Revert incorrect fix based on misunderstanding of _Py_PyAtExit() ↵Antoine Pitrou2017-12-131-24/+0
| | | | semantics (#4826)
* bpo-31976: Fix race condition when flushing a file is slow. (#4331)benfogle2017-11-101-2/+17
|
* bpo-17852: Maintain a list of BufferedWriter objects. Flush them on exit. ↵Neil Schemenauer2017-09-221-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#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.
* bpo-31370: Remove support for threads-less builds (#3385)Antoine Pitrou2017-09-071-4/+1
| | | | | | * Remove Setup.config * Always define WITH_THREAD for compatibility.
* Revert "bpo-17852: Maintain a list of BufferedWriter objects. Flush them on ↵Neil Schemenauer2017-09-051-24/+0
| | | | | exit. (#1908)" (#3337) This reverts commit e38d12ed34870c140016bef1e0ff10c8c3d3f213.
* bpo-17852: Maintain a list of BufferedWriter objects. Flush them on exit. ↵Neil Schemenauer2017-09-051-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#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.
* bpo-29741: Update some methods in the _pyio module to also accept integer ↵Oren Milman2017-08-241-14/+38
| | | | types. Patch by Oren Milman. (#560)
* Fix bpo-30526: Add TextIOWrapper.reconfigure() and a ↵Antoine Pitrou2017-06-031-1/+22
| | | | | | | | | | TextIOWrapper.write_through attribute (#1922) * Fix bpo-30526: Add TextIOWrapper.reconfigure() * Apply Nick's improved wording * Update Misc/NEWS
* Fix small exception typos in Lib (#818)Jim Fasarakis-Hilliard2017-03-261-2/+2
|
* Merge from 3.6.Serhiy Storchaka2016-12-071-1/+1
|\
| * Merge from 3.5.Serhiy Storchaka2016-12-071-1/+1
| |\
| | * Change order of io.UnsupportedOperation base classes.Serhiy Storchaka2016-12-071-1/+1
| | | | | | | | | | | | This makes tests passing after changes by issue #5322.
* | | Issue #23214: Implement optional BufferedReader, BytesIO read1() argumentMartin Panter2016-10-201-9/+9
|/ /
* | Drop unused importMartin Panter2016-06-121-1/+0
| |
* | issue27186: add open/io.open; patch by Jelle ZijlstraEthan Furman2016-06-041-0/+2
| |
* | Issue #27171: Merge typo fixes from 3.5Martin Panter2016-06-021-1/+1
|\ \ | |/
| * Issue #27171: Fix typos in documentation, comments, and test function namesMartin Panter2016-06-021-1/+1
| |
* | Issue #20699: Merge io bytes-like fixes from 3.5Martin Panter2016-05-281-12/+14
|\ \ | |/
| * Issue #20699: Document that “io” methods accept bytes-like objectsMartin Panter2016-05-281-12/+14
| | | | | | | | | | | | | | | | 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.
* | Issue #26778: Fixed "a/an/and" typos in code comment, documentation and errorSerhiy Storchaka2016-04-171-1/+1
|\ \ | |/ | | | | messages.
| * Issue #26778: Fixed "a/an/and" typos in code comment and documentation.Serhiy Storchaka2016-04-171-1/+1
| |
* | Issue #22854: Merge UnsupportedOperation fixes from 3.5Martin Panter2016-03-311-9/+9
|\ \ | |/
| * Issue #22854: Clarify documentation about UnsupportedOperation and add testsMartin Panter2016-03-311-9/+9
| | | | | | | | | | Also change BufferedReader.writable() and BufferedWriter.readable() to always return False.
* | Add a source parameter to warnings.warn()Victor Stinner2016-03-221-1/+1
| | | | | | | | | | | | | | | | 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
* | Issue #25523: Merge a-to-an corrections from 3.5Martin Panter2015-11-021-1/+1
|\ \ | |/
| * Issue #25523: Merge "a" to "an" fixes from 3.4 into 3.5Martin Panter2015-11-021-1/+1
| |\
| | * Issue #25523: Correct "a" article to "an" articleMartin Panter2015-11-021-1/+1
| | | | | | | | | | | | | | | | | | 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.
* | | Issue #24881: Fixed setting binary mode in Python implementation of FileIOSerhiy Storchaka2015-08-281-1/+2
|\ \ \ | |/ / | | | | | | on Windows and Cygwin. Patch from Akira Li.
| * | Issue #24881: Fixed setting binary mode in Python implementation of FileIOSerhiy Storchaka2015-08-281-1/+2
| | | | | | | | | | | | on Windows and Cygwin. Patch from Akira Li.
* | | - Issue #2091: error correctly on open() with mode 'U' and '+'Robert Collins2015-07-251-2/+2
|/ / | | | | | | | | open() accepted a 'U' mode string containing '+', but 'U' can only be used with 'r'. Patch from Jeff Balogh and John O'Connor.
* | Issue #22982: Improve BOM handling when seeking to multiple positions of a ↵Antoine Pitrou2015-04-131-11/+15
|\ \ | |/ | | | | writable text file.
| * Issue #22982: Improve BOM handling when seeking to multiple positions of a ↵Antoine Pitrou2015-04-131-11/+15
| | | | | | | | writable text file.
* | Issue #21859: Added Python implementation of io.FileIO.Serhiy Storchaka2015-04-101-0/+344
| |
* | Issue #21802: The reader in BufferedRWPair now is closed even when closingSerhiy Storchaka2015-03-241-2/+4
|\ \ | |/ | | | | writer failed in BufferedRWPair.close().
| * Issue #21802: The reader in BufferedRWPair now is closed even when closingSerhiy Storchaka2015-03-241-2/+4
| | | | | | | | writer failed in BufferedRWPair.close().
* | merge 3.4Benjamin Peterson2015-03-191-2/+2
|\ \ | |/
| * wrap properlyBenjamin Peterson2015-03-191-2/+2
| |
* | Issue #23285: PEP 475 -- Retry system calls failing with EINTR.Charles-François Natali2015-02-071-16/+3
| |
* | Issue #23099: Closing io.BytesIO with exported buffer is rejected now toSerhiy Storchaka2015-02-031-0/+6
|\ \ | |/ | | | | prevent corrupting exported buffer.
| * Issue #23099: Closing io.BytesIO with exported buffer is rejected now toSerhiy Storchaka2015-02-031-0/+6
| | | | | | | | prevent corrupting exported buffer.
* | merge 3.4 (#23093)Benjamin Peterson2014-12-221-3/+3
|\ \ | |/
| * allow more operations to work on detached streams (closes #23093)Benjamin Peterson2014-12-221-3/+3
| | | | | | | | Patch by Martin Panter.
* | Issue #22869: Split pythonrun into two modulesNick Coghlan2014-11-201-1/+1
| | | | | | | | | | | | | | - interpreter startup and shutdown code moved to a new pylifecycle.c module - Py_OptimizeFlag moved into the new module with the other global flags
* | Issue #22033: Reprs of most Python implemened classes now contain actualSerhiy Storchaka2014-07-251-4/+6
| | | | | | | | class name instead of hardcoded one.
* | add BufferedIOBase.readinto1 (closes #20578)Benjamin Peterson2014-06-221-9/+86
|/ | | | Patch by Nikolaus Rath.
* Issue #21310: Fixed possible resource leak in failed open().Serhiy Storchaka2014-06-091-30/+37
|
* Close #20404: blacklist non-text encodings in io.TextIOWrapperNick Coghlan2014-02-041-0/+5
| | | | | | | | | - 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.
* Issue #20435: Fix _pyio.StringIO.getvalue() to take into account newline ↵Antoine Pitrou2014-02-021-1/+7
|\ | | | | | | translation settings.
| * Issue #20435: Fix _pyio.StringIO.getvalue() to take into account newline ↵Antoine Pitrou2014-02-021-1/+7
| | | | | | | | translation settings.