mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
Issue #28752: Restored the __reduce__() methods of datetime objects.
This commit is contained in:
parent
f89854f89c
commit
546ce65968
4 changed files with 44 additions and 11 deletions
|
@ -3955,15 +3955,21 @@ time_getstate(PyDateTime_Time *self, int proto)
|
|||
}
|
||||
|
||||
static PyObject *
|
||||
time_reduce(PyDateTime_Time *self, PyObject *args)
|
||||
time_reduce_ex(PyDateTime_Time *self, PyObject *args)
|
||||
{
|
||||
int proto = 0;
|
||||
if (!PyArg_ParseTuple(args, "|i:__reduce_ex__", &proto))
|
||||
int proto;
|
||||
if (!PyArg_ParseTuple(args, "i:__reduce_ex__", &proto))
|
||||
return NULL;
|
||||
|
||||
return Py_BuildValue("(ON)", Py_TYPE(self), time_getstate(self, proto));
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
time_reduce(PyDateTime_Time *self, PyObject *arg)
|
||||
{
|
||||
return Py_BuildValue("(ON)", Py_TYPE(self), time_getstate(self, 2));
|
||||
}
|
||||
|
||||
static PyMethodDef time_methods[] = {
|
||||
|
||||
{"isoformat", (PyCFunction)time_isoformat, METH_VARARGS | METH_KEYWORDS,
|
||||
|
@ -3989,9 +3995,12 @@ static PyMethodDef time_methods[] = {
|
|||
{"replace", (PyCFunction)time_replace, METH_VARARGS | METH_KEYWORDS,
|
||||
PyDoc_STR("Return time with new specified fields.")},
|
||||
|
||||
{"__reduce_ex__", (PyCFunction)time_reduce, METH_VARARGS,
|
||||
{"__reduce_ex__", (PyCFunction)time_reduce_ex, METH_VARARGS,
|
||||
PyDoc_STR("__reduce_ex__(proto) -> (cls, state)")},
|
||||
|
||||
{"__reduce__", (PyCFunction)time_reduce, METH_NOARGS,
|
||||
PyDoc_STR("__reduce__() -> (cls, state)")},
|
||||
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
|
@ -5420,15 +5429,21 @@ datetime_getstate(PyDateTime_DateTime *self, int proto)
|
|||
}
|
||||
|
||||
static PyObject *
|
||||
datetime_reduce(PyDateTime_DateTime *self, PyObject *args)
|
||||
datetime_reduce_ex(PyDateTime_DateTime *self, PyObject *args)
|
||||
{
|
||||
int proto = 0;
|
||||
if (!PyArg_ParseTuple(args, "|i:__reduce_ex__", &proto))
|
||||
int proto;
|
||||
if (!PyArg_ParseTuple(args, "i:__reduce_ex__", &proto))
|
||||
return NULL;
|
||||
|
||||
return Py_BuildValue("(ON)", Py_TYPE(self), datetime_getstate(self, proto));
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
datetime_reduce(PyDateTime_DateTime *self, PyObject *arg)
|
||||
{
|
||||
return Py_BuildValue("(ON)", Py_TYPE(self), datetime_getstate(self, 2));
|
||||
}
|
||||
|
||||
static PyMethodDef datetime_methods[] = {
|
||||
|
||||
/* Class methods: */
|
||||
|
@ -5503,9 +5518,12 @@ static PyMethodDef datetime_methods[] = {
|
|||
{"astimezone", (PyCFunction)datetime_astimezone, METH_VARARGS | METH_KEYWORDS,
|
||||
PyDoc_STR("tz -> convert to local time in new timezone tz\n")},
|
||||
|
||||
{"__reduce_ex__", (PyCFunction)datetime_reduce, METH_VARARGS,
|
||||
{"__reduce_ex__", (PyCFunction)datetime_reduce_ex, METH_VARARGS,
|
||||
PyDoc_STR("__reduce_ex__(proto) -> (cls, state)")},
|
||||
|
||||
{"__reduce__", (PyCFunction)datetime_reduce, METH_NOARGS,
|
||||
PyDoc_STR("__reduce__() -> (cls, state)")},
|
||||
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue