mirror of
https://github.com/python/cpython.git
synced 2026-01-01 21:14:02 +00:00
38 lines
1.6 KiB
C++
38 lines
1.6 KiB
C++
#ifndef Py_CPYTHON_MODSUPPORT_H
|
|
# error "this header file must not be included directly"
|
|
#endif
|
|
|
|
// A data structure that can be used to run initialization code once in a
|
|
// thread-safe manner. The C++11 equivalent is std::call_once.
|
|
typedef struct {
|
|
uint8_t v;
|
|
} _PyOnceFlag;
|
|
|
|
typedef struct _PyArg_Parser {
|
|
const char *format;
|
|
const char * const *keywords;
|
|
const char *fname;
|
|
const char *custom_msg;
|
|
_PyOnceFlag once; /* atomic one-time initialization flag */
|
|
int is_kwtuple_owned; /* does this parser own the kwtuple object? */
|
|
int pos; /* number of positional-only arguments */
|
|
int min; /* minimal number of arguments */
|
|
int max; /* maximal number of positional arguments */
|
|
PyObject *kwtuple; /* tuple of keyword parameter names */
|
|
struct _PyArg_Parser *next;
|
|
} _PyArg_Parser;
|
|
|
|
PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *,
|
|
struct _PyArg_Parser *, ...);
|
|
|
|
#ifdef Py_BUILD_CORE
|
|
// Internal; defined here to avoid explicitly including pycore_modsupport.h
|
|
#define _Py_INTERNAL_ABI_SLOT \
|
|
{Py_mod_abi, (void*) &(PyABIInfo) { \
|
|
.abiinfo_major_version = 1, \
|
|
.abiinfo_minor_version = 0, \
|
|
.flags = PyABIInfo_INTERNAL, \
|
|
.build_version = PY_VERSION_HEX, \
|
|
.abi_version = PY_VERSION_HEX }} \
|
|
///////////////////////////////////////////////////////
|
|
#endif
|