##
3.25.1 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)`".