The class vs. type think suggests that its an old-style vs. new-style class
conflict. Can you run explain_pickle() and check exactly which step fails?
On Tuesday, April 14, 2015 at 4:16:14 PM UTC+2, Jeroen Demeyer wrote:
>
> Hello all,
>
> I am working on #18109 which does some major restructuring of the
> IntegerListsLex class.
>
> The problem is that breaks some pickles from the pickle jar. This is
> completely understandable. Now my question is: what to do to fix this?
> With #17842 (needs review by the way!) I got this traceback:
>
> sage: sage.structure.sage_object.unpickle_all()
> * unpickle failure:
> load('/home/jdemeyer/.sage/temp/tamiyo/22824/dir_huFT4h//pickle_jar/_class__sage_combinat_integer_list_IntegerListsLex__.sobj')
>
>
> Traceback (most recent call last):
> File "sage/structure/sage_object.pyx", line 1473, in
> sage.structure.sage_object.unpickle_all
> (build/cythonized/sage/structure/sage_object.c:14187)
> object = load(os.path.join(dir,A))
> File "sage/structure/sage_object.pyx", line 917, in
> sage.structure.sage_object.load
> (build/cythonized/sage/structure/sage_object.c:10764)
> X = loads(open(filename).read(), compress=compress)
> File "sage/structure/sage_object.pyx", line 1271, in
> sage.structure.sage_object.loads
> (build/cythonized/sage/structure/sage_object.c:12709)
> return unpickler.load()
> UnpicklingError: NEWOBJ class argument isn't a type object
>
> But now what? I tried
>
> from sage.structure.sage_object import register_unpickle_override
> register_unpickle_override('sage.combinat.integer_list',
> 'IntegerListsLex', _unpickle_old_IntegerListsLex)
>
> but it seems that the function _unpickle_old_IntegerListsLex() is not
> called.
>
--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.