I agree. On Tuesday, 7 October 2025 at 21:49:35 UTC+2 Nils Bruin wrote:
> On Tuesday, 7 October 2025 at 02:05:44 UTC-7 [email protected] wrote: > > > Is there any downside to this idea? Of course, I would turn it into > something easier to use, like a decorator. > > I haven't thought through all the ramifications of this, but as a general > principle, being "smart" by putting exceptions in your code for particular > behaviour tends to come back to haunt you later. The Zen of Python even > addresses this: > > Special cases aren't special enough to break the rules. > > My main problem is that __dir__ isn't solely for displaying tab completion > results. It's an introspection tool. So I don't think __dir__ is an > appropriate place to sanitize your tab completion lists. Tab completion is > an interface job -- in this case IPython. If you think the tab completion > results need sanitizing after obtaining them through introspection from > python, then it needs to be happening there. > > If you want to group aliases together: you can probably systematically > determine if two attributes are aliases by looking at the ID they point to. > If these end up being bound methods, you may have to dig into it a little > bit (e.g., look at the __func__ attribute of the method instead). A fancy > tab completion could group aliases together and perhaps even have a way of > displaying a "preferred" one. > > Once you have a protocol for tab completion sanitation, the question would > be where you store the info on which attributes should be displayed > (perhaps a ranking for inclusion in tab completion lists of various levels > of completeness?) Should this info be distributed or should it be stored > centrally? Should it be user configurable? > > For the most part I think these questions end up being interface > questions, not questions particular to sagemath (although the needs of > sagemath might be a bit different than for other python projects), so > perhaps the right level to engage with them is to contribute tools for it > to IPython/jupyter. The feedback and positive or negative reception there > might also be informative. There are other python-based projects with way > more experience/focus on user interface than sagemath. Let's try to be > compatible with that. > -- 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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/sage-devel/fce9660a-66b7-4711-b3cd-d100fc78c7a1n%40googlegroups.com.
