peps/pep-0233/index.html

206 lines
14 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!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: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="Python Enhancement Proposals (PEPs)">
<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> &raquo; </li>
<li><a href="../pep-0000/">PEP Index</a> &raquo; </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 &lt;paul&#32;&#97;t&#32;prescod.net&gt;</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">&quot;string&quot;</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">&lt;ob&gt;</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">&quot;doc:filename&quot;</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">&quot;xml.dom&quot;</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">-&gt;</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">&quot;intro&quot;</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">&quot;keywords&quot;</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">&quot;syntax&quot;</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">&quot;operators&quot;</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">&quot;builtins&quot;</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">&quot;modules&quot;</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">&quot;copyright&quot;</span> <span class="pre">)</span></code> Who owns Python?</li>
<li><code class="docutils literal notranslate"><span class="pre">help(</span> <span class="pre">&quot;moreinfo&quot;</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">&quot;changes&quot;</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">&quot;extensions&quot;</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">&quot;faq&quot;</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">&quot;ack&quot;</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. Dont 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">2023-09-09 17:39:29 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>