Barry A. Warsaw added the comment:
On Jan 06, 2016, at 10:13 PM, Serhiy Storchaka wrote:
>What return __reduce_ex__(4) for the NameAssignment instance in 3.5.0?
I'm not sure yet (it takes some time to set up the right environment to test
this), but I do know which TypeError is getting triggered. In typeobject.c,
it's this stanza in _PyObject_GetState():
assert(slotnames == Py_None || PyList_Check(slotnames));
if (required) {
Py_ssize_t basicsize = PyBaseObject_Type.tp_basicsize;
if (obj->ob_type->tp_dictoffset)
basicsize += sizeof(PyObject *);
if (obj->ob_type->tp_weaklistoffset)
basicsize += sizeof(PyObject *);
if (slotnames != Py_None)
basicsize += sizeof(PyObject *) * Py_SIZE(slotnames);
if (obj->ob_type->tp_basicsize > basicsize) {
Py_DECREF(slotnames);
Py_DECREF(state);
PyErr_Format(PyExc_TypeError,
"can't pickle %.200s objects",
Py_TYPE(obj)->tp_name);
return NULL;
}
}
I don't yet know why the basicsize isn't matching up.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue22995>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com