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.

Reply via email to