summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2010-09-10 14:08:04 (GMT)
committerNick Coghlan <ncoghlan@gmail.com>2010-09-10 14:08:04 (GMT)
commite8814fbb322ee6555a96dd8e173259c9c3b6a01a (patch)
tree8b1dde00a7588fc760ec576b7e185ad954df8615
parentc02adca9996026c9f84a0e9079042dad27e3738a (diff)
downloadcpython-e8814fbb322ee6555a96dd8e173259c9c3b6a01a.zip
cpython-e8814fbb322ee6555a96dd8e173259c9c3b6a01a.tar.gz
cpython-e8814fbb322ee6555a96dd8e173259c9c3b6a01a.tar.bz2
As per python-dev discussion with Eli, properly document and publish dis.show_code
-rw-r--r--Doc/library/dis.rst12
-rw-r--r--Lib/dis.py8
2 files changed, 13 insertions, 7 deletions
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index a377fc8..fb62ec1 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -36,7 +36,7 @@ the following command can be used to get the disassembly of :func:`myfunc`::
The :mod:`dis` module defines the following functions and constants:
-.. function:: code_info(x=None)
+.. function:: code_info(x)
Return a formatted multi-line string with detailed code object information
for the supplied function, method, source code string or code object.
@@ -48,6 +48,16 @@ The :mod:`dis` module defines the following functions and constants:
.. versionadded:: 3.2
+.. function:: show_code(x)
+
+ Print detailed code object information for the supplied function, method,
+ source code string or code object to stdout.
+
+ This is a convenient shorthand for ``print(code_info(x))``, intended for
+ interactive exploration at the interpreter prompt.
+
+ .. versionadded:: 3.2
+
.. function:: dis(x=None)
Disassemble the *x* object. *x* can denote either a module, a class, a
diff --git a/Lib/dis.py b/Lib/dis.py
index 1f56014..f64bae6 100644
--- a/Lib/dis.py
+++ b/Lib/dis.py
@@ -7,7 +7,7 @@ from opcode import *
from opcode import __all__ as _opcodes_all
__all__ = ["code_info", "dis", "disassemble", "distb", "disco",
- "findlinestarts", "findlabels"] + _opcodes_all
+ "findlinestarts", "findlabels", "show_code"] + _opcodes_all
del _opcodes_all
_have_code = (types.MethodType, types.FunctionType, types.CodeType, type)
@@ -140,12 +140,8 @@ def _format_code_info(co):
lines.append("%4d: %s" % i_n)
return "\n".join(lines)
-# show_code is deliberately undocumented and left out of __all__,
-# since it doesn't offer any real benefit over code_info() above
-# It is only retained because it already existed and was not
-# marked as private in previous versions of Python
def show_code(co):
- """Show details about a code object."""
+ """Print details of methods, functions, or code to stdout."""
print(code_info(co))
def disassemble(co, lasti=-1):