[3.12] gh-108826: Document dis module CLI and rename _test function to main (#108827) (#110681)

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Radislav Chugunov <52372310+chgnrdv@users.noreply.github.com>
This commit is contained in:
Hugo van Kemenade 2023-10-11 22:47:38 +02:00 committed by GitHub
parent 989aa447d7
commit e6c53dd085
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 95 additions and 3 deletions

View file

@ -56,6 +56,8 @@ Additionally, there are **low-level** APIs for
* :ref:`bridge <asyncio-futures>` callback-based libraries and code * :ref:`bridge <asyncio-futures>` callback-based libraries and code
with async/await syntax. with async/await syntax.
.. _asyncio-cli:
You can experiment with an ``asyncio`` concurrent context in the REPL: You can experiment with an ``asyncio`` concurrent context in the REPL:
.. code-block:: pycon .. code-block:: pycon

57
Doc/library/cmdline.rst Normal file
View file

@ -0,0 +1,57 @@
++++++++++++++++++++++++++++++++++++
Modules command-line interface (CLI)
++++++++++++++++++++++++++++++++++++
The following modules have a command-line interface.
* :ref:`ast <ast-cli>`
* :ref:`asyncio <asyncio-cli>`
* :mod:`base64`
* :ref:`calendar <calendar-cli>`
* :mod:`code`
* :ref:`compileall <compileall-cli>`
* :mod:`cProfile`: see :ref:`profile <profile-cli>`
* :ref:`difflib <difflib-interface>`
* :ref:`dis <dis-cli>`
* :mod:`doctest`
* :mod:`!encodings.rot_13`
* :mod:`ensurepip`
* :mod:`filecmp`
* :mod:`fileinput`
* :mod:`ftplib`
* :ref:`gzip <gzip-cli>`
* :ref:`http.server <http-server-cli>`
* :mod:`!idlelib`
* :ref:`inspect <inspect-module-cli>`
* :ref:`json.tool <json-commandline>`
* :mod:`mimetypes`
* :mod:`pdb`
* :mod:`pickle`
* :ref:`pickletools <pickletools-cli>`
* :mod:`platform`
* :mod:`poplib`
* :ref:`profile <profile-cli>`
* :mod:`pstats`
* :ref:`py_compile <py_compile-cli>`
* :mod:`pyclbr`
* :mod:`pydoc`
* :mod:`quopri`
* :mod:`runpy`
* :ref:`site <site-commandline>`
* :ref:`sqlite3 <sqlite3-cli>`
* :ref:`sysconfig <sysconfig-cli>`
* :mod:`tabnanny`
* :ref:`tarfile <tarfile-commandline>`
* :mod:`!this`
* :ref:`timeit <timeit-command-line-interface>`
* :ref:`tokenize <tokenize-cli>`
* :ref:`trace <trace-cli>`
* :mod:`turtledemo`
* :ref:`unittest <unittest-command-line-interface>`
* :ref:`uuid <uuid-cli>`
* :mod:`venv`
* :mod:`webbrowser`
* :ref:`zipapp <zipapp-command-line-interface>`
* :ref:`zipfile <zipfile-commandline>`
See also the :ref:`Python command-line interface <using-on-general>`.

View file

@ -16,6 +16,8 @@ have write permission to the library directories.
.. include:: ../includes/wasm-notavail.rst .. include:: ../includes/wasm-notavail.rst
.. _compileall-cli:
Command-line use Command-line use
---------------- ----------------

View file

@ -63,6 +63,28 @@ the following command can be used to display the disassembly of
(The "2" is a line number). (The "2" is a line number).
.. _dis-cli:
Command-line interface
----------------------
The :mod:`dis` module can be invoked as a script from the command line:
.. code-block:: sh
python -m dis [-h] [infile]
The following options are accepted:
.. program:: dis
.. cmdoption:: -h, --help
Display usage and exit.
If :file:`infile` is specified, its disassembled code will be written to stdout.
Otherwise, disassembly is performed on compiled source code recieved from stdin.
Bytecode analysis Bytecode analysis
----------------- -----------------

View file

@ -250,6 +250,8 @@ Example of how to GZIP compress a binary string::
.. program:: gzip .. program:: gzip
.. _gzip-cli:
Command Line Interface Command Line Interface
---------------------- ----------------------

View file

@ -73,5 +73,6 @@ the `Python Package Index <https://pypi.org>`_.
language.rst language.rst
windows.rst windows.rst
unix.rst unix.rst
cmdline.rst
superseded.rst superseded.rst
security_warnings.rst security_warnings.rst

View file

@ -17,6 +17,8 @@ are useful for Python core developers who are working on the :mod:`pickle`;
ordinary users of the :mod:`pickle` module probably won't find the ordinary users of the :mod:`pickle` module probably won't find the
:mod:`pickletools` module relevant. :mod:`pickletools` module relevant.
.. _pickletools-cli:
Command line usage Command line usage
------------------ ------------------

View file

@ -121,6 +121,8 @@ results to a file by specifying a filename to the :func:`run` function::
The :class:`pstats.Stats` class reads profile results from a file and formats The :class:`pstats.Stats` class reads profile results from a file and formats
them in various ways. them in various ways.
.. _profile-cli:
The files :mod:`cProfile` and :mod:`profile` can also be invoked as a script to The files :mod:`cProfile` and :mod:`profile` can also be invoked as a script to
profile another script. For example:: profile another script. For example::

View file

@ -125,6 +125,7 @@ byte-code cache files in the directory containing the source code.
This option is useful when the ``.pycs`` are kept up to date by some This option is useful when the ``.pycs`` are kept up to date by some
system external to Python like a build system. system external to Python like a build system.
.. _py_compile-cli:
Command-Line Interface Command-Line Interface
---------------------- ----------------------

View file

@ -427,6 +427,7 @@ Other functions
Return the path of :file:`Makefile`. Return the path of :file:`Makefile`.
.. _sysconfig-cli:
Using :mod:`sysconfig` as a script Using :mod:`sysconfig` as a script
---------------------------------- ----------------------------------

View file

@ -790,8 +790,7 @@ class Bytecode:
return output.getvalue() return output.getvalue()
def _test(): def main():
"""Simple test program to disassemble a file."""
import argparse import argparse
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
@ -803,4 +802,4 @@ def _test():
dis(code) dis(code)
if __name__ == "__main__": if __name__ == "__main__":
_test() main()

View file

@ -0,0 +1 @@
:mod:`dis` module command-line interface is now mentioned in documentation.