Skip to content

Commit 0170333

Browse files
committed
pythonGH-115986 Doc: change 'pprint' module documentation's structure
Ensure `pp` and `pprint` are positioned prominently at the top of the page.
1 parent 5a1559d commit 0170333

File tree

1 file changed

+89
-84
lines changed

1 file changed

+89
-84
lines changed

Doc/library/pprint.rst

Lines changed: 89 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,95 @@ Dictionaries are sorted by key before the display is computed.
3131
.. versionchanged:: 3.10
3232
Added support for pretty-printing :class:`dataclasses.dataclass`.
3333

34-
The :mod:`pprint` module defines one class:
34+
.. _functions:
35+
36+
Functions
37+
---------
38+
39+
.. function:: pp(object, *args, sort_dicts=False, **kwargs)
40+
41+
Prints the formatted representation of *object* followed by a newline.
42+
If *sort_dicts* is false (the default), dictionaries will be displayed with
43+
their keys in insertion order, otherwise the dict keys will be sorted.
44+
*args* and *kwargs* will be passed to :func:`pprint` as formatting
45+
parameters.
46+
47+
.. versionadded:: 3.8
48+
49+
50+
.. function:: pprint(object, stream=None, indent=1, width=80, depth=None, *, \
51+
compact=False, sort_dicts=True, underscore_numbers=False)
52+
53+
Prints the formatted representation of *object* on *stream*, followed by a
54+
newline. If *stream* is ``None``, ``sys.stdout`` is used. This may be used
55+
in the interactive interpreter instead of the :func:`print` function for
56+
inspecting values (you can even reassign ``print = pprint.pprint`` for use
57+
within a scope).
58+
59+
The configuration parameters *stream*, *indent*, *width*, *depth*,
60+
*compact*, *sort_dicts* and *underscore_numbers* are passed to the
61+
:class:`PrettyPrinter` constructor and their meanings are as
62+
described in its documentation above.
63+
64+
>>> import pprint
65+
>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
66+
>>> stuff.insert(0, stuff)
67+
>>> pprint.pprint(stuff)
68+
[<Recursion on list with id=...>,
69+
'spam',
70+
'eggs',
71+
'lumberjack',
72+
'knights',
73+
'ni']
74+
75+
.. function:: pformat(object, indent=1, width=80, depth=None, *, \
76+
compact=False, sort_dicts=True, underscore_numbers=False)
77+
78+
Return the formatted representation of *object* as a string. *indent*,
79+
*width*, *depth*, *compact*, *sort_dicts* and *underscore_numbers* are
80+
passed to the :class:`PrettyPrinter` constructor as formatting parameters
81+
and their meanings are as described in its documentation above.
82+
83+
84+
.. function:: isreadable(object)
85+
86+
.. index:: pair: built-in function; eval
87+
88+
Determine if the formatted representation of *object* is "readable", or can be
89+
used to reconstruct the value using :func:`eval`. This always returns ``False``
90+
for recursive objects.
91+
92+
>>> pprint.isreadable(stuff)
93+
False
94+
95+
96+
.. function:: isrecursive(object)
97+
98+
Determine if *object* requires a recursive representation. This function is
99+
subject to the same limitations as noted in :func:`saferepr` below and may raise an
100+
:exc:`RecursionError` if it fails to detect a recursive object.
101+
102+
103+
One more support function is also defined:
104+
105+
.. function:: saferepr(object)
106+
107+
Return a string representation of *object*, protected against recursion in
108+
some common data structures, namely instances of :class:`dict`, :class:`list`
109+
and :class:`tuple` or subclasses whose ``__repr__`` has not been overridden. If the
110+
representation of object exposes a recursive entry, the recursive reference
111+
will be represented as ``<Recursion on typename with id=number>``. The
112+
representation is not otherwise formatted.
113+
114+
>>> pprint.saferepr(stuff)
115+
"[<Recursion on list with id=...>, 'spam', 'eggs', 'lumberjack', 'knights', 'ni']"
116+
117+
.. _prettyprinter-objects:
118+
119+
PrettyPrinter Objects
120+
---------------------
121+
122+
This module defines one class:
35123

