mirror of https://github.com/python/cpython
gh-117764: Fix and add signatures for many builtins (GH-117769)
This commit is contained in:
parent
94e9c35cd0
commit
3a8c1ca7e7
|
@ -8,6 +8,12 @@ preserve
|
||||||
#endif
|
#endif
|
||||||
#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
|
#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
|
||||||
|
|
||||||
|
PyDoc_STRVAR(mappingproxy_new__doc__,
|
||||||
|
"mappingproxy(mapping)\n"
|
||||||
|
"--\n"
|
||||||
|
"\n"
|
||||||
|
"Read-only proxy of a mapping.");
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping);
|
mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping);
|
||||||
|
|
||||||
|
@ -167,4 +173,4 @@ skip_optional_pos:
|
||||||
exit:
|
exit:
|
||||||
return return_value;
|
return return_value;
|
||||||
}
|
}
|
||||||
/*[clinic end generated code: output=a4664ccf3da10f5a input=a9049054013a1b77]*/
|
/*[clinic end generated code: output=050e331316a04207 input=a9049054013a1b77]*/
|
||||||
|
|
|
@ -1165,8 +1165,8 @@ mappingproxy_reversed(PyObject *self, PyObject *Py_UNUSED(ignored))
|
||||||
|
|
||||||
static PyMethodDef mappingproxy_methods[] = {
|
static PyMethodDef mappingproxy_methods[] = {
|
||||||
{"get", _PyCFunction_CAST(mappingproxy_get), METH_FASTCALL,
|
{"get", _PyCFunction_CAST(mappingproxy_get), METH_FASTCALL,
|
||||||
PyDoc_STR("D.get(k[,d]) -> D[k] if k in D, else d."
|
PyDoc_STR("get($self, key, default=None, /)\n--\n\n"
|
||||||
" d defaults to None.")},
|
"Return the value for key if key is in the mapping, else default.")},
|
||||||
{"keys", mappingproxy_keys, METH_NOARGS,
|
{"keys", mappingproxy_keys, METH_NOARGS,
|
||||||
PyDoc_STR("D.keys() -> a set-like object providing a view on D's keys")},
|
PyDoc_STR("D.keys() -> a set-like object providing a view on D's keys")},
|
||||||
{"values", mappingproxy_values, METH_NOARGS,
|
{"values", mappingproxy_values, METH_NOARGS,
|
||||||
|
@ -1254,11 +1254,12 @@ mappingproxy.__new__ as mappingproxy_new
|
||||||
|
|
||||||
mapping: object
|
mapping: object
|
||||||
|
|
||||||
|
Read-only proxy of a mapping.
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping)
|
mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping)
|
||||||
/*[clinic end generated code: output=65f27f02d5b68fa7 input=d2d620d4f598d4f8]*/
|
/*[clinic end generated code: output=65f27f02d5b68fa7 input=c156df096ef7590c]*/
|
||||||
{
|
{
|
||||||
mappingproxyobject *mappingproxy;
|
mappingproxyobject *mappingproxy;
|
||||||
|
|
||||||
|
@ -2024,7 +2025,7 @@ PyTypeObject PyDictProxy_Type = {
|
||||||
0, /* tp_as_buffer */
|
0, /* tp_as_buffer */
|
||||||
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
|
||||||
Py_TPFLAGS_MAPPING, /* tp_flags */
|
Py_TPFLAGS_MAPPING, /* tp_flags */
|
||||||
0, /* tp_doc */
|
mappingproxy_new__doc__, /* tp_doc */
|
||||||
mappingproxy_traverse, /* tp_traverse */
|
mappingproxy_traverse, /* tp_traverse */
|
||||||
0, /* tp_clear */
|
0, /* tp_clear */
|
||||||
mappingproxy_richcompare, /* tp_richcompare */
|
mappingproxy_richcompare, /* tp_richcompare */
|
||||||
|
|
|
@ -537,6 +537,8 @@ _Py_subs_parameters(PyObject *self, PyObject *args, PyObject *parameters, PyObje
|
||||||
}
|
}
|
||||||
|
|
||||||
PyDoc_STRVAR(genericalias__doc__,
|
PyDoc_STRVAR(genericalias__doc__,
|
||||||
|
"GenericAlias(origin, args, /)\n"
|
||||||
|
"--\n\n"
|
||||||
"Represent a PEP 585 generic type\n"
|
"Represent a PEP 585 generic type\n"
|
||||||
"\n"
|
"\n"
|
||||||
"E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).");
|
"E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).");
|
||||||
|
|
|
@ -3255,6 +3255,9 @@ PyDoc_STRVAR(memory_f_contiguous_doc,
|
||||||
"A bool indicating whether the memory is Fortran contiguous.");
|
"A bool indicating whether the memory is Fortran contiguous.");
|
||||||
PyDoc_STRVAR(memory_contiguous_doc,
|
PyDoc_STRVAR(memory_contiguous_doc,
|
||||||
"A bool indicating whether the memory is contiguous.");
|
"A bool indicating whether the memory is contiguous.");
|
||||||
|
PyDoc_STRVAR(memory_exit_doc,
|
||||||
|
"__exit__($self, /, *exc_info)\n--\n\n"
|
||||||
|
"Release the underlying buffer exposed by the memoryview object.");
|
||||||
|
|
||||||
|
|
||||||
static PyGetSetDef memory_getsetlist[] = {
|
static PyGetSetDef memory_getsetlist[] = {
|
||||||
|
@ -3283,7 +3286,7 @@ static PyMethodDef memory_methods[] = {
|
||||||
MEMORYVIEW_TOREADONLY_METHODDEF
|
MEMORYVIEW_TOREADONLY_METHODDEF
|
||||||
MEMORYVIEW__FROM_FLAGS_METHODDEF
|
MEMORYVIEW__FROM_FLAGS_METHODDEF
|
||||||
{"__enter__", memory_enter, METH_NOARGS, NULL},
|
{"__enter__", memory_enter, METH_NOARGS, NULL},
|
||||||
{"__exit__", memory_exit, METH_VARARGS, NULL},
|
{"__exit__", memory_exit, METH_VARARGS, memory_exit_doc},
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -227,9 +227,9 @@ static PyMethodDef namespace_methods[] = {
|
||||||
|
|
||||||
|
|
||||||
PyDoc_STRVAR(namespace_doc,
|
PyDoc_STRVAR(namespace_doc,
|
||||||
"A simple attribute-based namespace.\n\
|
"SimpleNamespace(**kwargs)\n\
|
||||||
\n\
|
--\n\n\
|
||||||
SimpleNamespace(**kwargs)");
|
A simple attribute-based namespace.");
|
||||||
|
|
||||||
PyTypeObject _PyNamespace_Type = {
|
PyTypeObject _PyNamespace_Type = {
|
||||||
PyVarObject_HEAD_INIT(&PyType_Type, 0)
|
PyVarObject_HEAD_INIT(&PyType_Type, 0)
|
||||||
|
|
|
@ -751,7 +751,7 @@ PyDoc_STRVAR(index_doc,
|
||||||
|
|
||||||
static PyMethodDef range_methods[] = {
|
static PyMethodDef range_methods[] = {
|
||||||
{"__reversed__", range_reverse, METH_NOARGS, reverse_doc},
|
{"__reversed__", range_reverse, METH_NOARGS, reverse_doc},
|
||||||
{"__reduce__", (PyCFunction)range_reduce, METH_VARARGS},
|
{"__reduce__", (PyCFunction)range_reduce, METH_NOARGS},
|
||||||
{"count", (PyCFunction)range_count, METH_O, count_doc},
|
{"count", (PyCFunction)range_count, METH_O, count_doc},
|
||||||
{"index", (PyCFunction)range_index, METH_O, index_doc},
|
{"index", (PyCFunction)range_index, METH_O, index_doc},
|
||||||
{NULL, NULL} /* sentinel */
|
{NULL, NULL} /* sentinel */
|
||||||
|
|
|
@ -6917,7 +6917,7 @@ static PyMethodDef object_methods[] = {
|
||||||
OBJECT___REDUCE_EX___METHODDEF
|
OBJECT___REDUCE_EX___METHODDEF
|
||||||
OBJECT___REDUCE___METHODDEF
|
OBJECT___REDUCE___METHODDEF
|
||||||
OBJECT___GETSTATE___METHODDEF
|
OBJECT___GETSTATE___METHODDEF
|
||||||
{"__subclasshook__", object_subclasshook, METH_CLASS | METH_VARARGS,
|
{"__subclasshook__", object_subclasshook, METH_CLASS | METH_O,
|
||||||
object_subclasshook_doc},
|
object_subclasshook_doc},
|
||||||
{"__init_subclass__", object_init_subclass, METH_CLASS | METH_NOARGS,
|
{"__init_subclass__", object_init_subclass, METH_CLASS | METH_NOARGS,
|
||||||
object_init_subclass_doc},
|
object_init_subclass_doc},
|
||||||
|
@ -9893,7 +9893,8 @@ static pytype_slotdef slotdefs[] = {
|
||||||
TPSLOT(__getattribute__, tp_getattro, _Py_slot_tp_getattr_hook,
|
TPSLOT(__getattribute__, tp_getattro, _Py_slot_tp_getattr_hook,
|
||||||
wrap_binaryfunc,
|
wrap_binaryfunc,
|
||||||
"__getattribute__($self, name, /)\n--\n\nReturn getattr(self, name)."),
|
"__getattribute__($self, name, /)\n--\n\nReturn getattr(self, name)."),
|
||||||
TPSLOT(__getattr__, tp_getattro, _Py_slot_tp_getattr_hook, NULL, ""),
|
TPSLOT(__getattr__, tp_getattro, _Py_slot_tp_getattr_hook, NULL,
|
||||||
|
"__getattr__($self, name, /)\n--\n\nImplement getattr(self, name)."),
|
||||||
TPSLOT(__setattr__, tp_setattro, slot_tp_setattro, wrap_setattr,
|
TPSLOT(__setattr__, tp_setattro, slot_tp_setattro, wrap_setattr,
|
||||||
"__setattr__($self, name, value, /)\n--\n\nImplement setattr(self, name, value)."),
|
"__setattr__($self, name, value, /)\n--\n\nImplement setattr(self, name, value)."),
|
||||||
TPSLOT(__delattr__, tp_setattro, slot_tp_setattro, wrap_delattr,
|
TPSLOT(__delattr__, tp_setattro, slot_tp_setattro, wrap_delattr,
|
||||||
|
@ -9928,7 +9929,9 @@ static pytype_slotdef slotdefs[] = {
|
||||||
TPSLOT(__new__, tp_new, slot_tp_new, NULL,
|
TPSLOT(__new__, tp_new, slot_tp_new, NULL,
|
||||||
"__new__(type, /, *args, **kwargs)\n--\n\n"
|
"__new__(type, /, *args, **kwargs)\n--\n\n"
|
||||||
"Create and return new object. See help(type) for accurate signature."),
|
"Create and return new object. See help(type) for accurate signature."),
|
||||||
TPSLOT(__del__, tp_finalize, slot_tp_finalize, (wrapperfunc)wrap_del, ""),
|
TPSLOT(__del__, tp_finalize, slot_tp_finalize, (wrapperfunc)wrap_del,
|
||||||
|
"__del__($self, /)\n--\n\n"
|
||||||
|
"Called when the instance is about to be destroyed."),
|
||||||
|
|
||||||
BUFSLOT(__buffer__, bf_getbuffer, slot_bf_getbuffer, wrap_buffer,
|
BUFSLOT(__buffer__, bf_getbuffer, slot_bf_getbuffer, wrap_buffer,
|
||||||
"__buffer__($self, flags, /)\n--\n\n"
|
"__buffer__($self, flags, /)\n--\n\n"
|
||||||
|
|
|
@ -475,7 +475,7 @@ builtin_breakpoint(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
|
||||||
}
|
}
|
||||||
|
|
||||||
PyDoc_STRVAR(breakpoint_doc,
|
PyDoc_STRVAR(breakpoint_doc,
|
||||||
"breakpoint(*args, **kws)\n\
|
"breakpoint($module, /, *args, **kws)\n\
|
||||||
--\n\
|
--\n\
|
||||||
\n\
|
\n\
|
||||||
Call sys.breakpointhook(*args, **kws). sys.breakpointhook() must accept\n\
|
Call sys.breakpointhook(*args, **kws). sys.breakpointhook() must accept\n\
|
||||||
|
@ -1703,16 +1703,16 @@ anext as builtin_anext
|
||||||
default: object = NULL
|
default: object = NULL
|
||||||
/
|
/
|
||||||
|
|
||||||
async anext(aiterator[, default])
|
Return the next item from the async iterator.
|
||||||
|
|
||||||
Return the next item from the async iterator. If default is given and the async
|
If default is given and the async iterator is exhausted,
|
||||||
iterator is exhausted, it is returned instead of raising StopAsyncIteration.
|
it is returned instead of raising StopAsyncIteration.
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
builtin_anext_impl(PyObject *module, PyObject *aiterator,
|
builtin_anext_impl(PyObject *module, PyObject *aiterator,
|
||||||
PyObject *default_value)
|
PyObject *default_value)
|
||||||
/*[clinic end generated code: output=f02c060c163a81fa input=8f63f4f78590bb4c]*/
|
/*[clinic end generated code: output=f02c060c163a81fa input=2900e4a370d39550]*/
|
||||||
{
|
{
|
||||||
PyTypeObject *t;
|
PyTypeObject *t;
|
||||||
PyObject *awaitable;
|
PyObject *awaitable;
|
||||||
|
|
|
@ -693,10 +693,10 @@ PyDoc_STRVAR(builtin_anext__doc__,
|
||||||
"anext($module, aiterator, default=<unrepresentable>, /)\n"
|
"anext($module, aiterator, default=<unrepresentable>, /)\n"
|
||||||
"--\n"
|
"--\n"
|
||||||
"\n"
|
"\n"
|
||||||
"async anext(aiterator[, default])\n"
|
"Return the next item from the async iterator.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Return the next item from the async iterator. If default is given and the async\n"
|
"If default is given and the async iterator is exhausted,\n"
|
||||||
"iterator is exhausted, it is returned instead of raising StopAsyncIteration.");
|
"it is returned instead of raising StopAsyncIteration.");
|
||||||
|
|
||||||
#define BUILTIN_ANEXT_METHODDEF \
|
#define BUILTIN_ANEXT_METHODDEF \
|
||||||
{"anext", _PyCFunction_CAST(builtin_anext), METH_FASTCALL, builtin_anext__doc__},
|
{"anext", _PyCFunction_CAST(builtin_anext), METH_FASTCALL, builtin_anext__doc__},
|
||||||
|
@ -1193,4 +1193,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
|
||||||
exit:
|
exit:
|
||||||
return return_value;
|
return return_value;
|
||||||
}
|
}
|
||||||
/*[clinic end generated code: output=643a8d5f900e0c36 input=a9049054013a1b77]*/
|
/*[clinic end generated code: output=6d15edfc194b2c08 input=a9049054013a1b77]*/
|
||||||
|
|
|
@ -9,7 +9,7 @@ preserve
|
||||||
#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
|
#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
|
||||||
|
|
||||||
PyDoc_STRVAR(tb_new__doc__,
|
PyDoc_STRVAR(tb_new__doc__,
|
||||||
"TracebackType(tb_next, tb_frame, tb_lasti, tb_lineno)\n"
|
"traceback(tb_next, tb_frame, tb_lasti, tb_lineno)\n"
|
||||||
"--\n"
|
"--\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Create a new traceback object.");
|
"Create a new traceback object.");
|
||||||
|
@ -43,7 +43,7 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
|
||||||
static const char * const _keywords[] = {"tb_next", "tb_frame", "tb_lasti", "tb_lineno", NULL};
|
static const char * const _keywords[] = {"tb_next", "tb_frame", "tb_lasti", "tb_lineno", NULL};
|
||||||
static _PyArg_Parser _parser = {
|
static _PyArg_Parser _parser = {
|
||||||
.keywords = _keywords,
|
.keywords = _keywords,
|
||||||
.fname = "TracebackType",
|
.fname = "traceback",
|
||||||
.kwtuple = KWTUPLE,
|
.kwtuple = KWTUPLE,
|
||||||
};
|
};
|
||||||
#undef KWTUPLE
|
#undef KWTUPLE
|
||||||
|
@ -61,7 +61,7 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
|
||||||
}
|
}
|
||||||
tb_next = fastargs[0];
|
tb_next = fastargs[0];
|
||||||
if (!PyObject_TypeCheck(fastargs[1], &PyFrame_Type)) {
|
if (!PyObject_TypeCheck(fastargs[1], &PyFrame_Type)) {
|
||||||
_PyArg_BadArgument("TracebackType", "argument 'tb_frame'", (&PyFrame_Type)->tp_name, fastargs[1]);
|
_PyArg_BadArgument("traceback", "argument 'tb_frame'", (&PyFrame_Type)->tp_name, fastargs[1]);
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
tb_frame = (PyFrameObject *)fastargs[1];
|
tb_frame = (PyFrameObject *)fastargs[1];
|
||||||
|
@ -78,4 +78,4 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
|
||||||
exit:
|
exit:
|
||||||
return return_value;
|
return return_value;
|
||||||
}
|
}
|
||||||
/*[clinic end generated code: output=4e2f6b935841b09c input=a9049054013a1b77]*/
|
/*[clinic end generated code: output=916a759875507c5a input=a9049054013a1b77]*/
|
||||||
|
|
|
@ -34,9 +34,9 @@
|
||||||
extern char* _PyTokenizer_FindEncodingFilename(int, PyObject *);
|
extern char* _PyTokenizer_FindEncodingFilename(int, PyObject *);
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
class TracebackType "PyTracebackObject *" "&PyTraceback_Type"
|
class traceback "PyTracebackObject *" "&PyTraceback_Type"
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=928fa06c10151120]*/
|
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=cf96294b2bebc811]*/
|
||||||
|
|
||||||
#include "clinic/traceback.c.h"
|
#include "clinic/traceback.c.h"
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ tb_create_raw(PyTracebackObject *next, PyFrameObject *frame, int lasti,
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
@classmethod
|
@classmethod
|
||||||
TracebackType.__new__ as tb_new
|
traceback.__new__ as tb_new
|
||||||
|
|
||||||
tb_next: object
|
tb_next: object
|
||||||
tb_frame: object(type='PyFrameObject *', subclass_of='&PyFrame_Type')
|
tb_frame: object(type='PyFrameObject *', subclass_of='&PyFrame_Type')
|
||||||
|
@ -76,7 +76,7 @@ Create a new traceback object.
|
||||||
static PyObject *
|
static PyObject *
|
||||||
tb_new_impl(PyTypeObject *type, PyObject *tb_next, PyFrameObject *tb_frame,
|
tb_new_impl(PyTypeObject *type, PyObject *tb_next, PyFrameObject *tb_frame,
|
||||||
int tb_lasti, int tb_lineno)
|
int tb_lasti, int tb_lineno)
|
||||||
/*[clinic end generated code: output=fa077debd72d861a input=01cbe8ec8783fca7]*/
|
/*[clinic end generated code: output=fa077debd72d861a input=b88143145454cb59]*/
|
||||||
{
|
{
|
||||||
if (tb_next == Py_None) {
|
if (tb_next == Py_None) {
|
||||||
tb_next = NULL;
|
tb_next = NULL;
|
||||||
|
|
Loading…
Reference in New Issue