Victor Stinner
331a6a56e9
bpo-36763: Implement the PEP 587 (GH-13592)
...
* Add a whole new documentation page:
"Python Initialization Configuration"
* PyWideStringList_Append() return type is now PyStatus,
instead of int
* PyInterpreterState_New() now calls PyConfig_Clear() if
PyConfig_InitPythonConfig() fails.
* Rename files:
* Python/coreconfig.c => Python/initconfig.c
* Include/cpython/coreconfig.h => Include/cpython/initconfig.h
* Include/internal/: pycore_coreconfig.h => pycore_initconfig.h
* Rename structures
* _PyCoreConfig => PyConfig
* _PyPreConfig => PyPreConfig
* _PyInitError => PyStatus
* _PyWstrList => PyWideStringList
* Rename PyConfig fields:
* use_module_search_paths => module_search_paths_set
* module_search_path_env => pythonpath_env
* Rename PyStatus field: _func => func
* PyInterpreterState: rename core_config field to config
* Rename macros and functions:
* _PyCoreConfig_SetArgv() => PyConfig_SetBytesArgv()
* _PyCoreConfig_SetWideArgv() => PyConfig_SetArgv()
* _PyCoreConfig_DecodeLocale() => PyConfig_SetBytesString()
* _PyInitError_Failed() => PyStatus_Exception()
* _Py_INIT_ERROR_TYPE_xxx enums => _PyStatus_TYPE_xxx
* _Py_UnixMain() => Py_BytesMain()
* _Py_ExitInitError() => Py_ExitStatusException()
* _Py_PreInitializeFromArgs() => Py_PreInitializeFromBytesArgs()
* _Py_PreInitializeFromWideArgs() => Py_PreInitializeFromArgs()
* _Py_PreInitialize() => Py_PreInitialize()
* _Py_RunMain() => Py_RunMain()
* _Py_InitializeFromConfig() => Py_InitializeFromConfig()
* _Py_INIT_XXX() => _PyStatus_XXX()
* _Py_INIT_FAILED() => _PyStatus_EXCEPTION()
* Rename 'err' PyStatus variables to 'status'
* Convert RUN_CODE() macro to config_run_code() static inline function
* Remove functions:
* _Py_InitializeFromArgs()
* _Py_InitializeFromWideArgs()
* _PyInterpreterState_GetCoreConfig()
2019-05-27 16:39:22 +02:00
Steve Dower
b82e17e626
bpo-36842: Implement PEP 578 (GH-12613)
...
Adds sys.audit, sys.addaudithook, io.open_code, and associated C APIs.
2019-05-23 08:45:22 -07:00
Victor Stinner
c96be811fa
bpo-36900: Replace global conf vars with config (GH-13299)
...
Replace global configuration variables with core_config read from the
current interpreter.
Cleanup dynload_hpux.c.
2019-05-14 17:34:56 +02:00
Berker Peksag
21a9ba1992
bpo-2091: Fix typo in exception message (GH-12987)
2019-04-27 22:40:45 +03: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
David Herberth
8deab96725
bpo-34070: open() only checks for isatty if buffering < 0 (GH-8187)
2018-10-20 00:32:04 +02:00
Erik Janssens
e6a4755e67
bpo-34217: Use lowercase for windows headers (GH-8472)
2018-08-16 15:40:50 +09:00
Carl Meyer
c0ee341b29
Fix Windows build of Python for latest WinSDK. (GH-6874)
2018-05-17 14:03:59 -04:00
Serhiy Storchaka
4d9aec0220
bpo-31572: Get rid of PyObject_HasAttr() and _PyObject_HasAttrId() in the _io module. ( #3726 )
2018-01-16 18:34:21 +02:00
Benjamin Peterson
0a37a30037
closes bpo-32460: ensure all non-static globals have initializers ( #5061 )
2017-12-31 10:04:13 -08: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
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
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
Serhiy Storchaka
55fe1ae970
bpo-30022: Get rid of using EnvironmentError and IOError (except test… ( #1051 )
2017-04-16 10:46:38 +03:00
Serhiy Storchaka
762bf40438
bpo-29852: Argument Clinic Py_ssize_t converter now supports None ( #716 )
...
if pass `accept={int, NoneType}`.
2017-03-30 09:15:31 +03:00
Serhiy Storchaka
ba85d69a3e
bpo-29878: Add global instances of int for 0 and 1. ( #852 )
2017-03-30 09:09:41 +03:00
Oren Milman
004251059b
bpo-29730: replace some calls to PyNumber_Check and improve some error messages ( #650 )
2017-03-13 00:37:05 +02:00
Serhiy Storchaka
202fda55c2
bpo-24037: Add Argument Clinic converter `bool(accept={int})`. ( #485 )
2017-03-12 10:10:47 +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
Steve Dower
3929499914
Issue #1602 : Windows console doesn't input or print Unicode (PEP 528)
...
Closes #17602 : Adds a readline implementation for the Windows console
2016-08-30 21:22:36 -07:00
Serhiy Storchaka
2954f83999
- Issue #27332 : Fixed the type of the first argument of module-level functions
...
generated by Argument Clinic. Patch by Petr Viktorin.
2016-07-07 18:20:03 +03:00
Serhiy Storchaka
1a2b24f02d
Issue #27332 : Fixed the type of the first argument of module-level functions
...
generated by Argument Clinic. Patch by Petr Viktorin.
2016-07-07 17:35:15 +03:00
Ethan Furman
d62548afed
issue27186: add open/io.open; patch by Jelle Zijlstra
2016-06-04 14:38:43 -07: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
56f6e76c68
Issue #15989 : Fixed some scarcely probable integer overflows.
...
It is very unlikely that they can occur in real code for now.
2015-09-06 21:25:30 +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
Larry Hastings
dbfdc380df
Issue #24001 : Argument Clinic converters now use accept={type}
...
instead of types={'type'} to specify the types the converter accepts.
2015-05-04 06:59:46 -07:00
Serhiy Storchaka
f24131ff31
Issue #20175 : Converted the _io module to Argument Clinic.
2015-04-16 11:19:43 +03:00
Serhiy Storchaka
78184af9b5
Issue #21715 : Extracted shared complicated code in the _io module to new
...
_PyErr_ChainExceptions() function.
2014-10-08 22:32:50 +03:00
Serhiy Storchaka
e2bd2a7186
Issue #21715 : Extracted shared complicated code in the _io module to new
...
_PyErr_ChainExceptions() function.
2014-10-08 22:31:52 +03:00
Benjamin Peterson
e865128605
properly decref the return value of close()
2014-07-04 17:00:25 -07:00
Benjamin Peterson
4f654fbe30
properly decref the return value of close()
2014-07-04 17:00:25 -07:00
Antoine Pitrou
de68722ca0
Issue #21679 : Prevent extraneous fstat() calls during open(). Patch by Bohuslav Kabrda.
2014-06-29 20:07:28 -04:00
Serhiy Storchaka
76d3f14e01
PyErr_NormalizeException doesn't like being called with an exception set
...
(issues #21677 , #21310 ).
2014-06-11 07:18:53 +03:00
Serhiy Storchaka
f10063e3c3
Issue #21310 : Fixed possible resource leak in failed open().
2014-06-09 13:32:34 +03:00
Antoine Pitrou
712cb734bd
Issue #20037 : Avoid crashes when doing text I/O late at interpreter shutdown.
2013-12-21 15:51:54 +01:00
Serhiy Storchaka
6787a3806e
Issue #15204 : Deprecated the 'U' mode in file-like objects.
2013-11-23 22:12:06 +02:00
Antoine Pitrou
fd4722cacf
Issue #9548 : Add a minimal "_bootlocale" module that is imported by the _io module instead of the full locale module.
2013-10-12 00:13:50 +02:00
Antoine Pitrou
932ff83682
Issue #18608 : Avoid keeping a strong reference to the locale module inside the _io module.
2013-08-01 21:04:50 +02:00
Andrew Kuchling
c7b6c50f29
Describe 'surrogateescape' in the documentation.
...
Also, improve some docstring descriptions of the 'errors' parameter.
Closes #14015 .
2013-06-16 12:58:48 -04:00
Andrew Svetlov
5b89840d9c
Issue #16714 : use 'raise' exceptions, don't 'throw'.
...
Patch by Serhiy Storchaka.
2012-12-18 21:26:36 +02:00
Andrew Svetlov
737fb89dd1
Issue #16714 : use 'raise' exceptions, don't 'throw'.
...
Patch by Serhiy Storchaka.
2012-12-18 21:14:22 +02:00
Ezio Melotti
6d10b4d591
#15796 : merge with 3.2.
2012-09-18 07:21:18 +03:00
Ezio Melotti
16d2b47837
#15796 : Fix \n in readline docstring. Patch by Serhiy Storchaka.
2012-09-18 07:20:18 +03:00
Christian Heimes
89ff3c7f20
Fixed out-of-bounce write to rawmode buffer. The fixed size buffer wasn't enlarged for the new 'x' flag. The buffer may contain the 5 flags xrwa+ and the \0 byte
2012-09-10 03:50:48 +02:00
Victor Stinner
d1f9352bd4
(Merge 3.2) open() / TextIOWrapper doc: make it explicit than newline='\n'
...
doesn't translate newlines on output.
2012-08-04 01:22:07 +02:00