Repr Objects
------------
`Repr' instances provide several members which can be used to provide
size limits for the representations of different object types, and
methods which format specific object types.
`maxlevel'
Depth limit on the creation of recursive representations. The
default is `6'.
`maxdict'
`maxlist'
`maxtuple'
Limits on the number of entries represented for the named object
type. The default for `maxdict' is `4', for the others, `6'.
`maxlong'
Maximum number of characters in the representation for a long
integer. Digits are dropped from the middle. The default is `40'.
`maxstring'
Limit on the number of characters in the representation of the
string. Note that the "normal" representation of the string is
used as the character source: if escape sequences are needed in the
representation, these may be mangled when the representation is
shortened. The default is `30'.
`maxother'
This limit is used to control the size of object types for which no
specific formatting method is available on the `Repr' object. It
is applied in a similar manner as `maxstring'. The default is
`20'.
`repr(obj)'
The equivalent to the built-in `repr()' that uses the formatting
imposed by the instance.
`repr1(obj, level)'
Recursive implementation used by `repr()'. This uses the type of
OBJ to determine which formatting method to call, passing it OBJ
and LEVEL. The type-specific methods should call `repr1()' to
perform recursive formatting, with `LEVEL - 1' for the value of
LEVEL in the recursive call.
`repr_TYPE(obj, level)'
Formatting methods for specific types are implemented as methods
with a name based on the type name. In the method name, TYPE is
replaced by `string.join(string.split(type(OBJ).__name__, '_')'.
Dispatch to these methods is handled by `repr1()'. Type-specific
methods which need to recursively format a value should call
`self.repr1(SUBOBJ, LEVEL - 1)'.