mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
bpo-29695: Remove bad keyword parameters in int(), bool(), float(), list() and tuple(). (#518)
This commit is contained in:
parent
b76ad5121e
commit
2e5642422f
12 changed files with 31 additions and 61 deletions
|
|
@ -42,18 +42,13 @@ PyObject *PyBool_FromLong(long ok)
|
|||
static PyObject *
|
||||
bool_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||
{
|
||||
static char *kwlist[] = {"x", 0};
|
||||
PyObject *x = Py_False;
|
||||
long ok;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:bool", kwlist, &x))
|
||||
if (!_PyArg_NoKeywords("bool()", kwds))
|
||||
return NULL;
|
||||
if (!PyArg_UnpackTuple(args, "bool", 0, 1, &x))
|
||||
return NULL;
|
||||
if (kwds != NULL && PyDict_GET_SIZE(kwds) != 0) {
|
||||
if (PyErr_Warn(PyExc_DeprecationWarning,
|
||||
"Using 'x' as a keyword argument is deprecated; "
|
||||
"specify the value as a positional argument instead") < 0)
|
||||
return NULL;
|
||||
}
|
||||
ok = PyObject_IsTrue(x);
|
||||
if (ok < 0)
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -1563,18 +1563,13 @@ static PyObject *
|
|||
float_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||
{
|
||||
PyObject *x = Py_False; /* Integer zero */
|
||||
static char *kwlist[] = {"x", 0};
|
||||
|
||||
if (type != &PyFloat_Type)
|
||||
return float_subtype_new(type, args, kwds); /* Wimp out */
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:float", kwlist, &x))
|
||||
if (!_PyArg_NoKeywords("float()", kwds))
|
||||
return NULL;
|
||||
if (!PyArg_UnpackTuple(args, "float", 0, 1, &x))
|
||||
return NULL;
|
||||
if (kwds != NULL && PyDict_GET_SIZE(kwds) != 0) {
|
||||
if (PyErr_Warn(PyExc_DeprecationWarning,
|
||||
"Using 'x' as a keyword argument is deprecated; "
|
||||
"specify the value as a positional argument instead") < 0)
|
||||
return NULL;
|
||||
}
|
||||
/* If it's a string, but not a string subclass, use
|
||||
PyFloat_FromString. */
|
||||
if (PyUnicode_CheckExact(x))
|
||||
|
|
|
|||
|
|
@ -2293,16 +2293,11 @@ static int
|
|||
list_init(PyListObject *self, PyObject *args, PyObject *kw)
|
||||
{
|
||||
PyObject *arg = NULL;
|
||||
static char *kwlist[] = {"sequence", 0};
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kw, "|O:list", kwlist, &arg))
|
||||
if (!_PyArg_NoKeywords("list()", kw))
|
||||
return -1;
|
||||
if (!PyArg_UnpackTuple(args, "list", 0, 1, &arg))
|
||||
return -1;
|
||||
if (arg != NULL && PyTuple_GET_SIZE(args) == 0) {
|
||||
if (PyErr_Warn(PyExc_DeprecationWarning,
|
||||
"Using 'sequence' as a keyword argument is deprecated; "
|
||||
"specify the value as a positional argument instead") < 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Verify list invariants established by PyType_GenericAlloc() */
|
||||
assert(0 <= Py_SIZE(self));
|
||||
|
|
|
|||
|
|
@ -4796,7 +4796,7 @@ long_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
{
|
||||
PyObject *obase = NULL, *x = NULL;
|
||||
Py_ssize_t base;
|
||||
static char *kwlist[] = {"x", "base", 0};
|
||||
static char *kwlist[] = {"", "base", 0};
|
||||
|
||||
if (type != &PyLong_Type)
|
||||
return long_subtype_new(type, args, kwds); /* Wimp out */
|
||||
|
|
@ -4811,12 +4811,6 @@ long_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
}
|
||||
return PyLong_FromLong(0L);
|
||||
}
|
||||
if (PyTuple_GET_SIZE(args) == 0) {
|
||||
if (PyErr_Warn(PyExc_DeprecationWarning,
|
||||
"Using 'x' as a keyword argument is deprecated; "
|
||||
"specify the value as a positional argument instead") < 0)
|
||||
return NULL;
|
||||
}
|
||||
if (obase == NULL)
|
||||
return PyNumber_Long(x);
|
||||
|
||||
|
|
|
|||
|
|
@ -648,18 +648,13 @@ static PyObject *
|
|||
tuple_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||
{
|
||||
PyObject *arg = NULL;
|
||||
static char *kwlist[] = {"sequence", 0};
|
||||
|
||||
if (type != &PyTuple_Type)
|
||||
return tuple_subtype_new(type, args, kwds);
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:tuple", kwlist, &arg))
|
||||
if (!_PyArg_NoKeywords("tuple()", kwds))
|
||||
return NULL;
|
||||
if (!PyArg_UnpackTuple(args, "tuple", 0, 1, &arg))
|
||||
return NULL;
|
||||
if (arg != NULL && PyTuple_GET_SIZE(args) == 0) {
|
||||
if (PyErr_Warn(PyExc_DeprecationWarning,
|
||||
"Using 'sequence' as a keyword argument is deprecated; "
|
||||
"specify the value as a positional argument instead") < 0)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (arg == NULL)
|
||||
return PyTuple_New(0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue