| @@ -0,0 +1,5 @@ | |||
| ----------------------------- | |||
| Abductive Learning | |||
| ----------------------------- | |||
| What is ABL | |||
| @@ -0,0 +1,52 @@ | |||
| --------------- | |||
| Quick Start | |||
| --------------- | |||
| How to use | |||
| .. contents:: Table of Contents | |||
| Required packages | |||
| ----------------- | |||
| This package requires the following packages: | |||
| - Python version above 3.x | |||
| - ``numpy`` http://www.numpy.org | |||
| The easiest way to get these is to use | |||
| `pip <https://pypi.python.org/pypi/pip>`__ or | |||
| `conda <https://www.anaconda.com/what-is-anaconda/>`__ environment | |||
| manager. Typing the following command in your terminal will install all | |||
| required packages in your Python environment. | |||
| .. code:: console | |||
| $ conda install numpy | |||
| or | |||
| .. code:: console | |||
| $ pip install numpy | |||
| Getting and installing ABL | |||
| ---------------------------- | |||
| The easiest way to install ABL is to type ``pip install ABL`` in you | |||
| terminal/command line. | |||
| If you want to install ABL by source code, download this project and | |||
| sequentially run following commands in your terminal/command line. | |||
| .. code:: console | |||
| $ python setup.py build | |||
| $ python setup.py install | |||
| A quick example | |||
| --------------- | |||
| Show an example. | |||
| More examples are available in the **Example** part. | |||
| @@ -0,0 +1,3 @@ | |||
| ------------------------------------- | |||
| MNISTadd | |||
| ------------------------------------- | |||
| @@ -0,0 +1,20 @@ | |||
| # Minimal makefile for Sphinx documentation | |||
| # | |||
| # You can set these variables from the command line. | |||
| SPHINXOPTS = | |||
| SPHINXBUILD = sphinx-build | |||
| SPHINXPROJ = ABL | |||
| SOURCEDIR = . | |||
| BUILDDIR = build | |||
| # Put it first so that "make" without argument is like "make help". | |||
| help: | |||
| @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) | |||
| .PHONY: help Makefile | |||
| # Catch-all target: route all unknown targets to Sphinx using the new | |||
| # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). | |||
| %: Makefile | |||
| @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) | |||
| @@ -0,0 +1,27 @@ | |||
| ABL | |||
| ^^^^^^ | |||
| ABL(Abductive Learning) is ... | |||
| Installation | |||
| ------------- | |||
| ABL is distributed on PyPI and can be installed with ``pip``: | |||
| .. code:: console | |||
| $ pip install ABL | |||
| Alternatively, to install ABL by source code, download this project and sequentially run following commands in your terminal/command line. | |||
| .. code:: console | |||
| $ python setup.py build | |||
| $ python setup.py install | |||
| Releases | |||
| -------- | |||
| `release 0.1`_ | |||
| .. _release 0.1: https://github.com/AbductiveLearning/ABL-Package/releases/tag/v0.1 | |||
| @@ -0,0 +1,4 @@ | |||
| # Sphinx build info version 1 | |||
| # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | |||
| config: 541ae024dabb61cd83267a66c3fcb29b | |||
| tags: 645f666f9bcd5a90fca523b33c5a78b7 | |||
| @@ -0,0 +1,118 @@ | |||
| <!DOCTYPE html> | |||
| <html class="writer-html5" lang="en" > | |||
| <head> | |||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
| <title>Abductive Learning — ABL 0.1.0 documentation</title> | |||
| <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> | |||
| <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> | |||
| <!--[if lt IE 9]> | |||
| <script src="../_static/js/html5shiv.min.js"></script> | |||
| <![endif]--> | |||
| <script src="../_static/jquery.js"></script> | |||
| <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> | |||
| <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> | |||
| <script src="../_static/doctools.js"></script> | |||
| <script src="../_static/sphinx_highlight.js"></script> | |||
| <script src="../_static/js/theme.js"></script> | |||
| <link rel="index" title="Index" href="../genindex.html" /> | |||
| <link rel="search" title="Search" href="../search.html" /> | |||
| <link rel="next" title="Quick Start" href="Quick%20Start.html" /> | |||
| <link rel="prev" title="ABL" href="../index.html" /> | |||
| </head> | |||
| <body class="wy-body-for-nav"> | |||
| <div class="wy-grid-for-nav"> | |||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | |||
| <div class="wy-side-scroll"> | |||
| <div class="wy-side-nav-search" > | |||
| <a href="../index.html" class="icon icon-home"> | |||
| ABL | |||
| </a> | |||
| <div class="version"> | |||
| 0.1.0 | |||
| </div> | |||
| <div role="search"> | |||
| <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> | |||
| <input type="text" name="q" placeholder="Search docs" aria-label="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="Navigation menu"> | |||
| <p class="caption" role="heading"><span class="caption-text">Tutorial of ABL</span></p> | |||
| <ul class="current"> | |||
| <li class="toctree-l1 current"><a class="current reference internal" href="#">Abductive Learning</a></li> | |||
| <li class="toctree-l1"><a class="reference internal" href="Quick%20Start.html">Quick Start</a></li> | |||
| </ul> | |||
| <p class="caption" role="heading"><span class="caption-text">Examples</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="../Examples/MNISTadd.html">MNISTadd</a></li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </nav> | |||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > | |||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | |||
| <a href="../index.html">ABL</a> | |||
| </nav> | |||
| <div class="wy-nav-content"> | |||
| <div class="rst-content"> | |||
| <div role="navigation" aria-label="Page navigation"> | |||
| <ul class="wy-breadcrumbs"> | |||
| <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> | |||
| <li class="breadcrumb-item active">Abductive Learning</li> | |||
| <li class="wy-breadcrumbs-aside"> | |||
| <a href="../_sources/ABL/Abductive Learning.rst.txt" rel="nofollow"> View page source</a> | |||
| </li> | |||
| </ul> | |||
| <hr/> | |||
| </div> | |||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | |||
| <div itemprop="articleBody"> | |||
| <section id="abductive-learning"> | |||
| <h1>Abductive Learning<a class="headerlink" href="#abductive-learning" title="Permalink to this heading"></a></h1> | |||
| <p>What is ABL</p> | |||
| </section> | |||
| </div> | |||
| </div> | |||
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> | |||
| <a href="../index.html" class="btn btn-neutral float-left" title="ABL" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> | |||
| <a href="Quick%20Start.html" class="btn btn-neutral float-right" title="Quick Start" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> | |||
| </div> | |||
| <hr/> | |||
| <div role="contentinfo"> | |||
| <p>© Copyright Yu-Xuan Huang, Wen-Chao Hu, En-Hao Gao.</p> | |||
| </div> | |||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | |||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | |||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | |||
| </footer> | |||
| </div> | |||
| </div> | |||
| </section> | |||
| </div> | |||
| <script> | |||
| jQuery(function () { | |||
| SphinxRtdTheme.Navigation.enable(true); | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,171 @@ | |||
| <!DOCTYPE html> | |||
| <html class="writer-html5" lang="en" > | |||
| <head> | |||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
| <title>Quick Start — ABL 0.1.0 documentation</title> | |||
| <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> | |||
| <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> | |||
| <!--[if lt IE 9]> | |||
| <script src="../_static/js/html5shiv.min.js"></script> | |||
| <![endif]--> | |||
| <script src="../_static/jquery.js"></script> | |||
| <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> | |||
| <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> | |||
| <script src="../_static/doctools.js"></script> | |||
| <script src="../_static/sphinx_highlight.js"></script> | |||
| <script src="../_static/js/theme.js"></script> | |||
| <link rel="index" title="Index" href="../genindex.html" /> | |||
| <link rel="search" title="Search" href="../search.html" /> | |||
| <link rel="next" title="MNISTadd" href="../Examples/MNISTadd.html" /> | |||
| <link rel="prev" title="Abductive Learning" href="Abductive%20Learning.html" /> | |||
| </head> | |||
| <body class="wy-body-for-nav"> | |||
| <div class="wy-grid-for-nav"> | |||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | |||
| <div class="wy-side-scroll"> | |||
| <div class="wy-side-nav-search" > | |||
| <a href="../index.html" class="icon icon-home"> | |||
| ABL | |||
| </a> | |||
| <div class="version"> | |||
| 0.1.0 | |||
| </div> | |||
| <div role="search"> | |||
| <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> | |||
| <input type="text" name="q" placeholder="Search docs" aria-label="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="Navigation menu"> | |||
| <p class="caption" role="heading"><span class="caption-text">Tutorial of ABL</span></p> | |||
| <ul class="current"> | |||
| <li class="toctree-l1"><a class="reference internal" href="Abductive%20Learning.html">Abductive Learning</a></li> | |||
| <li class="toctree-l1 current"><a class="current reference internal" href="#">Quick Start</a><ul> | |||
| <li class="toctree-l2"><a class="reference internal" href="#required-packages">Required packages</a></li> | |||
| <li class="toctree-l2"><a class="reference internal" href="#getting-and-installing-abl">Getting and installing ABL</a></li> | |||
| <li class="toctree-l2"><a class="reference internal" href="#a-quick-example">A quick example</a></li> | |||
| </ul> | |||
| </li> | |||
| </ul> | |||
| <p class="caption" role="heading"><span class="caption-text">Examples</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="../Examples/MNISTadd.html">MNISTadd</a></li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </nav> | |||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > | |||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | |||
| <a href="../index.html">ABL</a> | |||
| </nav> | |||
| <div class="wy-nav-content"> | |||
| <div class="rst-content"> | |||
| <div role="navigation" aria-label="Page navigation"> | |||
| <ul class="wy-breadcrumbs"> | |||
| <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> | |||
| <li class="breadcrumb-item active">Quick Start</li> | |||
| <li class="wy-breadcrumbs-aside"> | |||
| <a href="../_sources/ABL/Quick Start.rst.txt" rel="nofollow"> View page source</a> | |||
| </li> | |||
| </ul> | |||
| <hr/> | |||
| </div> | |||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | |||
| <div itemprop="articleBody"> | |||
| <section id="quick-start"> | |||
| <h1><a class="toc-backref" href="#id1" role="doc-backlink">Quick Start</a><a class="headerlink" href="#quick-start" title="Permalink to this heading"></a></h1> | |||
| <p>How to use</p> | |||
| <nav class="contents" id="table-of-contents"> | |||
| <p class="topic-title">Table of Contents</p> | |||
| <ul class="simple"> | |||
| <li><p><a class="reference internal" href="#quick-start" id="id1">Quick Start</a></p> | |||
| <ul> | |||
| <li><p><a class="reference internal" href="#required-packages" id="id2">Required packages</a></p></li> | |||
| <li><p><a class="reference internal" href="#getting-and-installing-abl" id="id3">Getting and installing ABL</a></p></li> | |||
| <li><p><a class="reference internal" href="#a-quick-example" id="id4">A quick example</a></p></li> | |||
| </ul> | |||
| </li> | |||
| </ul> | |||
| </nav> | |||
| <section id="required-packages"> | |||
| <h2><a class="toc-backref" href="#id2" role="doc-backlink">Required packages</a><a class="headerlink" href="#required-packages" title="Permalink to this heading"></a></h2> | |||
| <p>This package requires the following packages:</p> | |||
| <ul class="simple"> | |||
| <li><p>Python version above 3.x</p></li> | |||
| <li><p><code class="docutils literal notranslate"><span class="pre">numpy</span></code> <a class="reference external" href="http://www.numpy.org">http://www.numpy.org</a></p></li> | |||
| </ul> | |||
| <p>The easiest way to get these is to use | |||
| <a class="reference external" href="https://pypi.python.org/pypi/pip">pip</a> or | |||
| <a class="reference external" href="https://www.anaconda.com/what-is-anaconda/">conda</a> environment | |||
| manager. Typing the following command in your terminal will install all | |||
| required packages in your Python environment.</p> | |||
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>conda install numpy | |||
| </pre></div> | |||
| </div> | |||
| <p>or</p> | |||
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>pip install numpy | |||
| </pre></div> | |||
| </div> | |||
| </section> | |||
| <section id="getting-and-installing-abl"> | |||
| <h2><a class="toc-backref" href="#id3" role="doc-backlink">Getting and installing ABL</a><a class="headerlink" href="#getting-and-installing-abl" title="Permalink to this heading"></a></h2> | |||
| <p>The easiest way to install ABL is to type <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">ABL</span></code> in you | |||
| terminal/command line.</p> | |||
| <p>If you want to install ABL by source code, download this project and | |||
| sequentially run following commands in your terminal/command line.</p> | |||
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>python setup.py build | |||
| <span class="gp">$ </span>python setup.py install | |||
| </pre></div> | |||
| </div> | |||
| </section> | |||
| <section id="a-quick-example"> | |||
| <h2><a class="toc-backref" href="#id4" role="doc-backlink">A quick example</a><a class="headerlink" href="#a-quick-example" title="Permalink to this heading"></a></h2> | |||
| <p>Show an example.</p> | |||
| <p>More examples are available in the <strong>Example</strong> part.</p> | |||
| </section> | |||
| </section> | |||
| </div> | |||
| </div> | |||
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> | |||
| <a href="Abductive%20Learning.html" class="btn btn-neutral float-left" title="Abductive Learning" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> | |||
| <a href="../Examples/MNISTadd.html" class="btn btn-neutral float-right" title="MNISTadd" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> | |||
| </div> | |||
| <hr/> | |||
| <div role="contentinfo"> | |||
| <p>© Copyright Yu-Xuan Huang, Wen-Chao Hu, En-Hao Gao.</p> | |||
| </div> | |||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | |||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | |||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | |||
| </footer> | |||
| </div> | |||
| </div> | |||
| </section> | |||
| </div> | |||
| <script> | |||
| jQuery(function () { | |||
| SphinxRtdTheme.Navigation.enable(true); | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,115 @@ | |||
| <!DOCTYPE html> | |||
| <html class="writer-html5" lang="en" > | |||
| <head> | |||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
| <title>MNISTadd — ABL 0.1.0 documentation</title> | |||
| <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> | |||
| <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> | |||
| <!--[if lt IE 9]> | |||
| <script src="../_static/js/html5shiv.min.js"></script> | |||
| <![endif]--> | |||
| <script src="../_static/jquery.js"></script> | |||
| <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> | |||
| <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> | |||
| <script src="../_static/doctools.js"></script> | |||
| <script src="../_static/sphinx_highlight.js"></script> | |||
| <script src="../_static/js/theme.js"></script> | |||
| <link rel="index" title="Index" href="../genindex.html" /> | |||
| <link rel="search" title="Search" href="../search.html" /> | |||
| <link rel="prev" title="Quick Start" href="../ABL/Quick%20Start.html" /> | |||
| </head> | |||
| <body class="wy-body-for-nav"> | |||
| <div class="wy-grid-for-nav"> | |||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | |||
| <div class="wy-side-scroll"> | |||
| <div class="wy-side-nav-search" > | |||
| <a href="../index.html" class="icon icon-home"> | |||
| ABL | |||
| </a> | |||
| <div class="version"> | |||
| 0.1.0 | |||
| </div> | |||
| <div role="search"> | |||
| <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> | |||
| <input type="text" name="q" placeholder="Search docs" aria-label="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="Navigation menu"> | |||
| <p class="caption" role="heading"><span class="caption-text">Tutorial of ABL</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="../ABL/Abductive%20Learning.html">Abductive Learning</a></li> | |||
| <li class="toctree-l1"><a class="reference internal" href="../ABL/Quick%20Start.html">Quick Start</a></li> | |||
| </ul> | |||
| <p class="caption" role="heading"><span class="caption-text">Examples</span></p> | |||
| <ul class="current"> | |||
| <li class="toctree-l1 current"><a class="current reference internal" href="#">MNISTadd</a></li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </nav> | |||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > | |||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | |||
| <a href="../index.html">ABL</a> | |||
| </nav> | |||
| <div class="wy-nav-content"> | |||
| <div class="rst-content"> | |||
| <div role="navigation" aria-label="Page navigation"> | |||
| <ul class="wy-breadcrumbs"> | |||
| <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> | |||
| <li class="breadcrumb-item active">MNISTadd</li> | |||
| <li class="wy-breadcrumbs-aside"> | |||
| <a href="../_sources/Examples/MNISTadd.rst.txt" rel="nofollow"> View page source</a> | |||
| </li> | |||
| </ul> | |||
| <hr/> | |||
| </div> | |||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | |||
| <div itemprop="articleBody"> | |||
| <section id="mnistadd"> | |||
| <h1>MNISTadd<a class="headerlink" href="#mnistadd" title="Permalink to this heading"></a></h1> | |||
| </section> | |||
| </div> | |||
| </div> | |||
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> | |||
| <a href="../ABL/Quick%20Start.html" class="btn btn-neutral float-left" title="Quick Start" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> | |||
| </div> | |||
| <hr/> | |||
| <div role="contentinfo"> | |||
| <p>© Copyright Yu-Xuan Huang, Wen-Chao Hu, En-Hao Gao.</p> | |||
| </div> | |||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | |||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | |||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | |||
| </footer> | |||
| </div> | |||
| </div> | |||
| </section> | |||
| </div> | |||
| <script> | |||
| jQuery(function () { | |||
| SphinxRtdTheme.Navigation.enable(true); | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,129 @@ | |||
| <!DOCTYPE html> | |||
| <html class="writer-html5" lang="en" > | |||
| <head> | |||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
| <title>ABL — ABL 0.1.0 documentation</title> | |||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | |||
| <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> | |||
| <!--[if lt IE 9]> | |||
| <script src="_static/js/html5shiv.min.js"></script> | |||
| <![endif]--> | |||
| <script src="_static/jquery.js"></script> | |||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | |||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | |||
| <script src="_static/doctools.js"></script> | |||
| <script src="_static/sphinx_highlight.js"></script> | |||
| <script src="_static/js/theme.js"></script> | |||
| <link rel="index" title="Index" href="genindex.html" /> | |||
| <link rel="search" title="Search" href="search.html" /> | |||
| </head> | |||
| <body class="wy-body-for-nav"> | |||
| <div class="wy-grid-for-nav"> | |||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | |||
| <div class="wy-side-scroll"> | |||
| <div class="wy-side-nav-search" > | |||
| <a href="index.html" class="icon icon-home"> | |||
| ABL | |||
| </a> | |||
| <div class="version"> | |||
| 0.1.0 | |||
| </div> | |||
| <div role="search"> | |||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | |||
| <input type="text" name="q" placeholder="Search docs" aria-label="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="Navigation menu"> | |||
| <p class="caption" role="heading"><span class="caption-text">Tutorial of ABL</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="ABL/Abductive%20Learning.html">Abductive Learning</a></li> | |||
| <li class="toctree-l1"><a class="reference internal" href="ABL/Quick%20Start.html">Quick Start</a></li> | |||
| </ul> | |||
| <p class="caption" role="heading"><span class="caption-text">Examples</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="Examples/MNISTadd.html">MNISTadd</a></li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </nav> | |||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > | |||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | |||
| <a href="index.html">ABL</a> | |||
| </nav> | |||
| <div class="wy-nav-content"> | |||
| <div class="rst-content"> | |||
| <div role="navigation" aria-label="Page navigation"> | |||
| <ul class="wy-breadcrumbs"> | |||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | |||
| <li class="breadcrumb-item active">ABL</li> | |||
| <li class="wy-breadcrumbs-aside"> | |||
| <a href="_sources/README.rst.txt" rel="nofollow"> View page source</a> | |||
| </li> | |||
| </ul> | |||
| <hr/> | |||
| </div> | |||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | |||
| <div itemprop="articleBody"> | |||
| <section id="abl"> | |||
| <h1>ABL<a class="headerlink" href="#abl" title="Permalink to this heading"></a></h1> | |||
| <p>ABL(Abductive Learning) is …</p> | |||
| <section id="installation"> | |||
| <h2>Installation<a class="headerlink" href="#installation" title="Permalink to this heading"></a></h2> | |||
| <p>ABL is distributed on PyPI and can be installed with <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p> | |||
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>pip install ABL | |||
| </pre></div> | |||
| </div> | |||
| <p>Alternatively, to install ABL by source code, download this project and sequentially run following commands in your terminal/command line.</p> | |||
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>python setup.py build | |||
| <span class="gp">$ </span>python setup.py install | |||
| </pre></div> | |||
| </div> | |||
| </section> | |||
| <section id="releases"> | |||
| <h2>Releases<a class="headerlink" href="#releases" title="Permalink to this heading"></a></h2> | |||
| <p><a class="reference external" href="https://github.com/AbductiveLearning/ABL-Package/releases/tag/v0.1">release 0.1</a></p> | |||
| </section> | |||
| </section> | |||
| </div> | |||
| </div> | |||
| <footer> | |||
| <hr/> | |||
| <div role="contentinfo"> | |||
| <p>© Copyright Yu-Xuan Huang, Wen-Chao Hu, En-Hao Gao.</p> | |||
| </div> | |||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | |||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | |||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | |||
| </footer> | |||
| </div> | |||
| </div> | |||
| </section> | |||
| </div> | |||
| <script> | |||
| jQuery(function () { | |||
| SphinxRtdTheme.Navigation.enable(true); | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,5 @@ | |||
| ----------------------------- | |||
| Abductive Learning | |||
| ----------------------------- | |||
| What is ABL | |||
| @@ -0,0 +1,52 @@ | |||
| --------------- | |||
| Quick Start | |||
| --------------- | |||
| How to use | |||
| .. contents:: Table of Contents | |||
| Required packages | |||
| ----------------- | |||
| This package requires the following packages: | |||
| - Python version above 3.x | |||
| - ``numpy`` http://www.numpy.org | |||
| The easiest way to get these is to use | |||
| `pip <https://pypi.python.org/pypi/pip>`__ or | |||
| `conda <https://www.anaconda.com/what-is-anaconda/>`__ environment | |||
| manager. Typing the following command in your terminal will install all | |||
| required packages in your Python environment. | |||
| .. code:: console | |||
| $ conda install numpy | |||
| or | |||
| .. code:: console | |||
| $ pip install numpy | |||
| Getting and installing ABL | |||
| ---------------------------- | |||
| The easiest way to install ABL is to type ``pip install ABL`` in you | |||
| terminal/command line. | |||
| If you want to install ABL by source code, download this project and | |||
| sequentially run following commands in your terminal/command line. | |||
| .. code:: console | |||
| $ python setup.py build | |||
| $ python setup.py install | |||
| A quick example | |||
| --------------- | |||
| Show an example. | |||
| More examples are available in the **Example** part. | |||
| @@ -0,0 +1,3 @@ | |||
| ------------------------------------- | |||
| MNISTadd | |||
| ------------------------------------- | |||
| @@ -0,0 +1,27 @@ | |||
| ABL | |||
| ^^^^^^ | |||
| ABL(Abductive Learning) is ... | |||
| Installation | |||
| ------------- | |||
| ABL is distributed on PyPI and can be installed with ``pip``: | |||
| .. code:: console | |||
| $ pip install ABL | |||
| Alternatively, to install ABL by source code, download this project and sequentially run following commands in your terminal/command line. | |||
| .. code:: console | |||
| $ python setup.py build | |||
| $ python setup.py install | |||
| Releases | |||
| -------- | |||
| `release 0.1`_ | |||
| .. _release 0.1: https://github.com/AbductiveLearning/ABL-Package/releases/tag/v0.1 | |||
| @@ -0,0 +1,15 @@ | |||
| .. include:: README.rst | |||
| .. toctree:: | |||
| :caption: Tutorial of ABL | |||
| :maxdepth: 2 | |||
| ABL/Abductive Learning.rst | |||
| ABL/Quick Start.rst | |||
| .. toctree:: | |||
| :caption: Examples | |||
| :maxdepth: 2 | |||
| Examples/MNISTadd.rst | |||
| @@ -0,0 +1,123 @@ | |||
| /* Compatability shim for jQuery and underscores.js. | |||
| * | |||
| * Copyright Sphinx contributors | |||
| * Released under the two clause BSD licence | |||
| */ | |||
| /** | |||
| * small helper function to urldecode strings | |||
| * | |||
| * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL | |||
| */ | |||
| jQuery.urldecode = function(x) { | |||
| if (!x) { | |||
| return x | |||
| } | |||
| return decodeURIComponent(x.replace(/\+/g, ' ')); | |||
| }; | |||
| /** | |||
| * small helper function to urlencode strings | |||
| */ | |||
| jQuery.urlencode = encodeURIComponent; | |||
| /** | |||
| * This function returns the parsed url parameters of the | |||
| * current request. Multiple values per key are supported, | |||
| * it will always return arrays of strings for the value parts. | |||
| */ | |||
| jQuery.getQueryParameters = function(s) { | |||
| if (typeof s === 'undefined') | |||
| s = document.location.search; | |||
| var parts = s.substr(s.indexOf('?') + 1).split('&'); | |||
| var result = {}; | |||
| for (var i = 0; i < parts.length; i++) { | |||
| var tmp = parts[i].split('=', 2); | |||
| var key = jQuery.urldecode(tmp[0]); | |||
| var value = jQuery.urldecode(tmp[1]); | |||
| if (key in result) | |||
| result[key].push(value); | |||
| else | |||
| result[key] = [value]; | |||
| } | |||
| return result; | |||
| }; | |||
| /** | |||
| * highlight a given string on a jquery object by wrapping it in | |||
| * span elements with the given class name. | |||
| */ | |||
| jQuery.fn.highlightText = function(text, className) { | |||
| function highlight(node, addItems) { | |||
| if (node.nodeType === 3) { | |||
| var val = node.nodeValue; | |||
| var pos = val.toLowerCase().indexOf(text); | |||
| if (pos >= 0 && | |||
| !jQuery(node.parentNode).hasClass(className) && | |||
| !jQuery(node.parentNode).hasClass("nohighlight")) { | |||
| var span; | |||
| var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); | |||
| if (isInSVG) { | |||
| span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | |||
| } else { | |||
| span = document.createElement("span"); | |||
| span.className = className; | |||
| } | |||
| span.appendChild(document.createTextNode(val.substr(pos, text.length))); | |||
| node.parentNode.insertBefore(span, node.parentNode.insertBefore( | |||
| document.createTextNode(val.substr(pos + text.length)), | |||
| node.nextSibling)); | |||
| node.nodeValue = val.substr(0, pos); | |||
| if (isInSVG) { | |||
| var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); | |||
| var bbox = node.parentElement.getBBox(); | |||
| rect.x.baseVal.value = bbox.x; | |||
| rect.y.baseVal.value = bbox.y; | |||
| rect.width.baseVal.value = bbox.width; | |||
| rect.height.baseVal.value = bbox.height; | |||
| rect.setAttribute('class', className); | |||
| addItems.push({ | |||
| "parent": node.parentNode, | |||
| "target": rect}); | |||
| } | |||
| } | |||
| } | |||
| else if (!jQuery(node).is("button, select, textarea")) { | |||
| jQuery.each(node.childNodes, function() { | |||
| highlight(this, addItems); | |||
| }); | |||
| } | |||
| } | |||
| var addItems = []; | |||
| var result = this.each(function() { | |||
| highlight(this, addItems); | |||
| }); | |||
| for (var i = 0; i < addItems.length; ++i) { | |||
| jQuery(addItems[i].parent).before(addItems[i].target); | |||
| } | |||
| return result; | |||
| }; | |||
| /* | |||
| * backward compatibility for jQuery.browser | |||
| * This will be supported until firefox bug is fixed. | |||
| */ | |||
| if (!jQuery.browser) { | |||
| jQuery.uaMatch = function(ua) { | |||
| ua = ua.toLowerCase(); | |||
| var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || | |||
| /(webkit)[ \/]([\w.]+)/.exec(ua) || | |||
| /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || | |||
| /(msie) ([\w.]+)/.exec(ua) || | |||
| ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || | |||
| []; | |||
| return { | |||
| browser: match[ 1 ] || "", | |||
| version: match[ 2 ] || "0" | |||
| }; | |||
| }; | |||
| jQuery.browser = {}; | |||
| jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; | |||
| } | |||
| @@ -0,0 +1,903 @@ | |||
| /* | |||
| * basic.css | |||
| * ~~~~~~~~~ | |||
| * | |||
| * Sphinx stylesheet -- basic theme. | |||
| * | |||
| * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. | |||
| * :license: BSD, see LICENSE for details. | |||
| * | |||
| */ | |||
| /* -- main layout ----------------------------------------------------------- */ | |||
| div.clearer { | |||
| clear: both; | |||
| } | |||
| div.section::after { | |||
| display: block; | |||
| content: ''; | |||
| clear: left; | |||
| } | |||
| /* -- relbar ---------------------------------------------------------------- */ | |||
| div.related { | |||
| width: 100%; | |||
| font-size: 90%; | |||
| } | |||
| div.related h3 { | |||
| display: none; | |||
| } | |||
| div.related ul { | |||
| margin: 0; | |||
| padding: 0 0 0 10px; | |||
| list-style: none; | |||
| } | |||
| div.related li { | |||
| display: inline; | |||
| } | |||
| div.related li.right { | |||
| float: right; | |||
| margin-right: 5px; | |||
| } | |||
| /* -- sidebar --------------------------------------------------------------- */ | |||
| div.sphinxsidebarwrapper { | |||
| padding: 10px 5px 0 10px; | |||
| } | |||
| div.sphinxsidebar { | |||
| float: left; | |||
| width: 230px; | |||
| margin-left: -100%; | |||
| font-size: 90%; | |||
| word-wrap: break-word; | |||
| overflow-wrap : break-word; | |||
| } | |||
| div.sphinxsidebar ul { | |||
| list-style: none; | |||
| } | |||
| div.sphinxsidebar ul ul, | |||
| div.sphinxsidebar ul.want-points { | |||
| margin-left: 20px; | |||
| list-style: square; | |||
| } | |||
| div.sphinxsidebar ul ul { | |||
| margin-top: 0; | |||
| margin-bottom: 0; | |||
| } | |||
| div.sphinxsidebar form { | |||
| margin-top: 10px; | |||
| } | |||
| div.sphinxsidebar input { | |||
| border: 1px solid #98dbcc; | |||
| font-family: sans-serif; | |||
| font-size: 1em; | |||
| } | |||
| div.sphinxsidebar #searchbox form.search { | |||
| overflow: hidden; | |||
| } | |||
| div.sphinxsidebar #searchbox input[type="text"] { | |||
| float: left; | |||
| width: 80%; | |||
| padding: 0.25em; | |||
| box-sizing: border-box; | |||
| } | |||
| div.sphinxsidebar #searchbox input[type="submit"] { | |||
| float: left; | |||
| width: 20%; | |||
| border-left: none; | |||
| padding: 0.25em; | |||
| box-sizing: border-box; | |||
| } | |||
| img { | |||
| border: 0; | |||
| max-width: 100%; | |||
| } | |||
| /* -- search page ----------------------------------------------------------- */ | |||
| ul.search { | |||
| margin: 10px 0 0 20px; | |||
| padding: 0; | |||
| } | |||
| ul.search li { | |||
| padding: 5px 0 5px 20px; | |||
| background-image: url(file.png); | |||
| background-repeat: no-repeat; | |||
| background-position: 0 7px; | |||
| } | |||
| ul.search li a { | |||
| font-weight: bold; | |||
| } | |||
| ul.search li p.context { | |||
| color: #888; | |||
| margin: 2px 0 0 30px; | |||
| text-align: left; | |||
| } | |||
| ul.keywordmatches li.goodmatch a { | |||
| font-weight: bold; | |||
| } | |||
| /* -- index page ------------------------------------------------------------ */ | |||
| table.contentstable { | |||
| width: 90%; | |||
| margin-left: auto; | |||
| margin-right: auto; | |||
| } | |||
| table.contentstable p.biglink { | |||
| line-height: 150%; | |||
| } | |||
| a.biglink { | |||
| font-size: 1.3em; | |||
| } | |||
| span.linkdescr { | |||
| font-style: italic; | |||
| padding-top: 5px; | |||
| font-size: 90%; | |||
| } | |||
| /* -- general index --------------------------------------------------------- */ | |||
| table.indextable { | |||
| width: 100%; | |||
| } | |||
| table.indextable td { | |||
| text-align: left; | |||
| vertical-align: top; | |||
| } | |||
| table.indextable ul { | |||
| margin-top: 0; | |||
| margin-bottom: 0; | |||
| list-style-type: none; | |||
| } | |||
| table.indextable > tbody > tr > td > ul { | |||
| padding-left: 0em; | |||
| } | |||
| table.indextable tr.pcap { | |||
| height: 10px; | |||
| } | |||
| table.indextable tr.cap { | |||
| margin-top: 10px; | |||
| background-color: #f2f2f2; | |||
| } | |||
| img.toggler { | |||
| margin-right: 3px; | |||
| margin-top: 3px; | |||
| cursor: pointer; | |||
| } | |||
| div.modindex-jumpbox { | |||
| border-top: 1px solid #ddd; | |||
| border-bottom: 1px solid #ddd; | |||
| margin: 1em 0 1em 0; | |||
| padding: 0.4em; | |||
| } | |||
| div.genindex-jumpbox { | |||
| border-top: 1px solid #ddd; | |||
| border-bottom: 1px solid #ddd; | |||
| margin: 1em 0 1em 0; | |||
| padding: 0.4em; | |||
| } | |||
| /* -- domain module index --------------------------------------------------- */ | |||
| table.modindextable td { | |||
| padding: 2px; | |||
| border-collapse: collapse; | |||
| } | |||
| /* -- general body styles --------------------------------------------------- */ | |||
| div.body { | |||
| min-width: 360px; | |||
| max-width: 800px; | |||
| } | |||
| div.body p, div.body dd, div.body li, div.body blockquote { | |||
| -moz-hyphens: auto; | |||
| -ms-hyphens: auto; | |||
| -webkit-hyphens: auto; | |||
| hyphens: auto; | |||
| } | |||
| a.headerlink { | |||
| visibility: hidden; | |||
| } | |||
| h1:hover > a.headerlink, | |||
| h2:hover > a.headerlink, | |||
| h3:hover > a.headerlink, | |||
| h4:hover > a.headerlink, | |||
| h5:hover > a.headerlink, | |||
| h6:hover > a.headerlink, | |||
| dt:hover > a.headerlink, | |||
| caption:hover > a.headerlink, | |||
| p.caption:hover > a.headerlink, | |||
| div.code-block-caption:hover > a.headerlink { | |||
| visibility: visible; | |||
| } | |||
| div.body p.caption { | |||
| text-align: inherit; | |||
| } | |||
| div.body td { | |||
| text-align: left; | |||
| } | |||
| .first { | |||
| margin-top: 0 !important; | |||
| } | |||
| p.rubric { | |||
| margin-top: 30px; | |||
| font-weight: bold; | |||
| } | |||
| img.align-left, figure.align-left, .figure.align-left, object.align-left { | |||
| clear: left; | |||
| float: left; | |||
| margin-right: 1em; | |||
| } | |||
| img.align-right, figure.align-right, .figure.align-right, object.align-right { | |||
| clear: right; | |||
| float: right; | |||
| margin-left: 1em; | |||
| } | |||
| img.align-center, figure.align-center, .figure.align-center, object.align-center { | |||
| display: block; | |||
| margin-left: auto; | |||
| margin-right: auto; | |||
| } | |||
| img.align-default, figure.align-default, .figure.align-default { | |||
| display: block; | |||
| margin-left: auto; | |||
| margin-right: auto; | |||
| } | |||
| .align-left { | |||
| text-align: left; | |||
| } | |||
| .align-center { | |||
| text-align: center; | |||
| } | |||
| .align-default { | |||
| text-align: center; | |||
| } | |||
| .align-right { | |||
| text-align: right; | |||
| } | |||
| /* -- sidebars -------------------------------------------------------------- */ | |||
| div.sidebar, | |||
| aside.sidebar { | |||
| margin: 0 0 0.5em 1em; | |||
| border: 1px solid #ddb; | |||
| padding: 7px; | |||
| background-color: #ffe; | |||
| width: 40%; | |||
| float: right; | |||
| clear: right; | |||
| overflow-x: auto; | |||
| } | |||
| p.sidebar-title { | |||
| font-weight: bold; | |||
| } | |||
| nav.contents, | |||
| aside.topic, | |||
| div.admonition, div.topic, blockquote { | |||
| clear: left; | |||
| } | |||
| /* -- topics ---------------------------------------------------------------- */ | |||
| nav.contents, | |||
| aside.topic, | |||
| div.topic { | |||
| border: 1px solid #ccc; | |||
| padding: 7px; | |||
| margin: 10px 0 10px 0; | |||
| } | |||
| p.topic-title { | |||
| font-size: 1.1em; | |||
| font-weight: bold; | |||
| margin-top: 10px; | |||
| } | |||
| /* -- admonitions ----------------------------------------------------------- */ | |||
| div.admonition { | |||
| margin-top: 10px; | |||
| margin-bottom: 10px; | |||
| padding: 7px; | |||
| } | |||
| div.admonition dt { | |||
| font-weight: bold; | |||
| } | |||
| p.admonition-title { | |||
| margin: 0px 10px 5px 0px; | |||
| font-weight: bold; | |||
| } | |||
| div.body p.centered { | |||
| text-align: center; | |||
| margin-top: 25px; | |||
| } | |||
| /* -- content of sidebars/topics/admonitions -------------------------------- */ | |||
| div.sidebar > :last-child, | |||
| aside.sidebar > :last-child, | |||
| nav.contents > :last-child, | |||
| aside.topic > :last-child, | |||
| div.topic > :last-child, | |||
| div.admonition > :last-child { | |||
| margin-bottom: 0; | |||
| } | |||
| div.sidebar::after, | |||
| aside.sidebar::after, | |||
| nav.contents::after, | |||
| aside.topic::after, | |||
| div.topic::after, | |||
| div.admonition::after, | |||
| blockquote::after { | |||
| display: block; | |||
| content: ''; | |||
| clear: both; | |||
| } | |||
| /* -- tables ---------------------------------------------------------------- */ | |||
| table.docutils { | |||
| margin-top: 10px; | |||
| margin-bottom: 10px; | |||
| border: 0; | |||
| border-collapse: collapse; | |||
| } | |||
| table.align-center { | |||
| margin-left: auto; | |||
| margin-right: auto; | |||
| } | |||
| table.align-default { | |||
| margin-left: auto; | |||
| margin-right: auto; | |||
| } | |||
| table caption span.caption-number { | |||
| font-style: italic; | |||
| } | |||
| table caption span.caption-text { | |||
| } | |||
| table.docutils td, table.docutils th { | |||
| padding: 1px 8px 1px 5px; | |||
| border-top: 0; | |||
| border-left: 0; | |||
| border-right: 0; | |||
| border-bottom: 1px solid #aaa; | |||
| } | |||
| th { | |||
| text-align: left; | |||
| padding-right: 5px; | |||
| } | |||
| table.citation { | |||
| border-left: solid 1px gray; | |||
| margin-left: 1px; | |||
| } | |||
| table.citation td { | |||
| border-bottom: none; | |||
| } | |||
| th > :first-child, | |||
| td > :first-child { | |||
| margin-top: 0px; | |||
| } | |||
| th > :last-child, | |||
| td > :last-child { | |||
| margin-bottom: 0px; | |||
| } | |||
| /* -- figures --------------------------------------------------------------- */ | |||
| div.figure, figure { | |||
| margin: 0.5em; | |||
| padding: 0.5em; | |||
| } | |||
| div.figure p.caption, figcaption { | |||
| padding: 0.3em; | |||
| } | |||
| div.figure p.caption span.caption-number, | |||
| figcaption span.caption-number { | |||
| font-style: italic; | |||
| } | |||
| div.figure p.caption span.caption-text, | |||
| figcaption span.caption-text { | |||
| } | |||
| /* -- field list styles ----------------------------------------------------- */ | |||
| table.field-list td, table.field-list th { | |||
| border: 0 !important; | |||
| } | |||
| .field-list ul { | |||
| margin: 0; | |||
| padding-left: 1em; | |||
| } | |||
| .field-list p { | |||
| margin: 0; | |||
| } | |||
| .field-name { | |||
| -moz-hyphens: manual; | |||
| -ms-hyphens: manual; | |||
| -webkit-hyphens: manual; | |||
| hyphens: manual; | |||
| } | |||
| /* -- hlist styles ---------------------------------------------------------- */ | |||
| table.hlist { | |||
| margin: 1em 0; | |||
| } | |||
| table.hlist td { | |||
| vertical-align: top; | |||
| } | |||
| /* -- object description styles --------------------------------------------- */ | |||
| .sig { | |||
| font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; | |||
| } | |||
| .sig-name, code.descname { | |||
| background-color: transparent; | |||
| font-weight: bold; | |||
| } | |||
| .sig-name { | |||
| font-size: 1.1em; | |||
| } | |||
| code.descname { | |||
| font-size: 1.2em; | |||
| } | |||
| .sig-prename, code.descclassname { | |||
| background-color: transparent; | |||
| } | |||
| .optional { | |||
| font-size: 1.3em; | |||
| } | |||
| .sig-paren { | |||
| font-size: larger; | |||
| } | |||
| .sig-param.n { | |||
| font-style: italic; | |||
| } | |||
| /* C++ specific styling */ | |||
| .sig-inline.c-texpr, | |||
| .sig-inline.cpp-texpr { | |||
| font-family: unset; | |||
| } | |||
| .sig.c .k, .sig.c .kt, | |||
| .sig.cpp .k, .sig.cpp .kt { | |||
| color: #0033B3; | |||
| } | |||
| .sig.c .m, | |||
| .sig.cpp .m { | |||
| color: #1750EB; | |||
| } | |||
| .sig.c .s, .sig.c .sc, | |||
| .sig.cpp .s, .sig.cpp .sc { | |||
| color: #067D17; | |||
| } | |||
| /* -- other body styles ----------------------------------------------------- */ | |||
| ol.arabic { | |||
| list-style: decimal; | |||
| } | |||
| ol.loweralpha { | |||
| list-style: lower-alpha; | |||
| } | |||
| ol.upperalpha { | |||
| list-style: upper-alpha; | |||
| } | |||
| ol.lowerroman { | |||
| list-style: lower-roman; | |||
| } | |||
| ol.upperroman { | |||
| list-style: upper-roman; | |||
| } | |||
| :not(li) > ol > li:first-child > :first-child, | |||
| :not(li) > ul > li:first-child > :first-child { | |||
| margin-top: 0px; | |||
| } | |||
| :not(li) > ol > li:last-child > :last-child, | |||
| :not(li) > ul > li:last-child > :last-child { | |||
| margin-bottom: 0px; | |||
| } | |||
| ol.simple ol p, | |||
| ol.simple ul p, | |||
| ul.simple ol p, | |||
| ul.simple ul p { | |||
| margin-top: 0; | |||
| } | |||
| ol.simple > li:not(:first-child) > p, | |||
| ul.simple > li:not(:first-child) > p { | |||
| margin-top: 0; | |||
| } | |||
| ol.simple p, | |||
| ul.simple p { | |||
| margin-bottom: 0; | |||
| } | |||
| aside.footnote > span, | |||
| div.citation > span { | |||
| float: left; | |||
| } | |||
| aside.footnote > span:last-of-type, | |||
| div.citation > span:last-of-type { | |||
| padding-right: 0.5em; | |||
| } | |||
| aside.footnote > p { | |||
| margin-left: 2em; | |||
| } | |||
| div.citation > p { | |||
| margin-left: 4em; | |||
| } | |||
| aside.footnote > p:last-of-type, | |||
| div.citation > p:last-of-type { | |||
| margin-bottom: 0em; | |||
| } | |||
| aside.footnote > p:last-of-type:after, | |||
| div.citation > p:last-of-type:after { | |||
| content: ""; | |||
| clear: both; | |||
| } | |||
| dl.field-list { | |||
| display: grid; | |||
| grid-template-columns: fit-content(30%) auto; | |||
| } | |||
| dl.field-list > dt { | |||
| font-weight: bold; | |||
| word-break: break-word; | |||
| padding-left: 0.5em; | |||
| padding-right: 5px; | |||
| } | |||
| dl.field-list > dd { | |||
| padding-left: 0.5em; | |||
| margin-top: 0em; | |||
| margin-left: 0em; | |||
| margin-bottom: 0em; | |||
| } | |||
| dl { | |||
| margin-bottom: 15px; | |||
| } | |||
| dd > :first-child { | |||
| margin-top: 0px; | |||
| } | |||
| dd ul, dd table { | |||
| margin-bottom: 10px; | |||
| } | |||
| dd { | |||
| margin-top: 3px; | |||
| margin-bottom: 10px; | |||
| margin-left: 30px; | |||
| } | |||
| dl > dd:last-child, | |||
| dl > dd:last-child > :last-child { | |||
| margin-bottom: 0; | |||
| } | |||
| dt:target, span.highlighted { | |||
| background-color: #fbe54e; | |||
| } | |||
| rect.highlighted { | |||
| fill: #fbe54e; | |||
| } | |||
| dl.glossary dt { | |||
| font-weight: bold; | |||
| font-size: 1.1em; | |||
| } | |||
| .versionmodified { | |||
| font-style: italic; | |||
| } | |||
| .system-message { | |||
| background-color: #fda; | |||
| padding: 5px; | |||
| border: 3px solid red; | |||
| } | |||
| .footnote:target { | |||
| background-color: #ffa; | |||
| } | |||
| .line-block { | |||
| display: block; | |||
| margin-top: 1em; | |||
| margin-bottom: 1em; | |||
| } | |||
| .line-block .line-block { | |||
| margin-top: 0; | |||
| margin-bottom: 0; | |||
| margin-left: 1.5em; | |||
| } | |||
| .guilabel, .menuselection { | |||
| font-family: sans-serif; | |||
| } | |||
| .accelerator { | |||
| text-decoration: underline; | |||
| } | |||
| .classifier { | |||
| font-style: oblique; | |||
| } | |||
| .classifier:before { | |||
| font-style: normal; | |||
| margin: 0 0.5em; | |||
| content: ":"; | |||
| display: inline-block; | |||
| } | |||
| abbr, acronym { | |||
| border-bottom: dotted 1px; | |||
| cursor: help; | |||
| } | |||
| /* -- code displays --------------------------------------------------------- */ | |||
| pre { | |||
| overflow: auto; | |||
| overflow-y: hidden; /* fixes display issues on Chrome browsers */ | |||
| } | |||
| pre, div[class*="highlight-"] { | |||
| clear: both; | |||
| } | |||
| span.pre { | |||
| -moz-hyphens: none; | |||
| -ms-hyphens: none; | |||
| -webkit-hyphens: none; | |||
| hyphens: none; | |||
| white-space: nowrap; | |||
| } | |||
| div[class*="highlight-"] { | |||
| margin: 1em 0; | |||
| } | |||
| td.linenos pre { | |||
| border: 0; | |||
| background-color: transparent; | |||
| color: #aaa; | |||
| } | |||
| table.highlighttable { | |||
| display: block; | |||
| } | |||
| table.highlighttable tbody { | |||
| display: block; | |||
| } | |||
| table.highlighttable tr { | |||
| display: flex; | |||
| } | |||
| table.highlighttable td { | |||
| margin: 0; | |||
| padding: 0; | |||
| } | |||
| table.highlighttable td.linenos { | |||
| padding-right: 0.5em; | |||
| } | |||
| table.highlighttable td.code { | |||
| flex: 1; | |||
| overflow: hidden; | |||
| } | |||
| .highlight .hll { | |||
| display: block; | |||
| } | |||
| div.highlight pre, | |||
| table.highlighttable pre { | |||
| margin: 0; | |||
| } | |||
| div.code-block-caption + div { | |||
| margin-top: 0; | |||
| } | |||
| div.code-block-caption { | |||
| margin-top: 1em; | |||
| padding: 2px 5px; | |||
| font-size: small; | |||
| } | |||
| div.code-block-caption code { | |||
| background-color: transparent; | |||
| } | |||
| table.highlighttable td.linenos, | |||
| span.linenos, | |||
| div.highlight span.gp { /* gp: Generic.Prompt */ | |||
| user-select: none; | |||
| -webkit-user-select: text; /* Safari fallback only */ | |||
| -webkit-user-select: none; /* Chrome/Safari */ | |||
| -moz-user-select: none; /* Firefox */ | |||
| -ms-user-select: none; /* IE10+ */ | |||
| } | |||
| div.code-block-caption span.caption-number { | |||
| padding: 0.1em 0.3em; | |||
| font-style: italic; | |||
| } | |||
| div.code-block-caption span.caption-text { | |||
| } | |||
| div.literal-block-wrapper { | |||
| margin: 1em 0; | |||
| } | |||
| code.xref, a code { | |||
| background-color: transparent; | |||
| font-weight: bold; | |||
| } | |||
| h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { | |||
| background-color: transparent; | |||
| } | |||
| .viewcode-link { | |||
| float: right; | |||
| } | |||
| .viewcode-back { | |||
| float: right; | |||
| font-family: sans-serif; | |||
| } | |||
| div.viewcode-block:target { | |||
| margin: -1px -10px; | |||
| padding: 0 10px; | |||
| } | |||
| /* -- math display ---------------------------------------------------------- */ | |||
| img.math { | |||
| vertical-align: middle; | |||
| } | |||
| div.body div.math p { | |||
| text-align: center; | |||
| } | |||
| span.eqno { | |||
| float: right; | |||
| } | |||
| span.eqno a.headerlink { | |||
| position: absolute; | |||
| z-index: 1; | |||
| } | |||
| div.math:hover a.headerlink { | |||
| visibility: visible; | |||
| } | |||
| /* -- printout stylesheet --------------------------------------------------- */ | |||
| @media print { | |||
| div.document, | |||
| div.documentwrapper, | |||
| div.bodywrapper { | |||
| margin: 0 !important; | |||
| width: 100%; | |||
| } | |||
| div.sphinxsidebar, | |||
| div.related, | |||
| div.footer, | |||
| #top-link { | |||
| display: none; | |||
| } | |||
| } | |||
| @@ -0,0 +1 @@ | |||
| .clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} | |||
| @@ -0,0 +1,156 @@ | |||
| /* | |||
| * doctools.js | |||
| * ~~~~~~~~~~~ | |||
| * | |||
| * Base JavaScript utilities for all Sphinx HTML documentation. | |||
| * | |||
| * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. | |||
| * :license: BSD, see LICENSE for details. | |||
| * | |||
| */ | |||
| "use strict"; | |||
| const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ | |||
| "TEXTAREA", | |||
| "INPUT", | |||
| "SELECT", | |||
| "BUTTON", | |||
| ]); | |||
| const _ready = (callback) => { | |||
| if (document.readyState !== "loading") { | |||
| callback(); | |||
| } else { | |||
| document.addEventListener("DOMContentLoaded", callback); | |||
| } | |||
| }; | |||
| /** | |||
| * Small JavaScript module for the documentation. | |||
| */ | |||
| const Documentation = { | |||
| init: () => { | |||
| Documentation.initDomainIndexTable(); | |||
| Documentation.initOnKeyListeners(); | |||
| }, | |||
| /** | |||
| * i18n support | |||
| */ | |||
| TRANSLATIONS: {}, | |||
| PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), | |||
| LOCALE: "unknown", | |||
| // gettext and ngettext don't access this so that the functions | |||
| // can safely bound to a different name (_ = Documentation.gettext) | |||
| gettext: (string) => { | |||
| const translated = Documentation.TRANSLATIONS[string]; | |||
| switch (typeof translated) { | |||
| case "undefined": | |||
| return string; // no translation | |||
| case "string": | |||
| return translated; // translation exists | |||
| default: | |||
| return translated[0]; // (singular, plural) translation tuple exists | |||
| } | |||
| }, | |||
| ngettext: (singular, plural, n) => { | |||
| const translated = Documentation.TRANSLATIONS[singular]; | |||
| if (typeof translated !== "undefined") | |||
| return translated[Documentation.PLURAL_EXPR(n)]; | |||
| return n === 1 ? singular : plural; | |||
| }, | |||
| addTranslations: (catalog) => { | |||
| Object.assign(Documentation.TRANSLATIONS, catalog.messages); | |||
| Documentation.PLURAL_EXPR = new Function( | |||
| "n", | |||
| `return (${catalog.plural_expr})` | |||
| ); | |||
| Documentation.LOCALE = catalog.locale; | |||
| }, | |||
| /** | |||
| * helper function to focus on search bar | |||
| */ | |||
| focusSearchBar: () => { | |||
| document.querySelectorAll("input[name=q]")[0]?.focus(); | |||
| }, | |||
| /** | |||
| * Initialise the domain index toggle buttons | |||
| */ | |||
| initDomainIndexTable: () => { | |||
| const toggler = (el) => { | |||
| const idNumber = el.id.substr(7); | |||
| const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); | |||
| if (el.src.substr(-9) === "minus.png") { | |||
| el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; | |||
| toggledRows.forEach((el) => (el.style.display = "none")); | |||
| } else { | |||
| el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; | |||
| toggledRows.forEach((el) => (el.style.display = "")); | |||
| } | |||
| }; | |||
| const togglerElements = document.querySelectorAll("img.toggler"); | |||
| togglerElements.forEach((el) => | |||
| el.addEventListener("click", (event) => toggler(event.currentTarget)) | |||
| ); | |||
| togglerElements.forEach((el) => (el.style.display = "")); | |||
| if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); | |||
| }, | |||
| initOnKeyListeners: () => { | |||
| // only install a listener if it is really needed | |||
| if ( | |||
| !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && | |||
| !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS | |||
| ) | |||
| return; | |||
| document.addEventListener("keydown", (event) => { | |||
| // bail for input elements | |||
| if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; | |||
| // bail with special keys | |||
| if (event.altKey || event.ctrlKey || event.metaKey) return; | |||
| if (!event.shiftKey) { | |||
| switch (event.key) { | |||
| case "ArrowLeft": | |||
| if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; | |||
| const prevLink = document.querySelector('link[rel="prev"]'); | |||
| if (prevLink && prevLink.href) { | |||
| window.location.href = prevLink.href; | |||
| event.preventDefault(); | |||
| } | |||
| break; | |||
| case "ArrowRight": | |||
| if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; | |||
| const nextLink = document.querySelector('link[rel="next"]'); | |||
| if (nextLink && nextLink.href) { | |||
| window.location.href = nextLink.href; | |||
| event.preventDefault(); | |||
| } | |||
| break; | |||
| } | |||
| } | |||
| // some keyboard layouts may need Shift to get / | |||
| switch (event.key) { | |||
| case "/": | |||
| if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; | |||
| Documentation.focusSearchBar(); | |||
| event.preventDefault(); | |||
| } | |||
| }); | |||
| }, | |||
| }; | |||
| // quick alias for translations | |||
| const _ = Documentation.gettext; | |||
| _ready(Documentation.init); | |||
| @@ -0,0 +1,14 @@ | |||
| var DOCUMENTATION_OPTIONS = { | |||
| URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), | |||
| VERSION: '0.1.0', | |||
| LANGUAGE: 'en', | |||
| COLLAPSE_INDEX: false, | |||
| BUILDER: 'html', | |||
| FILE_SUFFIX: '.html', | |||
| LINK_SUFFIX: '.html', | |||
| HAS_SOURCE: true, | |||
| SOURCELINK_SUFFIX: '.txt', | |||
| NAVIGATION_WITH_KEYS: false, | |||
| SHOW_SEARCH_SUMMARY: true, | |||
| ENABLE_SEARCH_SHORTCUTS: true, | |||
| }; | |||
| @@ -0,0 +1 @@ | |||
| !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}}); | |||
| @@ -0,0 +1,4 @@ | |||
| /** | |||
| * @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed | |||
| */ | |||
| !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); | |||
| @@ -0,0 +1,4 @@ | |||
| /** | |||
| * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed | |||
| */ | |||
| !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); | |||
| @@ -0,0 +1,199 @@ | |||
| /* | |||
| * language_data.js | |||
| * ~~~~~~~~~~~~~~~~ | |||
| * | |||
| * This script contains the language-specific data used by searchtools.js, | |||
| * namely the list of stopwords, stemmer, scorer and splitter. | |||
| * | |||
| * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. | |||
| * :license: BSD, see LICENSE for details. | |||
| * | |||
| */ | |||
| var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; | |||
| /* Non-minified version is copied as a separate JS file, is available */ | |||
| /** | |||
| * Porter Stemmer | |||
| */ | |||
| var Stemmer = function() { | |||
| var step2list = { | |||
| ational: 'ate', | |||
| tional: 'tion', | |||
| enci: 'ence', | |||
| anci: 'ance', | |||
| izer: 'ize', | |||
| bli: 'ble', | |||
| alli: 'al', | |||
| entli: 'ent', | |||
| eli: 'e', | |||
| ousli: 'ous', | |||
| ization: 'ize', | |||
| ation: 'ate', | |||
| ator: 'ate', | |||
| alism: 'al', | |||
| iveness: 'ive', | |||
| fulness: 'ful', | |||
| ousness: 'ous', | |||
| aliti: 'al', | |||
| iviti: 'ive', | |||
| biliti: 'ble', | |||
| logi: 'log' | |||
| }; | |||
| var step3list = { | |||
| icate: 'ic', | |||
| ative: '', | |||
| alize: 'al', | |||
| iciti: 'ic', | |||
| ical: 'ic', | |||
| ful: '', | |||
| ness: '' | |||
| }; | |||
| var c = "[^aeiou]"; // consonant | |||
| var v = "[aeiouy]"; // vowel | |||
| var C = c + "[^aeiouy]*"; // consonant sequence | |||
| var V = v + "[aeiou]*"; // vowel sequence | |||
| var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 | |||
| var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 | |||
| var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 | |||
| var s_v = "^(" + C + ")?" + v; // vowel in stem | |||
| this.stemWord = function (w) { | |||
| var stem; | |||
| var suffix; | |||
| var firstch; | |||
| var origword = w; | |||
| if (w.length < 3) | |||
| return w; | |||
| var re; | |||
| var re2; | |||
| var re3; | |||
| var re4; | |||
| firstch = w.substr(0,1); | |||
| if (firstch == "y") | |||
| w = firstch.toUpperCase() + w.substr(1); | |||
| // Step 1a | |||
| re = /^(.+?)(ss|i)es$/; | |||
| re2 = /^(.+?)([^s])s$/; | |||
| if (re.test(w)) | |||
| w = w.replace(re,"$1$2"); | |||
| else if (re2.test(w)) | |||
| w = w.replace(re2,"$1$2"); | |||
| // Step 1b | |||
| re = /^(.+?)eed$/; | |||
| re2 = /^(.+?)(ed|ing)$/; | |||
| if (re.test(w)) { | |||
| var fp = re.exec(w); | |||
| re = new RegExp(mgr0); | |||
| if (re.test(fp[1])) { | |||
| re = /.$/; | |||
| w = w.replace(re,""); | |||
| } | |||
| } | |||
| else if (re2.test(w)) { | |||
| var fp = re2.exec(w); | |||
| stem = fp[1]; | |||
| re2 = new RegExp(s_v); | |||
| if (re2.test(stem)) { | |||
| w = stem; | |||
| re2 = /(at|bl|iz)$/; | |||
| re3 = new RegExp("([^aeiouylsz])\\1$"); | |||
| re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); | |||
| if (re2.test(w)) | |||
| w = w + "e"; | |||
| else if (re3.test(w)) { | |||
| re = /.$/; | |||
| w = w.replace(re,""); | |||
| } | |||
| else if (re4.test(w)) | |||
| w = w + "e"; | |||
| } | |||
| } | |||
| // Step 1c | |||
| re = /^(.+?)y$/; | |||
| if (re.test(w)) { | |||
| var fp = re.exec(w); | |||
| stem = fp[1]; | |||
| re = new RegExp(s_v); | |||
| if (re.test(stem)) | |||
| w = stem + "i"; | |||
| } | |||
| // Step 2 | |||
| re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; | |||
| if (re.test(w)) { | |||
| var fp = re.exec(w); | |||
| stem = fp[1]; | |||
| suffix = fp[2]; | |||
| re = new RegExp(mgr0); | |||
| if (re.test(stem)) | |||
| w = stem + step2list[suffix]; | |||
| } | |||
| // Step 3 | |||
| re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; | |||
| if (re.test(w)) { | |||
| var fp = re.exec(w); | |||
| stem = fp[1]; | |||
| suffix = fp[2]; | |||
| re = new RegExp(mgr0); | |||
| if (re.test(stem)) | |||
| w = stem + step3list[suffix]; | |||
| } | |||
| // Step 4 | |||
| re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; | |||
| re2 = /^(.+?)(s|t)(ion)$/; | |||
| if (re.test(w)) { | |||
| var fp = re.exec(w); | |||
| stem = fp[1]; | |||
| re = new RegExp(mgr1); | |||
| if (re.test(stem)) | |||
| w = stem; | |||
| } | |||
| else if (re2.test(w)) { | |||
| var fp = re2.exec(w); | |||
| stem = fp[1] + fp[2]; | |||
| re2 = new RegExp(mgr1); | |||
| if (re2.test(stem)) | |||
| w = stem; | |||
| } | |||
| // Step 5 | |||
| re = /^(.+?)e$/; | |||
| if (re.test(w)) { | |||
| var fp = re.exec(w); | |||
| stem = fp[1]; | |||
| re = new RegExp(mgr1); | |||
| re2 = new RegExp(meq1); | |||
| re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); | |||
| if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) | |||
| w = stem; | |||
| } | |||
| re = /ll$/; | |||
| re2 = new RegExp(mgr1); | |||
| if (re.test(w) && re2.test(w)) { | |||
| re = /.$/; | |||
| w = w.replace(re,""); | |||
| } | |||
| // and turn initial Y back to y | |||
| if (firstch == "y") | |||
| w = firstch.toLowerCase() + w.substr(1); | |||
| return w; | |||
| } | |||
| } | |||
| @@ -0,0 +1,74 @@ | |||
| pre { line-height: 125%; } | |||
| td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } | |||
| span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } | |||
| td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } | |||
| span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } | |||
| .highlight .hll { background-color: #ffffcc } | |||
| .highlight { background: #f8f8f8; } | |||
| .highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ | |||
| .highlight .err { border: 1px solid #FF0000 } /* Error */ | |||
| .highlight .k { color: #008000; font-weight: bold } /* Keyword */ | |||
| .highlight .o { color: #666666 } /* Operator */ | |||
| .highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ | |||
| .highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ | |||
| .highlight .cp { color: #9C6500 } /* Comment.Preproc */ | |||
| .highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ | |||
| .highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ | |||
| .highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ | |||
| .highlight .gd { color: #A00000 } /* Generic.Deleted */ | |||
| .highlight .ge { font-style: italic } /* Generic.Emph */ | |||
| .highlight .gr { color: #E40000 } /* Generic.Error */ | |||
| .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ | |||
| .highlight .gi { color: #008400 } /* Generic.Inserted */ | |||
| .highlight .go { color: #717171 } /* Generic.Output */ | |||
| .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ | |||
| .highlight .gs { font-weight: bold } /* Generic.Strong */ | |||
| .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ | |||
| .highlight .gt { color: #0044DD } /* Generic.Traceback */ | |||
| .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ | |||
| .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ | |||
| .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ | |||
| .highlight .kp { color: #008000 } /* Keyword.Pseudo */ | |||
| .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ | |||
| .highlight .kt { color: #B00040 } /* Keyword.Type */ | |||
| .highlight .m { color: #666666 } /* Literal.Number */ | |||
| .highlight .s { color: #BA2121 } /* Literal.String */ | |||
| .highlight .na { color: #687822 } /* Name.Attribute */ | |||
| .highlight .nb { color: #008000 } /* Name.Builtin */ | |||
| .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ | |||
| .highlight .no { color: #880000 } /* Name.Constant */ | |||
| .highlight .nd { color: #AA22FF } /* Name.Decorator */ | |||
| .highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ | |||
| .highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ | |||
| .highlight .nf { color: #0000FF } /* Name.Function */ | |||
| .highlight .nl { color: #767600 } /* Name.Label */ | |||
| .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ | |||
| .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ | |||
| .highlight .nv { color: #19177C } /* Name.Variable */ | |||
| .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ | |||
| .highlight .w { color: #bbbbbb } /* Text.Whitespace */ | |||
| .highlight .mb { color: #666666 } /* Literal.Number.Bin */ | |||
| .highlight .mf { color: #666666 } /* Literal.Number.Float */ | |||
| .highlight .mh { color: #666666 } /* Literal.Number.Hex */ | |||
| .highlight .mi { color: #666666 } /* Literal.Number.Integer */ | |||
| .highlight .mo { color: #666666 } /* Literal.Number.Oct */ | |||
| .highlight .sa { color: #BA2121 } /* Literal.String.Affix */ | |||
| .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ | |||
| .highlight .sc { color: #BA2121 } /* Literal.String.Char */ | |||
| .highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ | |||
| .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ | |||
| .highlight .s2 { color: #BA2121 } /* Literal.String.Double */ | |||
| .highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ | |||
| .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ | |||
| .highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ | |||
| .highlight .sx { color: #008000 } /* Literal.String.Other */ | |||
| .highlight .sr { color: #A45A77 } /* Literal.String.Regex */ | |||
| .highlight .s1 { color: #BA2121 } /* Literal.String.Single */ | |||
| .highlight .ss { color: #19177C } /* Literal.String.Symbol */ | |||
| .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ | |||
| .highlight .fm { color: #0000FF } /* Name.Function.Magic */ | |||
| .highlight .vc { color: #19177C } /* Name.Variable.Class */ | |||
| .highlight .vg { color: #19177C } /* Name.Variable.Global */ | |||
| .highlight .vi { color: #19177C } /* Name.Variable.Instance */ | |||
| .highlight .vm { color: #19177C } /* Name.Variable.Magic */ | |||
| .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ | |||
| @@ -0,0 +1,566 @@ | |||
| /* | |||
| * searchtools.js | |||
| * ~~~~~~~~~~~~~~~~ | |||
| * | |||
| * Sphinx JavaScript utilities for the full-text search. | |||
| * | |||
| * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. | |||
| * :license: BSD, see LICENSE for details. | |||
| * | |||
| */ | |||
| "use strict"; | |||
| /** | |||
| * Simple result scoring code. | |||
| */ | |||
| if (typeof Scorer === "undefined") { | |||
| var Scorer = { | |||
| // Implement the following function to further tweak the score for each result | |||
| // The function takes a result array [docname, title, anchor, descr, score, filename] | |||
| // and returns the new score. | |||
| /* | |||
| score: result => { | |||
| const [docname, title, anchor, descr, score, filename] = result | |||
| return score | |||
| }, | |||
| */ | |||
| // query matches the full name of an object | |||
| objNameMatch: 11, | |||
| // or matches in the last dotted part of the object name | |||
| objPartialMatch: 6, | |||
| // Additive scores depending on the priority of the object | |||
| objPrio: { | |||
| 0: 15, // used to be importantResults | |||
| 1: 5, // used to be objectResults | |||
| 2: -5, // used to be unimportantResults | |||
| }, | |||
| // Used when the priority is not in the mapping. | |||
| objPrioDefault: 0, | |||
| // query found in title | |||
| title: 15, | |||
| partialTitle: 7, | |||
| // query found in terms | |||
| term: 5, | |||
| partialTerm: 2, | |||
| }; | |||
| } | |||
| const _removeChildren = (element) => { | |||
| while (element && element.lastChild) element.removeChild(element.lastChild); | |||
| }; | |||
| /** | |||
| * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping | |||
| */ | |||
| const _escapeRegExp = (string) => | |||
| string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string | |||
| const _displayItem = (item, searchTerms) => { | |||
| const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; | |||
| const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; | |||
| const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; | |||
| const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; | |||
| const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; | |||
| const [docName, title, anchor, descr, score, _filename] = item; | |||
| let listItem = document.createElement("li"); | |||
| let requestUrl; | |||
| let linkUrl; | |||
| if (docBuilder === "dirhtml") { | |||
| // dirhtml builder | |||
| let dirname = docName + "/"; | |||
| if (dirname.match(/\/index\/$/)) | |||
| dirname = dirname.substring(0, dirname.length - 6); | |||
| else if (dirname === "index/") dirname = ""; | |||
| requestUrl = docUrlRoot + dirname; | |||
| linkUrl = requestUrl; | |||
| } else { | |||
| // normal html builders | |||
| requestUrl = docUrlRoot + docName + docFileSuffix; | |||
| linkUrl = docName + docLinkSuffix; | |||
| } | |||
| let linkEl = listItem.appendChild(document.createElement("a")); | |||
| linkEl.href = linkUrl + anchor; | |||
| linkEl.dataset.score = score; | |||
| linkEl.innerHTML = title; | |||
| if (descr) | |||
| listItem.appendChild(document.createElement("span")).innerHTML = | |||
| " (" + descr + ")"; | |||
| else if (showSearchSummary) | |||
| fetch(requestUrl) | |||
| .then((responseData) => responseData.text()) | |||
| .then((data) => { | |||
| if (data) | |||
| listItem.appendChild( | |||
| Search.makeSearchSummary(data, searchTerms) | |||
| ); | |||
| }); | |||
| Search.output.appendChild(listItem); | |||
| }; | |||
| const _finishSearch = (resultCount) => { | |||
| Search.stopPulse(); | |||
| Search.title.innerText = _("Search Results"); | |||
| if (!resultCount) | |||
| Search.status.innerText = Documentation.gettext( | |||
| "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." | |||
| ); | |||
| else | |||
| Search.status.innerText = _( | |||
| `Search finished, found ${resultCount} page(s) matching the search query.` | |||
| ); | |||
| }; | |||
| const _displayNextItem = ( | |||
| results, | |||
| resultCount, | |||
| searchTerms | |||
| ) => { | |||
| // results left, load the summary and display it | |||
| // this is intended to be dynamic (don't sub resultsCount) | |||
| if (results.length) { | |||
| _displayItem(results.pop(), searchTerms); | |||
| setTimeout( | |||
| () => _displayNextItem(results, resultCount, searchTerms), | |||
| 5 | |||
| ); | |||
| } | |||
| // search finished, update title and status message | |||
| else _finishSearch(resultCount); | |||
| }; | |||
| /** | |||
| * Default splitQuery function. Can be overridden in ``sphinx.search`` with a | |||
| * custom function per language. | |||
| * | |||
| * The regular expression works by splitting the string on consecutive characters | |||
| * that are not Unicode letters, numbers, underscores, or emoji characters. | |||
| * This is the same as ``\W+`` in Python, preserving the surrogate pair area. | |||
| */ | |||
| if (typeof splitQuery === "undefined") { | |||
| var splitQuery = (query) => query | |||
| .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) | |||
| .filter(term => term) // remove remaining empty strings | |||
| } | |||
| /** | |||
| * Search Module | |||
| */ | |||
| const Search = { | |||
| _index: null, | |||
| _queued_query: null, | |||
| _pulse_status: -1, | |||
| htmlToText: (htmlString) => { | |||
| const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); | |||
| htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); | |||
| const docContent = htmlElement.querySelector('[role="main"]'); | |||
| if (docContent !== undefined) return docContent.textContent; | |||
| console.warn( | |||
| "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." | |||
| ); | |||
| return ""; | |||
| }, | |||
| init: () => { | |||
| const query = new URLSearchParams(window.location.search).get("q"); | |||
| document | |||
| .querySelectorAll('input[name="q"]') | |||
| .forEach((el) => (el.value = query)); | |||
| if (query) Search.performSearch(query); | |||
| }, | |||
| loadIndex: (url) => | |||
| (document.body.appendChild(document.createElement("script")).src = url), | |||
| setIndex: (index) => { | |||
| Search._index = index; | |||
| if (Search._queued_query !== null) { | |||
| const query = Search._queued_query; | |||
| Search._queued_query = null; | |||
| Search.query(query); | |||
| } | |||
| }, | |||
| hasIndex: () => Search._index !== null, | |||
| deferQuery: (query) => (Search._queued_query = query), | |||
| stopPulse: () => (Search._pulse_status = -1), | |||
| startPulse: () => { | |||
| if (Search._pulse_status >= 0) return; | |||
| const pulse = () => { | |||
| Search._pulse_status = (Search._pulse_status + 1) % 4; | |||
| Search.dots.innerText = ".".repeat(Search._pulse_status); | |||
| if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); | |||
| }; | |||
| pulse(); | |||
| }, | |||
| /** | |||
| * perform a search for something (or wait until index is loaded) | |||
| */ | |||
| performSearch: (query) => { | |||
| // create the required interface elements | |||
| const searchText = document.createElement("h2"); | |||
| searchText.textContent = _("Searching"); | |||
| const searchSummary = document.createElement("p"); | |||
| searchSummary.classList.add("search-summary"); | |||
| searchSummary.innerText = ""; | |||
| const searchList = document.createElement("ul"); | |||
| searchList.classList.add("search"); | |||
| const out = document.getElementById("search-results"); | |||
| Search.title = out.appendChild(searchText); | |||
| Search.dots = Search.title.appendChild(document.createElement("span")); | |||
| Search.status = out.appendChild(searchSummary); | |||
| Search.output = out.appendChild(searchList); | |||
| const searchProgress = document.getElementById("search-progress"); | |||
| // Some themes don't use the search progress node | |||
| if (searchProgress) { | |||
| searchProgress.innerText = _("Preparing search..."); | |||
| } | |||
| Search.startPulse(); | |||
| // index already loaded, the browser was quick! | |||
| if (Search.hasIndex()) Search.query(query); | |||
| else Search.deferQuery(query); | |||
| }, | |||
| /** | |||
| * execute search (requires search index to be loaded) | |||
| */ | |||
| query: (query) => { | |||
| const filenames = Search._index.filenames; | |||
| const docNames = Search._index.docnames; | |||
| const titles = Search._index.titles; | |||
| const allTitles = Search._index.alltitles; | |||
| const indexEntries = Search._index.indexentries; | |||
| // stem the search terms and add them to the correct list | |||
| const stemmer = new Stemmer(); | |||
| const searchTerms = new Set(); | |||
| const excludedTerms = new Set(); | |||
| const highlightTerms = new Set(); | |||
| const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); | |||
| splitQuery(query.trim()).forEach((queryTerm) => { | |||
| const queryTermLower = queryTerm.toLowerCase(); | |||
| // maybe skip this "word" | |||
| // stopwords array is from language_data.js | |||
| if ( | |||
| stopwords.indexOf(queryTermLower) !== -1 || | |||
| queryTerm.match(/^\d+$/) | |||
| ) | |||
| return; | |||
| // stem the word | |||
| let word = stemmer.stemWord(queryTermLower); | |||
| // select the correct list | |||
| if (word[0] === "-") excludedTerms.add(word.substr(1)); | |||
| else { | |||
| searchTerms.add(word); | |||
| highlightTerms.add(queryTermLower); | |||
| } | |||
| }); | |||
| if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js | |||
| localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) | |||
| } | |||
| // console.debug("SEARCH: searching for:"); | |||
| // console.info("required: ", [...searchTerms]); | |||
| // console.info("excluded: ", [...excludedTerms]); | |||
| // array of [docname, title, anchor, descr, score, filename] | |||
| let results = []; | |||
| _removeChildren(document.getElementById("search-progress")); | |||
| const queryLower = query.toLowerCase(); | |||
| for (const [title, foundTitles] of Object.entries(allTitles)) { | |||
| if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { | |||
| for (const [file, id] of foundTitles) { | |||
| let score = Math.round(100 * queryLower.length / title.length) | |||
| results.push([ | |||
| docNames[file], | |||
| titles[file] !== title ? `${titles[file]} > ${title}` : title, | |||
| id !== null ? "#" + id : "", | |||
| null, | |||
| score, | |||
| filenames[file], | |||
| ]); | |||
| } | |||
| } | |||
| } | |||
| // search for explicit entries in index directives | |||
| for (const [entry, foundEntries] of Object.entries(indexEntries)) { | |||
| if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { | |||
| for (const [file, id] of foundEntries) { | |||
| let score = Math.round(100 * queryLower.length / entry.length) | |||
| results.push([ | |||
| docNames[file], | |||
| titles[file], | |||
| id ? "#" + id : "", | |||
| null, | |||
| score, | |||
| filenames[file], | |||
| ]); | |||
| } | |||
| } | |||
| } | |||
| // lookup as object | |||
| objectTerms.forEach((term) => | |||
| results.push(...Search.performObjectSearch(term, objectTerms)) | |||
| ); | |||
| // lookup as search terms in fulltext | |||
| results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); | |||
| // let the scorer override scores with a custom scoring function | |||
| if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); | |||
| // now sort the results by score (in opposite order of appearance, since the | |||
| // display function below uses pop() to retrieve items) and then | |||
| // alphabetically | |||
| results.sort((a, b) => { | |||
| const leftScore = a[4]; | |||
| const rightScore = b[4]; | |||
| if (leftScore === rightScore) { | |||
| // same score: sort alphabetically | |||
| const leftTitle = a[1].toLowerCase(); | |||
| const rightTitle = b[1].toLowerCase(); | |||
| if (leftTitle === rightTitle) return 0; | |||
| return leftTitle > rightTitle ? -1 : 1; // inverted is intentional | |||
| } | |||
| return leftScore > rightScore ? 1 : -1; | |||
| }); | |||
| // remove duplicate search results | |||
| // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept | |||
| let seen = new Set(); | |||
| results = results.reverse().reduce((acc, result) => { | |||
| let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); | |||
| if (!seen.has(resultStr)) { | |||
| acc.push(result); | |||
| seen.add(resultStr); | |||
| } | |||
| return acc; | |||
| }, []); | |||
| results = results.reverse(); | |||
| // for debugging | |||
| //Search.lastresults = results.slice(); // a copy | |||
| // console.info("search results:", Search.lastresults); | |||
| // print the results | |||
| _displayNextItem(results, results.length, searchTerms); | |||
| }, | |||
| /** | |||
| * search for object names | |||
| */ | |||
| performObjectSearch: (object, objectTerms) => { | |||
| const filenames = Search._index.filenames; | |||
| const docNames = Search._index.docnames; | |||
| const objects = Search._index.objects; | |||
| const objNames = Search._index.objnames; | |||
| const titles = Search._index.titles; | |||
| const results = []; | |||
| const objectSearchCallback = (prefix, match) => { | |||
| const name = match[4] | |||
| const fullname = (prefix ? prefix + "." : "") + name; | |||
| const fullnameLower = fullname.toLowerCase(); | |||
| if (fullnameLower.indexOf(object) < 0) return; | |||
| let score = 0; | |||
| const parts = fullnameLower.split("."); | |||
| // check for different match types: exact matches of full name or | |||
| // "last name" (i.e. last dotted part) | |||
| if (fullnameLower === object || parts.slice(-1)[0] === object) | |||
| score += Scorer.objNameMatch; | |||
| else if (parts.slice(-1)[0].indexOf(object) > -1) | |||
| score += Scorer.objPartialMatch; // matches in last name | |||
| const objName = objNames[match[1]][2]; | |||
| const title = titles[match[0]]; | |||
| // If more than one term searched for, we require other words to be | |||
| // found in the name/title/description | |||
| const otherTerms = new Set(objectTerms); | |||
| otherTerms.delete(object); | |||
| if (otherTerms.size > 0) { | |||
| const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); | |||
| if ( | |||
| [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) | |||
| ) | |||
| return; | |||
| } | |||
| let anchor = match[3]; | |||
| if (anchor === "") anchor = fullname; | |||
| else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; | |||
| const descr = objName + _(", in ") + title; | |||
| // add custom score for some objects according to scorer | |||
| if (Scorer.objPrio.hasOwnProperty(match[2])) | |||
| score += Scorer.objPrio[match[2]]; | |||
| else score += Scorer.objPrioDefault; | |||
| results.push([ | |||
| docNames[match[0]], | |||
| fullname, | |||
| "#" + anchor, | |||
| descr, | |||
| score, | |||
| filenames[match[0]], | |||
| ]); | |||
| }; | |||
| Object.keys(objects).forEach((prefix) => | |||
| objects[prefix].forEach((array) => | |||
| objectSearchCallback(prefix, array) | |||
| ) | |||
| ); | |||
| return results; | |||
| }, | |||
| /** | |||
| * search for full-text terms in the index | |||
| */ | |||
| performTermsSearch: (searchTerms, excludedTerms) => { | |||
| // prepare search | |||
| const terms = Search._index.terms; | |||
| const titleTerms = Search._index.titleterms; | |||
| const filenames = Search._index.filenames; | |||
| const docNames = Search._index.docnames; | |||
| const titles = Search._index.titles; | |||
| const scoreMap = new Map(); | |||
| const fileMap = new Map(); | |||
| // perform the search on the required terms | |||
| searchTerms.forEach((word) => { | |||
| const files = []; | |||
| const arr = [ | |||
| { files: terms[word], score: Scorer.term }, | |||
| { files: titleTerms[word], score: Scorer.title }, | |||
| ]; | |||
| // add support for partial matches | |||
| if (word.length > 2) { | |||
| const escapedWord = _escapeRegExp(word); | |||
| Object.keys(terms).forEach((term) => { | |||
| if (term.match(escapedWord) && !terms[word]) | |||
| arr.push({ files: terms[term], score: Scorer.partialTerm }); | |||
| }); | |||
| Object.keys(titleTerms).forEach((term) => { | |||
| if (term.match(escapedWord) && !titleTerms[word]) | |||
| arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); | |||
| }); | |||
| } | |||
| // no match but word was a required one | |||
| if (arr.every((record) => record.files === undefined)) return; | |||
| // found search word in contents | |||
| arr.forEach((record) => { | |||
| if (record.files === undefined) return; | |||
| let recordFiles = record.files; | |||
| if (recordFiles.length === undefined) recordFiles = [recordFiles]; | |||
| files.push(...recordFiles); | |||
| // set score for the word in each file | |||
| recordFiles.forEach((file) => { | |||
| if (!scoreMap.has(file)) scoreMap.set(file, {}); | |||
| scoreMap.get(file)[word] = record.score; | |||
| }); | |||
| }); | |||
| // create the mapping | |||
| files.forEach((file) => { | |||
| if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) | |||
| fileMap.get(file).push(word); | |||
| else fileMap.set(file, [word]); | |||
| }); | |||
| }); | |||
| // now check if the files don't contain excluded terms | |||
| const results = []; | |||
| for (const [file, wordList] of fileMap) { | |||
| // check if all requirements are matched | |||
| // as search terms with length < 3 are discarded | |||
| const filteredTermCount = [...searchTerms].filter( | |||
| (term) => term.length > 2 | |||
| ).length; | |||
| if ( | |||
| wordList.length !== searchTerms.size && | |||
| wordList.length !== filteredTermCount | |||
| ) | |||
| continue; | |||
| // ensure that none of the excluded terms is in the search result | |||
| if ( | |||
| [...excludedTerms].some( | |||
| (term) => | |||
| terms[term] === file || | |||
| titleTerms[term] === file || | |||
| (terms[term] || []).includes(file) || | |||
| (titleTerms[term] || []).includes(file) | |||
| ) | |||
| ) | |||
| break; | |||
| // select one (max) score for the file. | |||
| const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); | |||
| // add result to the result list | |||
| results.push([ | |||
| docNames[file], | |||
| titles[file], | |||
| "", | |||
| null, | |||
| score, | |||
| filenames[file], | |||
| ]); | |||
| } | |||
| return results; | |||
| }, | |||
| /** | |||
| * helper function to return a node containing the | |||
| * search summary for a given text. keywords is a list | |||
| * of stemmed words. | |||
| */ | |||
| makeSearchSummary: (htmlText, keywords) => { | |||
| const text = Search.htmlToText(htmlText); | |||
| if (text === "") return null; | |||
| const textLower = text.toLowerCase(); | |||
| const actualStartPosition = [...keywords] | |||
| .map((k) => textLower.indexOf(k.toLowerCase())) | |||
| .filter((i) => i > -1) | |||
| .slice(-1)[0]; | |||
| const startWithContext = Math.max(actualStartPosition - 120, 0); | |||
| const top = startWithContext === 0 ? "" : "..."; | |||
| const tail = startWithContext + 240 < text.length ? "..." : ""; | |||
| let summary = document.createElement("p"); | |||
| summary.classList.add("context"); | |||
| summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; | |||
| return summary; | |||
| }, | |||
| }; | |||
| _ready(Search.init); | |||
| @@ -0,0 +1,144 @@ | |||
| /* Highlighting utilities for Sphinx HTML documentation. */ | |||
| "use strict"; | |||
| const SPHINX_HIGHLIGHT_ENABLED = true | |||
| /** | |||
| * highlight a given string on a node by wrapping it in | |||
| * span elements with the given class name. | |||
| */ | |||
| const _highlight = (node, addItems, text, className) => { | |||
| if (node.nodeType === Node.TEXT_NODE) { | |||
| const val = node.nodeValue; | |||
| const parent = node.parentNode; | |||
| const pos = val.toLowerCase().indexOf(text); | |||
| if ( | |||
| pos >= 0 && | |||
| !parent.classList.contains(className) && | |||
| !parent.classList.contains("nohighlight") | |||
| ) { | |||
| let span; | |||
| const closestNode = parent.closest("body, svg, foreignObject"); | |||
| const isInSVG = closestNode && closestNode.matches("svg"); | |||
| if (isInSVG) { | |||
| span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | |||
| } else { | |||
| span = document.createElement("span"); | |||
| span.classList.add(className); | |||
| } | |||
| span.appendChild(document.createTextNode(val.substr(pos, text.length))); | |||
| parent.insertBefore( | |||
| span, | |||
| parent.insertBefore( | |||
| document.createTextNode(val.substr(pos + text.length)), | |||
| node.nextSibling | |||
| ) | |||
| ); | |||
| node.nodeValue = val.substr(0, pos); | |||
| if (isInSVG) { | |||
| const rect = document.createElementNS( | |||
| "http://www.w3.org/2000/svg", | |||
| "rect" | |||
| ); | |||
| const bbox = parent.getBBox(); | |||
| rect.x.baseVal.value = bbox.x; | |||
| rect.y.baseVal.value = bbox.y; | |||
| rect.width.baseVal.value = bbox.width; | |||
| rect.height.baseVal.value = bbox.height; | |||
| rect.setAttribute("class", className); | |||
| addItems.push({ parent: parent, target: rect }); | |||
| } | |||
| } | |||
| } else if (node.matches && !node.matches("button, select, textarea")) { | |||
| node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); | |||
| } | |||
| }; | |||
| const _highlightText = (thisNode, text, className) => { | |||
| let addItems = []; | |||
| _highlight(thisNode, addItems, text, className); | |||
| addItems.forEach((obj) => | |||
| obj.parent.insertAdjacentElement("beforebegin", obj.target) | |||
| ); | |||
| }; | |||
| /** | |||
| * Small JavaScript module for the documentation. | |||
| */ | |||
| const SphinxHighlight = { | |||
| /** | |||
| * highlight the search words provided in localstorage in the text | |||
| */ | |||
| highlightSearchWords: () => { | |||
| if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight | |||
| // get and clear terms from localstorage | |||
| const url = new URL(window.location); | |||
| const highlight = | |||
| localStorage.getItem("sphinx_highlight_terms") | |||
| || url.searchParams.get("highlight") | |||
| || ""; | |||
| localStorage.removeItem("sphinx_highlight_terms") | |||
| url.searchParams.delete("highlight"); | |||
| window.history.replaceState({}, "", url); | |||
| // get individual terms from highlight string | |||
| const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); | |||
| if (terms.length === 0) return; // nothing to do | |||
| // There should never be more than one element matching "div.body" | |||
| const divBody = document.querySelectorAll("div.body"); | |||
| const body = divBody.length ? divBody[0] : document.querySelector("body"); | |||
| window.setTimeout(() => { | |||
| terms.forEach((term) => _highlightText(body, term, "highlighted")); | |||
| }, 10); | |||
| const searchBox = document.getElementById("searchbox"); | |||
| if (searchBox === null) return; | |||
| searchBox.appendChild( | |||
| document | |||
| .createRange() | |||
| .createContextualFragment( | |||
| '<p class="highlight-link">' + | |||
| '<a href="javascript:SphinxHighlight.hideSearchWords()">' + | |||
| _("Hide Search Matches") + | |||
| "</a></p>" | |||
| ) | |||
| ); | |||
| }, | |||
| /** | |||
| * helper function to hide the search marks again | |||
| */ | |||
| hideSearchWords: () => { | |||
| document | |||
| .querySelectorAll("#searchbox .highlight-link") | |||
| .forEach((el) => el.remove()); | |||
| document | |||
| .querySelectorAll("span.highlighted") | |||
| .forEach((el) => el.classList.remove("highlighted")); | |||
| localStorage.removeItem("sphinx_highlight_terms") | |||
| }, | |||
| initEscapeListener: () => { | |||
| // only install a listener if it is really needed | |||
| if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; | |||
| document.addEventListener("keydown", (event) => { | |||
| // bail for input elements | |||
| if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; | |||
| // bail with special keys | |||
| if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; | |||
| if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { | |||
| SphinxHighlight.hideSearchWords(); | |||
| event.preventDefault(); | |||
| } | |||
| }); | |||
| }, | |||
| }; | |||
| _ready(SphinxHighlight.highlightSearchWords); | |||
| _ready(SphinxHighlight.initEscapeListener); | |||
| @@ -0,0 +1,113 @@ | |||
| <!DOCTYPE html> | |||
| <html class="writer-html5" lang="en" > | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
| <title>Index — ABL 0.1.0 documentation</title> | |||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | |||
| <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> | |||
| <!--[if lt IE 9]> | |||
| <script src="_static/js/html5shiv.min.js"></script> | |||
| <![endif]--> | |||
| <script src="_static/jquery.js"></script> | |||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | |||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | |||
| <script src="_static/doctools.js"></script> | |||
| <script src="_static/sphinx_highlight.js"></script> | |||
| <script src="_static/js/theme.js"></script> | |||
| <link rel="index" title="Index" href="#" /> | |||
| <link rel="search" title="Search" href="search.html" /> | |||
| </head> | |||
| <body class="wy-body-for-nav"> | |||
| <div class="wy-grid-for-nav"> | |||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | |||
| <div class="wy-side-scroll"> | |||
| <div class="wy-side-nav-search" > | |||
| <a href="index.html" class="icon icon-home"> | |||
| ABL | |||
| </a> | |||
| <div class="version"> | |||
| 0.1.0 | |||
| </div> | |||
| <div role="search"> | |||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | |||
| <input type="text" name="q" placeholder="Search docs" aria-label="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="Navigation menu"> | |||
| <p class="caption" role="heading"><span class="caption-text">Tutorial of ABL</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="ABL/Abductive%20Learning.html">Abductive Learning</a></li> | |||
| <li class="toctree-l1"><a class="reference internal" href="ABL/Quick%20Start.html">Quick Start</a></li> | |||
| </ul> | |||
| <p class="caption" role="heading"><span class="caption-text">Examples</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="Examples/MNISTadd.html">MNISTadd</a></li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </nav> | |||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > | |||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | |||
| <a href="index.html">ABL</a> | |||
| </nav> | |||
| <div class="wy-nav-content"> | |||
| <div class="rst-content"> | |||
| <div role="navigation" aria-label="Page navigation"> | |||
| <ul class="wy-breadcrumbs"> | |||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | |||
| <li class="breadcrumb-item active">Index</li> | |||
| <li class="wy-breadcrumbs-aside"> | |||
| </li> | |||
| </ul> | |||
| <hr/> | |||
| </div> | |||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | |||
| <div itemprop="articleBody"> | |||
| <h1 id="index">Index</h1> | |||
| <div class="genindex-jumpbox"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <footer> | |||
| <hr/> | |||
| <div role="contentinfo"> | |||
| <p>© Copyright Yu-Xuan Huang, Wen-Chao Hu, En-Hao Gao.</p> | |||
| </div> | |||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | |||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | |||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | |||
| </footer> | |||
| </div> | |||
| </div> | |||
| </section> | |||
| </div> | |||
| <script> | |||
| jQuery(function () { | |||
| SphinxRtdTheme.Navigation.enable(true); | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,150 @@ | |||
| <!DOCTYPE html> | |||
| <html class="writer-html5" lang="en" > | |||
| <head> | |||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
| <title>ABL — ABL 0.1.0 documentation</title> | |||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | |||
| <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> | |||
| <!--[if lt IE 9]> | |||
| <script src="_static/js/html5shiv.min.js"></script> | |||
| <![endif]--> | |||
| <script src="_static/jquery.js"></script> | |||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | |||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | |||
| <script src="_static/doctools.js"></script> | |||
| <script src="_static/sphinx_highlight.js"></script> | |||
| <script src="_static/js/theme.js"></script> | |||
| <link rel="index" title="Index" href="genindex.html" /> | |||
| <link rel="search" title="Search" href="search.html" /> | |||
| <link rel="next" title="Abductive Learning" href="ABL/Abductive%20Learning.html" /> | |||
| </head> | |||
| <body class="wy-body-for-nav"> | |||
| <div class="wy-grid-for-nav"> | |||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | |||
| <div class="wy-side-scroll"> | |||
| <div class="wy-side-nav-search" > | |||
| <a href="#" class="icon icon-home"> | |||
| ABL | |||
| </a> | |||
| <div class="version"> | |||
| 0.1.0 | |||
| </div> | |||
| <div role="search"> | |||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | |||
| <input type="text" name="q" placeholder="Search docs" aria-label="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="Navigation menu"> | |||
| <p class="caption" role="heading"><span class="caption-text">Tutorial of ABL</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="ABL/Abductive%20Learning.html">Abductive Learning</a></li> | |||
| <li class="toctree-l1"><a class="reference internal" href="ABL/Quick%20Start.html">Quick Start</a></li> | |||
| </ul> | |||
| <p class="caption" role="heading"><span class="caption-text">Examples</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="Examples/MNISTadd.html">MNISTadd</a></li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </nav> | |||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > | |||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | |||
| <a href="#">ABL</a> | |||
| </nav> | |||
| <div class="wy-nav-content"> | |||
| <div class="rst-content"> | |||
| <div role="navigation" aria-label="Page navigation"> | |||
| <ul class="wy-breadcrumbs"> | |||
| <li><a href="#" class="icon icon-home" aria-label="Home"></a></li> | |||
| <li class="breadcrumb-item active">ABL</li> | |||
| <li class="wy-breadcrumbs-aside"> | |||
| <a href="_sources/index.rst.txt" rel="nofollow"> View page source</a> | |||
| </li> | |||
| </ul> | |||
| <hr/> | |||
| </div> | |||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | |||
| <div itemprop="articleBody"> | |||
| <section id="abl"> | |||
| <h1>ABL<a class="headerlink" href="#abl" title="Permalink to this heading"></a></h1> | |||
| <p>ABL(Abductive Learning) is …</p> | |||
| <section id="installation"> | |||
| <h2>Installation<a class="headerlink" href="#installation" title="Permalink to this heading"></a></h2> | |||
| <p>ABL is distributed on PyPI and can be installed with <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p> | |||
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>pip install ABL | |||
| </pre></div> | |||
| </div> | |||
| <p>Alternatively, to install ABL by source code, download this project and sequentially run following commands in your terminal/command line.</p> | |||
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>python setup.py build | |||
| <span class="gp">$ </span>python setup.py install | |||
| </pre></div> | |||
| </div> | |||
| </section> | |||
| <section id="releases"> | |||
| <h2>Releases<a class="headerlink" href="#releases" title="Permalink to this heading"></a></h2> | |||
| <p><a class="reference external" href="https://github.com/AbductiveLearning/ABL-Package/releases/tag/v0.1">release 0.1</a></p> | |||
| <div class="toctree-wrapper compound"> | |||
| <p class="caption" role="heading"><span class="caption-text">Tutorial of ABL</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="ABL/Abductive%20Learning.html">Abductive Learning</a></li> | |||
| <li class="toctree-l1"><a class="reference internal" href="ABL/Quick%20Start.html">Quick Start</a><ul> | |||
| <li class="toctree-l2"><a class="reference internal" href="ABL/Quick%20Start.html#required-packages">Required packages</a></li> | |||
| <li class="toctree-l2"><a class="reference internal" href="ABL/Quick%20Start.html#getting-and-installing-abl">Getting and installing ABL</a></li> | |||
| <li class="toctree-l2"><a class="reference internal" href="ABL/Quick%20Start.html#a-quick-example">A quick example</a></li> | |||
| </ul> | |||
| </li> | |||
| </ul> | |||
| </div> | |||
| <div class="toctree-wrapper compound"> | |||
| <p class="caption" role="heading"><span class="caption-text">Examples</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="Examples/MNISTadd.html">MNISTadd</a></li> | |||
| </ul> | |||
| </div> | |||
| </section> | |||
| </section> | |||
| </div> | |||
| </div> | |||
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> | |||
| <a href="ABL/Abductive%20Learning.html" class="btn btn-neutral float-right" title="Abductive Learning" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> | |||
| </div> | |||
| <hr/> | |||
| <div role="contentinfo"> | |||
| <p>© Copyright Yu-Xuan Huang, Wen-Chao Hu, En-Hao Gao.</p> | |||
| </div> | |||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | |||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | |||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | |||
| </footer> | |||
| </div> | |||
| </div> | |||
| </section> | |||
| </div> | |||
| <script> | |||
| jQuery(function () { | |||
| SphinxRtdTheme.Navigation.enable(true); | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,5 @@ | |||
| # Sphinx inventory version 2 | |||
| # Project: ABL | |||
| # Version: 0.1.0 | |||
| # The remainder of this file is compressed using zlib. | |||
| xÚ…�±‚0E÷~EGDÝJd ƒâ”¶b¡Š�¿—Ò61qkß=çæå¡ öQN"«ƒ1Ã]S5ì%=SA w„È%v§ƒeö¥¬9ܺ@ ·¡"O˜IÜÉï®%š{–P—84G\·œõ~r�²¦Ôõ7¡öíÜCtIB×гkƒ‚Í;R6.Ç9㊲SÍEê >˜©rÕTú£©�<˜Ý83�NúGK'YŠfm÷ó…I¹õL;™ÎS\0ð7g ¸ | |||
| @@ -0,0 +1,128 @@ | |||
| <!DOCTYPE html> | |||
| <html class="writer-html5" lang="en" > | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
| <title>Search — ABL 0.1.0 documentation</title> | |||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | |||
| <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> | |||
| <!--[if lt IE 9]> | |||
| <script src="_static/js/html5shiv.min.js"></script> | |||
| <![endif]--> | |||
| <script src="_static/jquery.js"></script> | |||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | |||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | |||
| <script src="_static/doctools.js"></script> | |||
| <script src="_static/sphinx_highlight.js"></script> | |||
| <script src="_static/js/theme.js"></script> | |||
| <script src="_static/searchtools.js"></script> | |||
| <script src="_static/language_data.js"></script> | |||
| <link rel="index" title="Index" href="genindex.html" /> | |||
| <link rel="search" title="Search" href="#" /> | |||
| </head> | |||
| <body class="wy-body-for-nav"> | |||
| <div class="wy-grid-for-nav"> | |||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | |||
| <div class="wy-side-scroll"> | |||
| <div class="wy-side-nav-search" > | |||
| <a href="index.html" class="icon icon-home"> | |||
| ABL | |||
| </a> | |||
| <div class="version"> | |||
| 0.1.0 | |||
| </div> | |||
| <div role="search"> | |||
| <form id="rtd-search-form" class="wy-form" action="#" method="get"> | |||
| <input type="text" name="q" placeholder="Search docs" aria-label="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="Navigation menu"> | |||
| <p class="caption" role="heading"><span class="caption-text">Tutorial of ABL</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="ABL/Abductive%20Learning.html">Abductive Learning</a></li> | |||
| <li class="toctree-l1"><a class="reference internal" href="ABL/Quick%20Start.html">Quick Start</a></li> | |||
| </ul> | |||
| <p class="caption" role="heading"><span class="caption-text">Examples</span></p> | |||
| <ul> | |||
| <li class="toctree-l1"><a class="reference internal" href="Examples/MNISTadd.html">MNISTadd</a></li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </nav> | |||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > | |||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | |||
| <a href="index.html">ABL</a> | |||
| </nav> | |||
| <div class="wy-nav-content"> | |||
| <div class="rst-content"> | |||
| <div role="navigation" aria-label="Page navigation"> | |||
| <ul class="wy-breadcrumbs"> | |||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | |||
| <li class="breadcrumb-item active">Search</li> | |||
| <li class="wy-breadcrumbs-aside"> | |||
| </li> | |||
| </ul> | |||
| <hr/> | |||
| </div> | |||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | |||
| <div itemprop="articleBody"> | |||
| <noscript> | |||
| <div id="fallback" class="admonition warning"> | |||
| <p class="last"> | |||
| Please activate JavaScript to enable the search functionality. | |||
| </p> | |||
| </div> | |||
| </noscript> | |||
| <div id="search-results"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <footer> | |||
| <hr/> | |||
| <div role="contentinfo"> | |||
| <p>© Copyright Yu-Xuan Huang, Wen-Chao Hu, En-Hao Gao.</p> | |||
| </div> | |||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | |||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | |||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | |||
| </footer> | |||
| </div> | |||
| </div> | |||
| </section> | |||
| </div> | |||
| <script> | |||
| jQuery(function () { | |||
| SphinxRtdTheme.Navigation.enable(true); | |||
| }); | |||
| </script> | |||
| <script> | |||
| jQuery(function() { Search.loadIndex("searchindex.js"); }); | |||
| </script> | |||
| <script id="searchindexloader"></script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1 @@ | |||
| Search.setIndex({"docnames": ["ABL/Abductive Learning", "ABL/Quick Start", "Examples/MNISTadd", "README", "index"], "filenames": ["ABL/Abductive Learning.rst", "ABL/Quick Start.rst", "Examples/MNISTadd.rst", "README.rst", "index.rst"], "titles": ["Abductive Learning", "Quick Start", "MNISTadd", "ABL", "ABL"], "terms": {"what": 0, "i": [0, 1, 3, 4], "abl": 0, "how": 1, "us": 1, "thi": [1, 3, 4], "follow": [1, 3, 4], "python": [1, 3, 4], "version": 1, "abov": 1, "3": 1, "x": 1, "numpi": 1, "http": 1, "www": 1, "org": 1, "The": 1, "easiest": 1, "wai": 1, "pip": [1, 3, 4], "conda": 1, "environ": 1, "manag": 1, "type": 1, "command": [1, 3, 4], "your": [1, 3, 4], "termin": [1, 3, 4], "all": 1, "you": 1, "line": [1, 3, 4], "If": 1, "want": 1, "sourc": [1, 3, 4], "code": [1, 3, 4], "download": [1, 3, 4], "project": [1, 3, 4], "sequenti": [1, 3, 4], "run": [1, 3, 4], "setup": [1, 3, 4], "py": [1, 3, 4], "build": [1, 3, 4], "show": 1, "an": 1, "more": 1, "ar": 1, "avail": 1, "part": 1, "abduct": [3, 4], "learn": [3, 4], "distribut": [3, 4], "pypi": [3, 4], "can": [3, 4], "altern": [3, 4], "0": [3, 4], "1": [3, 4], "_": [], "quick": 4, "start": 4, "requir": 4, "packag": 4, "get": 4, "A": 4, "mnistadd": 4}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"abduct": 0, "learn": 0, "quick": 1, "start": 1, "tabl": 1, "content": 1, "requir": 1, "packag": 1, "get": 1, "instal": [1, 3, 4], "abl": [1, 3, 4], "A": 1, "exampl": [1, 4], "mnistadd": 2, "releas": [3, 4], "tutori": 4}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Abductive Learning": [[0, "abductive-learning"]], "Quick Start": [[1, "quick-start"]], "Table of Contents": [[1, "table-of-contents"]], "Required packages": [[1, "required-packages"]], "Getting and installing ABL": [[1, "getting-and-installing-abl"]], "A quick example": [[1, "a-quick-example"]], "MNISTadd": [[2, "mnistadd"]], "ABL": [[3, "abl"], [4, "abl"]], "Installation": [[3, "installation"], [4, "installation"]], "Releases": [[3, "releases"], [4, "releases"]], "Tutorial of ABL": [[4, null]], "Examples": [[4, null]]}, "indexentries": {}}) | |||
| @@ -0,0 +1,94 @@ | |||
| # -*- coding: utf-8 -*- | |||
| import sys | |||
| import os | |||
| import re | |||
| if not 'READTHEDOCS' in os.environ: | |||
| sys.path.insert(0, os.path.abspath('..')) | |||
| sys.path.append(os.path.abspath('./ABL/')) | |||
| # from sphinx.locale import _ | |||
| from sphinx_rtd_theme import __version__ | |||
| project = u'ABL' | |||
| slug = re.sub(r'\W+', '-', project.lower()) | |||
| author = u'Yu-Xuan Huang, Wen-Chao Hu, En-Hao Gao' | |||
| version = u'0.1.0' | |||
| release = u'0.1.0' | |||
| copyright = author | |||
| language = 'en' | |||
| extensions = [ | |||
| 'sphinx.ext.intersphinx', | |||
| 'sphinx.ext.autodoc', | |||
| 'sphinx.ext.mathjax', | |||
| 'sphinx.ext.viewcode', | |||
| 'sphinx_rtd_theme', | |||
| ] | |||
| templates_path = ['_templates'] | |||
| source_suffix = '.rst' | |||
| exclude_patterns = [] | |||
| # locale_dirs = ['locale/'] | |||
| gettext_compact = False | |||
| master_doc = 'index' | |||
| suppress_warnings = ['image.nonlocal_uri'] | |||
| pygments_style = 'default' | |||
| # intersphinx_mapping = { | |||
| # 'rtd': ('https://docs.readthedocs.io/en/latest/', None), | |||
| # 'sphinx': ('http://www.sphinx-doc.org/en/stable/', None), | |||
| # } | |||
| html_theme = 'sphinx_rtd_theme' | |||
| html_theme_options = { | |||
| 'display_version': True | |||
| } | |||
| # html_theme_path = ["../.."] | |||
| # html_logo = "demo/static/logo-wordmark-light.svg" | |||
| # html_show_sourcelink = True | |||
| htmlhelp_basename = slug | |||
| # latex_documents = [ | |||
| # ('index', '{0}.tex'.format(slug), project, author, 'manual'), | |||
| # ] | |||
| man_pages = [ | |||
| ('index', slug, project, [author], 1) | |||
| ] | |||
| texinfo_documents = [ | |||
| ('index', slug, project, author, slug, project, 'Miscellaneous'), | |||
| ] | |||
| # Extensions to theme docs | |||
| def setup(app): | |||
| from sphinx.domains.python import PyField | |||
| from sphinx.util.docfields import Field | |||
| app.add_object_type( | |||
| 'confval', | |||
| 'confval', | |||
| objname='configuration value', | |||
| indextemplate='pair: %s; configuration value', | |||
| doc_field_types=[ | |||
| PyField( | |||
| 'type', | |||
| label=('Type'), | |||
| has_arg=False, | |||
| names=('type',), | |||
| bodyrolename='class' | |||
| ), | |||
| Field( | |||
| 'default', | |||
| label=('Default'), | |||
| has_arg=False, | |||
| names=('default',), | |||
| ), | |||
| ] | |||
| ) | |||
| @@ -0,0 +1,15 @@ | |||
| .. include:: README.rst | |||
| .. toctree:: | |||
| :caption: Tutorial of ABL | |||
| :maxdepth: 2 | |||
| ABL/Abductive Learning.rst | |||
| ABL/Quick Start.rst | |||
| .. toctree:: | |||
| :caption: Examples | |||
| :maxdepth: 2 | |||
| Examples/MNISTadd.rst | |||
| @@ -0,0 +1,38 @@ | |||
| @ECHO OFF | |||
| pushd %~dp0 | |||
| REM Command file for Sphinx documentation | |||
| if "%SPHINXBUILD%" == "" ( | |||
| set SPHINXBUILD=python -msphinx | |||
| ) | |||
| set SPHINXOPTS= | |||
| set SPHINXBUILD=sphinx-build | |||
| set SOURCEDIR=. | |||
| set BUILDDIR=build | |||
| set SPHINXPROJ=ReadtheDocsSphinxTheme | |||
| if "%1" == "" goto help | |||
| %SPHINXBUILD% >NUL 2>NUL | |||
| if errorlevel 9009 ( | |||
| echo. | |||
| echo.The Sphinx module was not found. Make sure you have Sphinx installed, | |||
| echo.then set the SPHINXBUILD environment variable to point to the full | |||
| echo.path of the 'sphinx-build' executable. Alternatively you may add the | |||
| echo.Sphinx directory to PATH. | |||
| echo. | |||
| echo.If you don't have Sphinx installed, grab it from | |||
| echo.http://sphinx-doc.org/ | |||
| exit /b 1 | |||
| ) | |||
| %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% | |||
| goto end | |||
| :help | |||
| %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% | |||
| :end | |||
| popd | |||
| @@ -0,0 +1 @@ | |||
| sphinx | |||