Skip to content

Commit

Permalink
[3.13] pythongh-117398: Revert pythongh-119636, Add multiphase suppor…
Browse files Browse the repository at this point in the history
…t to _datetime (python#119639)

Revert "[3.13] pythongh-117398: Add multiphase support to _datetime (pythongh-119373) (pythongh-119636)"

This reverts commit d58ebf0.
  • Loading branch information
ericsnowcurrently authored May 28, 2024
1 parent 7322ff1 commit 9216a53
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 32 deletions.
21 changes: 0 additions & 21 deletions Lib/test/datetimetester.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,26 +47,6 @@
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_choices = [(pickle, pickle, proto)
Expand Down Expand Up @@ -6403,7 +6383,6 @@ class IranTest(ZoneInfoTest):


@unittest.skipIf(_testcapi is None, 'need _testcapi module')
@no_rerun("the encapsulated datetime C API does not support reloading")
class CapiTest(unittest.TestCase):
def setUp(self):
# Since the C API is not present in the _Pure tests, skip all tests
Expand Down
26 changes: 15 additions & 11 deletions Modules/_datetimemodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -6970,26 +6970,30 @@ _datetime_exec(PyObject *module)
}
#undef DATETIME_ADD_MACRO

static PyModuleDef_Slot module_slots[] = {
{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 = {
static struct PyModuleDef datetimemodule = {
.m_base = PyModuleDef_HEAD_INIT,
.m_name = "_datetime",
.m_doc = "Fast implementation of the datetime type.",
.m_size = 0,
.m_size = -1,
.m_methods = module_methods,
.m_slots = module_slots,
};

PyMODINIT_FUNC
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;
}

/* ---------------------------------------------------------------------------
Expand Down

0 comments on commit 9216a53

Please sign in to comment.