Nathann, if you're still tens of kilometers away from the nearest pub, you might want to turn all the info here into proper documentation?
On Sunday, December 28, 2014 1:45:26 AM UTC+1, Nils Bruin wrote: > > On Saturday, December 27, 2014 3:13:37 PM UTC-8, Simon King wrote: >> >> That's exactly what I meant: The use of __eq__, __lt__, etc. is >> deprecated in Sage, in favour of using __richcmp__ (of course __cmp__ is >> a different thing). >> > > There is no deprecating of __eq__ or __richcmp__. They appear in different > contexts (python classes vs. cdef classes to be precise). > > In a python class, __eq__, __lt__ etc. are the appropriate methods to > implement and __richcmp__ isn't a special method at all there, so > implementing it will not have much effect. > > In cython, the __eq__ and __lt__ methods aren't special. There, > implementing __richcmp__ does the right thing (cython recognizes the method > name and places it in the relevant slot--the slot that on a python class > would contain a routine that dispatches to __eq__, __lt__ methods). > > I haven't tested it, but I expect that if you put a "class" in a cython > file instead of a "cdef class", you would also find that you need to > implement __eq__ and __lt__, because cython wouldn't be in a position to > place any special routines into slots there. > > Python 3 indicates that in sage we *should* be moving entirely to these > methods. However, historically sage has preferred "cmp". It wouldn't > surprise me that for backwards compatibility one may still need to provide > it, until the remaining bits of sage have transitioned to make use of "rich > comparison". > > > If you implement with 2 underscores, then you bypass the (generic) >> > coercion implementation. You'd want to implement with a single >> underscore >> > to ensure common parents (i.e. _richcm_ or _cmp_). >> >> Is that so? The comments in structure.elements seem to tell something >> else. >> > > A brief browsing of the code indicates that there certainly is the > possibility of implementing these single underscore methods (which is a > sage API), and I would expect that those would indeed be hooks used by the > coercion framework. > -- 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 http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.