Generate docs for 0.4.0

It is better to have docs built in the repo so that building
scm version doesn't fail with 'missing doc directory' error.
This commit is contained in:
mpeterv
2015-06-20 18:19:50 +03:00
parent 1210792381
commit af793c49f3
59 changed files with 7055 additions and 1 deletions

299
doc/callbacks.html Normal file
View File

@@ -0,0 +1,299 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Callbacks &mdash; argparse 0.4.0 tutorial</title>
<link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="top" title="argparse 0.4.0 tutorial" href="index.html"/>
<link rel="next" title="Miscellaneous" href="misc.html"/>
<link rel="prev" title="Default values" href="defaults.html"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-nav-search">
<a href="index.html" class="fa fa-home"> argparse</a>
<div role="search">
<form id ="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="parsers.html">Creating and using parsers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="parsers.html#parsing-command-line-arguments">Parsing command line arguments</a></li>
<li class="toctree-l2"><a class="reference internal" href="parsers.html#configuring-parsers">Configuring parsers</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="arguments.html">Adding and configuring arguments</a><ul>
<li class="toctree-l2"><a class="reference internal" href="arguments.html#setting-number-of-consumed-arguments">Setting number of consumed arguments</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="options.html">Adding and configuring options</a><ul>
<li class="toctree-l2"><a class="reference internal" href="options.html#flags">Flags</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html#control-characters">Control characters</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html#setting-number-of-consumed-arguments">Setting number of consumed arguments</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html#setting-number-of-invocations">Setting number of invocations</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="mutexes.html">Mutually exclusive groups</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Adding and configuring commands</a><ul>
<li class="toctree-l2"><a class="reference internal" href="commands.html#adding-elements-to-commands">Adding elements to commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#making-a-command-optional">Making a command optional</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="defaults.html">Default values</a><ul>
<li class="toctree-l2"><a class="reference internal" href="defaults.html#default-mode">Default mode</a></li>
</ul>
</li>
<li class="toctree-l1 current"><a class="current reference internal" href="">Callbacks</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#converters">Converters</a></li>
<li class="toctree-l2"><a class="reference internal" href="#actions">Actions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="misc.html">Miscellaneous</a><ul>
<li class="toctree-l2"><a class="reference internal" href="misc.html#generating-and-overwriting-help-and-usage-messages">Generating and overwriting help and usage messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="misc.html#overwriting-default-help-option">Overwriting default help option</a></li>
<li class="toctree-l2"><a class="reference internal" href="misc.html#setting-argument-placeholder">Setting argument placeholder</a></li>
<li class="toctree-l2"><a class="reference internal" href="misc.html#disabling-option-handling">Disabling option handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="misc.html#prohibiting-overuse-of-options">Prohibiting overuse of options</a></li>
<li class="toctree-l2"><a class="reference internal" href="misc.html#parsing-algorithm">Parsing algorithm</a></li>
<li class="toctree-l2"><a class="reference internal" href="misc.html#property-lists">Property lists</a></li>
</ul>
</li>
</ul>
</div>
&nbsp;
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">argparse</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Callbacks</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/callbacks.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main">
<div class="section" id="callbacks">
<h1>Callbacks<a class="headerlink" href="#callbacks" title="Permalink to this headline"></a></h1>
<div class="section" id="converters">
<h2>Converters<a class="headerlink" href="#converters" title="Permalink to this headline"></a></h2>
<p>argparse can perform automatic validation and conversion on arguments. If <tt class="docutils literal"><span class="pre">convert</span></tt> property of an element is a function, it will be applied to all the arguments passed to it. The function should return <tt class="docutils literal"><span class="pre">nil</span></tt> and, optionally, an error message if conversion failed. Standard <tt class="docutils literal"><span class="pre">tonumber</span></tt> and <tt class="docutils literal"><span class="pre">io.open</span></tt> functions work exactly like that.</p>
<div class="highlight-lua"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4</pre></div></td><td class="code"><div class="highlight"><pre><span class="n">parser</span><span class="p">:</span><span class="n">argument</span> <span class="s2">&quot;</span><span class="s">input&quot;</span>
<span class="p">:</span><span class="n">convert</span><span class="p">(</span><span class="nb">io.open</span><span class="p">)</span>
<span class="n">parser</span><span class="p">:</span><span class="n">option</span> <span class="s2">&quot;</span><span class="s">-t --times&quot;</span>
<span class="p">:</span><span class="n">convert</span><span class="p">(</span><span class="nb">tonumber</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>
<div class="highlight-python"><div class="highlight"><pre>$ lua script.lua foo.txt -t5
</pre></div>
</div>
<div class="highlight-lua"><div class="highlight"><pre><span class="p">{</span>
<span class="n">input</span> <span class="o">=</span> <span class="n">file_object</span><span class="p">,</span>
<span class="n">times</span> <span class="o">=</span> <span class="mi">5</span>
<span class="p">}</span>
</pre></div>
</div>
<div class="highlight-python"><div class="highlight"><pre>$ lua script.lua nonexistent.txt
</pre></div>
</div>
<div class="highlight-python"><div class="highlight"><pre>Usage: script.lua [-t &lt;times&gt;] [-h] &lt;input&gt;
Error: nonexistent.txt: No such file or directory
</pre></div>
</div>
<div class="highlight-python"><div class="highlight"><pre>$ lua script.lua foo.txt --times=many
</pre></div>
</div>
<div class="highlight-python"><div class="highlight"><pre>Usage: script.lua [-t &lt;times&gt;] [-h] &lt;input&gt;
Error: malformed argument &#39;many&#39;
</pre></div>
</div>
<div class="section" id="table-converters">
<h3>Table converters<a class="headerlink" href="#table-converters" title="Permalink to this headline"></a></h3>
<p>If convert property of an element is a table, arguments passed to it will be used as keys. If a key is missing, an error is raised.</p>
<div class="highlight-lua"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span class="n">parser</span><span class="p">:</span><span class="n">argument</span> <span class="s2">&quot;</span><span class="s">choice&quot;</span>
<span class="p">:</span><span class="n">convert</span> <span class="p">{</span>
<span class="n">foo</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="s">Something foo-related&quot;</span><span class="p">,</span>
<span class="n">bar</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="s">Something bar-related&quot;</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
<div class="highlight-python"><div class="highlight"><pre>$ lua script.lua bar
</pre></div>
</div>
<div class="highlight-lua"><div class="highlight"><pre><span class="p">{</span>
<span class="n">choice</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="s">Something bar-related&quot;</span>
<span class="p">}</span>
</pre></div>
</div>
<div class="highlight-python"><div class="highlight"><pre>$ lua script.lua baz
</pre></div>
</div>
<div class="highlight-python"><div class="highlight"><pre>Usage: script.lua [-h] &lt;choice&gt;
Error: malformed argument &#39;baz&#39;
</pre></div>
</div>
</div>
</div>
<div class="section" id="actions">
<h2>Actions<a class="headerlink" href="#actions" title="Permalink to this headline"></a></h2>
<p>argparse can trigger a callback when an option or a command is encountered. The callback can be set using <tt class="docutils literal"><span class="pre">action</span></tt> property. Actions are called regardless of whether the rest of command line arguments are correct.</p>
<div class="highlight-lua"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7</pre></div></td><td class="code"><div class="highlight"><pre><span class="n">parser</span><span class="p">:</span><span class="n">argument</span> <span class="s2">&quot;</span><span class="s">required_argument&quot;</span>
<span class="n">parser</span><span class="p">:</span><span class="n">flag</span><span class="p">(</span><span class="s2">&quot;</span><span class="s">-v --version&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="s">Show version info and exit.&quot;</span><span class="p">)</span>
<span class="p">:</span><span class="n">action</span><span class="p">(</span><span class="k">function</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="s">script.lua v1.0.0&quot;</span><span class="p">)</span>
<span class="nb">os.exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="k">end</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>
<div class="highlight-python"><div class="highlight"><pre>$ lua script.lua -v
</pre></div>
</div>
<div class="highlight-python"><div class="highlight"><pre>script.lua v1.0.0
</pre></div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="misc.html" class="btn btn-neutral float-right" title="Miscellaneous"/>Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="defaults.html" class="btn btn-neutral" title="Default values"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2013 - 2015, Peter Melnichenko.
</p>
</div>
<a href="https://github.com/snide/sphinx_rtd_theme">Sphinx theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'0.4.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>