helpers/_docs_/helpers.html
2025-08-17 13:28:43 +02:00

934 lines
97 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>helpers package &#8212; helpers documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="_static/classic.css?v=67a6116b" />
<link rel="stylesheet" type="text/css" href="_static/pydoctheme.css?v=5ff89526" />
<link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="_static/pygments_dark.css?v=5349f25f" />
<script src="_static/documentation_options.js?v=5929fcd5"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /><link rel="stylesheet" href="_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
<link rel="shortcut icon" type="image/png" href="_static/py.svg">
<script type="text/javascript" src="_static/copybutton.js"></script>
<script type="text/javascript" src="_static/menu.js"></script>
<script type="text/javascript" src="_static/search-focus.js"></script>
<script type="text/javascript" src="_static/themetoggle.js"></script>
</head>
<body>
<div class="mobile-nav">
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu">
<nav class="nav-content" role="navigation">
<label for="menuToggler" class="toggler__label">
<span></span>
</label>
<span class="nav-items-wrapper">
<a href="https://www.python.org/" class="nav-logo">
<img src="_static/py.svg" alt="Python logo">
</a>
<span class="version_switcher_placeholder"></span>
<form role="search" class="search" action="search.html" method="get">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
<path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
</svg>
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q">
<input type="submit" value="Go">
</form>
</span>
</nav>
<div class="menu-wrapper">
<nav class="menu" role="navigation" aria-label="main navigation">
<div class="language_switcher_placeholder"></div>
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label>
<div>
<h3><a href="#">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">helpers package</a><ul>
<li><a class="reference internal" href="#helpers-helpers">helpers (Helpers)</a></li>
<li><a class="reference internal" href="#helpers.continues_statistic"><code class="docutils literal notranslate"><span class="pre">continues_statistic</span></code></a><ul>
<li><a class="reference internal" href="#helpers.continues_statistic.max"><code class="docutils literal notranslate"><span class="pre">continues_statistic.max</span></code></a></li>
<li><a class="reference internal" href="#helpers.continues_statistic.mean"><code class="docutils literal notranslate"><span class="pre">continues_statistic.mean</span></code></a></li>
<li><a class="reference internal" href="#helpers.continues_statistic.min"><code class="docutils literal notranslate"><span class="pre">continues_statistic.min</span></code></a></li>
<li><a class="reference internal" href="#helpers.continues_statistic.pop"><code class="docutils literal notranslate"><span class="pre">continues_statistic.pop()</span></code></a></li>
<li><a class="reference internal" href="#helpers.continues_statistic.quantifier"><code class="docutils literal notranslate"><span class="pre">continues_statistic.quantifier</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.continues_statistic_multivalue"><code class="docutils literal notranslate"><span class="pre">continues_statistic_multivalue</span></code></a><ul>
<li><a class="reference internal" href="#helpers.continues_statistic_multivalue.pop"><code class="docutils literal notranslate"><span class="pre">continues_statistic_multivalue.pop()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_base"><code class="docutils literal notranslate"><span class="pre">direct_socket_base</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_base.DEFAULT_CHANNEL_NAME"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.DEFAULT_CHANNEL_NAME</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.disconnect"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.disconnect()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.init_channel_name"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.init_channel_name()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.is_connected"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.is_connected()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.receive"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.receive()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.register_callback"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.register_callback()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.register_connect_callback"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.register_connect_callback()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.register_disconnect_callback"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.register_disconnect_callback()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.send"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.send()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_client"><code class="docutils literal notranslate"><span class="pre">direct_socket_client</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_client.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_client.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_client.connect"><code class="docutils literal notranslate"><span class="pre">direct_socket_client.connect()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_client.reconnect"><code class="docutils literal notranslate"><span class="pre">direct_socket_client.reconnect()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_server"><code class="docutils literal notranslate"><span class="pre">direct_socket_server</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_server.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_server.IS_CLIENT</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_base"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_base</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_stp_base.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_base.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_base.receive"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_base.receive()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_client"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_client</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_stp_client.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_client.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_client.connect"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_client.connect()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_client.reconnect"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_client.reconnect()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_server"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_server</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_stp_server.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_server.IS_CLIENT</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.ringbuffer"><code class="docutils literal notranslate"><span class="pre">ringbuffer</span></code></a><ul>
<li><a class="reference internal" href="#helpers.ringbuffer.append"><code class="docutils literal notranslate"><span class="pre">ringbuffer.append()</span></code></a></li>
<li><a class="reference internal" href="#helpers.ringbuffer.extend"><code class="docutils literal notranslate"><span class="pre">ringbuffer.extend()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/helpers.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</nav>
</div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
<a href="index.html">helpers documentation</a> &#187;
</li>
<li class="nav-item nav-item-this"><a href="">helpers package</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">
<input type="submit" value="Go">
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-helpers">
<span id="helpers-package"></span><h1>helpers package<a class="headerlink" href="#module-helpers" title="Link to this heading"></a></h1>
<section id="helpers-helpers">
<h2>helpers (Helpers)<a class="headerlink" href="#helpers-helpers" title="Link to this heading"></a></h2>
<p><strong>Author:</strong></p>
<ul class="simple">
<li><p>Dirk Alders &lt;<a class="reference external" href="mailto:sudo-dirk&#37;&#52;&#48;mount-mockery&#46;de">sudo-dirk<span>&#64;</span>mount-mockery<span>&#46;</span>de</a>&gt;</p></li>
</ul>
<p><strong>Description:</strong></p>
<blockquote>
<div><p>This module supports functions and classes which dont have an own Module (yet).</p>
</div></blockquote>
<p><strong>Submodules:</strong></p>
<ul class="simple">
<li><p><a class="reference internal" href="#helpers.continues_statistic" title="helpers.continues_statistic"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.continues_statistic</span></code></a></p></li>
<li><p><a class="reference internal" href="#helpers.continues_statistic_multivalue" title="helpers.continues_statistic_multivalue"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.continues_statistic_multivalue</span></code></a></p></li>
<li><p><a class="reference internal" href="#helpers.direct_socket_client" title="helpers.direct_socket_client"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.direct_socket_client</span></code></a></p></li>
<li><p><a class="reference internal" href="#helpers.direct_socket_server" title="helpers.direct_socket_server"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.direct_socket_server</span></code></a></p></li>
<li><p><a class="reference internal" href="#helpers.ringbuffer" title="helpers.ringbuffer"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.ringbuffer</span></code></a></p></li>
</ul>
<p><strong>Unittest:</strong></p>
<blockquote>
<div><p>See also the <a class="reference download internal" download="" href="_downloads/5463a8e77376043d0cf58804cb34991b/unittest.pdf"><code class="xref download docutils literal notranslate"><span class="pre">unittest</span></code></a> documentation.</p>
</div></blockquote>
<p><strong>Module Documentation:</strong></p>
</section>
<dl class="py class">
<dt class="sig sig-object py" id="helpers.continues_statistic">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">helpers.</span></span><span class="sig-name descname"><span class="pre">continues_statistic</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mean</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">min_val</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_val</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">quantifier</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.continues_statistic" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
<p>This class stores a statistic for a stream of values. The statistic includes: mean, min, max, quantifier.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You can use the mathematic operators “+, +=” to add a value to the statistic.</p>
</div>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>mean</strong> (<em>numeric</em>) The mean start value, the start value or None.</p></li>
<li><p><strong>min_val</strong> (<em>numeric</em>) The min start value or None</p></li>
<li><p><strong>max_val</strong> (<em>numeric</em>) The max start value or None</p></li>
<li><p><strong>quantifier</strong> (<em>int</em>) The quantifier start value or 0</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You are able to initialise this class in the following ways:</p>
<ul class="simple">
<li><p>Without arguments to get an empty instance</p></li>
<li><p>With one single value to get an starting instance</p></li>
<li><p>With mean, min_val, max_val, quantifier to initialise an existing statistic</p></li>
</ul>
</div>
<p><strong>Example:</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span>
<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../..&#39;</span><span class="p">)</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">helpers</span>
<span class="n">cs</span> <span class="o">=</span> <span class="n">helpers</span><span class="o">.</span><span class="n">continues_statistic</span><span class="p">()</span>
<span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">4</span><span class="p">):</span>
<span class="n">cs</span> <span class="o">+=</span> <span class="n">helpers</span><span class="o">.</span><span class="n">continues_statistic</span><span class="p">(</span><span class="n">val</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">cs</span><span class="p">)</span>
</pre></div>
</div>
<p>Will result to the following output:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mean</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">1</span>
<span class="n">mean</span><span class="o">=</span><span class="mf">2.0</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">2</span>
<span class="n">mean</span><span class="o">=</span><span class="mf">3.0</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">3</span>
<span class="n">mean</span><span class="o">=</span><span class="mf">3.25</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">4</span>
</pre></div>
</div>
<dl class="py property">
<dt class="sig sig-object py" id="helpers.continues_statistic.max">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">max</span></span><a class="headerlink" href="#helpers.continues_statistic.max" title="Link to this definition"></a></dt>
<dd><p>The current max value.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="helpers.continues_statistic.mean">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">mean</span></span><a class="headerlink" href="#helpers.continues_statistic.mean" title="Link to this definition"></a></dt>
<dd><p>The current mean value.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="helpers.continues_statistic.min">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">min</span></span><a class="headerlink" href="#helpers.continues_statistic.min" title="Link to this definition"></a></dt>
<dd><p>The current min value.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.continues_statistic.pop">
<span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#helpers.continues_statistic.pop" title="Link to this definition"></a></dt>
<dd><p>This pops out the current statistic data and returns these as an instance of <a class="reference internal" href="#helpers.continues_statistic" title="helpers.continues_statistic"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.continues_statistic</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The current statistic or None, if no value is available.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="#helpers.continues_statistic" title="helpers.continues_statistic"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.continues_statistic</span></code></a> or None</p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="helpers.continues_statistic.quantifier">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">quantifier</span></span><a class="headerlink" href="#helpers.continues_statistic.quantifier" title="Link to this definition"></a></dt>
<dd><p>The current quantifier (number of values for continues statistic).</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="helpers.continues_statistic_multivalue">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">helpers.</span></span><span class="sig-name descname"><span class="pre">continues_statistic_multivalue</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.continues_statistic_multivalue" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
<p>This class stores multiple statistics of stream values. The statistic of each value is stored as <a class="reference internal" href="#helpers.continues_statistic" title="helpers.continues_statistic"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.continues_statistic</span></code></a>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You can use the mathematic operators “+, +=” to add instances.</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You are able to initialise this class in the following ways:</p>
<ul class="simple">
<li><p>Without arguments to get an empty instance</p></li>
<li><p>With a keword argument(s) which will be passed to <a class="reference internal" href="#helpers.continues_statistic" title="helpers.continues_statistic"><code class="xref py py-class docutils literal notranslate"><span class="pre">continues_statistic</span></code></a></p></li>
<li><p>With a dict equivalent of <a class="reference internal" href="#helpers.continues_statistic_multivalue" title="helpers.continues_statistic_multivalue"><code class="xref py py-class docutils literal notranslate"><span class="pre">continues_statistic_multivalue</span></code></a> to initialise an existing statistic</p></li>
</ul>
</div>
<p><strong>Example:</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span>
<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../..&#39;</span><span class="p">)</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">helpers</span>
<span class="n">csm</span> <span class="o">=</span> <span class="n">helpers</span><span class="o">.</span><span class="n">continues_statistic_multivalue</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">csm</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="n">csm</span> <span class="o">+=</span> <span class="n">helpers</span><span class="o">.</span><span class="n">continues_statistic_multivalue</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;mean&#39;</span><span class="p">:</span> <span class="mf">3.1</span><span class="p">,</span> <span class="s1">&#39;min_val&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;max_val&#39;</span><span class="p">:</span> <span class="mf">3.5</span><span class="p">,</span> <span class="s1">&#39;quantifier&#39;</span><span class="p">:</span> <span class="mi">305</span><span class="p">})</span>
<span class="nb">print</span><span class="p">(</span><span class="n">csm</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="n">csm</span> <span class="o">+=</span> <span class="n">helpers</span><span class="o">.</span><span class="n">continues_statistic_multivalue</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="mf">4.31</span><span class="p">,</span> <span class="n">b</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;mean&#39;</span><span class="p">:</span> <span class="mf">17.1</span><span class="p">,</span> <span class="s1">&#39;min_val&#39;</span><span class="p">:</span> <span class="mf">13.1</span><span class="p">,</span> <span class="s1">&#39;max_val&#39;</span><span class="p">:</span> <span class="mf">19.3</span><span class="p">,</span> <span class="s1">&#39;quantifier&#39;</span><span class="p">:</span> <span class="mi">27</span><span class="p">})</span>
<span class="nb">print</span><span class="p">(</span><span class="n">csm</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">helpers</span><span class="o">.</span><span class="n">continues_statistic_multivalue</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="n">csm</span><span class="p">)),</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;pop out b:&#39;</span><span class="p">,</span> <span class="n">csm</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s1">&#39;b&#39;</span><span class="p">),</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;pop out b:&#39;</span><span class="p">,</span> <span class="n">csm</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s1">&#39;b&#39;</span><span class="p">),</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">csm</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;pop out all:</span><span class="se">\n</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">csm</span><span class="o">.</span><span class="n">pop</span><span class="p">(),</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;pop out all:</span><span class="se">\n</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">csm</span><span class="o">.</span><span class="n">pop</span><span class="p">(),</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">csm</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>Will result to the following output:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">-</span>
<span class="o">--------------------------------------------------------------</span>
<span class="n">a</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="mf">3.1</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mf">3.5</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">305</span>
<span class="o">--------------------------------------------------------------</span>
<span class="n">b</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="mf">17.1</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mf">13.1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mf">19.3</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">27</span>
<span class="n">a</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="mf">3.103954248366013</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mf">4.31</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">306</span>
<span class="o">--------------------------------------------------------------</span>
<span class="n">b</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="mf">17.1</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mf">13.1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mf">19.3</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">27</span>
<span class="n">a</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="mf">3.103954248366013</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mf">4.31</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">306</span>
<span class="o">--------------------------------------------------------------</span>
<span class="n">pop</span> <span class="n">out</span> <span class="n">b</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="mf">17.1</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mf">13.1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mf">19.3</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">27</span>
<span class="o">--------------------------------------------------------------</span>
<span class="n">pop</span> <span class="n">out</span> <span class="n">b</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">0</span>
<span class="o">--------------------------------------------------------------</span>
<span class="n">b</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">0</span>
<span class="n">a</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="mf">3.103954248366013</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mf">4.31</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">306</span>
<span class="o">--------------------------------------------------------------</span>
<span class="n">pop</span> <span class="n">out</span> <span class="nb">all</span><span class="p">:</span>
<span class="n">b</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">0</span>
<span class="n">a</span><span class="p">:</span> <span class="n">mean</span><span class="o">=</span><span class="mf">3.103954248366013</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mf">4.31</span><span class="p">,</span> <span class="n">quantifier</span><span class="o">=</span><span class="mi">306</span>
<span class="o">--------------------------------------------------------------</span>
<span class="n">pop</span> <span class="n">out</span> <span class="nb">all</span><span class="p">:</span>
<span class="o">-</span>
<span class="o">--------------------------------------------------------------</span>
<span class="o">-</span>
<span class="o">--------------------------------------------------------------</span>
</pre></div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.continues_statistic_multivalue.pop">
<span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.continues_statistic_multivalue.pop" title="Link to this definition"></a></dt>
<dd><p>This pops out the current statistic data for a given key and returns these as an instance of <a class="reference internal" href="#helpers.continues_statistic" title="helpers.continues_statistic"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.continues_statistic</span></code></a>.</p>
<p>If no key is given it pops out the current statistic data and returns these as an instance of <code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.continues_statistic_multiple</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>key</strong> (<em>str</em><em> or </em><em>NoneType</em>) The key to get data for</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The current statistic or None, if no value is available.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#helpers.continues_statistic" title="helpers.continues_statistic"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.continues_statistic</span></code></a> or None</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="helpers.direct_socket_base">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">helpers.</span></span><span class="sig-name descname"><span class="pre">direct_socket_base</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">max_len</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">virtual_rate_bps</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_base" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>This is the base class for other classes in this module.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="helpers.direct_socket_base.DEFAULT_CHANNEL_NAME">
<span class="sig-name descname"><span class="pre">DEFAULT_CHANNEL_NAME</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'all_others'</span></em><a class="headerlink" href="#helpers.direct_socket_base.DEFAULT_CHANNEL_NAME" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="helpers.direct_socket_base.IS_CLIENT">
<span class="sig-name descname"><span class="pre">IS_CLIENT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#helpers.direct_socket_base.IS_CLIENT" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_base.disconnect">
<span class="sig-name descname"><span class="pre">disconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_base.disconnect" title="Link to this definition"></a></dt>
<dd><p>Method to disconnect client and server.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_base.init_channel_name">
<span class="sig-name descname"><span class="pre">init_channel_name</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">channel_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_base.init_channel_name" title="Link to this definition"></a></dt>
<dd><p>With this Method, the channel name for logging can be changed.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>channel_name</strong> (<em>str</em>) The name for the logging channel</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_base.is_connected">
<span class="sig-name descname"><span class="pre">is_connected</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_base.is_connected" title="Link to this definition"></a></dt>
<dd><p>With this Method the connection status can be identified.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>True, if a connection is established, otherwise False.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_base.receive">
<span class="sig-name descname"><span class="pre">receive</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_base.receive" title="Link to this definition"></a></dt>
<dd><p>This method returns received data.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>timeout</strong> (<em>float</em>) The timeout for receiving data (at least after the timeout the method returns data or None).</p></li>
<li><p><strong>num</strong> (<em>int</em><em> or </em><em>None</em>) the number of bytes to receive (use None to get all available data).</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The received data.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>bytes</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_base.register_callback">
<span class="sig-name descname"><span class="pre">register_callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_base.register_callback" title="Link to this definition"></a></dt>
<dd><p>This method stores the callback which is executed, if data is available. You need to execute <a class="reference internal" href="#helpers.direct_socket_base.receive" title="helpers.direct_socket_base.receive"><code class="xref py py-func docutils literal notranslate"><span class="pre">receive()</span></code></a> of this instance
given as first argument.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>callback</strong> The callback which will be executed, when data is available.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_base.register_connect_callback">
<span class="sig-name descname"><span class="pre">register_connect_callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_base.register_connect_callback" title="Link to this definition"></a></dt>
<dd><p>This method stores the callback which is executed, if a connection is established.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>callback</strong> The callback which will be executed, when a connection is established.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_base.register_disconnect_callback">
<span class="sig-name descname"><span class="pre">register_disconnect_callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_base.register_disconnect_callback" title="Link to this definition"></a></dt>
<dd><p>This method stores the callback which is executed, after the connection is lost.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>callback</strong> The callback which will be executed, after the connection is lost.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_base.send">
<span class="sig-name descname"><span class="pre">send</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1.0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_base.send" title="Link to this definition"></a></dt>
<dd><p>This method sends data via the initiated communication channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong> (<em>bytes</em>) The data to be send over the communication channel.</p></li>
<li><p><strong>timeout</strong> (<em>float</em>) The timeout for sending data (e.g. time to establish new connection).</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if data had been sent, otherwise False.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>bool</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="helpers.direct_socket_client">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">helpers.</span></span><span class="sig-name descname"><span class="pre">direct_socket_client</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">max_len</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">virtual_rate_bps</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_client" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#helpers.direct_socket_base" title="helpers.direct_socket_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">direct_socket_base</span></code></a></p>
<p>Class to create a direct client socket. See also parent <a class="reference internal" href="#helpers.direct_socket_base" title="helpers.direct_socket_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.direct_socket_base</span></code></a>.</p>
<p><strong>Example:</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span> <span class="c1"># nopep8</span>
<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../..&#39;</span><span class="p">)</span> <span class="c1"># nopep8</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">report</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">helpers</span>
<span class="k">def</span><span class="w"> </span><span class="nf">mirror_callback</span><span class="p">(</span><span class="n">sock</span><span class="p">):</span>
<span class="n">sock</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">sock</span><span class="o">.</span><span class="n">receive</span><span class="p">())</span>
<span class="n">report</span><span class="o">.</span><span class="n">default_logging_config</span><span class="p">()</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">helpers</span><span class="o">.</span><span class="n">direct_socket_server</span><span class="p">(</span><span class="n">virtual_rate_bps</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">init_channel_name</span><span class="p">(</span><span class="s1">&#39;example_server&#39;</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">register_callback</span><span class="p">(</span><span class="n">mirror_callback</span><span class="p">)</span>
<span class="n">c</span> <span class="o">=</span> <span class="n">helpers</span><span class="o">.</span><span class="n">direct_socket_client</span><span class="p">(</span><span class="n">max_len</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">virtual_rate_bps</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">init_channel_name</span><span class="p">(</span><span class="s1">&#39;example_client&#39;</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;abc&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;The Client received: </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="nb">repr</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">receive</span><span class="p">()))</span>
</pre></div>
</div>
<p>Will result to the following output:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">DEBUG</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Waiting</span> <span class="k">for</span> <span class="n">incomming</span> <span class="n">connection</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="p">(</span><span class="mi">2</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="p">(</span><span class="mi">2</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="p">(</span><span class="mi">1</span><span class="p">):</span> <span class="mi">63</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="p">(</span><span class="mi">2</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="p">(</span><span class="mi">1</span><span class="p">):</span> <span class="mi">63</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="p">(</span><span class="mi">2</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="p">(</span><span class="mi">1</span><span class="p">):</span> <span class="mi">63</span>
<span class="n">The</span> <span class="n">Client</span> <span class="n">received</span><span class="p">:</span> <span class="sa">b</span><span class="s1">&#39;ab&#39;</span>
</pre></div>
</div>
<dl class="py attribute">
<dt class="sig sig-object py" id="helpers.direct_socket_client.IS_CLIENT">
<span class="sig-name descname"><span class="pre">IS_CLIENT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#helpers.direct_socket_client.IS_CLIENT" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_client.connect">
<span class="sig-name descname"><span class="pre">connect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">remote_socket</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_client.connect" title="Link to this definition"></a></dt>
<dd><p>Method to create a connection between this client and a <a class="reference internal" href="#helpers.direct_socket_server" title="helpers.direct_socket_server"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.direct_socket_server</span></code></a> instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>remote_socket</strong> (<a class="reference internal" href="#helpers.direct_socket_server" title="helpers.direct_socket_server"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.direct_socket_server</span></code></a>) The remote socket to connect to.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_client.reconnect">
<span class="sig-name descname"><span class="pre">reconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_client.reconnect" title="Link to this definition"></a></dt>
<dd><p>Method to do a reconnect.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <code class="xref py py-const docutils literal notranslate"><span class="pre">remote_socket</span></code> of the prefious <a class="reference internal" href="#helpers.direct_socket_client.connect" title="helpers.direct_socket_client.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">connect()</span></code></a> call will be used.</p>
</div>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="helpers.direct_socket_server">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">helpers.</span></span><span class="sig-name descname"><span class="pre">direct_socket_server</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_server" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#helpers.direct_socket_base" title="helpers.direct_socket_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">direct_socket_base</span></code></a></p>
<p>Class to create a direct server socket. See also parent <a class="reference internal" href="#helpers.direct_socket_base" title="helpers.direct_socket_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.direct_socket_base</span></code></a>.</p>
<p><strong>Example:</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span> <span class="c1"># nopep8</span>
<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../..&#39;</span><span class="p">)</span> <span class="c1"># nopep8</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">report</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">helpers</span>
<span class="k">def</span><span class="w"> </span><span class="nf">mirror_callback</span><span class="p">(</span><span class="n">sock</span><span class="p">):</span>
<span class="n">sock</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">sock</span><span class="o">.</span><span class="n">receive</span><span class="p">())</span>
<span class="n">report</span><span class="o">.</span><span class="n">default_logging_config</span><span class="p">()</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">helpers</span><span class="o">.</span><span class="n">direct_socket_server</span><span class="p">(</span><span class="n">virtual_rate_bps</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">init_channel_name</span><span class="p">(</span><span class="s1">&#39;example_server&#39;</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">register_callback</span><span class="p">(</span><span class="n">mirror_callback</span><span class="p">)</span>
<span class="n">c</span> <span class="o">=</span> <span class="n">helpers</span><span class="o">.</span><span class="n">direct_socket_client</span><span class="p">(</span><span class="n">max_len</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">virtual_rate_bps</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">init_channel_name</span><span class="p">(</span><span class="s1">&#39;example_client&#39;</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;abc&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;The Client received: </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="nb">repr</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">receive</span><span class="p">()))</span>
</pre></div>
</div>
<p>Will result to the following output:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">DEBUG</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Waiting</span> <span class="k">for</span> <span class="n">incomming</span> <span class="n">connection</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="p">(</span><span class="mi">2</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="p">(</span><span class="mi">2</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="p">(</span><span class="mi">1</span><span class="p">):</span> <span class="mi">63</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="p">(</span><span class="mi">2</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="p">(</span><span class="mi">1</span><span class="p">):</span> <span class="mi">63</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="p">(</span><span class="mi">2</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">helpers</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="p">(</span><span class="mi">1</span><span class="p">):</span> <span class="mi">63</span>
<span class="n">The</span> <span class="n">Client</span> <span class="n">received</span><span class="p">:</span> <span class="sa">b</span><span class="s1">&#39;ab&#39;</span>
</pre></div>
</div>
<dl class="py attribute">
<dt class="sig sig-object py" id="helpers.direct_socket_server.IS_CLIENT">
<span class="sig-name descname"><span class="pre">IS_CLIENT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#helpers.direct_socket_server.IS_CLIENT" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="helpers.direct_socket_stp_base">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">helpers.</span></span><span class="sig-name descname"><span class="pre">direct_socket_stp_base</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_stp_base" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#helpers.direct_socket_base" title="helpers.direct_socket_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">direct_socket_base</span></code></a></p>
<dl class="py attribute">
<dt class="sig sig-object py" id="helpers.direct_socket_stp_base.IS_CLIENT">
<span class="sig-name descname"><span class="pre">IS_CLIENT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#helpers.direct_socket_stp_base.IS_CLIENT" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_stp_base.receive">
<span class="sig-name descname"><span class="pre">receive</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_stp_base.receive" title="Link to this definition"></a></dt>
<dd><p>This method returns one received messages via the initiated communication channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> (<em>float</em>) The timeout for receiving data (at least after the timeout the method returns data or None).</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The received data.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>bytes</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="helpers.direct_socket_stp_client">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">helpers.</span></span><span class="sig-name descname"><span class="pre">direct_socket_stp_client</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_stp_client" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#helpers.direct_socket_stp_base" title="helpers.direct_socket_stp_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">direct_socket_stp_base</span></code></a></p>
<dl class="py attribute">
<dt class="sig sig-object py" id="helpers.direct_socket_stp_client.IS_CLIENT">
<span class="sig-name descname"><span class="pre">IS_CLIENT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#helpers.direct_socket_stp_client.IS_CLIENT" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_stp_client.connect">
<span class="sig-name descname"><span class="pre">connect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">remote_socket</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_stp_client.connect" title="Link to this definition"></a></dt>
<dd><p>Method to create a connection between this client and a <a class="reference internal" href="#helpers.direct_socket_server" title="helpers.direct_socket_server"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.direct_socket_server</span></code></a> instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>remote_socket</strong> (<a class="reference internal" href="#helpers.direct_socket_server" title="helpers.direct_socket_server"><code class="xref py py-class docutils literal notranslate"><span class="pre">helpers.direct_socket_server</span></code></a>) The remote socket to connect to.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.direct_socket_stp_client.reconnect">
<span class="sig-name descname"><span class="pre">reconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_stp_client.reconnect" title="Link to this definition"></a></dt>
<dd><p>Method to do a reconnect.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <code class="xref py py-const docutils literal notranslate"><span class="pre">remote_socket</span></code> of the prefious <a class="reference internal" href="#helpers.direct_socket_stp_client.connect" title="helpers.direct_socket_stp_client.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">connect()</span></code></a> call will be used.</p>
</div>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="helpers.direct_socket_stp_server">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">helpers.</span></span><span class="sig-name descname"><span class="pre">direct_socket_stp_server</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.direct_socket_stp_server" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#helpers.direct_socket_stp_base" title="helpers.direct_socket_stp_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">direct_socket_stp_base</span></code></a></p>
<dl class="py attribute">
<dt class="sig sig-object py" id="helpers.direct_socket_stp_server.IS_CLIENT">
<span class="sig-name descname"><span class="pre">IS_CLIENT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#helpers.direct_socket_stp_server.IS_CLIENT" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="helpers.ringbuffer">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">helpers.</span></span><span class="sig-name descname"><span class="pre">ringbuffer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.ringbuffer" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></p>
<p>Class for a list with a limited number of elements.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>On adding Objects, the list will be reduced to the maximum length by deleting entries starting from index 0.</p>
</div>
<p><strong>Example:</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span>
<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../..&#39;</span><span class="p">)</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">helpers</span>
<span class="n">rb</span> <span class="o">=</span> <span class="n">helpers</span><span class="o">.</span><span class="n">ringbuffer</span><span class="p">(</span><span class="n">length</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">rb</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="n">rb</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">rb</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="n">rb</span><span class="o">.</span><span class="n">extend</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="n">rb</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
<span class="n">rb</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">17</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">rb</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">--------------------------------------------------------------&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>Will result to the following output:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[]</span>
<span class="o">--------------------------------------------------------------</span>
<span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="o">--------------------------------------------------------------</span>
<span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">]</span>
<span class="o">--------------------------------------------------------------</span>
<span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">17</span><span class="p">]</span>
<span class="o">--------------------------------------------------------------</span>
</pre></div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.ringbuffer.append">
<span class="sig-name descname"><span class="pre">append</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.ringbuffer.append" title="Link to this definition"></a></dt>
<dd><p>Append object to the end of the list.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="helpers.ringbuffer.extend">
<span class="sig-name descname"><span class="pre">extend</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">iterable</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#helpers.ringbuffer.extend" title="Link to this definition"></a></dt>
<dd><p>Extend list by appending elements from the iterable.</p>
</dd></dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<div>
<h3><a href="#">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">helpers package</a><ul>
<li><a class="reference internal" href="#helpers-helpers">helpers (Helpers)</a></li>
<li><a class="reference internal" href="#helpers.continues_statistic"><code class="docutils literal notranslate"><span class="pre">continues_statistic</span></code></a><ul>
<li><a class="reference internal" href="#helpers.continues_statistic.max"><code class="docutils literal notranslate"><span class="pre">continues_statistic.max</span></code></a></li>
<li><a class="reference internal" href="#helpers.continues_statistic.mean"><code class="docutils literal notranslate"><span class="pre">continues_statistic.mean</span></code></a></li>
<li><a class="reference internal" href="#helpers.continues_statistic.min"><code class="docutils literal notranslate"><span class="pre">continues_statistic.min</span></code></a></li>
<li><a class="reference internal" href="#helpers.continues_statistic.pop"><code class="docutils literal notranslate"><span class="pre">continues_statistic.pop()</span></code></a></li>
<li><a class="reference internal" href="#helpers.continues_statistic.quantifier"><code class="docutils literal notranslate"><span class="pre">continues_statistic.quantifier</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.continues_statistic_multivalue"><code class="docutils literal notranslate"><span class="pre">continues_statistic_multivalue</span></code></a><ul>
<li><a class="reference internal" href="#helpers.continues_statistic_multivalue.pop"><code class="docutils literal notranslate"><span class="pre">continues_statistic_multivalue.pop()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_base"><code class="docutils literal notranslate"><span class="pre">direct_socket_base</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_base.DEFAULT_CHANNEL_NAME"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.DEFAULT_CHANNEL_NAME</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.disconnect"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.disconnect()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.init_channel_name"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.init_channel_name()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.is_connected"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.is_connected()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.receive"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.receive()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.register_callback"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.register_callback()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.register_connect_callback"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.register_connect_callback()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.register_disconnect_callback"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.register_disconnect_callback()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_base.send"><code class="docutils literal notranslate"><span class="pre">direct_socket_base.send()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_client"><code class="docutils literal notranslate"><span class="pre">direct_socket_client</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_client.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_client.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_client.connect"><code class="docutils literal notranslate"><span class="pre">direct_socket_client.connect()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_client.reconnect"><code class="docutils literal notranslate"><span class="pre">direct_socket_client.reconnect()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_server"><code class="docutils literal notranslate"><span class="pre">direct_socket_server</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_server.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_server.IS_CLIENT</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_base"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_base</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_stp_base.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_base.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_base.receive"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_base.receive()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_client"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_client</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_stp_client.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_client.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_client.connect"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_client.connect()</span></code></a></li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_client.reconnect"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_client.reconnect()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.direct_socket_stp_server"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_server</span></code></a><ul>
<li><a class="reference internal" href="#helpers.direct_socket_stp_server.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">direct_socket_stp_server.IS_CLIENT</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#helpers.ringbuffer"><code class="docutils literal notranslate"><span class="pre">ringbuffer</span></code></a><ul>
<li><a class="reference internal" href="#helpers.ringbuffer.append"><code class="docutils literal notranslate"><span class="pre">ringbuffer.append()</span></code></a></li>
<li><a class="reference internal" href="#helpers.ringbuffer.extend"><code class="docutils literal notranslate"><span class="pre">ringbuffer.extend()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/helpers.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
<a href="index.html">helpers documentation</a> &#187;
</li>
<li class="nav-item nav-item-this"><a href="">helpers package</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">
<input type="submit" value="Go">
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="footer">
&copy;
Copyright
2025, Dirk Alders.
<br>
This page is licensed under the Python Software Foundation License Version 2.
<br>
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
<br>
<br>
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br>
<br>
<br>
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>