mirror of
https://github.com/python/cpython.git
synced 2025-07-24 19:54:21 +00:00
[3.10] gh-91583: AC: Fix regression for functions with defining_class (GH-91739) (GH-92079)
Argument Clinic now generates the same efficient code as before
adding the defining_class parameter.
(cherry picked from commit a055dac0b4
)
This commit is contained in:
parent
adc06cd2d7
commit
62ddbbcfaf
17 changed files with 661 additions and 389 deletions
|
@ -0,0 +1,2 @@
|
|||
Fix regression in the code generated by Argument Clinic for functions with
|
||||
the ``defining_class`` parameter.
|
112
Modules/clinic/_curses_panel.c.h
generated
112
Modules/clinic/_curses_panel.c.h
generated
|
@ -17,18 +17,11 @@ _curses_panel_panel_bottom_impl(PyCursesPanelObject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_curses_panel_panel_bottom(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":bottom", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "bottom() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _curses_panel_panel_bottom_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _curses_panel_panel_bottom_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_curses_panel_panel_hide__doc__,
|
||||
|
@ -48,18 +41,11 @@ _curses_panel_panel_hide_impl(PyCursesPanelObject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_curses_panel_panel_hide(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":hide", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "hide() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _curses_panel_panel_hide_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _curses_panel_panel_hide_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_curses_panel_panel_show__doc__,
|
||||
|
@ -77,18 +63,11 @@ _curses_panel_panel_show_impl(PyCursesPanelObject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_curses_panel_panel_show(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":show", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "show() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _curses_panel_panel_show_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _curses_panel_panel_show_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_curses_panel_panel_top__doc__,
|
||||
|
@ -106,18 +85,11 @@ _curses_panel_panel_top_impl(PyCursesPanelObject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_curses_panel_panel_top(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":top", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "top() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _curses_panel_panel_top_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _curses_panel_panel_top_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_curses_panel_panel_above__doc__,
|
||||
|
@ -192,12 +164,21 @@ _curses_panel_panel_move(PyCursesPanelObject *self, PyTypeObject *cls, PyObject
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", "", NULL};
|
||||
static _PyArg_Parser _parser = {"ii:move", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "move", 0};
|
||||
PyObject *argsbuf[2];
|
||||
int y;
|
||||
int x;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&y, &x)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
y = _PyLong_AsInt(args[0]);
|
||||
if (y == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
x = _PyLong_AsInt(args[1]);
|
||||
if (x == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
return_value = _curses_panel_panel_move_impl(self, cls, y, x);
|
||||
|
@ -243,13 +224,19 @@ _curses_panel_panel_replace(PyCursesPanelObject *self, PyTypeObject *cls, PyObje
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", NULL};
|
||||
static _PyArg_Parser _parser = {"O!:replace", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0};
|
||||
PyObject *argsbuf[1];
|
||||
PyCursesWindowObject *win;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&PyCursesWindow_Type, &win)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (!PyObject_TypeCheck(args[0], &PyCursesWindow_Type)) {
|
||||
_PyArg_BadArgument("replace", "argument 1", (&PyCursesWindow_Type)->tp_name, args[0]);
|
||||
goto exit;
|
||||
}
|
||||
win = (PyCursesWindowObject *)args[0];
|
||||
return_value = _curses_panel_panel_replace_impl(self, cls, win);
|
||||
|
||||
exit:
|
||||
|
@ -274,13 +261,15 @@ _curses_panel_panel_set_userptr(PyCursesPanelObject *self, PyTypeObject *cls, Py
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", NULL};
|
||||
static _PyArg_Parser _parser = {"O:set_userptr", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "set_userptr", 0};
|
||||
PyObject *argsbuf[1];
|
||||
PyObject *obj;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&obj)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
obj = args[0];
|
||||
return_value = _curses_panel_panel_set_userptr_impl(self, cls, obj);
|
||||
|
||||
exit:
|
||||
|
@ -303,18 +292,11 @@ _curses_panel_panel_userptr_impl(PyCursesPanelObject *self,
|
|||
static PyObject *
|
||||
_curses_panel_panel_userptr(PyCursesPanelObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":userptr", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "userptr() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _curses_panel_panel_userptr_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _curses_panel_panel_userptr_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_curses_panel_bottom_panel__doc__,
|
||||
|
@ -401,4 +383,4 @@ _curses_panel_update_panels(PyObject *module, PyObject *Py_UNUSED(ignored))
|
|||
{
|
||||
return _curses_panel_update_panels_impl(module);
|
||||
}
|
||||
/*[clinic end generated code: output=3081ef24e5560cb0 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=c552457e8067bb0a input=a9049054013a1b77]*/
|
||||
|
|
17
Modules/clinic/_dbmmodule.c.h
generated
17
Modules/clinic/_dbmmodule.c.h
generated
|
@ -35,18 +35,11 @@ _dbm_dbm_keys_impl(dbmobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_dbm_dbm_keys(dbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":keys", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "keys() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _dbm_dbm_keys_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _dbm_dbm_keys_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_dbm_dbm_get__doc__,
|
||||
|
@ -187,4 +180,4 @@ skip_optional:
|
|||
exit:
|
||||
return return_value;
|
||||
}
|
||||
/*[clinic end generated code: output=6947b1115df66f7c input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=a4599b89ce338b08 input=a9049054013a1b77]*/
|
||||
|
|
62
Modules/clinic/_gdbmmodule.c.h
generated
62
Modules/clinic/_gdbmmodule.c.h
generated
|
@ -104,18 +104,11 @@ _gdbm_gdbm_keys_impl(gdbmobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_gdbm_gdbm_keys(gdbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":keys", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "keys() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _gdbm_gdbm_keys_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _gdbm_gdbm_keys_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_gdbm_gdbm_firstkey__doc__,
|
||||
|
@ -137,18 +130,11 @@ _gdbm_gdbm_firstkey_impl(gdbmobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_gdbm_gdbm_firstkey(gdbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":firstkey", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "firstkey() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _gdbm_gdbm_firstkey_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _gdbm_gdbm_firstkey_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_gdbm_gdbm_nextkey__doc__,
|
||||
|
@ -212,18 +198,11 @@ _gdbm_gdbm_reorganize_impl(gdbmobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_gdbm_gdbm_reorganize(gdbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":reorganize", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "reorganize() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _gdbm_gdbm_reorganize_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _gdbm_gdbm_reorganize_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_gdbm_gdbm_sync__doc__,
|
||||
|
@ -244,18 +223,11 @@ _gdbm_gdbm_sync_impl(gdbmobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_gdbm_gdbm_sync(gdbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":sync", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "sync() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _gdbm_gdbm_sync_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _gdbm_gdbm_sync_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(dbmopen__doc__,
|
||||
|
@ -340,4 +312,4 @@ skip_optional:
|
|||
exit:
|
||||
return return_value;
|
||||
}
|
||||
/*[clinic end generated code: output=3b88446433e43d96 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=125f5bc685304744 input=a9049054013a1b77]*/
|
||||
|
|
17
Modules/clinic/_lsprof.c.h
generated
17
Modules/clinic/_lsprof.c.h
generated
|
@ -39,17 +39,10 @@ _lsprof_Profiler_getstats_impl(ProfilerObject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_lsprof_Profiler_getstats(ProfilerObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":getstats", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "getstats() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _lsprof_Profiler_getstats_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _lsprof_Profiler_getstats_impl(self, cls);
|
||||
}
|
||||
/*[clinic end generated code: output=b4727cfebecdd22d input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=57c7b6b0b8666429 input=a9049054013a1b77]*/
|
||||
|
|
39
Modules/clinic/_queuemodule.c.h
generated
39
Modules/clinic/_queuemodule.c.h
generated
|
@ -144,14 +144,30 @@ _queue_SimpleQueue_get(simplequeueobject *self, PyTypeObject *cls, PyObject *con
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"block", "timeout", NULL};
|
||||
static _PyArg_Parser _parser = {"|pO:get", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "get", 0};
|
||||
PyObject *argsbuf[2];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
|
||||
int block = 1;
|
||||
PyObject *timeout = Py_None;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&block, &timeout)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (!noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
if (args[0]) {
|
||||
block = PyObject_IsTrue(args[0]);
|
||||
if (block < 0) {
|
||||
goto exit;
|
||||
}
|
||||
if (!--noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
}
|
||||
timeout = args[1];
|
||||
skip_optional_pos:
|
||||
return_value = _queue_SimpleQueue_get_impl(self, cls, block, timeout);
|
||||
|
||||
exit:
|
||||
|
@ -177,18 +193,11 @@ _queue_SimpleQueue_get_nowait_impl(simplequeueobject *self,
|
|||
static PyObject *
|
||||
_queue_SimpleQueue_get_nowait(simplequeueobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":get_nowait", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "get_nowait() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _queue_SimpleQueue_get_nowait_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _queue_SimpleQueue_get_nowait_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_queue_SimpleQueue_empty__doc__,
|
||||
|
@ -246,4 +255,4 @@ _queue_SimpleQueue_qsize(simplequeueobject *self, PyObject *Py_UNUSED(ignored))
|
|||
exit:
|
||||
return return_value;
|
||||
}
|
||||
/*[clinic end generated code: output=ce56b46fac150909 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=a9d567e8a64e6170 input=a9049054013a1b77]*/
|
||||
|
|
294
Modules/clinic/_sre.c.h
generated
294
Modules/clinic/_sre.c.h
generated
|
@ -176,15 +176,51 @@ _sre_SRE_Pattern_match(PatternObject *self, PyTypeObject *cls, PyObject *const *
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
|
||||
static _PyArg_Parser _parser = {"O|nn:match", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "match", 0};
|
||||
PyObject *argsbuf[3];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
|
||||
PyObject *string;
|
||||
Py_ssize_t pos = 0;
|
||||
Py_ssize_t endpos = PY_SSIZE_T_MAX;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&string, &pos, &endpos)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
string = args[0];
|
||||
if (!noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
if (args[1]) {
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[1]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
pos = ival;
|
||||
}
|
||||
if (!--noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
}
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[2]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
endpos = ival;
|
||||
}
|
||||
skip_optional_pos:
|
||||
return_value = _sre_SRE_Pattern_match_impl(self, cls, string, pos, endpos);
|
||||
|
||||
exit:
|
||||
|
@ -210,15 +246,51 @@ _sre_SRE_Pattern_fullmatch(PatternObject *self, PyTypeObject *cls, PyObject *con
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
|
||||
static _PyArg_Parser _parser = {"O|nn:fullmatch", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "fullmatch", 0};
|
||||
PyObject *argsbuf[3];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
|
||||
PyObject *string;
|
||||
Py_ssize_t pos = 0;
|
||||
Py_ssize_t endpos = PY_SSIZE_T_MAX;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&string, &pos, &endpos)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
string = args[0];
|
||||
if (!noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
if (args[1]) {
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[1]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
pos = ival;
|
||||
}
|
||||
if (!--noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
}
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[2]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
endpos = ival;
|
||||
}
|
||||
skip_optional_pos:
|
||||
return_value = _sre_SRE_Pattern_fullmatch_impl(self, cls, string, pos, endpos);
|
||||
|
||||
exit:
|
||||
|
@ -246,15 +318,51 @@ _sre_SRE_Pattern_search(PatternObject *self, PyTypeObject *cls, PyObject *const
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
|
||||
static _PyArg_Parser _parser = {"O|nn:search", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "search", 0};
|
||||
PyObject *argsbuf[3];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
|
||||
PyObject *string;
|
||||
Py_ssize_t pos = 0;
|
||||
Py_ssize_t endpos = PY_SSIZE_T_MAX;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&string, &pos, &endpos)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
string = args[0];
|
||||
if (!noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
if (args[1]) {
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[1]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
pos = ival;
|
||||
}
|
||||
if (!--noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
}
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[2]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
endpos = ival;
|
||||
}
|
||||
skip_optional_pos:
|
||||
return_value = _sre_SRE_Pattern_search_impl(self, cls, string, pos, endpos);
|
||||
|
||||
exit:
|
||||
|
@ -351,15 +459,51 @@ _sre_SRE_Pattern_finditer(PatternObject *self, PyTypeObject *cls, PyObject *cons
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
|
||||
static _PyArg_Parser _parser = {"O|nn:finditer", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "finditer", 0};
|
||||
PyObject *argsbuf[3];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
|
||||
PyObject *string;
|
||||
Py_ssize_t pos = 0;
|
||||
Py_ssize_t endpos = PY_SSIZE_T_MAX;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&string, &pos, &endpos)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
string = args[0];
|
||||
if (!noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
if (args[1]) {
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[1]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
pos = ival;
|
||||
}
|
||||
if (!--noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
}
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[2]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
endpos = ival;
|
||||
}
|
||||
skip_optional_pos:
|
||||
return_value = _sre_SRE_Pattern_finditer_impl(self, cls, string, pos, endpos);
|
||||
|
||||
exit:
|
||||
|
@ -384,15 +528,51 @@ _sre_SRE_Pattern_scanner(PatternObject *self, PyTypeObject *cls, PyObject *const
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
|
||||
static _PyArg_Parser _parser = {"O|nn:scanner", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "scanner", 0};
|
||||
PyObject *argsbuf[3];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
|
||||
PyObject *string;
|
||||
Py_ssize_t pos = 0;
|
||||
Py_ssize_t endpos = PY_SSIZE_T_MAX;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&string, &pos, &endpos)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
string = args[0];
|
||||
if (!noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
if (args[1]) {
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[1]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
pos = ival;
|
||||
}
|
||||
if (!--noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
}
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[2]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
endpos = ival;
|
||||
}
|
||||
skip_optional_pos:
|
||||
return_value = _sre_SRE_Pattern_scanner_impl(self, cls, string, pos, endpos);
|
||||
|
||||
exit:
|
||||
|
@ -468,15 +648,35 @@ _sre_SRE_Pattern_sub(PatternObject *self, PyTypeObject *cls, PyObject *const *ar
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"repl", "string", "count", NULL};
|
||||
static _PyArg_Parser _parser = {"OO|n:sub", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "sub", 0};
|
||||
PyObject *argsbuf[3];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
|
||||
PyObject *repl;
|
||||
PyObject *string;
|
||||
Py_ssize_t count = 0;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&repl, &string, &count)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
repl = args[0];
|
||||
string = args[1];
|
||||
if (!noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[2]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
count = ival;
|
||||
}
|
||||
skip_optional_pos:
|
||||
return_value = _sre_SRE_Pattern_sub_impl(self, cls, repl, string, count);
|
||||
|
||||
exit:
|
||||
|
@ -502,15 +702,35 @@ _sre_SRE_Pattern_subn(PatternObject *self, PyTypeObject *cls, PyObject *const *a
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"repl", "string", "count", NULL};
|
||||
static _PyArg_Parser _parser = {"OO|n:subn", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "subn", 0};
|
||||
PyObject *argsbuf[3];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
|
||||
PyObject *repl;
|
||||
PyObject *string;
|
||||
Py_ssize_t count = 0;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&repl, &string, &count)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
repl = args[0];
|
||||
string = args[1];
|
||||
if (!noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[2]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
count = ival;
|
||||
}
|
||||
skip_optional_pos:
|
||||
return_value = _sre_SRE_Pattern_subn_impl(self, cls, repl, string, count);
|
||||
|
||||
exit:
|
||||
|
@ -869,18 +1089,11 @@ _sre_SRE_Scanner_match_impl(ScannerObject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_sre_SRE_Scanner_match(ScannerObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":match", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "match() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _sre_SRE_Scanner_match_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _sre_SRE_Scanner_match_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_sre_SRE_Scanner_search__doc__,
|
||||
|
@ -897,17 +1110,10 @@ _sre_SRE_Scanner_search_impl(ScannerObject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
_sre_SRE_Scanner_search(ScannerObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":search", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "search() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _sre_SRE_Scanner_search_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _sre_SRE_Scanner_search_impl(self, cls);
|
||||
}
|
||||
/*[clinic end generated code: output=518f7bb775c1184f input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=ead5eb818b7771f8 input=a9049054013a1b77]*/
|
||||
|
|
76
Modules/clinic/_testmultiphase.c.h
generated
76
Modules/clinic/_testmultiphase.c.h
generated
|
@ -21,18 +21,11 @@ _testmultiphase_StateAccessType_get_defining_module_impl(StateAccessTypeObject *
|
|||
static PyObject *
|
||||
_testmultiphase_StateAccessType_get_defining_module(StateAccessTypeObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":get_defining_module", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "get_defining_module() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _testmultiphase_StateAccessType_get_defining_module_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _testmultiphase_StateAccessType_get_defining_module_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_testmultiphase_StateAccessType_getmodulebydef_bad_def__doc__,
|
||||
|
@ -51,18 +44,11 @@ _testmultiphase_StateAccessType_getmodulebydef_bad_def_impl(StateAccessTypeObjec
|
|||
static PyObject *
|
||||
_testmultiphase_StateAccessType_getmodulebydef_bad_def(StateAccessTypeObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":getmodulebydef_bad_def", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "getmodulebydef_bad_def() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _testmultiphase_StateAccessType_getmodulebydef_bad_def_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _testmultiphase_StateAccessType_getmodulebydef_bad_def_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_testmultiphase_StateAccessType_increment_count_clinic__doc__,
|
||||
|
@ -88,14 +74,37 @@ _testmultiphase_StateAccessType_increment_count_clinic(StateAccessTypeObject *se
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"n", "twice", NULL};
|
||||
static _PyArg_Parser _parser = {"|i$p:increment_count_clinic", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "increment_count_clinic", 0};
|
||||
PyObject *argsbuf[2];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
|
||||
int n = 1;
|
||||
int twice = 0;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&n, &twice)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (!noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
if (args[0]) {
|
||||
n = _PyLong_AsInt(args[0]);
|
||||
if (n == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
if (!--noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
}
|
||||
skip_optional_pos:
|
||||
if (!noptargs) {
|
||||
goto skip_optional_kwonly;
|
||||
}
|
||||
twice = PyObject_IsTrue(args[1]);
|
||||
if (twice < 0) {
|
||||
goto exit;
|
||||
}
|
||||
skip_optional_kwonly:
|
||||
return_value = _testmultiphase_StateAccessType_increment_count_clinic_impl(self, cls, n, twice);
|
||||
|
||||
exit:
|
||||
|
@ -118,17 +127,10 @@ _testmultiphase_StateAccessType_get_count_impl(StateAccessTypeObject *self,
|
|||
static PyObject *
|
||||
_testmultiphase_StateAccessType_get_count(StateAccessTypeObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":get_count", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "get_count() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = _testmultiphase_StateAccessType_get_count_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _testmultiphase_StateAccessType_get_count_impl(self, cls);
|
||||
}
|
||||
/*[clinic end generated code: output=eb1b8c2ee6290be3 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=ec5029d1275cbf94 input=a9049054013a1b77]*/
|
||||
|
|
10
Modules/clinic/arraymodule.c.h
generated
10
Modules/clinic/arraymodule.c.h
generated
|
@ -155,13 +155,15 @@ array_array_extend(arrayobject *self, PyTypeObject *cls, PyObject *const *args,
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", NULL};
|
||||
static _PyArg_Parser _parser = {"O:extend", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "extend", 0};
|
||||
PyObject *argsbuf[1];
|
||||
PyObject *bb;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&bb)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
bb = args[0];
|
||||
return_value = array_array_extend_impl(self, cls, bb);
|
||||
|
||||
exit:
|
||||
|
@ -572,4 +574,4 @@ PyDoc_STRVAR(array_arrayiterator___setstate____doc__,
|
|||
|
||||
#define ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF \
|
||||
{"__setstate__", (PyCFunction)array_arrayiterator___setstate__, METH_O, array_arrayiterator___setstate____doc__},
|
||||
/*[clinic end generated code: output=f130a994f98f1227 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=eb727e087d64f017 input=a9049054013a1b77]*/
|
||||
|
|
17
Modules/clinic/md5module.c.h
generated
17
Modules/clinic/md5module.c.h
generated
|
@ -17,18 +17,11 @@ MD5Type_copy_impl(MD5object *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
MD5Type_copy(MD5object *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":copy", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "copy() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = MD5Type_copy_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return MD5Type_copy_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(MD5Type_digest__doc__,
|
||||
|
@ -126,4 +119,4 @@ skip_optional_kwonly:
|
|||
exit:
|
||||
return return_value;
|
||||
}
|
||||
/*[clinic end generated code: output=53ff7f22dbaaea36 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=3061297a669c645c input=a9049054013a1b77]*/
|
||||
|
|
56
Modules/clinic/posixmodule.c.h
generated
56
Modules/clinic/posixmodule.c.h
generated
|
@ -8254,12 +8254,10 @@ static PyObject *
|
|||
os_DirEntry_is_symlink(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":is_symlink", _keywords, 0};
|
||||
int _return_value;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "is_symlink() takes no arguments");
|
||||
goto exit;
|
||||
}
|
||||
_return_value = os_DirEntry_is_symlink_impl(self, defining_class);
|
||||
|
@ -8290,13 +8288,23 @@ os_DirEntry_stat(DirEntry *self, PyTypeObject *defining_class, PyObject *const *
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"follow_symlinks", NULL};
|
||||
static _PyArg_Parser _parser = {"|$p:stat", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "stat", 0};
|
||||
PyObject *argsbuf[1];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
|
||||
int follow_symlinks = 1;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&follow_symlinks)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (!noptargs) {
|
||||
goto skip_optional_kwonly;
|
||||
}
|
||||
follow_symlinks = PyObject_IsTrue(args[0]);
|
||||
if (follow_symlinks < 0) {
|
||||
goto exit;
|
||||
}
|
||||
skip_optional_kwonly:
|
||||
return_value = os_DirEntry_stat_impl(self, defining_class, follow_symlinks);
|
||||
|
||||
exit:
|
||||
|
@ -8321,14 +8329,24 @@ os_DirEntry_is_dir(DirEntry *self, PyTypeObject *defining_class, PyObject *const
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"follow_symlinks", NULL};
|
||||
static _PyArg_Parser _parser = {"|$p:is_dir", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "is_dir", 0};
|
||||
PyObject *argsbuf[1];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
|
||||
int follow_symlinks = 1;
|
||||
int _return_value;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&follow_symlinks)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (!noptargs) {
|
||||
goto skip_optional_kwonly;
|
||||
}
|
||||
follow_symlinks = PyObject_IsTrue(args[0]);
|
||||
if (follow_symlinks < 0) {
|
||||
goto exit;
|
||||
}
|
||||
skip_optional_kwonly:
|
||||
_return_value = os_DirEntry_is_dir_impl(self, defining_class, follow_symlinks);
|
||||
if ((_return_value == -1) && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
|
@ -8357,14 +8375,24 @@ os_DirEntry_is_file(DirEntry *self, PyTypeObject *defining_class, PyObject *cons
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"follow_symlinks", NULL};
|
||||
static _PyArg_Parser _parser = {"|$p:is_file", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "is_file", 0};
|
||||
PyObject *argsbuf[1];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
|
||||
int follow_symlinks = 1;
|
||||
int _return_value;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&follow_symlinks)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (!noptargs) {
|
||||
goto skip_optional_kwonly;
|
||||
}
|
||||
follow_symlinks = PyObject_IsTrue(args[0]);
|
||||
if (follow_symlinks < 0) {
|
||||
goto exit;
|
||||
}
|
||||
skip_optional_kwonly:
|
||||
_return_value = os_DirEntry_is_file_impl(self, defining_class, follow_symlinks);
|
||||
if ((_return_value == -1) && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
|
@ -9263,4 +9291,4 @@ exit:
|
|||
#ifndef OS_WAITSTATUS_TO_EXITCODE_METHODDEF
|
||||
#define OS_WAITSTATUS_TO_EXITCODE_METHODDEF
|
||||
#endif /* !defined(OS_WAITSTATUS_TO_EXITCODE_METHODDEF) */
|
||||
/*[clinic end generated code: output=65a85d7d3f2c487e input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=debefcf43738ec66 input=a9049054013a1b77]*/
|
||||
|
|
83
Modules/clinic/pyexpat.c.h
generated
83
Modules/clinic/pyexpat.c.h
generated
|
@ -22,14 +22,24 @@ pyexpat_xmlparser_Parse(xmlparseobject *self, PyTypeObject *cls, PyObject *const
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", "", NULL};
|
||||
static _PyArg_Parser _parser = {"O|i:Parse", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "Parse", 0};
|
||||
PyObject *argsbuf[2];
|
||||
PyObject *data;
|
||||
int isfinal = 0;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&data, &isfinal)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
data = args[0];
|
||||
if (nargs < 2) {
|
||||
goto skip_optional_posonly;
|
||||
}
|
||||
isfinal = _PyLong_AsInt(args[1]);
|
||||
if (isfinal == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
skip_optional_posonly:
|
||||
return_value = pyexpat_xmlparser_Parse_impl(self, cls, data, isfinal);
|
||||
|
||||
exit:
|
||||
|
@ -54,13 +64,15 @@ pyexpat_xmlparser_ParseFile(xmlparseobject *self, PyTypeObject *cls, PyObject *c
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", NULL};
|
||||
static _PyArg_Parser _parser = {"O:ParseFile", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "ParseFile", 0};
|
||||
PyObject *argsbuf[1];
|
||||
PyObject *file;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&file)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
file = args[0];
|
||||
return_value = pyexpat_xmlparser_ParseFile_impl(self, cls, file);
|
||||
|
||||
exit:
|
||||
|
@ -164,14 +176,50 @@ pyexpat_xmlparser_ExternalEntityParserCreate(xmlparseobject *self, PyTypeObject
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", "", NULL};
|
||||
static _PyArg_Parser _parser = {"z|s:ExternalEntityParserCreate", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "ExternalEntityParserCreate", 0};
|
||||
PyObject *argsbuf[2];
|
||||
const char *context;
|
||||
const char *encoding = NULL;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&context, &encoding)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (args[0] == Py_None) {
|
||||
context = NULL;
|
||||
}
|
||||
else if (PyUnicode_Check(args[0])) {
|
||||
Py_ssize_t context_length;
|
||||
context = PyUnicode_AsUTF8AndSize(args[0], &context_length);
|
||||
if (context == NULL) {
|
||||
goto exit;
|
||||
}
|
||||
if (strlen(context) != (size_t)context_length) {
|
||||
PyErr_SetString(PyExc_ValueError, "embedded null character");
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
else {
|
||||
_PyArg_BadArgument("ExternalEntityParserCreate", "argument 1", "str or None", args[0]);
|
||||
goto exit;
|
||||
}
|
||||
if (nargs < 2) {
|
||||
goto skip_optional_posonly;
|
||||
}
|
||||
if (!PyUnicode_Check(args[1])) {
|
||||
_PyArg_BadArgument("ExternalEntityParserCreate", "argument 2", "str", args[1]);
|
||||
goto exit;
|
||||
}
|
||||
Py_ssize_t encoding_length;
|
||||
encoding = PyUnicode_AsUTF8AndSize(args[1], &encoding_length);
|
||||
if (encoding == NULL) {
|
||||
goto exit;
|
||||
}
|
||||
if (strlen(encoding) != (size_t)encoding_length) {
|
||||
PyErr_SetString(PyExc_ValueError, "embedded null character");
|
||||
goto exit;
|
||||
}
|
||||
skip_optional_posonly:
|
||||
return_value = pyexpat_xmlparser_ExternalEntityParserCreate_impl(self, cls, context, encoding);
|
||||
|
||||
exit:
|
||||
|
@ -235,13 +283,22 @@ pyexpat_xmlparser_UseForeignDTD(xmlparseobject *self, PyTypeObject *cls, PyObjec
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", NULL};
|
||||
static _PyArg_Parser _parser = {"|p:UseForeignDTD", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "UseForeignDTD", 0};
|
||||
PyObject *argsbuf[1];
|
||||
int flag = 1;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&flag)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (nargs < 1) {
|
||||
goto skip_optional_posonly;
|
||||
}
|
||||
flag = PyObject_IsTrue(args[0]);
|
||||
if (flag < 0) {
|
||||
goto exit;
|
||||
}
|
||||
skip_optional_posonly:
|
||||
return_value = pyexpat_xmlparser_UseForeignDTD_impl(self, cls, flag);
|
||||
|
||||
exit:
|
||||
|
@ -368,4 +425,4 @@ exit:
|
|||
#ifndef PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
|
||||
#define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
|
||||
#endif /* !defined(PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF) */
|
||||
/*[clinic end generated code: output=612b9d6a17a679a7 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=5d60049d385d5d56 input=a9049054013a1b77]*/
|
||||
|
|
17
Modules/clinic/sha1module.c.h
generated
17
Modules/clinic/sha1module.c.h
generated
|
@ -17,18 +17,11 @@ SHA1Type_copy_impl(SHA1object *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
SHA1Type_copy(SHA1object *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":copy", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "copy() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = SHA1Type_copy_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return SHA1Type_copy_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(SHA1Type_digest__doc__,
|
||||
|
@ -126,4 +119,4 @@ skip_optional_kwonly:
|
|||
exit:
|
||||
return return_value;
|
||||
}
|
||||
/*[clinic end generated code: output=abf1ab2545cea5a2 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=93ced3c8f8fa4f21 input=a9049054013a1b77]*/
|
||||
|
|
17
Modules/clinic/sha256module.c.h
generated
17
Modules/clinic/sha256module.c.h
generated
|
@ -17,18 +17,11 @@ SHA256Type_copy_impl(SHAobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
SHA256Type_copy(SHAobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":copy", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "copy() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = SHA256Type_copy_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return SHA256Type_copy_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(SHA256Type_digest__doc__,
|
||||
|
@ -177,4 +170,4 @@ skip_optional_kwonly:
|
|||
exit:
|
||||
return return_value;
|
||||
}
|
||||
/*[clinic end generated code: output=b7283f75c9d08f30 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=4f9fe3ca546b0c58 input=a9049054013a1b77]*/
|
||||
|
|
17
Modules/clinic/sha512module.c.h
generated
17
Modules/clinic/sha512module.c.h
generated
|
@ -17,18 +17,11 @@ SHA512Type_copy_impl(SHAobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
SHA512Type_copy(SHAobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":copy", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "copy() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = SHA512Type_copy_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return SHA512Type_copy_impl(self, cls);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(SHA512Type_digest__doc__,
|
||||
|
@ -177,4 +170,4 @@ skip_optional_kwonly:
|
|||
exit:
|
||||
return return_value;
|
||||
}
|
||||
/*[clinic end generated code: output=9ff9f11937fabf35 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=26d2fe27b9673ac2 input=a9049054013a1b77]*/
|
||||
|
|
161
Modules/clinic/zlibmodule.c.h
generated
161
Modules/clinic/zlibmodule.c.h
generated
|
@ -340,11 +340,19 @@ zlib_Compress_compress(compobject *self, PyTypeObject *cls, PyObject *const *arg
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", NULL};
|
||||
static _PyArg_Parser _parser = {"y*:compress", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0};
|
||||
PyObject *argsbuf[1];
|
||||
Py_buffer data = {NULL, NULL};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&data)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
|
||||
goto exit;
|
||||
}
|
||||
if (!PyBuffer_IsContiguous(&data, 'C')) {
|
||||
_PyArg_BadArgument("compress", "argument 1", "contiguous buffer", args[0]);
|
||||
goto exit;
|
||||
}
|
||||
return_value = zlib_Compress_compress_impl(self, cls, &data);
|
||||
|
@ -387,14 +395,39 @@ zlib_Decompress_decompress(compobject *self, PyTypeObject *cls, PyObject *const
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", "max_length", NULL};
|
||||
static _PyArg_Parser _parser = {"y*|n:decompress", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0};
|
||||
PyObject *argsbuf[2];
|
||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
|
||||
Py_buffer data = {NULL, NULL};
|
||||
Py_ssize_t max_length = 0;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&data, &max_length)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
|
||||
goto exit;
|
||||
}
|
||||
if (!PyBuffer_IsContiguous(&data, 'C')) {
|
||||
_PyArg_BadArgument("decompress", "argument 1", "contiguous buffer", args[0]);
|
||||
goto exit;
|
||||
}
|
||||
if (!noptargs) {
|
||||
goto skip_optional_pos;
|
||||
}
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[1]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
max_length = ival;
|
||||
}
|
||||
skip_optional_pos:
|
||||
return_value = zlib_Decompress_decompress_impl(self, cls, &data, max_length);
|
||||
|
||||
exit:
|
||||
|
@ -429,13 +462,22 @@ zlib_Compress_flush(compobject *self, PyTypeObject *cls, PyObject *const *args,
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", NULL};
|
||||
static _PyArg_Parser _parser = {"|i:flush", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "flush", 0};
|
||||
PyObject *argsbuf[1];
|
||||
int mode = Z_FINISH;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&mode)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (nargs < 1) {
|
||||
goto skip_optional_posonly;
|
||||
}
|
||||
mode = _PyLong_AsInt(args[0]);
|
||||
if (mode == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
skip_optional_posonly:
|
||||
return_value = zlib_Compress_flush_impl(self, cls, mode);
|
||||
|
||||
exit:
|
||||
|
@ -459,18 +501,11 @@ zlib_Compress_copy_impl(compobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
zlib_Compress_copy(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":copy", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "copy() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = zlib_Compress_copy_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return zlib_Compress_copy_impl(self, cls);
|
||||
}
|
||||
|
||||
#endif /* defined(HAVE_ZLIB_COPY) */
|
||||
|
@ -491,18 +526,11 @@ zlib_Compress___copy___impl(compobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
zlib_Compress___copy__(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":__copy__", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "__copy__() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = zlib_Compress___copy___impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return zlib_Compress___copy___impl(self, cls);
|
||||
}
|
||||
|
||||
#endif /* defined(HAVE_ZLIB_COPY) */
|
||||
|
@ -526,13 +554,15 @@ zlib_Compress___deepcopy__(compobject *self, PyTypeObject *cls, PyObject *const
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", NULL};
|
||||
static _PyArg_Parser _parser = {"O:__deepcopy__", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "__deepcopy__", 0};
|
||||
PyObject *argsbuf[1];
|
||||
PyObject *memo;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&memo)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
memo = args[0];
|
||||
return_value = zlib_Compress___deepcopy___impl(self, cls, memo);
|
||||
|
||||
exit:
|
||||
|
@ -558,18 +588,11 @@ zlib_Decompress_copy_impl(compobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
zlib_Decompress_copy(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":copy", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "copy() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = zlib_Decompress_copy_impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return zlib_Decompress_copy_impl(self, cls);
|
||||
}
|
||||
|
||||
#endif /* defined(HAVE_ZLIB_COPY) */
|
||||
|
@ -590,18 +613,11 @@ zlib_Decompress___copy___impl(compobject *self, PyTypeObject *cls);
|
|||
static PyObject *
|
||||
zlib_Decompress___copy__(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = { NULL};
|
||||
static _PyArg_Parser _parser = {":__copy__", _keywords, 0};
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
|
||||
)) {
|
||||
goto exit;
|
||||
if (nargs) {
|
||||
PyErr_SetString(PyExc_TypeError, "__copy__() takes no arguments");
|
||||
return NULL;
|
||||
}
|
||||
return_value = zlib_Decompress___copy___impl(self, cls);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return zlib_Decompress___copy___impl(self, cls);
|
||||
}
|
||||
|
||||
#endif /* defined(HAVE_ZLIB_COPY) */
|
||||
|
@ -625,13 +641,15 @@ zlib_Decompress___deepcopy__(compobject *self, PyTypeObject *cls, PyObject *cons
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", NULL};
|
||||
static _PyArg_Parser _parser = {"O:__deepcopy__", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "__deepcopy__", 0};
|
||||
PyObject *argsbuf[1];
|
||||
PyObject *memo;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&memo)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
memo = args[0];
|
||||
return_value = zlib_Decompress___deepcopy___impl(self, cls, memo);
|
||||
|
||||
exit:
|
||||
|
@ -661,13 +679,30 @@ zlib_Decompress_flush(compobject *self, PyTypeObject *cls, PyObject *const *args
|
|||
{
|
||||
PyObject *return_value = NULL;
|
||||
static const char * const _keywords[] = {"", NULL};
|
||||
static _PyArg_Parser _parser = {"|n:flush", _keywords, 0};
|
||||
static _PyArg_Parser _parser = {NULL, _keywords, "flush", 0};
|
||||
PyObject *argsbuf[1];
|
||||
Py_ssize_t length = DEF_BUF_SIZE;
|
||||
|
||||
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
|
||||
&length)) {
|
||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
|
||||
if (!args) {
|
||||
goto exit;
|
||||
}
|
||||
if (nargs < 1) {
|
||||
goto skip_optional_posonly;
|
||||
}
|
||||
{
|
||||
Py_ssize_t ival = -1;
|
||||
PyObject *iobj = _PyNumber_Index(args[0]);
|
||||
if (iobj != NULL) {
|
||||
ival = PyLong_AsSsize_t(iobj);
|
||||
Py_DECREF(iobj);
|
||||
}
|
||||
if (ival == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
length = ival;
|
||||
}
|
||||
skip_optional_posonly:
|
||||
return_value = zlib_Decompress_flush_impl(self, cls, length);
|
||||
|
||||
exit:
|
||||
|
@ -803,4 +838,4 @@ exit:
|
|||
#ifndef ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
|
||||
#define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
|
||||
#endif /* !defined(ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF) */
|
||||
/*[clinic end generated code: output=6736bae59fab268b input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=1bda0d996fb51269 input=a9049054013a1b77]*/
|
||||
|
|
|
@ -636,6 +636,10 @@ class CLanguage(Language):
|
|||
assert parameters
|
||||
assert isinstance(parameters[0].converter, self_converter)
|
||||
del parameters[0]
|
||||
requires_defining_class = False
|
||||
if parameters and isinstance(parameters[0].converter, defining_class_converter):
|
||||
requires_defining_class = True
|
||||
del parameters[0]
|
||||
converters = [p.converter for p in parameters]
|
||||
|
||||
has_option_groups = parameters and (parameters[0].group or parameters[-1].group)
|
||||
|
@ -657,10 +661,6 @@ class CLanguage(Language):
|
|||
if not p.is_optional():
|
||||
min_pos = i
|
||||
|
||||
requires_defining_class = any(
|
||||
isinstance(p.converter, defining_class_converter)
|
||||
for p in parameters)
|
||||
|
||||
meth_o = (len(parameters) == 1 and
|
||||
parameters[0].is_positional_only() and
|
||||
not converters[0].is_optional() and
|
||||
|
@ -763,24 +763,40 @@ class CLanguage(Language):
|
|||
return linear_format(output(), parser_declarations=declarations)
|
||||
|
||||
if not parameters:
|
||||
# no parameters, METH_NOARGS
|
||||
if not requires_defining_class:
|
||||
# no parameters, METH_NOARGS
|
||||
flags = "METH_NOARGS"
|
||||
|
||||
flags = "METH_NOARGS"
|
||||
parser_prototype = normalize_snippet("""
|
||||
static PyObject *
|
||||
{c_basename}({self_type}{self_name}, PyObject *Py_UNUSED(ignored))
|
||||
""")
|
||||
parser_code = []
|
||||
|
||||
parser_prototype = normalize_snippet("""
|
||||
static PyObject *
|
||||
{c_basename}({self_type}{self_name}, PyObject *Py_UNUSED(ignored))
|
||||
""")
|
||||
parser_definition = parser_prototype
|
||||
else:
|
||||
assert not new_or_init
|
||||
|
||||
flags = "METH_METHOD|METH_FASTCALL|METH_KEYWORDS"
|
||||
|
||||
parser_prototype = parser_prototype_def_class
|
||||
return_error = ('return NULL;' if default_return_converter
|
||||
else 'goto exit;')
|
||||
parser_code = [normalize_snippet("""
|
||||
if (nargs) {{
|
||||
PyErr_SetString(PyExc_TypeError, "{name}() takes no arguments");
|
||||
%s
|
||||
}}
|
||||
""" % return_error, indent=4)]
|
||||
|
||||
if default_return_converter:
|
||||
parser_definition = parser_prototype + '\n' + normalize_snippet("""
|
||||
{{
|
||||
return {c_basename}_impl({impl_arguments});
|
||||
}}
|
||||
""")
|
||||
parser_definition = '\n'.join([
|
||||
parser_prototype,
|
||||
'{{',
|
||||
*parser_code,
|
||||
' return {c_basename}_impl({impl_arguments});',
|
||||
'}}'])
|
||||
else:
|
||||
parser_definition = parser_body(parser_prototype)
|
||||
parser_definition = parser_body(parser_prototype, *parser_code)
|
||||
|
||||
elif meth_o:
|
||||
flags = "METH_O"
|
||||
|
@ -939,6 +955,9 @@ class CLanguage(Language):
|
|||
|
||||
add_label = None
|
||||
for i, p in enumerate(parameters):
|
||||
if isinstance(p.converter, defining_class_converter):
|
||||
raise ValueError("defining_class should be the first "
|
||||
"parameter (after self)")
|
||||
displayname = p.get_displayname(i+1)
|
||||
parsearg = p.converter.parse_arg(argname_fmt % i, displayname)
|
||||
if parsearg is None:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue