mirror of
https://github.com/python/cpython.git
synced 2025-07-27 05:04:15 +00:00
[3.13] gh-117398: Revert gh-119636, Add multiphase support to _datetime (#119639)
Revert "[3.13] gh-117398: Add multiphase support to _datetime (gh-119373) (gh-119636)"
This reverts commit d58ebf073c
.
This commit is contained in:
parent
7322ff1561
commit
9216a5336f
2 changed files with 15 additions and 32 deletions
|
@ -47,26 +47,6 @@ except ImportError:
|
||||||
pass
|
pass
|
||||||
#
|
#
|
||||||
|
|
||||||
# This is copied from test_import/__init__.py.
|
|
||||||
# XXX Move it to support/__init__.py.
|
|
||||||
def no_rerun(reason):
|
|
||||||
"""Skip rerunning for a particular test.
|
|
||||||
|
|
||||||
WARNING: Use this decorator with care; skipping rerunning makes it
|
|
||||||
impossible to find reference leaks. Provide a clear reason for skipping the
|
|
||||||
test using the 'reason' parameter.
|
|
||||||
"""
|
|
||||||
def deco(func):
|
|
||||||
_has_run = False
|
|
||||||
def wrapper(self):
|
|
||||||
nonlocal _has_run
|
|
||||||
if _has_run:
|
|
||||||
self.skipTest(reason)
|
|
||||||
func(self)
|
|
||||||
_has_run = True
|
|
||||||
return wrapper
|
|
||||||
return deco
|
|
||||||
|
|
||||||
pickle_loads = {pickle.loads, pickle._loads}
|
pickle_loads = {pickle.loads, pickle._loads}
|
||||||
|
|
||||||
pickle_choices = [(pickle, pickle, proto)
|
pickle_choices = [(pickle, pickle, proto)
|
||||||
|
@ -6403,7 +6383,6 @@ class IranTest(ZoneInfoTest):
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipIf(_testcapi is None, 'need _testcapi module')
|
@unittest.skipIf(_testcapi is None, 'need _testcapi module')
|
||||||
@no_rerun("the encapsulated datetime C API does not support reloading")
|
|
||||||
class CapiTest(unittest.TestCase):
|
class CapiTest(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# Since the C API is not present in the _Pure tests, skip all tests
|
# Since the C API is not present in the _Pure tests, skip all tests
|
||||||
|
|
|
@ -6970,26 +6970,30 @@ error:
|
||||||
}
|
}
|
||||||
#undef DATETIME_ADD_MACRO
|
#undef DATETIME_ADD_MACRO
|
||||||
|
|
||||||
static PyModuleDef_Slot module_slots[] = {
|
static struct PyModuleDef datetimemodule = {
|
||||||
{Py_mod_exec, _datetime_exec},
|
|
||||||
{Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},
|
|
||||||
{Py_mod_gil, Py_MOD_GIL_NOT_USED},
|
|
||||||
{0, NULL},
|
|
||||||
};
|
|
||||||
|
|
||||||
static PyModuleDef datetimemodule = {
|
|
||||||
.m_base = PyModuleDef_HEAD_INIT,
|
.m_base = PyModuleDef_HEAD_INIT,
|
||||||
.m_name = "_datetime",
|
.m_name = "_datetime",
|
||||||
.m_doc = "Fast implementation of the datetime type.",
|
.m_doc = "Fast implementation of the datetime type.",
|
||||||
.m_size = 0,
|
.m_size = -1,
|
||||||
.m_methods = module_methods,
|
.m_methods = module_methods,
|
||||||
.m_slots = module_slots,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
PyMODINIT_FUNC
|
PyMODINIT_FUNC
|
||||||
PyInit__datetime(void)
|
PyInit__datetime(void)
|
||||||
{
|
{
|
||||||
return PyModuleDef_Init(&datetimemodule);
|
PyObject *mod = PyModule_Create(&datetimemodule);
|
||||||
|
if (mod == NULL)
|
||||||
|
return NULL;
|
||||||
|
#ifdef Py_GIL_DISABLED
|
||||||
|
PyUnstable_Module_SetGIL(mod, Py_MOD_GIL_NOT_USED);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (_datetime_exec(mod) < 0) {
|
||||||
|
Py_DECREF(mod);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mod;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------
|
/* ---------------------------------------------------------------------------
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue