]> granicus.if.org Git - python/commitdiff
Add parameters indent, width and depth to pprint.pprint() and pprint.pformat()
authorWalter Dörwald <walter@livinglogic.de>
Wed, 3 Dec 2003 20:26:05 +0000 (20:26 +0000)
committerWalter Dörwald <walter@livinglogic.de>
Wed, 3 Dec 2003 20:26:05 +0000 (20:26 +0000)
and pass them along to the PrettyPrinter constructor.

Doc/lib/libpprint.tex
Lib/pprint.py
Lib/test/test_pprint.py
Misc/NEWS

index 66f64e26c13e7908b690b90d1d78f2ec390927fb..b1fd9fa01a4808491cdb9bf945dea8e2a70b6028 100644 (file)
@@ -77,17 +77,23 @@ within the constrained width, a best effort will be made.
 
 The \class{PrettyPrinter} class supports several derivative functions:
 
-\begin{funcdesc}{pformat}{object}
-Return the formatted representation of \var{object} as a string.  The
-default parameters for formatting are used.
+\begin{funcdesc}{pformat}{object\optional{, indent\optional{,
+width\optional{, depth}}}}
+Return the formatted representation of \var{object} as a string.  \var{indent},
+\var{width} and \var{depth} will be passed to the \class{PrettyPrinter}
+constructor as formatting parameters.
+\versionchanged[The parameters \var{indent}, \var{width} and \var{depth}
+were added]{2.4}
 \end{funcdesc}
 
-\begin{funcdesc}{pprint}{object\optional{, stream}}
+\begin{funcdesc}{pprint}{object\optional{, stream\optional{,
+indent\optional{, width\optional{, depth}}}}}
 Prints the formatted representation of \var{object} on \var{stream},
 followed by a newline.  If \var{stream} is omitted, \code{sys.stdout}
 is used.  This may be used in the interactive interpreter instead of a
-\keyword{print} statement for inspecting values.  The default
-parameters for formatting are used.
+\keyword{print} statement for inspecting values.    \var{indent},
+\var{width} and \var{depth} will be passed to the \class{PrettyPrinter}
+constructor as formatting parameters.
 
 \begin{verbatim}
 >>> stuff = sys.path[:]
@@ -101,6 +107,8 @@ parameters for formatting are used.
  '/usr/local/lib/python1.5/sharedmodules',
  '/usr/local/lib/python1.5/tkinter']
 \end{verbatim}
+\versionchanged[The parameters \var{indent}, \var{width} and \var{depth}
+were added]{2.4}
 \end{funcdesc}
 
 \begin{funcdesc}{isreadable}{object}
index 19b9661d8ecbad2984d956013fd797bd16b2537a..d938122518a5b40104ec1e7bc713de6dd3d19216 100644 (file)
@@ -48,14 +48,15 @@ _len = len
 _type = type
 
 
-def pprint(object, stream=None):
+def pprint(object, stream=None, indent=1, width=80, depth=None):
     """Pretty-print a Python object to a stream [default is sys.sydout]."""
-    printer = PrettyPrinter(stream=stream)
+    printer = PrettyPrinter(
+        stream=stream, indent=indent, width=width, depth=depth)
     printer.pprint(object)
 
-def pformat(object):
+def pformat(object, indent=1, width=80, depth=None):
     """Format a Python object into a pretty-printed representation."""
-    return PrettyPrinter().pformat(object)
+    return PrettyPrinter(indent=indent, width=width, depth=depth).pformat(object)
 
 def saferepr(object):
     """Version of repr() which can handle recursive data structures."""
index d66b78ac7db6e0228252e6d43a3dac45dba1433a..a61bb663e62a7b9d48ec34c089aeb94338142120 100644 (file)
@@ -154,6 +154,12 @@ class QueryTestCase(unittest.TestCase):
         for type in [tuple, tuple2]:
             self.assertEqual(pprint.pformat(type(o)), exp)
 
+        # indent parameter
+        o = range(100)
+        exp = '[   %s]' % ',\n    '.join(map(str, o))
+        for type in [list, list2]:
+            self.assertEqual(pprint.pformat(type(o), indent=4), exp)
+
     def test_subclassing(self):
         o = {'names with spaces': 'should be presented using repr()',
              'others.should.not.be': 'like.this'}
index c21a6c611b71f7d3c128b7aa589f93fe2835e8b1..78118cf8a3e772f719f098e7ad0e26a7b6ae46b8 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -170,6 +170,9 @@ Extension modules
 Library
 -------
 
+- pprint.pprint() and pprint.pformat() now have additional parameters
+  indent, width and depth.
+
 - Patch #750542: pprint now will pretty print subclasses of list, tuple
   and dict too, as long as they don't overwrite __repr__().