File indexing completed on 2025-01-18 10:06:49
0001
0002 #ifndef Py_MODSUPPORT_H
0003 #define Py_MODSUPPORT_H
0004 #ifdef __cplusplus
0005 extern "C" {
0006 #endif
0007
0008
0009
0010 #include <stdarg.h> // va_list
0011
0012
0013
0014 #ifdef PY_SSIZE_T_CLEAN
0015 #define PyArg_Parse _PyArg_Parse_SizeT
0016 #define PyArg_ParseTuple _PyArg_ParseTuple_SizeT
0017 #define PyArg_ParseTupleAndKeywords _PyArg_ParseTupleAndKeywords_SizeT
0018 #define PyArg_VaParse _PyArg_VaParse_SizeT
0019 #define PyArg_VaParseTupleAndKeywords _PyArg_VaParseTupleAndKeywords_SizeT
0020 #define Py_BuildValue _Py_BuildValue_SizeT
0021 #define Py_VaBuildValue _Py_VaBuildValue_SizeT
0022 #endif
0023
0024
0025 #if !defined(PY_SSIZE_T_CLEAN) || !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
0026 PyAPI_FUNC(int) PyArg_Parse(PyObject *, const char *, ...);
0027 PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...);
0028 PyAPI_FUNC(int) PyArg_ParseTupleAndKeywords(PyObject *, PyObject *,
0029 const char *, char **, ...);
0030 PyAPI_FUNC(int) PyArg_VaParse(PyObject *, const char *, va_list);
0031 PyAPI_FUNC(int) PyArg_VaParseTupleAndKeywords(PyObject *, PyObject *,
0032 const char *, char **, va_list);
0033 #endif
0034 PyAPI_FUNC(int) PyArg_ValidateKeywordArguments(PyObject *);
0035 PyAPI_FUNC(int) PyArg_UnpackTuple(PyObject *, const char *, Py_ssize_t, Py_ssize_t, ...);
0036 PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...);
0037 PyAPI_FUNC(PyObject *) _Py_BuildValue_SizeT(const char *, ...);
0038
0039
0040 PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list);
0041
0042 #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030a0000
0043
0044
0045
0046 PyAPI_FUNC(int) PyModule_AddObjectRef(PyObject *mod, const char *name, PyObject *value);
0047 #endif
0048
0049
0050
0051 PyAPI_FUNC(int) PyModule_AddObject(PyObject *mod, const char *, PyObject *value);
0052
0053 PyAPI_FUNC(int) PyModule_AddIntConstant(PyObject *, const char *, long);
0054 PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char *);
0055
0056 #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
0057
0058 PyAPI_FUNC(int) PyModule_AddType(PyObject *module, PyTypeObject *type);
0059 #endif
0060
0061 #define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant((m), #c, (c))
0062 #define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant((m), #c, (c))
0063
0064 #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
0065
0066 PyAPI_FUNC(int) PyModule_SetDocString(PyObject *, const char *);
0067 PyAPI_FUNC(int) PyModule_AddFunctions(PyObject *, PyMethodDef *);
0068 PyAPI_FUNC(int) PyModule_ExecDef(PyObject *module, PyModuleDef *def);
0069 #endif
0070
0071 #define Py_CLEANUP_SUPPORTED 0x20000
0072
0073 #define PYTHON_API_VERSION 1013
0074 #define PYTHON_API_STRING "1013"
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122 #define PYTHON_ABI_VERSION 3
0123 #define PYTHON_ABI_STRING "3"
0124
0125 #ifdef Py_TRACE_REFS
0126
0127
0128
0129 #define PyModule_Create2 PyModule_Create2TraceRefs
0130 #define PyModule_FromDefAndSpec2 PyModule_FromDefAndSpec2TraceRefs
0131 #endif
0132
0133 PyAPI_FUNC(PyObject *) PyModule_Create2(PyModuleDef*, int apiver);
0134
0135 #ifdef Py_LIMITED_API
0136 #define PyModule_Create(module) \
0137 PyModule_Create2((module), PYTHON_ABI_VERSION)
0138 #else
0139 #define PyModule_Create(module) \
0140 PyModule_Create2((module), PYTHON_API_VERSION)
0141 #endif
0142
0143 #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
0144
0145 PyAPI_FUNC(PyObject *) PyModule_FromDefAndSpec2(PyModuleDef *def,
0146 PyObject *spec,
0147 int module_api_version);
0148
0149 #ifdef Py_LIMITED_API
0150 #define PyModule_FromDefAndSpec(module, spec) \
0151 PyModule_FromDefAndSpec2((module), (spec), PYTHON_ABI_VERSION)
0152 #else
0153 #define PyModule_FromDefAndSpec(module, spec) \
0154 PyModule_FromDefAndSpec2((module), (spec), PYTHON_API_VERSION)
0155 #endif
0156
0157 #endif
0158
0159 #ifndef Py_LIMITED_API
0160 # define Py_CPYTHON_MODSUPPORT_H
0161 # include "cpython/modsupport.h"
0162 # undef Py_CPYTHON_MODSUPPORT_H
0163 #endif
0164
0165 #ifdef __cplusplus
0166 }
0167 #endif
0168 #endif