CINXE.COM
PEP 233 – Python Online Help | peps.python.org
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="color-scheme" content="light dark"> <title>PEP 233 – Python Online Help | peps.python.org</title> <link rel="shortcut icon" href="../_static/py.png"> <link rel="canonical" href="https://peps.python.org/pep-0233/"> <link rel="stylesheet" href="../_static/style.css" type="text/css"> <link rel="stylesheet" href="../_static/mq.css" type="text/css"> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" media="(prefers-color-scheme: light)" id="pyg-light"> <link rel="stylesheet" href="../_static/pygments_dark.css" type="text/css" media="(prefers-color-scheme: dark)" id="pyg-dark"> <link rel="alternate" type="application/rss+xml" title="Latest PEPs" href="https://peps.python.org/peps.rss"> <meta property="og:title" content='PEP 233 – Python Online Help | peps.python.org'> <meta property="og:description" content="This PEP describes a command-line driven online help facility for Python. The facility should be able to build on existing documentation facilities such as the Python documentation and docstrings. It should also be extensible for new types and modules."> <meta property="og:type" content="website"> <meta property="og:url" content="https://peps.python.org/pep-0233/"> <meta property="og:site_name" content="Python Enhancement Proposals (PEPs)"> <meta property="og:image" content="https://peps.python.org/_static/og-image.png"> <meta property="og:image:alt" content="Python PEPs"> <meta property="og:image:width" content="200"> <meta property="og:image:height" content="200"> <meta name="description" content="This PEP describes a command-line driven online help facility for Python. The facility should be able to build on existing documentation facilities such as the Python documentation and docstrings. It should also be extensible for new types and modules."> <meta name="theme-color" content="#3776ab"> </head> <body> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="svg-sun-half" viewBox="0 0 24 24" pointer-events="all"> <title>Following system colour scheme</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="9"></circle> <path d="M12 3v18m0-12l4.65-4.65M12 14.3l7.37-7.37M12 19.6l8.85-8.85"></path> </svg> </symbol> <symbol id="svg-moon" viewBox="0 0 24 24" pointer-events="all"> <title>Selected dark colour scheme</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path> </svg> </symbol> <symbol id="svg-sun" viewBox="0 0 24 24" pointer-events="all"> <title>Selected light colour scheme</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> </symbol> </svg> <script> document.documentElement.dataset.colour_scheme = localStorage.getItem("colour_scheme") || "auto" </script> <section id="pep-page-section"> <header> <h1>Python Enhancement Proposals</h1> <ul class="breadcrumbs"> <li><a href="https://www.python.org/" title="The Python Programming Language">Python</a> » </li> <li><a href="../pep-0000/">PEP Index</a> » </li> <li>PEP 233</li> </ul> <button id="colour-scheme-cycler" onClick="setColourScheme(nextColourScheme())"> <svg aria-hidden="true" class="colour-scheme-icon-when-auto"><use href="#svg-sun-half"></use></svg> <svg aria-hidden="true" class="colour-scheme-icon-when-dark"><use href="#svg-moon"></use></svg> <svg aria-hidden="true" class="colour-scheme-icon-when-light"><use href="#svg-sun"></use></svg> <span class="visually-hidden">Toggle light / dark / auto colour theme</span> </button> </header> <article> <section id="pep-content"> <h1 class="page-title">PEP 233 – Python Online Help</h1> <dl class="rfc2822 field-list simple"> <dt class="field-odd">Author<span class="colon">:</span></dt> <dd class="field-odd">Paul Prescod <paul at prescod.net></dd> <dt class="field-even">Status<span class="colon">:</span></dt> <dd class="field-even"><abbr title="Inactive draft that may be taken up again at a later time">Deferred</abbr></dd> <dt class="field-odd">Type<span class="colon">:</span></dt> <dd class="field-odd"><abbr title="Normative PEP with a new feature for Python, implementation change for CPython or interoperability standard for the ecosystem">Standards Track</abbr></dd> <dt class="field-even">Created<span class="colon">:</span></dt> <dd class="field-even">11-Dec-2000</dd> <dt class="field-odd">Python-Version<span class="colon">:</span></dt> <dd class="field-odd">2.1</dd> <dt class="field-even">Post-History<span class="colon">:</span></dt> <dd class="field-even"><p></p></dd> </dl> <hr class="docutils" /> <section id="contents"> <details><summary>Table of Contents</summary><ul class="simple"> <li><a class="reference internal" href="#abstract">Abstract</a></li> <li><a class="reference internal" href="#interactive-use">Interactive use</a></li> <li><a class="reference internal" href="#implementation">Implementation</a></li> <li><a class="reference internal" href="#built-in-topics">Built-in Topics</a></li> <li><a class="reference internal" href="#security-issues">Security Issues</a></li> </ul> </details></section> <section id="abstract"> <h2><a class="toc-backref" href="#abstract" role="doc-backlink">Abstract</a></h2> <p>This PEP describes a command-line driven online help facility for Python. The facility should be able to build on existing documentation facilities such as the Python documentation and docstrings. It should also be extensible for new types and modules.</p> </section> <section id="interactive-use"> <h2><a class="toc-backref" href="#interactive-use" role="doc-backlink">Interactive use</a></h2> <p>Simply typing <code class="docutils literal notranslate"><span class="pre">help</span></code> describes the help function (through <code class="docutils literal notranslate"><span class="pre">repr()</span></code> overloading).</p> <p><code class="docutils literal notranslate"><span class="pre">help</span></code> can also be used as a function.</p> <p>The function takes the following forms of input:</p> <ul class="simple"> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"string"</span> <span class="pre">)</span></code> – built-in topic or global</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre"><ob></span> <span class="pre">)</span></code> – docstring from object or type</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"doc:filename"</span> <span class="pre">)</span></code> – filename from Python documentation</li> </ul> <p>If you ask for a global, it can be a fully-qualified name, such as:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">help</span><span class="p">(</span><span class="s2">"xml.dom"</span><span class="p">)</span> </pre></div> </div> <p>You can also use the facility from a command-line:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="o">--</span><span class="n">help</span> <span class="k">if</span> </pre></div> </div> <p>In either situation, the output does paging similar to the <code class="docutils literal notranslate"><span class="pre">more</span></code> command.</p> </section> <section id="implementation"> <h2><a class="toc-backref" href="#implementation" role="doc-backlink">Implementation</a></h2> <p>The help function is implemented in an <code class="docutils literal notranslate"><span class="pre">onlinehelp</span></code> module which is demand-loaded.</p> <p>There should be options for fetching help information from environments other than the command line through the <code class="docutils literal notranslate"><span class="pre">onlinehelp</span></code> module:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">onlinehelp</span><span class="o">.</span><span class="n">gethelp</span><span class="p">(</span><span class="n">object_or_string</span><span class="p">)</span> <span class="o">-></span> <span class="n">string</span> </pre></div> </div> <p>It should also be possible to override the help display function by assigning to <code class="docutils literal notranslate"><span class="pre">onlinehelp.displayhelp(object_or_string)</span></code>.</p> <p>The module should be able to extract module information from either the HTML or LaTeX versions of the Python documentation. Links should be accommodated in a “lynx-like” manner.</p> <p>Over time, it should also be able to recognize when docstrings are in “special” syntaxes like structured text, HTML and LaTeX and decode them appropriately.</p> <p>A prototype implementation is available with the Python source distribution as <code class="docutils literal notranslate"><span class="pre">nondist/sandbox/doctools/onlinehelp.py</span></code>.</p> </section> <section id="built-in-topics"> <h2><a class="toc-backref" href="#built-in-topics" role="doc-backlink">Built-in Topics</a></h2> <ul class="simple"> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"intro"</span> <span class="pre">)</span></code> – What is Python? Read this first!</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"keywords"</span> <span class="pre">)</span></code> – What are the keywords?</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"syntax"</span> <span class="pre">)</span></code> – What is the overall syntax?</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"operators"</span> <span class="pre">)</span></code> – What operators are available?</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"builtins"</span> <span class="pre">)</span></code> – What functions, types, etc. are built-in?</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"modules"</span> <span class="pre">)</span></code> – What modules are in the standard library?</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"copyright"</span> <span class="pre">)</span></code> – Who owns Python?</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"moreinfo"</span> <span class="pre">)</span></code> – Where is there more information?</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"changes"</span> <span class="pre">)</span></code> – What changed in Python 2.0?</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"extensions"</span> <span class="pre">)</span></code> – What extensions are installed?</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"faq"</span> <span class="pre">)</span></code> – What questions are frequently asked?</li> <li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">"ack"</span> <span class="pre">)</span></code> – Who has done work on Python lately?</li> </ul> </section> <section id="security-issues"> <h2><a class="toc-backref" href="#security-issues" role="doc-backlink">Security Issues</a></h2> <p>This module will attempt to import modules with the same names as requested topics. Don’t use the modules if you are not confident that everything in your <code class="docutils literal notranslate"><span class="pre">PYTHONPATH</span></code> is from a trusted source.</p> </section> </section> <hr class="docutils" /> <p>Source: <a class="reference external" href="https://github.com/python/peps/blob/main/peps/pep-0233.rst">https://github.com/python/peps/blob/main/peps/pep-0233.rst</a></p> <p>Last modified: <a class="reference external" href="https://github.com/python/peps/commits/main/peps/pep-0233.rst">2025-02-01 08:55:40 GMT</a></p> </article> <nav id="pep-sidebar"> <h2>Contents</h2> <ul> <li><a class="reference internal" href="#abstract">Abstract</a></li> <li><a class="reference internal" href="#interactive-use">Interactive use</a></li> <li><a class="reference internal" href="#implementation">Implementation</a></li> <li><a class="reference internal" href="#built-in-topics">Built-in Topics</a></li> <li><a class="reference internal" href="#security-issues">Security Issues</a></li> </ul> <br> <a id="source" href="https://github.com/python/peps/blob/main/peps/pep-0233.rst">Page Source (GitHub)</a> </nav> </section> <script src="../_static/colour_scheme.js"></script> <script src="../_static/wrap_tables.js"></script> <script src="../_static/sticky_banner.js"></script> </body> </html>