Commit f42a8775 by John Donnal

auto doc rebuild

parent 51617df2
...@@ -272,15 +272,10 @@ div.admonition { ...@@ -272,15 +272,10 @@ div.admonition {
} }
div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { div.admonition tt.xref, div.admonition code.xref, div.admonition a tt {
background-color: ; background-color: #FBFBFB;
border-bottom: 1px solid #fafafa; border-bottom: 1px solid #fafafa;
} }
dd div.admonition {
margin-left: -60px;
padding-left: 60px;
}
div.admonition p.admonition-title { div.admonition p.admonition-title {
font-family: 'Garamond', 'Georgia', serif; font-family: 'Garamond', 'Georgia', serif;
font-weight: normal; font-weight: normal;
...@@ -443,6 +438,16 @@ table.field-list p { ...@@ -443,6 +438,16 @@ table.field-list p {
margin-bottom: 0.8em; margin-bottom: 0.8em;
} }
/* Cloned from
* https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68
*/
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
table.footnote td.label { table.footnote td.label {
width: .1px; width: .1px;
padding: 0.3em 0 0.3em 0.5em; padding: 0.3em 0 0.3em 0.5em;
...@@ -488,11 +493,6 @@ dl pre, blockquote pre, li pre { ...@@ -488,11 +493,6 @@ dl pre, blockquote pre, li pre {
padding-left: 30px; padding-left: 30px;
} }
dl dl pre {
margin-left: -90px;
padding-left: 90px;
}
tt, code { tt, code {
background-color: #ecf0f3; background-color: #ecf0f3;
color: #222; color: #222;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* *
* Sphinx stylesheet -- basic theme. * Sphinx stylesheet -- basic theme.
* *
* :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
...@@ -398,6 +398,13 @@ table.field-list td, table.field-list th { ...@@ -398,6 +398,13 @@ table.field-list td, table.field-list th {
margin: 0; margin: 0;
} }
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
/* -- other body styles ----------------------------------------------------- */ /* -- other body styles ----------------------------------------------------- */
ol.arabic { ol.arabic {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* *
* Sphinx JavaScript utilities for all documentation. * Sphinx JavaScript utilities for all documentation.
* *
* :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
......
...@@ -47,8 +47,10 @@ ...@@ -47,8 +47,10 @@
.highlight .mh { color: #208050 } /* Literal.Number.Hex */ .highlight .mh { color: #208050 } /* Literal.Number.Hex */
.highlight .mi { color: #208050 } /* Literal.Number.Integer */ .highlight .mi { color: #208050 } /* Literal.Number.Integer */
.highlight .mo { color: #208050 } /* Literal.Number.Oct */ .highlight .mo { color: #208050 } /* Literal.Number.Oct */
.highlight .sa { color: #4070a0 } /* Literal.String.Affix */
.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
.highlight .sc { color: #4070a0 } /* Literal.String.Char */ .highlight .sc { color: #4070a0 } /* Literal.String.Char */
.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */
.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ .highlight .s2 { color: #4070a0 } /* Literal.String.Double */
.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
...@@ -59,7 +61,9 @@ ...@@ -59,7 +61,9 @@
.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ .highlight .s1 { color: #4070a0 } /* Literal.String.Single */
.highlight .ss { color: #517918 } /* Literal.String.Symbol */ .highlight .ss { color: #517918 } /* Literal.String.Symbol */
.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #06287e } /* Name.Function.Magic */
.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */
\ No newline at end of file
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* *
* Sphinx JavaScript utilities for the full-text search. * Sphinx JavaScript utilities for the full-text search.
* *
* :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* *
* sphinx.websupport utilities for all documentation. * sphinx.websupport utilities for all documentation.
* *
* :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head> </head>
<body role="document"> <body>
<div class="document"> <div class="document">
...@@ -64,7 +64,7 @@ one or more elements and can be viewed as a database table:</p> ...@@ -64,7 +64,7 @@ one or more elements and can be viewed as a database table:</p>
<tr class="row-odd"><th class="head">timestamp</th> <tr class="row-odd"><th class="head">timestamp</th>
<th class="head">element1</th> <th class="head">element1</th>
<th class="head">element2</th> <th class="head">element2</th>
<th class="head">...</th> <th class="head"></th>
<th class="head">elementN</th> <th class="head">elementN</th>
</tr> </tr>
</thead> </thead>
...@@ -72,25 +72,25 @@ one or more elements and can be viewed as a database table:</p> ...@@ -72,25 +72,25 @@ one or more elements and can be viewed as a database table:</p>
<tr class="row-even"><td>1003421</td> <tr class="row-even"><td>1003421</td>
<td>0.0</td> <td>0.0</td>
<td>10.5</td> <td>10.5</td>
<td>...</td> <td></td>
<td>2.3</td> <td>2.3</td>
</tr> </tr>
<tr class="row-odd"><td>1003423</td> <tr class="row-odd"><td>1003423</td>
<td>1.0</td> <td>1.0</td>
<td>-8.0</td> <td>-8.0</td>
<td>...</td> <td></td>
<td>2.3</td> <td>2.3</td>
</tr> </tr>
<tr class="row-even"><td>1003429</td> <tr class="row-even"><td>1003429</td>
<td>8.0</td> <td>8.0</td>
<td>12.5</td> <td>12.5</td>
<td>...</td> <td></td>
<td>2.3</td> <td>2.3</td>
</tr> </tr>
<tr class="row-odd"><td>1003485</td> <tr class="row-odd"><td>1003485</td>
<td>4.0</td> <td>4.0</td>
<td>83.5</td> <td>83.5</td>
<td>...</td> <td></td>
<td>2.3</td> <td>2.3</td>
</tr> </tr>
</tbody> </tbody>
...@@ -188,8 +188,8 @@ with a consume module. See reference section for details on the pipe API.</p> ...@@ -188,8 +188,8 @@ with a consume module. See reference section for details on the pipe API.</p>
&copy;2017, John Donnal. &copy;2017, John Donnal.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.1</a> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
| |
<a href="_sources/concepts.rst.txt" <a href="_sources/concepts.rst.txt"
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head> </head>
<body role="document"> <body>
<div class="document"> <div class="document">
...@@ -105,8 +105,8 @@ ...@@ -105,8 +105,8 @@
&copy;2017, John Donnal. &copy;2017, John Donnal.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.1</a> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
</div> </div>
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head> </head>
<body role="document"> <body>
<div class="document"> <div class="document">
...@@ -86,12 +86,12 @@ reader</strong> is called from the command line it prints values to stdout:</p> ...@@ -86,12 +86,12 @@ reader</strong> is called from the command line it prints values to stdout:</p>
<span class="c1"># ... list of reader modules</span> <span class="c1"># ... list of reader modules</span>
$&gt; joule reader <span class="nb">help</span> random $&gt; joule reader <span class="nb">help</span> random
<span class="c1"># ... help with the random module</span> <span class="c1"># ... help with the random module</span>
$&gt; joule reader random <span class="m">2</span> 10 $&gt; joule reader random <span class="m">2</span> <span class="m">10</span>
Starting random stream: <span class="m">2</span> elements @ 10.0Hz Starting random stream: <span class="m">2</span> elements @ <span class="m">10</span>.0Hz
<span class="m">1485188853650944</span> 0.32359053067687582 0.70028608966895545 <span class="m">1485188853650944</span> <span class="m">0</span>.32359053067687582 <span class="m">0</span>.70028608966895545
<span class="m">1485188853750944</span> 0.72139550945715136 0.39218791387411422 <span class="m">1485188853750944</span> <span class="m">0</span>.72139550945715136 <span class="m">0</span>.39218791387411422
<span class="m">1485188853850944</span> 0.40728044378612194 0.26446072057019654 <span class="m">1485188853850944</span> <span class="m">0</span>.40728044378612194 <span class="m">0</span>.26446072057019654
<span class="m">1485188853950944</span> 0.61021957330250398 0.27359526775709841 <span class="m">1485188853950944</span> <span class="m">0</span>.61021957330250398 <span class="m">0</span>.27359526775709841
<span class="c1"># ... more output ...</span> <span class="c1"># ... more output ...</span>
</pre></div> </pre></div>
</div> </div>
...@@ -108,7 +108,7 @@ Starting random stream: <span class="m">2</span> elements @ 10.0Hz ...@@ -108,7 +108,7 @@ Starting random stream: <span class="m">2</span> elements @ 10.0Hz
</pre></div> </pre></div>
</div> </div>
<p>This will create a reader module that runs <strong>joule reader random</strong> and pipes <p>This will create a reader module that runs <strong>joule reader random</strong> and pipes
the output to <strong>/demo/random</strong>. That&#8217;s all you need to do to set up the output to <strong>/demo/random</strong>. Thats all you need to do to set up
the capture pipeline. Restart joule and check that the new module is the capture pipeline. Restart joule and check that the new module is
running:</p> running:</p>
<div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; sudo systemctl restart joule.service <div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; sudo systemctl restart joule.service
...@@ -118,17 +118,17 @@ $&gt; joule modules ...@@ -118,17 +118,17 @@ $&gt; joule modules
+-------------+---------+--------------+---------+-----+-------------+ +-------------+---------+--------------+---------+-----+-------------+
<span class="p">|</span> Module <span class="p">|</span> Sources <span class="p">|</span> Destinations <span class="p">|</span> Status <span class="p">|</span> CPU <span class="p">|</span> mem <span class="p">|</span> <span class="p">|</span> Module <span class="p">|</span> Sources <span class="p">|</span> Destinations <span class="p">|</span> Status <span class="p">|</span> CPU <span class="p">|</span> mem <span class="p">|</span>
+-------------+---------+--------------+---------+-----+-------------+ +-------------+---------+--------------+---------+-----+-------------+
<span class="p">|</span> Demo Reader <span class="p">|</span> <span class="p">|</span> /demo/random <span class="p">|</span> running <span class="p">|</span> 0% <span class="p">|</span> <span class="m">33</span> MB <span class="o">(</span>42%<span class="o">)</span> <span class="p">|</span> <span class="p">|</span> Demo Reader <span class="p">|</span> <span class="p">|</span> /demo/random <span class="p">|</span> running <span class="p">|</span> <span class="m">0</span>% <span class="p">|</span> <span class="m">33</span> MB <span class="o">(</span><span class="m">42</span>%<span class="o">)</span> <span class="p">|</span>
+-------------+---------+--------------+---------+-----+-------------+ +-------------+---------+--------------+---------+-----+-------------+
$&gt; joule logs <span class="s2">&quot;Demo Reader&quot;</span> $&gt; joule logs <span class="s2">&quot;Demo Reader&quot;</span>
<span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> 18:05:41<span class="o">]</span> ---starting module--- <span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> <span class="m">18</span>:05:41<span class="o">]</span> ---starting module---
<span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> 18:05:41<span class="o">]</span> Starting random stream: <span class="m">2</span> elements @ 10.0Hz <span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> <span class="m">18</span>:05:41<span class="o">]</span> Starting random stream: <span class="m">2</span> elements @ <span class="m">10</span>.0Hz
<span class="c1"># confirm data is entering NilmDB</span> <span class="c1"># confirm data is entering NilmDB</span>
$&gt; nilmtool list -E /demo/random $&gt; nilmtool list -E /demo/random
/demo/random /demo/random
interval extents: Fri, <span class="m">27</span> Jan <span class="m">2017</span> <span class="c1"># ...</span> interval extents: Fri, <span class="m">27</span> Jan <span class="m">2017</span> <span class="c1"># ...</span>
total data: <span class="m">1559</span> rows, 155.700002 seconds total data: <span class="m">1559</span> rows, <span class="m">155</span>.700002 seconds
</pre></div> </pre></div>
</div> </div>
</div> </div>
...@@ -165,8 +165,8 @@ it will display a description of the operations it will perform on the data</p> ...@@ -165,8 +165,8 @@ it will display a description of the operations it will perform on the data</p>
<span class="c1"># ... list of filter modules</span> <span class="c1"># ... list of filter modules</span>
$&gt; joule filter <span class="nb">help</span> mean $&gt; joule filter <span class="nb">help</span> mean
<span class="c1"># ... help with the mean module</span> <span class="c1"># ... help with the mean module</span>
$&gt; joule filter mean 9 $&gt; joule filter mean <span class="m">9</span>
per-element moving average with a window size of 9 per-element moving average with a window size of <span class="m">9</span>
</pre></div> </pre></div>
</div> </div>
<p>To add this filter to our pipeline copy the following into a file at <p>To add this filter to our pipeline copy the following into a file at
...@@ -193,24 +193,24 @@ $&gt; joule modules ...@@ -193,24 +193,24 @@ $&gt; joule modules
+-------------+--------------+----------------+---------+-----+-------------+ +-------------+--------------+----------------+---------+-----+-------------+
<span class="p">|</span> Module <span class="p">|</span> Sources <span class="p">|</span> Destinations <span class="p">|</span> Status <span class="p">|</span> CPU <span class="p">|</span> mem <span class="p">|</span> <span class="p">|</span> Module <span class="p">|</span> Sources <span class="p">|</span> Destinations <span class="p">|</span> Status <span class="p">|</span> CPU <span class="p">|</span> mem <span class="p">|</span>
+-------------+--------------+----------------+---------+-----+-------------+ +-------------+--------------+----------------+---------+-----+-------------+
<span class="p">|</span> Demo Reader <span class="p">|</span> <span class="p">|</span> /demo/random <span class="p">|</span> running <span class="p">|</span> 0% <span class="p">|</span> <span class="m">33</span> MB <span class="o">(</span>42%<span class="o">)</span> <span class="p">|</span> <span class="p">|</span> Demo Reader <span class="p">|</span> <span class="p">|</span> /demo/random <span class="p">|</span> running <span class="p">|</span> <span class="m">0</span>% <span class="p">|</span> <span class="m">33</span> MB <span class="o">(</span><span class="m">42</span>%<span class="o">)</span> <span class="p">|</span>
<span class="p">|</span> Demo Filter <span class="p">|</span> /demo/random <span class="p">|</span> /demo/filtered <span class="p">|</span> running <span class="p">|</span> 0% <span class="p">|</span> <span class="m">53</span> MB <span class="o">(</span>68%<span class="o">)</span> <span class="p">|</span> <span class="p">|</span> Demo Filter <span class="p">|</span> /demo/random <span class="p">|</span> /demo/filtered <span class="p">|</span> running <span class="p">|</span> <span class="m">0</span>% <span class="p">|</span> <span class="m">53</span> MB <span class="o">(</span><span class="m">68</span>%<span class="o">)</span> <span class="p">|</span>
+-------------+--------------+----------------+---------+-----+-------------+ +-------------+--------------+----------------+---------+-----+-------------+
$&gt; joule logs <span class="s2">&quot;Demo Reader&quot;</span> $&gt; joule logs <span class="s2">&quot;Demo Reader&quot;</span>
<span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> 18:22:48<span class="o">]</span> ---starting module--- <span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> <span class="m">18</span>:22:48<span class="o">]</span> ---starting module---
<span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> 18:22:48<span class="o">]</span> Starting random stream: <span class="m">2</span> elements @ 10.0Hz <span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> <span class="m">18</span>:22:48<span class="o">]</span> Starting random stream: <span class="m">2</span> elements @ <span class="m">10</span>.0Hz
$&gt; joule logs <span class="s2">&quot;Demo Filter&quot;</span> $&gt; joule logs <span class="s2">&quot;Demo Filter&quot;</span>
<span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> 18:22:48<span class="o">]</span> ---starting module--- <span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> <span class="m">18</span>:22:48<span class="o">]</span> ---starting module---
<span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> 18:22:48<span class="o">]</span> Starting moving average filter with window size 9 <span class="o">[</span><span class="m">27</span> Jan <span class="m">2017</span> <span class="m">18</span>:22:48<span class="o">]</span> Starting moving average filter with window size <span class="m">9</span>
<span class="c1"># confirm data is entering NilmDB</span> <span class="c1"># confirm data is entering NilmDB</span>
$&gt; nilmtool list -E -n /demo/* $&gt; nilmtool list -E -n /demo/*
/demo/filtered /demo/filtered
interval extents: Fri, <span class="m">27</span> Jan <span class="m">2017</span> <span class="c1"># ...</span> interval extents: Fri, <span class="m">27</span> Jan <span class="m">2017</span> <span class="c1"># ...</span>
total data: <span class="m">132</span> rows, 13.100001 seconds total data: <span class="m">132</span> rows, <span class="m">13</span>.100001 seconds
/demo/random /demo/random
interval extents: Fri, <span class="m">27</span> Jan <span class="m">2017</span> <span class="c1"># ...</span> interval extents: Fri, <span class="m">27</span> Jan <span class="m">2017</span> <span class="c1"># ...</span>
total data: <span class="m">147</span> rows, 14.600001 seconds total data: <span class="m">147</span> rows, <span class="m">14</span>.600001 seconds
</pre></div> </pre></div>
</div> </div>
</div> </div>
...@@ -278,8 +278,8 @@ $&gt; nilmtool list -E -n /demo/* ...@@ -278,8 +278,8 @@ $&gt; nilmtool list -E -n /demo/*
&copy;2017, John Donnal. &copy;2017, John Donnal.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.1</a> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
| |
<a href="_sources/getting_started.rst.txt" <a href="_sources/getting_started.rst.txt"
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head> </head>
<body role="document"> <body>
<div class="document"> <div class="document">
...@@ -175,8 +175,8 @@ $&gt; ./runner.sh <span class="c1"># run end-to-end tests</span> ...@@ -175,8 +175,8 @@ $&gt; ./runner.sh <span class="c1"># run end-to-end tests</span>
&copy;2017, John Donnal. &copy;2017, John Donnal.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.1</a> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
| |
<a href="_sources/index.rst.txt" <a href="_sources/index.rst.txt"
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head> </head>
<body role="document"> <body>
<div class="document"> <div class="document">
...@@ -105,7 +105,7 @@ naming guidelines above.</p> ...@@ -105,7 +105,7 @@ naming guidelines above.</p>
available using the <strong>nilmtool</strong> command.</p> available using the <strong>nilmtool</strong> command.</p>
<div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; sudo apache2ctl restart <div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; sudo apache2ctl restart
$&gt; nilmtool info $&gt; nilmtool info
Client version: 1.10.3 Client version: <span class="m">1</span>.10.3
<span class="c1">#...more information</span> <span class="c1">#...more information</span>
</pre></div> </pre></div>
</div> </div>
...@@ -126,7 +126,7 @@ Raspbian ship with earlier versions. Check your version by running ...@@ -126,7 +126,7 @@ Raspbian ship with earlier versions. Check your version by running
the following command:</p> the following command:</p>
<div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; sudo apt-get install python3 python3-pip -y <div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; sudo apt-get install python3 python3-pip -y
$&gt; python3 -V $&gt; python3 -V
Python 3.5.2 <span class="c1">#&lt;--- this version is ok</span> Python <span class="m">3</span>.5.2 <span class="c1">#&lt;--- this version is ok</span>
</pre></div> </pre></div>
</div> </div>
<p>If your version is 3.5.2 or greater, skip ahead to installing Joule, otherwise you <p>If your version is 3.5.2 or greater, skip ahead to installing Joule, otherwise you
...@@ -223,7 +223,7 @@ $&gt; sudo systemctl start joule.service ...@@ -223,7 +223,7 @@ $&gt; sudo systemctl start joule.service
<div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; sudo systemctl status joule.service <div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; sudo systemctl status joule.service
● joule.service - <span class="s2">&quot;Joule Management Daemon&quot;</span> ● joule.service - <span class="s2">&quot;Joule Management Daemon&quot;</span>
Loaded: loaded <span class="o">(</span>/etc/systemd/system/joule.service<span class="p">;</span> enabled<span class="o">)</span> Loaded: loaded <span class="o">(</span>/etc/systemd/system/joule.service<span class="p">;</span> enabled<span class="o">)</span>
Active: active <span class="o">(</span>running<span class="o">)</span> since Tue 2017-01-17 09:53:21 EST<span class="p">;</span> 7s ago Active: active <span class="o">(</span>running<span class="o">)</span> since Tue <span class="m">2017</span>-01-17 <span class="m">09</span>:53:21 EST<span class="p">;</span> 7s ago
Main PID: <span class="m">2296</span> <span class="o">(</span>jouled<span class="o">)</span> Main PID: <span class="m">2296</span> <span class="o">(</span>jouled<span class="o">)</span>
CGroup: /system.slice/joule.service CGroup: /system.slice/joule.service
└─2296 /usr/local/bin/python3 /usr/local/bin/jouled └─2296 /usr/local/bin/python3 /usr/local/bin/jouled
...@@ -326,8 +326,8 @@ the python3.5 binaries in <strong>/usr/local/bin/</strong></td></tr> ...@@ -326,8 +326,8 @@ the python3.5 binaries in <strong>/usr/local/bin/</strong></td></tr>
&copy;2017, John Donnal. &copy;2017, John Donnal.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.1</a> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
| |
<a href="_sources/install.rst.txt" <a href="_sources/install.rst.txt"
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head> </head>
<body role="document"> <body>
<div class="document"> <div class="document">
...@@ -97,12 +97,12 @@ running the following command:</p> ...@@ -97,12 +97,12 @@ running the following command:</p>
+--------------------------------+----------------+-----------------+---------+-----+--------------+ +--------------------------------+----------------+-----------------+---------+-----+--------------+
<span class="p">|</span> Module <span class="p">|</span> Sources <span class="p">|</span> Destinations <span class="p">|</span> Status <span class="p">|</span> CPU <span class="p">|</span> mem <span class="p">|</span> <span class="p">|</span> Module <span class="p">|</span> Sources <span class="p">|</span> Destinations <span class="p">|</span> Status <span class="p">|</span> CPU <span class="p">|</span> mem <span class="p">|</span>
+--------------------------------+----------------+-----------------+---------+-----+--------------+ +--------------------------------+----------------+-----------------+---------+-----+--------------+
<span class="p">|</span> meter4 process: <span class="p">|</span> /meter4/sensor <span class="p">|</span> /meter4/prep-a <span class="p">|</span> running <span class="p">|</span> 39% <span class="p">|</span> <span class="m">30</span> MB <span class="o">(</span>355%<span class="o">)</span> <span class="p">|</span> <span class="p">|</span> meter4 process: <span class="p">|</span> /meter4/sensor <span class="p">|</span> /meter4/prep-a <span class="p">|</span> running <span class="p">|</span> <span class="m">39</span>% <span class="p">|</span> <span class="m">30</span> MB <span class="o">(</span><span class="m">355</span>%<span class="o">)</span> <span class="p">|</span>
<span class="p">|</span> reconstruct -&gt; sinefit -&gt; prep <span class="p">|</span> <span class="p">|</span> /meter4/prep-b <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> reconstruct -&gt; sinefit -&gt; prep <span class="p">|</span> <span class="p">|</span> /meter4/prep-b <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span>
<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> /meter4/prep-c <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> /meter4/prep-c <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span>
<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> /meter4/iv <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> /meter4/iv <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span>
<span class="p">|</span> <span class="p">|</span> <span class="p">|</span> /meter4/sinefit <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> /meter4/sinefit <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span>
<span class="p">|</span> meter4 capture: <span class="p">|</span> <span class="p">|</span> /meter4/sensor <span class="p">|</span> running <span class="p">|</span> 8% <span class="p">|</span> <span class="m">28</span> MB <span class="o">(</span>336%<span class="o">)</span> <span class="p">|</span> <span class="p">|</span> meter4 capture: <span class="p">|</span> <span class="p">|</span> /meter4/sensor <span class="p">|</span> running <span class="p">|</span> <span class="m">8</span>% <span class="p">|</span> <span class="m">28</span> MB <span class="o">(</span><span class="m">336</span>%<span class="o">)</span> <span class="p">|</span>
<span class="p">|</span> serial data capture <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> serial data capture <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span> <span class="p">|</span>
+--------------------------------+----------------+-----------------+---------+-----+--------------+ +--------------------------------+----------------+-----------------+---------+-----+--------------+
</pre></div> </pre></div>
...@@ -111,22 +111,22 @@ running the following command:</p> ...@@ -111,22 +111,22 @@ running the following command:</p>
<strong>joule logs</strong> command to print recent log entries. The logs are <strong>joule logs</strong> command to print recent log entries. The logs are
automatically rotated: see the ProcDB:MaxLogLines parameter in <a class="reference internal" href="reference.html#main-conf"><span class="std std-ref">main.conf</span></a></p> automatically rotated: see the ProcDB:MaxLogLines parameter in <a class="reference internal" href="reference.html#main-conf"><span class="std std-ref">main.conf</span></a></p>
<div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; joule logs <span class="s2">&quot;meter4 capture&quot;</span> <div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; joule logs <span class="s2">&quot;meter4 capture&quot;</span>
<span class="o">[</span><span class="m">23</span> Jan <span class="m">2017</span> 16:14:56<span class="o">]</span> ---starting module--- <span class="o">[</span><span class="m">23</span> Jan <span class="m">2017</span> <span class="m">16</span>:14:56<span class="o">]</span> ---starting module---
$&gt; joule logs <span class="s2">&quot;meter4 process&quot;</span> $&gt; joule logs <span class="s2">&quot;meter4 process&quot;</span>
<span class="o">[</span><span class="m">23</span> Jan <span class="m">2017</span> 16:14:56<span class="o">]</span> ---starting module--- <span class="o">[</span><span class="m">23</span> Jan <span class="m">2017</span> <span class="m">16</span>:14:56<span class="o">]</span> ---starting module---
</pre></div> </pre></div>
</div> </div>
<p>Check that the data is entering NilmDB using the <strong>nilmtool</strong> command. Joule inserts data periodically, see NilmDB:InsertionPeriod in <a class="reference internal" href="reference.html#main-conf"><span class="std std-ref">main.conf</span></a></p> <p>Check that the data is entering NilmDB using the <strong>nilmtool</strong> command. Joule inserts data periodically, see NilmDB:InsertionPeriod in <a class="reference internal" href="reference.html#main-conf"><span class="std std-ref">main.conf</span></a></p>
<div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; nilmtool list -En /meter4/prep* <div class="highlight-bash"><div class="highlight"><pre><span></span>$&gt; nilmtool list -En /meter4/prep*
/meter4/prep-a /meter4/prep-a
interval extents: Mon, <span class="m">23</span> Jan <span class="m">2017</span> 16:11:01.833447 -0500 -&gt; Mon, <span class="m">23</span> Jan <span class="m">2017</span> 16:16:29.322283 -0500 interval extents: Mon, <span class="m">23</span> Jan <span class="m">2017</span> <span class="m">16</span>:11:01.833447 -0500 -&gt; Mon, <span class="m">23</span> Jan <span class="m">2017</span> <span class="m">16</span>:16:29.322283 -0500
total data: <span class="m">18054</span> rows, 300.878769 seconds total data: <span class="m">18054</span> rows, <span class="m">300</span>.878769 seconds
/meter4/prep-b /meter4/prep-b
interval extents: Mon, <span class="m">23</span> Jan <span class="m">2017</span> 16:11:01.833447 -0500 -&gt; Mon, <span class="m">23</span> Jan <span class="m">2017</span> 16:16:29.322283 -0500 interval extents: Mon, <span class="m">23</span> Jan <span class="m">2017</span> <span class="m">16</span>:11:01.833447 -0500 -&gt; Mon, <span class="m">23</span> Jan <span class="m">2017</span> <span class="m">16</span>:16:29.322283 -0500
total data: <span class="m">18054</span> rows, 300.878769 seconds total data: <span class="m">18054</span> rows, <span class="m">300</span>.878769 seconds
/meter4/prep-c /meter4/prep-a /meter4/prep-c /meter4/prep-a
interval extents: Mon, <span class="m">23</span> Jan <span class="m">2017</span> 16:11:01.833447 -0500 -&gt; Mon, <span class="m">23</span> Jan <span class="m">2017</span> 16:16:29.322283 -0500 interval extents: Mon, <span class="m">23</span> Jan <span class="m">2017</span> <span class="m">16</span>:11:01.833447 -0500 -&gt; Mon, <span class="m">23</span> Jan <span class="m">2017</span> <span class="m">16</span>:16:29.322283 -0500
total data: <span class="m">18054</span> rows, 300.878769 seconds total data: <span class="m">18054</span> rows, <span class="m">300</span>.878769 seconds
</pre></div> </pre></div>
</div> </div>
</div> </div>
...@@ -195,8 +195,8 @@ $&gt; joule logs <span class="s2">&quot;meter4 process&quot;</span> ...@@ -195,8 +195,8 @@ $&gt; joule logs <span class="s2">&quot;meter4 process&quot;</span>
&copy;2017, John Donnal. &copy;2017, John Donnal.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.1</a> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
| |
<a href="_sources/nilm.rst.txt" <a href="_sources/nilm.rst.txt"
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head> </head>
<body role="document"> <body>
<div class="document"> <div class="document">
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
<span id="id1"></span><h3><a class="toc-backref" href="#id10">main.conf</a><a class="headerlink" href="#main-conf" title="Permalink to this headline"></a></h3> <span id="id1"></span><h3><a class="toc-backref" href="#id10">main.conf</a><a class="headerlink" href="#main-conf" title="Permalink to this headline"></a></h3>
<p>Joule uses a set of default configurations that should work for most <p>Joule uses a set of default configurations that should work for most
cases. These defaults can be customized by editing cases. These defaults can be customized by editing
<strong>/etc/joule/main.conf</strong>. Start joule with the <strong>&#8211;config</strong> flag to use a configuration file at <strong>/etc/joule/main.conf</strong>. Start joule with the <strong>config</strong> flag to use a configuration file at
an alternate location. The example <strong>main.conf</strong> below shows the an alternate location. The example <strong>main.conf</strong> below shows the
full set of options and their default settings:</p> full set of options and their default settings:</p>
<div class="highlight-ini"><div class="highlight"><pre><span></span><span class="k">[NilmDB]</span> <div class="highlight-ini"><div class="highlight"><pre><span></span><span class="k">[NilmDB]</span>
...@@ -254,8 +254,8 @@ full set of options and their default settings:</p> ...@@ -254,8 +254,8 @@ full set of options and their default settings:</p>
&copy;2017, John Donnal. &copy;2017, John Donnal.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.1</a> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
| |
<a href="_sources/reference.rst.txt" <a href="_sources/reference.rst.txt"
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
</head> </head>
<body role="document"> <body>
<div class="document"> <div class="document">
...@@ -118,8 +118,8 @@ ...@@ -118,8 +118,8 @@
&copy;2017, John Donnal. &copy;2017, John Donnal.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.1</a> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
</div> </div>
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head> </head>
<body role="document"> <body>
<div class="document"> <div class="document">
...@@ -78,7 +78,7 @@ unit tests assure that your code will work correctly once it is ...@@ -78,7 +78,7 @@ unit tests assure that your code will work correctly once it is
deployed. While unit tests may at first seem tedious to configure, deployed. While unit tests may at first seem tedious to configure,
they greatly improve your code in two ways. First, a good test they greatly improve your code in two ways. First, a good test
suite prevents code regressions allowing you to refactor confidently. suite prevents code regressions allowing you to refactor confidently.
Second, well written tests provide &#8220;live&#8221; documentation that others Second, well written tests provide “live” documentation that others
can use to understand what your module does and how to use it.</p> can use to understand what your module does and how to use it.</p>
<div class="section" id="readermodules"> <div class="section" id="readermodules">
<h3><a class="toc-backref" href="#id6">ReaderModules</a><a class="headerlink" href="#readermodules" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id6">ReaderModules</a><a class="headerlink" href="#readermodules" title="Permalink to this headline"></a></h3>
...@@ -123,10 +123,10 @@ NumpyPipe documentation for details on local pipes and the layout ...@@ -123,10 +123,10 @@ NumpyPipe documentation for details on local pipes and the layout
parameter.</li> parameter.</li>
<li>Create an args object that contains values for any custom arguments <li>Create an args object that contains values for any custom arguments
your module requires, it also should also initialize the pipes your module requires, it also should also initialize the pipes
argument to &#8220;unset&#8221;. In production, modules generate pipes argument to “unset”. In production, modules generate pipes
automatically from their command line parameters. In testing we automatically from their command line parameters. In testing we
disable the pipe building routine by using the keyword &#8220;unset&#8221;, and disable the pipe building routine by using the keyword “unset”, and
instead pass our own pipe to the module&#8217;s run function, below.</li> instead pass our own pipe to the modules run function, below.</li>
</ol> </ol>
</div> </div>
<div class="section" id="run-reader-in-an-event-loop"> <div class="section" id="run-reader-in-an-event-loop">
...@@ -235,10 +235,10 @@ used in testing. Modules should always use <code class="docutils literal"><span ...@@ -235,10 +235,10 @@ used in testing. Modules should always use <code class="docutils literal"><span
<span class="pre">pipe.write</span></code>.</li> <span class="pre">pipe.write</span></code>.</li>
<li>Create an args object that contains values for any custom arguments <li>Create an args object that contains values for any custom arguments
your module requires, it also should also initialize the pipes your module requires, it also should also initialize the pipes
argument to &#8220;unset&#8221;. In production, modules generate pipes argument to “unset”. In production, modules generate pipes
automatically from the command line parameters. In testing we automatically from the command line parameters. In testing we
disable the pipe building routine by using the keyword &#8220;unset&#8221;, and disable the pipe building routine by using the keyword “unset”, and
instead pass our in pipes directly to the module&#8217;s run function, below.</li> instead pass our in pipes directly to the modules run function, below.</li>
</ol> </ol>
</div> </div>
<div class="section" id="run-the-filter-in-an-event-loop"> <div class="section" id="run-the-filter-in-an-event-loop">
...@@ -339,7 +339,7 @@ $&gt; ./runner.sh ...@@ -339,7 +339,7 @@ $&gt; ./runner.sh
<span class="c1">#...output from Docker omitted..</span> <span class="c1">#...output from Docker omitted..</span>
joule <span class="p">|</span> ---------<span class="o">[</span>running e2e <span class="nb">test</span> suite<span class="o">]</span>--------- joule <span class="p">|</span> ---------<span class="o">[</span>running e2e <span class="nb">test</span> suite<span class="o">]</span>---------
joule <span class="p">|</span> OK joule <span class="p">|</span> OK
e2e_joule_1 exited with code 0 e2e_joule_1 exited with code <span class="m">0</span>
<span class="c1">#...output from Docker omitted...</span> <span class="c1">#...output from Docker omitted...</span>
</pre></div> </pre></div>
</div> </div>
...@@ -352,8 +352,8 @@ though you need to set up the appropriate configuration files to run your module ...@@ -352,8 +352,8 @@ though you need to set up the appropriate configuration files to run your module
<h3><a class="toc-backref" href="#id15">Configuration Files</a><a class="headerlink" href="#configuration-files" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id15">Configuration Files</a><a class="headerlink" href="#configuration-files" title="Permalink to this headline"></a></h3>
<p>The E2E tests run joule just like a production system, therefore you <p>The E2E tests run joule just like a production system, therefore you
must include module and stream configuration files in order for joule must include module and stream configuration files in order for joule
to recognize and run your module. It provides a type of &#8220;live&#8221; to recognize and run your module. It provides a type of “live”
documentation. These file serve as a type of &#8220;live&#8221; documentation that documentation. These file serve as a type of “live” documentation that
others can use as a guide when setting up your module on other their others can use as a guide when setting up your module on other their
system.</p> system.</p>
<p>The example_modules e2e test runs both the reader and filter module. The <p>The example_modules e2e test runs both the reader and filter module. The
...@@ -441,7 +441,7 @@ installation.</p> ...@@ -441,7 +441,7 @@ installation.</p>
<span class="k">def</span> <span class="nf">check_logs</span><span class="p">()</span> <span class="k">def</span> <span class="nf">check_logs</span><span class="p">()</span>
<span class="c1">#check output from &#39;joule logs&#39; command</span> <span class="c1">#check output from &#39;joule logs&#39; command</span>
<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s2">&quot;__main__&quot;</span><span class="p">:</span> <span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;__main__&quot;</span><span class="p">:</span>
<span class="n">main</span><span class="p">()</span> <span class="n">main</span><span class="p">()</span>
<span class="k">print</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">)</span> <span class="c1"># no asserts failed, so things are good</span> <span class="k">print</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">)</span> <span class="c1"># no asserts failed, so things are good</span>
</pre></div> </pre></div>
...@@ -516,8 +516,8 @@ and the e2eutils reference for details on the testing API.</p> ...@@ -516,8 +516,8 @@ and the e2eutils reference for details on the testing API.</p>
&copy;2017, John Donnal. &copy;2017, John Donnal.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.1</a> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
| |
<a href="_sources/testing_modules.rst.txt" <a href="_sources/testing_modules.rst.txt"
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head> </head>
<body role="document"> <body>
<div class="document"> <div class="document">
...@@ -82,12 +82,12 @@ provide custom functionality by overriding the parent methods:</p> ...@@ -82,12 +82,12 @@ provide custom functionality by overriding the parent methods:</p>
<p>The module should provide a custom <code class="docutils literal"><span class="pre">__init__</span></code> function which calls <p>The module should provide a custom <code class="docutils literal"><span class="pre">__init__</span></code> function which calls
the parent, and may define two special properties: <strong>description</strong> and the parent, and may define two special properties: <strong>description</strong> and
<strong>help</strong>. The description property should be a short one line summary of the module <strong>help</strong>. The description property should be a short one line summary of the module
eg &#8220;reads data from serial port&#8221;, and the help property should be a longer, multiline eg “reads data from serial port”, and the help property should be a longer, multiline
string explaining what the module does and how to use it, preferably with a usage example. string explaining what the module does and how to use it, preferably with a usage example.
These properties are used by the <strong>joule reader</strong> help system. These properties are used by the <strong>joule reader</strong> help system.
You may also add any additional initialization code your module requires.</p> You may also add any additional initialization code your module requires.</p>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <div class="highlight-python"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="nb">super</span><span class="p">(</span><span class="n">ReaderDemo</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="s2">&quot;Demo Reader&quot;</span><span class="p">)</span> <span class="nb">super</span><span class="p">(</span><span class="n">ReaderDemo</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="s2">&quot;Demo Reader&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="s2">&quot;one line: demo reader&quot;</span> <span class="bp">self</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="s2">&quot;one line: demo reader&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">help</span> <span class="o">=</span> <span class="s2">&quot;a paragraph: this reader does x,y,z etc...&quot;</span> <span class="bp">self</span><span class="o">.</span><span class="n">help</span> <span class="o">=</span> <span class="s2">&quot;a paragraph: this reader does x,y,z etc...&quot;</span>
<span class="c1">#...your custom initialization...</span> <span class="c1">#...your custom initialization...</span>
...@@ -157,12 +157,12 @@ provide custom functionality by overriding the parent methods:</p> ...@@ -157,12 +157,12 @@ provide custom functionality by overriding the parent methods:</p>
<p>The module should provide a custom <code class="docutils literal"><span class="pre">__init__</span></code> function which calls <p>The module should provide a custom <code class="docutils literal"><span class="pre">__init__</span></code> function which calls
the parent, and may define two special properties: <strong>description</strong> and the parent, and may define two special properties: <strong>description</strong> and
<strong>help</strong>. The description property should be a short one line summary of the module <strong>help</strong>. The description property should be a short one line summary of the module
eg &#8220;computes a moving average&#8221;, and the help property should be a longer, multiline eg “computes a moving average”, and the help property should be a longer, multiline
string explaining what the module does and how to use it, preferably with a usage example. string explaining what the module does and how to use it, preferably with a usage example.
These properties are used by the <strong>joule filter</strong> help system. These properties are used by the <strong>joule filter</strong> help system.
You may also add any additional initialization code your module requires.</p> You may also add any additional initialization code your module requires.</p>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <div class="highlight-python"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="nb">super</span><span class="p">(</span><span class="n">ReaderDemo</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="s2">&quot;Demo Reader&quot;</span><span class="p">)</span> <span class="nb">super</span><span class="p">(</span><span class="n">ReaderDemo</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="s2">&quot;Demo Reader&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="s2">&quot;one line: demo reader&quot;</span> <span class="bp">self</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="s2">&quot;one line: demo reader&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">help</span> <span class="o">=</span> <span class="s2">&quot;a paragraph: this reader does x,y,z etc...&quot;</span> <span class="bp">self</span><span class="o">.</span><span class="n">help</span> <span class="o">=</span> <span class="s2">&quot;a paragraph: this reader does x,y,z etc...&quot;</span>
<span class="c1">#...your custom initialization...</span> <span class="c1">#...your custom initialization...</span>
...@@ -308,8 +308,8 @@ modules in isolation. An example is provided in <strong>test_filter.py</strong>. ...@@ -308,8 +308,8 @@ modules in isolation. An example is provided in <strong>test_filter.py</strong>.
&copy;2017, John Donnal. &copy;2017, John Donnal.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.1</a> Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
| |
<a href="_sources/writing_modules.rst.txt" <a href="_sources/writing_modules.rst.txt"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment