@@ -388,41 +388,44 @@ add_gufuncs(PyObject *dictionary) {
388
388
return 0 ;
389
389
}
390
390
391
- static struct PyModuleDef moduledef = {
392
- PyModuleDef_HEAD_INIT,
393
- " _multiarray_umath" ,
394
- NULL ,
395
- -1 ,
396
- NULL ,
397
- NULL ,
398
- NULL ,
399
- NULL ,
400
- NULL
401
- };
402
-
403
- /* Initialization function for the module*/
404
- PyMODINIT_FUNCPyInit__pocketfft_umath (void )
391
+ static int
392
+ _pocketfft_umath_exec (PyObject *m)
405
393
{
406
- PyObject *m =PyModule_Create (&moduledef);
407
- if (m ==NULL ) {
408
- return NULL ;
409
- }
410
-
411
394
/* Import the array and ufunc objects*/
412
- import_array ( );
413
- import_ufunc ( );
395
+ import_array1 (- 1 );
396
+ import_umath1 (- 1 );
414
397
415
398
PyObject *d =PyModule_GetDict (m);
416
399
if (add_gufuncs (d) <0 ) {
417
400
Py_DECREF (d);
418
401
Py_DECREF (m);
419
- return NULL ;
402
+ return - 1 ;
420
403
}
421
404
422
- #if Py_GIL_DISABLED
423
- // signal this module supports running with the GIL disabled
424
- PyUnstable_Module_SetGIL (m, Py_MOD_GIL_NOT_USED);
405
+ return 0 ;
406
+ }
407
+
408
+ static struct PyModuleDef_Slot _pocketfft_umath_slots[] = {
409
+ {Py_mod_exec, (void *)_pocketfft_umath_exec},
410
+ #if PY_VERSION_HEX >= 0x030c00f0// Python 3.12+
411
+ {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},
425
412
#endif
413
+ #if PY_VERSION_HEX >= 0x030d00f0// Python 3.13+
414
+ // signal that this module supports running without an active GIL
415
+ {Py_mod_gil, Py_MOD_GIL_NOT_USED},
416
+ #endif
417
+ {0 ,NULL },
418
+ };
419
+
420
+ static struct PyModuleDef moduledef = {
421
+ PyModuleDef_HEAD_INIT,/* m_base*/
422
+ " _pocketfft_umath" ,/* m_name*/
423
+ NULL ,/* m_doc*/
424
+ 0 ,/* m_size*/
425
+ NULL ,/* m_methods*/
426
+ _pocketfft_umath_slots,/* m_slots*/
427
+ };
426
428
427
- return m;
429
+ PyMODINIT_FUNCPyInit__pocketfft_umath (void ) {
430
+ return PyModuleDef_Init (&moduledef);
428
431
}