@@ -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,29 @@ PyMODINIT_FUNC PyInit_lapack_lite(void)
409
392
PyDict_SetItemString (d ,"_ilp64" ,Py_False );
410
393
#endif
411
394
412
- #if Py_GIL_DISABLED
413
- // signal this module supports running with the GIL disabled
414
- PyUnstable_Module_SetGIL (m ,Py_MOD_GIL_NOT_USED );
395
+ return 0 ;
396
+ }
397
+
398
+ static struct PyModuleDef_Slot lapack_lite_slots []= {
399
+ {Py_mod_exec ,lapack_lite_exec },
400
+ #if PY_VERSION_HEX >=0x030c00f0 // Python 3.12+
401
+ {Py_mod_multiple_interpreters ,Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED },
415
402
#endif
403
+ #if PY_VERSION_HEX >=0x030d00f0 // Python 3.13+
404
+ // signal that this module supports running without an active GIL
405
+ {Py_mod_gil ,Py_MOD_GIL_NOT_USED },
406
+ #endif
407
+ {0 ,NULL },
408
+ };
409
+
410
+ static struct PyModuleDef moduledef = {
411
+ .m_base = PyModuleDef_HEAD_INIT ,
412
+ .m_name = "lapack_lite" ,
413
+ .m_size = 0 ,
414
+ .m_methods = lapack_lite_module_methods ,
415
+ .m_slots = lapack_lite_slots ,
416
+ };
416
417
417
- return m ;
418
+ PyMODINIT_FUNC PyInit_lapack_lite (void ) {
419
+ return PyModuleDef_Init (& moduledef );
418
420
}