Am Mittwoch, 7. Dezember 2016 01:43:09 UTC schrieb tha...@debian.org: > > On 12/07/2016 01:27 AM, François Bissey wrote: > > On 07/12/16 12:20, tha...@debian.org <than...@debian.org> wrote: > >> Hi sage-devel, > >> > >> we're almost ready to upload Sage to Debian (in fact we basically have > >> to upload it this week to make sure it's included in the next Debian > >> release). > >> > >> However, on Sunday python 2.7.13rc1 was uploaded to Debian and now we > >> are facing a bug that I didn't quite manage to work around yet and that > >> blocks any development at the moment. > >> > >> This happens whenever Unknown is imported, meaning during the docbuild > >> and when starting sage: > >> > >> ... > >> from sage.misc.unknown import Unknown > >> File > >> "<BUILDDIR>/usr/lib/python2.7/dist-packages/sage/misc/unknown.py", line > >> 164, in <module> > >> Unknown = UnknownClass() > >> File "sage/misc/classcall_metaclass.pyx", line 330, in > >> sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ > >> (<CYTHONIZED>/sage/misc/classcall_metaclass.c:1413) > >> File "sage/misc/cachefunc.pyx", line 1059, in > >> sage.misc.cachefunc.CachedFunction.__call__ > >> (<CYTHONIZED>/sage/misc/cachefunc.c:6080) > >> File > >> > "<BUILDDIR>/usr/lib/python2.7/dist-packages/sage/structure/unique_representation.py", > > > >> > >> line 1022, in __classcall__ > >> instance = typecall(cls, *args, **options) > >> File "sage/misc/classcall_metaclass.pyx", line 497, in > >> sage.misc.classcall_metaclass.typecall > >> (<CYTHONIZED>/sage/misc/classcall_metaclass.c:1862) > >> TypeError: > sage.misc.fast_methods.WithEqualityById.__new__(UnknownClass) > >> is not safe, use object.__new__() > >> > >> I'm pretty sure it's caused by the change of > >> https://bugs.python.org/issue5322 > >> which is included in python 2.7.13rc1. > >> > >> I hope you can help me to fix this, or at least provide a workaround. > >> > > > > What did you try so far? > > The most obvious thing to try, as far as I can see, is to add > > __new__ = object.__new__() > > before > > def __init__(self): > > in sage/misc/unknown.py > > > > Francois > > > > I created a minimal cython example with classes and cdef classes that > inherit from each other in the same way as here to see if this is caused > by WithEqualityById being a cdef class. In the example everything worked > as it should. > > Just because it appears in the error message I also tried replacing the > two > (<PyTypeObject*>type).tp_call(cls, args, kwds) > in > sage/misc/classcall_metaclass.pyx > by > type.__call__(cls, *args, **kwds). > > That didn't help either. > > I'll try your suggestion next, thanks. > > Best, Tobias >
When setting __new__ = object.__new__() for UnknownClass it goes on to the next similar error: ... File "<BUILDDIR>/usr/lib/python2.7/dist-packages/sage/categories/sets_cat.py", line 2752, in <module> cartesian_product = CartesianProductFunctor() File "sage/misc/classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (<CYTHONIZED>/sage/misc/classcall_metaclass.c:1413) File "sage/misc/cachefunc.pyx", line 1059, in sage.misc.cachefunc.CachedFunction.__call__ (<CYTHONIZED>/sage/misc/cachefunc.c:6080) File "<BUILDDIR>/usr/lib/python2.7/dist-packages/sage/structure/unique_representation.py", line 1022, in __classcall__ instance = typecall(cls, *args, **options) File "sage/misc/classcall_metaclass.pyx", line 497, in sage.misc.classcall_metaclass.typecall (<CYTHONIZED>/sage/misc/classcall_metaclass.c:1862) TypeError: sage.misc.fast_methods.WithEqualityById.__new__(CartesianProductFunctor) is not safe, use sage.categories.functor.Functor.__new__() -- 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 sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.