1 /* typing accelerator C extension: _typing module. */
2 
3 #include "Python.h"
4 #include "clinic/_typingmodule.c.h"
5 
6 /*[clinic input]
7 module _typing
8 
9 [clinic start generated code]*/
10 /*[clinic end generated code: output=da39a3ee5e6b4b0d input=1db35baf1c72942b]*/
11 
12 /* helper function to make typing.NewType.__call__ method faster */
13 
14 /*[clinic input]
15 _typing._idfunc -> object
16 
17     x: object
18     /
19 
20 [clinic start generated code]*/
21 
22 static PyObject *
_typing__idfunc(PyObject * module,PyObject * x)23 _typing__idfunc(PyObject *module, PyObject *x)
24 /*[clinic end generated code: output=63c38be4a6ec5f2c input=49f17284b43de451]*/
25 {
26     Py_INCREF(x);
27     return x;
28 }
29 
30 
31 static PyMethodDef typing_methods[] = {
32     _TYPING__IDFUNC_METHODDEF
33     {NULL, NULL, 0, NULL}
34 };
35 
36 PyDoc_STRVAR(typing_doc,
37 "Accelerators for the typing module.\n");
38 
39 static struct PyModuleDef_Slot _typingmodule_slots[] = {
40     {0, NULL}
41 };
42 
43 static struct PyModuleDef typingmodule = {
44         PyModuleDef_HEAD_INIT,
45         "_typing",
46         typing_doc,
47         0,
48         typing_methods,
49         _typingmodule_slots,
50         NULL,
51         NULL,
52         NULL
53 };
54 
55 PyMODINIT_FUNC
PyInit__typing(void)56 PyInit__typing(void)
57 {
58     return PyModuleDef_Init(&typingmodule);
59 }
60