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.

Reply via email to