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 <rep...@bugs.python.org> <http://bugs.python.org/issue22995> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com