On 12/07/2016 10:57 AM, Francois Bissey wrote: > >> On 7/12/2016, at 21:15, Jeroen Demeyer <jdeme...@cage.ugent.be> wrote: >> >> On 2016-12-07 04:17, Francois Bissey wrote: >>> But I am not sure how to do the >>> __new__ = object.__new__ in cython. >> >> You certainly cannot do that since Cython's __new__ does non-trivial stuff >> like setting the vtab for c(p)def method calls. This is also partially the >> reason why cannot even implement __new__ for Cython cdef classes. >> > > OK, unless you can do something at the level > of tp_call (slot_tp_call may be) like Tobias > tried, that makes it a fundamental cython > problem. That kind of stuff will likely > happen with any cython cdef classes, right? > > François >
That's what I tried with my cython example (attached), but there the error didn't show. Tobias -- 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.
from distutils.core import setup from Cython.Build import cythonize setup( ext_modules = cythonize("test.pyx") )
cdef class WithEqualityById: pass class CachedRepresentation: pass class UniqueRepresentation(CachedRepresentation, WithEqualityById): pass cdef class SageObject: pass class UnknownClass(UniqueRepresentation, SageObject): pass Unknown = UnknownClass()