17db96d56Sopenharmony_ci/* typing accelerator C extension: _typing module. */
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci#include "Python.h"
47db96d56Sopenharmony_ci#include "clinic/_typingmodule.c.h"
57db96d56Sopenharmony_ci
67db96d56Sopenharmony_ci/*[clinic input]
77db96d56Sopenharmony_cimodule _typing
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci[clinic start generated code]*/
107db96d56Sopenharmony_ci/*[clinic end generated code: output=da39a3ee5e6b4b0d input=1db35baf1c72942b]*/
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci/* helper function to make typing.NewType.__call__ method faster */
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ci/*[clinic input]
157db96d56Sopenharmony_ci_typing._idfunc -> object
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci    x: object
187db96d56Sopenharmony_ci    /
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci[clinic start generated code]*/
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_cistatic PyObject *
237db96d56Sopenharmony_ci_typing__idfunc(PyObject *module, PyObject *x)
247db96d56Sopenharmony_ci/*[clinic end generated code: output=63c38be4a6ec5f2c input=49f17284b43de451]*/
257db96d56Sopenharmony_ci{
267db96d56Sopenharmony_ci    Py_INCREF(x);
277db96d56Sopenharmony_ci    return x;
287db96d56Sopenharmony_ci}
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_cistatic PyMethodDef typing_methods[] = {
327db96d56Sopenharmony_ci    _TYPING__IDFUNC_METHODDEF
337db96d56Sopenharmony_ci    {NULL, NULL, 0, NULL}
347db96d56Sopenharmony_ci};
357db96d56Sopenharmony_ci
367db96d56Sopenharmony_ciPyDoc_STRVAR(typing_doc,
377db96d56Sopenharmony_ci"Accelerators for the typing module.\n");
387db96d56Sopenharmony_ci
397db96d56Sopenharmony_cistatic struct PyModuleDef_Slot _typingmodule_slots[] = {
407db96d56Sopenharmony_ci    {0, NULL}
417db96d56Sopenharmony_ci};
427db96d56Sopenharmony_ci
437db96d56Sopenharmony_cistatic struct PyModuleDef typingmodule = {
447db96d56Sopenharmony_ci        PyModuleDef_HEAD_INIT,
457db96d56Sopenharmony_ci        "_typing",
467db96d56Sopenharmony_ci        typing_doc,
477db96d56Sopenharmony_ci        0,
487db96d56Sopenharmony_ci        typing_methods,
497db96d56Sopenharmony_ci        _typingmodule_slots,
507db96d56Sopenharmony_ci        NULL,
517db96d56Sopenharmony_ci        NULL,
527db96d56Sopenharmony_ci        NULL
537db96d56Sopenharmony_ci};
547db96d56Sopenharmony_ci
557db96d56Sopenharmony_ciPyMODINIT_FUNC
567db96d56Sopenharmony_ciPyInit__typing(void)
577db96d56Sopenharmony_ci{
587db96d56Sopenharmony_ci    return PyModuleDef_Init(&typingmodule);
597db96d56Sopenharmony_ci}
60