2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
:mod:`pprint` --- Data pretty printer
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
.. module:: pprint
|
|
|
|
:synopsis: Data pretty printer.
|
|
|
|
.. moduleauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
|
|
|
|
.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
|
|
|
|
|
|
|
|
|
|
|
|
The :mod:`pprint` module provides a capability to "pretty-print" arbitrary
|
|
|
|
Python data structures in a form which can be used as input to the interpreter.
|
|
|
|
If the formatted structures include objects which are not fundamental Python
|
|
|
|
types, the representation may not be loadable. This may be the case if objects
|
|
|
|
such as files, sockets, classes, or instances are included, as well as many
|
|
|
|
other builtin objects which are not representable as Python constants.
|
|
|
|
|
|
|
|
The formatted representation keeps objects on a single line if it can, and
|
|
|
|
breaks them onto multiple lines if they don't fit within the allowed width.
|
|
|
|
Construct :class:`PrettyPrinter` objects explicitly if you need to adjust the
|
|
|
|
width constraint.
|
|
|
|
|
2007-09-01 10:51:09 -03:00
|
|
|
Dictionaries are sorted by key before the display is computed.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
The :mod:`pprint` module defines one class:
|
|
|
|
|
Merged revisions 59605-59624 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59606 | georg.brandl | 2007-12-29 11:57:00 +0100 (Sat, 29 Dec 2007) | 2 lines
Some cleanup in the docs.
........
r59611 | martin.v.loewis | 2007-12-29 19:49:21 +0100 (Sat, 29 Dec 2007) | 2 lines
Bug #1699: Define _BSD_SOURCE only on OpenBSD.
........
r59612 | raymond.hettinger | 2007-12-29 23:09:34 +0100 (Sat, 29 Dec 2007) | 1 line
Simpler documentation for itertools.tee(). Should be backported.
........
r59613 | raymond.hettinger | 2007-12-29 23:16:24 +0100 (Sat, 29 Dec 2007) | 1 line
Improve docs for itertools.groupby(). The use of xrange(0) to create a unique object is less obvious than object().
........
r59620 | christian.heimes | 2007-12-31 15:47:07 +0100 (Mon, 31 Dec 2007) | 3 lines
Added wininst-9.0.exe executable for VS 2008
Integrated bdist_wininst into PCBuild9 directory
........
r59621 | christian.heimes | 2007-12-31 15:51:18 +0100 (Mon, 31 Dec 2007) | 1 line
Moved PCbuild directory to PC/VS7.1
........
r59622 | christian.heimes | 2007-12-31 15:59:26 +0100 (Mon, 31 Dec 2007) | 1 line
Fix paths for build bot
........
r59623 | christian.heimes | 2007-12-31 16:02:41 +0100 (Mon, 31 Dec 2007) | 1 line
Fix paths for build bot, part 2
........
r59624 | christian.heimes | 2007-12-31 16:18:55 +0100 (Mon, 31 Dec 2007) | 1 line
Renamed PCBuild9 directory to PCBuild
........
2007-12-31 12:14:33 -04:00
|
|
|
.. First the implementation class:
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. class:: PrettyPrinter(...)
|
|
|
|
|
|
|
|
Construct a :class:`PrettyPrinter` instance. This constructor understands
|
|
|
|
several keyword parameters. An output stream may be set using the *stream*
|
|
|
|
keyword; the only method used on the stream object is the file protocol's
|
|
|
|
:meth:`write` method. If not specified, the :class:`PrettyPrinter` adopts
|
|
|
|
``sys.stdout``. Three additional parameters may be used to control the
|
|
|
|
formatted representation. The keywords are *indent*, *depth*, and *width*. The
|
|
|
|
amount of indentation added for each recursive level is specified by *indent*;
|
|
|
|
the default is one. Other values can cause output to look a little odd, but can
|
|
|
|
make nesting easier to spot. The number of levels which may be printed is
|
|
|
|
controlled by *depth*; if the data structure being printed is too deep, the next
|
|
|
|
contained level is replaced by ``...``. By default, there is no constraint on
|
|
|
|
the depth of the objects being formatted. The desired output width is
|
|
|
|
constrained using the *width* parameter; the default is 80 characters. If a
|
|
|
|
structure cannot be formatted within the constrained width, a best effort will
|
|
|
|
be made. ::
|
|
|
|
|
Merged revisions 59333-59370 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59343 | georg.brandl | 2007-12-05 08:02:47 +0100 (Wed, 05 Dec 2007) | 2 lines
Fix typo.
........
r59347 | christian.heimes | 2007-12-05 13:31:44 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed quoting and paths in the sqlite project file
........
r59348 | christian.heimes | 2007-12-05 13:45:11 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed error in regrtest. I must have missed the spot.
........
r59350 | christian.heimes | 2007-12-05 13:49:14 +0100 (Wed, 05 Dec 2007) | 1 line
merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError
........
r59352 | christian.heimes | 2007-12-05 13:52:34 +0100 (Wed, 05 Dec 2007) | 1 line
Added msg to Misc/NEWS
........
r59354 | andrew.kuchling | 2007-12-05 14:27:20 +0100 (Wed, 05 Dec 2007) | 1 line
Spelling fix
........
r59356 | georg.brandl | 2007-12-05 18:56:50 +0100 (Wed, 05 Dec 2007) | 3 lines
Add examples to csv, pprint and traceback docs.
Written by Ross for GHOP.
........
r59358 | raymond.hettinger | 2007-12-05 19:11:08 +0100 (Wed, 05 Dec 2007) | 1 line
Error checking was too aggressive (reported by Chris Tismer)
........
r59359 | georg.brandl | 2007-12-05 19:30:48 +0100 (Wed, 05 Dec 2007) | 2 lines
Add examples to re docs. Written for GHOP by Dan Finnie.
........
r59366 | georg.brandl | 2007-12-05 20:49:21 +0100 (Wed, 05 Dec 2007) | 2 lines
Fix markup.
........
r59367 | christian.heimes | 2007-12-05 20:57:54 +0100 (Wed, 05 Dec 2007) | 1 line
Updated documentation and build_tkinter.py script
........
r59368 | georg.brandl | 2007-12-05 21:03:57 +0100 (Wed, 05 Dec 2007) | 2 lines
Another markup fix.
........
r59369 | ronald.oussoren | 2007-12-05 21:07:36 +0100 (Wed, 05 Dec 2007) | 7 lines
This "fixes" compilation issues for the Carbon._OSA module on OSX Leopard
by purging bindings to OSA's debug API's. Those APIs we're completely
unsupported on OSX 10.4 and are no longer available on OSX 10.5.
Note that this patches a generated file. This is somewhat acceptable because
regenerating the file is non-trivial and wouldn't use system headers anyway.
........
r59370 | christian.heimes | 2007-12-05 21:10:38 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed bug #1557 by using popen.communicate() before popen.wait()
........
2007-12-05 16:18:38 -04:00
|
|
|
>>> import pprint
|
|
|
|
>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
|
2007-08-15 11:28:22 -03:00
|
|
|
>>> stuff.insert(0, stuff[:])
|
|
|
|
>>> pp = pprint.PrettyPrinter(indent=4)
|
|
|
|
>>> pp.pprint(stuff)
|
Merged revisions 59333-59370 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59343 | georg.brandl | 2007-12-05 08:02:47 +0100 (Wed, 05 Dec 2007) | 2 lines
Fix typo.
........
r59347 | christian.heimes | 2007-12-05 13:31:44 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed quoting and paths in the sqlite project file
........
r59348 | christian.heimes | 2007-12-05 13:45:11 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed error in regrtest. I must have missed the spot.
........
r59350 | christian.heimes | 2007-12-05 13:49:14 +0100 (Wed, 05 Dec 2007) | 1 line
merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError
........
r59352 | christian.heimes | 2007-12-05 13:52:34 +0100 (Wed, 05 Dec 2007) | 1 line
Added msg to Misc/NEWS
........
r59354 | andrew.kuchling | 2007-12-05 14:27:20 +0100 (Wed, 05 Dec 2007) | 1 line
Spelling fix
........
r59356 | georg.brandl | 2007-12-05 18:56:50 +0100 (Wed, 05 Dec 2007) | 3 lines
Add examples to csv, pprint and traceback docs.
Written by Ross for GHOP.
........
r59358 | raymond.hettinger | 2007-12-05 19:11:08 +0100 (Wed, 05 Dec 2007) | 1 line
Error checking was too aggressive (reported by Chris Tismer)
........
r59359 | georg.brandl | 2007-12-05 19:30:48 +0100 (Wed, 05 Dec 2007) | 2 lines
Add examples to re docs. Written for GHOP by Dan Finnie.
........
r59366 | georg.brandl | 2007-12-05 20:49:21 +0100 (Wed, 05 Dec 2007) | 2 lines
Fix markup.
........
r59367 | christian.heimes | 2007-12-05 20:57:54 +0100 (Wed, 05 Dec 2007) | 1 line
Updated documentation and build_tkinter.py script
........
r59368 | georg.brandl | 2007-12-05 21:03:57 +0100 (Wed, 05 Dec 2007) | 2 lines
Another markup fix.
........
r59369 | ronald.oussoren | 2007-12-05 21:07:36 +0100 (Wed, 05 Dec 2007) | 7 lines
This "fixes" compilation issues for the Carbon._OSA module on OSX Leopard
by purging bindings to OSA's debug API's. Those APIs we're completely
unsupported on OSX 10.4 and are no longer available on OSX 10.5.
Note that this patches a generated file. This is somewhat acceptable because
regenerating the file is non-trivial and wouldn't use system headers anyway.
........
r59370 | christian.heimes | 2007-12-05 21:10:38 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed bug #1557 by using popen.communicate() before popen.wait()
........
2007-12-05 16:18:38 -04:00
|
|
|
[ ['spam', 'eggs', 'lumberjack', 'knights', 'ni'],
|
|
|
|
'spam',
|
|
|
|
'eggs',
|
|
|
|
'lumberjack',
|
|
|
|
'knights',
|
|
|
|
'ni']
|
|
|
|
>>> tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead',
|
|
|
|
... ('parrot', ('fresh fruit',))))))))
|
2007-08-15 11:28:22 -03:00
|
|
|
>>> pp = pprint.PrettyPrinter(depth=6)
|
|
|
|
>>> pp.pprint(tup)
|
Merged revisions 59333-59370 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59343 | georg.brandl | 2007-12-05 08:02:47 +0100 (Wed, 05 Dec 2007) | 2 lines
Fix typo.
........
r59347 | christian.heimes | 2007-12-05 13:31:44 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed quoting and paths in the sqlite project file
........
r59348 | christian.heimes | 2007-12-05 13:45:11 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed error in regrtest. I must have missed the spot.
........
r59350 | christian.heimes | 2007-12-05 13:49:14 +0100 (Wed, 05 Dec 2007) | 1 line
merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError
........
r59352 | christian.heimes | 2007-12-05 13:52:34 +0100 (Wed, 05 Dec 2007) | 1 line
Added msg to Misc/NEWS
........
r59354 | andrew.kuchling | 2007-12-05 14:27:20 +0100 (Wed, 05 Dec 2007) | 1 line
Spelling fix
........
r59356 | georg.brandl | 2007-12-05 18:56:50 +0100 (Wed, 05 Dec 2007) | 3 lines
Add examples to csv, pprint and traceback docs.
Written by Ross for GHOP.
........
r59358 | raymond.hettinger | 2007-12-05 19:11:08 +0100 (Wed, 05 Dec 2007) | 1 line
Error checking was too aggressive (reported by Chris Tismer)
........
r59359 | georg.brandl | 2007-12-05 19:30:48 +0100 (Wed, 05 Dec 2007) | 2 lines
Add examples to re docs. Written for GHOP by Dan Finnie.
........
r59366 | georg.brandl | 2007-12-05 20:49:21 +0100 (Wed, 05 Dec 2007) | 2 lines
Fix markup.
........
r59367 | christian.heimes | 2007-12-05 20:57:54 +0100 (Wed, 05 Dec 2007) | 1 line
Updated documentation and build_tkinter.py script
........
r59368 | georg.brandl | 2007-12-05 21:03:57 +0100 (Wed, 05 Dec 2007) | 2 lines
Another markup fix.
........
r59369 | ronald.oussoren | 2007-12-05 21:07:36 +0100 (Wed, 05 Dec 2007) | 7 lines
This "fixes" compilation issues for the Carbon._OSA module on OSX Leopard
by purging bindings to OSA's debug API's. Those APIs we're completely
unsupported on OSX 10.4 and are no longer available on OSX 10.5.
Note that this patches a generated file. This is somewhat acceptable because
regenerating the file is non-trivial and wouldn't use system headers anyway.
........
r59370 | christian.heimes | 2007-12-05 21:10:38 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed bug #1557 by using popen.communicate() before popen.wait()
........
2007-12-05 16:18:38 -04:00
|
|
|
('spam',
|
|
|
|
('eggs', ('lumberjack', ('knights', ('ni', ('dead', ('parrot', (...,))))))))
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
The :class:`PrettyPrinter` class supports several derivative functions:
|
|
|
|
|
Merged revisions 59605-59624 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59606 | georg.brandl | 2007-12-29 11:57:00 +0100 (Sat, 29 Dec 2007) | 2 lines
Some cleanup in the docs.
........
r59611 | martin.v.loewis | 2007-12-29 19:49:21 +0100 (Sat, 29 Dec 2007) | 2 lines
Bug #1699: Define _BSD_SOURCE only on OpenBSD.
........
r59612 | raymond.hettinger | 2007-12-29 23:09:34 +0100 (Sat, 29 Dec 2007) | 1 line
Simpler documentation for itertools.tee(). Should be backported.
........
r59613 | raymond.hettinger | 2007-12-29 23:16:24 +0100 (Sat, 29 Dec 2007) | 1 line
Improve docs for itertools.groupby(). The use of xrange(0) to create a unique object is less obvious than object().
........
r59620 | christian.heimes | 2007-12-31 15:47:07 +0100 (Mon, 31 Dec 2007) | 3 lines
Added wininst-9.0.exe executable for VS 2008
Integrated bdist_wininst into PCBuild9 directory
........
r59621 | christian.heimes | 2007-12-31 15:51:18 +0100 (Mon, 31 Dec 2007) | 1 line
Moved PCbuild directory to PC/VS7.1
........
r59622 | christian.heimes | 2007-12-31 15:59:26 +0100 (Mon, 31 Dec 2007) | 1 line
Fix paths for build bot
........
r59623 | christian.heimes | 2007-12-31 16:02:41 +0100 (Mon, 31 Dec 2007) | 1 line
Fix paths for build bot, part 2
........
r59624 | christian.heimes | 2007-12-31 16:18:55 +0100 (Mon, 31 Dec 2007) | 1 line
Renamed PCBuild9 directory to PCBuild
........
2007-12-31 12:14:33 -04:00
|
|
|
.. Now the derivative functions:
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
.. function:: pformat(object[, indent[, width[, depth]]])
|
|
|
|
|
|
|
|
Return the formatted representation of *object* as a string. *indent*, *width*
|
|
|
|
and *depth* will be passed to the :class:`PrettyPrinter` constructor as
|
|
|
|
formatting parameters.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: pprint(object[, stream[, indent[, width[, depth]]]])
|
|
|
|
|
|
|
|
Prints the formatted representation of *object* on *stream*, followed by a
|
2007-09-04 04:15:32 -03:00
|
|
|
newline. If *stream* is omitted, ``sys.stdout`` is used. This may be used
|
|
|
|
in the interactive interpreter instead of the :func:`print` function for
|
|
|
|
inspecting values (you can even reassign ``print = pprint.pprint`` for use
|
|
|
|
within a scope). *indent*, *width* and *depth* will be passed to the
|
2007-08-15 11:28:22 -03:00
|
|
|
:class:`PrettyPrinter` constructor as formatting parameters. ::
|
|
|
|
|
Merged revisions 59333-59370 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59343 | georg.brandl | 2007-12-05 08:02:47 +0100 (Wed, 05 Dec 2007) | 2 lines
Fix typo.
........
r59347 | christian.heimes | 2007-12-05 13:31:44 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed quoting and paths in the sqlite project file
........
r59348 | christian.heimes | 2007-12-05 13:45:11 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed error in regrtest. I must have missed the spot.
........
r59350 | christian.heimes | 2007-12-05 13:49:14 +0100 (Wed, 05 Dec 2007) | 1 line
merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError
........
r59352 | christian.heimes | 2007-12-05 13:52:34 +0100 (Wed, 05 Dec 2007) | 1 line
Added msg to Misc/NEWS
........
r59354 | andrew.kuchling | 2007-12-05 14:27:20 +0100 (Wed, 05 Dec 2007) | 1 line
Spelling fix
........
r59356 | georg.brandl | 2007-12-05 18:56:50 +0100 (Wed, 05 Dec 2007) | 3 lines
Add examples to csv, pprint and traceback docs.
Written by Ross for GHOP.
........
r59358 | raymond.hettinger | 2007-12-05 19:11:08 +0100 (Wed, 05 Dec 2007) | 1 line
Error checking was too aggressive (reported by Chris Tismer)
........
r59359 | georg.brandl | 2007-12-05 19:30:48 +0100 (Wed, 05 Dec 2007) | 2 lines
Add examples to re docs. Written for GHOP by Dan Finnie.
........
r59366 | georg.brandl | 2007-12-05 20:49:21 +0100 (Wed, 05 Dec 2007) | 2 lines
Fix markup.
........
r59367 | christian.heimes | 2007-12-05 20:57:54 +0100 (Wed, 05 Dec 2007) | 1 line
Updated documentation and build_tkinter.py script
........
r59368 | georg.brandl | 2007-12-05 21:03:57 +0100 (Wed, 05 Dec 2007) | 2 lines
Another markup fix.
........
r59369 | ronald.oussoren | 2007-12-05 21:07:36 +0100 (Wed, 05 Dec 2007) | 7 lines
This "fixes" compilation issues for the Carbon._OSA module on OSX Leopard
by purging bindings to OSA's debug API's. Those APIs we're completely
unsupported on OSX 10.4 and are no longer available on OSX 10.5.
Note that this patches a generated file. This is somewhat acceptable because
regenerating the file is non-trivial and wouldn't use system headers anyway.
........
r59370 | christian.heimes | 2007-12-05 21:10:38 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed bug #1557 by using popen.communicate() before popen.wait()
........
2007-12-05 16:18:38 -04:00
|
|
|
>>> import pprint
|
|
|
|
>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
|
2007-08-15 11:28:22 -03:00
|
|
|
>>> stuff.insert(0, stuff)
|
|
|
|
>>> pprint.pprint(stuff)
|
|
|
|
[<Recursion on list with id=869440>,
|
|
|
|
'',
|
|
|
|
'/usr/local/lib/python1.5',
|
|
|
|
'/usr/local/lib/python1.5/test',
|
|
|
|
'/usr/local/lib/python1.5/sunos5',
|
|
|
|
'/usr/local/lib/python1.5/sharedmodules',
|
|
|
|
'/usr/local/lib/python1.5/tkinter']
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: isreadable(object)
|
|
|
|
|
|
|
|
.. index:: builtin: eval
|
|
|
|
|
|
|
|
Determine if the formatted representation of *object* is "readable," or can be
|
|
|
|
used to reconstruct the value using :func:`eval`. This always returns ``False``
|
|
|
|
for recursive objects. ::
|
|
|
|
|
|
|
|
>>> pprint.isreadable(stuff)
|
|
|
|
False
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: isrecursive(object)
|
|
|
|
|
|
|
|
Determine if *object* requires a recursive representation.
|
|
|
|
|
|
|
|
One more support function is also defined:
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: saferepr(object)
|
|
|
|
|
|
|
|
Return a string representation of *object*, protected against recursive data
|
|
|
|
structures. If the representation of *object* exposes a recursive entry, the
|
|
|
|
recursive reference will be represented as ``<Recursion on typename with
|
|
|
|
id=number>``. The representation is not otherwise formatted.
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
>>> pprint.saferepr(stuff)
|
|
|
|
"[<Recursion on list with id=682968>, '', '/usr/local/lib/python1.5', '/usr/loca
|
|
|
|
l/lib/python1.5/test', '/usr/local/lib/python1.5/sunos5', '/usr/local/lib/python
|
|
|
|
1.5/sharedmodules', '/usr/local/lib/python1.5/tkinter']"
|
|
|
|
|
|
|
|
|
|
|
|
.. _prettyprinter-objects:
|
|
|
|
|
|
|
|
PrettyPrinter Objects
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
:class:`PrettyPrinter` instances have the following methods:
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: PrettyPrinter.pformat(object)
|
|
|
|
|
|
|
|
Return the formatted representation of *object*. This takes into account the
|
|
|
|
options passed to the :class:`PrettyPrinter` constructor.
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: PrettyPrinter.pprint(object)
|
|
|
|
|
|
|
|
Print the formatted representation of *object* on the configured stream,
|
|
|
|
followed by a newline.
|
|
|
|
|
|
|
|
The following methods provide the implementations for the corresponding
|
|
|
|
functions of the same names. Using these methods on an instance is slightly
|
|
|
|
more efficient since new :class:`PrettyPrinter` objects don't need to be
|
|
|
|
created.
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: PrettyPrinter.isreadable(object)
|
|
|
|
|
|
|
|
.. index:: builtin: eval
|
|
|
|
|
|
|
|
Determine if the formatted representation of the object is "readable," or can be
|
|
|
|
used to reconstruct the value using :func:`eval`. Note that this returns
|
|
|
|
``False`` for recursive objects. If the *depth* parameter of the
|
|
|
|
:class:`PrettyPrinter` is set and the object is deeper than allowed, this
|
|
|
|
returns ``False``.
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: PrettyPrinter.isrecursive(object)
|
|
|
|
|
|
|
|
Determine if the object requires a recursive representation.
|
|
|
|
|
|
|
|
This method is provided as a hook to allow subclasses to modify the way objects
|
|
|
|
are converted to strings. The default implementation uses the internals of the
|
|
|
|
:func:`saferepr` implementation.
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: PrettyPrinter.format(object, context, maxlevels, level)
|
|
|
|
|
|
|
|
Returns three values: the formatted version of *object* as a string, a flag
|
|
|
|
indicating whether the result is readable, and a flag indicating whether
|
|
|
|
recursion was detected. The first argument is the object to be presented. The
|
|
|
|
second is a dictionary which contains the :func:`id` of objects that are part of
|
|
|
|
the current presentation context (direct and indirect containers for *object*
|
|
|
|
that are affecting the presentation) as the keys; if an object needs to be
|
|
|
|
presented which is already represented in *context*, the third return value
|
|
|
|
should be ``True``. Recursive calls to the :meth:`format` method should add
|
|
|
|
additional entries for containers to this dictionary. The third argument,
|
|
|
|
*maxlevels*, gives the requested limit to recursion; this will be ``0`` if there
|
|
|
|
is no requested limit. This argument should be passed unmodified to recursive
|
|
|
|
calls. The fourth argument, *level*, gives the current level; recursive calls
|
|
|
|
should be passed a value less than that of the current call.
|
Merged revisions 59333-59370 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59343 | georg.brandl | 2007-12-05 08:02:47 +0100 (Wed, 05 Dec 2007) | 2 lines
Fix typo.
........
r59347 | christian.heimes | 2007-12-05 13:31:44 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed quoting and paths in the sqlite project file
........
r59348 | christian.heimes | 2007-12-05 13:45:11 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed error in regrtest. I must have missed the spot.
........
r59350 | christian.heimes | 2007-12-05 13:49:14 +0100 (Wed, 05 Dec 2007) | 1 line
merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError
........
r59352 | christian.heimes | 2007-12-05 13:52:34 +0100 (Wed, 05 Dec 2007) | 1 line
Added msg to Misc/NEWS
........
r59354 | andrew.kuchling | 2007-12-05 14:27:20 +0100 (Wed, 05 Dec 2007) | 1 line
Spelling fix
........
r59356 | georg.brandl | 2007-12-05 18:56:50 +0100 (Wed, 05 Dec 2007) | 3 lines
Add examples to csv, pprint and traceback docs.
Written by Ross for GHOP.
........
r59358 | raymond.hettinger | 2007-12-05 19:11:08 +0100 (Wed, 05 Dec 2007) | 1 line
Error checking was too aggressive (reported by Chris Tismer)
........
r59359 | georg.brandl | 2007-12-05 19:30:48 +0100 (Wed, 05 Dec 2007) | 2 lines
Add examples to re docs. Written for GHOP by Dan Finnie.
........
r59366 | georg.brandl | 2007-12-05 20:49:21 +0100 (Wed, 05 Dec 2007) | 2 lines
Fix markup.
........
r59367 | christian.heimes | 2007-12-05 20:57:54 +0100 (Wed, 05 Dec 2007) | 1 line
Updated documentation and build_tkinter.py script
........
r59368 | georg.brandl | 2007-12-05 21:03:57 +0100 (Wed, 05 Dec 2007) | 2 lines
Another markup fix.
........
r59369 | ronald.oussoren | 2007-12-05 21:07:36 +0100 (Wed, 05 Dec 2007) | 7 lines
This "fixes" compilation issues for the Carbon._OSA module on OSX Leopard
by purging bindings to OSA's debug API's. Those APIs we're completely
unsupported on OSX 10.4 and are no longer available on OSX 10.5.
Note that this patches a generated file. This is somewhat acceptable because
regenerating the file is non-trivial and wouldn't use system headers anyway.
........
r59370 | christian.heimes | 2007-12-05 21:10:38 +0100 (Wed, 05 Dec 2007) | 1 line
Fixed bug #1557 by using popen.communicate() before popen.wait()
........
2007-12-05 16:18:38 -04:00
|
|
|
|
|
|
|
|
|
|
|
.. _pprint-example:
|
|
|
|
|
|
|
|
pprint Example
|
|
|
|
--------------
|
|
|
|
|
|
|
|
This example demonstrates several uses of the :func:`pprint` function and its parameters.
|
|
|
|
|
|
|
|
>>> import pprint
|
|
|
|
>>> tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead',
|
|
|
|
... ('parrot', ('fresh fruit',))))))))
|
|
|
|
>>> stuff = ['a' * 10, tup, ['a' * 30, 'b' * 30], ['c' * 20, 'd' * 20]]
|
|
|
|
>>> pprint.pprint(stuff)
|
|
|
|
['aaaaaaaaaa',
|
|
|
|
('spam',
|
|
|
|
('eggs',
|
|
|
|
('lumberjack',
|
|
|
|
('knights', ('ni', ('dead', ('parrot', ('fresh fruit',)))))))),
|
|
|
|
['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'],
|
|
|
|
['cccccccccccccccccccc', 'dddddddddddddddddddd']]
|
|
|
|
>>> pprint.pprint(stuff, depth=3)
|
|
|
|
['aaaaaaaaaa',
|
|
|
|
('spam', ('eggs', ('lumberjack', (...)))),
|
|
|
|
['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'],
|
|
|
|
['cccccccccccccccccccc', 'dddddddddddddddddddd']]
|
|
|
|
>>> pprint.pprint(stuff, width=60)
|
|
|
|
['aaaaaaaaaa',
|
|
|
|
('spam',
|
|
|
|
('eggs',
|
|
|
|
('lumberjack',
|
|
|
|
('knights',
|
|
|
|
('ni', ('dead', ('parrot', ('fresh fruit',)))))))),
|
|
|
|
['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
|
|
|
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'],
|
|
|
|
['cccccccccccccccccccc', 'dddddddddddddddddddd']]
|
|
|
|
|