36124
.. First the implementation class:
37125
@@ -112,89 +200,6 @@ The :mod:`pprint` module defines one class:
112200
>>> pp.pprint(tup)
113201
('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', (...)))))))
114202

115-
.. function:: pformat(object, indent=1, width=80, depth=None, *, \
116-
compact=False, sort_dicts=True, underscore_numbers=False)
117-
118-
Return the formatted representation of *object* as a string. *indent*,
119-
*width*, *depth*, *compact*, *sort_dicts* and *underscore_numbers* are
120-
passed to the :class:`PrettyPrinter` constructor as formatting parameters
121-
and their meanings are as described in its documentation above.
122-
123-
124-
.. function:: pp(object, *args, sort_dicts=False, **kwargs)
125-
126-
Prints the formatted representation of *object* followed by a newline.
127-
If *sort_dicts* is false (the default), dictionaries will be displayed with
128-
their keys in insertion order, otherwise the dict keys will be sorted.
129-
*args* and *kwargs* will be passed to :func:`pprint` as formatting
130-
parameters.
131-
132-
.. versionadded:: 3.8
133-
134-
135-
.. function:: pprint(object, stream=None, indent=1, width=80, depth=None, *, \
136-
compact=False, sort_dicts=True, underscore_numbers=False)
137-
138-
Prints the formatted representation of *object* on *stream*, followed by a
139-
newline. If *stream* is ``None``, ``sys.stdout`` is used. This may be used
140-
in the interactive interpreter instead of the :func:`print` function for
141-
inspecting values (you can even reassign ``print = pprint.pprint`` for use
142-
within a scope).
143-
144-
The configuration parameters *stream*, *indent*, *width*, *depth*,
145-
*compact*, *sort_dicts* and *underscore_numbers* are passed to the
146-
:class:`PrettyPrinter` constructor and their meanings are as
147-
described in its documentation above.
148-
149-
>>> import pprint
150-
>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
151-
>>> stuff.insert(0, stuff)
152-
>>> pprint.pprint(stuff)
153-
[<Recursion on list with id=...>,
154-
'spam',
155-
'eggs',
156-
'lumberjack',
157-
'knights',
158-
'ni']
159-
160-
.. function:: isreadable(object)
161-
162-
.. index:: pair: built-in function; eval
163-
164-
Determine if the formatted representation of *object* is "readable", or can be
165-
used to reconstruct the value using :func:`eval`. This always returns ``False``
166-
for recursive objects.
167-
168-
>>> pprint.isreadable(stuff)
169-
False
170-
171-
172-
.. function:: isrecursive(object)
173-
174-
Determine if *object* requires a recursive representation. This function is
175-
subject to the same limitations as noted in :func:`saferepr` below and may raise an
176-
:exc:`RecursionError` if it fails to detect a recursive object.
177-
178-
179-
One more support function is also defined:
180-
181-
.. function:: saferepr(object)
182-
183-
Return a string representation of *object*, protected against recursion in
184-
some common data structures, namely instances of :class:`dict`, :class:`list`
185-
and :class:`tuple` or subclasses whose ``__repr__`` has not been overridden. If the
186-
representation of object exposes a recursive entry, the recursive reference
187-
will be represented as ``<Recursion on typename with id=number>``. The
188-
representation is not otherwise formatted.
189-
190-
>>> pprint.saferepr(stuff)
191-
"[<Recursion on list with id=...>, 'spam', 'eggs', 'lumberjack', 'knights', 'ni']"
192-
193-
194-
.. _prettyprinter-objects:
195-
196-
PrettyPrinter Objects
197-
---------------------
198203

199204
:class:`PrettyPrinter` instances have the following methods:
200205

0 commit comments

Comments
 (0)