On 13 Mai, 13:22, Christian Stump <christian.st...@lacim.ca> wrote: > I feel like the tab completion is often so long, that it is quite hard > to find some method. So why not removing all methods from this list > which I cannot use anyway? I think it is also annoying to find and try > to use some method which then only raises an error.
So, we have a method foo defined as a parent method in some category, and it relies on *optional* parent methods bar1, bar2, ... that may or may not be implemented. You want that O.f<tab> shows O.foo if and only if O has its own implemented of bar1, bar2, .... One can test whether O inherits bar1 or has its own implementation. For example: sage: from sage.misc.sageinspect import sage_getfile sage: sage_getfile(QQ.summation) == sage_getfile(QQ.category().parent_class.summation) True Hence, QQ inherits summation from the category and does not have its own implementation. So, if O has no custom implementation of bar1 and bar2 and ..., then O.foo should not appear in tab completion and introspection. That could be made work (at least if someone reviews #11298, hint hint!). But I guess it would slow down tab completion and dir(O) considerably. Cheers, Simon -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.