diff --git a/Include/cpython/modsupport.h b/Include/cpython/modsupport.h index cfeee6e8ab3414d..58bdf9187cae06d 100644 --- a/Include/cpython/modsupport.h +++ b/Include/cpython/modsupport.h @@ -25,14 +25,13 @@ typedef struct _PyArg_Parser { const char *format; const char * const *keywords; const char *fname; - const char *custom_msg; - _PyOnceFlag once; /* atomic one-time initialization flag */ - int is_kwtuple_owned; /* does this parser own the kwtuple object? */ - int pos; /* number of positional-only arguments */ - int min; /* minimal number of arguments */ - int max; /* maximal number of positional arguments */ PyObject *kwtuple; /* tuple of keyword parameter names */ struct _PyArg_Parser *next; + _PyOnceFlag once; /* atomic one-time initialization flag */ + uint8_t is_kwtuple_owned; /* does this parser own the kwtuple object? */ + uint16_t pos; /* number of positional-only arguments */ + uint16_t min; /* minimal number of arguments */ + uint16_t max; /* maximal number of positional arguments */ } _PyArg_Parser; PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *, diff --git a/Lib/test/clinic.test.c b/Lib/test/clinic.test.c index cd7a4b0396d08fc..125ceb52b433de8 100644 --- a/Lib/test/clinic.test.c +++ b/Lib/test/clinic.test.c @@ -2735,6 +2735,7 @@ test_posonly_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, .keywords = _keywords, .fname = "test_posonly_keywords", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -2756,7 +2757,7 @@ test_posonly_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, static PyObject * test_posonly_keywords_impl(PyObject *module, PyObject *a, PyObject *b) -/*[clinic end generated code: output=7ddf55a744ba53dc input=1767b0ebdf06060e]*/ +/*[clinic end generated code: output=61f4b14bbed0d136 input=1767b0ebdf06060e]*/ /*[clinic input] @@ -2809,6 +2810,7 @@ test_posonly_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "test_posonly_kwonly", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -2830,7 +2832,7 @@ test_posonly_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P static PyObject * test_posonly_kwonly_impl(PyObject *module, PyObject *a, PyObject *c) -/*[clinic end generated code: output=095a4e17e22609bc input=9042f2818f664839]*/ +/*[clinic end generated code: output=60896e0dcc896acd input=9042f2818f664839]*/ /*[clinic input] @@ -2885,6 +2887,7 @@ test_posonly_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t .keywords = _keywords, .fname = "test_posonly_keywords_kwonly", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -2909,7 +2912,7 @@ test_posonly_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t static PyObject * test_posonly_keywords_kwonly_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=2f03aff955026341 input=29546ebdca492fea]*/ +/*[clinic end generated code: output=8bcb5ff251526729 input=29546ebdca492fea]*/ /*[clinic input] @@ -2964,6 +2967,7 @@ test_posonly_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t na .keywords = _keywords, .fname = "test_posonly_keywords_opt", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -3000,7 +3004,7 @@ test_posonly_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t na static PyObject * test_posonly_keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=2c8b2ca42f821c66 input=cdf5a9625e554e9b]*/ +/*[clinic end generated code: output=a13bc63386b9ffcd input=cdf5a9625e554e9b]*/ /*[clinic input] @@ -3054,6 +3058,7 @@ test_posonly_keywords_opt2(PyObject *module, PyObject *const *args, Py_ssize_t n .keywords = _keywords, .fname = "test_posonly_keywords_opt2", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -3088,7 +3093,7 @@ test_posonly_keywords_opt2(PyObject *module, PyObject *const *args, Py_ssize_t n static PyObject * test_posonly_keywords_opt2_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=969a3b2b020310f1 input=1581299d21d16f14]*/ +/*[clinic end generated code: output=d6304d39fe7c3ff8 input=1581299d21d16f14]*/ /*[clinic input] @@ -3143,6 +3148,7 @@ test_posonly_opt_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_ .keywords = _keywords, .fname = "test_posonly_opt_keywords_opt", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -3184,7 +3190,7 @@ test_posonly_opt_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_ static PyObject * test_posonly_opt_keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=02bf5e64403946fc input=408798ec3d42949f]*/ +/*[clinic end generated code: output=38194602438ee22d input=408798ec3d42949f]*/ /*[clinic input] @@ -3240,6 +3246,7 @@ test_posonly_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t narg .keywords = _keywords, .fname = "test_posonly_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -3276,7 +3283,7 @@ test_posonly_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t narg static PyObject * test_posonly_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=26510e61948015e8 input=8d8e5643bbbc2309]*/ +/*[clinic end generated code: output=507782e2d8bd338e input=8d8e5643bbbc2309]*/ /*[clinic input] @@ -3331,6 +3338,7 @@ test_posonly_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t nar .keywords = _keywords, .fname = "test_posonly_kwonly_opt2", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -3365,7 +3373,7 @@ test_posonly_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t nar static PyObject * test_posonly_kwonly_opt2_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c) -/*[clinic end generated code: output=b31416e16c908756 input=f7e5eed94f75fff0]*/ +/*[clinic end generated code: output=caf15c26a81068dd input=f7e5eed94f75fff0]*/ /*[clinic input] @@ -3421,6 +3429,7 @@ test_posonly_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t .keywords = _keywords, .fname = "test_posonly_opt_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -3462,7 +3471,7 @@ test_posonly_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t static PyObject * test_posonly_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=dc2337647059cb51 input=1e557dc979d120fd]*/ +/*[clinic end generated code: output=9c06b293b12d95af input=1e557dc979d120fd]*/ /*[clinic input] @@ -3520,6 +3529,7 @@ test_posonly_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssi .keywords = _keywords, .fname = "test_posonly_keywords_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -3559,7 +3569,7 @@ static PyObject * test_posonly_keywords_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=b7adeae40c9833a4 input=c3884a4f956fdc89]*/ +/*[clinic end generated code: output=88a550dda2cf8a66 input=c3884a4f956fdc89]*/ /*[clinic input] @@ -3615,6 +3625,7 @@ test_posonly_keywords_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ss .keywords = _keywords, .fname = "test_posonly_keywords_kwonly_opt2", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -3651,7 +3662,7 @@ test_posonly_keywords_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ss static PyObject * test_posonly_keywords_kwonly_opt2_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=827a349e36e89c82 input=68d01d7c0f6dafb0]*/ +/*[clinic end generated code: output=2fbc9149e537389b input=68d01d7c0f6dafb0]*/ /*[clinic input] @@ -3710,6 +3721,7 @@ test_posonly_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py .keywords = _keywords, .fname = "test_posonly_keywords_opt_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -3758,7 +3770,7 @@ static PyObject * test_posonly_keywords_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=bcb0088555123966 input=d0883d45876f186c]*/ +/*[clinic end generated code: output=c679395c7d6eb569 input=d0883d45876f186c]*/ /*[clinic input] @@ -3817,6 +3829,7 @@ test_posonly_keywords_opt2_kwonly_opt(PyObject *module, PyObject *const *args, P .keywords = _keywords, .fname = "test_posonly_keywords_opt2_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -3870,7 +3883,7 @@ static PyObject * test_posonly_keywords_opt2_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=a22d1276d4c2c9c7 input=c95e2e1ec93035ad]*/ +/*[clinic end generated code: output=5a7c3b4153e45c61 input=c95e2e1ec93035ad]*/ /*[clinic input] @@ -3931,6 +3944,7 @@ test_posonly_opt_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args .keywords = _keywords, .fname = "test_posonly_opt_keywords_opt_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[6]; @@ -3992,7 +4006,7 @@ test_posonly_opt_keywords_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e, PyObject *f) -/*[clinic end generated code: output=ebdbe695ee85a2ea input=9914857713c5bbf8]*/ +/*[clinic end generated code: output=def7a2f201092227 input=9914857713c5bbf8]*/ /*[clinic input] test_keyword_only_parameter diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-09-14-12-00-00.gh-issue-157407.pQ7sLk.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-09-14-12-00-00.gh-issue-157407.pQ7sLk.rst new file mode 100644 index 000000000000000..4282656d7652de4 --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-09-14-12-00-00.gh-issue-157407.pQ7sLk.rst @@ -0,0 +1,2 @@ +Reduce the size of Argument Clinic argument parsers and skip their +initialization in builtin modules. diff --git a/Modules/_ctypes/clinic/_ctypes.c.h b/Modules/_ctypes/clinic/_ctypes.c.h index 221b110cd15d2de..1f6214a4bedcbd5 100644 --- a/Modules/_ctypes/clinic/_ctypes.c.h +++ b/Modules/_ctypes/clinic/_ctypes.c.h @@ -103,6 +103,7 @@ CDataType_from_address(PyObject *type, PyTypeObject *cls, PyObject *const *args, .keywords = _keywords, .fname = "from_address", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -150,6 +151,7 @@ CDataType_from_buffer(PyObject *type, PyTypeObject *cls, PyObject *const *args, .keywords = _keywords, .fname = "from_buffer", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -219,6 +221,7 @@ CDataType_from_buffer_copy(PyObject *type, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "from_buffer_copy", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -295,6 +298,7 @@ CDataType_in_dll(PyObject *type, PyTypeObject *cls, PyObject *const *args, Py_ss .keywords = _keywords, .fname = "in_dll", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -353,6 +357,7 @@ CDataType_from_param(PyObject *type, PyTypeObject *cls, PyObject *const *args, P .keywords = _keywords, .fname = "from_param", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -397,6 +402,7 @@ PyCPointerType_set_type(PyObject *self, PyTypeObject *cls, PyObject *const *args .keywords = _keywords, .fname = "set_type", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -442,6 +448,7 @@ PyCPointerType_from_param(PyObject *type, PyTypeObject *cls, PyObject *const *ar .keywords = _keywords, .fname = "from_param", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -591,6 +598,7 @@ c_wchar_p_from_param(PyObject *type, PyTypeObject *cls, PyObject *const *args, P .keywords = _keywords, .fname = "from_param", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -634,6 +642,7 @@ c_char_p_from_param(PyObject *type, PyTypeObject *cls, PyObject *const *args, Py .keywords = _keywords, .fname = "from_param", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -677,6 +686,7 @@ c_void_p_from_param(PyObject *type, PyTypeObject *cls, PyObject *const *args, Py .keywords = _keywords, .fname = "from_param", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -722,6 +732,7 @@ PyCSimpleType_from_param(PyObject *type, PyTypeObject *cls, PyObject *const *arg .keywords = _keywords, .fname = "from_param", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -1058,4 +1069,4 @@ Simple_from_outparm(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py } return Simple_from_outparm_impl(self, cls); } -/*[clinic end generated code: output=b89feb50c654de3f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c105f495ba509d7a input=a9049054013a1b77]*/ diff --git a/Modules/_decimal/clinic/_decimal.c.h b/Modules/_decimal/clinic/_decimal.c.h index 8ad883d8a2d14dc..14e1affbe77def0 100644 --- a/Modules/_decimal/clinic/_decimal.c.h +++ b/Modules/_decimal/clinic/_decimal.c.h @@ -745,6 +745,7 @@ _decimal_Decimal_from_float(PyObject *type, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "from_float", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -797,6 +798,7 @@ _decimal_Decimal_from_number(PyObject *type, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "from_number", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -846,6 +848,7 @@ _decimal_Context_create_decimal_from_float(PyObject *context, PyTypeObject *cls, .keywords = _keywords, .fname = "create_decimal_from_float", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -1000,6 +1003,7 @@ _decimal_Decimal___format__(PyObject *dec, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "__format__", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1307,6 +1311,7 @@ _decimal_Decimal___round__(PyObject *self, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "__round__", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4139,6 +4144,7 @@ _decimal_Context_abs(PyObject *context, PyTypeObject *cls, PyObject *const *args .keywords = _keywords, .fname = "abs", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4183,6 +4189,7 @@ _decimal_Context_exp(PyObject *context, PyTypeObject *cls, PyObject *const *args .keywords = _keywords, .fname = "exp", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4227,6 +4234,7 @@ _decimal_Context_ln(PyObject *context, PyTypeObject *cls, PyObject *const *args, .keywords = _keywords, .fname = "ln", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4272,6 +4280,7 @@ _decimal_Context_log10(PyObject *context, PyTypeObject *cls, PyObject *const *ar .keywords = _keywords, .fname = "log10", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4319,6 +4328,7 @@ _decimal_Context_minus(PyObject *context, PyTypeObject *cls, PyObject *const *ar .keywords = _keywords, .fname = "minus", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4364,6 +4374,7 @@ _decimal_Context_next_minus(PyObject *context, PyTypeObject *cls, PyObject *cons .keywords = _keywords, .fname = "next_minus", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4409,6 +4420,7 @@ _decimal_Context_next_plus(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "next_plus", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4454,6 +4466,7 @@ _decimal_Context_normalize(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "normalize", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4500,6 +4513,7 @@ _decimal_Context_plus(PyObject *context, PyTypeObject *cls, PyObject *const *arg .keywords = _keywords, .fname = "plus", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4545,6 +4559,7 @@ _decimal_Context_to_integral_value(PyObject *context, PyTypeObject *cls, PyObjec .keywords = _keywords, .fname = "to_integral_value", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4590,6 +4605,7 @@ _decimal_Context_to_integral_exact(PyObject *context, PyTypeObject *cls, PyObjec .keywords = _keywords, .fname = "to_integral_exact", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4635,6 +4651,7 @@ _decimal_Context_to_integral(PyObject *context, PyTypeObject *cls, PyObject *con .keywords = _keywords, .fname = "to_integral", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4679,6 +4696,7 @@ _decimal_Context_sqrt(PyObject *context, PyTypeObject *cls, PyObject *const *arg .keywords = _keywords, .fname = "sqrt", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -4724,6 +4742,7 @@ _decimal_Context_add(PyObject *context, PyTypeObject *cls, PyObject *const *args .keywords = _keywords, .fname = "add", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -4771,6 +4790,7 @@ _decimal_Context_compare(PyObject *context, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "compare", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -4818,6 +4838,7 @@ _decimal_Context_compare_signal(PyObject *context, PyTypeObject *cls, PyObject * .keywords = _keywords, .fname = "compare_signal", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -4865,6 +4886,7 @@ _decimal_Context_divide(PyObject *context, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "divide", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -4912,6 +4934,7 @@ _decimal_Context_divide_int(PyObject *context, PyTypeObject *cls, PyObject *cons .keywords = _keywords, .fname = "divide_int", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -4959,6 +4982,7 @@ _decimal_Context_max(PyObject *context, PyTypeObject *cls, PyObject *const *args .keywords = _keywords, .fname = "max", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5006,6 +5030,7 @@ _decimal_Context_max_mag(PyObject *context, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "max_mag", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5053,6 +5078,7 @@ _decimal_Context_min(PyObject *context, PyTypeObject *cls, PyObject *const *args .keywords = _keywords, .fname = "min", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5100,6 +5126,7 @@ _decimal_Context_min_mag(PyObject *context, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "min_mag", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5147,6 +5174,7 @@ _decimal_Context_multiply(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "multiply", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5194,6 +5222,7 @@ _decimal_Context_next_toward(PyObject *context, PyTypeObject *cls, PyObject *con .keywords = _keywords, .fname = "next_toward", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5241,6 +5270,7 @@ _decimal_Context_quantize(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "quantize", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5291,6 +5321,7 @@ _decimal_Context_remainder(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "remainder", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5341,6 +5372,7 @@ _decimal_Context_remainder_near(PyObject *context, PyTypeObject *cls, PyObject * .keywords = _keywords, .fname = "remainder_near", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5388,6 +5420,7 @@ _decimal_Context_subtract(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "subtract", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5548,6 +5581,7 @@ _decimal_Context_fma(PyObject *context, PyTypeObject *cls, PyObject *const *args .keywords = _keywords, .fname = "fma", .kwtuple = KWTUPLE, + .pos = 3, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -5619,6 +5653,7 @@ _decimal_Context_is_normal(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "is_normal", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -5664,6 +5699,7 @@ _decimal_Context_is_subnormal(PyObject *context, PyTypeObject *cls, PyObject *co .keywords = _keywords, .fname = "is_subnormal", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -5709,6 +5745,7 @@ _decimal_Context_is_finite(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "is_finite", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -5754,6 +5791,7 @@ _decimal_Context_is_infinite(PyObject *context, PyTypeObject *cls, PyObject *con .keywords = _keywords, .fname = "is_infinite", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -5799,6 +5837,7 @@ _decimal_Context_is_nan(PyObject *context, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "is_nan", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -5844,6 +5883,7 @@ _decimal_Context_is_qnan(PyObject *context, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "is_qnan", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -5889,6 +5929,7 @@ _decimal_Context_is_snan(PyObject *context, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "is_snan", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -5934,6 +5975,7 @@ _decimal_Context_is_signed(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "is_signed", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -5979,6 +6021,7 @@ _decimal_Context_is_zero(PyObject *context, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "is_zero", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6024,6 +6067,7 @@ _decimal_Context_is_canonical(PyObject *context, PyTypeObject *cls, PyObject *co .keywords = _keywords, .fname = "is_canonical", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6069,6 +6113,7 @@ _decimal_Context__apply(PyObject *context, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "_apply", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6116,6 +6161,7 @@ _decimal_Context_apply(PyObject *context, PyTypeObject *cls, PyObject *const *ar .keywords = _keywords, .fname = "apply", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6163,6 +6209,7 @@ _decimal_Context_canonical(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "canonical", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6208,6 +6255,7 @@ _decimal_Context_copy_abs(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "copy_abs", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6253,6 +6301,7 @@ _decimal_Context_copy_decimal(PyObject *context, PyTypeObject *cls, PyObject *co .keywords = _keywords, .fname = "copy_decimal", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6298,6 +6347,7 @@ _decimal_Context_copy_negate(PyObject *context, PyTypeObject *cls, PyObject *con .keywords = _keywords, .fname = "copy_negate", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6342,6 +6392,7 @@ _decimal_Context_logb(PyObject *context, PyTypeObject *cls, PyObject *const *arg .keywords = _keywords, .fname = "logb", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6400,6 +6451,7 @@ _decimal_Context_logical_invert(PyObject *context, PyTypeObject *cls, PyObject * .keywords = _keywords, .fname = "logical_invert", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6445,6 +6497,7 @@ _decimal_Context_number_class(PyObject *context, PyTypeObject *cls, PyObject *co .keywords = _keywords, .fname = "number_class", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6490,6 +6543,7 @@ _decimal_Context_to_sci_string(PyObject *context, PyTypeObject *cls, PyObject *c .keywords = _keywords, .fname = "to_sci_string", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6535,6 +6589,7 @@ _decimal_Context_to_eng_string(PyObject *context, PyTypeObject *cls, PyObject *c .keywords = _keywords, .fname = "to_eng_string", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -6580,6 +6635,7 @@ _decimal_Context_compare_total(PyObject *context, PyTypeObject *cls, PyObject *c .keywords = _keywords, .fname = "compare_total", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -6627,6 +6683,7 @@ _decimal_Context_compare_total_mag(PyObject *context, PyTypeObject *cls, PyObjec .keywords = _keywords, .fname = "compare_total_mag", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -6674,6 +6731,7 @@ _decimal_Context_copy_sign(PyObject *context, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "copy_sign", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -6742,6 +6800,7 @@ _decimal_Context_logical_and(PyObject *context, PyTypeObject *cls, PyObject *con .keywords = _keywords, .fname = "logical_and", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -6810,6 +6869,7 @@ _decimal_Context_logical_or(PyObject *context, PyTypeObject *cls, PyObject *cons .keywords = _keywords, .fname = "logical_or", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -6878,6 +6938,7 @@ _decimal_Context_logical_xor(PyObject *context, PyTypeObject *cls, PyObject *con .keywords = _keywords, .fname = "logical_xor", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -6925,6 +6986,7 @@ _decimal_Context_rotate(PyObject *context, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "rotate", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -6972,6 +7034,7 @@ _decimal_Context_scaleb(PyObject *context, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "scaleb", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -7019,6 +7082,7 @@ _decimal_Context_shift(PyObject *context, PyTypeObject *cls, PyObject *const *ar .keywords = _keywords, .fname = "shift", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -7066,6 +7130,7 @@ _decimal_Context_same_quantum(PyObject *context, PyTypeObject *cls, PyObject *co .keywords = _keywords, .fname = "same_quantum", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -7100,4 +7165,4 @@ _decimal_Context_same_quantum(PyObject *context, PyTypeObject *cls, PyObject *co #ifndef _DECIMAL_CONTEXT_APPLY_METHODDEF #define _DECIMAL_CONTEXT_APPLY_METHODDEF #endif /* !defined(_DECIMAL_CONTEXT_APPLY_METHODDEF) */ -/*[clinic end generated code: output=718b1f6c20412350 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=11788cec50690fee input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/bufferedio.c.h b/Modules/_io/clinic/bufferedio.c.h index b7c0ca2c4b919b6..9529185e6d4cae1 100644 --- a/Modules/_io/clinic/bufferedio.c.h +++ b/Modules/_io/clinic/bufferedio.c.h @@ -146,6 +146,7 @@ _io__BufferedIOBase_read(PyObject *self, PyTypeObject *cls, PyObject *const *arg .keywords = _keywords, .fname = "read", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -201,6 +202,7 @@ _io__BufferedIOBase_read1(PyObject *self, PyTypeObject *cls, PyObject *const *ar .keywords = _keywords, .fname = "read1", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -259,6 +261,7 @@ _io__BufferedIOBase_write(PyObject *self, PyTypeObject *cls, PyObject *const *ar .keywords = _keywords, .fname = "write", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -915,6 +918,7 @@ _io__Buffered_truncate(PyObject *self, PyTypeObject *cls, PyObject *const *args, .keywords = _keywords, .fname = "truncate", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -1265,4 +1269,4 @@ _io_BufferedRandom___init__(PyObject *self, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=3ee17211d2010462 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=87d06e9d16bb256a input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/fileio.c.h b/Modules/_io/clinic/fileio.c.h index 890b6bc3fac9d55..9ece989d33fe5f3 100644 --- a/Modules/_io/clinic/fileio.c.h +++ b/Modules/_io/clinic/fileio.c.h @@ -242,6 +242,7 @@ _io_FileIO_readinto(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py .keywords = _keywords, .fname = "readinto", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -333,6 +334,7 @@ _io_FileIO_read(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssi .keywords = _keywords, .fname = "read", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -387,6 +389,7 @@ _io_FileIO_write(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ss .keywords = _keywords, .fname = "write", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -509,6 +512,7 @@ _io_FileIO_truncate(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py .keywords = _keywords, .fname = "truncate", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -553,4 +557,4 @@ _io_FileIO_isatty(PyObject *self, PyObject *Py_UNUSED(ignored)) #ifndef _IO_FILEIO_TRUNCATE_METHODDEF #define _IO_FILEIO_TRUNCATE_METHODDEF #endif /* !defined(_IO_FILEIO_TRUNCATE_METHODDEF) */ -/*[clinic end generated code: output=453d584e2e72f986 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a1690bbd91b5986c input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/iobase.c.h b/Modules/_io/clinic/iobase.c.h index e4438c26431aa8e..9fb4df43b391b40 100644 --- a/Modules/_io/clinic/iobase.c.h +++ b/Modules/_io/clinic/iobase.c.h @@ -52,6 +52,7 @@ _io__IOBase_seek(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ss .keywords = _keywords, .fname = "seek", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -130,6 +131,7 @@ _io__IOBase_truncate(PyObject *self, PyTypeObject *cls, PyObject *const *args, P .keywords = _keywords, .fname = "truncate", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -445,4 +447,4 @@ _io__RawIOBase_readall(PyObject *self, PyObject *Py_UNUSED(ignored)) { return _io__RawIOBase_readall_impl(self); } -/*[clinic end generated code: output=28c06bb6db32c096 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=917e13a4812e04cd input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/textio.c.h b/Modules/_io/clinic/textio.c.h index 10d0f1390cccbb4..2f3769012ea27f7 100644 --- a/Modules/_io/clinic/textio.c.h +++ b/Modules/_io/clinic/textio.c.h @@ -66,6 +66,7 @@ _io__TextIOBase_read(PyObject *self, PyTypeObject *cls, PyObject *const *args, P .keywords = _keywords, .fname = "read", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -121,6 +122,7 @@ _io__TextIOBase_readline(PyObject *self, PyTypeObject *cls, PyObject *const *arg .keywords = _keywords, .fname = "readline", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -176,6 +178,7 @@ _io__TextIOBase_write(PyObject *self, PyTypeObject *cls, PyObject *const *args, .keywords = _keywords, .fname = "write", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -1362,4 +1365,4 @@ _io_TextIOWrapper_buffer_get(PyObject *self, void *Py_UNUSED(context)) return return_value; } -/*[clinic end generated code: output=e93032a0691ff0e4 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=288255702d785163 input=a9049054013a1b77]*/ diff --git a/Modules/_io/clinic/winconsoleio.c.h b/Modules/_io/clinic/winconsoleio.c.h index bd8073cd0af3f64..ddccfd2c1fbca03 100644 --- a/Modules/_io/clinic/winconsoleio.c.h +++ b/Modules/_io/clinic/winconsoleio.c.h @@ -237,6 +237,7 @@ _io__WindowsConsoleIO_readinto(PyObject *self, PyTypeObject *cls, PyObject *cons .keywords = _keywords, .fname = "readinto", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -322,6 +323,7 @@ _io__WindowsConsoleIO_read(PyObject *self, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "read", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -380,6 +382,7 @@ _io__WindowsConsoleIO_write(PyObject *self, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "write", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -463,4 +466,4 @@ _io__WindowsConsoleIO_isatty(PyObject *self, PyObject *Py_UNUSED(ignored)) #ifndef _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF #define _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF #endif /* !defined(_IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF) */ -/*[clinic end generated code: output=dfe49dd71f4f4b1d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a73dd4a09167a73d input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/clinic/connection.c.h b/Modules/_sqlite/clinic/connection.c.h index 2feea0ec97bbcae..76cf0c3b4b74295 100644 --- a/Modules/_sqlite/clinic/connection.c.h +++ b/Modules/_sqlite/clinic/connection.c.h @@ -261,6 +261,7 @@ blobopen(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwna .keywords = _keywords, .fname = "blobopen", .kwtuple = KWTUPLE, + .pos = 3, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -441,6 +442,7 @@ pysqlite_connection_create_function(PyObject *self, PyTypeObject *cls, PyObject .keywords = _keywords, .fname = "create_function", .kwtuple = KWTUPLE, + .pos = 3, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -527,6 +529,7 @@ create_window_function(PyObject *self, PyTypeObject *cls, PyObject *const *args, .keywords = _keywords, .fname = "create_window_function", .kwtuple = KWTUPLE, + .pos = 3, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -595,6 +598,7 @@ pysqlite_connection_create_aggregate(PyObject *self, PyTypeObject *cls, PyObject .keywords = _keywords, .fname = "create_aggregate", .kwtuple = KWTUPLE, + .pos = 3, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -660,6 +664,7 @@ pysqlite_connection_set_authorizer(PyObject *self, PyTypeObject *cls, PyObject * .keywords = _keywords, .fname = "set_authorizer", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -731,6 +736,7 @@ pysqlite_connection_set_progress_handler(PyObject *self, PyTypeObject *cls, PyOb .keywords = _keywords, .fname = "set_progress_handler", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -782,6 +788,7 @@ pysqlite_connection_set_trace_callback(PyObject *self, PyTypeObject *cls, PyObje .keywords = _keywords, .fname = "set_trace_callback", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -877,6 +884,7 @@ pysqlite_connection_load_extension(PyObject *self, PyObject *const *args, Py_ssi .keywords = _keywords, .fname = "load_extension", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1262,6 +1270,7 @@ pysqlite_connection_create_collation(PyObject *self, PyTypeObject *cls, PyObject .keywords = _keywords, .fname = "create_collation", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1437,6 +1446,7 @@ deserialize(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *k .keywords = _keywords, .fname = "deserialize", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1725,4 +1735,4 @@ getconfig(PyObject *self, PyObject *arg) #ifndef DESERIALIZE_METHODDEF #define DESERIALIZE_METHODDEF #endif /* !defined(DESERIALIZE_METHODDEF) */ -/*[clinic end generated code: output=11ccc746e9223121 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f5c69c86571ea102 input=a9049054013a1b77]*/ diff --git a/Modules/_zstd/clinic/zstddict.c.h b/Modules/_zstd/clinic/zstddict.c.h index 18b049e3cbe37ef..3326a6d77b40697 100644 --- a/Modules/_zstd/clinic/zstddict.c.h +++ b/Modules/_zstd/clinic/zstddict.c.h @@ -57,6 +57,7 @@ _zstd_ZstdDict_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) .keywords = _keywords, .fname = "ZstdDict", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -224,4 +225,4 @@ _zstd_ZstdDict_as_prefix_get(PyObject *self, void *Py_UNUSED(context)) { return _zstd_ZstdDict_as_prefix_get_impl((ZstdDict *)self); } -/*[clinic end generated code: output=49b66061b4fcdb5f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=22562682cdf3a73d input=a9049054013a1b77]*/ diff --git a/Modules/cjkcodecs/clinic/multibytecodec.c.h b/Modules/cjkcodecs/clinic/multibytecodec.c.h index 32588b0561e1acc..6fb2261b72caac3 100644 --- a/Modules/cjkcodecs/clinic/multibytecodec.c.h +++ b/Modules/cjkcodecs/clinic/multibytecodec.c.h @@ -607,6 +607,7 @@ _multibytecodec_MultibyteStreamWriter_write(PyObject *self, PyTypeObject *cls, P .keywords = _keywords, .fname = "write", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -652,6 +653,7 @@ _multibytecodec_MultibyteStreamWriter_writelines(PyObject *self, PyTypeObject *c .keywords = _keywords, .fname = "writelines", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -698,4 +700,4 @@ PyDoc_STRVAR(_multibytecodec___create_codec__doc__, #define _MULTIBYTECODEC___CREATE_CODEC_METHODDEF \ {"__create_codec", (PyCFunction)_multibytecodec___create_codec, METH_O, _multibytecodec___create_codec__doc__}, -/*[clinic end generated code: output=a84b1544d7d01abb input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c56e4fe60b1cefc6 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_asynciomodule.c.h b/Modules/clinic/_asynciomodule.c.h index 14cf5eebc5eec7a..6377150de6e513a 100644 --- a/Modules/clinic/_asynciomodule.c.h +++ b/Modules/clinic/_asynciomodule.c.h @@ -176,6 +176,7 @@ _asyncio_Future_set_result(PyObject *self, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "set_result", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -226,6 +227,7 @@ _asyncio_Future_set_exception(PyObject *self, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "set_exception", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -291,6 +293,7 @@ _asyncio_Future_add_done_callback(PyObject *self, PyTypeObject *cls, PyObject *c .keywords = _keywords, .fname = "add_done_callback", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -347,6 +350,7 @@ _asyncio_Future_remove_done_callback(PyObject *self, PyTypeObject *cls, PyObject .keywords = _keywords, .fname = "remove_done_callback", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -2258,4 +2262,4 @@ _asyncio_future_discard_from_awaited_by(PyObject *module, PyObject *const *args, exit: return return_value; } -/*[clinic end generated code: output=46d50c477614b57e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f42ee6fcf2fca4f0 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_cursesmodule.c.h b/Modules/clinic/_cursesmodule.c.h index 256d7ea9255948a..0552b970ee4478f 100644 --- a/Modules/clinic/_cursesmodule.c.h +++ b/Modules/clinic/_cursesmodule.c.h @@ -60,6 +60,7 @@ complexchar_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) .keywords = _keywords, .fname = "complexchar", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -156,6 +157,7 @@ complexstr_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) .keywords = _keywords, .fname = "complexstr", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -6749,4 +6751,4 @@ _curses_has_extended_color_support(PyObject *module, PyObject *Py_UNUSED(ignored #ifndef _CURSES_ASSUME_DEFAULT_COLORS_METHODDEF #define _CURSES_ASSUME_DEFAULT_COLORS_METHODDEF #endif /* !defined(_CURSES_ASSUME_DEFAULT_COLORS_METHODDEF) */ -/*[clinic end generated code: output=bbaebaa6961d42d3 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=473787dcc9b976cc input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_elementtree.c.h b/Modules/clinic/_elementtree.c.h index a39e738ec538b63..470b27b6225e819 100644 --- a/Modules/clinic/_elementtree.c.h +++ b/Modules/clinic/_elementtree.c.h @@ -41,6 +41,7 @@ _elementtree_Element_append(PyObject *self, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "append", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -203,6 +204,7 @@ _elementtree_Element___setstate__(PyObject *self, PyTypeObject *cls, PyObject *c .keywords = _keywords, .fname = "__setstate__", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -250,6 +252,7 @@ _elementtree_Element_extend(PyObject *self, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "extend", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -859,6 +862,7 @@ _elementtree_Element_makeelement(PyObject *self, PyTypeObject *cls, PyObject *co .keywords = _keywords, .fname = "makeelement", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1479,4 +1483,4 @@ _elementtree_XMLParser__setevents(PyObject *self, PyObject *const *args, Py_ssiz exit: return return_value; } -/*[clinic end generated code: output=e2e9cf288c4400f6 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=61cfcd2e4a4b86f5 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_functoolsmodule.c.h b/Modules/clinic/_functoolsmodule.c.h index 5f350c864f057b0..b58317a736b521f 100644 --- a/Modules/clinic/_functoolsmodule.c.h +++ b/Modules/clinic/_functoolsmodule.c.h @@ -120,6 +120,7 @@ _functools_reduce(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO .keywords = _keywords, .fname = "reduce", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -193,4 +194,4 @@ _functools__lru_cache_wrapper_cache_clear(PyObject *self, PyObject *Py_UNUSED(ig return return_value; } -/*[clinic end generated code: output=6d8fdaeba4b520fa input=a9049054013a1b77]*/ +/*[clinic end generated code: output=fdf39f5fbfd95e6b input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_opcode.c.h b/Modules/clinic/_opcode.c.h index fb8d814241bd5e8..52491bf24fa3e88 100644 --- a/Modules/clinic/_opcode.c.h +++ b/Modules/clinic/_opcode.c.h @@ -50,6 +50,7 @@ _opcode_stack_effect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, .keywords = _keywords, .fname = "stack_effect", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -776,4 +777,4 @@ _opcode_get_executor(PyObject *module, PyObject *const *args, Py_ssize_t nargs, exit: return return_value; } -/*[clinic end generated code: output=a11f02989c3175d7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f9e75db0b569efc0 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h index 213e817a50a287f..1ee046f05b2841c 100644 --- a/Modules/clinic/_pickle.c.h +++ b/Modules/clinic/_pickle.c.h @@ -59,6 +59,7 @@ _pickle_Pickler_dump(PyObject *self, PyTypeObject *cls, PyObject *const *args, P .keywords = _keywords, .fname = "dump", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -297,6 +298,7 @@ _pickle_Unpickler_persistent_load(PyObject *self, PyTypeObject *cls, PyObject *c .keywords = _keywords, .fname = "persistent_load", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -376,6 +378,7 @@ _pickle_Unpickler_find_class(PyObject *self, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "find_class", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1027,6 +1030,7 @@ _pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec .keywords = _keywords, .fname = "loads", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -1098,4 +1102,4 @@ _pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } -/*[clinic end generated code: output=6331c72b3c427f63 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=355f605fbbbe652d input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_struct.c.h b/Modules/clinic/_struct.c.h index 22fec68a4e9ee63..ebe0721643e989b 100644 --- a/Modules/clinic/_struct.c.h +++ b/Modules/clinic/_struct.c.h @@ -639,6 +639,7 @@ unpack_from(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject .keywords = _keywords, .fname = "unpack_from", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -726,4 +727,4 @@ iter_unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs) return return_value; } -/*[clinic end generated code: output=021b89d2d3c3c225 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=7abe72a89f0804f0 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_testclinic.c.h b/Modules/clinic/_testclinic.c.h index c3bf217a9e7b7b7..faac2e0a402feff 100644 --- a/Modules/clinic/_testclinic.c.h +++ b/Modules/clinic/_testclinic.c.h @@ -1997,6 +1997,7 @@ posonly_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb .keywords = _keywords, .fname = "posonly_keywords", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -2056,6 +2057,7 @@ posonly_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje .keywords = _keywords, .fname = "posonly_kwonly", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -2116,6 +2118,7 @@ posonly_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t narg .keywords = _keywords, .fname = "posonly_keywords_kwonly", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -2178,6 +2181,7 @@ posonly_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, .keywords = _keywords, .fname = "posonly_keywords_opt", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -2252,6 +2256,7 @@ posonly_opt_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nar .keywords = _keywords, .fname = "posonly_opt_keywords_opt", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -2331,6 +2336,7 @@ posonly_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py .keywords = _keywords, .fname = "posonly_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -2405,6 +2411,7 @@ posonly_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs .keywords = _keywords, .fname = "posonly_opt_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -2484,6 +2491,7 @@ posonly_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t .keywords = _keywords, .fname = "posonly_keywords_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -2562,6 +2570,7 @@ posonly_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssiz .keywords = _keywords, .fname = "posonly_keywords_opt_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -2649,6 +2658,7 @@ posonly_opt_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ .keywords = _keywords, .fname = "posonly_opt_keywords_opt_kwonly_opt", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -2901,6 +2911,7 @@ posonly_poskw_varpos(PyObject *module, PyObject *const *args, Py_ssize_t nargs, .keywords = _keywords, .fname = "posonly_poskw_varpos", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -3454,6 +3465,7 @@ posonly_poskw_varpos_array(PyObject *module, PyObject *const *args, Py_ssize_t n .keywords = _keywords, .fname = "posonly_poskw_varpos_array", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -4572,6 +4584,7 @@ _testclinic_TestClass_defclass_posonly_varpos(PyObject *self, PyTypeObject *cls, .keywords = _keywords, .fname = "defclass_posonly_varpos", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -4754,6 +4767,7 @@ _testclinic_TestClass_posonly_poskw_varpos_no_fastcall(PyObject *type, PyObject .keywords = _keywords, .fname = "posonly_poskw_varpos_no_fastcall", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -4932,6 +4946,7 @@ _testclinic_TestClass_posonly_poskw_varpos_array_no_fastcall(PyObject *type, PyO .keywords = _keywords, .fname = "posonly_poskw_varpos_array_no_fastcall", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5082,6 +5097,7 @@ vc_posorkw_init_helper(PyObject *self, PyObject *const *args, .keywords = _keywords, .fname = "VcInit", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5205,6 +5221,7 @@ vc_base_new_helper(PyTypeObject *type, PyObject *const *args, .keywords = _keywords, .fname = "VcNewBase", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -5349,4 +5366,4 @@ vc_kwonly_vectorcall(PyObject *type, PyObject *const *args, kwnames ? PyTuple_GET_SIZE(kwnames) : 0, NULL, kwnames); } -/*[clinic end generated code: output=8a219f606f1296ac input=a9049054013a1b77]*/ +/*[clinic end generated code: output=13381a9174629428 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_testclinic_depr.c.h b/Modules/clinic/_testclinic_depr.c.h index 1b0195185329a2a..11c197168f01fcb 100644 --- a/Modules/clinic/_testclinic_depr.c.h +++ b/Modules/clinic/_testclinic_depr.c.h @@ -1690,6 +1690,7 @@ depr_kwd_required_1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "depr_kwd_required_1", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1774,6 +1775,7 @@ depr_kwd_required_2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "depr_kwd_required_2", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -1858,6 +1860,7 @@ depr_kwd_optional_1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "depr_kwd_optional_1", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1947,6 +1950,7 @@ depr_kwd_optional_2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "depr_kwd_optional_2", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -2144,6 +2148,7 @@ depr_kwd_required_optional(PyObject *module, PyObject *const *args, Py_ssize_t n .keywords = _keywords, .fname = "depr_kwd_required_optional", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -2324,6 +2329,7 @@ depr_kwd_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje .keywords = _keywords, .fname = "depr_kwd_multi", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[8]; @@ -2513,6 +2519,7 @@ depr_param(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * .keywords = _keywords, .fname = "depr_param", .kwtuple = KWTUPLE, + .pos = 3, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -2634,6 +2641,7 @@ depr_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * .keywords = _keywords, .fname = "depr_multi", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[7]; @@ -2681,4 +2689,4 @@ depr_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * exit: return return_value; } -/*[clinic end generated code: output=858abe8a5a885725 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=968807a8e3023dd4 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_zoneinfo.c.h b/Modules/clinic/_zoneinfo.c.h index 19564a6c13f246a..31cc6c0971e2ef4 100644 --- a/Modules/clinic/_zoneinfo.c.h +++ b/Modules/clinic/_zoneinfo.c.h @@ -110,6 +110,7 @@ zoneinfo_ZoneInfo_from_file(PyObject *type, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "from_file", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -287,6 +288,7 @@ zoneinfo_ZoneInfo_utcoffset(PyObject *self, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "utcoffset", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -331,6 +333,7 @@ zoneinfo_ZoneInfo_dst(PyObject *self, PyTypeObject *cls, PyObject *const *args, .keywords = _keywords, .fname = "dst", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -376,6 +379,7 @@ zoneinfo_ZoneInfo_tzname(PyObject *self, PyTypeObject *cls, PyObject *const *arg .keywords = _keywords, .fname = "tzname", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -421,6 +425,7 @@ zoneinfo_ZoneInfo__unpickle(PyObject *type, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "_unpickle", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -454,4 +459,4 @@ zoneinfo_ZoneInfo__unpickle(PyObject *type, PyTypeObject *cls, PyObject *const * exit: return return_value; } -/*[clinic end generated code: output=c6df04d7b400bd7f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=da17747abfb6c0dd input=a9049054013a1b77]*/ diff --git a/Modules/clinic/arraymodule.c.h b/Modules/clinic/arraymodule.c.h index 1e9f317853d6c2e..19ae7e579227435 100644 --- a/Modules/clinic/arraymodule.c.h +++ b/Modules/clinic/arraymodule.c.h @@ -228,6 +228,7 @@ array_array_extend(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ .keywords = _keywords, .fname = "extend", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -397,6 +398,7 @@ array_array_fromfile(PyObject *self, PyTypeObject *cls, PyObject *const *args, P .keywords = _keywords, .fname = "fromfile", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -459,6 +461,7 @@ array_array_tofile(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ .keywords = _keywords, .fname = "tofile", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -721,6 +724,7 @@ array_array___reduce_ex__(PyObject *self, PyTypeObject *cls, PyObject *const *ar .keywords = _keywords, .fname = "__reduce_ex__", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -781,4 +785,4 @@ array_arrayiterator___setstate__(PyObject *self, PyObject *state) return return_value; } -/*[clinic end generated code: output=32784678e77ac658 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=d55dfe1b7fe87b74 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/binascii.c.h b/Modules/clinic/binascii.c.h index 29fa9e87de87c7a..b05815589c95b6f 100644 --- a/Modules/clinic/binascii.c.h +++ b/Modules/clinic/binascii.c.h @@ -82,6 +82,7 @@ binascii_b2a_uu(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj .keywords = _keywords, .fname = "b2a_uu", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -173,6 +174,7 @@ binascii_a2b_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "a2b_base64", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[6]; @@ -296,6 +298,7 @@ binascii_b2a_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "b2a_base64", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -415,6 +418,7 @@ binascii_a2b_ascii85(PyObject *module, PyObject *const *args, Py_ssize_t nargs, .keywords = _keywords, .fname = "a2b_ascii85", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -533,6 +537,7 @@ binascii_b2a_ascii85(PyObject *module, PyObject *const *args, Py_ssize_t nargs, .keywords = _keywords, .fname = "b2a_ascii85", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -645,6 +650,7 @@ binascii_a2b_base85(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "a2b_base85", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -748,6 +754,7 @@ binascii_b2a_base85(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "b2a_base85", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -855,6 +862,7 @@ binascii_a2b_base32(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "a2b_base32", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[5]; @@ -968,6 +976,7 @@ binascii_b2a_base32(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P .keywords = _keywords, .fname = "b2a_base32", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -1393,6 +1402,7 @@ binascii_a2b_hex(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb .keywords = _keywords, .fname = "a2b_hex", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1476,6 +1486,7 @@ binascii_unhexlify(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py .keywords = _keywords, .fname = "unhexlify", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1685,4 +1696,4 @@ binascii_b2a_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj return return_value; } -/*[clinic end generated code: output=42dd48f323cbb118 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ea05ddab5cd56a1a input=a9049054013a1b77]*/ diff --git a/Modules/clinic/mathmodule.c.h b/Modules/clinic/mathmodule.c.h index a5e583c180defee..c5e872916f4051d 100644 --- a/Modules/clinic/mathmodule.c.h +++ b/Modules/clinic/mathmodule.c.h @@ -1012,6 +1012,7 @@ math_prod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k .keywords = _keywords, .fname = "prod", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1082,6 +1083,7 @@ math_nextafter(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje .keywords = _keywords, .fname = "nextafter", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -1164,4 +1166,4 @@ math_ulp(PyObject *module, PyObject *arg) exit: return return_value; } -/*[clinic end generated code: output=3452ce8caa2d1bd7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=7820b7b4210b69a0 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/mmapmodule.c.h b/Modules/clinic/mmapmodule.c.h index 98c5bf6a2fb1462..ba40b48c919ee28 100644 --- a/Modules/clinic/mmapmodule.c.h +++ b/Modules/clinic/mmapmodule.c.h @@ -415,6 +415,7 @@ mmap_mmap_flush(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObjec .keywords = _keywords, .fname = "flush", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -881,4 +882,4 @@ mmap_mmap_madvise(PyObject *self, PyObject *const *args, Py_ssize_t nargs) #ifndef MMAP_MMAP_MADVISE_METHODDEF #define MMAP_MMAP_MADVISE_METHODDEF #endif /* !defined(MMAP_MMAP_MADVISE_METHODDEF) */ -/*[clinic end generated code: output=1122b93314aebc5c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=66d63033ab1fb170 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h index 7c8171c04c0727b..294ee4aaf8f3a74 100644 --- a/Modules/clinic/posixmodule.c.h +++ b/Modules/clinic/posixmodule.c.h @@ -3989,6 +3989,7 @@ os_posix_spawn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje .keywords = _keywords, .fname = "posix_spawn", .kwtuple = KWTUPLE, + .pos = 3, }; #undef KWTUPLE PyObject *argsbuf[10]; @@ -4143,6 +4144,7 @@ os_posix_spawnp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj .keywords = _keywords, .fname = "posix_spawnp", .kwtuple = KWTUPLE, + .pos = 3, }; #undef KWTUPLE PyObject *argsbuf[10]; @@ -6915,6 +6917,7 @@ os_timerfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO .keywords = _keywords, .fname = "timerfd_create", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -7000,6 +7003,7 @@ os_timerfd_settime(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py .keywords = _keywords, .fname = "timerfd_settime", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -7117,6 +7121,7 @@ os_timerfd_settime_ns(PyObject *module, PyObject *const *args, Py_ssize_t nargs, .keywords = _keywords, .fname = "timerfd_settime_ns", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -13747,4 +13752,4 @@ os__emscripten_log(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py #ifndef OS__EMSCRIPTEN_LOG_METHODDEF #define OS__EMSCRIPTEN_LOG_METHODDEF #endif /* !defined(OS__EMSCRIPTEN_LOG_METHODDEF) */ -/*[clinic end generated code: output=d4e858cbdf280235 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=861ac70570e454a2 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/pyexpat.c.h b/Modules/clinic/pyexpat.c.h index 959e06da7791145..b9640368e3eb17e 100644 --- a/Modules/clinic/pyexpat.c.h +++ b/Modules/clinic/pyexpat.c.h @@ -88,6 +88,7 @@ pyexpat_xmlparser_Parse(PyObject *self, PyTypeObject *cls, PyObject *const *args .keywords = _keywords, .fname = "Parse", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -144,6 +145,7 @@ pyexpat_xmlparser_ParseFile(PyObject *self, PyTypeObject *cls, PyObject *const * .keywords = _keywords, .fname = "ParseFile", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -296,6 +298,7 @@ pyexpat_xmlparser_ExternalEntityParserCreate(PyObject *self, PyTypeObject *cls, .keywords = _keywords, .fname = "ExternalEntityParserCreate", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -416,6 +419,7 @@ pyexpat_xmlparser_UseForeignDTD(PyObject *self, PyTypeObject *cls, PyObject *con .keywords = _keywords, .fname = "UseForeignDTD", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -483,6 +487,7 @@ pyexpat_xmlparser_SetBillionLaughsAttackProtectionActivationThreshold(PyObject * .keywords = _keywords, .fname = "SetBillionLaughsAttackProtectionActivationThreshold", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -552,6 +557,7 @@ pyexpat_xmlparser_SetBillionLaughsAttackProtectionMaximumAmplification(PyObject .keywords = _keywords, .fname = "SetBillionLaughsAttackProtectionMaximumAmplification", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -615,6 +621,7 @@ pyexpat_xmlparser_SetAllocTrackerActivationThreshold(PyObject *self, PyTypeObjec .keywords = _keywords, .fname = "SetAllocTrackerActivationThreshold", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -682,6 +689,7 @@ pyexpat_xmlparser_SetAllocTrackerMaximumAmplification(PyObject *self, PyTypeObje .keywords = _keywords, .fname = "SetAllocTrackerMaximumAmplification", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -870,4 +878,4 @@ pyexpat_ErrorString(PyObject *module, PyObject *arg) #ifndef PYEXPAT_XMLPARSER_SETALLOCTRACKERMAXIMUMAMPLIFICATION_METHODDEF #define PYEXPAT_XMLPARSER_SETALLOCTRACKERMAXIMUMAMPLIFICATION_METHODDEF #endif /* !defined(PYEXPAT_XMLPARSER_SETALLOCTRACKERMAXIMUMAMPLIFICATION_METHODDEF) */ -/*[clinic end generated code: output=c68606a1fbc3a501 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3262fdda2b084734 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/signalmodule.c.h b/Modules/clinic/signalmodule.c.h index 6125f253ac0380d..39ffb52b01a5919 100644 --- a/Modules/clinic/signalmodule.c.h +++ b/Modules/clinic/signalmodule.c.h @@ -328,6 +328,7 @@ signal_set_wakeup_fd(PyObject *module, PyObject *const *args, Py_ssize_t nargs, .keywords = _keywords, .fname = "set_wakeup_fd", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -807,4 +808,4 @@ signal_pidfd_send_signal(PyObject *module, PyObject *const *args, Py_ssize_t nar #ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF #define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF #endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */ -/*[clinic end generated code: output=2a04ec31f49b1c93 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=863e23a79ac1dce8 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/symtablemodule.c.h b/Modules/clinic/symtablemodule.c.h index 00ee4315846b603..ee4cc7c3a54a608 100644 --- a/Modules/clinic/symtablemodule.c.h +++ b/Modules/clinic/symtablemodule.c.h @@ -53,6 +53,7 @@ _symtable_symtable(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py .keywords = _keywords, .fname = "symtable", .kwtuple = KWTUPLE, + .pos = 3, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -97,4 +98,4 @@ _symtable_symtable(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py return return_value; } -/*[clinic end generated code: output=23523cada784726e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=bdd82b7861e8fb3c input=a9049054013a1b77]*/ diff --git a/Modules/clinic/zlibmodule.c.h b/Modules/clinic/zlibmodule.c.h index 620e483d5a759a7..5b65c23a6a0558f 100644 --- a/Modules/clinic/zlibmodule.c.h +++ b/Modules/clinic/zlibmodule.c.h @@ -57,6 +57,7 @@ zlib_compress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec .keywords = _keywords, .fname = "compress", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -150,6 +151,7 @@ zlib_decompress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj .keywords = _keywords, .fname = "decompress", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -466,6 +468,7 @@ zlib_Compress_compress(PyObject *self, PyTypeObject *cls, PyObject *const *args, .keywords = _keywords, .fname = "compress", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -543,6 +546,7 @@ zlib_Decompress_decompress(PyObject *self, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "decompress", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -623,6 +627,7 @@ zlib_Compress_flush(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py .keywords = _keywords, .fname = "flush", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -727,6 +732,7 @@ zlib_Compress___deepcopy__(PyObject *self, PyTypeObject *cls, PyObject *const *a .keywords = _keywords, .fname = "__deepcopy__", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -826,6 +832,7 @@ zlib_Decompress___deepcopy__(PyObject *self, PyTypeObject *cls, PyObject *const .keywords = _keywords, .fname = "__deepcopy__", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -876,6 +883,7 @@ zlib_Decompress_flush(PyObject *self, PyTypeObject *cls, PyObject *const *args, .keywords = _keywords, .fname = "flush", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[1]; @@ -1403,4 +1411,4 @@ zlib_crc32_combine(PyObject *module, PyObject *const *args, Py_ssize_t nargs) #ifndef ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF #define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF #endif /* !defined(ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF) */ -/*[clinic end generated code: output=c9a60fe6600a2e4d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=716e79d29a18e804 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/bytearrayobject.c.h b/Objects/clinic/bytearrayobject.c.h index 41ce82c05c57d97..ffd97c2a34c2d6b 100644 --- a/Objects/clinic/bytearrayobject.c.h +++ b/Objects/clinic/bytearrayobject.c.h @@ -719,6 +719,7 @@ bytearray_translate(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyO .keywords = _keywords, .fname = "translate", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -842,6 +843,7 @@ bytearray_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObj .keywords = _keywords, .fname = "replace", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -1882,4 +1884,4 @@ bytearray_sizeof(PyObject *self, PyObject *Py_UNUSED(ignored)) { return bytearray_sizeof_impl((PyByteArrayObject *)self); } -/*[clinic end generated code: output=6dc315d35de3e670 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c707496beae6f6c8 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/bytesobject.c.h b/Objects/clinic/bytesobject.c.h index ee2b737f9e63f97..dee48a68dd6b899 100644 --- a/Objects/clinic/bytesobject.c.h +++ b/Objects/clinic/bytesobject.c.h @@ -720,6 +720,7 @@ bytes_translate(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObjec .keywords = _keywords, .fname = "translate", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -841,6 +842,7 @@ bytes_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject .keywords = _keywords, .fname = "replace", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -1455,4 +1457,4 @@ bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=c20458db7a2123db input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3eb79a981a8cc2d5 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/longobject.c.h b/Objects/clinic/longobject.c.h index 52ecaffa1f4cf35..7816829e0dfdd30 100644 --- a/Objects/clinic/longobject.c.h +++ b/Objects/clinic/longobject.c.h @@ -41,6 +41,7 @@ long_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) .keywords = _keywords, .fname = "int", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -493,4 +494,4 @@ int_is_integer(PyObject *self, PyObject *Py_UNUSED(ignored)) { return int_is_integer_impl(self); } -/*[clinic end generated code: output=d95766fb7ff46963 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c8779e2a833ba8d6 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/sentinelobject.c.h b/Objects/clinic/sentinelobject.c.h index f8503194ae5c740..4995bfdf8b78e6b 100644 --- a/Objects/clinic/sentinelobject.c.h +++ b/Objects/clinic/sentinelobject.c.h @@ -40,6 +40,7 @@ sentinel_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) .keywords = _keywords, .fname = "sentinel", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -69,4 +70,4 @@ sentinel_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=958842ece254c82f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=0e007ce816631bfd input=a9049054013a1b77]*/ diff --git a/Objects/clinic/unicodeobject.c.h b/Objects/clinic/unicodeobject.c.h index d0753b38843fccf..9108a731f8f9ecc 100644 --- a/Objects/clinic/unicodeobject.c.h +++ b/Objects/clinic/unicodeobject.c.h @@ -960,6 +960,7 @@ unicode_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObjec .keywords = _keywords, .fname = "replace", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -1916,4 +1917,4 @@ unicode_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=9d243c63e951e31d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a449184f73f2046b input=a9049054013a1b77]*/ diff --git a/Python/clinic/Python-tokenize.c.h b/Python/clinic/Python-tokenize.c.h index 9e64c2055a8db6d..668c160c3281936 100644 --- a/Python/clinic/Python-tokenize.c.h +++ b/Python/clinic/Python-tokenize.c.h @@ -41,6 +41,7 @@ tokenizeriter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) .keywords = _keywords, .fname = "tokenizeriter", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -83,4 +84,4 @@ tokenizeriter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=4c448f34d9c835c0 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=28a70c2e58b7d5d5 input=a9049054013a1b77]*/ diff --git a/Python/clinic/bltinmodule.c.h b/Python/clinic/bltinmodule.c.h index c10bb03d8178161..0642819da8194d4 100644 --- a/Python/clinic/bltinmodule.c.h +++ b/Python/clinic/bltinmodule.c.h @@ -556,6 +556,7 @@ builtin_eval(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject .keywords = _keywords, .fname = "eval", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -637,6 +638,7 @@ builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject .keywords = _keywords, .fname = "exec", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -896,6 +898,7 @@ builtin_iter(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject .keywords = _keywords, .fname = "iter", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -976,6 +979,7 @@ builtin_aiter(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec .keywords = _keywords, .fname = "aiter", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -1446,6 +1450,7 @@ builtin_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject .keywords = _keywords, .fname = "sum", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -1539,4 +1544,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=5fb1ac6a4253ee2f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=320188361270a1c0 input=a9049054013a1b77]*/ diff --git a/Python/clinic/import.c.h b/Python/clinic/import.c.h index 2e4e178b3084063..6f5d4b72ab96906 100644 --- a/Python/clinic/import.c.h +++ b/Python/clinic/import.c.h @@ -219,6 +219,7 @@ _imp_find_frozen(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb .keywords = _keywords, .fname = "find_frozen", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -665,4 +666,4 @@ _imp__set_lazy_attributes(PyObject *module, PyObject *const *args, Py_ssize_t na #ifndef _IMP_EXEC_DYNAMIC_METHODDEF #define _IMP_EXEC_DYNAMIC_METHODDEF #endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */ -/*[clinic end generated code: output=0974db098d601372 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=13245ae7342e5408 input=a9049054013a1b77]*/ diff --git a/Python/clinic/marshal.c.h b/Python/clinic/marshal.c.h index ec0d2eb8a2af543..2371abfabb49c36 100644 --- a/Python/clinic/marshal.c.h +++ b/Python/clinic/marshal.c.h @@ -63,6 +63,7 @@ marshal_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject .keywords = _keywords, .fname = "dump", .kwtuple = KWTUPLE, + .pos = 3, }; #undef KWTUPLE PyObject *argsbuf[4]; @@ -155,6 +156,7 @@ marshal_load(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject .keywords = _keywords, .fname = "load", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -234,6 +236,7 @@ marshal_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec .keywords = _keywords, .fname = "dumps", .kwtuple = KWTUPLE, + .pos = 2, }; #undef KWTUPLE PyObject *argsbuf[3]; @@ -318,6 +321,7 @@ marshal_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec .keywords = _keywords, .fname = "loads", .kwtuple = KWTUPLE, + .pos = 1, }; #undef KWTUPLE PyObject *argsbuf[2]; @@ -351,4 +355,4 @@ marshal_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec return return_value; } -/*[clinic end generated code: output=a574570c3717f60e input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c425311647fb2e87 input=a9049054013a1b77]*/ diff --git a/Python/getargs.c b/Python/getargs.c index 3f423266bff7f47..593499ca2c84c93 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -2045,21 +2045,11 @@ scan_keywords(const char * const *keywords, int *ptotal, int *pposonly) static int parse_format(const char *format, int total, int npos, - const char **pfname, const char **pcustommsg, - int *pmin, int *pmax) + const char **pfname, int *pmin, int *pmax) { - /* grab the function name or custom error msg first (mutually exclusive) */ - const char *custommsg; const char *fname = strchr(format, ':'); if (fname) { fname++; - custommsg = NULL; - } - else { - custommsg = strchr(format,';'); - if (custommsg) { - custommsg++; - } } int min = INT_MAX; @@ -2118,7 +2108,6 @@ parse_format(const char *format, int total, int npos, } *pfname = fname; - *pcustommsg = custommsg; *pmin = min; *pmax = max; return 0; @@ -2152,9 +2141,7 @@ _parser_init(void *arg) struct _PyArg_Parser *parser = (struct _PyArg_Parser *)arg; const char * const *keywords = parser->keywords; assert(keywords != NULL); - assert(parser->pos == 0 && - (parser->format == NULL || parser->fname == NULL) && - parser->custom_msg == NULL && + assert((parser->format == NULL || parser->fname == NULL) && parser->min == 0 && parser->max == 0); @@ -2162,13 +2149,18 @@ _parser_init(void *arg) if (scan_keywords(keywords, &len, &pos) < 0) { return -1; } + if (len > UINT16_MAX) { + PyErr_SetString(PyExc_SystemError, "Too many keyword parameters"); + return -1; + } + assert(parser->pos == 0 || parser->pos == pos); // may be set statically - const char *fname, *custommsg = NULL; + const char *fname; int min = 0, max = 0; if (parser->format) { assert(parser->fname == NULL); if (parse_format(parser->format, len, pos, - &fname, &custommsg, &min, &max) < 0) { + &fname, &min, &max) < 0) { return -1; } } @@ -2206,13 +2198,13 @@ _parser_init(void *arg) owned = 0; } - parser->pos = pos; + parser->pos = (uint16_t)pos; parser->fname = fname; - parser->custom_msg = custommsg; - parser->min = min; - parser->max = max; - parser->kwtuple = kwtuple; + parser->min = (uint16_t)min; + parser->max = (uint16_t)max; parser->is_kwtuple_owned = owned; + // Set last: see _PyArg_UnpackKeywords() + _Py_atomic_store_ptr_release(&parser->kwtuple, kwtuple); assert(parser->next == NULL); parser->next = _Py_atomic_load_ptr(&_PyRuntime.getargs.static_parsers); @@ -2242,8 +2234,6 @@ parser_clear(struct _PyArg_Parser *parser) else { assert(parser->fname != NULL); } - parser->custom_msg = NULL; - parser->pos = 0; parser->min = 0; parser->max = 0; parser->is_kwtuple_owned = 0; @@ -2412,7 +2402,15 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, levels, msgbuf, sizeof(msgbuf), &freelist); Py_DECREF(current_arg); if (msg) { - seterror(i+1, msg, levels, parser->fname, parser->custom_msg); + const char *custom_msg = NULL; + if (parser->fname == NULL) { + // The format has ";message" instead of ":name" + custom_msg = strchr(parser->format, ';'); + if (custom_msg != NULL) { + custom_msg++; + } + } + seterror(i+1, msg, levels, parser->fname, custom_msg); return cleanreturn(0, &freelist); } continue; @@ -2546,11 +2544,19 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, args = buf; } - if (parser_init(parser) < 0) { - return NULL; + // No initialization needed for a static kwtuple + kwtuple = _Py_atomic_load_ptr_acquire(&parser->kwtuple); + if (kwtuple == NULL) { + if (parser_init(parser) < 0) { + return NULL; + } + kwtuple = parser->kwtuple; } - - kwtuple = parser->kwtuple; +#ifndef NDEBUG + for (i = 0; parser->keywords[i] && !*parser->keywords[i]; i++) { + } + assert(parser->pos == i); +#endif posonly = parser->pos; minposonly = Py_MIN(posonly, minpos); maxargs = posonly + (int)PyTuple_GET_SIZE(kwtuple); diff --git a/Tools/clinic/libclinic/parse_args.py b/Tools/clinic/libclinic/parse_args.py index 4b6b54bc4febf3a..da3662df8b7c008 100644 --- a/Tools/clinic/libclinic/parse_args.py +++ b/Tools/clinic/libclinic/parse_args.py @@ -20,6 +20,7 @@ def declare_parser( f: Function, *, hasformat: bool = False, + pos_only: int = 0, codegen: CodeGen, ) -> str: """ @@ -87,15 +88,16 @@ def declare_parser( codegen.add_include('pycore_runtime.h', '_Py_ID()', condition=condition) + fields = ['.keywords = _keywords,', format_ or fname, '.kwtuple = KWTUPLE,'] + if pos_only: + fields.append(f'.pos = {pos_only},') declarations += """ static const char * const _keywords[] = {{{keywords_c} NULL}}; static _PyArg_Parser _parser = {{ - .keywords = _keywords, %s - .kwtuple = KWTUPLE, }}; #undef KWTUPLE - """ % (format_ or fname) + """ % '\n '.join(fields) return libclinic.normalize_snippet(declarations) @@ -1144,7 +1146,8 @@ def parse_general(self, clang: CLanguage) -> None: if self.fastcall: self.flags = "METH_FASTCALL|METH_KEYWORDS" self.parser_prototype = PARSER_PROTOTYPE_FASTCALL_KEYWORDS - self.declarations = declare_parser(self.func, codegen=self.codegen) + self.declarations = declare_parser(self.func, codegen=self.codegen, + pos_only=self.pos_only) self.declarations += "\nPyObject *argsbuf[%s];" % (len(self.converters) or 1) if self.varpos: self.declarations += "\nPyObject * const *fastargs;" @@ -1163,7 +1166,8 @@ def parse_general(self, clang: CLanguage) -> None: self.parser_prototype = PARSER_PROTOTYPE_KEYWORD_HELPER argsname = 'fastargs' argname_fmt = 'fastargs[%d]' - self.declarations = declare_parser(self.func, codegen=self.codegen) + self.declarations = declare_parser(self.func, codegen=self.codegen, + pos_only=self.pos_only) self.declarations += "\nPyObject *argsbuf[%s];" % (len(self.converters) or 1) self.declarations += "\nPyObject * const *fastargs;" if has_optional_kw: @@ -1177,7 +1181,8 @@ def parse_general(self, clang: CLanguage) -> None: self.parser_prototype = PARSER_PROTOTYPE_KEYWORD argsname = 'fastargs' argname_fmt = 'fastargs[%d]' - self.declarations = declare_parser(self.func, codegen=self.codegen) + self.declarations = declare_parser(self.func, codegen=self.codegen, + pos_only=self.pos_only) self.declarations += "\nPyObject *argsbuf[%s];" % (len(self.converters) or 1) self.declarations += "\nPyObject * const *fastargs;" self.declarations += "\nPy_ssize_t nargs = PyTuple_GET_SIZE(args);"