Representations of objects#
- class sage.repl.display.fancy_repr.LargeMatrixHelpRepr#
Bases:
sage.repl.display.fancy_repr.ObjectReprABC
Representation including help for large Sage matrices
- __call__(obj, p, cycle)#
Format matrix.
INPUT:
obj
– anything. Object to format.p
– PrettyPrinter instance.cycle
– boolean. Whether there is a cycle.
OUTPUT:
Boolean. Whether the representer is applicable to
obj
. IfTrue
, the string representation is appended top
.EXAMPLES:
sage: from sage.repl.display.fancy_repr import LargeMatrixHelpRepr sage: M = identity_matrix(40) sage: pp = LargeMatrixHelpRepr() sage: pp.format_string(M) "40 x 40 dense matrix over Integer Ring (use the '.str()' method to see the entries)" sage: pp.format_string([M, M]) '--- object not handled by representer ---'
Leads to:
sage: M 40 x 40 dense matrix over Integer Ring (use the '.str()' method to see the entries) sage: [M, M] [40 x 40 dense matrix over Integer Ring, 40 x 40 dense matrix over Integer Ring]
- class sage.repl.display.fancy_repr.ObjectReprABC#
Bases:
object
The abstract base class of an object representer.
- __call__(obj, p, cycle)#
Format object.
INPUT:
obj
– anything. Object to format.p
– PrettyPrinter instance.cycle
– boolean. Whether there is a cycle.
OUTPUT:
Boolean. Whether the representer is applicable to
obj
. IfTrue
, the string representation is appended top
.EXAMPLES:
sage: from sage.repl.display.fancy_repr import ObjectReprABC sage: ObjectReprABC().format_string(123) # indirect doctest 'Error: ObjectReprABC.__call__ is abstract'
- format_string(obj)#
For doctesting only: Directly return string.
INPUT:
obj
– anything. Object to format.
OUTPUT:
String.
EXAMPLES:
sage: from sage.repl.display.fancy_repr import ObjectReprABC sage: ObjectReprABC().format_string(123) 'Error: ObjectReprABC.__call__ is abstract'
- class sage.repl.display.fancy_repr.PlainPythonRepr#
Bases:
sage.repl.display.fancy_repr.ObjectReprABC
The ordinary Python representation
- __call__(obj, p, cycle)#
Format matrix.
INPUT:
obj
– anything. Object to format.p
– PrettyPrinter instance.cycle
– boolean. Whether there is a cycle.
OUTPUT:
Boolean. Whether the representer is applicable to
obj
. IfTrue
, the string representation is appended top
.EXAMPLES:
sage: from sage.repl.display.fancy_repr import PlainPythonRepr sage: pp = PlainPythonRepr() sage: pp.format_string(type(1)) "<class 'sage.rings.integer.Integer'>"
Do not swallow a trailing newline at the end of the output of a custom representer. Note that it is undesirable to have a trailing newline, and if we don’t display it you can’t fix it:
sage: class Newline(): ....: def __repr__(self): ....: return 'newline\n' sage: n = Newline() sage: pp.format_string(n) 'newline\n' sage: pp.format_string([n, n, n]) '[newline\n, newline\n, newline\n]' sage: [n, n, n] [newline , newline , newline ]
- class sage.repl.display.fancy_repr.SomeIPythonRepr#
Bases:
sage.repl.display.fancy_repr.ObjectReprABC
Some selected representers from IPython
EXAMPLES:
sage: from sage.repl.display.fancy_repr import SomeIPythonRepr sage: SomeIPythonRepr() SomeIPythonRepr pretty printer
- __call__(obj, p, cycle)#
Format object.
INPUT:
obj
– anything. Object to format.p
– PrettyPrinter instance.cycle
– boolean. Whether there is a cycle.
OUTPUT:
Boolean. Whether the representer is applicable to
obj
. IfTrue
, the string representation is appended top
.EXAMPLES:
sage: from sage.repl.display.fancy_repr import SomeIPythonRepr sage: pp = SomeIPythonRepr() sage: pp.format_string(set([1, 2, 3])) '{1, 2, 3}'
- class sage.repl.display.fancy_repr.TallListRepr#
Bases:
sage.repl.display.fancy_repr.ObjectReprABC
Special representation for lists with tall entries (e.g. matrices)
- __call__(obj, p, cycle)#
Format list/tuple.
INPUT:
obj
– anything. Object to format.p
– PrettyPrinter instance.cycle
– boolean. Whether there is a cycle.
OUTPUT:
Boolean. Whether the representer is applicable to
obj
. IfTrue
, the string representation is appended top
.EXAMPLES:
sage: from sage.repl.display.fancy_repr import TallListRepr sage: format_list = TallListRepr().format_string sage: format_list([1, 2, identity_matrix(2)]) '[\n [1 0]\n1, 2, [0 1]\n]'
Check that trac ticket #18743 is fixed:
sage: class Foo(): ....: def __repr__(self): ....: return '''BBB AA RRR ....: B B A A R R ....: BBB AAAA RRR ....: B B A A R R ....: BBB A A R R''' ....: def _repr_option(self, key): ....: return key == 'ascii_art' sage: F = Foo() sage: [F, F] [ BBB AA RRR BBB AA RRR B B A A R R B B A A R R BBB AAAA RRR BBB AAAA RRR B B A A R R B B A A R R BBB A A R R, BBB A A R R ]