<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>_pytest.config</title> <link rel="stylesheet" href="../../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../../', VERSION: '2.2.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/translations.js"></script> <link rel="top" title="None" href="../../index.html" /> <link rel="up" title="モジュールコード" href="../index.html" /> </head> <body> <div class="related"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../../py-modindex.html" title="Pythonモジュール索引" >モジュール</a></li> <li><a href="../../contents.html">pytest-2.2.4.0</a> »</li> <li><a href="../index.html" accesskey="U">モジュールコード</a> »</li> </ul> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <div id="searchbox" style="display: none"> <h3>クイック検索</h3> <form class="search" action="../../search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="検索" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> モジュール、クラス、または関数名を入力してください </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <h1>_pytest.config のソースコード</h1><div class="highlight"><pre> <span class="sd">""" command line options, ini-file and conftest.py processing. """</span> <span class="kn">import</span> <span class="nn">py</span> <span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">os</span> <span class="kn">from</span> <span class="nn">_pytest.core</span> <span class="kn">import</span> <span class="n">PluginManager</span> <span class="kn">import</span> <span class="nn">pytest</span> <span class="k">def</span> <span class="nf">pytest_cmdline_parse</span><span class="p">(</span><span class="n">pluginmanager</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> <span class="n">config</span> <span class="o">=</span> <span class="n">Config</span><span class="p">(</span><span class="n">pluginmanager</span><span class="p">)</span> <span class="n">config</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="k">return</span> <span class="n">config</span> <span class="k">def</span> <span class="nf">pytest_unconfigure</span><span class="p">(</span><span class="n">config</span><span class="p">):</span> <span class="k">while</span> <span class="mi">1</span><span class="p">:</span> <span class="k">try</span><span class="p">:</span> <span class="n">fin</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">_cleanup</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span> <span class="k">break</span> <span class="n">fin</span><span class="p">()</span> <div class="viewcode-block" id="Parser"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Parser">[ドキュメント]</a><span class="k">class</span> <span class="nc">Parser</span><span class="p">:</span> <span class="sd">""" Parser for command line arguments and ini-file values. """</span> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">usage</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">processopt</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">_anonymous</span> <span class="o">=</span> <span class="n">OptionGroup</span><span class="p">(</span><span class="s">"custom options"</span><span class="p">,</span> <span class="n">parser</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span> <span class="o">=</span> <span class="p">[]</span> <span class="bp">self</span><span class="o">.</span><span class="n">_processopt</span> <span class="o">=</span> <span class="n">processopt</span> <span class="bp">self</span><span class="o">.</span><span class="n">_usage</span> <span class="o">=</span> <span class="n">usage</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inidict</span> <span class="o">=</span> <span class="p">{}</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ininames</span> <span class="o">=</span> <span class="p">[]</span> <span class="bp">self</span><span class="o">.</span><span class="n">hints</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">def</span> <span class="nf">processoption</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">option</span><span class="p">):</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_processopt</span><span class="p">:</span> <span class="k">if</span> <span class="n">option</span><span class="o">.</span><span class="n">dest</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_processopt</span><span class="p">(</span><span class="n">option</span><span class="p">)</span> <div class="viewcode-block" id="Parser.getgroup"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Parser.getgroup">[ドキュメント]</a> <span class="k">def</span> <span class="nf">getgroup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s">""</span><span class="p">,</span> <span class="n">after</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="sd">""" get (or create) a named option Group.</span> <span class="sd"> :name: name of the option group.</span> <span class="sd"> :description: long description for --help output.</span> <span class="sd"> :after: name of other group, used for ordering --help output.</span> <span class="sd"> The returned group object has an ``addoption`` method with the same</span> <span class="sd"> signature as :py:func:`parser.addoption</span> <span class="sd"> <_pytest.config.Parser.addoption>` but will be shown in the</span> <span class="sd"> respective group in the output of ``pytest. --help``.</span> <span class="sd"> """</span> <span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">:</span> <span class="k">if</span> <span class="n">group</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">name</span><span class="p">:</span> <span class="k">return</span> <span class="n">group</span> <span class="n">group</span> <span class="o">=</span> <span class="n">OptionGroup</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">description</span><span class="p">,</span> <span class="n">parser</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">grp</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">):</span> <span class="k">if</span> <span class="n">grp</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">after</span><span class="p">:</span> <span class="k">break</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="n">group</span><span class="p">)</span> <span class="k">return</span> <span class="n">group</span> </div> <div class="viewcode-block" id="Parser.addoption"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Parser.addoption">[ドキュメント]</a> <span class="k">def</span> <span class="nf">addoption</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">opts</span><span class="p">,</span> <span class="o">**</span><span class="n">attrs</span><span class="p">):</span> <span class="sd">""" register a command line option.</span> <span class="sd"> :opts: option names, can be short or long options.</span> <span class="sd"> :attrs: same attributes which the ``add_option()`` function of the</span> <span class="sd"> `optparse library</span> <span class="sd"> <http://docs.python.org/library/optparse.html#module-optparse>`_</span> <span class="sd"> accepts.</span> <span class="sd"> After command line parsing options are available on the pytest config</span> <span class="sd"> object via ``config.option.NAME`` where ``NAME`` is usually set</span> <span class="sd"> by passing a ``dest`` attribute, for example</span> <span class="sd"> ``addoption("--long", dest="NAME", ...)``.</span> <span class="sd"> """</span> <span class="bp">self</span><span class="o">.</span><span class="n">_anonymous</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="o">*</span><span class="n">opts</span><span class="p">,</span> <span class="o">**</span><span class="n">attrs</span><span class="p">)</span> </div> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">optparser</span> <span class="o">=</span> <span class="n">optparser</span> <span class="o">=</span> <span class="n">MyOptionParser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="n">groups</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span> <span class="o">+</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_anonymous</span><span class="p">]</span> <span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">:</span> <span class="k">if</span> <span class="n">group</span><span class="o">.</span><span class="n">options</span><span class="p">:</span> <span class="n">desc</span> <span class="o">=</span> <span class="n">group</span><span class="o">.</span><span class="n">description</span> <span class="ow">or</span> <span class="n">group</span><span class="o">.</span><span class="n">name</span> <span class="n">optgroup</span> <span class="o">=</span> <span class="n">py</span><span class="o">.</span><span class="n">std</span><span class="o">.</span><span class="n">optparse</span><span class="o">.</span><span class="n">OptionGroup</span><span class="p">(</span><span class="n">optparser</span><span class="p">,</span> <span class="n">desc</span><span class="p">)</span> <span class="n">optgroup</span><span class="o">.</span><span class="n">add_options</span><span class="p">(</span><span class="n">group</span><span class="o">.</span><span class="n">options</span><span class="p">)</span> <span class="n">optparser</span><span class="o">.</span><span class="n">add_option_group</span><span class="p">(</span><span class="n">optgroup</span><span class="p">)</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">optparser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">([</span><span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">args</span><span class="p">])</span> <span class="k">def</span> <span class="nf">parse_setoption</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">option</span><span class="p">):</span> <span class="n">parsedoption</span><span class="p">,</span> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">parsedoption</span><span class="o">.</span><span class="n">__dict__</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> <span class="nb">setattr</span><span class="p">(</span><span class="n">option</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> <span class="k">return</span> <span class="n">args</span> <div class="viewcode-block" id="Parser.addini"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Parser.addini">[ドキュメント]</a> <span class="k">def</span> <span class="nf">addini</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">help</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="sd">""" register an ini-file option.</span> <span class="sd"> :name: name of the ini-variable</span> <span class="sd"> :type: type of the variable, can be ``pathlist``, ``args`` or ``linelist``.</span> <span class="sd"> :default: default value if no ini-file option exists but is queried.</span> <span class="sd"> The value of ini-variables can be retrieved via a call to</span> <span class="sd"> :py:func:`config.getini(name) <_pytest.config.Config.getini>`.</span> <span class="sd"> """</span> <span class="k">assert</span> <span class="nb">type</span> <span class="ow">in</span> <span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="s">"pathlist"</span><span class="p">,</span> <span class="s">"args"</span><span class="p">,</span> <span class="s">"linelist"</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inidict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">help</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">default</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ininames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </div></div> <span class="k">class</span> <span class="nc">OptionGroup</span><span class="p">:</span> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s">""</span><span class="p">,</span> <span class="n">parser</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span> <span class="bp">self</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="n">description</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span> <span class="o">=</span> <span class="n">parser</span> <span class="k">def</span> <span class="nf">addoption</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">optnames</span><span class="p">,</span> <span class="o">**</span><span class="n">attrs</span><span class="p">):</span> <span class="sd">""" add an option to this group. """</span> <span class="n">option</span> <span class="o">=</span> <span class="n">py</span><span class="o">.</span><span class="n">std</span><span class="o">.</span><span class="n">optparse</span><span class="o">.</span><span class="n">Option</span><span class="p">(</span><span class="o">*</span><span class="n">optnames</span><span class="p">,</span> <span class="o">**</span><span class="n">attrs</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_addoption_instance</span><span class="p">(</span><span class="n">option</span><span class="p">,</span> <span class="n">shortupper</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_addoption</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">optnames</span><span class="p">,</span> <span class="o">**</span><span class="n">attrs</span><span class="p">):</span> <span class="n">option</span> <span class="o">=</span> <span class="n">py</span><span class="o">.</span><span class="n">std</span><span class="o">.</span><span class="n">optparse</span><span class="o">.</span><span class="n">Option</span><span class="p">(</span><span class="o">*</span><span class="n">optnames</span><span class="p">,</span> <span class="o">**</span><span class="n">attrs</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_addoption_instance</span><span class="p">(</span><span class="n">option</span><span class="p">,</span> <span class="n">shortupper</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_addoption_instance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">option</span><span class="p">,</span> <span class="n">shortupper</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">shortupper</span><span class="p">:</span> <span class="k">for</span> <span class="n">opt</span> <span class="ow">in</span> <span class="n">option</span><span class="o">.</span><span class="n">_short_opts</span><span class="p">:</span> <span class="k">if</span> <span class="n">opt</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">'-'</span> <span class="ow">and</span> <span class="n">opt</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">islower</span><span class="p">():</span> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"lowercase shortoptions reserved"</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="o">.</span><span class="n">processoption</span><span class="p">(</span><span class="n">option</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">option</span><span class="p">)</span> <span class="k">class</span> <span class="nc">MyOptionParser</span><span class="p">(</span><span class="n">py</span><span class="o">.</span><span class="n">std</span><span class="o">.</span><span class="n">optparse</span><span class="o">.</span><span class="n">OptionParser</span><span class="p">):</span> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span> <span class="o">=</span> <span class="n">parser</span> <span class="n">py</span><span class="o">.</span><span class="n">std</span><span class="o">.</span><span class="n">optparse</span><span class="o">.</span><span class="n">OptionParser</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">usage</span><span class="o">=</span><span class="n">parser</span><span class="o">.</span><span class="n">_usage</span><span class="p">,</span> <span class="n">add_help_option</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span> <span class="k">def</span> <span class="nf">format_epilog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">formatter</span><span class="p">):</span> <span class="n">hints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span><span class="o">.</span><span class="n">hints</span> <span class="k">if</span> <span class="n">hints</span><span class="p">:</span> <span class="n">s</span> <span class="o">=</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s">"hint: "</span> <span class="o">+</span> <span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span> <span class="o">+</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span> <span class="n">s</span> <span class="o">=</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span> <span class="o">+</span> <span class="n">s</span> <span class="o">+</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span> <span class="k">return</span> <span class="n">s</span> <span class="k">return</span> <span class="s">""</span> <span class="k">class</span> <span class="nc">Conftest</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> <span class="sd">""" the single place for accessing values and interacting</span> <span class="sd"> towards conftest modules from py.test objects.</span> <span class="sd"> """</span> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">onimport</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">confcutdir</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">_path2confmods</span> <span class="o">=</span> <span class="p">{}</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onimport</span> <span class="o">=</span> <span class="n">onimport</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conftestpath2mod</span> <span class="o">=</span> <span class="p">{}</span> <span class="bp">self</span><span class="o">.</span><span class="n">_confcutdir</span> <span class="o">=</span> <span class="n">confcutdir</span> <span class="k">def</span> <span class="nf">setinitial</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> <span class="sd">""" try to find a first anchor path for looking up global values</span> <span class="sd"> from conftests. This function is usually called _before_</span> <span class="sd"> argument parsing. conftest files may add command line options</span> <span class="sd"> and we thus have no completely safe way of determining</span> <span class="sd"> which parts of the arguments are actually related to options</span> <span class="sd"> and which are file system paths. We just try here to get</span> <span class="sd"> bootstrapped ...</span> <span class="sd"> """</span> <span class="n">current</span> <span class="o">=</span> <span class="n">py</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">local</span><span class="p">()</span> <span class="n">opt</span> <span class="o">=</span> <span class="s">'--confcutdir'</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)):</span> <span class="n">opt1</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">if</span> <span class="n">opt1</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">opt</span><span class="p">):</span> <span class="k">if</span> <span class="n">opt1</span> <span class="o">==</span> <span class="n">opt</span><span class="p">:</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="n">i</span><span class="p">:</span> <span class="n">p</span> <span class="o">=</span> <span class="n">current</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">],</span> <span class="nb">abs</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="k">elif</span> <span class="n">opt1</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">opt</span> <span class="o">+</span> <span class="s">"="</span><span class="p">):</span> <span class="n">p</span> <span class="o">=</span> <span class="n">current</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">opt1</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">opt</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:],</span> <span class="nb">abs</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_confcutdir</span> <span class="o">=</span> <span class="n">p</span> <span class="k">break</span> <span class="n">foundanchor</span> <span class="o">=</span> <span class="bp">False</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">:</span> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="s">'startswith'</span><span class="p">)</span> <span class="ow">and</span> <span class="n">arg</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"--"</span><span class="p">):</span> <span class="k">continue</span> <span class="n">anchor</span> <span class="o">=</span> <span class="n">current</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="nb">abs</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="k">if</span> <span class="n">exists</span><span class="p">(</span><span class="n">anchor</span><span class="p">):</span> <span class="c"># we found some file object</span> <span class="bp">self</span><span class="o">.</span><span class="n">_try_load_conftest</span><span class="p">(</span><span class="n">anchor</span><span class="p">)</span> <span class="n">foundanchor</span> <span class="o">=</span> <span class="bp">True</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">foundanchor</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_try_load_conftest</span><span class="p">(</span><span class="n">current</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_try_load_conftest</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">anchor</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">_path2confmods</span><span class="p">[</span><span class="bp">None</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getconftestmodules</span><span class="p">(</span><span class="n">anchor</span><span class="p">)</span> <span class="c"># let's also consider test* subdirs</span> <span class="k">if</span> <span class="n">anchor</span><span class="o">.</span><span class="n">check</span><span class="p">(</span><span class="nb">dir</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">anchor</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="s">"test*"</span><span class="p">):</span> <span class="k">if</span> <span class="n">x</span><span class="o">.</span><span class="n">check</span><span class="p">(</span><span class="nb">dir</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">getconftestmodules</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">def</span> <span class="nf">getconftestmodules</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span> <span class="sd">""" return a list of imported conftest modules for the given path. """</span> <span class="k">try</span><span class="p">:</span> <span class="n">clist</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_path2confmods</span><span class="p">[</span><span class="n">path</span><span class="p">]</span> <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="k">if</span> <span class="n">path</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"missing default confest."</span><span class="p">)</span> <span class="n">dp</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">dirpath</span><span class="p">()</span> <span class="n">clist</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">if</span> <span class="n">dp</span> <span class="o">!=</span> <span class="n">path</span><span class="p">:</span> <span class="n">cutdir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_confcutdir</span> <span class="k">if</span> <span class="n">cutdir</span> <span class="ow">and</span> <span class="n">path</span> <span class="o">!=</span> <span class="n">cutdir</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">path</span><span class="o">.</span><span class="n">relto</span><span class="p">(</span><span class="n">cutdir</span><span class="p">):</span> <span class="k">pass</span> <span class="k">else</span><span class="p">:</span> <span class="n">conftestpath</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s">"conftest.py"</span><span class="p">)</span> <span class="k">if</span> <span class="n">conftestpath</span><span class="o">.</span><span class="n">check</span><span class="p">(</span><span class="nb">file</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span> <span class="n">clist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">importconftest</span><span class="p">(</span><span class="n">conftestpath</span><span class="p">))</span> <span class="n">clist</span><span class="p">[:</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getconftestmodules</span><span class="p">(</span><span class="n">dp</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_path2confmods</span><span class="p">[</span><span class="n">path</span><span class="p">]</span> <span class="o">=</span> <span class="n">clist</span> <span class="c"># be defensive: avoid changes from caller side to</span> <span class="c"># affect us by always returning a copy of the actual list</span> <span class="k">return</span> <span class="n">clist</span><span class="p">[:]</span> <span class="k">def</span> <span class="nf">rget</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="n">mod</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rget_with_confmod</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span> <span class="k">return</span> <span class="n">value</span> <span class="k">def</span> <span class="nf">rget_with_confmod</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="n">modules</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getconftestmodules</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> <span class="n">modules</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span> <span class="k">for</span> <span class="n">mod</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span> <span class="k">try</span><span class="p">:</span> <span class="k">return</span> <span class="n">mod</span><span class="p">,</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">mod</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span> <span class="k">continue</span> <span class="k">raise</span> <span class="ne">KeyError</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">def</span> <span class="nf">importconftest</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conftestpath</span><span class="p">):</span> <span class="k">assert</span> <span class="n">conftestpath</span><span class="o">.</span><span class="n">check</span><span class="p">(),</span> <span class="n">conftestpath</span> <span class="k">try</span><span class="p">:</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conftestpath2mod</span><span class="p">[</span><span class="n">conftestpath</span><span class="p">]</span> <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="n">pkgpath</span> <span class="o">=</span> <span class="n">conftestpath</span><span class="o">.</span><span class="n">pypkgpath</span><span class="p">()</span> <span class="k">if</span> <span class="n">pkgpath</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="n">_ensure_removed_sysmodule</span><span class="p">(</span><span class="n">conftestpath</span><span class="o">.</span><span class="n">purebasename</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conftestpath2mod</span><span class="p">[</span><span class="n">conftestpath</span><span class="p">]</span> <span class="o">=</span> <span class="n">mod</span> <span class="o">=</span> <span class="n">conftestpath</span><span class="o">.</span><span class="n">pyimport</span><span class="p">()</span> <span class="n">dirpath</span> <span class="o">=</span> <span class="n">conftestpath</span><span class="o">.</span><span class="n">dirpath</span><span class="p">()</span> <span class="k">if</span> <span class="n">dirpath</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_path2confmods</span><span class="p">:</span> <span class="k">for</span> <span class="n">path</span><span class="p">,</span> <span class="n">mods</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_path2confmods</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> <span class="k">if</span> <span class="n">path</span> <span class="ow">and</span> <span class="n">path</span><span class="o">.</span><span class="n">relto</span><span class="p">(</span><span class="n">dirpath</span><span class="p">)</span> <span class="ow">or</span> <span class="n">path</span> <span class="o">==</span> <span class="n">dirpath</span><span class="p">:</span> <span class="k">assert</span> <span class="n">mod</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">mods</span> <span class="n">mods</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">mod</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_postimport</span><span class="p">(</span><span class="n">mod</span><span class="p">)</span> <span class="k">return</span> <span class="n">mod</span> <span class="k">def</span> <span class="nf">_postimport</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mod</span><span class="p">):</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onimport</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onimport</span><span class="p">(</span><span class="n">mod</span><span class="p">)</span> <span class="k">return</span> <span class="n">mod</span> <span class="k">def</span> <span class="nf">_ensure_removed_sysmodule</span><span class="p">(</span><span class="n">modname</span><span class="p">):</span> <span class="k">try</span><span class="p">:</span> <span class="k">del</span> <span class="n">sys</span><span class="o">.</span><span class="n">modules</span><span class="p">[</span><span class="n">modname</span><span class="p">]</span> <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="k">pass</span> <span class="k">class</span> <span class="nc">CmdOptions</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> <span class="sd">""" holds cmdline options as attributes."""</span> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">__dict__</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="s">"<CmdOptions </span><span class="si">%r</span><span class="s">>"</span> <span class="o">%</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__dict__</span><span class="p">,)</span> <div class="viewcode-block" id="Config"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Config">[ドキュメント]</a><span class="k">class</span> <span class="nc">Config</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> <span class="sd">""" access to configuration values, pluginmanager and plugin hooks. """</span> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pluginmanager</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="c">#: access to command line option as attributes.</span> <span class="c">#: (deprecated), use :py:func:`getoption() <_pytest.config.Config.getoption>` instead</span> <span class="bp">self</span><span class="o">.</span><span class="n">option</span> <span class="o">=</span> <span class="n">CmdOptions</span><span class="p">()</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span> <span class="o">=</span> <span class="n">Parser</span><span class="p">(</span> <span class="n">usage</span><span class="o">=</span><span class="s">"usage: %prog [options] [file_or_dir] [file_or_dir] [...]"</span><span class="p">,</span> <span class="n">processopt</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_processopt</span><span class="p">,</span> <span class="p">)</span> <span class="c">#: a pluginmanager instance</span> <span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span> <span class="o">=</span> <span class="n">pluginmanager</span> <span class="ow">or</span> <span class="n">PluginManager</span><span class="p">(</span><span class="n">load</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">trace</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">trace</span><span class="o">.</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"config"</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conftest</span> <span class="o">=</span> <span class="n">Conftest</span><span class="p">(</span><span class="n">onimport</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_onimportconftest</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">hook</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">hook</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inicache</span> <span class="o">=</span> <span class="p">{}</span> <span class="bp">self</span><span class="o">.</span><span class="n">_opt2dest</span> <span class="o">=</span> <span class="p">{}</span> <span class="bp">self</span><span class="o">.</span><span class="n">_cleanup</span> <span class="o">=</span> <span class="p">[]</span> <span class="nd">@classmethod</span> <div class="viewcode-block" id="Config.fromdictargs"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Config.fromdictargs">[ドキュメント]</a> <span class="k">def</span> <span class="nf">fromdictargs</span><span class="p">(</span><span class="n">cls</span><span class="p">,</span> <span class="n">option_dict</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> <span class="sd">""" constructor useable for subprocesses. """</span> <span class="n">config</span> <span class="o">=</span> <span class="n">cls</span><span class="p">()</span> <span class="c"># XXX slightly crude way to initialize capturing</span> <span class="kn">import</span> <span class="nn">_pytest.capture</span> <span class="n">_pytest</span><span class="o">.</span><span class="n">capture</span><span class="o">.</span><span class="n">pytest_cmdline_parse</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">pluginmanager</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="n">config</span><span class="o">.</span><span class="n">_preparse</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">addopts</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span> <span class="n">config</span><span class="o">.</span><span class="n">option</span><span class="o">.</span><span class="n">__dict__</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">option_dict</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">option</span><span class="o">.</span><span class="n">plugins</span><span class="p">:</span> <span class="n">config</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">consider_pluginarg</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">return</span> <span class="n">config</span> </div> <span class="k">def</span> <span class="nf">_onimportconftest</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conftestmodule</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">trace</span><span class="p">(</span><span class="s">"loaded conftestmodule </span><span class="si">%r</span><span class="s">"</span> <span class="o">%</span><span class="p">(</span><span class="n">conftestmodule</span><span class="p">,))</span> <span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">consider_conftest</span><span class="p">(</span><span class="n">conftestmodule</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_processopt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">opt</span><span class="p">):</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">opt</span><span class="o">.</span><span class="n">_short_opts</span> <span class="o">+</span> <span class="n">opt</span><span class="o">.</span><span class="n">_long_opts</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_opt2dest</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">opt</span><span class="o">.</span><span class="n">dest</span> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">opt</span><span class="p">,</span> <span class="s">'default'</span><span class="p">)</span> <span class="ow">and</span> <span class="n">opt</span><span class="o">.</span><span class="n">dest</span><span class="p">:</span> <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">option</span><span class="p">,</span> <span class="n">opt</span><span class="o">.</span><span class="n">dest</span><span class="p">):</span> <span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">option</span><span class="p">,</span> <span class="n">opt</span><span class="o">.</span><span class="n">dest</span><span class="p">,</span> <span class="n">opt</span><span class="o">.</span><span class="n">default</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_getmatchingplugins</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fspath</span><span class="p">):</span> <span class="n">allconftests</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conftest</span><span class="o">.</span><span class="n">_conftestpath2mod</span><span class="o">.</span><span class="n">values</span><span class="p">()</span> <span class="n">plugins</span> <span class="o">=</span> <span class="p">[</span><span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">getplugins</span><span class="p">()</span> <span class="k">if</span> <span class="n">x</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">allconftests</span><span class="p">]</span> <span class="n">plugins</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conftest</span><span class="o">.</span><span class="n">getconftestmodules</span><span class="p">(</span><span class="n">fspath</span><span class="p">)</span> <span class="k">return</span> <span class="n">plugins</span> <span class="k">def</span> <span class="nf">_setinitialconftest</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> <span class="c"># capture output during conftest init (#issue93)</span> <span class="c"># XXX introduce load_conftest hook to avoid needing to know</span> <span class="c"># about capturing plugin here</span> <span class="n">capman</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">getplugin</span><span class="p">(</span><span class="s">"capturemanager"</span><span class="p">)</span> <span class="n">capman</span><span class="o">.</span><span class="n">resumecapture</span><span class="p">()</span> <span class="k">try</span><span class="p">:</span> <span class="k">try</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conftest</span><span class="o">.</span><span class="n">setinitial</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="k">finally</span><span class="p">:</span> <span class="n">out</span><span class="p">,</span> <span class="n">err</span> <span class="o">=</span> <span class="n">capman</span><span class="o">.</span><span class="n">suspendcapture</span><span class="p">()</span> <span class="c"># logging might have got it</span> <span class="k">except</span><span class="p">:</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">err</span><span class="p">)</span> <span class="k">raise</span> <span class="k">def</span> <span class="nf">_initini</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">inicfg</span> <span class="o">=</span> <span class="n">getcfg</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="p">[</span><span class="s">"pytest.ini"</span><span class="p">,</span> <span class="s">"tox.ini"</span><span class="p">,</span> <span class="s">"setup.cfg"</span><span class="p">])</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span><span class="o">.</span><span class="n">addini</span><span class="p">(</span><span class="s">'addopts'</span><span class="p">,</span> <span class="s">'extra command line options'</span><span class="p">,</span> <span class="s">'args'</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span><span class="o">.</span><span class="n">addini</span><span class="p">(</span><span class="s">'minversion'</span><span class="p">,</span> <span class="s">'minimally required pytest version'</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_preparse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">addopts</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">_initini</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="k">if</span> <span class="n">addopts</span><span class="p">:</span> <span class="n">args</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getini</span><span class="p">(</span><span class="s">"addopts"</span><span class="p">)</span> <span class="o">+</span> <span class="n">args</span> <span class="bp">self</span><span class="o">.</span><span class="n">_checkversion</span><span class="p">()</span> <span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">consider_preparse</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">consider_setuptools_entrypoints</span><span class="p">()</span> <span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">consider_env</span><span class="p">()</span> <span class="bp">self</span><span class="o">.</span><span class="n">_setinitialconftest</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">do_addoption</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parser</span><span class="p">)</span> <span class="k">if</span> <span class="n">addopts</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">hook</span><span class="o">.</span><span class="n">pytest_cmdline_preparse</span><span class="p">(</span><span class="n">config</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_checkversion</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="n">minver</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">inicfg</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'minversion'</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> <span class="k">if</span> <span class="n">minver</span><span class="p">:</span> <span class="n">ver</span> <span class="o">=</span> <span class="n">minver</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"."</span><span class="p">)</span> <span class="n">myver</span> <span class="o">=</span> <span class="n">pytest</span><span class="o">.</span><span class="n">__version__</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"."</span><span class="p">)</span> <span class="k">if</span> <span class="n">myver</span> <span class="o"><</span> <span class="n">ver</span><span class="p">:</span> <span class="k">raise</span> <span class="n">pytest</span><span class="o">.</span><span class="n">UsageError</span><span class="p">(</span> <span class="s">"</span><span class="si">%s</span><span class="s">:</span><span class="si">%d</span><span class="s">: requires pytest-</span><span class="si">%s</span><span class="s">, actual pytest-</span><span class="si">%s</span><span class="s">'"</span> <span class="o">%</span><span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">inicfg</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">inicfg</span><span class="o">.</span><span class="n">lineof</span><span class="p">(</span><span class="s">'minversion'</span><span class="p">),</span> <span class="n">minver</span><span class="p">,</span> <span class="n">pytest</span><span class="o">.</span><span class="n">__version__</span><span class="p">))</span> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> <span class="c"># parse given cmdline arguments into this config object.</span> <span class="c"># Note that this can only be called once per testing process.</span> <span class="k">assert</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">'args'</span><span class="p">),</span> <span class="p">(</span> <span class="s">"can only parse cmdline args at most once per Config object"</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_origargs</span> <span class="o">=</span> <span class="n">args</span> <span class="bp">self</span><span class="o">.</span><span class="n">_preparse</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span><span class="o">.</span><span class="n">hints</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">_hints</span><span class="p">)</span> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span><span class="o">.</span><span class="n">parse_setoption</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">option</span><span class="p">)</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">args</span><span class="p">:</span> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">py</span><span class="o">.</span><span class="n">std</span><span class="o">.</span><span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">())</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">args</span> <div class="viewcode-block" id="Config.addinivalue_line"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Config.addinivalue_line">[ドキュメント]</a> <span class="k">def</span> <span class="nf">addinivalue_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span> <span class="sd">""" add a line to an ini-file option. The option must have been</span> <span class="sd"> declared but might not yet be set in which case the line becomes the</span> <span class="sd"> the first line in its value. """</span> <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getini</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="n">x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> <span class="c"># modifies the cached list inline</span> </div> <div class="viewcode-block" id="Config.getini"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Config.getini">[ドキュメント]</a> <span class="k">def</span> <span class="nf">getini</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> <span class="sd">""" return configuration value from an :ref:`ini file <inifiles>`. If the</span> <span class="sd"> specified name hasn't been registered through a prior</span> <span class="sd"> :py:func:`parser.addini <pytest.config.Parser.addini>`</span> <span class="sd"> call (usually from a plugin), a ValueError is raised. """</span> <span class="k">try</span><span class="p">:</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inicache</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inicache</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_getini</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">return</span> <span class="n">val</span> </div> <span class="k">def</span> <span class="nf">_getini</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> <span class="k">try</span><span class="p">:</span> <span class="n">description</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">default</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span><span class="o">.</span><span class="n">_inidict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"unknown configuration value: </span><span class="si">%r</span><span class="s">"</span> <span class="o">%</span><span class="p">(</span><span class="n">name</span><span class="p">,))</span> <span class="k">try</span><span class="p">:</span> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">inicfg</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span> <span class="k">return</span> <span class="n">default</span> <span class="k">if</span> <span class="nb">type</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="k">return</span> <span class="s">''</span> <span class="k">return</span> <span class="p">[]</span> <span class="k">if</span> <span class="nb">type</span> <span class="o">==</span> <span class="s">"pathlist"</span><span class="p">:</span> <span class="n">dp</span> <span class="o">=</span> <span class="n">py</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">local</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">inicfg</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">path</span><span class="p">)</span><span class="o">.</span><span class="n">dirpath</span><span class="p">()</span> <span class="n">l</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">relpath</span> <span class="ow">in</span> <span class="n">py</span><span class="o">.</span><span class="n">std</span><span class="o">.</span><span class="n">shlex</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">value</span><span class="p">):</span> <span class="n">l</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dp</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">relpath</span><span class="p">,</span> <span class="nb">abs</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span> <span class="k">return</span> <span class="n">l</span> <span class="k">elif</span> <span class="nb">type</span> <span class="o">==</span> <span class="s">"args"</span><span class="p">:</span> <span class="k">return</span> <span class="n">py</span><span class="o">.</span><span class="n">std</span><span class="o">.</span><span class="n">shlex</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">elif</span> <span class="nb">type</span> <span class="o">==</span> <span class="s">"linelist"</span><span class="p">:</span> <span class="k">return</span> <span class="p">[</span><span class="n">t</span> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="n">value</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">))</span> <span class="k">if</span> <span class="n">t</span><span class="p">]</span> <span class="k">else</span><span class="p">:</span> <span class="k">assert</span> <span class="nb">type</span> <span class="ow">is</span> <span class="bp">None</span> <span class="k">return</span> <span class="n">value</span> <span class="k">def</span> <span class="nf">_getconftest_pathlist</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="k">try</span><span class="p">:</span> <span class="n">mod</span><span class="p">,</span> <span class="n">relroots</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conftest</span><span class="o">.</span><span class="n">rget_with_confmod</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span> <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="k">return</span> <span class="bp">None</span> <span class="n">modpath</span> <span class="o">=</span> <span class="n">py</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">local</span><span class="p">(</span><span class="n">mod</span><span class="o">.</span><span class="n">__file__</span><span class="p">)</span><span class="o">.</span><span class="n">dirpath</span><span class="p">()</span> <span class="n">l</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">relroot</span> <span class="ow">in</span> <span class="n">relroots</span><span class="p">:</span> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">relroot</span><span class="p">,</span> <span class="n">py</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">local</span><span class="p">):</span> <span class="n">relroot</span> <span class="o">=</span> <span class="n">relroot</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">"/"</span><span class="p">,</span> <span class="n">py</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">local</span><span class="o">.</span><span class="n">sep</span><span class="p">)</span> <span class="n">relroot</span> <span class="o">=</span> <span class="n">modpath</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">relroot</span><span class="p">,</span> <span class="nb">abs</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="n">l</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">relroot</span><span class="p">)</span> <span class="k">return</span> <span class="n">l</span> <span class="k">def</span> <span class="nf">_getconftest</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">check</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span> <span class="k">if</span> <span class="n">check</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_checkconftest</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conftest</span><span class="o">.</span><span class="n">rget</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span> <div class="viewcode-block" id="Config.getoption"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Config.getoption">[ドキュメント]</a> <span class="k">def</span> <span class="nf">getoption</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> <span class="sd">""" return command line option value.</span> <span class="sd"> :arg name: name of the option. You may also specify</span> <span class="sd"> the literal ``--OPT`` option instead of the "dest" option name.</span> <span class="sd"> """</span> <span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_opt2dest</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">try</span><span class="p">:</span> <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">option</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"no option named </span><span class="si">%r</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">,))</span> </div> <div class="viewcode-block" id="Config.getvalue"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Config.getvalue">[ドキュメント]</a> <span class="k">def</span> <span class="nf">getvalue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="sd">""" return command line option value.</span> <span class="sd"> :arg name: name of the command line option</span> <span class="sd"> (deprecated) if we can't find the option also lookup</span> <span class="sd"> the name in a matching conftest file.</span> <span class="sd"> """</span> <span class="k">try</span><span class="p">:</span> <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">option</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_getconftest</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">check</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span> </div> <div class="viewcode-block" id="Config.getvalueorskip"><a class="viewcode-back" href="../../plugins.html#_pytest.config.Config.getvalueorskip">[ドキュメント]</a> <span class="k">def</span> <span class="nf">getvalueorskip</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> <span class="sd">""" (deprecated) return getvalue(name) or call</span> <span class="sd"> py.test.skip if no value exists. """</span> <span class="n">__tracebackhide__</span> <span class="o">=</span> <span class="bp">True</span> <span class="k">try</span><span class="p">:</span> <span class="n">val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getvalue</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span> <span class="k">if</span> <span class="n">val</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">KeyError</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">return</span> <span class="n">val</span> <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="n">py</span><span class="o">.</span><span class="n">test</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="s">"no </span><span class="si">%r</span><span class="s"> value found"</span> <span class="o">%</span><span class="p">(</span><span class="n">name</span><span class="p">,))</span> </div></div> <span class="k">def</span> <span class="nf">exists</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">ignore</span><span class="o">=</span><span class="ne">EnvironmentError</span><span class="p">):</span> <span class="k">try</span><span class="p">:</span> <span class="k">return</span> <span class="n">path</span><span class="o">.</span><span class="n">check</span><span class="p">()</span> <span class="k">except</span> <span class="n">ignore</span><span class="p">:</span> <span class="k">return</span> <span class="bp">False</span> <span class="k">def</span> <span class="nf">getcfg</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">inibasenames</span><span class="p">):</span> <span class="n">args</span> <span class="o">=</span> <span class="p">[</span><span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">args</span> <span class="k">if</span> <span class="ow">not</span> <span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"-"</span><span class="p">)]</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">args</span><span class="p">:</span> <span class="n">args</span> <span class="o">=</span> <span class="p">[</span><span class="n">py</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">local</span><span class="p">()]</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">:</span> <span class="n">arg</span> <span class="o">=</span> <span class="n">py</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">local</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">base</span> <span class="ow">in</span> <span class="n">arg</span><span class="o">.</span><span class="n">parts</span><span class="p">(</span><span class="n">reverse</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span> <span class="k">for</span> <span class="n">inibasename</span> <span class="ow">in</span> <span class="n">inibasenames</span><span class="p">:</span> <span class="n">p</span> <span class="o">=</span> <span class="n">base</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">inibasename</span><span class="p">)</span> <span class="k">if</span> <span class="n">exists</span><span class="p">(</span><span class="n">p</span><span class="p">):</span> <span class="n">iniconfig</span> <span class="o">=</span> <span class="n">py</span><span class="o">.</span><span class="n">iniconfig</span><span class="o">.</span><span class="n">IniConfig</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="k">if</span> <span class="s">'pytest'</span> <span class="ow">in</span> <span class="n">iniconfig</span><span class="o">.</span><span class="n">sections</span><span class="p">:</span> <span class="k">return</span> <span class="n">iniconfig</span><span class="p">[</span><span class="s">'pytest'</span><span class="p">]</span> <span class="k">return</span> <span class="p">{}</span> </pre></div> </div> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../../py-modindex.html" title="Pythonモジュール索引" >モジュール</a></li> <li><a href="../../contents.html">pytest-2.2.4.0</a> »</li> <li><a href="../index.html" >モジュールコード</a> »</li> </ul> </div> <div class="footer"> © Copyright 2011, holger krekel et alii. このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3 で生成しました。 </div> </body> </html>