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