As you may know, Sage prints lists of matrices in a smart way: sage: m = random_matrix(GF(5),2) sage: [ m, m^2, m^3 ] [ [1 4] [4 2] [3 0] [2 2], [1 2], [0 3] ]
But that currently only works for matrices with a hardcoded is_Matrix(). I'm proposing to add a method _repr_option(key) to all parents to be able to pass metadata about the output of _repr_(). There is also some precedent, we currently have is_atomic_repr() to do return metadata for another reason. I made a patch that combines those two use cases at http://trac.sagemath.org/14040. Since it is a bit of a framework change I wanted to bring this up on sage-devel. Here is the docstring of the new method in sage.structure.parent.Parent: def _repr_option(self, key): """ Metadata about the :meth:`_repr_` output. INPUT: - ``key`` -- string. A key for different metadata informations that can be inquired about. Valid ``key`` arguments are: - ``'ascii_art'``: The :meth:`_repr_` output is multi-line ascii art and each line must be printed starting at the same column, or the meaning is lost. - ``'element_ascii_art'``: same but for the output of the elements. Used in :mod:`sage.misc.displayhook`. - ``'element_is_atomic'``: the elements print atomically, that is, parenthesis are not required when *printing* out any of `x - y`, `x + y`, `x^y` and `x/y`. OUTPUT: Boolean. EXAMPLES:: sage: ZZ._repr_option('ascii_art') False sage: MatrixSpace(ZZ, 2)._repr_option('element_ascii_art') True """ -- 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 sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel?hl=en. For more options, visit https://groups.google.com/groups/opt_out.