File tree 2 files changed +15
-32
lines changed
2 files changed +15
-32
lines changed Original file line number Diff line number Diff line change 47
47
pass
48
48
#
49
49
50
- # This is copied from test_import/__init__.py.
51
- # XXX Move it to support/__init__.py.
52
- def no_rerun (reason ):
53
- """Skip rerunning for a particular test.
54
-
55
- WARNING: Use this decorator with care; skipping rerunning makes it
56
- impossible to find reference leaks. Provide a clear reason for skipping the
57
- test using the 'reason' parameter.
58
- """
59
- def deco (func ):
60
- _has_run = False
61
- def wrapper (self ):
62
- nonlocal _has_run
63
- if _has_run :
64
- self .skipTest (reason )
65
- func (self )
66
- _has_run = True
67
- return wrapper
68
- return deco
69
-
70
50
pickle_loads = {pickle .loads , pickle ._loads }
71
51
72
52
pickle_choices = [(pickle , pickle , proto )
@@ -6403,7 +6383,6 @@ class IranTest(ZoneInfoTest):
6403
6383
6404
6384
6405
6385
@unittest .skipIf (_testcapi is None , 'need _testcapi module' )
6406
- @no_rerun ("the encapsulated datetime C API does not support reloading" )
6407
6386
class CapiTest (unittest .TestCase ):
6408
6387
def setUp (self ):
6409
6388
# Since the C API is not present in the _Pure tests, skip all tests
Original file line number Diff line number Diff line change @@ -6970,26 +6970,30 @@ _datetime_exec(PyObject *module)
6970
6970
}
6971
6971
#undef DATETIME_ADD_MACRO
6972
6972
6973
- static PyModuleDef_Slot module_slots [] = {
6974
- {Py_mod_exec , _datetime_exec },
6975
- {Py_mod_multiple_interpreters , Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED },
6976
- {Py_mod_gil , Py_MOD_GIL_NOT_USED },
6977
- {0 , NULL },
6978
- };
6979
-
6980
- static PyModuleDef datetimemodule = {
6973
+ static struct PyModuleDef datetimemodule = {
6981
6974
.m_base = PyModuleDef_HEAD_INIT ,
6982
6975
.m_name = "_datetime" ,
6983
6976
.m_doc = "Fast implementation of the datetime type." ,
6984
- .m_size = 0 ,
6977
+ .m_size = -1 ,
6985
6978
.m_methods = module_methods ,
6986
- .m_slots = module_slots ,
6987
6979
};
6988
6980
6989
6981
PyMODINIT_FUNC
6990
6982
PyInit__datetime (void )
6991
6983
{
6992
- return PyModuleDef_Init (& datetimemodule );
6984
+ PyObject * mod = PyModule_Create (& datetimemodule );
6985
+ if (mod == NULL )
6986
+ return NULL ;
6987
+ #ifdef Py_GIL_DISABLED
6988
+ PyUnstable_Module_SetGIL (mod , Py_MOD_GIL_NOT_USED );
6989
+ #endif
6990
+
6991
+ if (_datetime_exec (mod ) < 0 ) {
6992
+ Py_DECREF (mod );
6993
+ return NULL ;
6994
+ }
6995
+
6996
+ return mod ;
6993
6997
}
6994
6998
6995
6999
/* ---------------------------------------------------------------------------
You can’t perform that action at this time.
0 commit comments