summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Include/cpython/modsupport.h73
-rw-r--r--Include/internal/pycore_modsupport.h92
-rw-r--r--Include/modsupport.h6
-rw-r--r--Makefile.pre.in1
-rw-r--r--Misc/NEWS.d/next/C API/2023-10-17-10-21-59.gh-issue-110964.OxqEjd.rst2
-rw-r--r--Modules/_asynciomodule.c1
-rw-r--r--Modules/_blake2/clinic/blake2b_impl.c.h3
-rw-r--r--Modules/_blake2/clinic/blake2s_impl.c.h3
-rw-r--r--Modules/_csv.c5
-rw-r--r--Modules/_ctypes/_ctypes.c3
-rw-r--r--Modules/_curses_panel.c5
-rw-r--r--Modules/_dbmmodule.c5
-rw-r--r--Modules/_gdbmmodule.c6
-rw-r--r--Modules/_io/clinic/_iomodule.c.h3
-rw-r--r--Modules/_io/clinic/bufferedio.c.h3
-rw-r--r--Modules/_io/clinic/bytesio.c.h3
-rw-r--r--Modules/_io/clinic/fileio.c.h3
-rw-r--r--Modules/_io/clinic/iobase.c.h3
-rw-r--r--Modules/_io/clinic/stringio.c.h3
-rw-r--r--Modules/_io/clinic/textio.c.h3
-rw-r--r--Modules/_io/clinic/winconsoleio.c.h3
-rw-r--r--Modules/_multiprocessing/clinic/multiprocessing.c.h4
-rw-r--r--Modules/_multiprocessing/clinic/posixshmem.c.h3
-rw-r--r--Modules/_multiprocessing/clinic/semaphore.c.h3
-rw-r--r--Modules/_multiprocessing/posixshmem.c5
-rw-r--r--Modules/_randommodule.c1
-rw-r--r--Modules/_sqlite/clinic/_sqlite3.connect.c.h3
-rw-r--r--Modules/_sqlite/clinic/blob.c.h4
-rw-r--r--Modules/_sqlite/clinic/connection.c.h3
-rw-r--r--Modules/_sqlite/clinic/cursor.c.h3
-rw-r--r--Modules/_sqlite/clinic/module.c.h3
-rw-r--r--Modules/_sqlite/clinic/row.c.h4
-rw-r--r--Modules/_sqlite/connection.c1
-rw-r--r--Modules/_sqlite/row.c4
-rw-r--r--Modules/_sre/clinic/sre.c.h3
-rw-r--r--Modules/_ssl/clinic/cert.c.h3
-rw-r--r--Modules/_statisticsmodule.c5
-rw-r--r--Modules/_testcapi/clinic/exceptions.c.h3
-rw-r--r--Modules/_testcapi/clinic/float.c.h4
-rw-r--r--Modules/_testcapi/clinic/vectorcall.c.h4
-rw-r--r--Modules/_testcapi/clinic/watchers.c.h4
-rw-r--r--Modules/_testcapi/exceptions.c3
-rw-r--r--Modules/_testcapi/float.c3
-rw-r--r--Modules/_testcapi/parts.h30
-rw-r--r--Modules/_testcapi/vectorcall.c3
-rw-r--r--Modules/_testcapi/watchers.c3
-rw-r--r--Modules/_testcapimodule.c6
-rw-r--r--Modules/_testinternalcapi/clinic/test_lock.c.h3
-rw-r--r--Modules/_testmultiphase.c1
-rw-r--r--Modules/_xxsubinterpretersmodule.c2
-rw-r--r--Modules/arraymodule.c1
-rw-r--r--Modules/cjkcodecs/clinic/multibytecodec.c.h3
-rw-r--r--Modules/clinic/_abc.c.h4
-rw-r--r--Modules/clinic/_asynciomodule.c.h3
-rw-r--r--Modules/clinic/_bisectmodule.c.h3
-rw-r--r--Modules/clinic/_bz2module.c.h3
-rw-r--r--Modules/clinic/_codecsmodule.c.h3
-rw-r--r--Modules/clinic/_collectionsmodule.c.h3
-rw-r--r--Modules/clinic/_csv.c.h3
-rw-r--r--Modules/clinic/_curses_panel.c.h4
-rw-r--r--Modules/clinic/_cursesmodule.c.h3
-rw-r--r--Modules/clinic/_datetimemodule.c.h3
-rw-r--r--Modules/clinic/_dbmmodule.c.h4
-rw-r--r--Modules/clinic/_elementtree.c.h3
-rw-r--r--Modules/clinic/_functoolsmodule.c.h3
-rw-r--r--Modules/clinic/_gdbmmodule.c.h4
-rw-r--r--Modules/clinic/_hashopenssl.c.h3
-rw-r--r--Modules/clinic/_heapqmodule.c.h4
-rw-r--r--Modules/clinic/_localemodule.c.h4
-rw-r--r--Modules/clinic/_lzmamodule.c.h3
-rw-r--r--Modules/clinic/_opcode.c.h3
-rw-r--r--Modules/clinic/_operator.c.h3
-rw-r--r--Modules/clinic/_pickle.c.h3
-rw-r--r--Modules/clinic/_posixsubprocess.c.h4
-rw-r--r--Modules/clinic/_queuemodule.c.h3
-rw-r--r--Modules/clinic/_randommodule.c.h4
-rw-r--r--Modules/clinic/_ssl.c.h3
-rw-r--r--Modules/clinic/_statisticsmodule.c.h4
-rw-r--r--Modules/clinic/_struct.c.h3
-rw-r--r--Modules/clinic/_testclinic.c.h3
-rw-r--r--Modules/clinic/_testclinic_depr.c.h3
-rw-r--r--Modules/clinic/_testinternalcapi.c.h3
-rw-r--r--Modules/clinic/_testmultiphase.c.h3
-rw-r--r--Modules/clinic/_tkinter.c.h4
-rw-r--r--Modules/clinic/_tracemalloc.c.h4
-rw-r--r--Modules/clinic/_weakref.c.h4
-rw-r--r--Modules/clinic/_winapi.c.h3
-rw-r--r--Modules/clinic/_zoneinfo.c.h3
-rw-r--r--Modules/clinic/arraymodule.c.h3
-rw-r--r--Modules/clinic/binascii.c.h3
-rw-r--r--Modules/clinic/cmathmodule.c.h3
-rw-r--r--Modules/clinic/fcntlmodule.c.h3
-rw-r--r--Modules/clinic/gcmodule.c.h3
-rw-r--r--Modules/clinic/grpmodule.c.h3
-rw-r--r--Modules/clinic/itertoolsmodule.c.h3
-rw-r--r--Modules/clinic/mathmodule.c.h3
-rw-r--r--Modules/clinic/overlapped.c.h3
-rw-r--r--Modules/clinic/posixmodule.c.h3
-rw-r--r--Modules/clinic/pwdmodule.c.h4
-rw-r--r--Modules/clinic/pyexpat.c.h3
-rw-r--r--Modules/clinic/readline.c.h4
-rw-r--r--Modules/clinic/resource.c.h4
-rw-r--r--Modules/clinic/selectmodule.c.h3
-rw-r--r--Modules/clinic/sha1module.c.h3
-rw-r--r--Modules/clinic/sha2module.c.h3
-rw-r--r--Modules/clinic/sha3module.c.h3
-rw-r--r--Modules/clinic/signalmodule.c.h4
-rw-r--r--Modules/clinic/socketmodule.c.h3
-rw-r--r--Modules/clinic/symtablemodule.c.h4
-rw-r--r--Modules/clinic/syslogmodule.c.h3
-rw-r--r--Modules/clinic/termios.c.h3
-rw-r--r--Modules/clinic/unicodedata.c.h4
-rw-r--r--Modules/clinic/zlibmodule.c.h3
-rw-r--r--Modules/grpmodule.c5
-rw-r--r--Modules/resource.c5
-rw-r--r--Modules/syslogmodule.c5
-rw-r--r--Objects/cellobject.c1
-rw-r--r--Objects/clinic/bytearrayobject.c.h3
-rw-r--r--Objects/clinic/bytesobject.c.h3
-rw-r--r--Objects/clinic/classobject.c.h4
-rw-r--r--Objects/clinic/codeobject.c.h3
-rw-r--r--Objects/clinic/complexobject.c.h3
-rw-r--r--Objects/clinic/descrobject.c.h3
-rw-r--r--Objects/clinic/dictobject.c.h4
-rw-r--r--Objects/clinic/enumobject.c.h3
-rw-r--r--Objects/clinic/floatobject.c.h4
-rw-r--r--Objects/clinic/funcobject.c.h3
-rw-r--r--Objects/clinic/listobject.c.h3
-rw-r--r--Objects/clinic/longobject.c.h3
-rw-r--r--Objects/clinic/memoryobject.c.h3
-rw-r--r--Objects/clinic/moduleobject.c.h3
-rw-r--r--Objects/clinic/odictobject.c.h3
-rw-r--r--Objects/clinic/structseq.c.h3
-rw-r--r--Objects/clinic/tupleobject.c.h4
-rw-r--r--Objects/clinic/typeobject.c.h4
-rw-r--r--Objects/clinic/typevarobject.c.h3
-rw-r--r--Objects/clinic/unicodeobject.c.h3
-rw-r--r--Objects/descrobject.c1
-rw-r--r--Objects/exceptions.c3
-rw-r--r--Objects/funcobject.c1
-rw-r--r--Objects/genericaliasobject.c1
-rw-r--r--Objects/genobject.c1
-rw-r--r--Objects/namespaceobject.c2
-rw-r--r--Objects/sliceobject.c1
-rw-r--r--Objects/stringlib/clinic/transmogrify.h.h3
-rw-r--r--Objects/structseq.c6
-rw-r--r--PC/_wmimodule.cpp5
-rw-r--r--PC/clinic/_testconsole.c.h3
-rw-r--r--PC/clinic/_wmimodule.cpp.h3
-rw-r--r--PC/clinic/msvcrtmodule.c.h4
-rw-r--r--PC/clinic/winreg.c.h3
-rw-r--r--PC/clinic/winsound.c.h3
-rw-r--r--PC/winsound.c5
-rw-r--r--PCbuild/pythoncore.vcxproj1
-rw-r--r--PCbuild/pythoncore.vcxproj.filters3
-rw-r--r--Python/clinic/Python-tokenize.c.h3
-rw-r--r--Python/clinic/_warnings.c.h3
-rw-r--r--Python/clinic/bltinmodule.c.h3
-rw-r--r--Python/clinic/context.c.h4
-rw-r--r--Python/clinic/import.c.h3
-rw-r--r--Python/clinic/instrumentation.c.h4
-rw-r--r--Python/clinic/marshal.c.h4
-rw-r--r--Python/clinic/sysmodule.c.h3
-rw-r--r--Python/clinic/traceback.c.h3
-rw-r--r--Python/getargs.c1
-rwxr-xr-xTools/clinic/clinic.py22
166 files changed, 510 insertions, 228 deletions
diff --git a/Include/cpython/modsupport.h b/Include/cpython/modsupport.h
deleted file mode 100644
index cfc2c2c..0000000
--- a/Include/cpython/modsupport.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef Py_CPYTHON_MODSUPPORT_H
-# error "this header file must not be included directly"
-#endif
-
-PyAPI_FUNC(int) _PyArg_UnpackStack(
- PyObject *const *args,
- Py_ssize_t nargs,
- const char *name,
- Py_ssize_t min,
- Py_ssize_t max,
- ...);
-
-PyAPI_FUNC(int) _PyArg_NoKeywords(const char *funcname, PyObject *kwargs);
-PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args);
-#define _PyArg_NoKeywords(funcname, kwargs) \
- ((kwargs) == NULL || _PyArg_NoKeywords((funcname), (kwargs)))
-#define _PyArg_NoPositional(funcname, args) \
- ((args) == NULL || _PyArg_NoPositional((funcname), (args)))
-
-#define _Py_ANY_VARARGS(n) ((n) == PY_SSIZE_T_MAX)
-
-PyAPI_FUNC(void) _PyArg_BadArgument(const char *, const char *, const char *, PyObject *);
-PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t,
- Py_ssize_t, Py_ssize_t);
-#define _PyArg_CheckPositional(funcname, nargs, min, max) \
- ((!_Py_ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \
- || _PyArg_CheckPositional((funcname), (nargs), (min), (max)))
-
-typedef struct _PyArg_Parser {
- int initialized;
- const char *format;
- const char * const *keywords;
- const char *fname;
- const char *custom_msg;
- 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;
-} _PyArg_Parser;
-
-PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *,
- struct _PyArg_Parser *, ...);
-PyAPI_FUNC(int) _PyArg_ParseStack(
- PyObject *const *args,
- Py_ssize_t nargs,
- const char *format,
- ...);
-PyAPI_FUNC(int) _PyArg_ParseStackAndKeywords(
- PyObject *const *args,
- Py_ssize_t nargs,
- PyObject *kwnames,
- struct _PyArg_Parser *,
- ...);
-PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywords(
- PyObject *const *args, Py_ssize_t nargs,
- PyObject *kwargs, PyObject *kwnames,
- struct _PyArg_Parser *parser,
- int minpos, int maxpos, int minkw,
- PyObject **buf);
-
-PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywordsWithVararg(
- PyObject *const *args, Py_ssize_t nargs,
- PyObject *kwargs, PyObject *kwnames,
- struct _PyArg_Parser *parser,
- int minpos, int maxpos, int minkw,
- int vararg, PyObject **buf);
-
-#define _PyArg_UnpackKeywords(args, nargs, kwargs, kwnames, parser, minpos, maxpos, minkw, buf) \
- (((minkw) == 0 && (kwargs) == NULL && (kwnames) == NULL && \
- (minpos) <= (nargs) && (nargs) <= (maxpos) && (args) != NULL) ? (args) : \
- _PyArg_UnpackKeywords((args), (nargs), (kwargs), (kwnames), (parser), \
- (minpos), (maxpos), (minkw), (buf)))
diff --git a/Include/internal/pycore_modsupport.h b/Include/internal/pycore_modsupport.h
index e577c6b..e12f3b7 100644
--- a/Include/internal/pycore_modsupport.h
+++ b/Include/internal/pycore_modsupport.h
@@ -13,6 +13,24 @@ extern int _PyArg_NoKwnames(const char *funcname, PyObject *kwnames);
#define _PyArg_NoKwnames(funcname, kwnames) \
((kwnames) == NULL || _PyArg_NoKwnames((funcname), (kwnames)))
+// Export for '_bz2' shared extension
+PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args);
+#define _PyArg_NoPositional(funcname, args) \
+ ((args) == NULL || _PyArg_NoPositional((funcname), (args)))
+
+// Export for '_asyncio' shared extension
+PyAPI_FUNC(int) _PyArg_NoKeywords(const char *funcname, PyObject *kwargs);
+#define _PyArg_NoKeywords(funcname, kwargs) \
+ ((kwargs) == NULL || _PyArg_NoKeywords((funcname), (kwargs)))
+
+// Export for 'zlib' shared extension
+PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t,
+ Py_ssize_t, Py_ssize_t);
+#define _Py_ANY_VARARGS(n) ((n) == PY_SSIZE_T_MAX)
+#define _PyArg_CheckPositional(funcname, nargs, min, max) \
+ ((!_Py_ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \
+ || _PyArg_CheckPositional((funcname), (nargs), (min), (max)))
+
extern PyObject ** _Py_VaBuildStack(
PyObject **small_stack,
Py_ssize_t small_stack_len,
@@ -22,6 +40,80 @@ extern PyObject ** _Py_VaBuildStack(
extern PyObject* _PyModule_CreateInitialized(PyModuleDef*, int apiver);
+// Export for '_curses' shared extension
+PyAPI_FUNC(int) _PyArg_ParseStack(
+ PyObject *const *args,
+ Py_ssize_t nargs,
+ const char *format,
+ ...);
+
+extern int _PyArg_UnpackStack(
+ PyObject *const *args,
+ Py_ssize_t nargs,
+ const char *name,
+ Py_ssize_t min,
+ Py_ssize_t max,
+ ...);
+
+// Export for '_heapq' shared extension
+PyAPI_FUNC(void) _PyArg_BadArgument(
+ const char *fname,
+ const char *displayname,
+ const char *expected,
+ PyObject *arg);
+
+// --- _PyArg_Parser API ---------------------------------------------------
+
+typedef struct _PyArg_Parser {
+ int initialized;
+ const char *format;
+ const char * const *keywords;
+ const char *fname;
+ const char *custom_msg;
+ 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;
+} _PyArg_Parser;
+
+// Export for '_testclinic' shared extension
+PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *,
+ struct _PyArg_Parser *, ...);
+
+// Export for '_dbm' shared extension
+PyAPI_FUNC(int) _PyArg_ParseStackAndKeywords(
+ PyObject *const *args,
+ Py_ssize_t nargs,
+ PyObject *kwnames,
+ struct _PyArg_Parser *,
+ ...);
+
+// Export for 'math' shared extension
+PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywords(
+ PyObject *const *args,
+ Py_ssize_t nargs,
+ PyObject *kwargs,
+ PyObject *kwnames,
+ struct _PyArg_Parser *parser,
+ int minpos,
+ int maxpos,
+ int minkw,
+ PyObject **buf);
+#define _PyArg_UnpackKeywords(args, nargs, kwargs, kwnames, parser, minpos, maxpos, minkw, buf) \
+ (((minkw) == 0 && (kwargs) == NULL && (kwnames) == NULL && \
+ (minpos) <= (nargs) && (nargs) <= (maxpos) && (args) != NULL) ? (args) : \
+ _PyArg_UnpackKeywords((args), (nargs), (kwargs), (kwnames), (parser), \
+ (minpos), (maxpos), (minkw), (buf)))
+
+// Export for '_testclinic' shared extension
+PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywordsWithVararg(
+ PyObject *const *args, Py_ssize_t nargs,
+ PyObject *kwargs, PyObject *kwnames,
+ struct _PyArg_Parser *parser,
+ int minpos, int maxpos, int minkw,
+ int vararg, PyObject **buf);
+
#ifdef __cplusplus
}
#endif
diff --git a/Include/modsupport.h b/Include/modsupport.h
index 6efe9dfa..450cc99 100644
--- a/Include/modsupport.h
+++ b/Include/modsupport.h
@@ -134,12 +134,6 @@ PyAPI_FUNC(PyObject *) PyModule_FromDefAndSpec2(PyModuleDef *def,
#endif /* New in 3.5 */
-#ifndef Py_LIMITED_API
-# define Py_CPYTHON_MODSUPPORT_H
-# include "cpython/modsupport.h"
-# undef Py_CPYTHON_MODSUPPORT_H
-#endif
-
#ifdef __cplusplus
}
#endif
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 4996c5c..ff046ba 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1720,7 +1720,6 @@ PYTHON_HEADERS= \
$(srcdir)/Include/cpython/longobject.h \
$(srcdir)/Include/cpython/memoryobject.h \
$(srcdir)/Include/cpython/methodobject.h \
- $(srcdir)/Include/cpython/modsupport.h \
$(srcdir)/Include/cpython/object.h \
$(srcdir)/Include/cpython/objimpl.h \
$(srcdir)/Include/cpython/odictobject.h \
diff --git a/Misc/NEWS.d/next/C API/2023-10-17-10-21-59.gh-issue-110964.OxqEjd.rst b/Misc/NEWS.d/next/C API/2023-10-17-10-21-59.gh-issue-110964.OxqEjd.rst
new file mode 100644
index 0000000..e45a25d
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2023-10-17-10-21-59.gh-issue-110964.OxqEjd.rst
@@ -0,0 +1,2 @@
+Move the undocumented private _PyArg functions and _PyArg_Parser structure
+to internal C API (``pycore_modsupport.h``). Patch by Victor Stinner.
diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index e911286..6d06208 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -4,6 +4,7 @@
#include "Python.h"
#include "pycore_dict.h" // _PyDict_GetItem_KnownHash()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
#include "pycore_moduleobject.h" // _PyModule_GetState()
#include "pycore_pyerrors.h" // _PyErr_ClearExcState()
#include "pycore_pylifecycle.h" // _Py_IsInterpreterFinalizing()
diff --git a/Modules/_blake2/clinic/blake2b_impl.c.h b/Modules/_blake2/clinic/blake2b_impl.c.h
index 869cbea..79b6e67 100644
--- a/Modules/_blake2/clinic/blake2b_impl.c.h
+++ b/Modules/_blake2/clinic/blake2b_impl.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_long.h" // _PyLong_UnsignedLong_Converter()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(py_blake2b_new__doc__,
"blake2b(data=b\'\', /, *, digest_size=_blake2.blake2b.MAX_DIGEST_SIZE,\n"
@@ -276,4 +277,4 @@ _blake2_blake2b_hexdigest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored))
{
return _blake2_blake2b_hexdigest_impl(self);
}
-/*[clinic end generated code: output=2ad807e0c83d8c25 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=19b82b55c033d895 input=a9049054013a1b77]*/
diff --git a/Modules/_blake2/clinic/blake2s_impl.c.h b/Modules/_blake2/clinic/blake2s_impl.c.h
index affc203..20446b3 100644
--- a/Modules/_blake2/clinic/blake2s_impl.c.h
+++ b/Modules/_blake2/clinic/blake2s_impl.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_long.h" // _PyLong_UnsignedLong_Converter()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(py_blake2s_new__doc__,
"blake2s(data=b\'\', /, *, digest_size=_blake2.blake2s.MAX_DIGEST_SIZE,\n"
@@ -276,4 +277,4 @@ _blake2_blake2s_hexdigest(BLAKE2sObject *self, PyObject *Py_UNUSED(ignored))
{
return _blake2_blake2s_hexdigest_impl(self);
}
-/*[clinic end generated code: output=90ca2b52b8c40785 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=79b3479e90f4d077 input=a9049054013a1b77]*/
diff --git a/Modules/_csv.c b/Modules/_csv.c
index 9568334..714fbef 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -10,6 +10,11 @@ module instead.
#define MODULE_VERSION "1.0"
+// clinic/_csv.c.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include "Python.h"
#include <stddef.h> // offsetof()
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 184af21..3d23967 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -110,6 +110,9 @@ bytes(cdata)
#include "pycore_call.h" // _PyObject_CallNoArgs()
#include "pycore_ceval.h" // _Py_EnterRecursiveCall()
+#ifdef MS_WIN32
+# include "pycore_modsupport.h" // _PyArg_NoKeywords()
+#endif
#include "pycore_pyerrors.h" // _PyErr_WriteUnraisableMsg()
diff --git a/Modules/_curses_panel.c b/Modules/_curses_panel.c
index 292b57c..2ec8f34 100644
--- a/Modules/_curses_panel.c
+++ b/Modules/_curses_panel.c
@@ -10,6 +10,11 @@ static const char PyCursesVersion[] = "2.1";
/* Includes */
+// clinic/_curses_panel.c.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include "Python.h"
#include "py_curses.h"
diff --git a/Modules/_dbmmodule.c b/Modules/_dbmmodule.c
index bd80769..d50d2f1 100644
--- a/Modules/_dbmmodule.c
+++ b/Modules/_dbmmodule.c
@@ -2,6 +2,11 @@
/* DBM module using dictionary interface */
+// clinic/_dbmmodule.c.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include "Python.h"
#include <sys/types.h>
diff --git a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c
index eff36fd..db868c1 100644
--- a/Modules/_gdbmmodule.c
+++ b/Modules/_gdbmmodule.c
@@ -1,8 +1,12 @@
-
/* GDBM module using dictionary interface */
/* Author: Anthony Baxter, after dbmmodule.c */
/* Doc strings: Mitch Chapman */
+// clinic/_gdbmmodule.c.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include "Python.h"
#include "gdbm.h"
diff --git a/Modules/_io/clinic/_iomodule.c.h b/Modules/_io/clinic/_iomodule.c.h
index 49a3573..112408a 100644
--- a/Modules/_io/clinic/_iomodule.c.h
+++ b/Modules/_io/clinic/_iomodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_io_open__doc__,
"open($module, /, file, mode=\'r\', buffering=-1, encoding=None,\n"
@@ -403,4 +404,4 @@ _io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
exit:
return return_value;
}
-/*[clinic end generated code: output=aaf96c8d9bd20abc input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5d60f4e778a600a4 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/bufferedio.c.h b/Modules/_io/clinic/bufferedio.c.h
index 7577bde..83c97ae 100644
--- a/Modules/_io/clinic/bufferedio.c.h
+++ b/Modules/_io/clinic/bufferedio.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_BadArgument()
PyDoc_STRVAR(_io__BufferedIOBase_readinto__doc__,
"readinto($self, buffer, /)\n"
@@ -1094,4 +1095,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=f940cea085f0bf91 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b83f65fad0cd5fb6 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/bytesio.c.h b/Modules/_io/clinic/bytesio.c.h
index d42ab48..cf16335 100644
--- a/Modules/_io/clinic/bytesio.c.h
+++ b/Modules/_io/clinic/bytesio.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _Py_convert_optional_to_ssize_t()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_io_BytesIO_readable__doc__,
"readable($self, /)\n"
@@ -537,4 +538,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=b753fdf1ba36c461 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=27333725edff70a0 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/fileio.c.h b/Modules/_io/clinic/fileio.c.h
index deb99fa..748bc9c 100644
--- a/Modules/_io/clinic/fileio.c.h
+++ b/Modules/_io/clinic/fileio.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _Py_convert_optional_to_ssize_t()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_io_FileIO_close__doc__,
"close($self, /)\n"
@@ -535,4 +536,4 @@ _io_FileIO_isatty(fileio *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=2ce6ce923ccef86e input=a9049054013a1b77]*/
+/*[clinic end generated code: output=10838003d15e7b3d input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/iobase.c.h b/Modules/_io/clinic/iobase.c.h
index 9ac80b6..6bdfa14 100644
--- a/Modules/_io/clinic/iobase.c.h
+++ b/Modules/_io/clinic/iobase.c.h
@@ -3,6 +3,7 @@ preserve
[clinic start generated code]*/
#include "pycore_abstract.h" // _Py_convert_optional_to_ssize_t()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_io__IOBase_seek__doc__,
"seek($self, offset, whence=os.SEEK_SET, /)\n"
@@ -437,4 +438,4 @@ _io__RawIOBase_readall(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _io__RawIOBase_readall_impl(self);
}
-/*[clinic end generated code: output=95e1633805d10294 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5a22bc5db0ecaacb input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/stringio.c.h b/Modules/_io/clinic/stringio.c.h
index ccdae18..571ec51 100644
--- a/Modules/_io/clinic/stringio.c.h
+++ b/Modules/_io/clinic/stringio.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _Py_convert_optional_to_ssize_t()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_io_StringIO_getvalue__doc__,
"getvalue($self, /)\n"
@@ -367,4 +368,4 @@ _io_StringIO_seekable(stringio *self, PyObject *Py_UNUSED(ignored))
{
return _io_StringIO_seekable_impl(self);
}
-/*[clinic end generated code: output=57e86cd679344ee7 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f56aa7f8a271acf6 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/textio.c.h b/Modules/_io/clinic/textio.c.h
index bc14327..b24a166 100644
--- a/Modules/_io/clinic/textio.c.h
+++ b/Modules/_io/clinic/textio.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _Py_convert_optional_to_ssize_t()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_io__TextIOBase_detach__doc__,
"detach($self, /)\n"
@@ -979,4 +980,4 @@ _io_TextIOWrapper_close(textio *self, PyObject *Py_UNUSED(ignored))
{
return _io_TextIOWrapper_close_impl(self);
}
-/*[clinic end generated code: output=175e1723a462a722 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=e58ce89b7354e77a input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/winconsoleio.c.h b/Modules/_io/clinic/winconsoleio.c.h
index ecc71e5..f40786a 100644
--- a/Modules/_io/clinic/winconsoleio.c.h
+++ b/Modules/_io/clinic/winconsoleio.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _Py_convert_optional_to_ssize_t()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
#if defined(HAVE_WINDOWS_CONSOLE_IO)
@@ -464,4 +465,4 @@ _io__WindowsConsoleIO_isatty(winconsoleio *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=37febc4c96732b3b input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2debef253fa1ab90 input=a9049054013a1b77]*/
diff --git a/Modules/_multiprocessing/clinic/multiprocessing.c.h b/Modules/_multiprocessing/clinic/multiprocessing.c.h
index 0ae0039..70cdeef 100644
--- a/Modules/_multiprocessing/clinic/multiprocessing.c.h
+++ b/Modules/_multiprocessing/clinic/multiprocessing.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
#if defined(MS_WINDOWS)
PyDoc_STRVAR(_multiprocessing_closesocket__doc__,
@@ -166,4 +168,4 @@ exit:
#ifndef _MULTIPROCESSING_SEND_METHODDEF
#define _MULTIPROCESSING_SEND_METHODDEF
#endif /* !defined(_MULTIPROCESSING_SEND_METHODDEF) */
-/*[clinic end generated code: output=8b91c020d4353cc5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=48504f7a2d37958c input=a9049054013a1b77]*/
diff --git a/Modules/_multiprocessing/clinic/posixshmem.c.h b/Modules/_multiprocessing/clinic/posixshmem.c.h
index 09dfa11..6b6a9b1 100644
--- a/Modules/_multiprocessing/clinic/posixshmem.c.h
+++ b/Modules/_multiprocessing/clinic/posixshmem.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
#if defined(HAVE_SHM_OPEN)
@@ -165,4 +166,4 @@ exit:
#ifndef _POSIXSHMEM_SHM_UNLINK_METHODDEF
#define _POSIXSHMEM_SHM_UNLINK_METHODDEF
#endif /* !defined(_POSIXSHMEM_SHM_UNLINK_METHODDEF) */
-/*[clinic end generated code: output=2f356903a281d857 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b525631f5915d7f3 input=a9049054013a1b77]*/
diff --git a/Modules/_multiprocessing/clinic/semaphore.c.h b/Modules/_multiprocessing/clinic/semaphore.c.h
index a435737..7c85511 100644
--- a/Modules/_multiprocessing/clinic/semaphore.c.h
+++ b/Modules/_multiprocessing/clinic/semaphore.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
#if defined(HAVE_MP_SEMAPHORE) && defined(MS_WINDOWS)
@@ -541,4 +542,4 @@ exit:
#ifndef _MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF
#define _MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF
#endif /* !defined(_MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF) */
-/*[clinic end generated code: output=e8ea65f8cba8e173 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d57992037e6770b6 input=a9049054013a1b77]*/
diff --git a/Modules/_multiprocessing/posixshmem.c b/Modules/_multiprocessing/posixshmem.c
index debef32..f4da9f7 100644
--- a/Modules/_multiprocessing/posixshmem.c
+++ b/Modules/_multiprocessing/posixshmem.c
@@ -2,6 +2,11 @@
posixshmem - A Python extension that provides shm_open() and shm_unlink()
*/
+// clinic/posixshmem.c.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include <Python.h>
// for shm_open() and shm_unlink()
diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c
index d41093c..7a220e2 100644
--- a/Modules/_randommodule.c
+++ b/Modules/_randommodule.c
@@ -72,6 +72,7 @@
#include "Python.h"
#include "pycore_long.h" // _PyLong_AsByteArray()
+#include "pycore_modsupport.h" // _PyArg_NoKeywords()
#include "pycore_moduleobject.h" // _PyModule_GetState()
#include "pycore_pylifecycle.h" // _PyOS_URandomNonblock()
diff --git a/Modules/_sqlite/clinic/_sqlite3.connect.c.h b/Modules/_sqlite/clinic/_sqlite3.connect.c.h
index eceb5a7..1bcda77 100644
--- a/Modules/_sqlite/clinic/_sqlite3.connect.c.h
+++ b/Modules/_sqlite/clinic/_sqlite3.connect.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(pysqlite_connect__doc__,
"connect($module, /, database, timeout=5.0, detect_types=0,\n"
@@ -27,4 +28,4 @@ PyDoc_STRVAR(pysqlite_connect__doc__,
#define PYSQLITE_CONNECT_METHODDEF \
{"connect", _PyCFunction_CAST(pysqlite_connect), METH_FASTCALL|METH_KEYWORDS, pysqlite_connect__doc__},
-/*[clinic end generated code: output=03bd99542e3aec9d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=69b9b00da71c3c0a input=a9049054013a1b77]*/
diff --git a/Modules/_sqlite/clinic/blob.c.h b/Modules/_sqlite/clinic/blob.c.h
index e7c6026..2c63817 100644
--- a/Modules/_sqlite/clinic/blob.c.h
+++ b/Modules/_sqlite/clinic/blob.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(blob_close__doc__,
"close($self, /)\n"
"--\n"
@@ -213,4 +215,4 @@ blob_exit(pysqlite_Blob *self, PyObject *const *args, Py_ssize_t nargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=8bfd79ab12ac5385 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=27c24afc687bd772 input=a9049054013a1b77]*/
diff --git a/Modules/_sqlite/clinic/connection.c.h b/Modules/_sqlite/clinic/connection.c.h
index fcc6577..46761cd 100644
--- a/Modules/_sqlite/clinic/connection.c.h
+++ b/Modules/_sqlite/clinic/connection.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
static int
pysqlite_connection_init_impl(pysqlite_Connection *self, PyObject *database,
@@ -1821,4 +1822,4 @@ exit:
#ifndef DESERIALIZE_METHODDEF
#define DESERIALIZE_METHODDEF
#endif /* !defined(DESERIALIZE_METHODDEF) */
-/*[clinic end generated code: output=166bf41ad5ca1655 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b9c27a406e329587 input=a9049054013a1b77]*/
diff --git a/Modules/_sqlite/clinic/cursor.c.h b/Modules/_sqlite/clinic/cursor.c.h
index 3cb637b..a13e0d0 100644
--- a/Modules/_sqlite/clinic/cursor.c.h
+++ b/Modules/_sqlite/clinic/cursor.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
static int
pysqlite_cursor_init_impl(pysqlite_Cursor *self,
@@ -312,4 +313,4 @@ pysqlite_cursor_close(pysqlite_Cursor *self, PyObject *Py_UNUSED(ignored))
{
return pysqlite_cursor_close_impl(self);
}
-/*[clinic end generated code: output=0c52a9cf54d00543 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a8ce095c3c80cf65 input=a9049054013a1b77]*/
diff --git a/Modules/_sqlite/clinic/module.c.h b/Modules/_sqlite/clinic/module.c.h
index 49ba7a3..529dc4e 100644
--- a/Modules/_sqlite/clinic/module.c.h
+++ b/Modules/_sqlite/clinic/module.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(pysqlite_complete_statement__doc__,
"complete_statement($module, /, statement)\n"
@@ -207,4 +208,4 @@ skip_optional:
exit:
return return_value;
}
-/*[clinic end generated code: output=a14893a7c2eead5e input=a9049054013a1b77]*/
+/*[clinic end generated code: output=457ab0fdbb9e1880 input=a9049054013a1b77]*/
diff --git a/Modules/_sqlite/clinic/row.c.h b/Modules/_sqlite/clinic/row.c.h
index cdf850d..e8d1dbf 100644
--- a/Modules/_sqlite/clinic/row.c.h
+++ b/Modules/_sqlite/clinic/row.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
static PyObject *
pysqlite_row_new_impl(PyTypeObject *type, pysqlite_Cursor *cursor,
PyObject *data);
@@ -54,4 +56,4 @@ pysqlite_row_keys(pysqlite_Row *self, PyObject *Py_UNUSED(ignored))
{
return pysqlite_row_keys_impl(self);
}
-/*[clinic end generated code: output=972487d535d2e7d5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=788bf817acc02b8e input=a9049054013a1b77]*/
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 21bdbc1..319ed0c 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -35,6 +35,7 @@
#include "util.h"
#include "pycore_import.h" // _PyImport_GetModuleAttrString()
+#include "pycore_modsupport.h" // _PyArg_NoKeywords()
#include "pycore_pyerrors.h" // _PyErr_ChainExceptions1()
#include "pycore_pylifecycle.h" // _Py_IsInterpreterFinalizing()
#include "pycore_weakref.h" // _PyWeakref_IS_DEAD()
diff --git a/Modules/_sqlite/row.c b/Modules/_sqlite/row.c
index 1a19432..1455507 100644
--- a/Modules/_sqlite/row.c
+++ b/Modules/_sqlite/row.c
@@ -21,6 +21,10 @@
* 3. This notice may not be removed or altered from any source distribution.
*/
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include "row.h"
#include "cursor.h"
diff --git a/Modules/_sre/clinic/sre.c.h b/Modules/_sre/clinic/sre.c.h
index 1b5e1a7..cd3fbbc 100644
--- a/Modules/_sre/clinic/sre.c.h
+++ b/Modules/_sre/clinic/sre.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_sre_getcodesize__doc__,
"getcodesize($module, /)\n"
@@ -1460,4 +1461,4 @@ _sre_SRE_Scanner_search(ScannerObject *self, PyTypeObject *cls, PyObject *const
}
return _sre_SRE_Scanner_search_impl(self, cls);
}
-/*[clinic end generated code: output=46d83927cbafa93a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ad513f31b99505fa input=a9049054013a1b77]*/
diff --git a/Modules/_ssl/clinic/cert.c.h b/Modules/_ssl/clinic/cert.c.h
index db43c88..0748d32 100644
--- a/Modules/_ssl/clinic/cert.c.h
+++ b/Modules/_ssl/clinic/cert.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_ssl_Certificate_public_bytes__doc__,
"public_bytes($self, /, format=Encoding.PEM)\n"
@@ -85,4 +86,4 @@ _ssl_Certificate_get_info(PySSLCertificate *self, PyObject *Py_UNUSED(ignored))
{
return _ssl_Certificate_get_info_impl(self);
}
-/*[clinic end generated code: output=8e438b54fbebd53e input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5b668226f933a677 input=a9049054013a1b77]*/
diff --git a/Modules/_statisticsmodule.c b/Modules/_statisticsmodule.c
index 1d5465f..a04a2a7 100644
--- a/Modules/_statisticsmodule.c
+++ b/Modules/_statisticsmodule.c
@@ -1,5 +1,10 @@
/* statistics accelerator C extension: _statistics module. */
+// clinic/_statisticsmodule.c.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include "Python.h"
#include "clinic/_statisticsmodule.c.h"
diff --git a/Modules/_testcapi/clinic/exceptions.c.h b/Modules/_testcapi/clinic/exceptions.c.h
index 39b5f8b..a797444 100644
--- a/Modules/_testcapi/clinic/exceptions.c.h
+++ b/Modules/_testcapi/clinic/exceptions.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_testcapi_err_set_raised__doc__,
"err_set_raised($module, exception, /)\n"
@@ -455,4 +456,4 @@ _testcapi_unstable_exc_prep_reraise_star(PyObject *module, PyObject *const *args
exit:
return return_value;
}
-/*[clinic end generated code: output=ff19512450b3bbdb input=a9049054013a1b77]*/
+/*[clinic end generated code: output=0b11ef105030a48e input=a9049054013a1b77]*/
diff --git a/Modules/_testcapi/clinic/float.c.h b/Modules/_testcapi/clinic/float.c.h
index fb0931a..d5a00c8 100644
--- a/Modules/_testcapi/clinic/float.c.h
+++ b/Modules/_testcapi/clinic/float.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_testcapi_float_pack__doc__,
"float_pack($module, size, d, le, /)\n"
"--\n"
@@ -79,4 +81,4 @@ _testcapi_float_unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs
exit:
return return_value;
}
-/*[clinic end generated code: output=50146051f1341cce input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b43dfd3a77fe04ba input=a9049054013a1b77]*/
diff --git a/Modules/_testcapi/clinic/vectorcall.c.h b/Modules/_testcapi/clinic/vectorcall.c.h
index 48688e9..c6049a4 100644
--- a/Modules/_testcapi/clinic/vectorcall.c.h
+++ b/Modules/_testcapi/clinic/vectorcall.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_testcapi_pyobject_fastcalldict__doc__,
"pyobject_fastcalldict($module, func, func_args, kwargs, /)\n"
"--\n"
@@ -204,4 +206,4 @@ _testcapi_has_vectorcall_flag(PyObject *module, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=0667266b825ec9ec input=a9049054013a1b77]*/
+/*[clinic end generated code: output=210ae67caab177ba input=a9049054013a1b77]*/
diff --git a/Modules/_testcapi/clinic/watchers.c.h b/Modules/_testcapi/clinic/watchers.c.h
index fd2ef60..ebd71d1 100644
--- a/Modules/_testcapi/clinic/watchers.c.h
+++ b/Modules/_testcapi/clinic/watchers.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_testcapi_watch_dict__doc__,
"watch_dict($module, watcher_id, dict, /)\n"
"--\n"
@@ -189,4 +191,4 @@ _testcapi_set_func_kwdefaults_via_capi(PyObject *module, PyObject *const *args,
exit:
return return_value;
}
-/*[clinic end generated code: output=5ad5771d6b29dfb9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=0e07ce7f295917a5 input=a9049054013a1b77]*/
diff --git a/Modules/_testcapi/exceptions.c b/Modules/_testcapi/exceptions.c
index b54ce0c..e463e62 100644
--- a/Modules/_testcapi/exceptions.c
+++ b/Modules/_testcapi/exceptions.c
@@ -1,3 +1,6 @@
+// clinic/exceptions.c.h uses internal pycore_modsupport.h API
+#define PYTESTCAPI_NEED_INTERNAL_API
+
#include "parts.h"
#include "util.h"
#include "clinic/exceptions.c.h"
diff --git a/Modules/_testcapi/float.c b/Modules/_testcapi/float.c
index cff53fb..2a7d979 100644
--- a/Modules/_testcapi/float.c
+++ b/Modules/_testcapi/float.c
@@ -1,3 +1,6 @@
+// clinic/float.c.h uses internal pycore_modsupport.h API
+#define PYTESTCAPI_NEED_INTERNAL_API
+
#include "parts.h"
#include "clinic/float.c.h"
diff --git a/Modules/_testcapi/parts.h b/Modules/_testcapi/parts.h
index acdba86..e5dbb9c 100644
--- a/Modules/_testcapi/parts.h
+++ b/Modules/_testcapi/parts.h
@@ -4,21 +4,27 @@
// Always enable assertions
#undef NDEBUG
-// The _testcapi extension tests the public C API: header files in Include/ and
-// Include/cpython/ directories. The internal C API must not be tested by
-// _testcapi: use _testinternalcapi for that.
-//
-// _testcapi C files can built with the Py_BUILD_CORE_BUILTIN macro defined if
-// one of the Modules/Setup files asks to build _testcapi as "static"
-// (gh-109723).
-//
-// The Visual Studio projects builds _testcapi with Py_BUILD_CORE_MODULE.
-#undef Py_BUILD_CORE_MODULE
-#undef Py_BUILD_CORE_BUILTIN
+#ifdef PYTESTCAPI_NEED_INTERNAL_API
+# ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+# endif
+#else
+ // The _testcapi extension tests the public C API: header files in Include/
+ // and Include/cpython/ directories. The internal C API must not be tested
+ // by _testcapi: use _testinternalcapi for that.
+ //
+ // _testcapi C files can built with the Py_BUILD_CORE_BUILTIN macro defined
+ // if one of the Modules/Setup files asks to build _testcapi as "static"
+ // (gh-109723).
+ //
+ // The Visual Studio projects builds _testcapi with Py_BUILD_CORE_MODULE.
+# undef Py_BUILD_CORE_MODULE
+# undef Py_BUILD_CORE_BUILTIN
+#endif
#include "Python.h"
-#ifdef Py_BUILD_CORE
+#if defined(Py_BUILD_CORE) && !defined(PYTESTCAPI_NEED_INTERNAL_API)
# error "_testcapi must test the public Python C API, not the internal C API"
#endif
diff --git a/Modules/_testcapi/vectorcall.c b/Modules/_testcapi/vectorcall.c
index 2b5110f..b30c5e8 100644
--- a/Modules/_testcapi/vectorcall.c
+++ b/Modules/_testcapi/vectorcall.c
@@ -1,3 +1,6 @@
+// clinic/vectorcall.c.h uses internal pycore_modsupport.h API
+#define PYTESTCAPI_NEED_INTERNAL_API
+
#include "parts.h"
#include "clinic/vectorcall.c.h"
diff --git a/Modules/_testcapi/watchers.c b/Modules/_testcapi/watchers.c
index 8a264bb..a763ff4 100644
--- a/Modules/_testcapi/watchers.c
+++ b/Modules/_testcapi/watchers.c
@@ -1,3 +1,6 @@
+// clinic/watchers.c.h uses internal pycore_modsupport.h API
+#define PYTESTCAPI_NEED_INTERNAL_API
+
#include "parts.h"
#include "clinic/watchers.c.h"
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index c6a8dda..577fea3 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -2023,10 +2023,10 @@ test_pythread_tss_key_state(PyObject *self, PyObject *args)
return repr(self)
*/
static PyObject*
-bad_get(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+bad_get(PyObject *module, PyObject *args)
{
PyObject *self, *obj, *cls;
- if (!_PyArg_UnpackStack(args, nargs, "bad_get", 3, 3, &self, &obj, &cls)) {
+ if (!PyArg_ParseTuple(args, "OOO", &self, &obj, &cls)) {
return NULL;
}
@@ -3340,7 +3340,7 @@ static PyMethodDef TestMethods[] = {
{"W_STOPCODE", py_w_stopcode, METH_VARARGS},
#endif
{"test_pythread_tss_key_state", test_pythread_tss_key_state, METH_VARARGS},
- {"bad_get", _PyCFunction_CAST(bad_get), METH_FASTCALL},
+ {"bad_get", bad_get, METH_VARARGS},
#ifdef Py_REF_DEBUG
{"negative_refcount", negative_refcount, METH_NOARGS},
{"decref_freed_object", decref_freed_object, METH_NOARGS},
diff --git a/Modules/_testinternalcapi/clinic/test_lock.c.h b/Modules/_testinternalcapi/clinic/test_lock.c.h
index 3cbe5ef..8687576 100644
--- a/Modules/_testinternalcapi/clinic/test_lock.c.h
+++ b/Modules/_testinternalcapi/clinic/test_lock.c.h
@@ -3,6 +3,7 @@ preserve
[clinic start generated code]*/
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_testinternalcapi_benchmark_locks__doc__,
"benchmark_locks($module, num_threads, use_pymutex=True,\n"
@@ -71,4 +72,4 @@ skip_optional:
exit:
return return_value;
}
-/*[clinic end generated code: output=97c85dff601fed4b input=a9049054013a1b77]*/
+/*[clinic end generated code: output=105105d759c0c271 input=a9049054013a1b77]*/
diff --git a/Modules/_testmultiphase.c b/Modules/_testmultiphase.c
index fdef061..21c5f69 100644
--- a/Modules/_testmultiphase.c
+++ b/Modules/_testmultiphase.c
@@ -6,6 +6,7 @@
#endif
#include "Python.h"
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
#include "pycore_namespace.h" // _PyNamespace_New()
/* State for testing module state access from methods */
diff --git a/Modules/_xxsubinterpretersmodule.c b/Modules/_xxsubinterpretersmodule.c
index 12c98ea..69078dc 100644
--- a/Modules/_xxsubinterpretersmodule.c
+++ b/Modules/_xxsubinterpretersmodule.c
@@ -7,8 +7,10 @@
#include "Python.h"
#include "pycore_initconfig.h" // _PyErr_SetFromPyStatus()
+#include "pycore_modsupport.h" // _PyArg_BadArgument()
#include "pycore_pyerrors.h" // _PyErr_ChainExceptions1()
#include "pycore_pystate.h" // _PyInterpreterState_SetRunningMain()
+
#include "interpreteridobject.h"
#include "marshal.h" // PyMarshal_ReadObjectFromString()
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index 309a369..cf74690 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -12,6 +12,7 @@
#include "pycore_call.h" // _PyObject_CallMethod()
#include "pycore_ceval.h" // _PyEval_GetBuiltin()
#include "pycore_long.h" // _PyLong_FromByteArray()
+#include "pycore_modsupport.h" // _PyArg_NoKeywords()
#include "pycore_moduleobject.h" // _PyModule_GetState()
#include <stddef.h> // offsetof()
diff --git a/Modules/cjkcodecs/clinic/multibytecodec.c.h b/Modules/cjkcodecs/clinic/multibytecodec.c.h
index 0b73a70..4f2b91f 100644
--- a/Modules/cjkcodecs/clinic/multibytecodec.c.h
+++ b/Modules/cjkcodecs/clinic/multibytecodec.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_multibytecodec_MultibyteCodec_encode__doc__,
"encode($self, /, input, errors=None)\n"
@@ -689,4 +690,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=1ee928e7a85e9d34 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=38f8d42721eea1e6 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_abc.c.h b/Modules/clinic/_abc.c.h
index 8d3832e..04681fa 100644
--- a/Modules/clinic/_abc.c.h
+++ b/Modules/clinic/_abc.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_abc__reset_registry__doc__,
"_reset_registry($module, self, /)\n"
"--\n"
@@ -159,4 +161,4 @@ _abc_get_cache_token(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return _abc_get_cache_token_impl(module);
}
-/*[clinic end generated code: output=babb3ce445fa9b21 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1989b6716c950e17 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_asynciomodule.c.h b/Modules/clinic/_asynciomodule.c.h
index 74dd064..d941c28 100644
--- a/Modules/clinic/_asynciomodule.c.h
+++ b/Modules/clinic/_asynciomodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_asyncio_Future___init____doc__,
"Future(*, loop=None)\n"
@@ -1486,4 +1487,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=1b7658bfab7024f3 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f3864d8e2af7635f input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_bisectmodule.c.h b/Modules/clinic/_bisectmodule.c.h
index 5553b05..9955d0e 100644
--- a/Modules/clinic/_bisectmodule.c.h
+++ b/Modules/clinic/_bisectmodule.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_bisect_bisect_right__doc__,
"bisect_right($module, /, a, x, lo=0, hi=None, *, key=None)\n"
@@ -433,4 +434,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=43ece163c3e972df input=a9049054013a1b77]*/
+/*[clinic end generated code: output=4af5bd405149bf5f input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_bz2module.c.h b/Modules/clinic/_bz2module.c.h
index 29f5d3a..b665c01 100644
--- a/Modules/clinic/_bz2module.c.h
+++ b/Modules/clinic/_bz2module.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_BadArgument()
PyDoc_STRVAR(_bz2_BZ2Compressor_compress__doc__,
"compress($self, data, /)\n"
@@ -241,4 +242,4 @@ _bz2_BZ2Decompressor(PyTypeObject *type, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=3dfc8436fa8eaefb input=a9049054013a1b77]*/
+/*[clinic end generated code: output=90f7b5c451c0a8bf input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_codecsmodule.c.h b/Modules/clinic/_codecsmodule.c.h
index bf9bd4a..d69b682 100644
--- a/Modules/clinic/_codecsmodule.c.h
+++ b/Modules/clinic/_codecsmodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_BadArgument()
PyDoc_STRVAR(_codecs_register__doc__,
"register($module, search_function, /)\n"
@@ -2817,4 +2818,4 @@ exit:
#ifndef _CODECS_CODE_PAGE_ENCODE_METHODDEF
#define _CODECS_CODE_PAGE_ENCODE_METHODDEF
#endif /* !defined(_CODECS_CODE_PAGE_ENCODE_METHODDEF) */
-/*[clinic end generated code: output=3473564544f10403 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=40cf63bf2da18359 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_collectionsmodule.c.h b/Modules/clinic/_collectionsmodule.c.h
index a375b87..591ab50 100644
--- a/Modules/clinic/_collectionsmodule.c.h
+++ b/Modules/clinic/_collectionsmodule.c.h
@@ -3,6 +3,7 @@ preserve
[clinic start generated code]*/
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_collections__count_elements__doc__,
"_count_elements($module, mapping, iterable, /)\n"
@@ -71,4 +72,4 @@ tuplegetter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=b01ddb9fdecc4a2d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c896a72f8c45930d input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_csv.c.h b/Modules/clinic/_csv.c.h
index 86ed0ef..2442bdc 100644
--- a/Modules/clinic/_csv.c.h
+++ b/Modules/clinic/_csv.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_csv_list_dialects__doc__,
"list_dialects($module, /)\n"
@@ -205,4 +206,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=4704d708f5745e91 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=9ec59717f5414d8b input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_curses_panel.c.h b/Modules/clinic/_curses_panel.c.h
index a8c32c6..7945d93 100644
--- a/Modules/clinic/_curses_panel.c.h
+++ b/Modules/clinic/_curses_panel.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
+
PyDoc_STRVAR(_curses_panel_panel_bottom__doc__,
"bottom($self, /)\n"
"--\n"
@@ -416,4 +418,4 @@ _curses_panel_update_panels(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return _curses_panel_update_panels_impl(module);
}
-/*[clinic end generated code: output=dd302cb9afc42f40 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=636beecf71d96ff1 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_cursesmodule.c.h b/Modules/clinic/_cursesmodule.c.h
index ecc3c05..dd9f1ab 100644
--- a/Modules/clinic/_cursesmodule.c.h
+++ b/Modules/clinic/_cursesmodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_curses_window_addch__doc__,
"addch([y, x,] ch, [attr=_curses.A_NORMAL])\n"
@@ -4312,4 +4313,4 @@ _curses_has_extended_color_support(PyObject *module, PyObject *Py_UNUSED(ignored
#ifndef _CURSES_USE_DEFAULT_COLORS_METHODDEF
#define _CURSES_USE_DEFAULT_COLORS_METHODDEF
#endif /* !defined(_CURSES_USE_DEFAULT_COLORS_METHODDEF) */
-/*[clinic end generated code: output=839faafb638935ea input=a9049054013a1b77]*/
+/*[clinic end generated code: output=24ad16254d1eef9c input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_datetimemodule.c.h b/Modules/clinic/_datetimemodule.c.h
index 177a37e..1ee50fc 100644
--- a/Modules/clinic/_datetimemodule.c.h
+++ b/Modules/clinic/_datetimemodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(datetime_date_fromtimestamp__doc__,
"fromtimestamp($type, timestamp, /)\n"
@@ -145,4 +146,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=e422c25b1c28f38b input=a9049054013a1b77]*/
+/*[clinic end generated code: output=562813dd3e164794 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_dbmmodule.c.h b/Modules/clinic/_dbmmodule.c.h
index a76b8b3..5a4aba2 100644
--- a/Modules/clinic/_dbmmodule.c.h
+++ b/Modules/clinic/_dbmmodule.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
+
PyDoc_STRVAR(_dbm_dbm_close__doc__,
"close($self, /)\n"
"--\n"
@@ -216,4 +218,4 @@ skip_optional:
exit:
return return_value;
}
-/*[clinic end generated code: output=972d221f9da819d3 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=96fdd4bd7bd256c5 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_elementtree.c.h b/Modules/clinic/_elementtree.c.h
index 3477257..02375c8 100644
--- a/Modules/clinic/_elementtree.c.h
+++ b/Modules/clinic/_elementtree.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_elementtree_Element_append__doc__,
"append($self, subelement, /)\n"
@@ -1218,4 +1219,4 @@ skip_optional:
exit:
return return_value;
}
-/*[clinic end generated code: output=20d1869da79a43d7 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=8fdaa17d3262800a input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_functoolsmodule.c.h b/Modules/clinic/_functoolsmodule.c.h
index 25a3e5b..94f7a23 100644
--- a/Modules/clinic/_functoolsmodule.c.h
+++ b/Modules/clinic/_functoolsmodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_functools_cmp_to_key__doc__,
"cmp_to_key($module, /, mycmp)\n"
@@ -100,4 +101,4 @@ _functools__lru_cache_wrapper_cache_clear(PyObject *self, PyObject *Py_UNUSED(ig
{
return _functools__lru_cache_wrapper_cache_clear_impl(self);
}
-/*[clinic end generated code: output=de9cf85e85167f43 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=231403340a20e31b input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_gdbmmodule.c.h b/Modules/clinic/_gdbmmodule.c.h
index e9138bb..c7164e5 100644
--- a/Modules/clinic/_gdbmmodule.c.h
+++ b/Modules/clinic/_gdbmmodule.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_gdbm_gdbm_get__doc__,
"get($self, key, default=None, /)\n"
"--\n"
@@ -338,4 +340,4 @@ skip_optional:
exit:
return return_value;
}
-/*[clinic end generated code: output=84f30c7fff0eadac input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c5ee922363d5a81f input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_hashopenssl.c.h b/Modules/clinic/_hashopenssl.c.h
index e41f608..dc28aac 100644
--- a/Modules/clinic/_hashopenssl.c.h
+++ b/Modules/clinic/_hashopenssl.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(EVP_copy__doc__,
"copy($self, /)\n"
@@ -1851,4 +1852,4 @@ exit:
#ifndef _HASHLIB_SCRYPT_METHODDEF
#define _HASHLIB_SCRYPT_METHODDEF
#endif /* !defined(_HASHLIB_SCRYPT_METHODDEF) */
-/*[clinic end generated code: output=75413752099f2dec input=a9049054013a1b77]*/
+/*[clinic end generated code: output=21ad88d46922dc00 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_heapqmodule.c.h b/Modules/clinic/_heapqmodule.c.h
index 8d73b5b..9046307 100644
--- a/Modules/clinic/_heapqmodule.c.h
+++ b/Modules/clinic/_heapqmodule.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_heapq_heappush__doc__,
"heappush($module, heap, item, /)\n"
"--\n"
@@ -265,4 +267,4 @@ _heapq__heapify_max(PyObject *module, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=9a22715a8bf0c91d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=05f2afdf3bc54c9d input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_localemodule.c.h b/Modules/clinic/_localemodule.c.h
index efbb9f7..5e0880b 100644
--- a/Modules/clinic/_localemodule.c.h
+++ b/Modules/clinic/_localemodule.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_locale_setlocale__doc__,
"setlocale($module, category, locale=<unrepresentable>, /)\n"
"--\n"
@@ -593,4 +595,4 @@ _locale_getencoding(PyObject *module, PyObject *Py_UNUSED(ignored))
#ifndef _LOCALE_BIND_TEXTDOMAIN_CODESET_METHODDEF
#define _LOCALE_BIND_TEXTDOMAIN_CODESET_METHODDEF
#endif /* !defined(_LOCALE_BIND_TEXTDOMAIN_CODESET_METHODDEF) */
-/*[clinic end generated code: output=3abe7fade999eff6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=034a3c219466d207 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_lzmamodule.c.h b/Modules/clinic/_lzmamodule.c.h
index 528b483..1079b40 100644
--- a/Modules/clinic/_lzmamodule.c.h
+++ b/Modules/clinic/_lzmamodule.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_BadArgument()
PyDoc_STRVAR(_lzma_LZMACompressor_compress__doc__,
"compress($self, data, /)\n"
@@ -338,4 +339,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=eadc9ee7a11a06f5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=fca7d2b5800dc4c1 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_opcode.c.h b/Modules/clinic/_opcode.c.h
index 4b9a70d..c7fd0f9 100644
--- a/Modules/clinic/_opcode.c.h
+++ b/Modules/clinic/_opcode.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_opcode_stack_effect__doc__,
"stack_effect($module, opcode, oparg=None, /, *, jump=None)\n"
@@ -667,4 +668,4 @@ _opcode_get_intrinsic2_descs(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return _opcode_get_intrinsic2_descs_impl(module);
}
-/*[clinic end generated code: output=d608239a4c7a05a1 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a1052bb1deffb7f2 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_operator.c.h b/Modules/clinic/_operator.c.h
index 06bde24..08615d6 100644
--- a/Modules/clinic/_operator.c.h
+++ b/Modules/clinic/_operator.c.h
@@ -3,6 +3,7 @@ preserve
[clinic start generated code]*/
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_operator_truth__doc__,
"truth($module, a, /)\n"
@@ -1488,4 +1489,4 @@ _operator__compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t na
exit:
return return_value;
}
-/*[clinic end generated code: output=9658aca50a9ad991 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ddbba2cd943571eb input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h
index 5df40d6..932ace1 100644
--- a/Modules/clinic/_pickle.c.h
+++ b/Modules/clinic/_pickle.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_pickle_Pickler_clear_memo__doc__,
"clear_memo($self, /)\n"
@@ -1033,4 +1034,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=57c209a12264146d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7f0564b5fb5410a8 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_posixsubprocess.c.h b/Modules/clinic/_posixsubprocess.c.h
index 83048a3..dd7644d 100644
--- a/Modules/clinic/_posixsubprocess.c.h
+++ b/Modules/clinic/_posixsubprocess.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(subprocess_fork_exec__doc__,
"fork_exec($module, args, executable_list, close_fds, pass_fds, cwd,\n"
" env, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite,\n"
@@ -153,4 +155,4 @@ subprocess_fork_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=a83b11467169b97b input=a9049054013a1b77]*/
+/*[clinic end generated code: output=48555f5965a871be input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_queuemodule.c.h b/Modules/clinic/_queuemodule.c.h
index 8d4df14..8e2a430 100644
--- a/Modules/clinic/_queuemodule.c.h
+++ b/Modules/clinic/_queuemodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_NoKeywords()
PyDoc_STRVAR(simplequeue_new__doc__,
"SimpleQueue()\n"
@@ -330,4 +331,4 @@ _queue_SimpleQueue_qsize(simplequeueobject *self, PyObject *Py_UNUSED(ignored))
exit:
return return_value;
}
-/*[clinic end generated code: output=5c326e4c1f2a1ad7 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=457310b20cb61cf8 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_randommodule.c.h b/Modules/clinic/_randommodule.c.h
index 008b531..757e49e 100644
--- a/Modules/clinic/_randommodule.c.h
+++ b/Modules/clinic/_randommodule.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_random_Random_random__doc__,
"random($self, /)\n"
"--\n"
@@ -109,4 +111,4 @@ _random_Random_getrandbits(RandomObject *self, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=5e7e05d756a7e1c7 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5c800a28c2d7b9d1 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_ssl.c.h b/Modules/clinic/_ssl.c.h
index 5f8ae29..bc69251 100644
--- a/Modules/clinic/_ssl.c.h
+++ b/Modules/clinic/_ssl.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_ssl__SSLSocket_do_handshake__doc__,
"do_handshake($self, /)\n"
@@ -1542,4 +1543,4 @@ exit:
#ifndef _SSL_ENUM_CRLS_METHODDEF
#define _SSL_ENUM_CRLS_METHODDEF
#endif /* !defined(_SSL_ENUM_CRLS_METHODDEF) */
-/*[clinic end generated code: output=a47d575abe0aceb6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f15635b2faa3b2db input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_statisticsmodule.c.h b/Modules/clinic/_statisticsmodule.c.h
index 03543e4..653a213 100644
--- a/Modules/clinic/_statisticsmodule.c.h
+++ b/Modules/clinic/_statisticsmodule.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_statistics__normal_dist_inv_cdf__doc__,
"_normal_dist_inv_cdf($module, p, mu, sigma, /)\n"
"--\n"
@@ -65,4 +67,4 @@ _statistics__normal_dist_inv_cdf(PyObject *module, PyObject *const *args, Py_ssi
exit:
return return_value;
}
-/*[clinic end generated code: output=b807a8243e7801e6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=e7cead17f9f3e19f input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_struct.c.h b/Modules/clinic/_struct.c.h
index 8c468e6..45d9071 100644
--- a/Modules/clinic/_struct.c.h
+++ b/Modules/clinic/_struct.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(Struct__doc__,
"Struct(format)\n"
@@ -451,4 +452,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=5c1bc384ff87df1f input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1749aaf639d5c11c input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_testclinic.c.h b/Modules/clinic/_testclinic.c.h
index 3655e82..fea30e7 100644
--- a/Modules/clinic/_testclinic.c.h
+++ b/Modules/clinic/_testclinic.c.h
@@ -7,6 +7,7 @@ preserve
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
#include "pycore_long.h" // _PyLong_UnsignedShort_Converter()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
#include "pycore_runtime.h" // _Py_ID()
PyDoc_STRVAR(test_empty_function__doc__,
@@ -3140,4 +3141,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=aea5f282f24761aa input=a9049054013a1b77]*/
+/*[clinic end generated code: output=90743ac900d60f9f input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_testclinic_depr.c.h b/Modules/clinic/_testclinic_depr.c.h
index 36ff55b..732c381 100644
--- a/Modules/clinic/_testclinic_depr.c.h
+++ b/Modules/clinic/_testclinic_depr.c.h
@@ -7,6 +7,7 @@ preserve
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
#include "pycore_long.h" // _PyLong_UnsignedShort_Converter()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
#include "pycore_runtime.h" // _Py_ID()
PyDoc_STRVAR(depr_star_new__doc__,
@@ -2392,4 +2393,4 @@ depr_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
exit:
return return_value;
}
-/*[clinic end generated code: output=689b1e2d0872e413 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2c19d1804ba6e53b input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_testinternalcapi.c.h b/Modules/clinic/_testinternalcapi.c.h
index c1b4267..10374e0 100644
--- a/Modules/clinic/_testinternalcapi.c.h
+++ b/Modules/clinic/_testinternalcapi.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_testinternalcapi_compiler_cleandoc__doc__,
"compiler_cleandoc($module, /, doc)\n"
@@ -313,4 +314,4 @@ _testinternalcapi_test_long_numbits(PyObject *module, PyObject *Py_UNUSED(ignore
{
return _testinternalcapi_test_long_numbits_impl(module);
}
-/*[clinic end generated code: output=59144f59957627bd input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3425f97821fc7462 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_testmultiphase.c.h b/Modules/clinic/_testmultiphase.c.h
index a96d20b..c0a0095 100644
--- a/Modules/clinic/_testmultiphase.c.h
+++ b/Modules/clinic/_testmultiphase.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_testmultiphase_StateAccessType_get_defining_module__doc__,
"get_defining_module($self, /)\n"
@@ -161,4 +162,4 @@ _testmultiphase_StateAccessType_get_count(StateAccessTypeObject *self, PyTypeObj
}
return _testmultiphase_StateAccessType_get_count_impl(self, cls);
}
-/*[clinic end generated code: output=db1fdd15244ee59c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d8c262af27b3b98d input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_tkinter.c.h b/Modules/clinic/_tkinter.c.h
index fcfc406..188bcc7 100644
--- a/Modules/clinic/_tkinter.c.h
+++ b/Modules/clinic/_tkinter.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_BadArgument()
+
PyDoc_STRVAR(_tkinter_tkapp_eval__doc__,
"eval($self, script, /)\n"
"--\n"
@@ -859,4 +861,4 @@ exit:
#ifndef _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
#define _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
#endif /* !defined(_TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF) */
-/*[clinic end generated code: output=bcd9cdc8f6bdcfae input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d447501ec5aa9447 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_tracemalloc.c.h b/Modules/clinic/_tracemalloc.c.h
index c07ad79..1d10024 100644
--- a/Modules/clinic/_tracemalloc.c.h
+++ b/Modules/clinic/_tracemalloc.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_tracemalloc_is_tracing__doc__,
"is_tracing($module, /)\n"
"--\n"
@@ -212,4 +214,4 @@ _tracemalloc_reset_peak(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return _tracemalloc_reset_peak_impl(module);
}
-/*[clinic end generated code: output=ad7d1fae89f2bdaa input=a9049054013a1b77]*/
+/*[clinic end generated code: output=9d4d884b156c2ddb input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_weakref.c.h b/Modules/clinic/_weakref.c.h
index 541cba7..8d7bc5d 100644
--- a/Modules/clinic/_weakref.c.h
+++ b/Modules/clinic/_weakref.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_weakref_getweakrefcount__doc__,
"getweakrefcount($module, object, /)\n"
"--\n"
@@ -110,4 +112,4 @@ skip_optional:
exit:
return return_value;
}
-/*[clinic end generated code: output=f4be6b8177fbceb8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=60f59adc1dc9eab8 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_winapi.c.h b/Modules/clinic/_winapi.c.h
index 7fef127..ae8cc1d 100644
--- a/Modules/clinic/_winapi.c.h
+++ b/Modules/clinic/_winapi.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_long.h" // _PyLong_Size_t_Converter()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_winapi_Overlapped_GetOverlappedResult__doc__,
"GetOverlappedResult($self, wait, /)\n"
@@ -1478,4 +1479,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=6df38b5eb93f2e5a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=aaf29735c47f55fe input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_zoneinfo.c.h b/Modules/clinic/_zoneinfo.c.h
index 6691d39..9905b64 100644
--- a/Modules/clinic/_zoneinfo.c.h
+++ b/Modules/clinic/_zoneinfo.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(zoneinfo_ZoneInfo_from_file__doc__,
"from_file($type, file_obj, /, key=None)\n"
@@ -371,4 +372,4 @@ zoneinfo_ZoneInfo__unpickle(PyTypeObject *type, PyTypeObject *cls, PyObject *con
exit:
return return_value;
}
-/*[clinic end generated code: output=a5384f79d49a593b input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2a15f32fdd2ab6cd input=a9049054013a1b77]*/
diff --git a/Modules/clinic/arraymodule.c.h b/Modules/clinic/arraymodule.c.h
index 2a874b8..bff9fd3 100644
--- a/Modules/clinic/arraymodule.c.h
+++ b/Modules/clinic/arraymodule.c.h
@@ -3,6 +3,7 @@ preserve
[clinic start generated code]*/
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(array_array___copy____doc__,
"__copy__($self, /)\n"
@@ -670,4 +671,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=8595b1906b5a6552 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d58693e1157540ef input=a9049054013a1b77]*/
diff --git a/Modules/clinic/binascii.c.h b/Modules/clinic/binascii.c.h
index d80decf..b80983c 100644
--- a/Modules/clinic/binascii.c.h
+++ b/Modules/clinic/binascii.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(binascii_a2b_uu__doc__,
"a2b_uu($module, data, /)\n"
@@ -794,4 +795,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=acc9419209dfd568 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3259f3b018abee96 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/cmathmodule.c.h b/Modules/clinic/cmathmodule.c.h
index a665ac3..b709204 100644
--- a/Modules/clinic/cmathmodule.c.h
+++ b/Modules/clinic/cmathmodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(cmath_acos__doc__,
"acos($module, z, /)\n"
@@ -981,4 +982,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=96a5c4ae198dd5bf input=a9049054013a1b77]*/
+/*[clinic end generated code: output=364093af55bfe53f input=a9049054013a1b77]*/
diff --git a/Modules/clinic/fcntlmodule.c.h b/Modules/clinic/fcntlmodule.c.h
index 83e882b..5dc2fc0 100644
--- a/Modules/clinic/fcntlmodule.c.h
+++ b/Modules/clinic/fcntlmodule.c.h
@@ -3,6 +3,7 @@ preserve
[clinic start generated code]*/
#include "pycore_fileutils.h" // _PyLong_FileDescriptor_Converter()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(fcntl_fcntl__doc__,
"fcntl($module, fd, cmd, arg=0, /)\n"
@@ -245,4 +246,4 @@ skip_optional:
exit:
return return_value;
}
-/*[clinic end generated code: output=4d4fac195494faec input=a9049054013a1b77]*/
+/*[clinic end generated code: output=732e33ba92042031 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/gcmodule.c.h b/Modules/clinic/gcmodule.c.h
index 4044840..ad44693 100644
--- a/Modules/clinic/gcmodule.c.h
+++ b/Modules/clinic/gcmodule.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _Py_convert_optional_to_ssize_t()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(gc_enable__doc__,
"enable($module, /)\n"
@@ -424,4 +425,4 @@ gc_get_freeze_count(PyObject *module, PyObject *Py_UNUSED(ignored))
exit:
return return_value;
}
-/*[clinic end generated code: output=63093e7724b94a37 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5c345e7b4ce6085a input=a9049054013a1b77]*/
diff --git a/Modules/clinic/grpmodule.c.h b/Modules/clinic/grpmodule.c.h
index e6c9ccc..1da061f 100644
--- a/Modules/clinic/grpmodule.c.h
+++ b/Modules/clinic/grpmodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(grp_getgrgid__doc__,
"getgrgid($module, /, id)\n"
@@ -145,4 +146,4 @@ grp_getgrall(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return grp_getgrall_impl(module);
}
-/*[clinic end generated code: output=d4bdad9b26fb8558 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2f7011384604d38d input=a9049054013a1b77]*/
diff --git a/Modules/clinic/itertoolsmodule.c.h b/Modules/clinic/itertoolsmodule.c.h
index 74cd3dd..fa2c5e0 100644
--- a/Modules/clinic/itertoolsmodule.c.h
+++ b/Modules/clinic/itertoolsmodule.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(batched_new__doc__,
"batched(iterable, n)\n"
@@ -913,4 +914,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=95bb863274717bd9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=782fe7e30733779b input=a9049054013a1b77]*/
diff --git a/Modules/clinic/mathmodule.c.h b/Modules/clinic/mathmodule.c.h
index bfce397..ca14c03 100644
--- a/Modules/clinic/mathmodule.c.h
+++ b/Modules/clinic/mathmodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(math_ceil__doc__,
"ceil($module, x, /)\n"
@@ -949,4 +950,4 @@ math_ulp(PyObject *module, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=da62cea7eb3dc8bc input=a9049054013a1b77]*/
+/*[clinic end generated code: output=6b2eeaed8d8a76d5 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/overlapped.c.h b/Modules/clinic/overlapped.c.h
index 9a71e25..8e1d719 100644
--- a/Modules/clinic/overlapped.c.h
+++ b/Modules/clinic/overlapped.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_long.h" // _PyLong_UnsignedLong_Converter()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_overlapped_CreateIoCompletionPort__doc__,
"CreateIoCompletionPort($module, handle, port, key, concurrency, /)\n"
@@ -1262,4 +1263,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=31bcc780209593a2 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=85884c2341fcbef7 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h
index 1791327..29c90c5 100644
--- a/Modules/clinic/posixmodule.c.h
+++ b/Modules/clinic/posixmodule.c.h
@@ -9,6 +9,7 @@ preserve
#include "pycore_abstract.h" // _PyNumber_Index()
#include "pycore_fileutils.h" // _PyLong_FileDescriptor_Converter()
#include "pycore_long.h" // _PyLong_UnsignedInt_Converter()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(os_stat__doc__,
"stat($module, /, path, *, dir_fd=None, follow_symlinks=True)\n"
@@ -12414,4 +12415,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=7c3058135ed49d20 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=274174066fff3256 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/pwdmodule.c.h b/Modules/clinic/pwdmodule.c.h
index 0e8aa5e..43d4825 100644
--- a/Modules/clinic/pwdmodule.c.h
+++ b/Modules/clinic/pwdmodule.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_BadArgument()
+
PyDoc_STRVAR(pwd_getpwuid__doc__,
"getpwuid($module, uidobj, /)\n"
"--\n"
@@ -71,4 +73,4 @@ pwd_getpwall(PyObject *module, PyObject *Py_UNUSED(ignored))
#ifndef PWD_GETPWALL_METHODDEF
#define PWD_GETPWALL_METHODDEF
#endif /* !defined(PWD_GETPWALL_METHODDEF) */
-/*[clinic end generated code: output=211c7a2516899b91 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5a8fb12939ff4ea3 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/pyexpat.c.h b/Modules/clinic/pyexpat.c.h
index 21b0911..a5b93e6 100644
--- a/Modules/clinic/pyexpat.c.h
+++ b/Modules/clinic/pyexpat.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(pyexpat_xmlparser_Parse__doc__,
"Parse($self, data, isfinal=False, /)\n"
@@ -497,4 +498,4 @@ exit:
#ifndef PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
#define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
#endif /* !defined(PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF) */
-/*[clinic end generated code: output=ac398d94833e802d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=48c4296e43777df4 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/readline.c.h b/Modules/clinic/readline.c.h
index e5a784a..1c616d6 100644
--- a/Modules/clinic/readline.c.h
+++ b/Modules/clinic/readline.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(readline_parse_and_bind__doc__,
"parse_and_bind($module, string, /)\n"
"--\n"
@@ -682,4 +684,4 @@ readline_redisplay(PyObject *module, PyObject *Py_UNUSED(ignored))
#ifndef READLINE_CLEAR_HISTORY_METHODDEF
#define READLINE_CLEAR_HISTORY_METHODDEF
#endif /* !defined(READLINE_CLEAR_HISTORY_METHODDEF) */
-/*[clinic end generated code: output=790ed2ba01babb60 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=358ab465285c7949 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/resource.c.h b/Modules/clinic/resource.c.h
index 0ac272a..e4ef939 100644
--- a/Modules/clinic/resource.c.h
+++ b/Modules/clinic/resource.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
#if defined(HAVE_GETRUSAGE)
PyDoc_STRVAR(resource_getrusage__doc__,
@@ -172,4 +174,4 @@ exit:
#ifndef RESOURCE_PRLIMIT_METHODDEF
#define RESOURCE_PRLIMIT_METHODDEF
#endif /* !defined(RESOURCE_PRLIMIT_METHODDEF) */
-/*[clinic end generated code: output=2376b9a3f03777aa input=a9049054013a1b77]*/
+/*[clinic end generated code: output=8e905b2f5c35170e input=a9049054013a1b77]*/
diff --git a/Modules/clinic/selectmodule.c.h b/Modules/clinic/selectmodule.c.h
index 282196b..67e76d4 100644
--- a/Modules/clinic/selectmodule.c.h
+++ b/Modules/clinic/selectmodule.c.h
@@ -8,6 +8,7 @@ preserve
#endif
#include "pycore_fileutils.h" // _PyLong_FileDescriptor_Converter()
#include "pycore_long.h" // _PyLong_UnsignedShort_Converter()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(select_select__doc__,
"select($module, rlist, wlist, xlist, timeout=None, /)\n"
@@ -1310,4 +1311,4 @@ exit:
#ifndef SELECT_KQUEUE_CONTROL_METHODDEF
#define SELECT_KQUEUE_CONTROL_METHODDEF
#endif /* !defined(SELECT_KQUEUE_CONTROL_METHODDEF) */
-/*[clinic end generated code: output=35cd4aa7b6802838 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=4c2dcb31cb17c2c6 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/sha1module.c.h b/Modules/clinic/sha1module.c.h
index fa4ec8b..ee39165 100644
--- a/Modules/clinic/sha1module.c.h
+++ b/Modules/clinic/sha1module.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(SHA1Type_copy__doc__,
"copy($self, /)\n"
@@ -147,4 +148,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=7efbe42154a7a7f8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=41fc7579213b57b4 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/sha2module.c.h b/Modules/clinic/sha2module.c.h
index 9fb8bf7..ec31d55 100644
--- a/Modules/clinic/sha2module.c.h
+++ b/Modules/clinic/sha2module.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(SHA256Type_copy__doc__,
"copy($self, /)\n"
@@ -436,4 +437,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=1242ccc50bcefe98 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1482d9de086e45c4 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/sha3module.c.h b/Modules/clinic/sha3module.c.h
index fd65462..738e958 100644
--- a/Modules/clinic/sha3module.c.h
+++ b/Modules/clinic/sha3module.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_long.h" // _PyLong_UnsignedLong_Converter()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(py_sha3_new__doc__,
"sha3_224(data=b\'\', /, *, usedforsecurity=True)\n"
@@ -193,4 +194,4 @@ _sha3_shake_128_hexdigest(SHA3object *self, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=0888aed37ef39984 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a8e76a880d1421ec input=a9049054013a1b77]*/
diff --git a/Modules/clinic/signalmodule.c.h b/Modules/clinic/signalmodule.c.h
index 5e8957a..bc33e06 100644
--- a/Modules/clinic/signalmodule.c.h
+++ b/Modules/clinic/signalmodule.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(signal_default_int_handler__doc__,
"default_int_handler($module, signalnum, frame, /)\n"
"--\n"
@@ -699,4 +701,4 @@ exit:
#ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
#define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
#endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */
-/*[clinic end generated code: output=ef4c2ad1a2443063 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5a9928cb2dc75b5f input=a9049054013a1b77]*/
diff --git a/Modules/clinic/socketmodule.c.h b/Modules/clinic/socketmodule.c.h
index c620501..b6c74b1 100644
--- a/Modules/clinic/socketmodule.c.h
+++ b/Modules/clinic/socketmodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
static int
sock_initobj_impl(PySocketSockObject *self, int family, int type, int proto,
@@ -90,4 +91,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=1b68ae94d6cbeeb1 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c85517815c2d69cf input=a9049054013a1b77]*/
diff --git a/Modules/clinic/symtablemodule.c.h b/Modules/clinic/symtablemodule.c.h
index 2cd08f8..2ecd3af 100644
--- a/Modules/clinic/symtablemodule.c.h
+++ b/Modules/clinic/symtablemodule.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_symtable_symtable__doc__,
"symtable($module, source, filename, startstr, /)\n"
"--\n"
@@ -48,4 +50,4 @@ _symtable_symtable(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=3f7ccf535d750238 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=931964a76a72f850 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/syslogmodule.c.h b/Modules/clinic/syslogmodule.c.h
index f0c6f2a..58b0ea5 100644
--- a/Modules/clinic/syslogmodule.c.h
+++ b/Modules/clinic/syslogmodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(syslog_openlog__doc__,
"openlog($module, /, ident=<unrepresentable>, logoption=0,\n"
@@ -250,4 +251,4 @@ syslog_LOG_UPTO(PyObject *module, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=68942dad7fb3872e input=a9049054013a1b77]*/
+/*[clinic end generated code: output=86ca2fd84b2da98e input=a9049054013a1b77]*/
diff --git a/Modules/clinic/termios.c.h b/Modules/clinic/termios.c.h
index 78828e5..1c34068 100644
--- a/Modules/clinic/termios.c.h
+++ b/Modules/clinic/termios.c.h
@@ -3,6 +3,7 @@ preserve
[clinic start generated code]*/
#include "pycore_fileutils.h" // _PyLong_FileDescriptor_Converter()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(termios_tcgetattr__doc__,
"tcgetattr($module, fd, /)\n"
@@ -288,4 +289,4 @@ termios_tcsetwinsize(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=daecc8ebc8fe29f5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f31382658135c774 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/unicodedata.c.h b/Modules/clinic/unicodedata.c.h
index 74362c6..739f498 100644
--- a/Modules/clinic/unicodedata.c.h
+++ b/Modules/clinic/unicodedata.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(unicodedata_UCD_decimal__doc__,
"decimal($self, chr, default=<unrepresentable>, /)\n"
"--\n"
@@ -517,4 +519,4 @@ unicodedata_UCD_lookup(PyObject *self, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=ca10ded25747d182 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ea30f89007b2bfff input=a9049054013a1b77]*/
diff --git a/Modules/clinic/zlibmodule.c.h b/Modules/clinic/zlibmodule.c.h
index 8952153..850a4cd 100644
--- a/Modules/clinic/zlibmodule.c.h
+++ b/Modules/clinic/zlibmodule.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(zlib_compress__doc__,
"compress($module, data, /, level=Z_DEFAULT_COMPRESSION, wbits=MAX_WBITS)\n"
@@ -1129,4 +1130,4 @@ exit:
#ifndef ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
#define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
#endif /* !defined(ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF) */
-/*[clinic end generated code: output=6d90c72ba2dd04c5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=bd96ba786b0d8d42 input=a9049054013a1b77]*/
diff --git a/Modules/grpmodule.c b/Modules/grpmodule.c
index 20e83de..9756f1c 100644
--- a/Modules/grpmodule.c
+++ b/Modules/grpmodule.c
@@ -1,6 +1,11 @@
/* UNIX group file access module */
+// clinic/grpmodule.c.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include "Python.h"
#include "posixmodule.h"
diff --git a/Modules/resource.c b/Modules/resource.c
index d65509e..22ac31a 100644
--- a/Modules/resource.c
+++ b/Modules/resource.c
@@ -1,3 +1,8 @@
+// clinic/resource.c.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include "Python.h"
#include <errno.h> // errno
#include <string.h>
diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c
index 6db8de9..6a44850 100644
--- a/Modules/syslogmodule.c
+++ b/Modules/syslogmodule.c
@@ -49,6 +49,11 @@ Revision history:
/* syslog module */
+// clinic/syslogmodule.c.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include "Python.h"
#include "osdefs.h" // SEP
diff --git a/Objects/cellobject.c b/Objects/cellobject.c
index f516707..f1a43be 100644
--- a/Objects/cellobject.c
+++ b/Objects/cellobject.c
@@ -1,6 +1,7 @@
/* Cell object implementation */
#include "Python.h"
+#include "pycore_modsupport.h" // _PyArg_NoKeywords()
#include "pycore_object.h"
PyObject *
diff --git a/Objects/clinic/bytearrayobject.c.h b/Objects/clinic/bytearrayobject.c.h
index 7039db0..02b9b57 100644
--- a/Objects/clinic/bytearrayobject.c.h
+++ b/Objects/clinic/bytearrayobject.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
static int
bytearray___init___impl(PyByteArrayObject *self, PyObject *arg,
@@ -1284,4 +1285,4 @@ bytearray_sizeof(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))
{
return bytearray_sizeof_impl(self);
}
-/*[clinic end generated code: output=94b9b5f492b5fed6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=fc2b9ccabe0e6782 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/bytesobject.c.h b/Objects/clinic/bytesobject.c.h
index e2f9ba6..8b08f8e 100644
--- a/Objects/clinic/bytesobject.c.h
+++ b/Objects/clinic/bytesobject.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(bytes___bytes____doc__,
"__bytes__($self, /)\n"
@@ -1060,4 +1061,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=8a9f5c28cbfe7592 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=da013a7e257f5c6e input=a9049054013a1b77]*/
diff --git a/Objects/clinic/classobject.c.h b/Objects/clinic/classobject.c.h
index 48cfd6c..3e149c9 100644
--- a/Objects/clinic/classobject.c.h
+++ b/Objects/clinic/classobject.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(method___reduce____doc__,
"__reduce__($self, /)\n"
"--\n"
@@ -80,4 +82,4 @@ instancemethod_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=a0d17bad3b0734d9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5a5e3f2d0726f189 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/codeobject.c.h b/Objects/clinic/codeobject.c.h
index b20b066..68e2d7f 100644
--- a/Objects/clinic/codeobject.c.h
+++ b/Objects/clinic/codeobject.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(code_new__doc__,
"code(argcount, posonlyargcount, kwonlyargcount, nlocals, stacksize,\n"
@@ -463,4 +464,4 @@ code__varname_from_oparg(PyCodeObject *self, PyObject *const *args, Py_ssize_t n
exit:
return return_value;
}
-/*[clinic end generated code: output=b9ccfbfabe1a5f46 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d604263a3ca72a0f input=a9049054013a1b77]*/
diff --git a/Objects/clinic/complexobject.c.h b/Objects/clinic/complexobject.c.h
index 788f30d..49b5030 100644
--- a/Objects/clinic/complexobject.c.h
+++ b/Objects/clinic/complexobject.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_BadArgument()
PyDoc_STRVAR(complex_conjugate__doc__,
"conjugate($self, /)\n"
@@ -156,4 +157,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=002c74f8a33b6697 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=04e6261649967b30 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/descrobject.c.h b/Objects/clinic/descrobject.c.h
index 4f18fd7..02fb440 100644
--- a/Objects/clinic/descrobject.c.h
+++ b/Objects/clinic/descrobject.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
static PyObject *
mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping);
@@ -166,4 +167,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=a97dc44d12f9f9b6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a4664ccf3da10f5a input=a9049054013a1b77]*/
diff --git a/Objects/clinic/dictobject.c.h b/Objects/clinic/dictobject.c.h
index eda86c3..6415142 100644
--- a/Objects/clinic/dictobject.c.h
+++ b/Objects/clinic/dictobject.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(dict_fromkeys__doc__,
"fromkeys($type, iterable, value=None, /)\n"
"--\n"
@@ -191,4 +193,4 @@ dict___reversed__(PyDictObject *self, PyObject *Py_UNUSED(ignored))
{
return dict___reversed___impl(self);
}
-/*[clinic end generated code: output=582766ac0154c8bf input=a9049054013a1b77]*/
+/*[clinic end generated code: output=17c3c4cf9a9b95a7 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/enumobject.c.h b/Objects/clinic/enumobject.c.h
index 97f20c6..09774a7 100644
--- a/Objects/clinic/enumobject.c.h
+++ b/Objects/clinic/enumobject.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(enum_new__doc__,
"enumerate(iterable, start=0)\n"
@@ -106,4 +107,4 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=661b29708f501d19 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5c48a9a482a52e91 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/floatobject.c.h b/Objects/clinic/floatobject.c.h
index c40eff8..10f6149 100644
--- a/Objects/clinic/floatobject.c.h
+++ b/Objects/clinic/floatobject.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(float_is_integer__doc__,
"is_integer($self, /)\n"
"--\n"
@@ -316,4 +318,4 @@ float___format__(PyObject *self, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=eb093cc601cc5426 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c79743c8551c30d9 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/funcobject.c.h b/Objects/clinic/funcobject.c.h
index 1be4567..138f877 100644
--- a/Objects/clinic/funcobject.c.h
+++ b/Objects/clinic/funcobject.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(func_new__doc__,
"function(code, globals, name=None, argdefs=None, closure=None)\n"
@@ -103,4 +104,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=b2d676ff51c992d0 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ff7b995500d2bee6 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/listobject.c.h b/Objects/clinic/listobject.c.h
index b6f0c5c..b2178cd 100644
--- a/Objects/clinic/listobject.c.h
+++ b/Objects/clinic/listobject.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(list_insert__doc__,
"insert($self, index, object, /)\n"
@@ -383,4 +384,4 @@ list___reversed__(PyListObject *self, PyObject *Py_UNUSED(ignored))
{
return list___reversed___impl(self);
}
-/*[clinic end generated code: output=e2d9f4092498a5ca input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5dea9dd3bb219a7f input=a9049054013a1b77]*/
diff --git a/Objects/clinic/longobject.c.h b/Objects/clinic/longobject.c.h
index 9288648..4a3d71c 100644
--- a/Objects/clinic/longobject.c.h
+++ b/Objects/clinic/longobject.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
static PyObject *
long_new_impl(PyTypeObject *type, PyObject *x, PyObject *obase);
@@ -475,4 +476,4 @@ int_is_integer(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return int_is_integer_impl(self);
}
-/*[clinic end generated code: output=009a537ab558763c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7e6e57246e55911f input=a9049054013a1b77]*/
diff --git a/Objects/clinic/memoryobject.c.h b/Objects/clinic/memoryobject.c.h
index 74c749e..f199434 100644
--- a/Objects/clinic/memoryobject.c.h
+++ b/Objects/clinic/memoryobject.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(memoryview__doc__,
"memoryview(object)\n"
@@ -412,4 +413,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=7ebdadda3b0fcd35 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7e76a09106921ba2 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/moduleobject.c.h b/Objects/clinic/moduleobject.c.h
index ce21e47..3c0bbe2 100644
--- a/Objects/clinic/moduleobject.c.h
+++ b/Objects/clinic/moduleobject.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(module___init____doc__,
"module(name, doc=None)\n"
@@ -73,4 +74,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=9d3d7854d17a033c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=e8a71bfbed774c15 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/odictobject.c.h b/Objects/clinic/odictobject.c.h
index 643f504..5ef5380 100644
--- a/Objects/clinic/odictobject.c.h
+++ b/Objects/clinic/odictobject.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(OrderedDict_fromkeys__doc__,
"fromkeys($type, /, iterable, value=None)\n"
@@ -331,4 +332,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=6d7ae9fb552c6108 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=eff78d2a3f9379bd input=a9049054013a1b77]*/
diff --git a/Objects/clinic/structseq.c.h b/Objects/clinic/structseq.c.h
index 2571888..cec49eb 100644
--- a/Objects/clinic/structseq.c.h
+++ b/Objects/clinic/structseq.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
static PyObject *
structseq_new_impl(PyTypeObject *type, PyObject *arg, PyObject *dict);
@@ -61,4 +62,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=2f88fe2a6f5c13a8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5bf39b3f06a34ce4 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/tupleobject.c.h b/Objects/clinic/tupleobject.c.h
index f217127..5d6a2c4 100644
--- a/Objects/clinic/tupleobject.c.h
+++ b/Objects/clinic/tupleobject.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(tuple_index__doc__,
"index($self, value, start=0, stop=sys.maxsize, /)\n"
"--\n"
@@ -112,4 +114,4 @@ tuple___getnewargs__(PyTupleObject *self, PyObject *Py_UNUSED(ignored))
{
return tuple___getnewargs___impl(self);
}
-/*[clinic end generated code: output=7c5d9d12e0cf6a83 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a6a9abba5d121f4c input=a9049054013a1b77]*/
diff --git a/Objects/clinic/typeobject.c.h b/Objects/clinic/typeobject.c.h
index eb0b22a..1fa1535 100644
--- a/Objects/clinic/typeobject.c.h
+++ b/Objects/clinic/typeobject.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_BadArgument()
+
PyDoc_STRVAR(type___instancecheck____doc__,
"__instancecheck__($self, instance, /)\n"
"--\n"
@@ -260,4 +262,4 @@ object___dir__(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return object___dir___impl(self);
}
-/*[clinic end generated code: output=943f639f264362d9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b56c87f9cace1921 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/typevarobject.c.h b/Objects/clinic/typevarobject.c.h
index 22090b1..2bb0a98 100644
--- a/Objects/clinic/typevarobject.c.h
+++ b/Objects/clinic/typevarobject.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywordsWithVararg()
PyDoc_STRVAR(typevar_new__doc__,
"typevar(name, *constraints, bound=None, covariant=False,\n"
@@ -590,4 +591,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=027fb8cbef6e5015 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5a582d9d89ad787b input=a9049054013a1b77]*/
diff --git a/Objects/clinic/unicodeobject.c.h b/Objects/clinic/unicodeobject.c.h
index 42b8a3c..7711434 100644
--- a/Objects/clinic/unicodeobject.c.h
+++ b/Objects/clinic/unicodeobject.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(EncodingMap_size__doc__,
"size($self, /)\n"
@@ -1504,4 +1505,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=4acdcfdc93f2a0f6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=873d8b3d09af3095 input=a9049054013a1b77]*/
diff --git a/Objects/descrobject.c b/Objects/descrobject.c
index 56ce34f..7f9f03d 100644
--- a/Objects/descrobject.c
+++ b/Objects/descrobject.c
@@ -6,6 +6,7 @@
#include "pycore_ceval.h" // _Py_EnterRecursiveCallTstate()
#include "pycore_emscripten_trampoline.h" // descr_set_trampoline_call(), descr_get_trampoline_call()
#include "pycore_descrobject.h" // _PyMethodWrapper_Type
+#include "pycore_modsupport.h" // _PyArg_UnpackStack()
#include "pycore_object.h" // _PyObject_GC_UNTRACK()
#include "pycore_pystate.h" // _PyThreadState_GET()
#include "pycore_tuple.h" // _PyTuple_ITEMS()
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 62a4423..4862345 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -8,10 +8,11 @@
#include <stdbool.h>
#include "pycore_abstract.h" // _PyObject_RealIsSubclass()
#include "pycore_ceval.h" // _Py_EnterRecursiveCall
-#include "pycore_pyerrors.h" // struct _PyErr_SetRaisedException
#include "pycore_exceptions.h" // struct _Py_exc_state
#include "pycore_initconfig.h"
+#include "pycore_modsupport.h" // _PyArg_NoKeywords()
#include "pycore_object.h"
+#include "pycore_pyerrors.h" // struct _PyErr_SetRaisedException
#include "osdefs.h" // SEP
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index e8ad486..8665c77 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -3,6 +3,7 @@
#include "Python.h"
#include "pycore_ceval.h" // _PyEval_BuiltinsFromGlobals()
+#include "pycore_modsupport.h" // _PyArg_NoKeywords()
#include "pycore_object.h" // _PyObject_GC_UNTRACK()
#include "pycore_pyerrors.h" // _PyErr_Occurred()
diff --git a/Objects/genericaliasobject.c b/Objects/genericaliasobject.c
index bf13ed3..c045d49 100644
--- a/Objects/genericaliasobject.c
+++ b/Objects/genericaliasobject.c
@@ -2,6 +2,7 @@
#include "Python.h"
#include "pycore_ceval.h" // _PyEval_GetBuiltin()
+#include "pycore_modsupport.h" // _PyArg_NoKeywords()
#include "pycore_object.h"
#include "pycore_unionobject.h" // _Py_union_type_or, _PyGenericAlias_Check
diff --git a/Objects/genobject.c b/Objects/genobject.c
index 40033d1..491e631 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -7,6 +7,7 @@
#include "pycore_ceval.h" // _PyEval_EvalFrame()
#include "pycore_frame.h" // _PyInterpreterFrame
#include "pycore_genobject.h" // struct _Py_async_gen_state
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
#include "pycore_object.h" // _PyObject_GC_UNTRACK()
#include "pycore_pyerrors.h" // _PyErr_ClearExcState()
#include "pycore_pystate.h" // _PyThreadState_GET()
diff --git a/Objects/namespaceobject.c b/Objects/namespaceobject.c
index 204c114..b975bcf 100644
--- a/Objects/namespaceobject.c
+++ b/Objects/namespaceobject.c
@@ -1,12 +1,12 @@
// namespace object implementation
#include "Python.h"
+#include "pycore_modsupport.h" // _PyArg_NoPositional()
#include "pycore_namespace.h" // _PyNamespace_Type
#include <stddef.h> // offsetof()
-
typedef struct {
PyObject_HEAD
PyObject *ns_dict;
diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c
index 5ffc52a..1513f3e 100644
--- a/Objects/sliceobject.c
+++ b/Objects/sliceobject.c
@@ -16,6 +16,7 @@ this type and there is exactly one in existence.
#include "Python.h"
#include "pycore_abstract.h" // _PyIndex_Check()
#include "pycore_long.h" // _PyLong_GetZero()
+#include "pycore_modsupport.h" // _PyArg_NoKeywords()
#include "pycore_object.h" // _PyObject_GC_TRACK()
diff --git a/Objects/stringlib/clinic/transmogrify.h.h b/Objects/stringlib/clinic/transmogrify.h.h
index e81c591..3a985ab 100644
--- a/Objects/stringlib/clinic/transmogrify.h.h
+++ b/Objects/stringlib/clinic/transmogrify.h.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(stringlib_expandtabs__doc__,
"expandtabs($self, /, tabsize=8)\n"
@@ -278,4 +279,4 @@ stringlib_zfill(PyObject *self, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=39cd1ee983137188 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b409bdf9ab68d5a6 input=a9049054013a1b77]*/
diff --git a/Objects/structseq.c b/Objects/structseq.c
index e4a4b45..db4aebe 100644
--- a/Objects/structseq.c
+++ b/Objects/structseq.c
@@ -9,11 +9,11 @@
#include "Python.h"
#include "pycore_dict.h" // _PyDict_Pop()
-#include "pycore_tuple.h" // _PyTuple_FromArray()
+#include "pycore_initconfig.h" // _PyStatus_OK()
+#include "pycore_modsupport.h" // _PyArg_NoPositional()
#include "pycore_object.h" // _PyObject_GC_TRACK()
-
#include "pycore_structseq.h" // PyStructSequence_InitType()
-#include "pycore_initconfig.h" // _PyStatus_OK()
+#include "pycore_tuple.h" // _PyTuple_FromArray()
static const char visible_length_key[] = "n_sequence_fields";
static const char real_length_key[] = "n_fields";
diff --git a/PC/_wmimodule.cpp b/PC/_wmimodule.cpp
index 310aa86..fdf09ec 100644
--- a/PC/_wmimodule.cpp
+++ b/PC/_wmimodule.cpp
@@ -8,6 +8,11 @@
// Version history
// 2022-08: Initial contribution (Steve Dower)
+// clinic/_wmimodule.cpp.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#define _WIN32_DCOM
#include <Windows.h>
#include <comdef.h>
diff --git a/PC/clinic/_testconsole.c.h b/PC/clinic/_testconsole.c.h
index 99cd302..2c71c11 100644
--- a/PC/clinic/_testconsole.c.h
+++ b/PC/clinic/_testconsole.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
#if defined(MS_WINDOWS)
@@ -139,4 +140,4 @@ exit:
#ifndef _TESTCONSOLE_READ_OUTPUT_METHODDEF
#define _TESTCONSOLE_READ_OUTPUT_METHODDEF
#endif /* !defined(_TESTCONSOLE_READ_OUTPUT_METHODDEF) */
-/*[clinic end generated code: output=f59fe72cd4e73704 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=08a1c844b3657272 input=a9049054013a1b77]*/
diff --git a/PC/clinic/_wmimodule.cpp.h b/PC/clinic/_wmimodule.cpp.h
index 3ece5e6..fccf3d7 100644
--- a/PC/clinic/_wmimodule.cpp.h
+++ b/PC/clinic/_wmimodule.cpp.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(_wmi_exec_query__doc__,
"exec_query($module, /, query)\n"
@@ -68,4 +69,4 @@ _wmi_exec_query(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
exit:
return return_value;
}
-/*[clinic end generated code: output=53821e597fc2aca4 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ba04920d127f3ceb input=a9049054013a1b77]*/
diff --git a/PC/clinic/msvcrtmodule.c.h b/PC/clinic/msvcrtmodule.c.h
index 54ae61b..e3f7ea4 100644
--- a/PC/clinic/msvcrtmodule.c.h
+++ b/PC/clinic/msvcrtmodule.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(msvcrt_heapmin__doc__,
"heapmin($module, /)\n"
"--\n"
@@ -695,4 +697,4 @@ exit:
#ifndef MSVCRT_GETERRORMODE_METHODDEF
#define MSVCRT_GETERRORMODE_METHODDEF
#endif /* !defined(MSVCRT_GETERRORMODE_METHODDEF) */
-/*[clinic end generated code: output=525ec6ac4e3cb4f2 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=de9687b46212c2ed input=a9049054013a1b77]*/
diff --git a/PC/clinic/winreg.c.h b/PC/clinic/winreg.c.h
index 7507c11..7e5545e 100644
--- a/PC/clinic/winreg.c.h
+++ b/PC/clinic/winreg.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_long.h" // _PyLong_UnsignedLong_Converter()
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
#if (defined(MS_WINDOWS_DESKTOP) || defined(MS_WINDOWS_SYSTEM) || defined(MS_WINDOWS_GAMES))
@@ -1761,4 +1762,4 @@ exit:
#ifndef WINREG_QUERYREFLECTIONKEY_METHODDEF
#define WINREG_QUERYREFLECTIONKEY_METHODDEF
#endif /* !defined(WINREG_QUERYREFLECTIONKEY_METHODDEF) */
-/*[clinic end generated code: output=d7ae41899af53d7c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1ee4098b2f143b6a input=a9049054013a1b77]*/
diff --git a/PC/clinic/winsound.c.h b/PC/clinic/winsound.c.h
index b8c8e7d..32a9a3d 100644
--- a/PC/clinic/winsound.c.h
+++ b/PC/clinic/winsound.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(winsound_PlaySound__doc__,
"PlaySound($module, /, sound, flags)\n"
@@ -205,4 +206,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=21584101f656198f input=a9049054013a1b77]*/
+/*[clinic end generated code: output=191d4fb1542c7abf input=a9049054013a1b77]*/
diff --git a/PC/winsound.c b/PC/winsound.c
index 68a9178..2881490 100644
--- a/PC/winsound.c
+++ b/PC/winsound.c
@@ -35,6 +35,11 @@
winsound.PlaySound(None, 0)
*/
+// clinic/winsound.c.h uses internal pycore_modsupport.h API
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#include <Python.h>
#include <windows.h>
#include <mmsystem.h>
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index f240779..b35a290 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -158,7 +158,6 @@
<ClInclude Include="..\Include\cpython\longobject.h" />
<ClInclude Include="..\Include\cpython\memoryobject.h" />
<ClInclude Include="..\Include\cpython\methodobject.h" />
- <ClInclude Include="..\Include\cpython\modsupport.h" />
<ClInclude Include="..\Include\cpython\object.h" />
<ClInclude Include="..\Include\cpython\objimpl.h" />
<ClInclude Include="..\Include\cpython\odictobject.h" />
diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters
index 6e13eb8..9adfebc 100644
--- a/PCbuild/pythoncore.vcxproj.filters
+++ b/PCbuild/pythoncore.vcxproj.filters
@@ -417,9 +417,6 @@
<ClInclude Include="..\Include\cpython\methodobject.h">
<Filter>Include\cpython</Filter>
</ClInclude>
- <ClInclude Include="..\Include\cpython\modsupport.h">
- <Filter>Include\cpython</Filter>
- </ClInclude>
<ClInclude Include="..\Include\cpython\objimpl.h">
<Filter>Include\cpython</Filter>
</ClInclude>
diff --git a/Python/clinic/Python-tokenize.c.h b/Python/clinic/Python-tokenize.c.h
index a8453e2..730fa8e 100644
--- a/Python/clinic/Python-tokenize.c.h
+++ b/Python/clinic/Python-tokenize.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
static PyObject *
tokenizeriter_new_impl(PyTypeObject *type, PyObject *readline,
@@ -79,4 +80,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=406b5a433a59069c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=dcd6ec48f06a092e input=a9049054013a1b77]*/
diff --git a/Python/clinic/_warnings.c.h b/Python/clinic/_warnings.c.h
index cf3c73b..98dc49d 100644
--- a/Python/clinic/_warnings.c.h
+++ b/Python/clinic/_warnings.c.h
@@ -7,6 +7,7 @@ preserve
# include "pycore_runtime.h" // _Py_ID()
#endif
#include "pycore_abstract.h" // _PyNumber_Index()
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(warnings_warn__doc__,
"warn($module, /, message, category=None, stacklevel=1, source=None, *,\n"
@@ -243,4 +244,4 @@ warnings_filters_mutated(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return warnings_filters_mutated_impl(module);
}
-/*[clinic end generated code: output=8c396a721ef75739 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f2d4214c382717a6 input=a9049054013a1b77]*/
diff --git a/Python/clinic/bltinmodule.c.h b/Python/clinic/bltinmodule.c.h
index b4dcc6b..8d40e65 100644
--- a/Python/clinic/bltinmodule.c.h
+++ b/Python/clinic/bltinmodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(builtin___import____doc__,
"__import__($module, /, name, globals=None, locals=None, fromlist=(),\n"
@@ -1211,4 +1212,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=607c62f2341ebfc0 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=31bded5d08647a57 input=a9049054013a1b77]*/
diff --git a/Python/clinic/context.c.h b/Python/clinic/context.c.h
index 292d3f7..997ac6f 100644
--- a/Python/clinic/context.c.h
+++ b/Python/clinic/context.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(_contextvars_Context_get__doc__,
"get($self, key, default=None, /)\n"
"--\n"
@@ -177,4 +179,4 @@ PyDoc_STRVAR(_contextvars_ContextVar_reset__doc__,
#define _CONTEXTVARS_CONTEXTVAR_RESET_METHODDEF \
{"reset", (PyCFunction)_contextvars_ContextVar_reset, METH_O, _contextvars_ContextVar_reset__doc__},
-/*[clinic end generated code: output=2436b16a92452869 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b667826178444c3f input=a9049054013a1b77]*/
diff --git a/Python/clinic/import.c.h b/Python/clinic/import.c.h
index 890c302..3ecd2ac 100644
--- a/Python/clinic/import.c.h
+++ b/Python/clinic/import.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
PyDoc_STRVAR(_imp_lock_held__doc__,
"lock_held($module, /)\n"
@@ -626,4 +627,4 @@ exit:
#ifndef _IMP_EXEC_DYNAMIC_METHODDEF
#define _IMP_EXEC_DYNAMIC_METHODDEF
#endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */
-/*[clinic end generated code: output=058f6aa1c9f4ebe4 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c37ad1bf06f9e947 input=a9049054013a1b77]*/
diff --git a/Python/clinic/instrumentation.c.h b/Python/clinic/instrumentation.c.h
index 1b1b6d0..8dae747 100644
--- a/Python/clinic/instrumentation.c.h
+++ b/Python/clinic/instrumentation.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(monitoring_use_tool_id__doc__,
"use_tool_id($module, tool_id, name, /)\n"
"--\n"
@@ -302,4 +304,4 @@ monitoring__all_events(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return monitoring__all_events_impl(module);
}
-/*[clinic end generated code: output=46f449b18195f976 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=14ffc0884a6de50a input=a9049054013a1b77]*/
diff --git a/Python/clinic/marshal.c.h b/Python/clinic/marshal.c.h
index 16e48f7..ecde4f6 100644
--- a/Python/clinic/marshal.c.h
+++ b/Python/clinic/marshal.c.h
@@ -2,6 +2,8 @@
preserve
[clinic start generated code]*/
+#include "pycore_modsupport.h" // _PyArg_CheckPositional()
+
PyDoc_STRVAR(marshal_dump__doc__,
"dump($module, value, file, version=version, /)\n"
"--\n"
@@ -155,4 +157,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=23091e077319f596 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=99ba446b1a75a269 input=a9049054013a1b77]*/
diff --git a/Python/clinic/sysmodule.c.h b/Python/clinic/sysmodule.c.h
index 06105e2..98717ec 100644
--- a/Python/clinic/sysmodule.c.h
+++ b/Python/clinic/sysmodule.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(sys_addaudithook__doc__,
"addaudithook($module, /, hook)\n"
@@ -1451,4 +1452,4 @@ exit:
#ifndef SYS_GETANDROIDAPILEVEL_METHODDEF
#define SYS_GETANDROIDAPILEVEL_METHODDEF
#endif /* !defined(SYS_GETANDROIDAPILEVEL_METHODDEF) */
-/*[clinic end generated code: output=3a7d3fbbcb281c22 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f36d45c829250775 input=a9049054013a1b77]*/
diff --git a/Python/clinic/traceback.c.h b/Python/clinic/traceback.c.h
index c5687e3..aee08d6 100644
--- a/Python/clinic/traceback.c.h
+++ b/Python/clinic/traceback.c.h
@@ -6,6 +6,7 @@ preserve
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
+#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
PyDoc_STRVAR(tb_new__doc__,
"TracebackType(tb_next, tb_frame, tb_lasti, tb_lineno)\n"
@@ -77,4 +78,4 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=57e27eb68d04d842 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=4e2f6b935841b09c input=a9049054013a1b77]*/
diff --git a/Python/getargs.c b/Python/getargs.c
index e216986..80d2540 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -4,6 +4,7 @@
#include "Python.h"
#include "pycore_abstract.h" // _PyNumber_Index()
#include "pycore_dict.h" // _PyDict_HasOnlyStringKeys()
+#include "pycore_modsupport.h" // export _PyArg_NoKeywords()
#include "pycore_pylifecycle.h" // _PyArg_Fini
#include "pycore_tuple.h" // _PyTuple_ITEMS()
diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py
index 3112e7c..5dd7900 100755
--- a/Tools/clinic/clinic.py
+++ b/Tools/clinic/clinic.py
@@ -1344,6 +1344,8 @@ class CLanguage(Language):
""",
indent=4))
else:
+ clinic.add_include('pycore_modsupport.h',
+ '_PyArg_CheckPositional()')
parser_code = [normalize_snippet(f"""
if (!_PyArg_CheckPositional("{{name}}", {nargs}, {min_pos}, {max_args})) {{{{
goto exit;
@@ -1401,6 +1403,8 @@ class CLanguage(Language):
if limited_capi:
fastcall = False
if fastcall:
+ clinic.add_include('pycore_modsupport.h',
+ '_PyArg_ParseStack()')
parser_code = [normalize_snippet("""
if (!_PyArg_ParseStack(args, nargs, "{format_units}:{name}",
{parse_arguments})) {{
@@ -1429,6 +1433,11 @@ class CLanguage(Language):
has_optional_kw = (max(pos_only, min_pos) + min_kw_only < len(converters) - int(vararg != NO_VARARG))
if vararg == NO_VARARG:
+ # FIXME: refactor the code to not declare args_declaration
+ # if limited_capi is true
+ if not limited_capi:
+ clinic.add_include('pycore_modsupport.h',
+ '_PyArg_UnpackKeywords()')
args_declaration = "_PyArg_UnpackKeywords", "%s, %s, %s" % (
min_pos,
max_pos,
@@ -1436,6 +1445,9 @@ class CLanguage(Language):
)
nargs = "nargs"
else:
+ if not limited_capi:
+ clinic.add_include('pycore_modsupport.h',
+ '_PyArg_UnpackKeywordsWithVararg()')
args_declaration = "_PyArg_UnpackKeywordsWithVararg", "%s, %s, %s, %s" % (
min_pos,
max_pos,
@@ -1574,6 +1586,8 @@ class CLanguage(Language):
declarations += "\nPy_ssize_t nargs = PyTuple_Size(args);"
elif fastcall:
+ clinic.add_include('pycore_modsupport.h',
+ '_PyArg_ParseStackAndKeywords()')
parser_code = [normalize_snippet("""
if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser{parse_arguments_comma}
{parse_arguments})) {{
@@ -1581,6 +1595,8 @@ class CLanguage(Language):
}}
""", indent=4)]
else:
+ clinic.add_include('pycore_modsupport.h',
+ '_PyArg_ParseTupleAndKeywordsFast()')
parser_code = [normalize_snippet("""
if (!_PyArg_ParseTupleAndKeywordsFast(args, kwargs, &_parser,
{parse_arguments})) {{
@@ -1626,12 +1642,16 @@ class CLanguage(Language):
if not parses_keywords:
declarations = '{base_type_ptr}'
+ clinic.add_include('pycore_modsupport.h',
+ '_PyArg_NoKeywords()')
fields.insert(0, normalize_snippet("""
if ({self_type_check}!_PyArg_NoKeywords("{name}", kwargs)) {{
goto exit;
}}
""", indent=4))
if not parses_positional:
+ clinic.add_include('pycore_modsupport.h',
+ '_PyArg_NoPositional()')
fields.insert(0, normalize_snippet("""
if ({self_type_check}!_PyArg_NoPositional("{name}", args)) {{
goto exit;
@@ -3500,6 +3520,8 @@ class CConverter(metaclass=CConverterAutoRegister):
else:
if expected_literal:
expected = f'"{expected}"'
+ if clinic is not None:
+ clinic.add_include('pycore_modsupport.h', '_PyArg_BadArgument()')
return f'_PyArg_BadArgument("{{{{name}}}}", "{displayname}", {expected}, {{argname}});'
def format_code(self, fmt: str, *,