• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef Py_CPYTHON_MODSUPPORT_H
2 #  error "this header file must not be included directly"
3 #endif
4 
5 // A data structure that can be used to run initialization code once in a
6 // thread-safe manner. The C++11 equivalent is std::call_once.
7 typedef struct {
8     uint8_t v;
9 } _PyOnceFlag;
10 
11 typedef struct _PyArg_Parser {
12     const char *format;
13     const char * const *keywords;
14     const char *fname;
15     const char *custom_msg;
16     _PyOnceFlag once;       /* atomic one-time initialization flag */
17     int is_kwtuple_owned;   /* does this parser own the kwtuple object? */
18     int pos;                /* number of positional-only arguments */
19     int min;                /* minimal number of arguments */
20     int max;                /* maximal number of positional arguments */
21     PyObject *kwtuple;      /* tuple of keyword parameter names */
22     struct _PyArg_Parser *next;
23 } _PyArg_Parser;
24 
25 PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *,
26                                                  struct _PyArg_Parser *, ...);
27