@@ -377,28 +377,11 @@ static struct PyMethodDef lapack_lite_module_methods[] = {
377
377
{NULL ,NULL ,0 ,NULL }
378
378
};
379
379
380
-
381
- static struct PyModuleDef moduledef = {
382
- PyModuleDef_HEAD_INIT ,
383
- "lapack_lite" ,
384
- NULL ,
385
- -1 ,
386
- lapack_lite_module_methods ,
387
- NULL ,
388
- NULL ,
389
- NULL ,
390
- NULL
391
- };
392
-
393
- /* Initialization function for the module */
394
- PyMODINIT_FUNC PyInit_lapack_lite (void )
380
+ static int
381
+ lapack_lite_exec (PyObject * m )
395
382
{
396
- PyObject * m ,* d ;
397
- m = PyModule_Create (& moduledef );
398
- if (m == NULL ) {
399
- return NULL ;
400
- }
401
- import_array ();
383
+ PyObject * d ;
384
+ import_array1 (-1 );
402
385
d = PyModule_GetDict (m );
403
386
LapackError = PyErr_NewException ("numpy.linalg.lapack_lite.LapackError" ,NULL ,NULL );
404
387
PyDict_SetItemString (d ,"LapackError" ,LapackError );
@@ -409,10 +392,25 @@ PyMODINIT_FUNC PyInit_lapack_lite(void)
409
392
PyDict_SetItemString (d ,"_ilp64" ,Py_False );
410
393
#endif
411
394
412
- #if Py_GIL_DISABLED
395
+ return 0 ;
396
+ }
397
+
398
+ static struct PyModuleDef_Slot lapack_lite_slots []= {
399
+ {Py_mod_exec ,lapack_lite_exec },
400
+ {Py_mod_multiple_interpreters ,Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED },
413
401
// signal this module supports running with the GIL disabled
414
- PyUnstable_Module_SetGIL (m ,Py_MOD_GIL_NOT_USED );
415
- #endif
402
+ {Py_mod_gil ,Py_MOD_GIL_NOT_USED },
403
+ {0 ,NULL },
404
+ };
405
+
406
+ static struct PyModuleDef moduledef = {
407
+ .m_base = PyModuleDef_HEAD_INIT ,
408
+ .m_name = "lapack_lite" ,
409
+ .m_size = 0 ,
410
+ .m_methods = lapack_lite_module_methods ,
411
+ .m_slots = lapack_lite_slots ,
412
+ };
416
413
417
- return m ;
414
+ PyMODINIT_FUNC PyInit_lapack_lite (void ) {
415
+ return PyModuleDef_Init (& moduledef );
418
416
}