mirror of
https://github.com/python/cpython.git
synced 2025-09-18 22:50:26 +00:00
bpo-43680: _pyio.open() becomes a static method (GH-25354)
The Python _pyio.open() function becomes a static method to behave as io.open() built-in function: don't become a bound method when stored as a class variable. It becomes possible since static methods are now callable in Python 3.10. Moreover, _pyio.OpenWrapper becomes a simple alias to _pyio.open. init_set_builtins_open() now sets builtins.open to io.open, rather than setting it to io.OpenWrapper, since OpenWrapper is now an alias to open in the io and _pyio modules.
This commit is contained in:
parent
9825bdfbd5
commit
77d668b122
3 changed files with 18 additions and 14 deletions
|
@ -2241,7 +2241,7 @@ error:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* Set builtins.open to io.OpenWrapper */
|
||||
/* Set builtins.open to io.open */
|
||||
static PyStatus
|
||||
init_set_builtins_open(void)
|
||||
{
|
||||
|
@ -2257,7 +2257,7 @@ init_set_builtins_open(void)
|
|||
goto error;
|
||||
}
|
||||
|
||||
if (!(wrapper = PyObject_GetAttrString(iomod, "OpenWrapper"))) {
|
||||
if (!(wrapper = PyObject_GetAttrString(iomod, "open"))) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
@ -2279,7 +2279,7 @@ done:
|
|||
}
|
||||
|
||||
|
||||
/* Initialize sys.stdin, stdout, stderr and builtins.open */
|
||||
/* Create sys.stdin, sys.stdout and sys.stderr */
|
||||
static PyStatus
|
||||
init_sys_streams(PyThreadState *tstate)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue