As a follow-up, since Nicolas suggested that what I was proposing looked more like options for arbitrary sage objects, so I experimented with adding my options method to SageObject. Following Anne's suggestion, I also added a way of printing out the default options.
Even though SageObject is implemented in cython, from the few quick checks that I made, my generic options code seemed to well for arbitrary sage objects. Of course, there is a catch: it didn't work quite the way that I wanted it to because the multiple inheritance issues flagged above do cause problems. Consider: sage: t=Tableau([[1,2,3],[4,5]]);t # create two tableaux [[1, 2, 3], [4, 5]] sage: s=Tableau([[1,1,1],[3,5]]); s [[1, 1, 1], [3, 5]] sage: t.options() # with no arguments print all current options and their defaults The current options for Tableaux_all_with_category.element_class are: display = str (default str) sage: t.options(display="compact") # change the display option to compact sage: t # change of option affects t 1,2,3/4,5 sage: s # change affects previously created objects 1,1,1/3,5 sage: Tableau([[1,2,4],[3,5]]) # change affects newly created objects 1,2,4/3,5 sage: u=StandardTableau([[1,2,4],[3,5]]); u # change does NOT affect u :( [[1, 2, 4], [3, 5]] sage: u.options() The current options for StandardTableaux_all_with_category.element_class are: display = str (default str) The last example is, for me, a problem: the option change does NOT affect classes which inherit from Tableau. I would prefer that it did, although in some cases this is the behaviour you would want. Andrew -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To view this discussion on the web visit https://groups.google.com/d/msg/sage-combinat-devel/-/HVp7bghW2BAJ. 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.