bpo-15999: Accept arbitrary values for boolean parameters. (#15609)

builtins and extension module functions and methods that expect boolean values for parameters now accept any Python object rather than just a bool or int type. This is more consistent with how native Python code itself behaves.
This commit is contained in:
Serhiy Storchaka 2022-12-03 21:52:21 +02:00 committed by GitHub
parent c68573b339
commit a87c46eab3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
52 changed files with 297 additions and 302 deletions

View file

@ -354,8 +354,8 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
}
}
if (args[4]) {
dont_inherit = _PyLong_AsInt(args[4]);
if (dont_inherit == -1 && PyErr_Occurred()) {
dont_inherit = PyObject_IsTrue(args[4]);
if (dont_inherit < 0) {
goto exit;
}
if (!--noptargs) {
@ -1215,4 +1215,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
exit:
return return_value;
}
/*[clinic end generated code: output=3c9497e0ffeb8a30 input=a9049054013a1b77]*/
/*[clinic end generated code: output=973da43fa65aa727 input=a9049054013a1b77]*/