diff --git a/.github/workflows/deploy-website.yml b/.github/workflows/deploy-website.yml
index 8c457f7..01ed345 100644
--- a/.github/workflows/deploy-website.yml
+++ b/.github/workflows/deploy-website.yml
@@ -13,7 +13,7 @@
       - name: Setup Node.js
         uses: actions/setup-node@v1
         with:
-          node-version: 14.1.0
+          node-version: 18.16.1
       - name: Copy asf yaml
         run: |
           cp .asf.yaml build/
diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml
index 96953e0..fd75b95 100644
--- a/.github/workflows/pr-validation.yml
+++ b/.github/workflows/pr-validation.yml
@@ -13,7 +13,7 @@
       - name: Setup Node.js
         uses: actions/setup-node@v1
         with:
-          node-version: '14.x'
+          node-version: '18.16.1'
 
       - name: Build documentation
         run: |
diff --git a/docs-python/dev/reference/client/client/index.html b/docs-python/dev/reference/client/client/index.html
index 76ba628..9dbf584 100644
--- a/docs-python/dev/reference/client/client/index.html
+++ b/docs-python/dev/reference/client/client/index.html
@@ -1909,11 +1909,13 @@
 An <a class="autorefs autorefs-internal" href="../../endpoint/endpoint/#streampipes.endpoint.endpoint">endpoint</a> provides the actual methods to interact with StreamPipes
 API.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1944,7 +1946,7 @@
                 </span>
                 <span class="doc-param-default">
                   <b>DEFAULT:</b> 
-                    <code>logging.INFO</code>
+                    <code>logging.<span title="logging.INFO">INFO</span></code>
                 </span>
             </p>
           </td>
@@ -1952,6 +1954,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1991,6 +1995,8 @@
     </tbody>
   </table>
 
+
+
 <p><strong>Examples:</strong></p>
     <div class="language-python highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">streampipes.client</span> <span class="kn">import</span> <span class="n">StreamPipesClient</span>
 <span class="kn">from</span> <span class="nn">streampipes.client.config</span> <span class="kn">import</span> <span class="n">StreamPipesClientConfig</span>
@@ -2024,7 +2030,6 @@
 </code></pre></div></p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2053,6 +2058,8 @@
   
       <p>Constructs the basic API URL from the given <code>client_config</code>.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2103,6 +2110,8 @@
 <p>The HTTP headers are composed of the authentication headers supplied by the credential
 provider and additional required headers (currently this is only the application header).</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2135,6 +2144,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2154,11 +2164,13 @@
       <p>Returns an instance of the <code>StreamPipesPythonClient</code>.</p>
 <p>Provides consistency to the StreamPipes Java client.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2189,7 +2201,7 @@
                 </span>
                 <span class="doc-param-default">
                   <b>DEFAULT:</b> 
-                    <code>logging.INFO</code>
+                    <code>logging.<span title="logging.INFO">INFO</span></code>
                 </span>
             </p>
           </td>
@@ -2197,6 +2209,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2224,6 +2238,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2238,6 +2253,8 @@
   
       <p>Prints a short description of the connected StreamPipes instance and the available resources to the console.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2261,6 +2278,8 @@
     </tbody>
   </table>
 
+
+
 <p><strong>Examples:</strong></p>
     <p><div class="language-python highlight"><pre><span></span><code><span class="n">client</span><span class="o">.</span><span class="n">describe</span><span class="p">()</span>
 </code></pre></div>
diff --git a/docs-python/dev/reference/client/config/index.html b/docs-python/dev/reference/client/config/index.html
index 5fc2dbf..aa6816a 100644
--- a/docs-python/dev/reference/client/config/index.html
+++ b/docs-python/dev/reference/client/config/index.html
@@ -1823,7 +1823,7 @@
 
 
 <h2 id="streampipes.client.config.StreamPipesClientConfig" class="doc doc-heading">
-        <code>StreamPipesClientConfig</code>
+          <code>StreamPipesClientConfig</code>
 
   
   <span class="doc doc-labels">
@@ -1839,11 +1839,13 @@
       <p>Configure the StreamPipes client in accordance to the actual StreamPipes instance to connect to.</p>
 <p>An instance is provided to the <code>StreamPipesClient</code> to configure it properly.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1916,11 +1918,12 @@
     </tbody>
   </table>
 
+
+
 <p><strong>Examples:</strong></p>
     <p>see <a class="autorefs autorefs-internal" href="../client/#streampipes.client.client.StreamPipesClient">StreamPipesClient</a></p>
 
 
-
   
 
   <div class="doc doc-children">
diff --git a/docs-python/dev/reference/client/credential_provider/index.html b/docs-python/dev/reference/client/credential_provider/index.html
index c3d40b5..7de3456 100644
--- a/docs-python/dev/reference/client/credential_provider/index.html
+++ b/docs-python/dev/reference/client/credential_provider/index.html
@@ -1891,22 +1891,21 @@
 
 
 <h2 id="streampipes.client.credential_provider.CredentialProvider" class="doc doc-heading">
-        <code>CredentialProvider</code>
+          <code>CredentialProvider</code>
 
 
 <a href="#streampipes.client.credential_provider.CredentialProvider" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><span title="abc.ABC">ABC</span></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><span title="abc.ABC">ABC</span></code></p>
 
   
       <p>Abstract implementation of a credential provider.
 Must be inherited by all credential providers.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1919,6 +1918,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1934,11 +1934,13 @@
       <p>Creates the HTTP headers for the specific credential provider.</p>
 <p>Concrete authentication headers must be defined in the implementation of a credential provider.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1963,6 +1965,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2015,8 +2019,8 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.client.credential_provider.CredentialProvider" href="#streampipes.client.credential_provider.CredentialProvider">CredentialProvider</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.client.credential_provider.CredentialProvider" href="#streampipes.client.credential_provider.CredentialProvider">CredentialProvider</a></code></p>
 
   
       <p>A credential provider that allows authentication via a StreamPipes API Token.</p>
@@ -2028,11 +2032,13 @@
 <li><code>SP_API_KEY</code> is expected to contain the API key</li>
 </ul>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2077,11 +2083,12 @@
     </tbody>
   </table>
 
+
+
 <p><strong>Examples:</strong></p>
     <p>see <a class="autorefs autorefs-internal" href="../client/#streampipes.client.client.StreamPipesClient">StreamPipesClient</a></p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2094,6 +2101,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2113,11 +2121,13 @@
       <p>DEPRECATED - use the class constructor instead</p>
 <p>Returns an api key provider parameterized via environment variables.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2152,6 +2162,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2175,6 +2187,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/endpoint/api/data_lake_measure/index.html b/docs-python/dev/reference/endpoint/api/data_lake_measure/index.html
index 2ab3fd7..b4b5fd0 100644
--- a/docs-python/dev/reference/endpoint/api/data_lake_measure/index.html
+++ b/docs-python/dev/reference/endpoint/api/data_lake_measure/index.html
@@ -1920,15 +1920,15 @@
 
 
 <h2 id="streampipes.endpoint.api.data_lake_measure.DataLakeMeasureEndpoint" class="doc doc-heading">
-        <code>DataLakeMeasureEndpoint</code>
+          <code>DataLakeMeasureEndpoint</code>
 
 
 <a href="#streampipes.endpoint.api.data_lake_measure.DataLakeMeasureEndpoint" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.endpoint.APIEndpoint" href="../../endpoint/#streampipes.endpoint.endpoint.APIEndpoint">APIEndpoint</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.endpoint.APIEndpoint" href="../../endpoint/#streampipes.endpoint.endpoint.APIEndpoint">APIEndpoint</a></code></p>
 
   
       <p>Implementation of the DataLakeMeasure endpoint.</p>
@@ -1938,6 +1938,8 @@
 <p>In addition, the endpoint provides direct access to the data stored in the data laka by querying a
 specific data lake measure using the <code>get()</code> method.</p>
 
+
+
 <p><strong>Examples:</strong></p>
     <div class="language-python highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">streampipes.client</span> <span class="kn">import</span> <span class="n">StreamPipesClient</span>
 <span class="kn">from</span> <span class="nn">streampipes.client.config</span> <span class="kn">import</span> <span class="n">StreamPipesClientConfig</span>
@@ -1997,7 +1999,6 @@
 find them at <a class="autorefs autorefs-internal" href="#streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig">MeasurementGetQueryConfig</a>.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2010,6 +2011,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2027,11 +2029,13 @@
 This behaviour can be influenced by passing the parameter <code>limit</code> with a different value
 (see <a class="autorefs autorefs-internal" href="#streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig">MeasurementGetQueryConfig</a>).</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2072,6 +2076,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2099,6 +2105,8 @@
     </tbody>
   </table>
 
+
+
 <p><strong>Examples:</strong></p>
     <p>see directly at <a class="autorefs autorefs-internal" href="#streampipes.endpoint.api.data_lake_measure.DataLakeMeasureEndpoint">DataLakeMeasureEndpoint</a>.</p>
 
@@ -2119,15 +2127,15 @@
 
 
 <h2 id="streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig" class="doc doc-heading">
-        <code>MeasurementGetQueryConfig</code>
+          <code>MeasurementGetQueryConfig</code>
 
 
 <a href="#streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
 
   
       <p>Config class describing the parameters of the <code>get()</code> method for measurements.</p>
@@ -2136,6 +2144,8 @@
 Thereby, parameter names are adapted to the naming of the StreamPipes API,
 for which <a href="https://docs.pydantic.dev/usage/model_config/#options">Pydantic aliases</a> are used.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2155,7 +2165,7 @@
             <p>
                 <span class="doc-attribute-annotation">
                   <b>TYPE:</b>
-                    <code><span title="typing.Optional">Optional</span>[str]</code>
+                    <code><span title="typing.Optional">Optional</span>[<span title="typing.List">List</span>[str]]</code>
                 </span>
             </p>
           </td>
@@ -2252,7 +2262,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2269,7 +2278,7 @@
 
 
 <h3 id="streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig.Config" class="doc doc-heading">
-        <code>Config</code>
+          <code>Config</code>
 
 
 <a href="#streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig.Config" class="headerlink" title="Permanent link">&para;</a></h3>
@@ -2281,7 +2290,6 @@
       <p>Pydantic Config class</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2303,6 +2311,7 @@
 </div>
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2320,6 +2329,8 @@
 It follows the following structure <code>?param1=value1&amp;param2=value2...</code>.
 This query string is not an entire URL, instead it needs to appended to an API path.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2364,22 +2375,21 @@
 
 
 <h2 id="streampipes.endpoint.api.data_lake_measure.StreamPipesQueryValidationError" class="doc doc-heading">
-        <code>StreamPipesQueryValidationError</code>
+          <code>StreamPipesQueryValidationError</code>
 
 
 <a href="#streampipes.endpoint.api.data_lake_measure.StreamPipesQueryValidationError" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code>Exception</code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code>Exception</code></p>
 
   
       <p>A custom exception to be raised when the validation of query parameter
 causes an error.</p>
 
 
-
   </div>
 
 </div>
diff --git a/docs-python/dev/reference/endpoint/api/data_stream/index.html b/docs-python/dev/reference/endpoint/api/data_stream/index.html
index 55fd7f2..e5cbde3 100644
--- a/docs-python/dev/reference/endpoint/api/data_stream/index.html
+++ b/docs-python/dev/reference/endpoint/api/data_stream/index.html
@@ -1825,21 +1825,23 @@
 
 
 <h2 id="streampipes.endpoint.api.data_stream.DataStreamEndpoint" class="doc doc-heading">
-        <code>DataStreamEndpoint</code>
+          <code>DataStreamEndpoint</code>
 
 
 <a href="#streampipes.endpoint.api.data_stream.DataStreamEndpoint" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.endpoint.APIEndpoint" href="../../endpoint/#streampipes.endpoint.endpoint.APIEndpoint">APIEndpoint</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.endpoint.APIEndpoint" href="../../endpoint/#streampipes.endpoint.endpoint.APIEndpoint">APIEndpoint</a></code></p>
 
   
       <p>Implementation of the DataStream endpoint.</p>
 <p>Consequently, it allows querying metadata about available data streams (see <code>all()</code> method).
 The metadata is returned as an instance of <a class="autorefs autorefs-internal" href="../../../model/container/data_streams/#streampipes.model.container.data_streams.DataStreams"><code>DataStreams</code></a>.</p>
 
+
+
 <p><strong>Examples:</strong></p>
     <div class="language-python highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">streampipes.client</span> <span class="kn">import</span> <span class="n">StreamPipesClient</span>
 <span class="kn">from</span> <span class="nn">streampipes.client.config</span> <span class="kn">import</span> <span class="n">StreamPipesClientConfig</span>
@@ -1861,7 +1863,6 @@
 </code></pre></div></p>
 
 
-
   
 
   <div class="doc doc-children">
diff --git a/docs-python/dev/reference/endpoint/api/version/index.html b/docs-python/dev/reference/endpoint/api/version/index.html
index de6f2d3..176f0a7 100644
--- a/docs-python/dev/reference/endpoint/api/version/index.html
+++ b/docs-python/dev/reference/endpoint/api/version/index.html
@@ -1879,26 +1879,28 @@
 
 
 <h2 id="streampipes.endpoint.api.version.VersionEndpoint" class="doc doc-heading">
-        <code>VersionEndpoint</code>
+          <code>VersionEndpoint</code>
 
 
 <a href="#streampipes.endpoint.api.version.VersionEndpoint" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.APIEndpoint" href="../../endpoint/#streampipes.endpoint.endpoint.APIEndpoint">APIEndpoint</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.APIEndpoint" href="../../endpoint/#streampipes.endpoint.endpoint.APIEndpoint">APIEndpoint</a></code></p>
 
   
       <p>Implementation of the Versions endpoint.</p>
 <p>This endpoint provides metadata about the StreamPipes version of the connected instance.
 It only allows to apply the <code>get()</code> method with an empty string as identifier.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1915,6 +1917,8 @@
     </tbody>
   </table>
 
+
+
 <p><strong>Examples:</strong></p>
     <div class="highlight"><pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">streampipes.client</span> <span class="kn">import</span> <span class="n">StreamPipesClient</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">streampipes.client.config</span> <span class="kn">import</span> <span class="n">StreamPipesClientConfig</span>
@@ -1934,7 +1938,6 @@
 </code></pre></div>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1947,6 +1950,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1962,6 +1966,8 @@
       <p>Usually, this method returns information about all resources provided by this endpoint.
 However, this endpoint does not support this kind of operation.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1989,6 +1995,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2004,11 +2011,13 @@
       <p>Queries the resource from the API endpoint.</p>
 <p>For this endpoint only one resource is available.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2029,6 +2038,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2060,6 +2071,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2075,6 +2087,8 @@
       <p>Usually, this method allows to create via this endpoint.
 Since the data represented by this endpoint is immutable, it does not support this kind of operation.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/endpoint/endpoint/index.html b/docs-python/dev/reference/endpoint/endpoint/index.html
index e76035e..f154dca 100644
--- a/docs-python/dev/reference/endpoint/endpoint/index.html
+++ b/docs-python/dev/reference/endpoint/endpoint/index.html
@@ -1961,15 +1961,15 @@
 
 
 <h2 id="streampipes.endpoint.endpoint.APIEndpoint" class="doc doc-heading">
-        <code>APIEndpoint</code>
+          <code>APIEndpoint</code>
 
 
 <a href="#streampipes.endpoint.endpoint.APIEndpoint" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.endpoint.Endpoint" href="#streampipes.endpoint.endpoint.Endpoint">Endpoint</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.endpoint.Endpoint" href="#streampipes.endpoint.endpoint.Endpoint">Endpoint</a></code></p>
 
   
       <p>Abstract implementation of an API endpoint.</p>
@@ -1977,7 +1977,6 @@
 By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1990,6 +1989,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2006,6 +2006,8 @@
 <p>Results are provided as an instance of a <code>ResourceContainer</code> that
 allows to handle the returned resources in a comfortable and pythonic way.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2037,6 +2039,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2051,6 +2054,8 @@
   
       <p>Builds the endpoint's URL of the API path.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2082,6 +2087,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2096,11 +2102,13 @@
   
       <p>Queries the specified resource from the API endpoint.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2121,6 +2129,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2152,6 +2162,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2166,11 +2177,13 @@
   
       <p>Allows to post a resource to the StreamPipes API.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2191,6 +2204,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2237,19 +2252,21 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><span title="abc.ABC">ABC</span></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><span title="abc.ABC">ABC</span></code></p>
 
   
       <p>Abstract implementation of a StreamPipes endpoint.</p>
 <p>Serves as template for all endpoints used for interaction with a StreamPipes instance.
 By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2271,7 +2288,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2303,8 +2319,8 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.endpoint.Endpoint" href="#streampipes.endpoint.endpoint.Endpoint">Endpoint</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.endpoint.Endpoint" href="#streampipes.endpoint.endpoint.Endpoint">Endpoint</a></code></p>
 
   
       <p>Abstract implementation of a StreamPipes messaging endpoint.</p>
@@ -2313,7 +2329,6 @@
 By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2345,6 +2360,8 @@
 <p>This instance enables the client to authenticate to the broker used in the target StreamPipes instance,
 to consume messages from and to write messages to the broker.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2368,6 +2385,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2400,6 +2419,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2416,11 +2436,13 @@
 <p>This configuration step is required before the endpoint can be actually used.
 The based <code>broker</code> instance is passed to an internal property</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2441,6 +2463,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/endpoint/exceptions/index.html b/docs-python/dev/reference/endpoint/exceptions/index.html
index 55662c2..e871ebd 100644
--- a/docs-python/dev/reference/endpoint/exceptions/index.html
+++ b/docs-python/dev/reference/endpoint/exceptions/index.html
@@ -1829,19 +1829,21 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code>Exception</code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code>Exception</code></p>
 
   
       <p>Exception that indicates that an instance of a messaging endpoint has not been configured.</p>
 <p>This error occurs when an instance of a messaging endpoint is used before
 the broker instance to be used is configured by passing it to the <code>configure()</code> method.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1863,7 +1865,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
diff --git a/docs-python/dev/reference/function_zoo/river_function/index.html b/docs-python/dev/reference/function_zoo/river_function/index.html
index 56c2544..08b78cb 100644
--- a/docs-python/dev/reference/function_zoo/river_function/index.html
+++ b/docs-python/dev/reference/function_zoo/river_function/index.html
@@ -1969,11 +1969,13 @@
 <p>It creates a StreamPipesFunction to train a model with the incoming events of a data stream and
 creates an output data stream that publishes the prediction to StreamPipes.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2034,7 +2036,7 @@
                 </span>
                 <span class="doc-param-default">
                   <b>DEFAULT:</b> 
-                    <code>RuntimeType.STRING.value</code>
+                    <code><a class="autorefs autorefs-internal" title="streampipes.functions.utils.data_stream_generator.RuntimeType" href="../../functions/utils/data_stream_generator/#streampipes.functions.utils.data_stream_generator.RuntimeType">RuntimeType</a>.<span title="streampipes.functions.utils.data_stream_generator.RuntimeType.STRING">STRING</span>.<span title="streampipes.functions.utils.data_stream_generator.RuntimeType.STRING.value">value</span></code>
                 </span>
             </p>
           </td>
@@ -2133,7 +2135,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2146,6 +2147,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2160,11 +2162,13 @@
   
       <p>Start or stop the training of the model.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2189,6 +2193,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2207,6 +2212,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2244,19 +2250,21 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.streampipes_function.StreamPipesFunction" href="../../functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction">StreamPipesFunction</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.streampipes_function.StreamPipesFunction" href="../../functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction">StreamPipesFunction</a></code></p>
 
   
       <p>Implementation of a StreamPipesFunction to enable an easy usage
 for Online Machine Learning models of the <a href="https://riverml.xyz/">River library</a>.</p>
 <p>The function trains the model with the incoming events and publishes the prediction to an output data stream.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2377,7 +2385,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2390,6 +2397,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2404,11 +2412,13 @@
   
       <p>Trains the model with the incoming events and sends the prediction back to StreamPipes.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2443,6 +2453,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2470,6 +2482,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2484,11 +2497,13 @@
   
       <p>Executes the <code>on_start</code> method of the function.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2509,6 +2524,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2536,6 +2553,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2554,6 +2572,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2568,6 +2587,8 @@
   
       <p>Returns the stream ids required by this function.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/broker/broker/index.html b/docs-python/dev/reference/functions/broker/broker/index.html
index 13758f4..27edcdc 100644
--- a/docs-python/dev/reference/functions/broker/broker/index.html
+++ b/docs-python/dev/reference/functions/broker/broker/index.html
@@ -1863,22 +1863,21 @@
 
 
 <h2 id="streampipes.functions.broker.broker.Broker" class="doc doc-heading">
-        <code>Broker</code>
+          <code>Broker</code>
 
 
 <a href="#streampipes.functions.broker.broker.Broker" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><span title="abc.ABC">ABC</span></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><span title="abc.ABC">ABC</span></code></p>
 
   
       <p>Abstract implementation of a broker for consumer and publisher.</p>
 <p>It contains the basic logic to connect to a data stream.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1891,6 +1890,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1909,11 +1909,13 @@
   
       <p>Connects to the broker running in StreamPipes.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1934,6 +1936,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1961,6 +1965,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1980,6 +1985,8 @@
   
       <p>Closes the connection to the server.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/broker/broker_handler/index.html b/docs-python/dev/reference/functions/broker/broker_handler/index.html
index 92bc5f7..5b333db 100644
--- a/docs-python/dev/reference/functions/broker/broker_handler/index.html
+++ b/docs-python/dev/reference/functions/broker/broker_handler/index.html
@@ -1865,21 +1865,20 @@
 
 
 <h2 id="streampipes.functions.broker.broker_handler.SupportedBroker" class="doc doc-heading">
-        <code>SupportedBroker</code>
+          <code>SupportedBroker</code>
 
 
 <a href="#streampipes.functions.broker.broker_handler.SupportedBroker" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><span title="enum.Enum">Enum</span></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><span title="enum.Enum">Enum</span></code></p>
 
   
       <p>Enum for the supported brokers.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1911,14 +1910,13 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code>Exception</code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code>Exception</code></p>
 
   
       <p>Exception if a broker isn't implemented yet.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1940,6 +1938,7 @@
 </div>
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1954,11 +1953,13 @@
   
       <p>Derive the broker for the given data stream.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1979,6 +1980,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2006,6 +2009,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2033,6 +2038,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2047,11 +2053,13 @@
   
       <p>Derive the decription of the broker for the given data stream.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2072,6 +2080,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2099,6 +2109,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/broker/consumer/index.html b/docs-python/dev/reference/functions/broker/consumer/index.html
index c420b54..f98bae1 100644
--- a/docs-python/dev/reference/functions/broker/consumer/index.html
+++ b/docs-python/dev/reference/functions/broker/consumer/index.html
@@ -1863,22 +1863,21 @@
 
 
 <h2 id="streampipes.functions.broker.consumer.Consumer" class="doc doc-heading">
-        <code>Consumer</code>
+          <code>Consumer</code>
 
 
 <a href="#streampipes.functions.broker.consumer.Consumer" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Broker" href="../broker/#streampipes.functions.broker.broker.Broker">Broker</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Broker" href="../broker/#streampipes.functions.broker.broker.Broker">Broker</a></code></p>
 
   
       <p>Abstract implementation a consumer for a broker.</p>
 <p>A consumer allows to subscribe to a data stream.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1891,6 +1890,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1909,11 +1909,13 @@
   
       <p>Connects to the broker running in StreamPipes and creates a subscription.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1934,6 +1936,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1961,6 +1965,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1979,6 +1984,8 @@
   
       <p>Get the published messages of the subscription.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/broker/kafka/kafka_consumer/index.html b/docs-python/dev/reference/functions/broker/kafka/kafka_consumer/index.html
index 209d5b1..bbd2794 100644
--- a/docs-python/dev/reference/functions/broker/kafka/kafka_consumer/index.html
+++ b/docs-python/dev/reference/functions/broker/kafka/kafka_consumer/index.html
@@ -1865,21 +1865,20 @@
 
 
 <h2 id="streampipes.functions.broker.kafka.kafka_consumer.KafkaConsumer" class="doc doc-heading">
-        <code>KafkaConsumer</code>
+          <code>KafkaConsumer</code>
 
 
 <a href="#streampipes.functions.broker.kafka.kafka_consumer.KafkaConsumer" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Consumer" href="../../consumer/#streampipes.functions.broker.consumer.Consumer">Consumer</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Consumer" href="../../consumer/#streampipes.functions.broker.consumer.Consumer">Consumer</a></code></p>
 
   
       <p>Implementation of a consumer for Kafka</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1892,6 +1891,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1910,6 +1910,8 @@
   
       <p>Closes the connection to the server.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1937,6 +1939,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1951,6 +1954,8 @@
   
       <p>Get the published messages of the subscription.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/broker/kafka/kafka_message_fetcher/index.html b/docs-python/dev/reference/functions/broker/kafka/kafka_message_fetcher/index.html
index bc0e0b5..cdf4a56 100644
--- a/docs-python/dev/reference/functions/broker/kafka/kafka_message_fetcher/index.html
+++ b/docs-python/dev/reference/functions/broker/kafka/kafka_message_fetcher/index.html
@@ -1849,11 +1849,13 @@
   
       <p>An internal representation of a Kafka message</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1871,7 +1873,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1907,11 +1908,13 @@
   
       <p>Fetches the next message from Kafka</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1933,7 +1936,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
diff --git a/docs-python/dev/reference/functions/broker/kafka/kafka_publisher/index.html b/docs-python/dev/reference/functions/broker/kafka/kafka_publisher/index.html
index 494c666..e6711eb 100644
--- a/docs-python/dev/reference/functions/broker/kafka/kafka_publisher/index.html
+++ b/docs-python/dev/reference/functions/broker/kafka/kafka_publisher/index.html
@@ -1865,21 +1865,20 @@
 
 
 <h2 id="streampipes.functions.broker.kafka.kafka_publisher.KafkaPublisher" class="doc doc-heading">
-        <code>KafkaPublisher</code>
+          <code>KafkaPublisher</code>
 
 
 <a href="#streampipes.functions.broker.kafka.kafka_publisher.KafkaPublisher" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Publisher" href="../../publisher/#streampipes.functions.broker.publisher.Publisher">Publisher</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Publisher" href="../../publisher/#streampipes.functions.broker.publisher.Publisher">Publisher</a></code></p>
 
   
       <p>Implementation of a publisher for Kafka</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1892,6 +1891,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1910,6 +1910,8 @@
   
       <p>Closes the connection to the server.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1937,6 +1939,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1955,11 +1958,13 @@
   
       <p>Publish an event to a connected data stream.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1980,6 +1985,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/broker/nats/nats_consumer/index.html b/docs-python/dev/reference/functions/broker/nats/nats_consumer/index.html
index 1a67d62..e1de4a8 100644
--- a/docs-python/dev/reference/functions/broker/nats/nats_consumer/index.html
+++ b/docs-python/dev/reference/functions/broker/nats/nats_consumer/index.html
@@ -1865,21 +1865,20 @@
 
 
 <h2 id="streampipes.functions.broker.nats.nats_consumer.NatsConsumer" class="doc doc-heading">
-        <code>NatsConsumer</code>
+          <code>NatsConsumer</code>
 
 
 <a href="#streampipes.functions.broker.nats.nats_consumer.NatsConsumer" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Consumer" href="../../consumer/#streampipes.functions.broker.consumer.Consumer">Consumer</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Consumer" href="../../consumer/#streampipes.functions.broker.consumer.Consumer">Consumer</a></code></p>
 
   
       <p>Implementation of a consumer for NATS</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1892,6 +1891,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1910,6 +1910,8 @@
   
       <p>Closes the connection to the server.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1937,6 +1939,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1951,6 +1954,8 @@
   
       <p>Get the published messages of the subscription.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/broker/nats/nats_publisher/index.html b/docs-python/dev/reference/functions/broker/nats/nats_publisher/index.html
index 62e6127..054a4e4 100644
--- a/docs-python/dev/reference/functions/broker/nats/nats_publisher/index.html
+++ b/docs-python/dev/reference/functions/broker/nats/nats_publisher/index.html
@@ -1865,21 +1865,20 @@
 
 
 <h2 id="streampipes.functions.broker.nats.nats_publisher.NatsPublisher" class="doc doc-heading">
-        <code>NatsPublisher</code>
+          <code>NatsPublisher</code>
 
 
 <a href="#streampipes.functions.broker.nats.nats_publisher.NatsPublisher" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Publisher" href="../../publisher/#streampipes.functions.broker.publisher.Publisher">Publisher</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Publisher" href="../../publisher/#streampipes.functions.broker.publisher.Publisher">Publisher</a></code></p>
 
   
       <p>Implementation of a publisher for NATS</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1892,6 +1891,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1910,6 +1910,8 @@
   
       <p>Closes the connection to the server.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1937,6 +1939,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1955,11 +1958,13 @@
   
       <p>Publish an event to a connected data stream.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1980,6 +1985,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/broker/output_collector/index.html b/docs-python/dev/reference/functions/broker/output_collector/index.html
index 8465cff..5bb92b9 100644
--- a/docs-python/dev/reference/functions/broker/output_collector/index.html
+++ b/docs-python/dev/reference/functions/broker/output_collector/index.html
@@ -1874,11 +1874,13 @@
       <p>Collector for output events. The events are published to an output data stream.
 Therefore, the output collector establishes a connection to the broker.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1899,6 +1901,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1925,7 +1929,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1938,6 +1941,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1952,11 +1956,13 @@
   
       <p>Publishes an event to the output stream.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1977,6 +1983,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2004,6 +2012,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2018,6 +2027,8 @@
   
       <p>Disconnects the broker of the output collector.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/broker/publisher/index.html b/docs-python/dev/reference/functions/broker/publisher/index.html
index 31bb6f1..25bc068 100644
--- a/docs-python/dev/reference/functions/broker/publisher/index.html
+++ b/docs-python/dev/reference/functions/broker/publisher/index.html
@@ -1849,22 +1849,21 @@
 
 
 <h2 id="streampipes.functions.broker.publisher.Publisher" class="doc doc-heading">
-        <code>Publisher</code>
+          <code>Publisher</code>
 
 
 <a href="#streampipes.functions.broker.publisher.Publisher" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Broker" href="../broker/#streampipes.functions.broker.broker.Broker">Broker</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.functions.broker.Broker" href="../broker/#streampipes.functions.broker.broker.Broker">Broker</a></code></p>
 
   
       <p>Abstract implementation of a publisher for a broker.</p>
 <p>A publisher allows to publish events to a data stream.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1877,6 +1876,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1896,11 +1896,13 @@
   
       <p>Publish an event to a connected data stream.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1921,6 +1923,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/function_handler/index.html b/docs-python/dev/reference/functions/function_handler/index.html
index 53dc1ef..459a09d 100644
--- a/docs-python/dev/reference/functions/function_handler/index.html
+++ b/docs-python/dev/reference/functions/function_handler/index.html
@@ -1887,11 +1887,13 @@
 <p>It controls the connection to the brokers, starts the functions, manages the broadcast of the live data
 and is able to stop the connection to the brokers and functions.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1926,6 +1928,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1966,7 +1970,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1979,6 +1982,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1993,6 +1997,8 @@
   
       <p>Disconnects from the brokers and stops all functions.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2020,6 +2026,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2034,6 +2041,8 @@
   
       <p>Stops the StreamPipesFunctions when the event loop was stopped without stopping the functions.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2057,6 +2066,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2084,6 +2095,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2098,6 +2110,8 @@
   
       <p>Creates the context for every data stream and starts the event loop to manage the StreamPipes Functions.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/registration/index.html b/docs-python/dev/reference/functions/registration/index.html
index 8029e0c..16168d8 100644
--- a/docs-python/dev/reference/functions/registration/index.html
+++ b/docs-python/dev/reference/functions/registration/index.html
@@ -1871,6 +1871,8 @@
   
       <p>Manages the existing StreamPipesFunctions and registers them.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1897,7 +1899,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1910,6 +1911,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1925,6 +1927,8 @@
       <p>Get all registered functions.</p>
 <p>This method exists to be consistent with the Java client.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1956,6 +1960,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1970,11 +1975,13 @@
   
       <p>Registers a new function.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1995,6 +2002,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/streampipes_function/index.html b/docs-python/dev/reference/functions/streampipes_function/index.html
index 116f4af..dbdeb60 100644
--- a/docs-python/dev/reference/functions/streampipes_function/index.html
+++ b/docs-python/dev/reference/functions/streampipes_function/index.html
@@ -1937,8 +1937,8 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><span title="abc.ABC">ABC</span></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><span title="abc.ABC">ABC</span></code></p>
 
   
       <p>Abstract implementation of a StreamPipesFunction.</p>
@@ -1946,11 +1946,13 @@
 It makes it possible to work with the live data in python and enables to use the powerful
 data analytics libraries there.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1975,6 +1977,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2001,7 +2005,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2014,6 +2017,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2028,11 +2032,13 @@
   
       <p>Send an event via an output data stream to StreamPipes</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2067,6 +2073,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2094,6 +2102,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2108,6 +2117,8 @@
   
       <p>Returns the id of the function.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2139,6 +2150,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2157,11 +2169,13 @@
   
       <p>Is called for every event of a data stream.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2196,6 +2210,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2223,6 +2239,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2241,11 +2258,13 @@
   
       <p>Is called when the function gets started.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2266,6 +2285,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2293,6 +2314,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2311,6 +2333,8 @@
   
       <p>Is called when the function gets stopped.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2338,6 +2362,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2356,6 +2381,8 @@
   
       <p>Get the ids of the streams needed by the function.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2387,6 +2414,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
diff --git a/docs-python/dev/reference/functions/utils/async_iter_handler/index.html b/docs-python/dev/reference/functions/utils/async_iter_handler/index.html
index 74ba274..67502a9 100644
--- a/docs-python/dev/reference/functions/utils/async_iter_handler/index.html
+++ b/docs-python/dev/reference/functions/utils/async_iter_handler/index.html
@@ -1863,7 +1863,7 @@
 
 
 <h2 id="streampipes.functions.utils.async_iter_handler.AsyncIterHandler" class="doc doc-heading">
-        <code>AsyncIterHandler</code>
+          <code>AsyncIterHandler</code>
 
 
 <a href="#streampipes.functions.utils.async_iter_handler.AsyncIterHandler" class="headerlink" title="Permanent link">&para;</a></h2>
@@ -1875,7 +1875,6 @@
       <p>Handles asynchronous iterators to get every message after another in parallel.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1888,6 +1887,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1896,8 +1896,8 @@
 <code class="highlight language-python"><span class="n">anext</span><span class="p">(</span><span class="n">stream_id</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span></code>
   
   <span class="doc doc-labels">
-      <small class="doc doc-label doc-label-staticmethod"><code>staticmethod</code></small>
       <small class="doc doc-label doc-label-async"><code>async</code></small>
+      <small class="doc doc-label doc-label-staticmethod"><code>staticmethod</code></small>
   </span>
 
 <a href="#streampipes.functions.utils.async_iter_handler.AsyncIterHandler.anext" class="headerlink" title="Permanent link">&para;</a></h3>
@@ -1907,11 +1907,13 @@
   
       <p>Gets the next message from an AsyncIterator.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1946,6 +1948,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1977,6 +1981,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1985,8 +1990,8 @@
 <code class="highlight language-python"><span class="n">combine_async_messages</span><span class="p">(</span><span class="n">messages</span><span class="p">)</span></code>
   
   <span class="doc doc-labels">
-      <small class="doc doc-label doc-label-staticmethod"><code>staticmethod</code></small>
       <small class="doc doc-label doc-label-async"><code>async</code></small>
+      <small class="doc doc-label doc-label-staticmethod"><code>staticmethod</code></small>
   </span>
 
 <a href="#streampipes.functions.utils.async_iter_handler.AsyncIterHandler.combine_async_messages" class="headerlink" title="Permanent link">&para;</a></h3>
@@ -1996,11 +2001,13 @@
   
       <p>Continuously gets the next published message from multiple AsyncIterators in parallel.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2021,6 +2028,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2039,7 +2048,7 @@
             </div>
               <p>
                 <span class="doc-yields-annotation">
-                  <b>TYPE:</b>
+                  <b>TYPE::</b>
                     <code><span title="typing.Tuple">Tuple</span>[str, <span title="typing.Any">Any</span>]</code>
                 </span>
               </p>
diff --git a/docs-python/dev/reference/functions/utils/data_stream_context/index.html b/docs-python/dev/reference/functions/utils/data_stream_context/index.html
index de5a35a..9c5b3df 100644
--- a/docs-python/dev/reference/functions/utils/data_stream_context/index.html
+++ b/docs-python/dev/reference/functions/utils/data_stream_context/index.html
@@ -1859,11 +1859,13 @@
   
       <p>Container for the context of a data stream.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1913,7 +1915,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1926,6 +1927,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1940,11 +1942,13 @@
   
       <p>Adds a new StreamPipes Function.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1965,6 +1969,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/utils/data_stream_generator/index.html b/docs-python/dev/reference/functions/utils/data_stream_generator/index.html
index 1bff0d7..3f0dc5f 100644
--- a/docs-python/dev/reference/functions/utils/data_stream_generator/index.html
+++ b/docs-python/dev/reference/functions/utils/data_stream_generator/index.html
@@ -1837,19 +1837,21 @@
 
 
 <h2 id="streampipes.functions.utils.data_stream_generator.RuntimeType" class="doc doc-heading">
-        <code>RuntimeType</code>
+          <code>RuntimeType</code>
 
 
 <a href="#streampipes.functions.utils.data_stream_generator.RuntimeType" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><span title="enum.Enum">Enum</span></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><span title="enum.Enum">Enum</span></code></p>
 
   
       <p>Runtime type names for the attributes of a data stream.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1922,7 +1924,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1944,6 +1945,7 @@
 </div>
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1958,11 +1960,13 @@
   
       <p>Creates a data stream</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2015,6 +2019,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/functions/utils/function_context/index.html b/docs-python/dev/reference/functions/utils/function_context/index.html
index 89943bd..2de5bbd 100644
--- a/docs-python/dev/reference/functions/utils/function_context/index.html
+++ b/docs-python/dev/reference/functions/utils/function_context/index.html
@@ -1859,11 +1859,13 @@
   
       <p>Container for the context of a StreamPipesFunction.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1927,7 +1929,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1940,6 +1941,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1954,11 +1956,13 @@
   
       <p>Adds a new data stream for a new stream id.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1993,6 +1997,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/model/common/index.html b/docs-python/dev/reference/model/common/index.html
index 54164a7..5f8e01b 100644
--- a/docs-python/dev/reference/model/common/index.html
+++ b/docs-python/dev/reference/model/common/index.html
@@ -2017,21 +2017,20 @@
 
 
 <h2 id="streampipes.model.common.ApplicationLink" class="doc doc-heading">
-        <code>ApplicationLink</code>
+          <code>ApplicationLink</code>
 
 
 <a href="#streampipes.model.common.ApplicationLink" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Data model of an <code>ApplicationLink</code> in compliance to the StreamPipes Backend.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2057,21 +2056,20 @@
 
 
 <h2 id="streampipes.model.common.BaseElement" class="doc doc-heading">
-        <code>BaseElement</code>
+          <code>BaseElement</code>
 
 
 <a href="#streampipes.model.common.BaseElement" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Structure of a basic element in the StreamPipes backend</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2097,21 +2095,20 @@
 
 
 <h2 id="streampipes.model.common.BasicModel" class="doc doc-heading">
-        <code>BasicModel</code>
+          <code>BasicModel</code>
 
 
 <a href="#streampipes.model.common.BasicModel" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
 
   
       <p>Basic model class used for the whole Python StreamPipes data model.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2128,7 +2125,7 @@
 
 
 <h3 id="streampipes.model.common.BasicModel.Config" class="doc doc-heading">
-        <code>Config</code>
+          <code>Config</code>
 
 
 <a href="#streampipes.model.common.BasicModel.Config" class="headerlink" title="Permanent link">&para;</a></h3>
@@ -2141,7 +2138,6 @@
 Defines alias generator to convert field names from camelCase (API) to snake_case (Python codebase).</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2176,21 +2172,20 @@
 
 
 <h2 id="streampipes.model.common.EventGrounding" class="doc doc-heading">
-        <code>EventGrounding</code>
+          <code>EventGrounding</code>
 
 
 <a href="#streampipes.model.common.EventGrounding" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Data model of an <code>EventGrounding</code> in compliance to the StreamPipes Backend.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2216,21 +2211,20 @@
 
 
 <h2 id="streampipes.model.common.EventProperty" class="doc doc-heading">
-        <code>EventProperty</code>
+          <code>EventProperty</code>
 
 
 <a href="#streampipes.model.common.EventProperty" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Data model of an <code>EventProperty</code> in compliance to the StreamPipes Backend.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2256,21 +2250,20 @@
 
 
 <h2 id="streampipes.model.common.EventSchema" class="doc doc-heading">
-        <code>EventSchema</code>
+          <code>EventSchema</code>
 
 
 <a href="#streampipes.model.common.EventSchema" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Data model of an <code>EventSchema</code> in compliance to the StreamPipes Backend.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2296,21 +2289,20 @@
 
 
 <h2 id="streampipes.model.common.MeasurementCapability" class="doc doc-heading">
-        <code>MeasurementCapability</code>
+          <code>MeasurementCapability</code>
 
 
 <a href="#streampipes.model.common.MeasurementCapability" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Data model of a <code>MeasurementCapability</code> in compliance to the StreamPipes Backend.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2336,21 +2328,20 @@
 
 
 <h2 id="streampipes.model.common.MeasurementObject" class="doc doc-heading">
-        <code>MeasurementObject</code>
+          <code>MeasurementObject</code>
 
 
 <a href="#streampipes.model.common.MeasurementObject" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Data model of a <code>MeasurementObject</code> in compliance to the StreamPipes Backend.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2376,21 +2367,20 @@
 
 
 <h2 id="streampipes.model.common.TopicDefinition" class="doc doc-heading">
-        <code>TopicDefinition</code>
+          <code>TopicDefinition</code>
 
 
 <a href="#streampipes.model.common.TopicDefinition" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Data model of a <code>TopicDefinition</code> in compliance to the StreamPipes Backend.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2416,21 +2406,20 @@
 
 
 <h2 id="streampipes.model.common.TransportFormat" class="doc doc-heading">
-        <code>TransportFormat</code>
+          <code>TransportFormat</code>
 
 
 <a href="#streampipes.model.common.TransportFormat" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Data model of a <code>TransportFormat</code> in compliance to the StreamPipes Backend.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2456,21 +2445,20 @@
 
 
 <h2 id="streampipes.model.common.TransportProtocol" class="doc doc-heading">
-        <code>TransportProtocol</code>
+          <code>TransportProtocol</code>
 
 
 <a href="#streampipes.model.common.TransportProtocol" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Data model of a <code>TransportProtocol</code> in compliance to the StreamPipes Backend.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2496,21 +2484,20 @@
 
 
 <h2 id="streampipes.model.common.ValueSpecification" class="doc doc-heading">
-        <code>ValueSpecification</code>
+          <code>ValueSpecification</code>
 
 
 <a href="#streampipes.model.common.ValueSpecification" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Data model of an <code>ValueSpecification</code> in compliance to the StreamPipes Backend.</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2532,6 +2519,7 @@
 </div>
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2546,11 +2534,13 @@
   
       <p>Generates a string consisting of random letters.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2571,6 +2561,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/model/container/data_lake_measures/index.html b/docs-python/dev/reference/model/container/data_lake_measures/index.html
index 9273ca2..3a95729 100644
--- a/docs-python/dev/reference/model/container/data_lake_measures/index.html
+++ b/docs-python/dev/reference/model/container/data_lake_measures/index.html
@@ -1825,15 +1825,15 @@
 
 
 <h2 id="streampipes.model.container.data_lake_measures.DataLakeMeasures" class="doc doc-heading">
-        <code>DataLakeMeasures</code>
+          <code>DataLakeMeasures</code>
 
 
 <a href="#streampipes.model.container.data_lake_measures.DataLakeMeasures" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.container.resource_container.ResourceContainer" href="../resource_container/#streampipes.model.container.resource_container.ResourceContainer">ResourceContainer</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.container.resource_container.ResourceContainer" href="../resource_container/#streampipes.model.container.resource_container.ResourceContainer">ResourceContainer</a></code></p>
 
   
       <p>Implementation of the resource container for the data lake measures endpoint.</p>
@@ -1842,7 +1842,6 @@
 Furthermore, the resource container makes them accessible in a pythonic manner.</p>
 
 
-
   
 
   <div class="doc doc-children">
diff --git a/docs-python/dev/reference/model/container/data_streams/index.html b/docs-python/dev/reference/model/container/data_streams/index.html
index 321f30d..8aba7ec 100644
--- a/docs-python/dev/reference/model/container/data_streams/index.html
+++ b/docs-python/dev/reference/model/container/data_streams/index.html
@@ -1825,15 +1825,15 @@
 
 
 <h2 id="streampipes.model.container.data_streams.DataStreams" class="doc doc-heading">
-        <code>DataStreams</code>
+          <code>DataStreams</code>
 
 
 <a href="#streampipes.model.container.data_streams.DataStreams" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.container.resource_container.ResourceContainer" href="../resource_container/#streampipes.model.container.resource_container.ResourceContainer">ResourceContainer</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.container.resource_container.ResourceContainer" href="../resource_container/#streampipes.model.container.resource_container.ResourceContainer">ResourceContainer</a></code></p>
 
   
       <p>Implementation of the resource container for the data stream endpoint.</p>
@@ -1842,7 +1842,6 @@
 Furthermore, the resource container makes them accessible in a pythonic manner.</p>
 
 
-
   
 
   <div class="doc doc-children">
diff --git a/docs-python/dev/reference/model/container/resource_container/index.html b/docs-python/dev/reference/model/container/resource_container/index.html
index 3abdca1..c3f869a 100644
--- a/docs-python/dev/reference/model/container/resource_container/index.html
+++ b/docs-python/dev/reference/model/container/resource_container/index.html
@@ -1930,8 +1930,8 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><span title="abc.ABC">ABC</span></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><span title="abc.ABC">ABC</span></code></p>
 
   
       <p>General and abstract implementation for a resource container.</p>
@@ -1939,11 +1939,13 @@
 It is capable of parsing the response content directly into a list of queried resources.
 Furthermore, the resource container makes them accessible in a pythonic manner.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1965,7 +1967,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1978,6 +1979,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1996,11 +1998,13 @@
   
       <p>Creates a <code>ResourceContainer</code> from the given JSON string.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2021,6 +2025,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2048,6 +2054,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2087,6 +2095,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2101,11 +2110,13 @@
   
       <p>Returns the contained resources as list of dictionaries.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2131,6 +2142,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2163,6 +2176,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2177,6 +2191,8 @@
   
       <p>Returns the resource container in the StreamPipes JSON representation.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2205,6 +2221,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2219,6 +2236,8 @@
   
       <p>Returns the resource container in representation of a Pandas Dataframe.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2269,18 +2288,20 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code>Exception</code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code>Exception</code></p>
 
   
       <p>A custom exception to be raised when a validation error occurs
 during the parsing of StreamPipes API responses.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2302,7 +2323,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -2334,18 +2354,20 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code>Exception</code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code>Exception</code></p>
 
   
       <p>A custom exception to be raised when the returned JSON string
 does not suit to the structure of resource container.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2381,7 +2403,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
diff --git a/docs-python/dev/reference/model/container/versions/index.html b/docs-python/dev/reference/model/container/versions/index.html
index d1c0502..708a111 100644
--- a/docs-python/dev/reference/model/container/versions/index.html
+++ b/docs-python/dev/reference/model/container/versions/index.html
@@ -1825,15 +1825,15 @@
 
 
 <h2 id="streampipes.model.container.versions.Versions" class="doc doc-heading">
-        <code>Versions</code>
+          <code>Versions</code>
 
 
 <a href="#streampipes.model.container.versions.Versions" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.container.resource_container.ResourceContainer" href="../resource_container/#streampipes.model.container.resource_container.ResourceContainer">ResourceContainer</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.container.resource_container.ResourceContainer" href="../resource_container/#streampipes.model.container.resource_container.ResourceContainer">ResourceContainer</a></code></p>
 
   
       <p>Implementation of the resource container for the versions endpoint.</p>
@@ -1841,11 +1841,13 @@
 It is capable of parsing the response content directly into a list of queried <code>Version</code>.
 Furthermore, the resource container makes them accessible in a pythonic manner.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1863,7 +1865,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
diff --git a/docs-python/dev/reference/model/resource/data_lake_measure/index.html b/docs-python/dev/reference/model/resource/data_lake_measure/index.html
index 82287aa..952246e 100644
--- a/docs-python/dev/reference/model/resource/data_lake_measure/index.html
+++ b/docs-python/dev/reference/model/resource/data_lake_measure/index.html
@@ -1849,15 +1849,15 @@
 
 
 <h2 id="streampipes.model.resource.data_lake_measure.DataLakeMeasure" class="doc doc-heading">
-        <code>DataLakeMeasure</code>
+          <code>DataLakeMeasure</code>
 
 
 <a href="#streampipes.model.resource.data_lake_measure.DataLakeMeasure" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
 
   
       <p>Implementation of a resource for data lake measures.</p>
@@ -1867,7 +1867,6 @@
 the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1880,6 +1879,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1898,6 +1898,8 @@
 Instead of the whole event schema the number of event properties contained
 is returned with the column name <code>num_event_properties</code>.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/model/resource/data_series/index.html b/docs-python/dev/reference/model/resource/data_series/index.html
index dc9b22b..c00d817 100644
--- a/docs-python/dev/reference/model/resource/data_series/index.html
+++ b/docs-python/dev/reference/model/resource/data_series/index.html
@@ -1877,15 +1877,15 @@
 
 
 <h2 id="streampipes.model.resource.data_series.DataSeries" class="doc doc-heading">
-        <code>DataSeries</code>
+          <code>DataSeries</code>
 
 
 <a href="#streampipes.model.resource.data_series.DataSeries" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
 
   
       <p>Implementation of a resource for data series.
@@ -1899,7 +1899,6 @@
 </code></pre></div>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1912,6 +1911,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1928,6 +1928,8 @@
 to be used when creating a pandas Dataframe.</p>
 <p>It contains only the "header rows" (the column names) and "rows" that contain the actual data.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1959,6 +1961,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1980,11 +1983,13 @@
 the StreamPipes API.
 Currently, it only supports data lake series that consist of exactly one series of data.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2005,6 +2010,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2028,6 +2035,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2056,6 +2065,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2070,6 +2080,8 @@
   
       <p>Returns the data lake series in representation of a Pandas Dataframe.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/model/resource/data_stream/index.html b/docs-python/dev/reference/model/resource/data_stream/index.html
index f42588d..05c6cd0 100644
--- a/docs-python/dev/reference/model/resource/data_stream/index.html
+++ b/docs-python/dev/reference/model/resource/data_stream/index.html
@@ -1869,8 +1869,8 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
 
   
       <p>Implementation of a resource for data streams.</p>
@@ -1880,7 +1880,6 @@
 the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1893,6 +1892,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1907,6 +1907,8 @@
   
       <p>Returns the dictionary representation of a data stream to be used when creating a pandas Dataframe.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1939,6 +1941,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1953,11 +1956,13 @@
   
       <p>Returns the resource in dictionary representation.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1979,6 +1984,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/model/resource/exceptions/index.html b/docs-python/dev/reference/model/resource/exceptions/index.html
index cec3983..e84113d 100644
--- a/docs-python/dev/reference/model/resource/exceptions/index.html
+++ b/docs-python/dev/reference/model/resource/exceptions/index.html
@@ -1829,15 +1829,14 @@
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code>Exception</code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code>Exception</code></p>
 
   
       <p>Exception to be raised when the returned data lake series
 cannot be parsed with the current implementation of the resource.</p>
 
 
-
   
 
   <div class="doc doc-children">
diff --git a/docs-python/dev/reference/model/resource/function_definition/index.html b/docs-python/dev/reference/model/resource/function_definition/index.html
index f9d7f06..662e422 100644
--- a/docs-python/dev/reference/model/resource/function_definition/index.html
+++ b/docs-python/dev/reference/model/resource/function_definition/index.html
@@ -1905,26 +1905,28 @@
 
 
 <h2 id="streampipes.model.resource.function_definition.FunctionDefinition" class="doc doc-heading">
-        <code>FunctionDefinition</code>
+          <code>FunctionDefinition</code>
 
 
 <a href="#streampipes.model.resource.function_definition.FunctionDefinition" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
 
   
       <p>Configuration for a StreamPipes Function.</p>
 <p>This class maps to the <code>FunctionDefinition</code> class in the StreamPipes model.
 It contains all metadata that are required to register a function at the StreamPipes backend.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1951,6 +1953,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1977,7 +1981,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1990,6 +1993,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2004,11 +2008,13 @@
   
       <p>Adds an output data stream to the function which makes it possible to write data back to StreamPipes.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2029,6 +2035,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2060,6 +2068,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2075,6 +2084,8 @@
       <p>Returns the dictionary representation of a function definition
 to be used when creating a pandas Dataframe.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2107,6 +2118,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2121,6 +2133,8 @@
   
       <p>Get the output data streams of the function.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2152,6 +2166,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -2166,6 +2181,8 @@
   
       <p>Get the stream ids of the output data streams.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -2210,25 +2227,27 @@
 
 
 <h2 id="streampipes.model.resource.function_definition.FunctionId" class="doc doc-heading">
-        <code>FunctionId</code>
+          <code>FunctionId</code>
 
 
 <a href="#streampipes.model.resource.function_definition.FunctionId" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="../../common/#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="../../common/#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>Identification object for a StreamPipes function.</p>
 <p>Maps to the <code>FunctionId</code> class defined in the StreamPipes model.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -2256,7 +2275,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
diff --git a/docs-python/dev/reference/model/resource/query_result/index.html b/docs-python/dev/reference/model/resource/query_result/index.html
index 193cbfc..f71e528 100644
--- a/docs-python/dev/reference/model/resource/query_result/index.html
+++ b/docs-python/dev/reference/model/resource/query_result/index.html
@@ -1863,15 +1863,15 @@
 
 
 <h2 id="streampipes.model.resource.query_result.QueryResult" class="doc doc-heading">
-        <code>QueryResult</code>
+          <code>QueryResult</code>
 
 
 <a href="#streampipes.model.resource.query_result.QueryResult" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
 
   
       <p>Implementation of a resource for query result.
@@ -1881,7 +1881,6 @@
 the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1894,6 +1893,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1910,6 +1910,8 @@
 to be used when creating a pandas Dataframe.</p>
 <p>It contains only the "header rows" (the column names) and "rows" that contain the actual data.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1933,6 +1935,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1960,6 +1964,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1974,6 +1979,8 @@
   
       <p>Returns the data lake series in representation of a Pandas Dataframe.</p>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/model/resource/resource/index.html b/docs-python/dev/reference/model/resource/resource/index.html
index 53a4d61..22e7910 100644
--- a/docs-python/dev/reference/model/resource/resource/index.html
+++ b/docs-python/dev/reference/model/resource/resource/index.html
@@ -1866,15 +1866,15 @@
 
 
 <h2 id="streampipes.model.resource.resource.Resource" class="doc doc-heading">
-        <code>Resource</code>
+          <code>Resource</code>
 
 
 <a href="#streampipes.model.resource.resource.Resource" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><span title="abc.ABC">ABC</span></code>, <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="../../common/#streampipes.model.common.BasicModel">BasicModel</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><span title="abc.ABC">ABC</span></code>, <code><a class="autorefs autorefs-internal" title="streampipes.model.common.BasicModel" href="../../common/#streampipes.model.common.BasicModel">BasicModel</a></code></p>
 
   
       <p>General and abstract implementation for a resource.</p>
@@ -1884,7 +1884,6 @@
 the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1897,6 +1896,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1915,6 +1915,8 @@
   
       <p>Returns a dictionary representation to be used when creating a pandas Dataframe.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1947,6 +1949,7 @@
 
 </div>
 
+
 <div class="doc doc-object doc-function">
 
 
@@ -1961,11 +1964,13 @@
   
       <p>Returns the resource in dictionary representation.</p>
 
+
+
   <table>
     <thead>
       <tr>
         <th><b>PARAMETER</b></th>
-        <th><b>DESCRIPTION</b></th>
+        <th><b> DESCRIPTION</b></th>
       </tr>
     </thead>
     <tbody>
@@ -1987,6 +1992,8 @@
     </tbody>
   </table>
 
+
+
   <table>
     <thead>
       <tr>
diff --git a/docs-python/dev/reference/model/resource/version/index.html b/docs-python/dev/reference/model/resource/version/index.html
index ffa23bf..43e2c0a 100644
--- a/docs-python/dev/reference/model/resource/version/index.html
+++ b/docs-python/dev/reference/model/resource/version/index.html
@@ -1847,19 +1847,21 @@
 
 
 <h2 id="streampipes.model.resource.version.Version" class="doc doc-heading">
-        <code>Version</code>
+          <code>Version</code>
 
 
 <a href="#streampipes.model.resource.version.Version" class="headerlink" title="Permanent link">&para;</a></h2>
 
 
   <div class="doc doc-contents ">
-      <p class="doc doc-class-bases">
-        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
+          <p class="doc doc-class-bases">
+            Bases: <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../resource/#streampipes.model.resource.resource.Resource">Resource</a></code></p>
 
   
       <p>Metadata about the version of the connected StreamPipes server.</p>
 
+
+
   <table>
     <thead>
       <tr>
@@ -1886,7 +1888,6 @@
   </table>
 
 
-
   
 
   <div class="doc doc-children">
@@ -1899,6 +1900,7 @@
 
 
 
+
 <div class="doc doc-object doc-function">
 
 
diff --git a/docs-python/dev/scripts/gen_ref_pages/index.html b/docs-python/dev/scripts/gen_ref_pages/index.html
index 8020dbe..3e7ce9f 100644
--- a/docs-python/dev/scripts/gen_ref_pages/index.html
+++ b/docs-python/dev/scripts/gen_ref_pages/index.html
@@ -2749,7 +2749,7 @@
     init_mathjax();
     </script>
     <!-- End of mathjax configuration --><div class="jupyter-wrapper">
-<div id="cell-id=23006dae" class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
+<div id="cell-id=e20ea9e9" class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
 <div class="jp-Cell-inputWrapper">
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
@@ -2772,7 +2772,7 @@
 </div>
 </div>
 </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
-<div id="cell-id=d4da80bd" class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
+<div id="cell-id=0f214410" class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
 <div class="jp-Cell-inputWrapper">
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
@@ -2804,7 +2804,7 @@
 
 </div>
 </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
-<div id="cell-id=f5c51531" class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
+<div id="cell-id=4684e77d" class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
 <div class="jp-Cell-inputWrapper">
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
@@ -2836,7 +2836,7 @@
 
 </div>
 </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
-<div id="cell-id=96c3eaf8" class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
+<div id="cell-id=069104d1" class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
 <div class="jp-Cell-inputWrapper">
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
@@ -2868,7 +2868,7 @@
 
 </div>
 </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
-<div id="cell-id=1af7017c" class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
+<div id="cell-id=09ba2873" class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
 <div class="jp-Cell-inputWrapper">
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
@@ -2946,7 +2946,7 @@
 
 </div>
 </div>
-<div id="cell-id=82f3760b" class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
+<div id="cell-id=a46101f3" class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
 <div class="jp-Cell-inputWrapper">
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
diff --git a/docs-python/dev/search/search_index.json b/docs-python/dev/search/search_index.json
index 3b8d674..76f9ed2 100644
--- a/docs-python/dev/search/search_index.json
+++ b/docs-python/dev/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"\ud83c\udfe1 Home","text":"StreamPipes is a self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams. <p>Dependency issue with StreamPipes Python 0.92.0</p> <p>In StreamPipes Python <code>0.92.0</code> there is a problem with the required dependencies. Pydantic has recently released the new version <code>2.0</code> with many exciting improvements, but also some breaking changes.  Unfortunately, we didn't limit our requirements strictly enough, so yydantic <code>2.0</code> is installed together with streampipes, which is not (yet) compatible. To fix this bug, simply run the following command after installing streampipes, or adjust your dependencies accordingly:</p> <pre><code>pip install \"pydantic&lt;2.0\" \"pydantic_core&lt;2.0\"\n</code></pre> <p></p> Apache StreamPipes for Python \ud83d\udc0d <p> Apache StreamPipes meets Python! We are working highly motivated on a Python library to interact with StreamPipes. In this way, we would like to unite the power of StreamPipes to easily connect to and read from different data sources, especially in the IoT domain, and the amazing universe of data analytics libraries in Python. </p> <p></p> <p>StreamPipes Python is in beta</p> <p>The current version of this Python library is still a beta version. This means that it is still heavily under development, which may result in frequent and extensive API changes, unstable behavior, etc.</p>"},{"location":"#quickstart","title":"\u26a1\ufe0f Quickstart","text":"<p>As a quick example, we demonstrate how to set up and configure a StreamPipes client. In addition, we will get the available data lake measures out of StreamPipes.</p> <p><pre><code>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n\nconfig = StreamPipesClientConfig(\n    credential_provider = StreamPipesApiKeyCredentials(\n        username = \"test@streampipes.apache.org\",\n        api_key = \"DEMO-KEY\",\n        ),\n    host_address = \"localhost\",\n    https_disabled = True,\n    port = 80\n)\n\nclient = StreamPipesClient(client_config=config)\n\n# get all available datat lake measures\nmeasures = client.dataLakeMeasureApi.all()\n\n# get amount of retrieved measures\nlen(measures)\n</code></pre> Output: <pre><code>1\n</code></pre> </p> <pre><code># inspect the data lake measures as pandas dataframe\nmeasures.to_pandas()\n</code></pre> <p>Output: <pre><code>measure_name timestamp_field ... pipeline_is_running num_event_properties\n0 test s0::timestamp ... False 2\n[1 rows x 6 columns]\n</code></pre>  Alternatively, you can provide your credentials via environment variables. Simply define your credential provider as follows:</p> <p><pre><code>from streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n\nStreamPipesApiKeyCredentials()\n</code></pre> This requires to set the following environment variables: <code>SP_API_KEY</code> and <code>SP_USERNAME</code> </p> <p><code>username</code> is always the username that is used to log in into StreamPipes. </p> How to get your StreamPipes API key <p>The <code>api_key</code> can be generated within the UI as demonstrated below: </p> <p></p>"},{"location":"getting-started/developing/","title":"Developing & Contributing","text":""},{"location":"getting-started/developing/#development-guide","title":"\ud83d\udcd6 Development Guide","text":"<p>This document describes how to easily set up your local dev environment to work on StreamPipes Python \ud83d\udc0d. </p>"},{"location":"getting-started/developing/#first-steps","title":"\ud83d\ude80 First Steps","text":"<p>1) Set up your Python environment</p> <p>Create a virtual Python environment with a tool of your choice. As a next step, install all required dependencies for the development, e.g., with <code>pip</code>:</p> <pre><code>pip install .[dev]  # or alternatively: pip install .[all] to include dependencies for building the docs as well\n</code></pre> <p>In case you are on macOS and using <code>zsh</code> the following should work for you: <pre><code>pip install .\"[dev]\"\n</code></pre> </p> <p>2) Install pre-commit hook</p> <p>The pre-commit hook is run before every commit and takes care about code style, linting, type hints, import sorting, etc. It will stop your commit in case the changes do not apply the expected format. Always check to have the recent version of the pre-commit hook installed otherwise the CI build might fail.  If you are interested, you can have a deeper look on the underlying library: pre-commit.</p> <p><pre><code>pre-commit install\n</code></pre> The definition of the pre-commit hook can be found in .pre-commit-config.yaml.</p> <p></p>"},{"location":"getting-started/developing/#conventions","title":"\ud83d\udc4f Conventions","text":"<p>Below we list some conventions that we have agreed on for creating StreamPipes Python. Please comply to them when you plan to contribute to this project. If you have any other suggestions or would like to discuss them, we would be happy to hear from you on our mailing list dev@streampipes.apache.org or in our discussions on GitHub.</p> <p>1) Use <code>numpy</code> style for Python docstrings \ud83d\udcc4  Please stick to the <code>numpy</code> style when writing docstrings, as we require this for generating our documentation.</p> <p>2) Provide tests \u2705  We are aiming for broad test coverage for the Python package and have therefore set a requirement of at least 90% unit test coverage. Therefore, please remember to write (unit) tests already during development.  If you have problems with writing tests, don't hesitate to ask us for help directly in the PR or even before that via our mailing list (see above).</p> <p>3) Build a similar API as the Java client provides \ud83d\udd04  Whenever possible, please try to develop the API of the Python library the same as the Java client or Java SDK. By doing so, we would like to provide a consistent developer experience and the basis for automated testing in the future.</p>"},{"location":"getting-started/developing/#roadmap","title":"\ud83d\ude80 Roadmap","text":"<p>Broadly speaking, we plan to expand or add new aspects/functionality to the library where we are focusing on the following:</p> <ul> <li>increase coverage of StreamPipes API \ud83d\udd17</li> <li>build a comprehensive function zoo \ud83d\udc18</li> <li>support more messaging broker \ud83d\udcec</li> <li>possibility to build pipeline elements \ud83d\udd27</li> </ul> <p>In case you want to have a more detailed look on what we are currently planning, have a look at our open issues(more short-term driven).</p> <p>Of course, contributions are always highly appreciated \ud83d\udd2e</p> <p>Stay tuned!</p>"},{"location":"getting-started/developing/#contributing","title":"\ud83d\udc68\u200d\ud83d\udcbb Contributing","text":"<p>Before opening a pull request, review the Get Involved page. It lists information that is required for contributing to StreamPipes.</p> <p>When you contribute code, you affirm that the contribution is your original work and that you license the work to the project under the project's open source license. Whether or not you state this explicitly, by submitting any copyrighted material via pull request, email, or other means you agree to license the material under the project's open source license and warrant that you have the legal authority to do so.</p>"},{"location":"getting-started/first-steps/","title":"First Steps","text":""},{"location":"getting-started/first-steps/#installation","title":"\ud83d\udcda Installation","text":"<p>The StreamPipes Python library is meant to work with Python 3.8 and above. Installation can be done via <code>pip</code>: You can install the latest development version from GitHub, as so:</p> <pre><code>pip install streampipes\n\n# if you want to have the current development state you can also execute\npip install git+https://github.com/apache/streampipes.git#subdirectory=streampipes-client-python\n# the corresponding documentation can be found here: https://streampipes.apache.org/docs/docs/python/dev/\n</code></pre>"},{"location":"getting-started/first-steps/#setting-up-streampipes","title":"\u2b06\ufe0f Setting up StreamPipes","text":"<p>When working with the StreamPipes Python library it is inevitable to have a running StreamPipes instance to connect and interact with. In case you don't have a running instance at hand, you can easily set up one on your local machine. Hereby you need to consider that StreamPipes supports different message broker (e.g., Kafka, NATS). We will demonstrate below how you can easily set up StreamPipes for both supported message brokers. </p>"},{"location":"getting-started/first-steps/#start-streampipes-via-docker-compose","title":"\ud83d\udc33 Start StreamPipes via Docker Compose","text":"<p>The easiest and therefore recommend way to get StreamPipes started is by using docker compose. Therefore, you need Docker running. You can check if Docker is ready on your machine by executing. <pre><code>docker ps\n</code></pre> If this results in an output similar to the following, Docker is ready to continue. <pre><code>CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES\n...            ...       ...       ...       ...       ...       ...\n</code></pre> Otherwise, you need to start docker first. Please read the full guide on how to start StreamPipes with <code>docker compose</code> here.</p>"},{"location":"getting-started/first-steps/#setup-streampipes-with-nats-as-message-broker","title":"Setup StreamPipes with NATS as message broker","text":"<p>The following shows how you can set up a StreamPipes instance that uses NATS as messaging layer. So in this scenario, we will go with <code>docker-compose.nats.yml</code>.  Thereby, when running locally, we need to add the following port mapping entry to <code>services.nats.ports</code>: <pre><code>- 4222:4222\n</code></pre></p> <p>After this modification is applied, StreamPipes can simply be started with this command: <pre><code>docker-compose -f docker-compose.nats.yml up -d\n</code></pre></p> <p>Once all services are started, you can access StreamPipes via <code>http://localhost</code>.</p>"},{"location":"getting-started/first-steps/#setup-streampipes-with-kafka-as-message-broker","title":"Setup StreamPipes with Kafka as message broker","text":"<p>Alternatively, you can use <code>docker-compose.yml</code> to start StreamPipes with Kafka as messaging layer. When running locally we have to modify <code>services.kafka.environment</code> and add the ports to <code>services.kafka.ports</code>: <pre><code>environment:\nKAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,OUTSIDE:PLAINTEXT\nKAFKA_ADVERTISED_LISTENERS: PLAINTEXT://:9092,OUTSIDE://localhost:9094\nKAFKA_LISTENERS: PLAINTEXT://:9092,OUTSIDE://:9094\n...\nports:\n- 9094:9094\n</code></pre> Then, you need to execute the following command: <pre><code>docker-compose -f docker-compose.yml up -d\n</code></pre></p> <p>Once all services are started, you can access StreamPipes via <code>http://localhost</code>.</p> <p>In case you want to have more control over your StreamPipes setup, you might take a look at our deployment CLI.</p> <p>Have fun discovering StreamPipes and our Python library \ud83d\ude80</p>"},{"location":"getting-started/quickstart/","title":"Quickstart","text":""},{"location":"getting-started/quickstart/#quickstart","title":"\u26a1\ufe0f Quickstart","text":"<p>As a quick example, we demonstrate how to set up and configure a StreamPipes client. In addition, we will get the available data lake measures out of StreamPipes.</p> <p><pre><code>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n\nconfig = StreamPipesClientConfig(\n    credential_provider = StreamPipesApiKeyCredentials(\n        username = \"test@streampipes.apache.org\",\n        api_key = \"DEMO-KEY\",\n        ),\n    host_address = \"localhost\",\n    https_disabled = True,\n    port = 80\n)\n\nclient = StreamPipesClient(client_config=config)\n\n# get all available datat lake measures\nmeasures = client.dataLakeMeasureApi.all()\n\n# get amount of retrieved measures\nlen(measures)\n</code></pre> Output: <pre><code>1\n</code></pre> </p> <pre><code># inspect the data lake measures as pandas dataframe\nmeasures.to_pandas()\n</code></pre> <p>Output: <pre><code>measure_name timestamp_field ... pipeline_is_running num_event_properties\n0 test s0::timestamp ... False 2\n[1 rows x 6 columns]\n</code></pre>  Alternatively, you can provide your credentials via environment variables. Simply define your credential provider as follows:</p> <p><pre><code>from streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n\nStreamPipesApiKeyCredentials()\n</code></pre> This requires to set the following environment variables: <code>SP_API_KEY</code> and <code>SP_USERNAME</code> </p> <p><code>username</code> is always the username that is used to log in into StreamPipes.  The <code>api_key</code> can be generated within the UI as demonstrated below:</p> <p></p>"},{"location":"reference/client/client/","title":"Client","text":"<p>Implementation of the StreamPipes client. The client is designed as the central point of interaction with the StreamPipes API and provides all functionalities to communicate with the API.</p>"},{"location":"reference/client/client/#streampipes.client.client.StreamPipesClient","title":"<code>StreamPipesClient(client_config, logging_level=logging.INFO)</code>","text":"<p>The client to connect to StreamPipes.</p> <p>This is the central point of contact with StreamPipes and provides all the functionalities to interact with it.</p> <p>The client provides so-called \"endpoints\" each of which refers to an endpoint of the StreamPipes API, e.g. <code>.dataLakeMeasureApi</code>. An endpoint provides the actual methods to interact with StreamPipes API.</p> PARAMETER DESCRIPTION <code>client_config</code> <p>Configures the client to connect properly to the StreamPipes instance.</p> <p> TYPE: <code>StreamPipesClientConfig</code> </p> <code>logging_level</code> <p>Influences the log messages emitted by the <code>StreamPipesClient</code></p> <p> TYPE: <code>Optional[int]</code> DEFAULT: <code>logging.INFO</code> </p> ATTRIBUTE DESCRIPTION <code>dataLakeMeasureApi</code> <p>Instance of the data lake measure endpoint</p> <p> TYPE: <code>DataLakeMeasureEndpoint</code> </p> <code>dataStreamApi</code> <p>Instance of the data stream endpoint</p> <p> TYPE: <code>DataStreamEndpoint</code> </p> <p>Examples:</p> <pre><code>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</code></pre> <pre><code>client_config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(\n         username=\"test-user\",\n         api_key=\"api-key\"\n     ),\n     host_address=\"localhost\",\n     https_disabled=True\n)\n</code></pre> <p>The following way of instantiating a client instance is intended to be consistent with the StreamPipes Java client. <pre><code>client = StreamPipesClient.create(client_config=client_config)\n</code></pre></p> <p>If you prefer a more pythonic way, you can simply write: <pre><code>client = StreamPipesClient(client_config=client_config)\n</code></pre></p> <p>To interact with an endpoint: <pre><code>data_lake_measures = client.dataLakeMeasureApi.all()\n</code></pre></p> <p>To inspect returned data as a pandas dataframe: <pre><code>data_lake_measures.to_pandas()\n#\n#     measure_name timestamp_field  ... pipeline_is_running num_event_properties\n# 0           test   s0::timestamp  ...               False                    2\n# [1 rows x 6 columns]\n</code></pre></p>"},{"location":"reference/client/client/#streampipes.client.client.StreamPipesClient.base_api_path","title":"<code>base_api_path: str</code>  <code>property</code>","text":"<p>Constructs the basic API URL from the given <code>client_config</code>.</p> RETURNS DESCRIPTION <code>base_api_path</code> <p>basic API path of the connected StreamPipes instance</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/client/client/#streampipes.client.client.StreamPipesClient.http_headers","title":"<code>http_headers: Dict[str, str]</code>  <code>property</code>","text":"<p>Returns the HTTP headers used for all requests.</p> <p>The HTTP headers are composed of the authentication headers supplied by the credential provider and additional required headers (currently this is only the application header).</p> RETURNS DESCRIPTION <code>http_headers</code> <p>header information for HTTP requests as string key-value pairs.</p> <p> TYPE: <code>Dict[str, str]</code> </p>"},{"location":"reference/client/client/#streampipes.client.client.StreamPipesClient.create","title":"<code>create(client_config, logging_level=logging.INFO)</code>  <code>classmethod</code>","text":"<p>Returns an instance of the <code>StreamPipesPythonClient</code>.</p> <p>Provides consistency to the StreamPipes Java client.</p> PARAMETER DESCRIPTION <code>client_config</code> <p>Configures the client to connect properly to the StreamPipes instance.</p> <p> TYPE: <code>StreamPipesClientConfig</code> </p> <code>logging_level</code> <p>Influences the log messages emitted by the <code>StreamPipesClient</code>.</p> <p> TYPE: <code>int</code> DEFAULT: <code>logging.INFO</code> </p> RETURNS DESCRIPTION <code>StreamPipesClient</code>"},{"location":"reference/client/client/#streampipes.client.client.StreamPipesClient.describe","title":"<code>describe()</code>","text":"<p>Prints a short description of the connected StreamPipes instance and the available resources to the console.</p> RETURNS DESCRIPTION <code>    None</code> <p>Examples:</p> <p><pre><code>client.describe()\n</code></pre> Output: <pre><code>Hi there!\nYou are connected to a StreamPipes instance running at http://localhost:80.\nThe following StreamPipes resources are available with this client:\n6x DataStreams\n1x DataLakeMeasures\n</code></pre></p>"},{"location":"reference/client/config/","title":"Config","text":"<p>Configuration class for the StreamPipes client.</p>"},{"location":"reference/client/config/#streampipes.client.config.StreamPipesClientConfig","title":"<code>StreamPipesClientConfig</code>  <code>dataclass</code>","text":"<p>Configure the StreamPipes client in accordance to the actual StreamPipes instance to connect to.</p> <p>An instance is provided to the <code>StreamPipesClient</code> to configure it properly.</p> PARAMETER DESCRIPTION <code>credential_provider</code> <p>Provides the credentials to authenticate with the StreamPipes API.</p> <p> TYPE: <code>CredentialProvider</code> </p> <code>host_address</code> <p>Host address of the StreamPipes instance to connect to. Should be provided without the protocol/scheme, e.g. as <code>localhost</code> or <code>streampipes.xyz</code>.</p> <p> TYPE: <code>str</code> </p> <code>https_disabled</code> <p>Determines whether https is used to connect to StreamPipes.</p> <p> TYPE: <code>Optional[bool]</code> DEFAULT: <code>False</code> </p> <code>port</code> <p>Specifies the port under which the StreamPipes API is available, e.g., <code>80</code> (with http) or <code>443</code> (with https)</p> <p> TYPE: <code>Optional[int]</code> DEFAULT: <code>80</code> </p> <p>Examples:</p> <p>see StreamPipesClient</p>"},{"location":"reference/client/credential_provider/","title":"Credential provider","text":"<p>Implementation of credential providers. A credential provider supplies the specified sort of credentials in the appropriate HTTP header format. The headers are then used by the client to connect to StreamPipes.</p>"},{"location":"reference/client/credential_provider/#streampipes.client.credential_provider.CredentialProvider","title":"<code>CredentialProvider</code>","text":"<p>         Bases: <code>ABC</code></p> <p>Abstract implementation of a credential provider. Must be inherited by all credential providers.</p>"},{"location":"reference/client/credential_provider/#streampipes.client.credential_provider.CredentialProvider.make_headers","title":"<code>make_headers(http_headers=None)</code>","text":"<p>Creates the HTTP headers for the specific credential provider.</p> <p>Concrete authentication headers must be defined in the implementation of a credential provider.</p> PARAMETER DESCRIPTION <code>http_headers</code> <p>Additional HTTP headers the generated headers are extended by.</p> <p> TYPE: <code>Optional[Dict[str, str]]</code> DEFAULT: <code>None</code> </p> RETURNS DESCRIPTION <code>https_headers</code> <p>Dictionary with header information as string key-value pairs.  Contains all pairs given as parameter plus the header pairs for authentication determined by the credential provider.</p> <p> TYPE: <code>Dict[str, str]</code> </p>"},{"location":"reference/client/credential_provider/#streampipes.client.credential_provider.StreamPipesApiKeyCredentials","title":"<code>StreamPipesApiKeyCredentials(username=None, api_key=None)</code>","text":"<p>         Bases: <code>CredentialProvider</code></p> <p>A credential provider that allows authentication via a StreamPipes API Token.</p> <p>The required token can be generated via the StreamPipes UI (see the description on our start-page.</p> <p>Both parameters can either be passed as arguments or remain unset. If they are not passed, they are retrieved from environment variables:</p> <ul> <li><code>SP_USERNAME</code> is expected to contain the username</li> <li><code>SP_API_KEY</code> is expected to contain the API key</li> </ul> PARAMETER DESCRIPTION <code>username</code> <p>The username to which the API token is granted, e.g., <code>demo-user@streampipes.apche.org</code>. If not passed, the username is retrieved from environment variable <code>SP_USERNAME</code>.</p> <p> TYPE: <code>Optional[str]</code> DEFAULT: <code>None</code> </p> <code>api_key</code> <p>The StreamPipes API key as it is displayed in the UI. If not passed, the api key is retrieved from environment variable <code>SP_API_KEY</code></p> <p> TYPE: <code>Optional[str]</code> DEFAULT: <code>None</code> </p> <p>Examples:</p> <p>see StreamPipesClient</p>"},{"location":"reference/client/credential_provider/#streampipes.client.credential_provider.StreamPipesApiKeyCredentials.from_env","title":"<code>from_env(username_env, api_key_env)</code>  <code>classmethod</code>","text":"<p>DEPRECATED - use the class constructor instead</p> <p>Returns an api key provider parameterized via environment variables.</p> PARAMETER DESCRIPTION <code>username_env</code> <p>Name of the environment variable that contains the username</p> <p> TYPE: <code>str</code> </p> <code>api_key_env</code> <p>Name of the environment variable that contains the API key</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>StreamPipesApiKeyCredentials</code> RAISES DESCRIPTION <code>KeyError</code> <p>If one of the environment variables is not defined</p>"},{"location":"reference/endpoint/endpoint/","title":"Endpoint","text":"<p>General implementation for an endpoint. Provided classes and assets are aimed to be used for developing endpoints. An endpoint provides all options to communicate with ad dedicated part of StreamPipes in a handy way.</p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.APIEndpoint","title":"<code>APIEndpoint</code>","text":"<p>         Bases: <code>Endpoint</code></p> <p>Abstract implementation of an API endpoint.</p> <p>Serves as template for all endpoints of the StreamPipes API. By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.APIEndpoint.all","title":"<code>all()</code>","text":"<p>Get all resources of this endpoint provided by the StreamPipes API.</p> <p>Results are provided as an instance of a <code>ResourceContainer</code> that allows to handle the returned resources in a comfortable and pythonic way.</p> RETURNS DESCRIPTION <code>container</code> <p>container element that bundles the returned resources</p> <p> TYPE: <code>ResourceContainer</code> </p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.APIEndpoint.build_url","title":"<code>build_url()</code>","text":"<p>Builds the endpoint's URL of the API path.</p> RETURNS DESCRIPTION <code>url</code> <p>The URL of the endpoint</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.APIEndpoint.get","title":"<code>get(identifier, **kwargs)</code>","text":"<p>Queries the specified resource from the API endpoint.</p> PARAMETER DESCRIPTION <code>identifier</code> <p>The identifier of the resource to be queried.</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>resource</code> <p>The specified resource as an instance of the corresponding model class.</p> <p> TYPE: <code>Resource</code> </p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.APIEndpoint.post","title":"<code>post(resource)</code>","text":"<p>Allows to post a resource to the StreamPipes API.</p> PARAMETER DESCRIPTION <code>resource</code> <p>The resource to be posted.</p> <p> TYPE: <code>Resource</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.Endpoint","title":"<code>Endpoint(parent_client)</code>","text":"<p>         Bases: <code>ABC</code></p> <p>Abstract implementation of a StreamPipes endpoint.</p> <p>Serves as template for all endpoints used for interaction with a StreamPipes instance. By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p> PARAMETER DESCRIPTION <code>parent_client</code> <p>This parameter expects the instance of <code>StreamPipesClient</code> the endpoint is attached to.</p> <p> TYPE: <code>StreamPipesClient</code> </p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.MessagingEndpoint","title":"<code>MessagingEndpoint(parent_client)</code>","text":"<p>         Bases: <code>Endpoint</code></p> <p>Abstract implementation of a StreamPipes messaging endpoint.</p> <p>Serves as template for all endpoints used for interacting with the StreamPipes messaging layer directly. Therefore, they need to provide the functionality to talk with the broker system running in StreamPipes. By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.MessagingEndpoint.broker","title":"<code>broker: Broker</code>  <code>property</code> <code>writable</code>","text":"<p>Defines the broker instance that is used to connect to StreamPipes' messaging layer.</p> <p>This instance enables the client to authenticate to the broker used in the target StreamPipes instance, to consume messages from and to write messages to the broker.</p> RAISES DESCRIPTION <code>MessagingEndpointNotConfiguredError</code> <p>If the endpoint is used before the broker instance is set via <code>configure()</code></p> RETURNS DESCRIPTION <code>broker</code> <p>The broker instance to be used to communicate with StreamPipes' messaging layer.</p> <p> TYPE: <code>Broker</code> </p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.MessagingEndpoint.configure","title":"<code>configure(broker)</code>","text":"<p>Configures the message endpoint by setting the broker instance to be used.</p> <p>This configuration step is required before the endpoint can be actually used. The based <code>broker</code> instance is passed to an internal property</p> PARAMETER DESCRIPTION <code>broker</code> <p>Broker instance that should be used for this endpoint</p> <p> TYPE: <code>Broker</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/endpoint/exceptions/","title":"Exceptions","text":"<p>Custom exceptions dedicated for the endpoints module</p>"},{"location":"reference/endpoint/exceptions/#streampipes.endpoint.exceptions.MessagingEndpointNotConfiguredError","title":"<code>MessagingEndpointNotConfiguredError(endpoint_name)</code>","text":"<p>         Bases: <code>Exception</code></p> <p>Exception that indicates that an instance of a messaging endpoint has not been configured.</p> <p>This error occurs when an instance of a messaging endpoint is used before the broker instance to be used is configured by passing it to the <code>configure()</code> method.</p> PARAMETER DESCRIPTION <code>endpoint_name</code> <p>The name of the endpoint that caused the error</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/endpoint/api/data_lake_measure/","title":"Data lake measure","text":"<p>Specific implementation of the StreamPipes API's data lake measure endpoints. This endpoint allows to consume data stored in StreamPipes' data lake.</p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.DataLakeMeasureEndpoint","title":"<code>DataLakeMeasureEndpoint</code>","text":"<p>         Bases: <code>APIEndpoint</code></p> <p>Implementation of the DataLakeMeasure endpoint.</p> <p>This endpoint provides an interface to all data stored in the StreamPipes data lake.</p> <p>Consequently, it allows querying metadata about available data sets (see <code>all()</code> method). The metadata is returned as an instance of <code>DataLakeMeasures</code>.</p> <p>In addition, the endpoint provides direct access to the data stored in the data laka by querying a specific data lake measure using the <code>get()</code> method.</p> <p>Examples:</p> <pre><code>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</code></pre> <pre><code>client_config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(username=\"test-user\", api_key=\"api-key\"),\n    host_address=\"localhost\",\n    port=8082,\n    https_disabled=True\n)\nclient = StreamPipesClient.create(client_config=client_config)\n</code></pre> <p><pre><code># get all existing data lake measures from StreamPipes\ndata_lake_measures = client.dataLakeMeasureApi.all()\n\n# let's take a look how many we got\nlen(data_lake_measures)\n</code></pre> <pre><code>5\n</code></pre></p> <p><pre><code># Retrieve a specific data lake measure as a pandas DataFrame\nflow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\").to_pandas()\nflow_rate_pd\n</code></pre> <pre><code>                         time    density  mass_flow    sensorId  sensor_fault_flags  temperature  volume_flow\n0    2023-02-24T16:19:41.472Z  50.872730   3.309556  flowrate02               False    44.448483     5.793138\n1    2023-02-24T16:19:41.482Z  47.186588   5.608580  flowrate02               False    40.322033     0.058015\n2    2023-02-24T16:19:41.493Z  46.735321   7.692881  flowrate02               False    49.239639    10.283526\n3    2023-02-24T16:19:41.503Z  40.169796   3.632898  flowrate02               False    49.933754     6.893441\n4    2023-02-24T16:19:41.513Z  49.635124   0.711260  flowrate02               False    50.106617     2.999871\n..                        ...        ...        ...         ...                 ...          ...          ...\n995  2023-02-24T16:19:52.927Z  50.057495   1.740114  flowrate02               False    46.558231     1.818237\n996  2023-02-24T16:19:52.94Z   41.038895   7.211723  flowrate02               False    48.048622     2.127493\n997  2023-02-24T16:19:52.952Z  45.837013   7.770180  flowrate02               False    48.188026     7.892062\n998  2023-02-24T16:19:52.965Z  43.389065   4.458602  flowrate02               False    48.280899     5.733892\n999  2023-02-24T16:19:52.977Z  44.056030   2.592060  flowrate02               False    47.505951     4.260697\n</code></pre></p> <p>As you can see, the returned amount of rows per default is <code>1000</code>. We can modify this behavior by passing the <code>limit</code> paramter. <pre><code>flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", limit=10).to_pandas()\nlen(flow_rate_pd)\n</code></pre> <pre><code>10\n</code></pre></p> <p>If we are only interested in the values for <code>density</code>, <code>columns</code> allows us to select the columns to be returned: <pre><code>flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", columns='density', limit=3).to_pandas()\nflow_rate_pd\n</code></pre> <pre><code>                       time    density\n0  2023-02-24T16:19:41.472Z  50.872730\n1  2023-02-24T16:19:41.482Z  47.186588\n2  2023-02-24T16:19:41.493Z  46.735321\n</code></pre></p> <p>This is only a subset of the available query parameters, find them at MeasurementGetQueryConfig.</p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.DataLakeMeasureEndpoint.get","title":"<code>get(identifier, **kwargs)</code>","text":"<p>Queries the specified data lake measure from the API.</p> <p>By default, the maximum number of returned records is 1000. This behaviour can be influenced by passing the parameter <code>limit</code> with a different value (see MeasurementGetQueryConfig).</p> PARAMETER DESCRIPTION <code>identifier</code> <p>The identifier of the data lake measure to be queried.</p> <p> TYPE: <code>str</code> </p> <code>**kwargs</code> <p>keyword arguments can be used to provide additional query parameters. The available query parameters are defined by the MeasurementGetQueryConfig.</p> <p> TYPE: <code>Optional[Dict[str, Any]]</code> DEFAULT: <code>{}</code> </p> RETURNS DESCRIPTION <code>measurement</code> <p>the specified data lake measure</p> <p> TYPE: <code>DataLakeMeasures</code> </p> <p>Examples:</p> <p>see directly at DataLakeMeasureEndpoint.</p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig","title":"<code>MeasurementGetQueryConfig</code>","text":"<p>         Bases: <code>BaseModel</code></p> <p>Config class describing the parameters of the <code>get()</code> method for measurements.</p> <p>This config class is used to validate the provided query parameters for the GET endpoint of measurements. Additionally, it takes care of the conversion to a proper HTTP query string. Thereby, parameter names are adapted to the naming of the StreamPipes API, for which Pydantic aliases are used.</p> ATTRIBUTE DESCRIPTION <code>columns</code> <p>A comma separated list of column names (e.g., <code>time,value</code>) If provided, the returned data only consists of the given columns. Please be aware that the column <code>time</code> as an index is always included.</p> <p> TYPE: <code>Optional[str]</code> </p> <code>end_date</code> <p>Restricts queried data to be younger than the specified time.</p> <p> TYPE: <code>Optional[datetime]</code> </p> <code>limit</code> <p>Amount of records returned at maximum (default: <code>1000</code>)  This needs to be at least <code>1</code></p> <p> TYPE: <code>Optional[int]</code> </p> <code>offset</code> <p>Offset to be applied to returned data  This needs to be at least <code>0</code></p> <p> TYPE: <code>Optional[int]</code> </p> <code>order</code> <p>Ordering of query results  Allowed values: <code>ASC</code> and <code>DESC</code> (default: <code>ASC</code>)</p> <p> TYPE: <code>Optional[str]</code> </p> <code>page_no</code> <p>Page number used for paging operation  This needs to be at least <code>1</code></p> <p> TYPE: <code>Optional[int]</code> </p> <code>start_date</code> <p>Restricts queried data to be older than the specified time</p> <p> TYPE: <code>Optional[datetime]</code> </p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig.Config","title":"<code>Config</code>","text":"<p>Pydantic Config class</p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig.build_query_string","title":"<code>build_query_string()</code>","text":"<p>Builds a HTTP query string for the config.</p> <p>This method returns an HTTP query string for the invoking config. It follows the following structure <code>?param1=value1&amp;param2=value2...</code>. This query string is not an entire URL, instead it needs to appended to an API path.</p> RETURNS DESCRIPTION <code>query_param_string</code> <p>HTTP query params string (<code>?param1=value1&amp;param2=value2...</code>)</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.StreamPipesQueryValidationError","title":"<code>StreamPipesQueryValidationError</code>","text":"<p>         Bases: <code>Exception</code></p> <p>A custom exception to be raised when the validation of query parameter causes an error.</p>"},{"location":"reference/endpoint/api/data_stream/","title":"Data stream","text":"<p>Specific implementation of the StreamPipes API's data stream endpoints.</p>"},{"location":"reference/endpoint/api/data_stream/#streampipes.endpoint.api.data_stream.DataStreamEndpoint","title":"<code>DataStreamEndpoint</code>","text":"<p>         Bases: <code>APIEndpoint</code></p> <p>Implementation of the DataStream endpoint.</p> <p>Consequently, it allows querying metadata about available data streams (see <code>all()</code> method). The metadata is returned as an instance of <code>DataStreams</code>.</p> <p>Examples:</p> <pre><code>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n\nclient_config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(username=\"test-user\", api_key=\"api-key\"),\n    host_address=\"localhost\",\n    port=8082,\n    https_disabled=True\n)\nclient = StreamPipesClient.create(client_config=client_config)\n</code></pre> <p><pre><code># let's get all existing data streams in StreamPipes\ndata_streams = client.dataStreamApi.all()\nlen(data_streams)\n</code></pre> <pre><code>2\n</code></pre></p>"},{"location":"reference/endpoint/api/version/","title":"Version","text":"<p>Specific implementation of the StreamPipes API's version endpoint.</p>"},{"location":"reference/endpoint/api/version/#streampipes.endpoint.api.version.VersionEndpoint","title":"<code>VersionEndpoint</code>","text":"<p>         Bases: <code>APIEndpoint</code></p> <p>Implementation of the Versions endpoint.</p> <p>This endpoint provides metadata about the StreamPipes version of the connected instance. It only allows to apply the <code>get()</code> method with an empty string as identifier.</p> PARAMETER DESCRIPTION <code>parent_client</code> <p>The instance of StreamPipesClient the endpoint is attached to.</p> <p> </p> <p>Examples:</p> <pre><code>&gt;&gt;&gt; from streampipes.client import StreamPipesClient\n&gt;&gt;&gt; from streampipes.client.config import StreamPipesClientConfig\n&gt;&gt;&gt; from streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</code></pre> <pre><code>&gt;&gt;&gt; client_config = StreamPipesClientConfig(\n...     credential_provider=StreamPipesApiKeyCredentials(username=\"test-user\", api_key=\"api-key\"),\n...     host_address=\"localhost\",\n...     port=8082,\n...     https_disabled=True\n... )\n</code></pre> <pre><code>&gt;&gt;&gt; client = StreamPipesClient.create(client_config=client_config)\n</code></pre> <pre><code>&gt;&gt;&gt; client.versionApi.get(identifier=\"\").to_dict(use_source_names=False)\n{'backend_version': '0.92.0-SNAPSHOT'}\n</code></pre>"},{"location":"reference/endpoint/api/version/#streampipes.endpoint.api.version.VersionEndpoint.all","title":"<code>all()</code>","text":"<p>Usually, this method returns information about all resources provided by this endpoint. However, this endpoint does not support this kind of operation.</p> RAISES DESCRIPTION <code>NotImplementedError</code> <p>this endpoint does not return multiple entries, therefore this method is not available</p>"},{"location":"reference/endpoint/api/version/#streampipes.endpoint.api.version.VersionEndpoint.get","title":"<code>get(identifier, **kwargs)</code>","text":"<p>Queries the resource from the API endpoint.</p> <p>For this endpoint only one resource is available.</p> PARAMETER DESCRIPTION <code>identifier</code> <p>Not supported by this endpoint, is set to an empty string.</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>versions</code> <p>The specified resource as an instance of the corresponding model class(Version).  # noqa: 501</p> <p> TYPE: <code>Version</code> </p>"},{"location":"reference/endpoint/api/version/#streampipes.endpoint.api.version.VersionEndpoint.post","title":"<code>post(resource)</code>","text":"<p>Usually, this method allows to create via this endpoint. Since the data represented by this endpoint is immutable, it does not support this kind of operation.</p> RAISES DESCRIPTION <code>NotImplementedError</code> <p>this endpoint does not allow for POST requests, therefore this method is not available</p>"},{"location":"reference/function_zoo/river_function/","title":"River function","text":""},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.OnlineML","title":"<code>OnlineML(client, stream_ids, model, prediction_type=RuntimeType.STRING.value, supervised=False, target_label=None, on_start=lambda self, context: None, on_event=lambda self, event, streamId: None, on_stop=lambda self: None)</code>","text":"<p>Wrapper class to enable an easy usage for Online Machine Learning models of the River library.</p> <p>It creates a StreamPipesFunction to train a model with the incoming events of a data stream and creates an output data stream that publishes the prediction to StreamPipes.</p> PARAMETER DESCRIPTION <code>client</code> <p>The client for the StreamPipes API.</p> <p> TYPE: <code>StreamPipesClient</code> </p> <code>stream_ids</code> <p>The ids of the data stream to train the model.</p> <p> TYPE: <code>List[str]</code> </p> <code>model</code> <p>The model to train. It meant to be a River model/pipeline, but can be every model with a 'learn_one' and 'predict_one' methode.</p> <p> TYPE: <code>Any</code> </p> <code>prediction_type</code> <p>The data type of the prediction. Is only needed when you continue to work with the prediction in StreamPipes.</p> <p> TYPE: <code>str</code> DEFAULT: <code>RuntimeType.STRING.value</code> </p> <code>supervised</code> <p>Define if the model is supervised or unsupervised.</p> <p> TYPE: <code>bool</code> DEFAULT: <code>False</code> </p> <code>target_label</code> <p>Define the name of the target attribute if the model is supervised.</p> <p> TYPE: <code>Optional[str]</code> DEFAULT: <code>None</code> </p> <code>on_start</code> <p>A function to be called when this StreamPipesFunction gets started.</p> <p> TYPE: <code>Callable[[Any, FunctionContext], None]</code> DEFAULT: <code>lambda self, context: None</code> </p> <code>on_event</code> <p>A function to be called when this StreamPipesFunction receives an event.</p> <p> TYPE: <code>Callable[[Any, Dict[str, Any], str], None]</code> DEFAULT: <code>lambda self, event, streamId: None</code> </p> <code>on_stop</code> <p>A function to be called when this StreamPipesFunction gets stopped.</p> <p> TYPE: <code>Callable[[Any], None]</code> DEFAULT: <code>lambda self: None</code> </p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.OnlineML.set_learning","title":"<code>set_learning(learning)</code>","text":"<p>Start or stop the training of the model.</p> PARAMETER DESCRIPTION <code>learning</code> <p>Defines if the training should be continued</p> <p> TYPE: <code>bool</code> </p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.OnlineML.start","title":"<code>start()</code>","text":"<p>Registers the function and starts the training.</p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.OnlineML.stop","title":"<code>stop()</code>","text":"<p>Stops the function and ends the training forever.</p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.RiverFunction","title":"<code>RiverFunction(function_definition, stream_ids, model, supervised, target_label, on_start, on_event, on_stop)</code>","text":"<p>         Bases: <code>StreamPipesFunction</code></p> <p>Implementation of a StreamPipesFunction to enable an easy usage for Online Machine Learning models of the River library.</p> <p>The function trains the model with the incoming events and publishes the prediction to an output data stream.</p> PARAMETER DESCRIPTION <code>function_definition</code> <p>The function definition which contains the output stream.</p> <p> TYPE: <code>FunctionDefinition</code> </p> <code>stream_ids</code> <p>The ids of the data stream to train the model.</p> <p> TYPE: <code>List[str]</code> </p> <code>model</code> <p>The model to train. It meant to be a River model/pipeline, but can be every model with a 'learn_one' and 'predict_one' method.</p> <p> TYPE: <code>Any</code> </p> <code>supervised</code> <p>Define if the model is supervised or unsupervised.</p> <p> TYPE: <code>bool</code> </p> <code>target_label</code> <p>Define the name of the target attribute if the model is supervised.</p> <p> TYPE: <code>Optional[str]</code> </p> <code>on_start</code> <p>A function to be called when this StreamPipesFunction gets started.</p> <p> TYPE: <code>Callable[[Any, FunctionContext], None]</code> </p> <code>on_event</code> <p>A function to be called when this StreamPipesFunction receives an event.</p> <p> TYPE: <code>Callable[[Any, Dict[str, Any], str], None]</code> </p> <code>on_stop</code> <p>A function to be called when this StreamPipesFunction gets stopped.</p> <p> TYPE: <code>Callable[[Any], None]</code> </p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.RiverFunction.onEvent","title":"<code>onEvent(event, streamId)</code>","text":"<p>Trains the model with the incoming events and sends the prediction back to StreamPipes.</p> PARAMETER DESCRIPTION <code>event</code> <p>The incoming event that serves as input for the function</p> <p> TYPE: <code>Dict[str, Any]</code> </p> <code>streamId</code> <p>Identifier of the corresponding data stream</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.RiverFunction.onServiceStarted","title":"<code>onServiceStarted(context)</code>","text":"<p>Executes the <code>on_start</code> method of the function.</p> PARAMETER DESCRIPTION <code>context</code> <p>The functions' context</p> <p> TYPE: <code>FunctionContext</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.RiverFunction.onServiceStopped","title":"<code>onServiceStopped()</code>","text":"<p>Executes the <code>on_stop</code> function.</p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.RiverFunction.requiredStreamIds","title":"<code>requiredStreamIds()</code>","text":"<p>Returns the stream ids required by this function.</p> RETURNS DESCRIPTION <code>stream_ids</code> <p>List of stream ids required by the function</p> <p> TYPE: <code>List[str]</code> </p>"},{"location":"reference/functions/function_handler/","title":"Function handler","text":""},{"location":"reference/functions/function_handler/#streampipes.functions.function_handler.FunctionHandler","title":"<code>FunctionHandler(registration, client)</code>","text":"<p>The function handler manages the StreamPipes Functions.</p> <p>It controls the connection to the brokers, starts the functions, manages the broadcast of the live data and is able to stop the connection to the brokers and functions.</p> PARAMETER DESCRIPTION <code>registration</code> <p>The registration, that contains the StreamPipesFunctions.</p> <p> TYPE: <code>Registration</code> </p> <code>client</code> <p>The client to interact with the API.</p> <p> TYPE: <code>StreamPipesClient</code> </p> ATTRIBUTE DESCRIPTION <code>stream_contexts</code> <p>Map of all data stream contexts</p> <p> TYPE: <code>Dict[str, DataStreamContext]</code> </p> <code>brokers</code> <p>List of all registered brokers</p> <p> TYPE: <code>List[Broker]</code> </p>"},{"location":"reference/functions/function_handler/#streampipes.functions.function_handler.FunctionHandler.disconnect","title":"<code>disconnect()</code>","text":"<p>Disconnects from the brokers and stops all functions.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/function_handler/#streampipes.functions.function_handler.FunctionHandler.force_stop_functions","title":"<code>force_stop_functions()</code>","text":"<p>Stops the StreamPipesFunctions when the event loop was stopped without stopping the functions.</p> RETURNS DESCRIPTION <code>None</code> WARNS DESCRIPTION <code>UserWarning</code> <p>If there is a running event loop and the functions should be stopped by disconnecting from the broker.</p>"},{"location":"reference/functions/function_handler/#streampipes.functions.function_handler.FunctionHandler.initializeFunctions","title":"<code>initializeFunctions()</code>","text":"<p>Creates the context for every data stream and starts the event loop to manage the StreamPipes Functions.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/registration/","title":"Registration","text":""},{"location":"reference/functions/registration/#streampipes.functions.registration.Registration","title":"<code>Registration()</code>","text":"<p>Manages the existing StreamPipesFunctions and registers them.</p> ATTRIBUTE DESCRIPTION <code>functions</code> <p>List of all registered StreamPipesFunction</p> <p> TYPE: <code>List[StreamPipesFunction]</code> </p>"},{"location":"reference/functions/registration/#streampipes.functions.registration.Registration.getFunctions","title":"<code>getFunctions()</code>","text":"<p>Get all registered functions.</p> <p>This method exists to be consistent with the Java client.</p> RETURNS DESCRIPTION <code>functions</code> <p>List of all registered functions.</p> <p> TYPE: <code>List[StreamPipesFunction]</code> </p>"},{"location":"reference/functions/registration/#streampipes.functions.registration.Registration.register","title":"<code>register(streampipes_function)</code>","text":"<p>Registers a new function.</p> PARAMETER DESCRIPTION <code>streampipes_function</code> <p>The function to register.</p> <p> TYPE: <code>StreamPipesFunction</code> </p> RETURNS DESCRIPTION <code>self</code> <p>The updated Registration instance</p> <p> TYPE: <code>Registration</code> </p>"},{"location":"reference/functions/streampipes_function/","title":"Streampipes function","text":""},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction","title":"<code>StreamPipesFunction(function_definition=None)</code>","text":"<p>         Bases: <code>ABC</code></p> <p>Abstract implementation of a StreamPipesFunction.</p> <p>A StreamPipesFunction allows users to get the data of a StreamPipes data streams easily. It makes it possible to work with the live data in python and enables to use the powerful data analytics libraries there.</p> PARAMETER DESCRIPTION <code>function_definition</code> <p>the definition of the function that contains metadata about the connected function</p> <p> TYPE: <code>Optional[FunctionDefinition]</code> DEFAULT: <code>None</code> </p> ATTRIBUTE DESCRIPTION <code>output_collectors</code> <p>List of all output collectors which are created based on the provided function definitions.</p> <p> TYPE: <code>Dict[str, OutputCollector]</code> </p>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.add_output","title":"<code>add_output(stream_id, event)</code>","text":"<p>Send an event via an output data stream to StreamPipes</p> PARAMETER DESCRIPTION <code>stream_id</code> <p>The id of the output data stream</p> <p> TYPE: <code>str</code> </p> <code>event</code> <p>The event which should be sent</p> <p> TYPE: <code>Dict[str, Any]</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.getFunctionId","title":"<code>getFunctionId()</code>","text":"<p>Returns the id of the function.</p> RETURNS DESCRIPTION <code>function_id</code> <p>Identification object of the StreamPipes function</p> <p> TYPE: <code>FunctionId</code> </p>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.onEvent","title":"<code>onEvent(event, streamId)</code>  <code>abstractmethod</code>","text":"<p>Is called for every event of a data stream.</p> PARAMETER DESCRIPTION <code>event</code> <p>The received event from the data stream.</p> <p> TYPE: <code>Dict[str, Any]</code> </p> <code>streamId</code> <p>The id of the data stream which the event belongs to.</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStarted","title":"<code>onServiceStarted(context)</code>  <code>abstractmethod</code>","text":"<p>Is called when the function gets started.</p> PARAMETER DESCRIPTION <code>context</code> <p>The context in which the function gets started.</p> <p> TYPE: <code>FunctionContext</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStopped","title":"<code>onServiceStopped()</code>  <code>abstractmethod</code>","text":"<p>Is called when the function gets stopped.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.requiredStreamIds","title":"<code>requiredStreamIds()</code>  <code>abstractmethod</code>","text":"<p>Get the ids of the streams needed by the function.</p> RETURNS DESCRIPTION <code>stream_ids</code> <p>List of the stream ids</p> <p> TYPE: <code>List[str]</code> </p>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.stop","title":"<code>stop()</code>","text":"<p>Stops the function and disconnects from the output streams</p>"},{"location":"reference/functions/broker/broker/","title":"Broker","text":""},{"location":"reference/functions/broker/broker/#streampipes.functions.broker.broker.Broker","title":"<code>Broker</code>","text":"<p>         Bases: <code>ABC</code></p> <p>Abstract implementation of a broker for consumer and publisher.</p> <p>It contains the basic logic to connect to a data stream.</p>"},{"location":"reference/functions/broker/broker/#streampipes.functions.broker.broker.Broker.connect","title":"<code>connect(data_stream)</code>  <code>async</code>","text":"<p>Connects to the broker running in StreamPipes.</p> PARAMETER DESCRIPTION <code>data_stream</code> <p>Contains the meta information (resources) for a data stream.</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/broker/#streampipes.functions.broker.broker.Broker.disconnect","title":"<code>disconnect()</code>  <code>abstractmethod</code> <code>async</code>","text":"<p>Closes the connection to the server.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/broker_handler/","title":"Broker handler","text":""},{"location":"reference/functions/broker/broker_handler/#streampipes.functions.broker.broker_handler.SupportedBroker","title":"<code>SupportedBroker</code>","text":"<p>         Bases: <code>Enum</code></p> <p>Enum for the supported brokers.</p>"},{"location":"reference/functions/broker/broker_handler/#streampipes.functions.broker.broker_handler.UnsupportedBrokerError","title":"<code>UnsupportedBrokerError(broker_name)</code>","text":"<p>         Bases: <code>Exception</code></p> <p>Exception if a broker isn't implemented yet.</p>"},{"location":"reference/functions/broker/broker_handler/#streampipes.functions.broker.broker_handler.get_broker","title":"<code>get_broker(data_stream, is_publisher=False)</code>","text":"<p>Derive the broker for the given data stream.</p> PARAMETER DESCRIPTION <code>data_stream</code> <p>Data stream instance from which the broker is inferred</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>broker</code> <p>The corresponding broker instance derived from data stream.</p> <p> TYPE: <code>Broker</code> </p> RAISES DESCRIPTION <code>UnsupportedBrokerError</code> <p>Is raised when the given data stream belongs to a broker that is currently not supported by StreamPipes Python.</p>"},{"location":"reference/functions/broker/broker_handler/#streampipes.functions.broker.broker_handler.get_broker_description","title":"<code>get_broker_description(data_stream)</code>","text":"<p>Derive the decription of the broker for the given data stream.</p> PARAMETER DESCRIPTION <code>data_stream</code> <p>Data stream instance from which the broker is inferred</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>broker</code> <p>The corresponding broker description derived from data stream.</p> <p> TYPE: <code>SupportedBroker</code> </p> RAISES DESCRIPTION <code>UnsupportedBrokerError</code> <p>Is raised when the given data stream belongs to a broker that is currently not supported by StreamPipes Python.</p>"},{"location":"reference/functions/broker/consumer/","title":"Consumer","text":""},{"location":"reference/functions/broker/consumer/#streampipes.functions.broker.consumer.Consumer","title":"<code>Consumer</code>","text":"<p>         Bases: <code>Broker</code></p> <p>Abstract implementation a consumer for a broker.</p> <p>A consumer allows to subscribe to a data stream.</p>"},{"location":"reference/functions/broker/consumer/#streampipes.functions.broker.consumer.Consumer.connect","title":"<code>connect(data_stream)</code>  <code>async</code>","text":"<p>Connects to the broker running in StreamPipes and creates a subscription.</p> PARAMETER DESCRIPTION <code>data_stream</code> <p>Contains the meta information (resources) for a data stream.</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/consumer/#streampipes.functions.broker.consumer.Consumer.get_message","title":"<code>get_message()</code>  <code>abstractmethod</code>","text":"<p>Get the published messages of the subscription.</p> RETURNS DESCRIPTION <code>iterator</code> <p>An async iterator for the messages.</p> <p> TYPE: <code>AsyncIterator</code> </p>"},{"location":"reference/functions/broker/output_collector/","title":"Output collector","text":""},{"location":"reference/functions/broker/output_collector/#streampipes.functions.broker.output_collector.OutputCollector","title":"<code>OutputCollector(data_stream)</code>","text":"<p>Collector for output events. The events are published to an output data stream. Therefore, the output collector establishes a connection to the broker.</p> PARAMETER DESCRIPTION <code>data_stream</code> <p>The output data stream that will receive the events.</p> <p> TYPE: <code>DataStream</code> </p> ATTRIBUTE DESCRIPTION <code>publisher</code> <p>The publisher instance that sends the data to StreamPipes</p> <p> TYPE: <code>Publisher</code> </p>"},{"location":"reference/functions/broker/output_collector/#streampipes.functions.broker.output_collector.OutputCollector.collect","title":"<code>collect(event)</code>","text":"<p>Publishes an event to the output stream.</p> PARAMETER DESCRIPTION <code>event</code> <p>The event to be published.</p> <p> TYPE: <code>Dict[str, Any]</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/output_collector/#streampipes.functions.broker.output_collector.OutputCollector.disconnect","title":"<code>disconnect()</code>","text":"<p>Disconnects the broker of the output collector.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/publisher/","title":"Publisher","text":""},{"location":"reference/functions/broker/publisher/#streampipes.functions.broker.publisher.Publisher","title":"<code>Publisher</code>","text":"<p>         Bases: <code>Broker</code></p> <p>Abstract implementation of a publisher for a broker.</p> <p>A publisher allows to publish events to a data stream.</p>"},{"location":"reference/functions/broker/publisher/#streampipes.functions.broker.publisher.Publisher.publish_event","title":"<code>publish_event(event)</code>  <code>abstractmethod</code> <code>async</code>","text":"<p>Publish an event to a connected data stream.</p> PARAMETER DESCRIPTION <code>event</code> <p>The event to be published.</p> <p> TYPE: <code>Dict[str, Any]</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/kafka/kafka_consumer/","title":"Kafka consumer","text":""},{"location":"reference/functions/broker/kafka/kafka_consumer/#streampipes.functions.broker.kafka.kafka_consumer.KafkaConsumer","title":"<code>KafkaConsumer</code>","text":"<p>         Bases: <code>Consumer</code></p> <p>Implementation of a consumer for Kafka</p>"},{"location":"reference/functions/broker/kafka/kafka_consumer/#streampipes.functions.broker.kafka.kafka_consumer.KafkaConsumer.disconnect","title":"<code>disconnect()</code>  <code>async</code>","text":"<p>Closes the connection to the server.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/kafka/kafka_consumer/#streampipes.functions.broker.kafka.kafka_consumer.KafkaConsumer.get_message","title":"<code>get_message()</code>","text":"<p>Get the published messages of the subscription.</p> RETURNS DESCRIPTION <code>iterator</code> <p>An async iterator for the messages.</p> <p> TYPE: <code>AsyncIterator</code> </p>"},{"location":"reference/functions/broker/kafka/kafka_message_fetcher/","title":"Kafka message fetcher","text":""},{"location":"reference/functions/broker/kafka/kafka_message_fetcher/#streampipes.functions.broker.kafka.kafka_message_fetcher.KafkaMessage","title":"<code>KafkaMessage(data)</code>","text":"<p>An internal representation of a Kafka message</p> PARAMETER DESCRIPTION <code>data</code> <p>The received Kafka message as byte array</p> <p> </p>"},{"location":"reference/functions/broker/kafka/kafka_message_fetcher/#streampipes.functions.broker.kafka.kafka_message_fetcher.KafkaMessageFetcher","title":"<code>KafkaMessageFetcher(consumer)</code>","text":"<p>Fetches the next message from Kafka</p> PARAMETER DESCRIPTION <code>consumer</code> <p>The Kafka consumer</p> <p> TYPE: <code>Consumer</code> </p>"},{"location":"reference/functions/broker/kafka/kafka_publisher/","title":"Kafka publisher","text":""},{"location":"reference/functions/broker/kafka/kafka_publisher/#streampipes.functions.broker.kafka.kafka_publisher.KafkaPublisher","title":"<code>KafkaPublisher</code>","text":"<p>         Bases: <code>Publisher</code></p> <p>Implementation of a publisher for Kafka</p>"},{"location":"reference/functions/broker/kafka/kafka_publisher/#streampipes.functions.broker.kafka.kafka_publisher.KafkaPublisher.disconnect","title":"<code>disconnect()</code>  <code>async</code>","text":"<p>Closes the connection to the server.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/kafka/kafka_publisher/#streampipes.functions.broker.kafka.kafka_publisher.KafkaPublisher.publish_event","title":"<code>publish_event(event)</code>  <code>async</code>","text":"<p>Publish an event to a connected data stream.</p> PARAMETER DESCRIPTION <code>event</code> <p>The event to be published.</p> <p> TYPE: <code>Dict[str, Any]</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/nats/nats_consumer/","title":"Nats consumer","text":""},{"location":"reference/functions/broker/nats/nats_consumer/#streampipes.functions.broker.nats.nats_consumer.NatsConsumer","title":"<code>NatsConsumer</code>","text":"<p>         Bases: <code>Consumer</code></p> <p>Implementation of a consumer for NATS</p>"},{"location":"reference/functions/broker/nats/nats_consumer/#streampipes.functions.broker.nats.nats_consumer.NatsConsumer.disconnect","title":"<code>disconnect()</code>  <code>async</code>","text":"<p>Closes the connection to the server.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/nats/nats_consumer/#streampipes.functions.broker.nats.nats_consumer.NatsConsumer.get_message","title":"<code>get_message()</code>","text":"<p>Get the published messages of the subscription.</p> RETURNS DESCRIPTION <code>message_iterator</code> <p>An async iterator for the messages.</p> <p> TYPE: <code>AsyncIterator</code> </p>"},{"location":"reference/functions/broker/nats/nats_publisher/","title":"Nats publisher","text":""},{"location":"reference/functions/broker/nats/nats_publisher/#streampipes.functions.broker.nats.nats_publisher.NatsPublisher","title":"<code>NatsPublisher</code>","text":"<p>         Bases: <code>Publisher</code></p> <p>Implementation of a publisher for NATS</p>"},{"location":"reference/functions/broker/nats/nats_publisher/#streampipes.functions.broker.nats.nats_publisher.NatsPublisher.disconnect","title":"<code>disconnect()</code>  <code>async</code>","text":"<p>Closes the connection to the server.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/nats/nats_publisher/#streampipes.functions.broker.nats.nats_publisher.NatsPublisher.publish_event","title":"<code>publish_event(event)</code>  <code>async</code>","text":"<p>Publish an event to a connected data stream.</p> PARAMETER DESCRIPTION <code>event</code> <p>The event to be published.</p> <p> TYPE: <code>Dict[str, Any]</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/utils/async_iter_handler/","title":"Async iter handler","text":""},{"location":"reference/functions/utils/async_iter_handler/#streampipes.functions.utils.async_iter_handler.AsyncIterHandler","title":"<code>AsyncIterHandler</code>","text":"<p>Handles asynchronous iterators to get every message after another in parallel.</p>"},{"location":"reference/functions/utils/async_iter_handler/#streampipes.functions.utils.async_iter_handler.AsyncIterHandler.anext","title":"<code>anext(stream_id, message)</code>  <code>staticmethod</code> <code>async</code>","text":"<p>Gets the next message from an AsyncIterator.</p> PARAMETER DESCRIPTION <code>stream_id</code> <p>The id of the data stream which the message belongs to.</p> <p> TYPE: <code>str</code> </p> <code>message</code> <p>An asynchronous iterator that contains the messages.</p> <p> TYPE: <code>AsyncIterator</code> </p> RETURNS DESCRIPTION <code>result</code> <p>Tuple of the stream id und next message or <code>(\"stop\", None)</code> if no message is left.</p> <p> TYPE: <code>Tuple[str, Optional[Any]]</code> </p>"},{"location":"reference/functions/utils/async_iter_handler/#streampipes.functions.utils.async_iter_handler.AsyncIterHandler.combine_async_messages","title":"<code>combine_async_messages(messages)</code>  <code>staticmethod</code> <code>async</code>","text":"<p>Continuously gets the next published message from multiple AsyncIterators in parallel.</p> PARAMETER DESCRIPTION <code>messages</code> <p>A dictionary with an asynchronous iterator for every stream id.</p> <p> TYPE: <code>Dict[str, AsyncIterator]</code> </p> YIELDS DESCRIPTION <code>message</code> <p>Description of the anonymous integer return value.</p> <p> TYPE: <code>Tuple[str, Any]</code> </p>"},{"location":"reference/functions/utils/data_stream_context/","title":"Data stream context","text":""},{"location":"reference/functions/utils/data_stream_context/#streampipes.functions.utils.data_stream_context.DataStreamContext","title":"<code>DataStreamContext(functions, schema, broker)</code>","text":"<p>Container for the context of a data stream.</p> PARAMETER DESCRIPTION <code>functions</code> <p>StreamPipes Functions which require the data of this data stream.</p> <p> TYPE: <code>List[StreamPipesFunction]</code> </p> <code>schema</code> <p>The schema of this data stream.</p> <p> TYPE: <code>DataStream</code> </p> <code>broker</code> <p>The consumer to connect to this data stream.</p> <p> TYPE: <code>Consumer</code> </p>"},{"location":"reference/functions/utils/data_stream_context/#streampipes.functions.utils.data_stream_context.DataStreamContext.add_function","title":"<code>add_function(function)</code>","text":"<p>Adds a new StreamPipes Function.</p> PARAMETER DESCRIPTION <code>function</code> <p>StreamPipesFunction which requires this data stream.</p> <p> TYPE: <code>StreamPipesFunction</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/utils/data_stream_generator/","title":"Data stream generator","text":""},{"location":"reference/functions/utils/data_stream_generator/#streampipes.functions.utils.data_stream_generator.RuntimeType","title":"<code>RuntimeType</code>","text":"<p>         Bases: <code>Enum</code></p> <p>Runtime type names for the attributes of a data stream.</p> ATTRIBUTE DESCRIPTION <code>STRING</code> <p> </p> <code>BOOLEAN</code> <p> </p> <code>DOUBLE</code> <p> </p> <code>FLOAT</code> <p> </p> <code>INTEGER</code> <p> </p> <code>LONG</code> <p> </p>"},{"location":"reference/functions/utils/data_stream_generator/#streampipes.functions.utils.data_stream_generator.create_data_stream","title":"<code>create_data_stream(name, attributes, stream_id=None, broker=SupportedBroker.NATS)</code>","text":"<p>Creates a data stream</p> PARAMETER DESCRIPTION <code>name</code> <p>Name of the data stream to be shown at the UI.</p> <p> TYPE: <code>str</code> </p> <code>attributes</code> <p>Name and types of the attributes.</p> <p> TYPE: <code>Dict[str, str]</code> </p> <code>stream_id</code> <p>The id of this data stream.</p> <p> TYPE: <code>Optional[str]</code> DEFAULT: <code>None</code> </p> RETURNS DESCRIPTION <code>data_stream</code> <p>The created data stream</p> <p> TYPE: <code>DataStream</code> </p>"},{"location":"reference/functions/utils/function_context/","title":"Function context","text":""},{"location":"reference/functions/utils/function_context/#streampipes.functions.utils.function_context.FunctionContext","title":"<code>FunctionContext(function_id, schema, client, streams)</code>","text":"<p>Container for the context of a StreamPipesFunction.</p> PARAMETER DESCRIPTION <code>function_id</code> <p>The id of this function.</p> <p> TYPE: <code>str</code> </p> <code>schema</code> <p>A dictionary which contains the schema of a data stream for each stream id.</p> <p> TYPE: <code>Dict[str, DataStream]</code> </p> <code>client</code> <p>The client to interact with the API.</p> <p> TYPE: <code>StreamPipesClient</code> </p> <code>streams</code> <p>The ids of the streams needed by this function.</p> <p> TYPE: <code>List[str]</code> </p>"},{"location":"reference/functions/utils/function_context/#streampipes.functions.utils.function_context.FunctionContext.add_data_stream_schema","title":"<code>add_data_stream_schema(stream_id, data_stream)</code>","text":"<p>Adds a new data stream for a new stream id.</p> PARAMETER DESCRIPTION <code>stream_id</code> <p>The id of the data stream.</p> <p> TYPE: <code>str</code> </p> <code>data_stream</code> <p>The schema of the data stream.</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/model/common/","title":"Common","text":"<p>Classes of the StreamPipes data model that are commonly shared.</p>"},{"location":"reference/model/common/#streampipes.model.common.ApplicationLink","title":"<code>ApplicationLink</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Data model of an <code>ApplicationLink</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.BaseElement","title":"<code>BaseElement</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Structure of a basic element in the StreamPipes backend</p>"},{"location":"reference/model/common/#streampipes.model.common.BasicModel","title":"<code>BasicModel</code>","text":"<p>         Bases: <code>BaseModel</code></p> <p>Basic model class used for the whole Python StreamPipes data model.</p>"},{"location":"reference/model/common/#streampipes.model.common.BasicModel.Config","title":"<code>Config</code>","text":"<p>Configuration class for Pydantic. Defines alias generator to convert field names from camelCase (API) to snake_case (Python codebase).</p>"},{"location":"reference/model/common/#streampipes.model.common.EventGrounding","title":"<code>EventGrounding</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Data model of an <code>EventGrounding</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.EventProperty","title":"<code>EventProperty</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Data model of an <code>EventProperty</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.EventSchema","title":"<code>EventSchema</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Data model of an <code>EventSchema</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.MeasurementCapability","title":"<code>MeasurementCapability</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Data model of a <code>MeasurementCapability</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.MeasurementObject","title":"<code>MeasurementObject</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Data model of a <code>MeasurementObject</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.TopicDefinition","title":"<code>TopicDefinition</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Data model of a <code>TopicDefinition</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.TransportFormat","title":"<code>TransportFormat</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Data model of a <code>TransportFormat</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.TransportProtocol","title":"<code>TransportProtocol</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Data model of a <code>TransportProtocol</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.ValueSpecification","title":"<code>ValueSpecification</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Data model of an <code>ValueSpecification</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.random_letters","title":"<code>random_letters(n)</code>","text":"<p>Generates a string consisting of random letters.</p> PARAMETER DESCRIPTION <code>n</code> <p>number of letters</p> <p> TYPE: <code>int</code> </p> RETURNS DESCRIPTION <code>rand_str</code> <p>String consisting of <code>n</code> random letters</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/model/container/data_lake_measures/","title":"Data lake measures","text":"<p>Implementation of a resource container for the data lake measures endpoint.</p>"},{"location":"reference/model/container/data_lake_measures/#streampipes.model.container.data_lake_measures.DataLakeMeasures","title":"<code>DataLakeMeasures</code>","text":"<p>         Bases: <code>ResourceContainer</code></p> <p>Implementation of the resource container for the data lake measures endpoint.</p> <p>This resource container is a collection of data lake measures returned by the StreamPipes API. It is capable of parsing the response content directly into a list of queried <code>DataLakeMeasure</code>. Furthermore, the resource container makes them accessible in a pythonic manner.</p>"},{"location":"reference/model/container/data_streams/","title":"Data streams","text":"<p>Implementation of a resource container for the data streams endpoint.</p>"},{"location":"reference/model/container/data_streams/#streampipes.model.container.data_streams.DataStreams","title":"<code>DataStreams</code>","text":"<p>         Bases: <code>ResourceContainer</code></p> <p>Implementation of the resource container for the data stream endpoint.</p> <p>This resource container is a collection of data streams returned by the StreamPipes API. It is capable of parsing the response content directly into a list of queried <code>DataStream</code>. Furthermore, the resource container makes them accessible in a pythonic manner.</p>"},{"location":"reference/model/container/resource_container/","title":"Resource container","text":"<p>General and abstract implementation for a resource container.</p> <p>A resource container is a collection of resources returned by the StreamPipes API. It is capable of parsing the response content directly into a list of queried resources. Furthermore, the resource container makes them accessible in a pythonic manner.</p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.ResourceContainer","title":"<code>ResourceContainer(resources)</code>","text":"<p>         Bases: <code>ABC</code></p> <p>General and abstract implementation for a resource container.</p> <p>A resource container is a collection of resources returned by the StreamPipes API. It is capable of parsing the response content directly into a list of queried resources. Furthermore, the resource container makes them accessible in a pythonic manner.</p> PARAMETER DESCRIPTION <code>resources</code> <p>A list of resources to be contained in the <code>ResourceContainer</code>.</p> <p> TYPE: <code>List[Resource]</code> </p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.ResourceContainer.from_json","title":"<code>from_json(json_string)</code>  <code>classmethod</code>","text":"<p>Creates a <code>ResourceContainer</code> from the given JSON string.</p> PARAMETER DESCRIPTION <code>json_string</code> <p>The JSON string returned from the StreamPipes API.</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>container</code> <p>instance of the container derived from the JSON definition</p> <p> TYPE: <code>ResourceContainer</code> </p> RAISES DESCRIPTION <code>StreamPipesDataModelError</code> <p>If a resource cannot be mapped to the corresponding Python data model.</p> <code>StreamPipesResourceContainerJSONError</code> <p>If JSON response cannot be parsed to a <code>ResourceContainer</code>.</p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.ResourceContainer.to_dicts","title":"<code>to_dicts(use_source_names=False)</code>","text":"<p>Returns the contained resources as list of dictionaries.</p> PARAMETER DESCRIPTION <code>use_source_names</code> <p>Determines whether the field names are named in Python style (=<code>False</code>) or as originally named by StreamPipes (=<code>True</code>).</p> <p> TYPE: <code>bool</code> DEFAULT: <code>False</code> </p> RETURNS DESCRIPTION <code>dictionary_list</code> <p>List of resources in dictionary representation. If <code>use_source_names</code> equals <code>True</code> the keys are named as in the StreamPipes backend.</p> <p> TYPE: <code>List[Dict[str, Any]]</code> </p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.ResourceContainer.to_json","title":"<code>to_json()</code>","text":"<p>Returns the resource container in the StreamPipes JSON representation.</p> RETURNS DESCRIPTION <code> json_string: str</code> <p>JSON representation of the resource container where key names are equal to keys used in the StreamPipes backend</p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.ResourceContainer.to_pandas","title":"<code>to_pandas()</code>","text":"<p>Returns the resource container in representation of a Pandas Dataframe.</p> RETURNS DESCRIPTION <code>resource_container_df</code> <p>Representation of the resource container as pandas DataFrame</p> <p> TYPE: <code>pd.DataFrame</code> </p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.StreamPipesDataModelError","title":"<code>StreamPipesDataModelError(validation_error)</code>","text":"<p>         Bases: <code>Exception</code></p> <p>A custom exception to be raised when a validation error occurs during the parsing of StreamPipes API responses.</p> PARAMETER DESCRIPTION <code>validation_error</code> <p>The validation error thrown by Pydantic during parsing.</p> <p> TYPE: <code>ValidationError</code> </p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.StreamPipesResourceContainerJSONError","title":"<code>StreamPipesResourceContainerJSONError(container_name, json_string)</code>","text":"<p>         Bases: <code>Exception</code></p> <p>A custom exception to be raised when the returned JSON string does not suit to the structure of resource container.</p> PARAMETER DESCRIPTION <code>container_name</code> <p>The class name of the resource container where the invalid data structure was detected.</p> <p> TYPE: <code>str</code> </p> <code>json_string</code> <p>The JSON string that has been tried to parse.</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/model/container/versions/","title":"Versions","text":"<p>Implementation of a resource container for the versions endpoint.</p>"},{"location":"reference/model/container/versions/#streampipes.model.container.versions.Versions","title":"<code>Versions</code>","text":"<p>         Bases: <code>ResourceContainer</code></p> <p>Implementation of the resource container for the versions endpoint.</p> <p>This resource container is a collection of versions returned by the StreamPipes API. It is capable of parsing the response content directly into a list of queried <code>Version</code>. Furthermore, the resource container makes them accessible in a pythonic manner.</p> PARAMETER DESCRIPTION <code>resources</code> <p>A list of resources (Version) to be contained in the <code>ResourceContainer</code>.</p> <p> </p>"},{"location":"reference/model/resource/data_lake_measure/","title":"Data lake measure","text":""},{"location":"reference/model/resource/data_lake_measure/#streampipes.model.resource.data_lake_measure.DataLakeMeasure","title":"<code>DataLakeMeasure</code>","text":"<p>         Bases: <code>Resource</code></p> <p>Implementation of a resource for data lake measures.</p> <p>This resource defines the data model used by resource container (<code>model.container.DataLakeMeasures</code>). It inherits from Pydantic's BaseModel to get all its superpowers, which are used to parse, validate the API response, and to easily switch between the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>"},{"location":"reference/model/resource/data_lake_measure/#streampipes.model.resource.data_lake_measure.DataLakeMeasure.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of a data lake measure to be used when creating a pandas Dataframe.</p> <p>It excludes the following fields: <code>element_id</code>, <code>event_schema</code>, <code>schema_version</code>. Instead of the whole event schema the number of event properties contained is returned with the column name <code>num_event_properties</code>.</p> RETURNS DESCRIPTION <code>pandas_repr</code> <p>Pandas representation of the resource as a dictionary, which is then used by the respource container to create a data frame from a collection of resources.</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/data_series/","title":"Data series","text":""},{"location":"reference/model/resource/data_series/#streampipes.model.resource.data_series.DataSeries","title":"<code>DataSeries</code>","text":"<p>         Bases: <code>Resource</code></p> <p>Implementation of a resource for data series. This resource defines the data model used by its resource container(<code>model.container.DataLakeMeasures</code>). It inherits from Pydantic's BaseModel to get all its superpowers, which are used to parse, validate the API response and to easily switch between the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>"},{"location":"reference/model/resource/data_series/#streampipes.model.resource.data_series.DataSeries--notes","title":"Notes","text":"<pre><code>This class will only exist temporarily in it its current appearance since\nthere are some inconsistencies in the StreamPipes API.\n</code></pre>"},{"location":"reference/model/resource/data_series/#streampipes.model.resource.data_series.DataSeries.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of a data lake series to be used when creating a pandas Dataframe.</p> <p>It contains only the \"header rows\" (the column names) and \"rows\" that contain the actual data.</p> RETURNS DESCRIPTION <code>pandas_repr</code> <p>Dictionary with the keys <code>headers</code> and <code>rows</code></p> <p> TYPE: <code>dict[str, Any]</code> </p>"},{"location":"reference/model/resource/data_series/#streampipes.model.resource.data_series.DataSeries.from_json","title":"<code>from_json(json_string)</code>  <code>classmethod</code>","text":"<p>Creates an instance of <code>DataSeries</code> from a given JSON string.</p> <p>This method is used by the resource container to parse the JSON response of the StreamPipes API. Currently, it only supports data lake series that consist of exactly one series of data.</p> PARAMETER DESCRIPTION <code>json_string</code> <p>The JSON string the data lake series should be created on.</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>DataSeries</code> <p>Instance of <code>DataSeries</code> that is created based on the given JSON string.</p> RAISES DESCRIPTION <code>StreamPipesUnsupportedDataLakeSeries</code> <p>If the data lake series returned by the StreamPipes API cannot be parsed with the current version of the Python client.</p>"},{"location":"reference/model/resource/data_series/#streampipes.model.resource.data_series.DataSeries.to_pandas","title":"<code>to_pandas()</code>","text":"<p>Returns the data lake series in representation of a Pandas Dataframe.</p> RETURNS DESCRIPTION <code>pd</code> <p>The data lake series in form of a pandas dataframe</p> <p> TYPE: <code>pd.DataFrame</code> </p>"},{"location":"reference/model/resource/data_stream/","title":"Data stream","text":""},{"location":"reference/model/resource/data_stream/#streampipes.model.resource.data_stream.DataStream","title":"<code>DataStream(**kwargs)</code>","text":"<p>         Bases: <code>Resource</code></p> <p>Implementation of a resource for data streams.</p> <p>This resource defines the data model used by resource container (<code>model.container.DataStreams</code>). It inherits from Pydantic's BaseModel to get all its superpowers, which are used to parse, validate the API response and to easily switch between the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>"},{"location":"reference/model/resource/data_stream/#streampipes.model.resource.data_stream.DataStream.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of a data stream to be used when creating a pandas Dataframe.</p> RETURNS DESCRIPTION <code>pandas_repr</code> <p>Pandas representation of the resource as a dictionary, which is then used by the respource container to create a data frame from a collection of resources.</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/data_stream/#streampipes.model.resource.data_stream.DataStream.to_dict","title":"<code>to_dict(use_source_names=True)</code>","text":"<p>Returns the resource in dictionary representation.</p> PARAMETER DESCRIPTION <code>use_source_names</code> <p>Indicates if the dictionary keys are in python representation or equally named to the StreamPipes backend</p> <p> DEFAULT: <code>True</code> </p> RETURNS DESCRIPTION <code>resource</code> <p>The resource as dictionary representation</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/exceptions/","title":"Exceptions","text":""},{"location":"reference/model/resource/exceptions/#streampipes.model.resource.exceptions.StreamPipesUnsupportedDataSeries","title":"<code>StreamPipesUnsupportedDataSeries(reason=None)</code>","text":"<p>         Bases: <code>Exception</code></p> <p>Exception to be raised when the returned data lake series cannot be parsed with the current implementation of the resource.</p>"},{"location":"reference/model/resource/function_definition/","title":"Function definition","text":""},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition","title":"<code>FunctionDefinition</code>","text":"<p>         Bases: <code>Resource</code></p> <p>Configuration for a StreamPipes Function.</p> <p>This class maps to the <code>FunctionDefinition</code> class in the StreamPipes model. It contains all metadata that are required to register a function at the StreamPipes backend.</p> PARAMETER DESCRIPTION <code>consumed_streams</code> <p>List of data streams the function is consuming from</p> <p> </p> <code>function_id</code> <p>identifier object of a StreamPipes function</p> <p> </p> ATTRIBUTE DESCRIPTION <code>output_data_streams</code> <p>Map off all output data streams added to the function definition</p> <p> TYPE: <code>Dict[str, DataStream]</code> </p>"},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition.add_output_data_stream","title":"<code>add_output_data_stream(data_stream)</code>","text":"<p>Adds an output data stream to the function which makes it possible to write data back to StreamPipes.</p> PARAMETER DESCRIPTION <code>data_stream</code> <p>The schema of the output data stream.</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>self</code> <p>Instance of the function definition that is extended by the provided <code>DataStream</code></p> <p> TYPE: <code>FunctionDefinition</code> </p>"},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of a function definition to be used when creating a pandas Dataframe.</p> RETURNS DESCRIPTION <code>pandas_repr</code> <p>Pandas representation of the resource as a dictionary, which is then used by the respource container to create a data frame from a collection of resources.</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition.get_output_data_streams","title":"<code>get_output_data_streams()</code>","text":"<p>Get the output data streams of the function.</p> RETURNS DESCRIPTION <code>output_streams</code> <p>Dictionary with every known stream id and the related output stream.</p> <p> TYPE: <code>Dict[str, DataStream]</code> </p>"},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition.get_output_stream_ids","title":"<code>get_output_stream_ids()</code>","text":"<p>Get the stream ids of the output data streams.</p> RETURNS DESCRIPTION <code>output_stream_ids</code> <p>List of all stream ids</p> <p> TYPE: <code>List[str]</code> </p>"},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionId","title":"<code>FunctionId</code>","text":"<p>         Bases: <code>BasicModel</code></p> <p>Identification object for a StreamPipes function.</p> <p>Maps to the <code>FunctionId</code> class defined in the StreamPipes model.</p> PARAMETER DESCRIPTION <code>id</code> <p>unique identifier of the function instance</p> <p> </p> <code>version</code> <p>version of the corresponding function</p> <p> </p>"},{"location":"reference/model/resource/query_result/","title":"Query result","text":""},{"location":"reference/model/resource/query_result/#streampipes.model.resource.query_result.QueryResult","title":"<code>QueryResult</code>","text":"<p>         Bases: <code>Resource</code></p> <p>Implementation of a resource for query result. This resource defines the data model used by its resource container(<code>model.container.DataLakeMeasures</code>). It inherits from Pydantic's BaseModel to get all its superpowers, which are used to parse, validate the API response and to easily switch between the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>"},{"location":"reference/model/resource/query_result/#streampipes.model.resource.query_result.QueryResult.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of a data lake series to be used when creating a pandas Dataframe.</p> <p>It contains only the \"header rows\" (the column names) and \"rows\" that contain the actual data.</p> RETURNS DESCRIPTION <code>dict</code> <p>Dictionary with the keys <code>headers</code> and <code>rows</code></p> RAISES DESCRIPTION <code>StreamPipesUnsupportedDataLakeSeries</code> <p>If the query result returned by the StreamPipes API cannot be converted to the pandas representation</p>"},{"location":"reference/model/resource/query_result/#streampipes.model.resource.query_result.QueryResult.to_pandas","title":"<code>to_pandas()</code>","text":"<p>Returns the data lake series in representation of a Pandas Dataframe.</p> RETURNS DESCRIPTION <code>df</code> <p>Pandas df containing the query result</p> <p> TYPE: <code>pd.DataFrame</code> </p>"},{"location":"reference/model/resource/resource/","title":"Resource","text":"<p>General and abstract implementation for a resource.</p> <p>A resource defines the data model that is used by a resource container (<code>model.container.resourceContainer</code>).</p>"},{"location":"reference/model/resource/resource/#streampipes.model.resource.resource.Resource","title":"<code>Resource</code>","text":"<p>         Bases: <code>ABC</code>, <code>BasicModel</code></p> <p>General and abstract implementation for a resource.</p> <p>A resource defines the data model used by a resource container (<code>model.container.resourceContainer</code>). It inherits from Pydantic's BaseModel to get all its superpowers, which are used to parse, validate the API response and to easily switch between the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>"},{"location":"reference/model/resource/resource/#streampipes.model.resource.resource.Resource.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>  <code>abstractmethod</code>","text":"<p>Returns a dictionary representation to be used when creating a pandas Dataframe.</p> RETURNS DESCRIPTION <code>pandas_repr</code> <p>Pandas representation of the resource as a dictionary, which is then used by the respource container to create a data frame from a collection of resources.</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/resource/#streampipes.model.resource.resource.Resource.to_dict","title":"<code>to_dict(use_source_names=True)</code>","text":"<p>Returns the resource in dictionary representation.</p> PARAMETER DESCRIPTION <code>use_source_names</code> <p>Indicates if the dictionary keys are in python representation or equally named to the StreamPipes backend</p> <p> DEFAULT: <code>True</code> </p> RETURNS DESCRIPTION <code>resource</code> <p>The resource as dictionary representation</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/version/","title":"Version","text":""},{"location":"reference/model/resource/version/#streampipes.model.resource.version.Version","title":"<code>Version</code>","text":"<p>         Bases: <code>Resource</code></p> <p>Metadata about the version of the connected StreamPipes server.</p> ATTRIBUTE DESCRIPTION <code>backend_version</code> <p>version of the StreamPipes backend the client is connected to</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/model/resource/version/#streampipes.model.resource.version.Version.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of the version metadata to be used when creating a pandas Dataframe.</p>"},{"location":"scripts/gen_ref_pages/","title":"Gen ref pages","text":"<p>Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.  You may obtain a copy of the License at</p> <p>http://www.apache.org/licenses/LICENSE-2.0</p> <p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p> In\u00a0[\u00a0]: Copied! <pre>from pathlib import Path\n</pre> from pathlib import Path In\u00a0[\u00a0]: Copied! <pre>import mkdocs_gen_files\n</pre> import mkdocs_gen_files In\u00a0[\u00a0]: Copied! <pre>nav = mkdocs_gen_files.Nav()\n</pre> nav = mkdocs_gen_files.Nav() In\u00a0[\u00a0]: Copied! <pre>for path in sorted(Path(\"streampipes\").rglob(\"*.py\")):\n    module_path = path.relative_to(\"streampipes\").with_suffix(\"\")\n    doc_path = path.relative_to(\"streampipes\").with_suffix(\".md\")\n    full_doc_path = Path(\"reference\", doc_path)\n\n    parts = list(module_path.parts)\n\n    if parts[-1] == \"__init__\":\n        # parts = parts[:-1]\n        continue\n    elif parts[-1] == \"__version__\":\n        continue\n    elif parts[-1] == \"__main__\":\n        continue\n    elif parts[-1] == \" \":\n        continue\n\n    nav[parts] = doc_path.as_posix()\n\n    with mkdocs_gen_files.open(full_doc_path, \"w+\") as fd:\n        identifier = \".\".join(parts)\n        print(f\"::: streampipes.{identifier}\", file=fd)\n\n    mkdocs_gen_files.set_edit_path(full_doc_path, path)\n</pre> for path in sorted(Path(\"streampipes\").rglob(\"*.py\")):     module_path = path.relative_to(\"streampipes\").with_suffix(\"\")     doc_path = path.relative_to(\"streampipes\").with_suffix(\".md\")     full_doc_path = Path(\"reference\", doc_path)      parts = list(module_path.parts)      if parts[-1] == \"__init__\":         # parts = parts[:-1]         continue     elif parts[-1] == \"__version__\":         continue     elif parts[-1] == \"__main__\":         continue     elif parts[-1] == \" \":         continue      nav[parts] = doc_path.as_posix()      with mkdocs_gen_files.open(full_doc_path, \"w+\") as fd:         identifier = \".\".join(parts)         print(f\"::: streampipes.{identifier}\", file=fd)      mkdocs_gen_files.set_edit_path(full_doc_path, path) <p>with mkdocs_gen_files.open(\"reference/SUMMARY.md\", \"w+\") as nav_file: nav_file.writelines(nav.build_literate_nav())</p>"},{"location":"tutorials/1-introduction-to-streampipes-python-client/","title":"Introduction to StreamPipes Python","text":"In\u00a0[\u00a0]: Copied! <pre>%pip install streampipes\n</pre> %pip install streampipes  <p>If you want to have the current development state you can also execute:</p> In\u00a0[\u00a0]: Copied! <pre>%pip install git+https://github.com/apache/streampipes.git#subdirectory=streampipes-client-python\n</pre>  %pip install git+https://github.com/apache/streampipes.git#subdirectory=streampipes-client-python <p>The corresponding documentation can be found here. </p> In\u00a0[\u00a0]: Copied! <pre>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</pre> from streampipes.client import StreamPipesClient from streampipes.client.config import StreamPipesClientConfig from streampipes.client.credential_provider import StreamPipesApiKeyCredentials In\u00a0[\u00a0]: Copied! <pre>config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(\n        username=\"test@streampipes.apache.org\",\n        api_key=\"API-KEY\",\n    ),\n    host_address=\"localhost\",\n    https_disabled=True,\n    port=80\n)\n</pre> config = StreamPipesClientConfig(     credential_provider=StreamPipesApiKeyCredentials(         username=\"test@streampipes.apache.org\",         api_key=\"API-KEY\",     ),     host_address=\"localhost\",     https_disabled=True,     port=80 ) <p>Please be aware that connecting to StreamPipes via a <code>https</code> connection is currently not supported by the Python client.</p> <p>Providing secrets like the <code>api_key</code> as plaintext in the source code is an anti-pattern. This is why the StreamPipes client also supports passing the required secrets as environment variables. To do so, you must initialize the credential provider like the following:</p> In\u00a0[\u00a0]: Copied! <pre>StreamPipesApiKeyCredentials()\n</pre> StreamPipesApiKeyCredentials() <p>To ensure that the above code works, you must set the environment variables as expected. This can be done like following:</p> In\u00a0[\u00a0]: Copied! <pre>%export SP_USERNAME=\"&lt;USERNAME&gt;\"\n%export SP_API_KEY=\"&lt;API-KEY&gt;\"\n</pre> %export SP_USERNAME=\"\" %export SP_API_KEY=\"\" <p>Having the <code>config</code> ready, we can now initialize the actual client.</p> In\u00a0[\u00a0]: Copied! <pre>client = StreamPipesClient(client_config=config)\n</pre> client = StreamPipesClient(client_config=config) <p>That's already it. You can check if everything works out by using the following command:</p> In\u00a0[6]: Copied! <pre>client.describe()\n</pre> client.describe() <pre>2023-02-24 17:05:49,398 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n2023-02-24 17:05:49,457 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n\nHi there!\nYou are connected to a StreamPipes instance running at http://localhost:80.\nThe following StreamPipes resources are available with this client:\n1x DataLakeMeasures\n1x DataStreams\n</pre> <p>This prints you a short textual description of the connected StreamPipes instance to the console.</p> <p>The created <code>client</code> instance serves as the central point of interaction with StreamPipes. You can invoke a variety of commands directly on this object.</p> <p>Are you curious now how you actually can get data out of StreamPipes and make use of it with Python? Then check out the next tutorial on extracting Data from the StreamPipes data lake.</p> <p>Thanks for reading this introductory tutorial. We hope you like it and would love to receive some feedback from you. Just go to our GitHub discussion page and let us know your impression. We'll read and react to them all, we promise!</p>"},{"location":"tutorials/1-introduction-to-streampipes-python-client/#Introduction-to-StreamPipes-Python","title":"Introduction to StreamPipes Python\u00b6","text":""},{"location":"tutorials/1-introduction-to-streampipes-python-client/#Why-there-is-an-extra-Python-library-for-StreamPipes?","title":"Why there is an extra Python library for StreamPipes?\u00b6","text":"<p>Apache StreamPipes aims to enable non-technical users to connect and analyze IoT data streams. To this end, it provides an easy-to-use and convenient user interface that allows one to connect to an IoT data source and create some visual graphs within a few minutes.  Although this is the main use case of Apache StreamPipes, it can also provide great value for people who are eager to work on data analysis or data science with IoT data, but don't we do get in touch with all the hassle associated with extracting data from devices in a suitable format. In this scenario, StreamPipes helps you connect to your data source and extract the data for you. You then can make the data available outside StreamPipes by writing it into an external source, such as a database, Kafka, etc. While this requires another component, you can also extract your data directly from StreamPipes programmatically using the StreamPipes API. For convenience, we also provide you with a StreamPipes client both available for Java and Python. Specifically with StreamPipes Python, we want to address the amazing data analytics and data science community in Python and benefit from the great universe of Python libraries out there.</p>"},{"location":"tutorials/1-introduction-to-streampipes-python-client/#How-to-install-StreamPipes-Python?","title":"How to install StreamPipes Python?\u00b6","text":"<p>Simply use the following <code>pip</code> command:</p>"},{"location":"tutorials/1-introduction-to-streampipes-python-client/#How-to-prepare-the-tutorials","title":"How to prepare the tutorials\u00b6","text":"<p>In case you want to reproduce the first two tutorials exactly on your end, you need to create a simple pipeline in StreamPipes like demonstrated below.</p> <p></p>"},{"location":"tutorials/1-introduction-to-streampipes-python-client/#How-to-configure-the-Python-client","title":"How to configure the Python client\u00b6","text":"<p>In order to access the resources available in StreamPipes, one must be able to authenticate against the backend. For this purpose, the client sofar only supports the authentication via an API token that can be generated via the StreamPipes UI, as you see below.</p> <p></p> <p>Having generated the API token, one can directly start initializing a client instance as follows:</p>"},{"location":"tutorials/2-extracting-data-from-the-streampipes-data-lake/","title":"Extracting Data from the StreamPipes data lake","text":"In\u00a0[1]: Copied! <pre>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</pre> from streampipes.client import StreamPipesClient from streampipes.client.config import StreamPipesClientConfig from streampipes.client.credential_provider import StreamPipesApiKeyCredentials In\u00a0[\u00a0]: Copied! <pre># if you want all necessary dependencies required for this tutorial to be installed,\n# you can simply execute the following command\n%pip install matplotlib streampipes\n</pre> # if you want all necessary dependencies required for this tutorial to be installed, # you can simply execute the following command %pip install matplotlib streampipes In\u00a0[2]: Copied! <pre>import os\nos.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\"\nos.environ[\"SP_API_KEY\"] = \"XXX\"\n</pre> import os os.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\" os.environ[\"SP_API_KEY\"] = \"XXX\"  In\u00a0[3]: Copied! <pre>config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(),\n    host_address=\"localhost\",\n    https_disabled=True,\n    port=80\n)\n</pre> config = StreamPipesClientConfig(     credential_provider=StreamPipesApiKeyCredentials(),     host_address=\"localhost\",     https_disabled=True,     port=80 ) In\u00a0[4]: Copied! <pre>client = StreamPipesClient(client_config=config)\n</pre> client = StreamPipesClient(client_config=config) <pre>2023-02-24 17:34:25,860 - streampipes.client.client - [INFO] - [client.py:128] [_set_up_logging] - Logging successfully initialized with logging level INFO.\n</pre> <p>As a first step, we want to get an overview about all data available in the data lake. The data is stored as so-called <code>measures</code>, which refer to a data stream stored in the data lake. For his purpose we use the <code>all()</code> method of the <code>dataLakeMeasure</code> endpoint.</p> In\u00a0[5]: Copied! <pre>data_lake_measures = client.dataLakeMeasureApi.all()\n</pre> data_lake_measures = client.dataLakeMeasureApi.all() <pre>2023-02-24 17:34:25,929 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n</pre> <p>So let's see how many measures are available</p> In\u00a0[6]: Copied! <pre>len(data_lake_measures)\n</pre> len(data_lake_measures) Out[6]: <pre>2</pre> <p>All resources of the StreamPipes Python client support the standard Python expressions. If not, please let us know.</p> In\u00a0[7]: Copied! <pre>data_lake_measures[-1]\n</pre> data_lake_measures[-1] Out[7]: <pre>DataLakeMeasure(element_id='3cb6b5e6f107452483d1fd2ccf4bf9f9', measure_name='test', timestamp_field='s0::timestamp', event_schema=EventSchema(event_properties=[EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:EiFnkL', label='Density', description='Denotes the current density of the fluid', runtime_name='density', required=False, domain_properties=['http://schema.org/Number'], property_scope='MEASUREMENT_PROPERTY', index=5, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#float', measurement_unit=None, value_specification=None), EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:ghSkQI', label='Mass Flow', description='Denotes the current mass flow in the sensor', runtime_name='mass_flow', required=False, domain_properties=['http://schema.org/Number'], property_scope='MEASUREMENT_PROPERTY', index=2, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#float', measurement_unit=None, value_specification=None), EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:cQAUry', label='Sensor ID', description='The ID of the sensor', runtime_name='sensorId', required=False, domain_properties=['https://streampipes.org/vocabulary/examples/watertank/v1/hasSensorId'], property_scope='DIMENSION_PROPERTY', index=1, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#string', measurement_unit=None, value_specification=None), EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:pbPMyL', label='Sensor Fault Flags', description='Any fault flags of the sensors', runtime_name='sensor_fault_flags', required=False, domain_properties=['http://schema.org/Boolean'], property_scope='MEASUREMENT_PROPERTY', index=6, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#boolean', measurement_unit=None, value_specification=None), EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:Qmayhw', label='Temperature', description='Denotes the current temperature in degrees celsius', runtime_name='temperature', required=False, domain_properties=['http://schema.org/Number'], property_scope='MEASUREMENT_PROPERTY', index=4, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#float', measurement_unit='http://qudt.org/vocab/unit#DegreeCelsius', value_specification=ValueSpecification(class_name='org.apache.streampipes.model.schema.QuantitativeValue', element_id=None, min_value=0, max_value=100, step=0.1)), EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:YQYhjd', label='Volume Flow', description='Denotes the current volume flow', runtime_name='volume_flow', required=False, domain_properties=['http://schema.org/Number'], property_scope='MEASUREMENT_PROPERTY', index=3, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#float', measurement_unit=None, value_specification=None)]), pipeline_id=None, pipeline_name=None, pipeline_is_running=False, schema_version='1.1')</pre> <p>To get a more comprehensive overview, you can take a look at the <code>pandas</code> representation</p> In\u00a0[8]: Copied! <pre>display(data_lake_measures.to_pandas())\n</pre> display(data_lake_measures.to_pandas()) measure_name timestamp_field pipeline_id pipeline_name pipeline_is_running num_event_properties 0 flow-rate s0::timestamp None None False 6 1 test s0::timestamp None None False 6 <p>So far, we have only retrieved metadata about the available data lake measure. In the following, we will access the actual data of the measure <code>flow-rate</code>.</p> <p>For this purpose, we will use the <code>get()</code> method of the <code>dataLakeMeasure</code> endpoint.</p> In\u00a0[9]: Copied! <pre>flow_rate_measure = client.dataLakeMeasureApi.get(identifier=\"flow-rate\")\n</pre> flow_rate_measure = client.dataLakeMeasureApi.get(identifier=\"flow-rate\") <pre>2023-02-24 17:34:26,020 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n</pre> <p>For further processing, the easiest way is to turn the data measure into a <code>pandas DataFrame</code>.</p> In\u00a0[10]: Copied! <pre>flow_rate_pd = flow_rate_measure.to_pandas()\n</pre> flow_rate_pd = flow_rate_measure.to_pandas() <p>Let's see how many data points we got...</p> In\u00a0[11]: Copied! <pre>len(flow_rate_pd)\n</pre> len(flow_rate_pd) Out[11]: <pre>1000</pre> <p>... and get a first overview</p> In\u00a0[12]: Copied! <pre>flow_rate_pd.describe()\n</pre> flow_rate_pd.describe() Out[12]: density mass_flow temperature volume_flow count 1000.000000 1000.000000 1000.000000 1000.000000 mean 45.560337 5.457014 45.480231 5.659558 std 3.201544 3.184959 3.132878 3.122437 min 40.007698 0.004867 40.000992 0.039422 25% 42.819497 2.654101 42.754623 3.021625 50% 45.679264 5.382355 45.435944 5.572553 75% 48.206881 8.183144 48.248473 8.338209 max 50.998310 10.986015 50.964909 10.998676 <p>As a final step, we want to create a plot of both attributes</p> In\u00a0[13]: Copied! <pre>import matplotlib.pyplot as plt\nflow_rate_pd.plot(y=[\"mass_flow\", \"temperature\"])\nplt.show()\n</pre> import matplotlib.pyplot as plt flow_rate_pd.plot(y=[\"mass_flow\", \"temperature\"]) plt.show() <p>For data lake measurements, the <code>get()</code> method is even more powerful than simply returning all the data for a given data lake measurement. We will look at a selection of these below. The full list of supported parameters can be found in the docs.  Let's start by referring to the graph we created above, where we use only two columns of our data lake measurement. If we already know this, we can directly restrict the queried data to a subset of columns by using the <code>columns</code> parameter.  <code>columns</code> takes a list of column names as a comma-separated string:</p> In\u00a0[14]: Copied! <pre>flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", columns=\"mass_flow,temperature\").to_pandas()\nflow_rate_pd\n</pre> flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", columns=\"mass_flow,temperature\").to_pandas() flow_rate_pd <pre>2023-02-24 17:34:26,492 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n</pre> Out[14]: timestamp mass_flow temperature 0 2023-02-24T16:19:41.472Z 3.309556 44.448483 1 2023-02-24T16:19:41.482Z 5.608580 40.322033 2 2023-02-24T16:19:41.493Z 7.692881 49.239639 3 2023-02-24T16:19:41.503Z 3.632898 49.933754 4 2023-02-24T16:19:41.513Z 0.711260 50.106617 ... ... ... ... 995 2023-02-24T16:19:52.927Z 1.740114 46.558231 996 2023-02-24T16:19:52.94Z 7.211723 48.048622 997 2023-02-24T16:19:52.952Z 7.770180 48.188026 998 2023-02-24T16:19:52.965Z 4.458602 48.280899 999 2023-02-24T16:19:52.977Z 2.592060 47.505951 <p>1000 rows \u00d7 3 columns</p> <p>By default, the client returns only the first one thousand records of a Data Lake measurement. This can be changed by passing a concrete value for the <code>limit</code> parameter:</p> In\u00a0[15]: Copied! <pre>flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", limit=10000).to_pandas()\nlen(flow_rate_pd)\n</pre> flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", limit=10000).to_pandas() len(flow_rate_pd) <pre>2023-02-24 17:34:26,736 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n</pre> Out[15]: <pre>9528</pre> <p>If you want your data to be selected by time of occurrence rather than quantity, you can specify your time window by passing the <code>start_date</code> and <code>end_date</code> parameters:</p> In\u00a0[16]: Copied! <pre>from datetime import datetime\nflow_rate_pd = client.dataLakeMeasureApi.get(\n    identifier=\"flow-rate\",\n    start_date=datetime(year=2023, month=2, day=24, hour=17, minute=21, second=0),\n    end_date=datetime(year=2023, month=2, day=24, hour=17, minute=21, second=1),\n    ).to_pandas()\nflow_rate_pd.plot(y=[\"mass_flow\", \"temperature\"])\nplt.show()\n</pre> from datetime import datetime flow_rate_pd = client.dataLakeMeasureApi.get(     identifier=\"flow-rate\",     start_date=datetime(year=2023, month=2, day=24, hour=17, minute=21, second=0),     end_date=datetime(year=2023, month=2, day=24, hour=17, minute=21, second=1),     ).to_pandas() flow_rate_pd.plot(y=[\"mass_flow\", \"temperature\"]) plt.show() <pre>2023-02-24 17:34:26,899 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n</pre> <p>... from this point on we leave all future processing of the data up to your creativity. Keep in mind: the general syntax used in this tutorial (<code>all()</code>, <code>to_pandas()</code>, <code>get()</code>) applies to all endpoints and associated resources of the StreamPipes Python client.</p> <p>If you get further and create exiting stuff with data extracted from StreamPipes please let us know. We are thrilled to see what you as a community will build with the provided client. Furthermore, don't hesitate to discuss feature requests to extend the current functionality with us.</p> <p>For now, that's all about the StreamPipes client. Read the next tutorial (Getting live data from the StreamPipes data stream) if you are interested in making use of the powerful StreamPipes functions to interact with StreamPipes event-based.</p> <p>How do you like this tutorial? We hope you like it and would love to receive some feedback from you. Just go to our GitHub discussion page and let us know your impression. We'll read and react to them all, we promise!</p>"},{"location":"tutorials/2-extracting-data-from-the-streampipes-data-lake/#Extracting-Data-from-the-StreamPipes-data-lake","title":"Extracting Data from the StreamPipes data lake\u00b6","text":"<p>In the first tutorial (Introduction to the StreamPipes Python client) we took the first steps with the StreamPipes Python client and learned how to set everything up. Now we are ready to get started and want to retrieve some data out of StreamPipes. In this tutorial, we'll focus on the StreamPipes Data Lake, the component where StreamPipes stores data internally. To get started, we'll use the <code>client</code> instance created in the first tutorial.</p>"},{"location":"tutorials/3-getting-live-data-from-the-streampipes-data-stream/","title":"Getting live data from the StreamPipes data stream","text":"<p>Note As of now we mainly developed the support for StreamPipes functions using NATS as messaging protocol. Consequently, this setup is tested most and should work flawlessly. Visit our first-steps page to see how to start StreamPipes accordingly. Anyhow, you can also use the other brokers that are currently supported in StreamPipes Python. In case you observe any problems, please reach out to us and file us an issue on GitHub.</p> In\u00a0[1]: Copied! <pre>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</pre> from streampipes.client import StreamPipesClient from streampipes.client.config import StreamPipesClientConfig from streampipes.client.credential_provider import StreamPipesApiKeyCredentials In\u00a0[\u00a0]: Copied! <pre># You can install all required libraries for this tutorial with the following command\n%pip install matplotlib ipython streampipes\n</pre> # You can install all required libraries for this tutorial with the following command %pip install matplotlib ipython streampipes In\u00a0[2]: Copied! <pre>import os\n\nos.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\"\nos.environ[\"SP_API_KEY\"] = \"XXX\"\n\n# Use this if you work locally:\nos.environ[\"BROKER-HOST\"] = \"localhost\"  \nos.environ[\"KAFKA-PORT\"] = \"9094\" # When using Kafka as message broker\n</pre> import os  os.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\" os.environ[\"SP_API_KEY\"] = \"XXX\"  # Use this if you work locally: os.environ[\"BROKER-HOST\"] = \"localhost\"   os.environ[\"KAFKA-PORT\"] = \"9094\" # When using Kafka as message broker In\u00a0[3]: Copied! <pre>client_config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(),\n    host_address=\"localhost\",\n    port=80,\n    https_disabled=True,\n)\nclient = StreamPipesClient(client_config=client_config)\n</pre> client_config = StreamPipesClientConfig(     credential_provider=StreamPipesApiKeyCredentials(),     host_address=\"localhost\",     port=80,     https_disabled=True, ) client = StreamPipesClient(client_config=client_config) <pre>2022-12-14 10:43:37,664 - streampipes.client.client - [INFO] - [client.py:127] [_set_up_logging] - Logging successfully initialized with logging level INFO.\n</pre> <p>Now we can have a look at the available data streams. We can choose one or more stream to receive the data from and copy their <code>element_id</code>.</p> In\u00a0[4]: Copied! <pre>client.dataStreamApi.all().to_pandas()\n</pre> client.dataStreamApi.all().to_pandas() <pre>2022-12-14 10:43:39,944 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:153] [_make_request] - Successfully retrieved all resources.\n</pre> Out[4]: element_id name description icon_url app_id includes_assets includes_locales internally_managed measurement_object index ... uri dom num_transport_protocols num_measurement_capability num_application_links num_included_assets num_connected_to num_category num_event_properties num_included_locales 0 urn:streampipes.apache.org:eventstream:HHoidJ Test2 None None False False True None 0 ... urn:streampipes.apache.org:eventstream:HHoidJ None 1 0 0 0 0 0 7 0 1 urn:streampipes.apache.org:eventstream:uPDKLI Test None None False False True None 0 ... urn:streampipes.apache.org:eventstream:uPDKLI None 1 0 0 0 0 0 7 0 <p>2 rows \u00d7 21 columns</p> <p>Next we can create a StreamPipesFunction. For this we need to implement the 4 following methods:</p> <ul> <li>In <code>requiredStreamIds</code> you need to insert the <code>element_id</code> of the required streams.</li> <li><code>onServiceStarted</code> is called when the function gets started. There you can use the given meta information of the <code>FunctionContext</code> to initialize the function.</li> <li><code>onEvent</code> is called when ever a new event arrives. The <code>event</code> contains the live data and you can use the <code>streamId</code> to identify a stream if the function is connected to multiple data streams.</li> <li><code>onServiceStopped</code> is called when the function gets stopped.</li> </ul> <p>For this tutorial we just create a function that saves every new event in a <code>pandas DataFrame</code> and plots the first column of the <code>DataFrame</code> when the function gets stopped.</p> In\u00a0[5]: Copied! <pre>from typing import List, Dict, Any\nimport pandas as pd\nfrom datetime import datetime\nimport matplotlib.pyplot as plt\nfrom streampipes.functions.function_handler import FunctionHandler\nfrom streampipes.functions.registration import Registration\nfrom streampipes.functions.streampipes_function import StreamPipesFunction\nfrom streampipes.functions.utils.function_context import FunctionContext\n\n\nclass ExampleFunction(StreamPipesFunction):\n    def __init__(self) -&gt; None:\n        super().__init__()\n        # Create the Dataframe to save the live data\n        self.df = pd.DataFrame()\n\n    def requiredStreamIds(self) -&gt; List[str]:\n        return [\"urn:streampipes.apache.org:eventstream:uPDKLI\"]\n\n    def onServiceStarted(self, context: FunctionContext):\n        # Get the name of the timestamp field\n        for event_property in context.schema[context.streams[0]].event_schema.event_properties:\n            if event_property.property_scope == \"HEADER_PROPERTY\":\n                self.timestamp = event_property.runtime_name\n\n    def onEvent(self, event: Dict[str, Any], streamId: str):\n        # Convert the unix timestamp to datetime\n        event[self.timestamp] = datetime.fromtimestamp(event[self.timestamp] / 1000)\n        # Add every value of the event to the DataFrame\n        self.df = pd.concat(\n            [self.df, pd.DataFrame({key: [event[key]] for key in event.keys()}).set_index(self.timestamp)]\n        )\n\n    def onServiceStopped(self):\n        # Plot the first column of the Dataframe\n        plt.figure(figsize=(10, 5))\n        plt.xlabel(self.timestamp)\n        plt.ylabel(self.df.columns[0])\n        plt.plot(self.df.iloc[:, 0])\n        plt.show()\n</pre> from typing import List, Dict, Any import pandas as pd from datetime import datetime import matplotlib.pyplot as plt from streampipes.functions.function_handler import FunctionHandler from streampipes.functions.registration import Registration from streampipes.functions.streampipes_function import StreamPipesFunction from streampipes.functions.utils.function_context import FunctionContext   class ExampleFunction(StreamPipesFunction):     def __init__(self) -&gt; None:         super().__init__()         # Create the Dataframe to save the live data         self.df = pd.DataFrame()      def requiredStreamIds(self) -&gt; List[str]:         return [\"urn:streampipes.apache.org:eventstream:uPDKLI\"]      def onServiceStarted(self, context: FunctionContext):         # Get the name of the timestamp field         for event_property in context.schema[context.streams[0]].event_schema.event_properties:             if event_property.property_scope == \"HEADER_PROPERTY\":                 self.timestamp = event_property.runtime_name      def onEvent(self, event: Dict[str, Any], streamId: str):         # Convert the unix timestamp to datetime         event[self.timestamp] = datetime.fromtimestamp(event[self.timestamp] / 1000)         # Add every value of the event to the DataFrame         self.df = pd.concat(             [self.df, pd.DataFrame({key: [event[key]] for key in event.keys()}).set_index(self.timestamp)]         )      def onServiceStopped(self):         # Plot the first column of the Dataframe         plt.figure(figsize=(10, 5))         plt.xlabel(self.timestamp)         plt.ylabel(self.df.columns[0])         plt.plot(self.df.iloc[:, 0])         plt.show() <p>Now we can start the function. We have to register an instance of the <code>StreamPipesFunction</code> and them we can start the functions by initializing the <code>FunctionHandler</code>. (it's also possible to register multiple functions with <code>.register(...).register(...)</code>)</p> In\u00a0[6]: Copied! <pre>example_function = ExampleFunction()\n\nregistration = Registration()\nregistration.register(example_function)\n\nfunction_handler = FunctionHandler(registration, client)\nfunction_handler.initializeFunctions()\n</pre> example_function = ExampleFunction()  registration = Registration() registration.register(example_function)  function_handler = FunctionHandler(registration, client) function_handler.initializeFunctions() <pre>2022-12-14 10:43:42,810 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:153] [_make_request] - Successfully retrieved all resources.\n2022-12-14 10:43:42,812 - streampipes.functions.function_handler - [INFO] - [function_handler.py:82] [initializeFunctions] - Using NatsBroker for &lt;__main__.ExampleFunction object at 0x000001F2EF298D90&gt;\n</pre> <p>The <code>DataFrame</code> of the <code>ExampleFunction</code> gets updated whenever a new event arrives. Let's test this by executing the cell below.</p> In\u00a0[7]: Copied! <pre>import asyncio\nfrom asyncio.exceptions import CancelledError\nfrom IPython.display import clear_output\n\nwhile True:\n    clear_output(wait=True)\n    display(example_function.df)\n    try:\n        await asyncio.sleep(1)\n    except CancelledError:\n        break\n</pre> import asyncio from asyncio.exceptions import CancelledError from IPython.display import clear_output  while True:     clear_output(wait=True)     display(example_function.df)     try:         await asyncio.sleep(1)     except CancelledError:         break mass_flow density volume_flow sensor_fault_flags temperature sensorId timestamp 2022-12-14 10:43:43.357 10.955496 47.546290 1.001985 False 44.993413 flowrate02 2022-12-14 10:43:44.371 6.499040 44.392069 2.034402 False 41.232352 flowrate02 2022-12-14 10:43:45.382 10.168300 41.192146 9.724287 False 46.812779 flowrate02 2022-12-14 10:43:46.395 10.849059 50.086308 5.832691 False 45.860412 flowrate02 2022-12-14 10:43:47.410 3.081855 47.254246 8.860531 False 50.505801 flowrate02 ... ... ... ... ... ... ... 2022-12-14 10:44:43.920 1.803572 41.978894 10.294002 False 47.820239 flowrate02 2022-12-14 10:44:44.932 1.967062 42.212883 3.237440 False 49.047258 flowrate02 2022-12-14 10:44:45.934 4.457819 47.561256 0.315024 False 40.223413 flowrate02 2022-12-14 10:44:46.949 8.745343 46.346891 7.439090 False 41.982529 flowrate02 2022-12-14 10:44:47.950 5.828744 47.679720 6.307405 False 42.100354 flowrate02 <p>65 rows \u00d7 6 columns</p> <p>The <code>while</code> loop just displays the the <code>DataFrame</code> every second until the cell is stopped. We could achieve the same result manually by executing <code>example_function.df</code> repeatedly.</p> <p>You can stop the functions whenever you want by executing the command below.</p> In\u00a0[\u00a0]: Copied! <pre>function_handler.disconnect()\n</pre> function_handler.disconnect() <pre>2022-12-14 10:44:53,309 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:67] [disconnect] - Stopped connection to stream: urn:streampipes.apache.org:eventstream:uPDKLI\n</pre> <p>That's enough for this tutorial. Now you can try to write your own <code>StreamPipesFunction</code>. All you need to do is creating a new class, implementing the 4 required methods and registering the function.</p> <p>Want to see more exciting use cases you can achieve with StreamPipes functions in Python? Then don't hesitate and jump to our next tutorial on applying online machine learning algorithms to StreamPipes data streams with River.</p> <p>How do you like this tutorial? We hope you like it and would love to receive some feedback from you. Just go to our GitHub discussion page and let us know your impression. We'll read and react to them all, we promise!</p>"},{"location":"tutorials/3-getting-live-data-from-the-streampipes-data-stream/#Getting-live-data-from-the-StreamPipes-data-stream","title":"Getting live data from the StreamPipes data stream\u00b6","text":"<p>In the last tutorial (Extracting Data from the StreamPipes data lake) we learned how to extract the stored data from a StreamPipes data lake. This tutorial is about the StreamPipes data stream and shows how to get the live data from StreamPipes into Python. Therefore, we first create the <code>client</code> instance as before.</p>"},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/","title":"Using Online Machine Learning on a StreamPipes data stream","text":"In\u00a0[1]: Copied! <pre>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</pre> from streampipes.client import StreamPipesClient from streampipes.client.config import StreamPipesClientConfig from streampipes.client.credential_provider import StreamPipesApiKeyCredentials In\u00a0[\u00a0]: Copied! <pre># you can install all required dependecies for this tutorial by executing the following command\n%pip install river streampipes\n</pre> # you can install all required dependecies for this tutorial by executing the following command %pip install river streampipes In\u00a0[2]: Copied! <pre>import os\n\nos.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\"\nos.environ[\"SP_API_KEY\"] = \"XXX\"\n\n# Use this if you work locally:\nos.environ[\"BROKER-HOST\"] = \"localhost\"  \nos.environ[\"KAFKA-PORT\"] = \"9094\" # When using Kafka as message broker\n</pre> import os  os.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\" os.environ[\"SP_API_KEY\"] = \"XXX\"  # Use this if you work locally: os.environ[\"BROKER-HOST\"] = \"localhost\"   os.environ[\"KAFKA-PORT\"] = \"9094\" # When using Kafka as message broker In\u00a0[3]: Copied! <pre>client_config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(),\n    host_address=\"localhost\",\n    port=80,\n    https_disabled=True,\n)\nclient = StreamPipesClient(client_config=client_config)\n</pre> client_config = StreamPipesClientConfig(     credential_provider=StreamPipesApiKeyCredentials(),     host_address=\"localhost\",     port=80,     https_disabled=True, ) client = StreamPipesClient(client_config=client_config) <pre>2023-01-27 16:04:24,784 - streampipes.client.client - [INFO] - [client.py:128] [_set_up_logging] - Logging successfully initialized with logging level INFO.\n</pre> In\u00a0[4]: Copied! <pre>client.dataStreamApi.all().to_pandas()\n</pre> client.dataStreamApi.all().to_pandas() <pre>2023-01-27 16:04:28,212 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:163] [_make_request] - Successfully retrieved all resources.\n</pre> Out[4]: element_id name description icon_url app_id includes_assets includes_locales internally_managed measurement_object index ... dom rev num_transport_protocols num_measurement_capability num_application_links num_included_assets num_connected_to num_category num_event_properties num_included_locales 0 sp:spdatastream:xboBFK Test None None False False True None 0 ... None 5-558c861debc745e1ebae29a266a8bdb9 1 0 0 0 0 0 7 0 1 urn:streampipes.apache.org:eventstream:Wgyrse Test File None None False False True None 0 ... None 4-66548b6b84287011b7cec0876ef82baf 1 0 0 0 0 0 2 0 <p>2 rows \u00d7 22 columns</p> In\u00a0[5]: Copied! <pre>from river import cluster, compose, preprocessing\nfrom streampipes.function_zoo.river_function import OnlineML\nfrom streampipes.functions.utils.data_stream_generator import RuntimeType\n\nk_means = compose.Pipeline(\n    (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),\n    (\"scale\", preprocessing.StandardScaler()),\n    (\"k_means\", cluster.KMeans(n_clusters=2)),\n)\n\nclustering = OnlineML(\n    client=client, stream_ids=[\"sp:spdatastream:xboBFK\"], model=k_means, prediction_type=RuntimeType.INTEGER.value\n)\nclustering.start()\n</pre> from river import cluster, compose, preprocessing from streampipes.function_zoo.river_function import OnlineML from streampipes.functions.utils.data_stream_generator import RuntimeType  k_means = compose.Pipeline(     (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),     (\"scale\", preprocessing.StandardScaler()),     (\"k_means\", cluster.KMeans(n_clusters=2)), )  clustering = OnlineML(     client=client, stream_ids=[\"sp:spdatastream:xboBFK\"], model=k_means, prediction_type=RuntimeType.INTEGER.value ) clustering.start() <pre>2023-01-27 16:04:35,599 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:163] [_make_request] - Successfully retrieved all resources.\n2023-01-27 16:04:35,599 - streampipes.functions.function_handler - [INFO] - [function_handler.py:64] [initializeFunctions] - Create output data stream \"sp:spdatastream:cwKPoo\" for the function \"65cf8b86-bcdf-433e-a1c7-3e920eab55d0\"\n2023-01-27 16:04:37,766 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:163] [_make_request] - Successfully retrieved all resources.\n2023-01-27 16:04:37,767 - streampipes.functions.function_handler - [INFO] - [function_handler.py:78] [initializeFunctions] - Using NatsBroker for RiverFunction\n2023-01-27 16:04:37,791 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:48] [_makeConnection] - Connected to NATS at localhost:4222\n2023-01-27 16:04:37,791 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:48] [_makeConnection] - Connected to NATS at localhost:4222\n2023-01-27 16:04:37,792 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:58] [createSubscription] - Subscribed to stream: sp:spdatastream:xboBFK\n</pre> In\u00a0[6]: Copied! <pre>clustering.set_learning(False)\n</pre> clustering.set_learning(False) In\u00a0[\u00a0]: Copied! <pre>clustering.stop()\n</pre> clustering.stop() <pre>2023-01-27 16:04:57,303 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:82] [disconnect] - Stopped connection to stream: sp:spdatastream:xboBFK\n2023-01-27 16:04:57,304 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:82] [disconnect] - Stopped connection to stream: sp:spdatastream:cwKPoo\n</pre> In\u00a0[\u00a0]: Copied! <pre>import pickle\nfrom river import compose, tree\nfrom streampipes.function_zoo.river_function import OnlineML\nfrom streampipes.functions.utils.data_stream_generator import RuntimeType\n\nhoeffding_tree = compose.Pipeline(\n    (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),\n    (\"hoeffding_tree\", tree.HoeffdingTreeRegressor(grace_period=5)),\n)\n\n\ndef draw_tree(self, event, streamId):\n\"\"\"Draw the tree and save the image.\"\"\"\n    if self.learning:\n        if self.model[1].n_nodes != None:\n            self.model[1].draw().render(\"hoeffding_tree\", format=\"png\", cleanup=True)\n\n\ndef save_model(self):\n\"\"\"Save the trained model.\"\"\"\n    with open(\"hoeffding_tree.pkl\", \"wb\") as f:\n        pickle.dump(self.model, f)\n\n\nregressor = OnlineML(\n    client=client,\n    stream_ids=[\"sp:spdatastream:xboBFK\"],\n    model=hoeffding_tree,\n    prediction_type=RuntimeType.FLOAT.value,\n    supervised=True,\n    target_label=\"temperature\",\n    on_event=draw_tree,\n    on_stop=save_model,\n)\nregressor.start()\n</pre> import pickle from river import compose, tree from streampipes.function_zoo.river_function import OnlineML from streampipes.functions.utils.data_stream_generator import RuntimeType  hoeffding_tree = compose.Pipeline(     (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),     (\"hoeffding_tree\", tree.HoeffdingTreeRegressor(grace_period=5)), )   def draw_tree(self, event, streamId):     \"\"\"Draw the tree and save the image.\"\"\"     if self.learning:         if self.model[1].n_nodes != None:             self.model[1].draw().render(\"hoeffding_tree\", format=\"png\", cleanup=True)   def save_model(self):     \"\"\"Save the trained model.\"\"\"     with open(\"hoeffding_tree.pkl\", \"wb\") as f:         pickle.dump(self.model, f)   regressor = OnlineML(     client=client,     stream_ids=[\"sp:spdatastream:xboBFK\"],     model=hoeffding_tree,     prediction_type=RuntimeType.FLOAT.value,     supervised=True,     target_label=\"temperature\",     on_event=draw_tree,     on_stop=save_model, ) regressor.start() In\u00a0[9]: Copied! <pre>regressor.set_learning(False)\n</pre> regressor.set_learning(False) In\u00a0[\u00a0]: Copied! <pre>regressor.stop()\n</pre> regressor.stop() In\u00a0[\u00a0]: Copied! <pre>import pickle\nfrom river import compose, tree\nfrom streampipes.function_zoo.river_function import OnlineML\nfrom streampipes.functions.utils.data_stream_generator import RuntimeType\n\ndecision_tree = compose.Pipeline(\n    (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),\n    (\"decision_tree\", tree.ExtremelyFastDecisionTreeClassifier(grace_period=5)),\n)\n\n\ndef draw_tree(self, event, streamId):\n\"\"\"Draw the tree and save the image.\"\"\"\n    if self.learning:\n        if self.model[1].n_nodes != None:\n            self.model[1].draw().render(\"decicion_tree\", format=\"png\", cleanup=True)\n\n\ndef save_model(self):\n\"\"\"Save the trained model.\"\"\"\n    with open(\"decision_tree.pkl\", \"wb\") as f:\n        pickle.dump(self.model, f)\n\n\nclassifier = OnlineML(\n    client=client,\n    stream_ids=[\"sp:spdatastream:xboBFK\"],\n    model=decision_tree,\n    prediction_type=RuntimeType.BOOLEAN.value,\n    supervised=True,\n    target_label=\"sensor_fault_flags\",\n    on_event=draw_tree,\n    on_stop=save_model,\n)\nclassifier.start()\n</pre> import pickle from river import compose, tree from streampipes.function_zoo.river_function import OnlineML from streampipes.functions.utils.data_stream_generator import RuntimeType  decision_tree = compose.Pipeline(     (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),     (\"decision_tree\", tree.ExtremelyFastDecisionTreeClassifier(grace_period=5)), )   def draw_tree(self, event, streamId):     \"\"\"Draw the tree and save the image.\"\"\"     if self.learning:         if self.model[1].n_nodes != None:             self.model[1].draw().render(\"decicion_tree\", format=\"png\", cleanup=True)   def save_model(self):     \"\"\"Save the trained model.\"\"\"     with open(\"decision_tree.pkl\", \"wb\") as f:         pickle.dump(self.model, f)   classifier = OnlineML(     client=client,     stream_ids=[\"sp:spdatastream:xboBFK\"],     model=decision_tree,     prediction_type=RuntimeType.BOOLEAN.value,     supervised=True,     target_label=\"sensor_fault_flags\",     on_event=draw_tree,     on_stop=save_model, ) classifier.start() In\u00a0[12]: Copied! <pre>classifier.set_learning(False)\n</pre> classifier.set_learning(False) In\u00a0[\u00a0]: Copied! <pre>classifier.stop()\n</pre> classifier.stop() <p>How do you like this tutorial? We hope you like it and would love to receive some feedback from you. Just go to our GitHub discussion page and let us know your impression. We'll read and react to them all, we promise!</p>"},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/#Using-Online-Machine-Learning-on-a-StreamPipes-data-stream","title":"Using Online Machine Learning on a StreamPipes data stream\u00b6","text":"<p>The last tutorial (Getting live data from the StreamPipes data stream) showed how we can connect to a data stream, and it would be possible to use Online Machine Learning with this approach and train a model with the incoming events at the <code>onEvent</code> method. However, the StreamPipes client also provides an easier way to do this with the use of the River library for Online Machine Learning. We will have a look at this now.</p>"},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/#How-to-use-Online-Machine-Learning-with-StreamPipes","title":"How to use Online Machine Learning with StreamPipes\u00b6","text":"<p>After we configured the client as usual, we can start with the new part. The approach is straight forward and you can start with the ML part in just 3 steps:</p> <ol> <li>Create a pipeline with River and insert the preprocessing steps and model of your choice.</li> <li>Configure the <code>OnlineML</code> wrapper to fit to your model and insert the client and required data stream ids.</li> <li>Start the wrapper and let the learning begin.</li> </ol> <p>A StreamPipesFunction is then started, which trains the model for each new event. It also creates an output data stream which will send the prediction of the model back to StreamPipes. This output stream can be seen when creating a new pipeline and can be used like every other data source. So you can use it in a pipeline and save the predictions in a Data Lake. You can also stop and start the training with the method <code>set_learning</code>. To stop the whole function use the <code>stop</code> methode and if you want to delete the output stream entirely, you can go to the <code>Pipeline Element Installer</code> in StreamPipes and uninstall it.</p> <p>Now let's take a look at some examples. If you want to execute the examples below you have to create an adapter for the <code>Machine Data Simulator</code>, select the <code>flowrate</code> sensor and insert the stream id of this stream.</p>"},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/#KMeans","title":"KMeans\u00b6","text":""},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/#HoeffdingTreeRegressor","title":"HoeffdingTreeRegressor\u00b6","text":""},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/#DecisionTreeClassifier","title":"DecisionTreeClassifier\u00b6","text":""}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"\ud83c\udfe1 Home","text":"StreamPipes is a self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams. <p>Dependency issue with StreamPipes Python 0.92.0</p> <p>In StreamPipes Python <code>0.92.0</code> there is a problem with the required dependencies. Pydantic has recently released the new version <code>2.0</code> with many exciting improvements, but also some breaking changes.  Unfortunately, we didn't limit our requirements strictly enough, so yydantic <code>2.0</code> is installed together with streampipes, which is not (yet) compatible. To fix this bug, simply run the following command after installing streampipes, or adjust your dependencies accordingly:</p> <pre><code>pip install \"pydantic&lt;2.0\" \"pydantic_core&lt;2.0\"\n</code></pre> <p></p> Apache StreamPipes for Python \ud83d\udc0d <p> Apache StreamPipes meets Python! We are working highly motivated on a Python library to interact with StreamPipes. In this way, we would like to unite the power of StreamPipes to easily connect to and read from different data sources, especially in the IoT domain, and the amazing universe of data analytics libraries in Python. </p> <p></p> <p>StreamPipes Python is in beta</p> <p>The current version of this Python library is still a beta version. This means that it is still heavily under development, which may result in frequent and extensive API changes, unstable behavior, etc.</p>"},{"location":"#quickstart","title":"\u26a1\ufe0f Quickstart","text":"<p>As a quick example, we demonstrate how to set up and configure a StreamPipes client. In addition, we will get the available data lake measures out of StreamPipes.</p> <p><pre><code>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n\nconfig = StreamPipesClientConfig(\n    credential_provider = StreamPipesApiKeyCredentials(\n        username = \"test@streampipes.apache.org\",\n        api_key = \"DEMO-KEY\",\n        ),\n    host_address = \"localhost\",\n    https_disabled = True,\n    port = 80\n)\n\nclient = StreamPipesClient(client_config=config)\n\n# get all available datat lake measures\nmeasures = client.dataLakeMeasureApi.all()\n\n# get amount of retrieved measures\nlen(measures)\n</code></pre> Output: <pre><code>1\n</code></pre> </p> <pre><code># inspect the data lake measures as pandas dataframe\nmeasures.to_pandas()\n</code></pre> <p>Output: <pre><code>measure_name timestamp_field ... pipeline_is_running num_event_properties\n0 test s0::timestamp ... False 2\n[1 rows x 6 columns]\n</code></pre>  Alternatively, you can provide your credentials via environment variables. Simply define your credential provider as follows:</p> <p><pre><code>from streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n\nStreamPipesApiKeyCredentials()\n</code></pre> This requires to set the following environment variables: <code>SP_API_KEY</code> and <code>SP_USERNAME</code> </p> <p><code>username</code> is always the username that is used to log in into StreamPipes. </p> How to get your StreamPipes API key <p>The <code>api_key</code> can be generated within the UI as demonstrated below: </p> <p></p>"},{"location":"getting-started/developing/","title":"Developing & Contributing","text":""},{"location":"getting-started/developing/#development-guide","title":"\ud83d\udcd6 Development Guide","text":"<p>This document describes how to easily set up your local dev environment to work on StreamPipes Python \ud83d\udc0d. </p>"},{"location":"getting-started/developing/#first-steps","title":"\ud83d\ude80 First Steps","text":"<p>1) Set up your Python environment</p> <p>Create a virtual Python environment with a tool of your choice. As a next step, install all required dependencies for the development, e.g., with <code>pip</code>:</p> <pre><code>pip install .[dev]  # or alternatively: pip install .[all] to include dependencies for building the docs as well\n</code></pre> <p>In case you are on macOS and using <code>zsh</code> the following should work for you: <pre><code>pip install .\"[dev]\"\n</code></pre> </p> <p>2) Install pre-commit hook</p> <p>The pre-commit hook is run before every commit and takes care about code style, linting, type hints, import sorting, etc. It will stop your commit in case the changes do not apply the expected format. Always check to have the recent version of the pre-commit hook installed otherwise the CI build might fail.  If you are interested, you can have a deeper look on the underlying library: pre-commit.</p> <p><pre><code>pre-commit install\n</code></pre> The definition of the pre-commit hook can be found in .pre-commit-config.yaml.</p> <p></p>"},{"location":"getting-started/developing/#conventions","title":"\ud83d\udc4f Conventions","text":"<p>Below we list some conventions that we have agreed on for creating StreamPipes Python. Please comply to them when you plan to contribute to this project. If you have any other suggestions or would like to discuss them, we would be happy to hear from you on our mailing list dev@streampipes.apache.org or in our discussions on GitHub.</p> <p>1) Use <code>numpy</code> style for Python docstrings \ud83d\udcc4  Please stick to the <code>numpy</code> style when writing docstrings, as we require this for generating our documentation.</p> <p>2) Provide tests \u2705  We are aiming for broad test coverage for the Python package and have therefore set a requirement of at least 90% unit test coverage. Therefore, please remember to write (unit) tests already during development.  If you have problems with writing tests, don't hesitate to ask us for help directly in the PR or even before that via our mailing list (see above).</p> <p>3) Build a similar API as the Java client provides \ud83d\udd04  Whenever possible, please try to develop the API of the Python library the same as the Java client or Java SDK. By doing so, we would like to provide a consistent developer experience and the basis for automated testing in the future.</p>"},{"location":"getting-started/developing/#roadmap","title":"\ud83d\ude80 Roadmap","text":"<p>Broadly speaking, we plan to expand or add new aspects/functionality to the library where we are focusing on the following:</p> <ul> <li>increase coverage of StreamPipes API \ud83d\udd17</li> <li>build a comprehensive function zoo \ud83d\udc18</li> <li>support more messaging broker \ud83d\udcec</li> <li>possibility to build pipeline elements \ud83d\udd27</li> </ul> <p>In case you want to have a more detailed look on what we are currently planning, have a look at our open issues(more short-term driven).</p> <p>Of course, contributions are always highly appreciated \ud83d\udd2e</p> <p>Stay tuned!</p>"},{"location":"getting-started/developing/#contributing","title":"\ud83d\udc68\u200d\ud83d\udcbb Contributing","text":"<p>Before opening a pull request, review the Get Involved page. It lists information that is required for contributing to StreamPipes.</p> <p>When you contribute code, you affirm that the contribution is your original work and that you license the work to the project under the project's open source license. Whether or not you state this explicitly, by submitting any copyrighted material via pull request, email, or other means you agree to license the material under the project's open source license and warrant that you have the legal authority to do so.</p>"},{"location":"getting-started/first-steps/","title":"First Steps","text":""},{"location":"getting-started/first-steps/#installation","title":"\ud83d\udcda Installation","text":"<p>The StreamPipes Python library is meant to work with Python 3.8 and above. Installation can be done via <code>pip</code>: You can install the latest development version from GitHub, as so:</p> <pre><code>pip install streampipes\n\n# if you want to have the current development state you can also execute\npip install git+https://github.com/apache/streampipes.git#subdirectory=streampipes-client-python\n# the corresponding documentation can be found here: https://streampipes.apache.org/docs/docs/python/dev/\n</code></pre>"},{"location":"getting-started/first-steps/#setting-up-streampipes","title":"\u2b06\ufe0f Setting up StreamPipes","text":"<p>When working with the StreamPipes Python library it is inevitable to have a running StreamPipes instance to connect and interact with. In case you don't have a running instance at hand, you can easily set up one on your local machine. Hereby you need to consider that StreamPipes supports different message broker (e.g., Kafka, NATS). We will demonstrate below how you can easily set up StreamPipes for both supported message brokers. </p>"},{"location":"getting-started/first-steps/#start-streampipes-via-docker-compose","title":"\ud83d\udc33 Start StreamPipes via Docker Compose","text":"<p>The easiest and therefore recommend way to get StreamPipes started is by using docker compose. Therefore, you need Docker running. You can check if Docker is ready on your machine by executing. <pre><code>docker ps\n</code></pre> If this results in an output similar to the following, Docker is ready to continue. <pre><code>CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES\n...            ...       ...       ...       ...       ...       ...\n</code></pre> Otherwise, you need to start docker first. Please read the full guide on how to start StreamPipes with <code>docker compose</code> here.</p>"},{"location":"getting-started/first-steps/#setup-streampipes-with-nats-as-message-broker","title":"Setup StreamPipes with NATS as message broker","text":"<p>The following shows how you can set up a StreamPipes instance that uses NATS as messaging layer. So in this scenario, we will go with <code>docker-compose.nats.yml</code>.  Thereby, when running locally, we need to add the following port mapping entry to <code>services.nats.ports</code>: <pre><code>- 4222:4222\n</code></pre></p> <p>After this modification is applied, StreamPipes can simply be started with this command: <pre><code>docker-compose -f docker-compose.nats.yml up -d\n</code></pre></p> <p>Once all services are started, you can access StreamPipes via <code>http://localhost</code>.</p>"},{"location":"getting-started/first-steps/#setup-streampipes-with-kafka-as-message-broker","title":"Setup StreamPipes with Kafka as message broker","text":"<p>Alternatively, you can use <code>docker-compose.yml</code> to start StreamPipes with Kafka as messaging layer. When running locally we have to modify <code>services.kafka.environment</code> and add the ports to <code>services.kafka.ports</code>: <pre><code>environment:\nKAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,OUTSIDE:PLAINTEXT\nKAFKA_ADVERTISED_LISTENERS: PLAINTEXT://:9092,OUTSIDE://localhost:9094\nKAFKA_LISTENERS: PLAINTEXT://:9092,OUTSIDE://:9094\n...\nports:\n- 9094:9094\n</code></pre> Then, you need to execute the following command: <pre><code>docker-compose -f docker-compose.yml up -d\n</code></pre></p> <p>Once all services are started, you can access StreamPipes via <code>http://localhost</code>.</p> <p>In case you want to have more control over your StreamPipes setup, you might take a look at our deployment CLI.</p> <p>Have fun discovering StreamPipes and our Python library \ud83d\ude80</p>"},{"location":"getting-started/quickstart/","title":"Quickstart","text":""},{"location":"getting-started/quickstart/#quickstart","title":"\u26a1\ufe0f Quickstart","text":"<p>As a quick example, we demonstrate how to set up and configure a StreamPipes client. In addition, we will get the available data lake measures out of StreamPipes.</p> <p><pre><code>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n\nconfig = StreamPipesClientConfig(\n    credential_provider = StreamPipesApiKeyCredentials(\n        username = \"test@streampipes.apache.org\",\n        api_key = \"DEMO-KEY\",\n        ),\n    host_address = \"localhost\",\n    https_disabled = True,\n    port = 80\n)\n\nclient = StreamPipesClient(client_config=config)\n\n# get all available datat lake measures\nmeasures = client.dataLakeMeasureApi.all()\n\n# get amount of retrieved measures\nlen(measures)\n</code></pre> Output: <pre><code>1\n</code></pre> </p> <pre><code># inspect the data lake measures as pandas dataframe\nmeasures.to_pandas()\n</code></pre> <p>Output: <pre><code>measure_name timestamp_field ... pipeline_is_running num_event_properties\n0 test s0::timestamp ... False 2\n[1 rows x 6 columns]\n</code></pre>  Alternatively, you can provide your credentials via environment variables. Simply define your credential provider as follows:</p> <p><pre><code>from streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n\nStreamPipesApiKeyCredentials()\n</code></pre> This requires to set the following environment variables: <code>SP_API_KEY</code> and <code>SP_USERNAME</code> </p> <p><code>username</code> is always the username that is used to log in into StreamPipes.  The <code>api_key</code> can be generated within the UI as demonstrated below:</p> <p></p>"},{"location":"reference/client/client/","title":"Client","text":"<p>Implementation of the StreamPipes client. The client is designed as the central point of interaction with the StreamPipes API and provides all functionalities to communicate with the API.</p>"},{"location":"reference/client/client/#streampipes.client.client.StreamPipesClient","title":"<code>StreamPipesClient(client_config, logging_level=logging.INFO)</code>","text":"<p>The client to connect to StreamPipes.</p> <p>This is the central point of contact with StreamPipes and provides all the functionalities to interact with it.</p> <p>The client provides so-called \"endpoints\" each of which refers to an endpoint of the StreamPipes API, e.g. <code>.dataLakeMeasureApi</code>. An endpoint provides the actual methods to interact with StreamPipes API.</p> PARAMETER  DESCRIPTION <code>client_config</code> <p>Configures the client to connect properly to the StreamPipes instance.</p> <p> TYPE: <code>StreamPipesClientConfig</code> </p> <code>logging_level</code> <p>Influences the log messages emitted by the <code>StreamPipesClient</code></p> <p> TYPE: <code>Optional[int]</code> DEFAULT: <code>logging.INFO</code> </p> ATTRIBUTE DESCRIPTION <code>dataLakeMeasureApi</code> <p>Instance of the data lake measure endpoint</p> <p> TYPE: <code>DataLakeMeasureEndpoint</code> </p> <code>dataStreamApi</code> <p>Instance of the data stream endpoint</p> <p> TYPE: <code>DataStreamEndpoint</code> </p> <p>Examples:</p> <pre><code>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</code></pre> <pre><code>client_config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(\n         username=\"test-user\",\n         api_key=\"api-key\"\n     ),\n     host_address=\"localhost\",\n     https_disabled=True\n)\n</code></pre> <p>The following way of instantiating a client instance is intended to be consistent with the StreamPipes Java client. <pre><code>client = StreamPipesClient.create(client_config=client_config)\n</code></pre></p> <p>If you prefer a more pythonic way, you can simply write: <pre><code>client = StreamPipesClient(client_config=client_config)\n</code></pre></p> <p>To interact with an endpoint: <pre><code>data_lake_measures = client.dataLakeMeasureApi.all()\n</code></pre></p> <p>To inspect returned data as a pandas dataframe: <pre><code>data_lake_measures.to_pandas()\n#\n#     measure_name timestamp_field  ... pipeline_is_running num_event_properties\n# 0           test   s0::timestamp  ...               False                    2\n# [1 rows x 6 columns]\n</code></pre></p>"},{"location":"reference/client/client/#streampipes.client.client.StreamPipesClient.base_api_path","title":"<code>base_api_path: str</code>  <code>property</code>","text":"<p>Constructs the basic API URL from the given <code>client_config</code>.</p> RETURNS DESCRIPTION <code>base_api_path</code> <p>basic API path of the connected StreamPipes instance</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/client/client/#streampipes.client.client.StreamPipesClient.http_headers","title":"<code>http_headers: Dict[str, str]</code>  <code>property</code>","text":"<p>Returns the HTTP headers used for all requests.</p> <p>The HTTP headers are composed of the authentication headers supplied by the credential provider and additional required headers (currently this is only the application header).</p> RETURNS DESCRIPTION <code>http_headers</code> <p>header information for HTTP requests as string key-value pairs.</p> <p> TYPE: <code>Dict[str, str]</code> </p>"},{"location":"reference/client/client/#streampipes.client.client.StreamPipesClient.create","title":"<code>create(client_config, logging_level=logging.INFO)</code>  <code>classmethod</code>","text":"<p>Returns an instance of the <code>StreamPipesPythonClient</code>.</p> <p>Provides consistency to the StreamPipes Java client.</p> PARAMETER  DESCRIPTION <code>client_config</code> <p>Configures the client to connect properly to the StreamPipes instance.</p> <p> TYPE: <code>StreamPipesClientConfig</code> </p> <code>logging_level</code> <p>Influences the log messages emitted by the <code>StreamPipesClient</code>.</p> <p> TYPE: <code>int</code> DEFAULT: <code>logging.INFO</code> </p> RETURNS DESCRIPTION <code>StreamPipesClient</code>"},{"location":"reference/client/client/#streampipes.client.client.StreamPipesClient.describe","title":"<code>describe()</code>","text":"<p>Prints a short description of the connected StreamPipes instance and the available resources to the console.</p> RETURNS DESCRIPTION <code>    None</code> <p>Examples:</p> <p><pre><code>client.describe()\n</code></pre> Output: <pre><code>Hi there!\nYou are connected to a StreamPipes instance running at http://localhost:80.\nThe following StreamPipes resources are available with this client:\n6x DataStreams\n1x DataLakeMeasures\n</code></pre></p>"},{"location":"reference/client/config/","title":"Config","text":"<p>Configuration class for the StreamPipes client.</p>"},{"location":"reference/client/config/#streampipes.client.config.StreamPipesClientConfig","title":"<code>StreamPipesClientConfig</code>  <code>dataclass</code>","text":"<p>Configure the StreamPipes client in accordance to the actual StreamPipes instance to connect to.</p> <p>An instance is provided to the <code>StreamPipesClient</code> to configure it properly.</p> PARAMETER  DESCRIPTION <code>credential_provider</code> <p>Provides the credentials to authenticate with the StreamPipes API.</p> <p> TYPE: <code>CredentialProvider</code> </p> <code>host_address</code> <p>Host address of the StreamPipes instance to connect to. Should be provided without the protocol/scheme, e.g. as <code>localhost</code> or <code>streampipes.xyz</code>.</p> <p> TYPE: <code>str</code> </p> <code>https_disabled</code> <p>Determines whether https is used to connect to StreamPipes.</p> <p> TYPE: <code>Optional[bool]</code> DEFAULT: <code>False</code> </p> <code>port</code> <p>Specifies the port under which the StreamPipes API is available, e.g., <code>80</code> (with http) or <code>443</code> (with https)</p> <p> TYPE: <code>Optional[int]</code> DEFAULT: <code>80</code> </p> <p>Examples:</p> <p>see StreamPipesClient</p>"},{"location":"reference/client/credential_provider/","title":"Credential provider","text":"<p>Implementation of credential providers. A credential provider supplies the specified sort of credentials in the appropriate HTTP header format. The headers are then used by the client to connect to StreamPipes.</p>"},{"location":"reference/client/credential_provider/#streampipes.client.credential_provider.CredentialProvider","title":"<code>CredentialProvider</code>","text":"<p>             Bases: <code>ABC</code></p> <p>Abstract implementation of a credential provider. Must be inherited by all credential providers.</p>"},{"location":"reference/client/credential_provider/#streampipes.client.credential_provider.CredentialProvider.make_headers","title":"<code>make_headers(http_headers=None)</code>","text":"<p>Creates the HTTP headers for the specific credential provider.</p> <p>Concrete authentication headers must be defined in the implementation of a credential provider.</p> PARAMETER  DESCRIPTION <code>http_headers</code> <p>Additional HTTP headers the generated headers are extended by.</p> <p> TYPE: <code>Optional[Dict[str, str]]</code> DEFAULT: <code>None</code> </p> RETURNS DESCRIPTION <code>https_headers</code> <p>Dictionary with header information as string key-value pairs.  Contains all pairs given as parameter plus the header pairs for authentication determined by the credential provider.</p> <p> TYPE: <code>Dict[str, str]</code> </p>"},{"location":"reference/client/credential_provider/#streampipes.client.credential_provider.StreamPipesApiKeyCredentials","title":"<code>StreamPipesApiKeyCredentials(username=None, api_key=None)</code>","text":"<p>             Bases: <code>CredentialProvider</code></p> <p>A credential provider that allows authentication via a StreamPipes API Token.</p> <p>The required token can be generated via the StreamPipes UI (see the description on our start-page.</p> <p>Both parameters can either be passed as arguments or remain unset. If they are not passed, they are retrieved from environment variables:</p> <ul> <li><code>SP_USERNAME</code> is expected to contain the username</li> <li><code>SP_API_KEY</code> is expected to contain the API key</li> </ul> PARAMETER  DESCRIPTION <code>username</code> <p>The username to which the API token is granted, e.g., <code>demo-user@streampipes.apche.org</code>. If not passed, the username is retrieved from environment variable <code>SP_USERNAME</code>.</p> <p> TYPE: <code>Optional[str]</code> DEFAULT: <code>None</code> </p> <code>api_key</code> <p>The StreamPipes API key as it is displayed in the UI. If not passed, the api key is retrieved from environment variable <code>SP_API_KEY</code></p> <p> TYPE: <code>Optional[str]</code> DEFAULT: <code>None</code> </p> <p>Examples:</p> <p>see StreamPipesClient</p>"},{"location":"reference/client/credential_provider/#streampipes.client.credential_provider.StreamPipesApiKeyCredentials.from_env","title":"<code>from_env(username_env, api_key_env)</code>  <code>classmethod</code>","text":"<p>DEPRECATED - use the class constructor instead</p> <p>Returns an api key provider parameterized via environment variables.</p> PARAMETER  DESCRIPTION <code>username_env</code> <p>Name of the environment variable that contains the username</p> <p> TYPE: <code>str</code> </p> <code>api_key_env</code> <p>Name of the environment variable that contains the API key</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>StreamPipesApiKeyCredentials</code> RAISES DESCRIPTION <code>KeyError</code> <p>If one of the environment variables is not defined</p>"},{"location":"reference/endpoint/endpoint/","title":"Endpoint","text":"<p>General implementation for an endpoint. Provided classes and assets are aimed to be used for developing endpoints. An endpoint provides all options to communicate with ad dedicated part of StreamPipes in a handy way.</p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.APIEndpoint","title":"<code>APIEndpoint</code>","text":"<p>             Bases: <code>Endpoint</code></p> <p>Abstract implementation of an API endpoint.</p> <p>Serves as template for all endpoints of the StreamPipes API. By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.APIEndpoint.all","title":"<code>all()</code>","text":"<p>Get all resources of this endpoint provided by the StreamPipes API.</p> <p>Results are provided as an instance of a <code>ResourceContainer</code> that allows to handle the returned resources in a comfortable and pythonic way.</p> RETURNS DESCRIPTION <code>container</code> <p>container element that bundles the returned resources</p> <p> TYPE: <code>ResourceContainer</code> </p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.APIEndpoint.build_url","title":"<code>build_url()</code>","text":"<p>Builds the endpoint's URL of the API path.</p> RETURNS DESCRIPTION <code>url</code> <p>The URL of the endpoint</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.APIEndpoint.get","title":"<code>get(identifier, **kwargs)</code>","text":"<p>Queries the specified resource from the API endpoint.</p> PARAMETER  DESCRIPTION <code>identifier</code> <p>The identifier of the resource to be queried.</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>resource</code> <p>The specified resource as an instance of the corresponding model class.</p> <p> TYPE: <code>Resource</code> </p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.APIEndpoint.post","title":"<code>post(resource)</code>","text":"<p>Allows to post a resource to the StreamPipes API.</p> PARAMETER  DESCRIPTION <code>resource</code> <p>The resource to be posted.</p> <p> TYPE: <code>Resource</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.Endpoint","title":"<code>Endpoint(parent_client)</code>","text":"<p>             Bases: <code>ABC</code></p> <p>Abstract implementation of a StreamPipes endpoint.</p> <p>Serves as template for all endpoints used for interaction with a StreamPipes instance. By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p> PARAMETER  DESCRIPTION <code>parent_client</code> <p>This parameter expects the instance of <code>StreamPipesClient</code> the endpoint is attached to.</p> <p> TYPE: <code>StreamPipesClient</code> </p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.MessagingEndpoint","title":"<code>MessagingEndpoint(parent_client)</code>","text":"<p>             Bases: <code>Endpoint</code></p> <p>Abstract implementation of a StreamPipes messaging endpoint.</p> <p>Serves as template for all endpoints used for interacting with the StreamPipes messaging layer directly. Therefore, they need to provide the functionality to talk with the broker system running in StreamPipes. By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.MessagingEndpoint.broker","title":"<code>broker: Broker</code>  <code>property</code> <code>writable</code>","text":"<p>Defines the broker instance that is used to connect to StreamPipes' messaging layer.</p> <p>This instance enables the client to authenticate to the broker used in the target StreamPipes instance, to consume messages from and to write messages to the broker.</p> RAISES DESCRIPTION <code>MessagingEndpointNotConfiguredError</code> <p>If the endpoint is used before the broker instance is set via <code>configure()</code></p> RETURNS DESCRIPTION <code>broker</code> <p>The broker instance to be used to communicate with StreamPipes' messaging layer.</p> <p> TYPE: <code>Broker</code> </p>"},{"location":"reference/endpoint/endpoint/#streampipes.endpoint.endpoint.MessagingEndpoint.configure","title":"<code>configure(broker)</code>","text":"<p>Configures the message endpoint by setting the broker instance to be used.</p> <p>This configuration step is required before the endpoint can be actually used. The based <code>broker</code> instance is passed to an internal property</p> PARAMETER  DESCRIPTION <code>broker</code> <p>Broker instance that should be used for this endpoint</p> <p> TYPE: <code>Broker</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/endpoint/exceptions/","title":"Exceptions","text":"<p>Custom exceptions dedicated for the endpoints module</p>"},{"location":"reference/endpoint/exceptions/#streampipes.endpoint.exceptions.MessagingEndpointNotConfiguredError","title":"<code>MessagingEndpointNotConfiguredError(endpoint_name)</code>","text":"<p>             Bases: <code>Exception</code></p> <p>Exception that indicates that an instance of a messaging endpoint has not been configured.</p> <p>This error occurs when an instance of a messaging endpoint is used before the broker instance to be used is configured by passing it to the <code>configure()</code> method.</p> PARAMETER  DESCRIPTION <code>endpoint_name</code> <p>The name of the endpoint that caused the error</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/endpoint/api/data_lake_measure/","title":"Data lake measure","text":"<p>Specific implementation of the StreamPipes API's data lake measure endpoints. This endpoint allows to consume data stored in StreamPipes' data lake.</p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.DataLakeMeasureEndpoint","title":"<code>DataLakeMeasureEndpoint</code>","text":"<p>             Bases: <code>APIEndpoint</code></p> <p>Implementation of the DataLakeMeasure endpoint.</p> <p>This endpoint provides an interface to all data stored in the StreamPipes data lake.</p> <p>Consequently, it allows querying metadata about available data sets (see <code>all()</code> method). The metadata is returned as an instance of <code>DataLakeMeasures</code>.</p> <p>In addition, the endpoint provides direct access to the data stored in the data laka by querying a specific data lake measure using the <code>get()</code> method.</p> <p>Examples:</p> <pre><code>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</code></pre> <pre><code>client_config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(username=\"test-user\", api_key=\"api-key\"),\n    host_address=\"localhost\",\n    port=8082,\n    https_disabled=True\n)\nclient = StreamPipesClient.create(client_config=client_config)\n</code></pre> <p><pre><code># get all existing data lake measures from StreamPipes\ndata_lake_measures = client.dataLakeMeasureApi.all()\n\n# let's take a look how many we got\nlen(data_lake_measures)\n</code></pre> <pre><code>5\n</code></pre></p> <p><pre><code># Retrieve a specific data lake measure as a pandas DataFrame\nflow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\").to_pandas()\nflow_rate_pd\n</code></pre> <pre><code>                         time    density  mass_flow    sensorId  sensor_fault_flags  temperature  volume_flow\n0    2023-02-24T16:19:41.472Z  50.872730   3.309556  flowrate02               False    44.448483     5.793138\n1    2023-02-24T16:19:41.482Z  47.186588   5.608580  flowrate02               False    40.322033     0.058015\n2    2023-02-24T16:19:41.493Z  46.735321   7.692881  flowrate02               False    49.239639    10.283526\n3    2023-02-24T16:19:41.503Z  40.169796   3.632898  flowrate02               False    49.933754     6.893441\n4    2023-02-24T16:19:41.513Z  49.635124   0.711260  flowrate02               False    50.106617     2.999871\n..                        ...        ...        ...         ...                 ...          ...          ...\n995  2023-02-24T16:19:52.927Z  50.057495   1.740114  flowrate02               False    46.558231     1.818237\n996  2023-02-24T16:19:52.94Z   41.038895   7.211723  flowrate02               False    48.048622     2.127493\n997  2023-02-24T16:19:52.952Z  45.837013   7.770180  flowrate02               False    48.188026     7.892062\n998  2023-02-24T16:19:52.965Z  43.389065   4.458602  flowrate02               False    48.280899     5.733892\n999  2023-02-24T16:19:52.977Z  44.056030   2.592060  flowrate02               False    47.505951     4.260697\n</code></pre></p> <p>As you can see, the returned amount of rows per default is <code>1000</code>. We can modify this behavior by passing the <code>limit</code> paramter. <pre><code>flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", limit=10).to_pandas()\nlen(flow_rate_pd)\n</code></pre> <pre><code>10\n</code></pre></p> <p>If we are only interested in the values for <code>density</code>, <code>columns</code> allows us to select the columns to be returned: <pre><code>flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", columns='density', limit=3).to_pandas()\nflow_rate_pd\n</code></pre> <pre><code>                       time    density\n0  2023-02-24T16:19:41.472Z  50.872730\n1  2023-02-24T16:19:41.482Z  47.186588\n2  2023-02-24T16:19:41.493Z  46.735321\n</code></pre></p> <p>This is only a subset of the available query parameters, find them at MeasurementGetQueryConfig.</p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.DataLakeMeasureEndpoint.get","title":"<code>get(identifier, **kwargs)</code>","text":"<p>Queries the specified data lake measure from the API.</p> <p>By default, the maximum number of returned records is 1000. This behaviour can be influenced by passing the parameter <code>limit</code> with a different value (see MeasurementGetQueryConfig).</p> PARAMETER  DESCRIPTION <code>identifier</code> <p>The identifier of the data lake measure to be queried.</p> <p> TYPE: <code>str</code> </p> <code>**kwargs</code> <p>keyword arguments can be used to provide additional query parameters. The available query parameters are defined by the MeasurementGetQueryConfig.</p> <p> TYPE: <code>Optional[Dict[str, Any]]</code> DEFAULT: <code>{}</code> </p> RETURNS DESCRIPTION <code>measurement</code> <p>the specified data lake measure</p> <p> TYPE: <code>DataLakeMeasures</code> </p> <p>Examples:</p> <p>see directly at DataLakeMeasureEndpoint.</p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig","title":"<code>MeasurementGetQueryConfig</code>","text":"<p>             Bases: <code>BaseModel</code></p> <p>Config class describing the parameters of the <code>get()</code> method for measurements.</p> <p>This config class is used to validate the provided query parameters for the GET endpoint of measurements. Additionally, it takes care of the conversion to a proper HTTP query string. Thereby, parameter names are adapted to the naming of the StreamPipes API, for which Pydantic aliases are used.</p> ATTRIBUTE DESCRIPTION <code>columns</code> <p>A comma separated list of column names (e.g., <code>time,value</code>) If provided, the returned data only consists of the given columns. Please be aware that the column <code>time</code> as an index is always included.</p> <p> TYPE: <code>Optional[List[str]]</code> </p> <code>end_date</code> <p>Restricts queried data to be younger than the specified time.</p> <p> TYPE: <code>Optional[datetime]</code> </p> <code>limit</code> <p>Amount of records returned at maximum (default: <code>1000</code>)  This needs to be at least <code>1</code></p> <p> TYPE: <code>Optional[int]</code> </p> <code>offset</code> <p>Offset to be applied to returned data  This needs to be at least <code>0</code></p> <p> TYPE: <code>Optional[int]</code> </p> <code>order</code> <p>Ordering of query results  Allowed values: <code>ASC</code> and <code>DESC</code> (default: <code>ASC</code>)</p> <p> TYPE: <code>Optional[str]</code> </p> <code>page_no</code> <p>Page number used for paging operation  This needs to be at least <code>1</code></p> <p> TYPE: <code>Optional[int]</code> </p> <code>start_date</code> <p>Restricts queried data to be older than the specified time</p> <p> TYPE: <code>Optional[datetime]</code> </p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig.Config","title":"<code>Config</code>","text":"<p>Pydantic Config class</p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig.build_query_string","title":"<code>build_query_string()</code>","text":"<p>Builds a HTTP query string for the config.</p> <p>This method returns an HTTP query string for the invoking config. It follows the following structure <code>?param1=value1&amp;param2=value2...</code>. This query string is not an entire URL, instead it needs to appended to an API path.</p> RETURNS DESCRIPTION <code>query_param_string</code> <p>HTTP query params string (<code>?param1=value1&amp;param2=value2...</code>)</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/endpoint/api/data_lake_measure/#streampipes.endpoint.api.data_lake_measure.StreamPipesQueryValidationError","title":"<code>StreamPipesQueryValidationError</code>","text":"<p>             Bases: <code>Exception</code></p> <p>A custom exception to be raised when the validation of query parameter causes an error.</p>"},{"location":"reference/endpoint/api/data_stream/","title":"Data stream","text":"<p>Specific implementation of the StreamPipes API's data stream endpoints.</p>"},{"location":"reference/endpoint/api/data_stream/#streampipes.endpoint.api.data_stream.DataStreamEndpoint","title":"<code>DataStreamEndpoint</code>","text":"<p>             Bases: <code>APIEndpoint</code></p> <p>Implementation of the DataStream endpoint.</p> <p>Consequently, it allows querying metadata about available data streams (see <code>all()</code> method). The metadata is returned as an instance of <code>DataStreams</code>.</p> <p>Examples:</p> <pre><code>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n\nclient_config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(username=\"test-user\", api_key=\"api-key\"),\n    host_address=\"localhost\",\n    port=8082,\n    https_disabled=True\n)\nclient = StreamPipesClient.create(client_config=client_config)\n</code></pre> <p><pre><code># let's get all existing data streams in StreamPipes\ndata_streams = client.dataStreamApi.all()\nlen(data_streams)\n</code></pre> <pre><code>2\n</code></pre></p>"},{"location":"reference/endpoint/api/version/","title":"Version","text":"<p>Specific implementation of the StreamPipes API's version endpoint.</p>"},{"location":"reference/endpoint/api/version/#streampipes.endpoint.api.version.VersionEndpoint","title":"<code>VersionEndpoint</code>","text":"<p>             Bases: <code>APIEndpoint</code></p> <p>Implementation of the Versions endpoint.</p> <p>This endpoint provides metadata about the StreamPipes version of the connected instance. It only allows to apply the <code>get()</code> method with an empty string as identifier.</p> PARAMETER  DESCRIPTION <code>parent_client</code> <p>The instance of StreamPipesClient the endpoint is attached to.</p> <p> </p> <p>Examples:</p> <pre><code>&gt;&gt;&gt; from streampipes.client import StreamPipesClient\n&gt;&gt;&gt; from streampipes.client.config import StreamPipesClientConfig\n&gt;&gt;&gt; from streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</code></pre> <pre><code>&gt;&gt;&gt; client_config = StreamPipesClientConfig(\n...     credential_provider=StreamPipesApiKeyCredentials(username=\"test-user\", api_key=\"api-key\"),\n...     host_address=\"localhost\",\n...     port=8082,\n...     https_disabled=True\n... )\n</code></pre> <pre><code>&gt;&gt;&gt; client = StreamPipesClient.create(client_config=client_config)\n</code></pre> <pre><code>&gt;&gt;&gt; client.versionApi.get(identifier=\"\").to_dict(use_source_names=False)\n{'backend_version': '0.92.0-SNAPSHOT'}\n</code></pre>"},{"location":"reference/endpoint/api/version/#streampipes.endpoint.api.version.VersionEndpoint.all","title":"<code>all()</code>","text":"<p>Usually, this method returns information about all resources provided by this endpoint. However, this endpoint does not support this kind of operation.</p> RAISES DESCRIPTION <code>NotImplementedError</code> <p>this endpoint does not return multiple entries, therefore this method is not available</p>"},{"location":"reference/endpoint/api/version/#streampipes.endpoint.api.version.VersionEndpoint.get","title":"<code>get(identifier, **kwargs)</code>","text":"<p>Queries the resource from the API endpoint.</p> <p>For this endpoint only one resource is available.</p> PARAMETER  DESCRIPTION <code>identifier</code> <p>Not supported by this endpoint, is set to an empty string.</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>versions</code> <p>The specified resource as an instance of the corresponding model class(Version).  # noqa: 501</p> <p> TYPE: <code>Version</code> </p>"},{"location":"reference/endpoint/api/version/#streampipes.endpoint.api.version.VersionEndpoint.post","title":"<code>post(resource)</code>","text":"<p>Usually, this method allows to create via this endpoint. Since the data represented by this endpoint is immutable, it does not support this kind of operation.</p> RAISES DESCRIPTION <code>NotImplementedError</code> <p>this endpoint does not allow for POST requests, therefore this method is not available</p>"},{"location":"reference/function_zoo/river_function/","title":"River function","text":""},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.OnlineML","title":"<code>OnlineML(client, stream_ids, model, prediction_type=RuntimeType.STRING.value, supervised=False, target_label=None, on_start=lambda self, context: None, on_event=lambda self, event, streamId: None, on_stop=lambda self: None)</code>","text":"<p>Wrapper class to enable an easy usage for Online Machine Learning models of the River library.</p> <p>It creates a StreamPipesFunction to train a model with the incoming events of a data stream and creates an output data stream that publishes the prediction to StreamPipes.</p> PARAMETER  DESCRIPTION <code>client</code> <p>The client for the StreamPipes API.</p> <p> TYPE: <code>StreamPipesClient</code> </p> <code>stream_ids</code> <p>The ids of the data stream to train the model.</p> <p> TYPE: <code>List[str]</code> </p> <code>model</code> <p>The model to train. It meant to be a River model/pipeline, but can be every model with a 'learn_one' and 'predict_one' methode.</p> <p> TYPE: <code>Any</code> </p> <code>prediction_type</code> <p>The data type of the prediction. Is only needed when you continue to work with the prediction in StreamPipes.</p> <p> TYPE: <code>str</code> DEFAULT: <code>RuntimeType.STRING.value</code> </p> <code>supervised</code> <p>Define if the model is supervised or unsupervised.</p> <p> TYPE: <code>bool</code> DEFAULT: <code>False</code> </p> <code>target_label</code> <p>Define the name of the target attribute if the model is supervised.</p> <p> TYPE: <code>Optional[str]</code> DEFAULT: <code>None</code> </p> <code>on_start</code> <p>A function to be called when this StreamPipesFunction gets started.</p> <p> TYPE: <code>Callable[[Any, FunctionContext], None]</code> DEFAULT: <code>lambda self, context: None</code> </p> <code>on_event</code> <p>A function to be called when this StreamPipesFunction receives an event.</p> <p> TYPE: <code>Callable[[Any, Dict[str, Any], str], None]</code> DEFAULT: <code>lambda self, event, streamId: None</code> </p> <code>on_stop</code> <p>A function to be called when this StreamPipesFunction gets stopped.</p> <p> TYPE: <code>Callable[[Any], None]</code> DEFAULT: <code>lambda self: None</code> </p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.OnlineML.set_learning","title":"<code>set_learning(learning)</code>","text":"<p>Start or stop the training of the model.</p> PARAMETER  DESCRIPTION <code>learning</code> <p>Defines if the training should be continued</p> <p> TYPE: <code>bool</code> </p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.OnlineML.start","title":"<code>start()</code>","text":"<p>Registers the function and starts the training.</p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.OnlineML.stop","title":"<code>stop()</code>","text":"<p>Stops the function and ends the training forever.</p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.RiverFunction","title":"<code>RiverFunction(function_definition, stream_ids, model, supervised, target_label, on_start, on_event, on_stop)</code>","text":"<p>             Bases: <code>StreamPipesFunction</code></p> <p>Implementation of a StreamPipesFunction to enable an easy usage for Online Machine Learning models of the River library.</p> <p>The function trains the model with the incoming events and publishes the prediction to an output data stream.</p> PARAMETER  DESCRIPTION <code>function_definition</code> <p>The function definition which contains the output stream.</p> <p> TYPE: <code>FunctionDefinition</code> </p> <code>stream_ids</code> <p>The ids of the data stream to train the model.</p> <p> TYPE: <code>List[str]</code> </p> <code>model</code> <p>The model to train. It meant to be a River model/pipeline, but can be every model with a 'learn_one' and 'predict_one' method.</p> <p> TYPE: <code>Any</code> </p> <code>supervised</code> <p>Define if the model is supervised or unsupervised.</p> <p> TYPE: <code>bool</code> </p> <code>target_label</code> <p>Define the name of the target attribute if the model is supervised.</p> <p> TYPE: <code>Optional[str]</code> </p> <code>on_start</code> <p>A function to be called when this StreamPipesFunction gets started.</p> <p> TYPE: <code>Callable[[Any, FunctionContext], None]</code> </p> <code>on_event</code> <p>A function to be called when this StreamPipesFunction receives an event.</p> <p> TYPE: <code>Callable[[Any, Dict[str, Any], str], None]</code> </p> <code>on_stop</code> <p>A function to be called when this StreamPipesFunction gets stopped.</p> <p> TYPE: <code>Callable[[Any], None]</code> </p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.RiverFunction.onEvent","title":"<code>onEvent(event, streamId)</code>","text":"<p>Trains the model with the incoming events and sends the prediction back to StreamPipes.</p> PARAMETER  DESCRIPTION <code>event</code> <p>The incoming event that serves as input for the function</p> <p> TYPE: <code>Dict[str, Any]</code> </p> <code>streamId</code> <p>Identifier of the corresponding data stream</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.RiverFunction.onServiceStarted","title":"<code>onServiceStarted(context)</code>","text":"<p>Executes the <code>on_start</code> method of the function.</p> PARAMETER  DESCRIPTION <code>context</code> <p>The functions' context</p> <p> TYPE: <code>FunctionContext</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.RiverFunction.onServiceStopped","title":"<code>onServiceStopped()</code>","text":"<p>Executes the <code>on_stop</code> function.</p>"},{"location":"reference/function_zoo/river_function/#streampipes.function_zoo.river_function.RiverFunction.requiredStreamIds","title":"<code>requiredStreamIds()</code>","text":"<p>Returns the stream ids required by this function.</p> RETURNS DESCRIPTION <code>stream_ids</code> <p>List of stream ids required by the function</p> <p> TYPE: <code>List[str]</code> </p>"},{"location":"reference/functions/function_handler/","title":"Function handler","text":""},{"location":"reference/functions/function_handler/#streampipes.functions.function_handler.FunctionHandler","title":"<code>FunctionHandler(registration, client)</code>","text":"<p>The function handler manages the StreamPipes Functions.</p> <p>It controls the connection to the brokers, starts the functions, manages the broadcast of the live data and is able to stop the connection to the brokers and functions.</p> PARAMETER  DESCRIPTION <code>registration</code> <p>The registration, that contains the StreamPipesFunctions.</p> <p> TYPE: <code>Registration</code> </p> <code>client</code> <p>The client to interact with the API.</p> <p> TYPE: <code>StreamPipesClient</code> </p> ATTRIBUTE DESCRIPTION <code>stream_contexts</code> <p>Map of all data stream contexts</p> <p> TYPE: <code>Dict[str, DataStreamContext]</code> </p> <code>brokers</code> <p>List of all registered brokers</p> <p> TYPE: <code>List[Broker]</code> </p>"},{"location":"reference/functions/function_handler/#streampipes.functions.function_handler.FunctionHandler.disconnect","title":"<code>disconnect()</code>","text":"<p>Disconnects from the brokers and stops all functions.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/function_handler/#streampipes.functions.function_handler.FunctionHandler.force_stop_functions","title":"<code>force_stop_functions()</code>","text":"<p>Stops the StreamPipesFunctions when the event loop was stopped without stopping the functions.</p> RETURNS DESCRIPTION <code>None</code> WARNS DESCRIPTION <code>UserWarning</code> <p>If there is a running event loop and the functions should be stopped by disconnecting from the broker.</p>"},{"location":"reference/functions/function_handler/#streampipes.functions.function_handler.FunctionHandler.initializeFunctions","title":"<code>initializeFunctions()</code>","text":"<p>Creates the context for every data stream and starts the event loop to manage the StreamPipes Functions.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/registration/","title":"Registration","text":""},{"location":"reference/functions/registration/#streampipes.functions.registration.Registration","title":"<code>Registration()</code>","text":"<p>Manages the existing StreamPipesFunctions and registers them.</p> ATTRIBUTE DESCRIPTION <code>functions</code> <p>List of all registered StreamPipesFunction</p> <p> TYPE: <code>List[StreamPipesFunction]</code> </p>"},{"location":"reference/functions/registration/#streampipes.functions.registration.Registration.getFunctions","title":"<code>getFunctions()</code>","text":"<p>Get all registered functions.</p> <p>This method exists to be consistent with the Java client.</p> RETURNS DESCRIPTION <code>functions</code> <p>List of all registered functions.</p> <p> TYPE: <code>List[StreamPipesFunction]</code> </p>"},{"location":"reference/functions/registration/#streampipes.functions.registration.Registration.register","title":"<code>register(streampipes_function)</code>","text":"<p>Registers a new function.</p> PARAMETER  DESCRIPTION <code>streampipes_function</code> <p>The function to register.</p> <p> TYPE: <code>StreamPipesFunction</code> </p> RETURNS DESCRIPTION <code>self</code> <p>The updated Registration instance</p> <p> TYPE: <code>Registration</code> </p>"},{"location":"reference/functions/streampipes_function/","title":"Streampipes function","text":""},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction","title":"<code>StreamPipesFunction(function_definition=None)</code>","text":"<p>             Bases: <code>ABC</code></p> <p>Abstract implementation of a StreamPipesFunction.</p> <p>A StreamPipesFunction allows users to get the data of a StreamPipes data streams easily. It makes it possible to work with the live data in python and enables to use the powerful data analytics libraries there.</p> PARAMETER  DESCRIPTION <code>function_definition</code> <p>the definition of the function that contains metadata about the connected function</p> <p> TYPE: <code>Optional[FunctionDefinition]</code> DEFAULT: <code>None</code> </p> ATTRIBUTE DESCRIPTION <code>output_collectors</code> <p>List of all output collectors which are created based on the provided function definitions.</p> <p> TYPE: <code>Dict[str, OutputCollector]</code> </p>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.add_output","title":"<code>add_output(stream_id, event)</code>","text":"<p>Send an event via an output data stream to StreamPipes</p> PARAMETER  DESCRIPTION <code>stream_id</code> <p>The id of the output data stream</p> <p> TYPE: <code>str</code> </p> <code>event</code> <p>The event which should be sent</p> <p> TYPE: <code>Dict[str, Any]</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.getFunctionId","title":"<code>getFunctionId()</code>","text":"<p>Returns the id of the function.</p> RETURNS DESCRIPTION <code>function_id</code> <p>Identification object of the StreamPipes function</p> <p> TYPE: <code>FunctionId</code> </p>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.onEvent","title":"<code>onEvent(event, streamId)</code>  <code>abstractmethod</code>","text":"<p>Is called for every event of a data stream.</p> PARAMETER  DESCRIPTION <code>event</code> <p>The received event from the data stream.</p> <p> TYPE: <code>Dict[str, Any]</code> </p> <code>streamId</code> <p>The id of the data stream which the event belongs to.</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStarted","title":"<code>onServiceStarted(context)</code>  <code>abstractmethod</code>","text":"<p>Is called when the function gets started.</p> PARAMETER  DESCRIPTION <code>context</code> <p>The context in which the function gets started.</p> <p> TYPE: <code>FunctionContext</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStopped","title":"<code>onServiceStopped()</code>  <code>abstractmethod</code>","text":"<p>Is called when the function gets stopped.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.requiredStreamIds","title":"<code>requiredStreamIds()</code>  <code>abstractmethod</code>","text":"<p>Get the ids of the streams needed by the function.</p> RETURNS DESCRIPTION <code>stream_ids</code> <p>List of the stream ids</p> <p> TYPE: <code>List[str]</code> </p>"},{"location":"reference/functions/streampipes_function/#streampipes.functions.streampipes_function.StreamPipesFunction.stop","title":"<code>stop()</code>","text":"<p>Stops the function and disconnects from the output streams</p>"},{"location":"reference/functions/broker/broker/","title":"Broker","text":""},{"location":"reference/functions/broker/broker/#streampipes.functions.broker.broker.Broker","title":"<code>Broker</code>","text":"<p>             Bases: <code>ABC</code></p> <p>Abstract implementation of a broker for consumer and publisher.</p> <p>It contains the basic logic to connect to a data stream.</p>"},{"location":"reference/functions/broker/broker/#streampipes.functions.broker.broker.Broker.connect","title":"<code>connect(data_stream)</code>  <code>async</code>","text":"<p>Connects to the broker running in StreamPipes.</p> PARAMETER  DESCRIPTION <code>data_stream</code> <p>Contains the meta information (resources) for a data stream.</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/broker/#streampipes.functions.broker.broker.Broker.disconnect","title":"<code>disconnect()</code>  <code>abstractmethod</code> <code>async</code>","text":"<p>Closes the connection to the server.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/broker_handler/","title":"Broker handler","text":""},{"location":"reference/functions/broker/broker_handler/#streampipes.functions.broker.broker_handler.SupportedBroker","title":"<code>SupportedBroker</code>","text":"<p>             Bases: <code>Enum</code></p> <p>Enum for the supported brokers.</p>"},{"location":"reference/functions/broker/broker_handler/#streampipes.functions.broker.broker_handler.UnsupportedBrokerError","title":"<code>UnsupportedBrokerError(broker_name)</code>","text":"<p>             Bases: <code>Exception</code></p> <p>Exception if a broker isn't implemented yet.</p>"},{"location":"reference/functions/broker/broker_handler/#streampipes.functions.broker.broker_handler.get_broker","title":"<code>get_broker(data_stream, is_publisher=False)</code>","text":"<p>Derive the broker for the given data stream.</p> PARAMETER  DESCRIPTION <code>data_stream</code> <p>Data stream instance from which the broker is inferred</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>broker</code> <p>The corresponding broker instance derived from data stream.</p> <p> TYPE: <code>Broker</code> </p> RAISES DESCRIPTION <code>UnsupportedBrokerError</code> <p>Is raised when the given data stream belongs to a broker that is currently not supported by StreamPipes Python.</p>"},{"location":"reference/functions/broker/broker_handler/#streampipes.functions.broker.broker_handler.get_broker_description","title":"<code>get_broker_description(data_stream)</code>","text":"<p>Derive the decription of the broker for the given data stream.</p> PARAMETER  DESCRIPTION <code>data_stream</code> <p>Data stream instance from which the broker is inferred</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>broker</code> <p>The corresponding broker description derived from data stream.</p> <p> TYPE: <code>SupportedBroker</code> </p> RAISES DESCRIPTION <code>UnsupportedBrokerError</code> <p>Is raised when the given data stream belongs to a broker that is currently not supported by StreamPipes Python.</p>"},{"location":"reference/functions/broker/consumer/","title":"Consumer","text":""},{"location":"reference/functions/broker/consumer/#streampipes.functions.broker.consumer.Consumer","title":"<code>Consumer</code>","text":"<p>             Bases: <code>Broker</code></p> <p>Abstract implementation a consumer for a broker.</p> <p>A consumer allows to subscribe to a data stream.</p>"},{"location":"reference/functions/broker/consumer/#streampipes.functions.broker.consumer.Consumer.connect","title":"<code>connect(data_stream)</code>  <code>async</code>","text":"<p>Connects to the broker running in StreamPipes and creates a subscription.</p> PARAMETER  DESCRIPTION <code>data_stream</code> <p>Contains the meta information (resources) for a data stream.</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/consumer/#streampipes.functions.broker.consumer.Consumer.get_message","title":"<code>get_message()</code>  <code>abstractmethod</code>","text":"<p>Get the published messages of the subscription.</p> RETURNS DESCRIPTION <code>iterator</code> <p>An async iterator for the messages.</p> <p> TYPE: <code>AsyncIterator</code> </p>"},{"location":"reference/functions/broker/output_collector/","title":"Output collector","text":""},{"location":"reference/functions/broker/output_collector/#streampipes.functions.broker.output_collector.OutputCollector","title":"<code>OutputCollector(data_stream)</code>","text":"<p>Collector for output events. The events are published to an output data stream. Therefore, the output collector establishes a connection to the broker.</p> PARAMETER  DESCRIPTION <code>data_stream</code> <p>The output data stream that will receive the events.</p> <p> TYPE: <code>DataStream</code> </p> ATTRIBUTE DESCRIPTION <code>publisher</code> <p>The publisher instance that sends the data to StreamPipes</p> <p> TYPE: <code>Publisher</code> </p>"},{"location":"reference/functions/broker/output_collector/#streampipes.functions.broker.output_collector.OutputCollector.collect","title":"<code>collect(event)</code>","text":"<p>Publishes an event to the output stream.</p> PARAMETER  DESCRIPTION <code>event</code> <p>The event to be published.</p> <p> TYPE: <code>Dict[str, Any]</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/output_collector/#streampipes.functions.broker.output_collector.OutputCollector.disconnect","title":"<code>disconnect()</code>","text":"<p>Disconnects the broker of the output collector.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/publisher/","title":"Publisher","text":""},{"location":"reference/functions/broker/publisher/#streampipes.functions.broker.publisher.Publisher","title":"<code>Publisher</code>","text":"<p>             Bases: <code>Broker</code></p> <p>Abstract implementation of a publisher for a broker.</p> <p>A publisher allows to publish events to a data stream.</p>"},{"location":"reference/functions/broker/publisher/#streampipes.functions.broker.publisher.Publisher.publish_event","title":"<code>publish_event(event)</code>  <code>abstractmethod</code> <code>async</code>","text":"<p>Publish an event to a connected data stream.</p> PARAMETER  DESCRIPTION <code>event</code> <p>The event to be published.</p> <p> TYPE: <code>Dict[str, Any]</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/kafka/kafka_consumer/","title":"Kafka consumer","text":""},{"location":"reference/functions/broker/kafka/kafka_consumer/#streampipes.functions.broker.kafka.kafka_consumer.KafkaConsumer","title":"<code>KafkaConsumer</code>","text":"<p>             Bases: <code>Consumer</code></p> <p>Implementation of a consumer for Kafka</p>"},{"location":"reference/functions/broker/kafka/kafka_consumer/#streampipes.functions.broker.kafka.kafka_consumer.KafkaConsumer.disconnect","title":"<code>disconnect()</code>  <code>async</code>","text":"<p>Closes the connection to the server.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/kafka/kafka_consumer/#streampipes.functions.broker.kafka.kafka_consumer.KafkaConsumer.get_message","title":"<code>get_message()</code>","text":"<p>Get the published messages of the subscription.</p> RETURNS DESCRIPTION <code>iterator</code> <p>An async iterator for the messages.</p> <p> TYPE: <code>AsyncIterator</code> </p>"},{"location":"reference/functions/broker/kafka/kafka_message_fetcher/","title":"Kafka message fetcher","text":""},{"location":"reference/functions/broker/kafka/kafka_message_fetcher/#streampipes.functions.broker.kafka.kafka_message_fetcher.KafkaMessage","title":"<code>KafkaMessage(data)</code>","text":"<p>An internal representation of a Kafka message</p> PARAMETER  DESCRIPTION <code>data</code> <p>The received Kafka message as byte array</p> <p> </p>"},{"location":"reference/functions/broker/kafka/kafka_message_fetcher/#streampipes.functions.broker.kafka.kafka_message_fetcher.KafkaMessageFetcher","title":"<code>KafkaMessageFetcher(consumer)</code>","text":"<p>Fetches the next message from Kafka</p> PARAMETER  DESCRIPTION <code>consumer</code> <p>The Kafka consumer</p> <p> TYPE: <code>Consumer</code> </p>"},{"location":"reference/functions/broker/kafka/kafka_publisher/","title":"Kafka publisher","text":""},{"location":"reference/functions/broker/kafka/kafka_publisher/#streampipes.functions.broker.kafka.kafka_publisher.KafkaPublisher","title":"<code>KafkaPublisher</code>","text":"<p>             Bases: <code>Publisher</code></p> <p>Implementation of a publisher for Kafka</p>"},{"location":"reference/functions/broker/kafka/kafka_publisher/#streampipes.functions.broker.kafka.kafka_publisher.KafkaPublisher.disconnect","title":"<code>disconnect()</code>  <code>async</code>","text":"<p>Closes the connection to the server.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/kafka/kafka_publisher/#streampipes.functions.broker.kafka.kafka_publisher.KafkaPublisher.publish_event","title":"<code>publish_event(event)</code>  <code>async</code>","text":"<p>Publish an event to a connected data stream.</p> PARAMETER  DESCRIPTION <code>event</code> <p>The event to be published.</p> <p> TYPE: <code>Dict[str, Any]</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/nats/nats_consumer/","title":"Nats consumer","text":""},{"location":"reference/functions/broker/nats/nats_consumer/#streampipes.functions.broker.nats.nats_consumer.NatsConsumer","title":"<code>NatsConsumer</code>","text":"<p>             Bases: <code>Consumer</code></p> <p>Implementation of a consumer for NATS</p>"},{"location":"reference/functions/broker/nats/nats_consumer/#streampipes.functions.broker.nats.nats_consumer.NatsConsumer.disconnect","title":"<code>disconnect()</code>  <code>async</code>","text":"<p>Closes the connection to the server.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/nats/nats_consumer/#streampipes.functions.broker.nats.nats_consumer.NatsConsumer.get_message","title":"<code>get_message()</code>","text":"<p>Get the published messages of the subscription.</p> RETURNS DESCRIPTION <code>message_iterator</code> <p>An async iterator for the messages.</p> <p> TYPE: <code>AsyncIterator</code> </p>"},{"location":"reference/functions/broker/nats/nats_publisher/","title":"Nats publisher","text":""},{"location":"reference/functions/broker/nats/nats_publisher/#streampipes.functions.broker.nats.nats_publisher.NatsPublisher","title":"<code>NatsPublisher</code>","text":"<p>             Bases: <code>Publisher</code></p> <p>Implementation of a publisher for NATS</p>"},{"location":"reference/functions/broker/nats/nats_publisher/#streampipes.functions.broker.nats.nats_publisher.NatsPublisher.disconnect","title":"<code>disconnect()</code>  <code>async</code>","text":"<p>Closes the connection to the server.</p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/broker/nats/nats_publisher/#streampipes.functions.broker.nats.nats_publisher.NatsPublisher.publish_event","title":"<code>publish_event(event)</code>  <code>async</code>","text":"<p>Publish an event to a connected data stream.</p> PARAMETER  DESCRIPTION <code>event</code> <p>The event to be published.</p> <p> TYPE: <code>Dict[str, Any]</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/utils/async_iter_handler/","title":"Async iter handler","text":""},{"location":"reference/functions/utils/async_iter_handler/#streampipes.functions.utils.async_iter_handler.AsyncIterHandler","title":"<code>AsyncIterHandler</code>","text":"<p>Handles asynchronous iterators to get every message after another in parallel.</p>"},{"location":"reference/functions/utils/async_iter_handler/#streampipes.functions.utils.async_iter_handler.AsyncIterHandler.anext","title":"<code>anext(stream_id, message)</code>  <code>async</code> <code>staticmethod</code>","text":"<p>Gets the next message from an AsyncIterator.</p> PARAMETER  DESCRIPTION <code>stream_id</code> <p>The id of the data stream which the message belongs to.</p> <p> TYPE: <code>str</code> </p> <code>message</code> <p>An asynchronous iterator that contains the messages.</p> <p> TYPE: <code>AsyncIterator</code> </p> RETURNS DESCRIPTION <code>result</code> <p>Tuple of the stream id und next message or <code>(\"stop\", None)</code> if no message is left.</p> <p> TYPE: <code>Tuple[str, Optional[Any]]</code> </p>"},{"location":"reference/functions/utils/async_iter_handler/#streampipes.functions.utils.async_iter_handler.AsyncIterHandler.combine_async_messages","title":"<code>combine_async_messages(messages)</code>  <code>async</code> <code>staticmethod</code>","text":"<p>Continuously gets the next published message from multiple AsyncIterators in parallel.</p> PARAMETER  DESCRIPTION <code>messages</code> <p>A dictionary with an asynchronous iterator for every stream id.</p> <p> TYPE: <code>Dict[str, AsyncIterator]</code> </p> YIELDS DESCRIPTION <code>message</code> <p>Description of the anonymous integer return value.</p> <p> TYPE:: <code>Tuple[str, Any]</code> </p>"},{"location":"reference/functions/utils/data_stream_context/","title":"Data stream context","text":""},{"location":"reference/functions/utils/data_stream_context/#streampipes.functions.utils.data_stream_context.DataStreamContext","title":"<code>DataStreamContext(functions, schema, broker)</code>","text":"<p>Container for the context of a data stream.</p> PARAMETER  DESCRIPTION <code>functions</code> <p>StreamPipes Functions which require the data of this data stream.</p> <p> TYPE: <code>List[StreamPipesFunction]</code> </p> <code>schema</code> <p>The schema of this data stream.</p> <p> TYPE: <code>DataStream</code> </p> <code>broker</code> <p>The consumer to connect to this data stream.</p> <p> TYPE: <code>Consumer</code> </p>"},{"location":"reference/functions/utils/data_stream_context/#streampipes.functions.utils.data_stream_context.DataStreamContext.add_function","title":"<code>add_function(function)</code>","text":"<p>Adds a new StreamPipes Function.</p> PARAMETER  DESCRIPTION <code>function</code> <p>StreamPipesFunction which requires this data stream.</p> <p> TYPE: <code>StreamPipesFunction</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/functions/utils/data_stream_generator/","title":"Data stream generator","text":""},{"location":"reference/functions/utils/data_stream_generator/#streampipes.functions.utils.data_stream_generator.RuntimeType","title":"<code>RuntimeType</code>","text":"<p>             Bases: <code>Enum</code></p> <p>Runtime type names for the attributes of a data stream.</p> ATTRIBUTE DESCRIPTION <code>STRING</code> <p> </p> <code>BOOLEAN</code> <p> </p> <code>DOUBLE</code> <p> </p> <code>FLOAT</code> <p> </p> <code>INTEGER</code> <p> </p> <code>LONG</code> <p> </p>"},{"location":"reference/functions/utils/data_stream_generator/#streampipes.functions.utils.data_stream_generator.create_data_stream","title":"<code>create_data_stream(name, attributes, stream_id=None, broker=SupportedBroker.NATS)</code>","text":"<p>Creates a data stream</p> PARAMETER  DESCRIPTION <code>name</code> <p>Name of the data stream to be shown at the UI.</p> <p> TYPE: <code>str</code> </p> <code>attributes</code> <p>Name and types of the attributes.</p> <p> TYPE: <code>Dict[str, str]</code> </p> <code>stream_id</code> <p>The id of this data stream.</p> <p> TYPE: <code>Optional[str]</code> DEFAULT: <code>None</code> </p> RETURNS DESCRIPTION <code>data_stream</code> <p>The created data stream</p> <p> TYPE: <code>DataStream</code> </p>"},{"location":"reference/functions/utils/function_context/","title":"Function context","text":""},{"location":"reference/functions/utils/function_context/#streampipes.functions.utils.function_context.FunctionContext","title":"<code>FunctionContext(function_id, schema, client, streams)</code>","text":"<p>Container for the context of a StreamPipesFunction.</p> PARAMETER  DESCRIPTION <code>function_id</code> <p>The id of this function.</p> <p> TYPE: <code>str</code> </p> <code>schema</code> <p>A dictionary which contains the schema of a data stream for each stream id.</p> <p> TYPE: <code>Dict[str, DataStream]</code> </p> <code>client</code> <p>The client to interact with the API.</p> <p> TYPE: <code>StreamPipesClient</code> </p> <code>streams</code> <p>The ids of the streams needed by this function.</p> <p> TYPE: <code>List[str]</code> </p>"},{"location":"reference/functions/utils/function_context/#streampipes.functions.utils.function_context.FunctionContext.add_data_stream_schema","title":"<code>add_data_stream_schema(stream_id, data_stream)</code>","text":"<p>Adds a new data stream for a new stream id.</p> PARAMETER  DESCRIPTION <code>stream_id</code> <p>The id of the data stream.</p> <p> TYPE: <code>str</code> </p> <code>data_stream</code> <p>The schema of the data stream.</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>None</code>"},{"location":"reference/model/common/","title":"Common","text":"<p>Classes of the StreamPipes data model that are commonly shared.</p>"},{"location":"reference/model/common/#streampipes.model.common.ApplicationLink","title":"<code>ApplicationLink</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Data model of an <code>ApplicationLink</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.BaseElement","title":"<code>BaseElement</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Structure of a basic element in the StreamPipes backend</p>"},{"location":"reference/model/common/#streampipes.model.common.BasicModel","title":"<code>BasicModel</code>","text":"<p>             Bases: <code>BaseModel</code></p> <p>Basic model class used for the whole Python StreamPipes data model.</p>"},{"location":"reference/model/common/#streampipes.model.common.BasicModel.Config","title":"<code>Config</code>","text":"<p>Configuration class for Pydantic. Defines alias generator to convert field names from camelCase (API) to snake_case (Python codebase).</p>"},{"location":"reference/model/common/#streampipes.model.common.EventGrounding","title":"<code>EventGrounding</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Data model of an <code>EventGrounding</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.EventProperty","title":"<code>EventProperty</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Data model of an <code>EventProperty</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.EventSchema","title":"<code>EventSchema</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Data model of an <code>EventSchema</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.MeasurementCapability","title":"<code>MeasurementCapability</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Data model of a <code>MeasurementCapability</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.MeasurementObject","title":"<code>MeasurementObject</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Data model of a <code>MeasurementObject</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.TopicDefinition","title":"<code>TopicDefinition</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Data model of a <code>TopicDefinition</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.TransportFormat","title":"<code>TransportFormat</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Data model of a <code>TransportFormat</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.TransportProtocol","title":"<code>TransportProtocol</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Data model of a <code>TransportProtocol</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.ValueSpecification","title":"<code>ValueSpecification</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Data model of an <code>ValueSpecification</code> in compliance to the StreamPipes Backend.</p>"},{"location":"reference/model/common/#streampipes.model.common.random_letters","title":"<code>random_letters(n)</code>","text":"<p>Generates a string consisting of random letters.</p> PARAMETER  DESCRIPTION <code>n</code> <p>number of letters</p> <p> TYPE: <code>int</code> </p> RETURNS DESCRIPTION <code>rand_str</code> <p>String consisting of <code>n</code> random letters</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/model/container/data_lake_measures/","title":"Data lake measures","text":"<p>Implementation of a resource container for the data lake measures endpoint.</p>"},{"location":"reference/model/container/data_lake_measures/#streampipes.model.container.data_lake_measures.DataLakeMeasures","title":"<code>DataLakeMeasures</code>","text":"<p>             Bases: <code>ResourceContainer</code></p> <p>Implementation of the resource container for the data lake measures endpoint.</p> <p>This resource container is a collection of data lake measures returned by the StreamPipes API. It is capable of parsing the response content directly into a list of queried <code>DataLakeMeasure</code>. Furthermore, the resource container makes them accessible in a pythonic manner.</p>"},{"location":"reference/model/container/data_streams/","title":"Data streams","text":"<p>Implementation of a resource container for the data streams endpoint.</p>"},{"location":"reference/model/container/data_streams/#streampipes.model.container.data_streams.DataStreams","title":"<code>DataStreams</code>","text":"<p>             Bases: <code>ResourceContainer</code></p> <p>Implementation of the resource container for the data stream endpoint.</p> <p>This resource container is a collection of data streams returned by the StreamPipes API. It is capable of parsing the response content directly into a list of queried <code>DataStream</code>. Furthermore, the resource container makes them accessible in a pythonic manner.</p>"},{"location":"reference/model/container/resource_container/","title":"Resource container","text":"<p>General and abstract implementation for a resource container.</p> <p>A resource container is a collection of resources returned by the StreamPipes API. It is capable of parsing the response content directly into a list of queried resources. Furthermore, the resource container makes them accessible in a pythonic manner.</p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.ResourceContainer","title":"<code>ResourceContainer(resources)</code>","text":"<p>             Bases: <code>ABC</code></p> <p>General and abstract implementation for a resource container.</p> <p>A resource container is a collection of resources returned by the StreamPipes API. It is capable of parsing the response content directly into a list of queried resources. Furthermore, the resource container makes them accessible in a pythonic manner.</p> PARAMETER  DESCRIPTION <code>resources</code> <p>A list of resources to be contained in the <code>ResourceContainer</code>.</p> <p> TYPE: <code>List[Resource]</code> </p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.ResourceContainer.from_json","title":"<code>from_json(json_string)</code>  <code>classmethod</code>","text":"<p>Creates a <code>ResourceContainer</code> from the given JSON string.</p> PARAMETER  DESCRIPTION <code>json_string</code> <p>The JSON string returned from the StreamPipes API.</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>container</code> <p>instance of the container derived from the JSON definition</p> <p> TYPE: <code>ResourceContainer</code> </p> RAISES DESCRIPTION <code>StreamPipesDataModelError</code> <p>If a resource cannot be mapped to the corresponding Python data model.</p> <code>StreamPipesResourceContainerJSONError</code> <p>If JSON response cannot be parsed to a <code>ResourceContainer</code>.</p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.ResourceContainer.to_dicts","title":"<code>to_dicts(use_source_names=False)</code>","text":"<p>Returns the contained resources as list of dictionaries.</p> PARAMETER  DESCRIPTION <code>use_source_names</code> <p>Determines whether the field names are named in Python style (=<code>False</code>) or as originally named by StreamPipes (=<code>True</code>).</p> <p> TYPE: <code>bool</code> DEFAULT: <code>False</code> </p> RETURNS DESCRIPTION <code>dictionary_list</code> <p>List of resources in dictionary representation. If <code>use_source_names</code> equals <code>True</code> the keys are named as in the StreamPipes backend.</p> <p> TYPE: <code>List[Dict[str, Any]]</code> </p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.ResourceContainer.to_json","title":"<code>to_json()</code>","text":"<p>Returns the resource container in the StreamPipes JSON representation.</p> RETURNS DESCRIPTION <code> json_string: str</code> <p>JSON representation of the resource container where key names are equal to keys used in the StreamPipes backend</p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.ResourceContainer.to_pandas","title":"<code>to_pandas()</code>","text":"<p>Returns the resource container in representation of a Pandas Dataframe.</p> RETURNS DESCRIPTION <code>resource_container_df</code> <p>Representation of the resource container as pandas DataFrame</p> <p> TYPE: <code>pd.DataFrame</code> </p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.StreamPipesDataModelError","title":"<code>StreamPipesDataModelError(validation_error)</code>","text":"<p>             Bases: <code>Exception</code></p> <p>A custom exception to be raised when a validation error occurs during the parsing of StreamPipes API responses.</p> PARAMETER  DESCRIPTION <code>validation_error</code> <p>The validation error thrown by Pydantic during parsing.</p> <p> TYPE: <code>ValidationError</code> </p>"},{"location":"reference/model/container/resource_container/#streampipes.model.container.resource_container.StreamPipesResourceContainerJSONError","title":"<code>StreamPipesResourceContainerJSONError(container_name, json_string)</code>","text":"<p>             Bases: <code>Exception</code></p> <p>A custom exception to be raised when the returned JSON string does not suit to the structure of resource container.</p> PARAMETER  DESCRIPTION <code>container_name</code> <p>The class name of the resource container where the invalid data structure was detected.</p> <p> TYPE: <code>str</code> </p> <code>json_string</code> <p>The JSON string that has been tried to parse.</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/model/container/versions/","title":"Versions","text":"<p>Implementation of a resource container for the versions endpoint.</p>"},{"location":"reference/model/container/versions/#streampipes.model.container.versions.Versions","title":"<code>Versions</code>","text":"<p>             Bases: <code>ResourceContainer</code></p> <p>Implementation of the resource container for the versions endpoint.</p> <p>This resource container is a collection of versions returned by the StreamPipes API. It is capable of parsing the response content directly into a list of queried <code>Version</code>. Furthermore, the resource container makes them accessible in a pythonic manner.</p> PARAMETER  DESCRIPTION <code>resources</code> <p>A list of resources (Version) to be contained in the <code>ResourceContainer</code>.</p> <p> </p>"},{"location":"reference/model/resource/data_lake_measure/","title":"Data lake measure","text":""},{"location":"reference/model/resource/data_lake_measure/#streampipes.model.resource.data_lake_measure.DataLakeMeasure","title":"<code>DataLakeMeasure</code>","text":"<p>             Bases: <code>Resource</code></p> <p>Implementation of a resource for data lake measures.</p> <p>This resource defines the data model used by resource container (<code>model.container.DataLakeMeasures</code>). It inherits from Pydantic's BaseModel to get all its superpowers, which are used to parse, validate the API response, and to easily switch between the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>"},{"location":"reference/model/resource/data_lake_measure/#streampipes.model.resource.data_lake_measure.DataLakeMeasure.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of a data lake measure to be used when creating a pandas Dataframe.</p> <p>It excludes the following fields: <code>element_id</code>, <code>event_schema</code>, <code>schema_version</code>. Instead of the whole event schema the number of event properties contained is returned with the column name <code>num_event_properties</code>.</p> RETURNS DESCRIPTION <code>pandas_repr</code> <p>Pandas representation of the resource as a dictionary, which is then used by the respource container to create a data frame from a collection of resources.</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/data_series/","title":"Data series","text":""},{"location":"reference/model/resource/data_series/#streampipes.model.resource.data_series.DataSeries","title":"<code>DataSeries</code>","text":"<p>             Bases: <code>Resource</code></p> <p>Implementation of a resource for data series. This resource defines the data model used by its resource container(<code>model.container.DataLakeMeasures</code>). It inherits from Pydantic's BaseModel to get all its superpowers, which are used to parse, validate the API response and to easily switch between the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>"},{"location":"reference/model/resource/data_series/#streampipes.model.resource.data_series.DataSeries--notes","title":"Notes","text":"<pre><code>This class will only exist temporarily in it its current appearance since\nthere are some inconsistencies in the StreamPipes API.\n</code></pre>"},{"location":"reference/model/resource/data_series/#streampipes.model.resource.data_series.DataSeries.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of a data lake series to be used when creating a pandas Dataframe.</p> <p>It contains only the \"header rows\" (the column names) and \"rows\" that contain the actual data.</p> RETURNS DESCRIPTION <code>pandas_repr</code> <p>Dictionary with the keys <code>headers</code> and <code>rows</code></p> <p> TYPE: <code>dict[str, Any]</code> </p>"},{"location":"reference/model/resource/data_series/#streampipes.model.resource.data_series.DataSeries.from_json","title":"<code>from_json(json_string)</code>  <code>classmethod</code>","text":"<p>Creates an instance of <code>DataSeries</code> from a given JSON string.</p> <p>This method is used by the resource container to parse the JSON response of the StreamPipes API. Currently, it only supports data lake series that consist of exactly one series of data.</p> PARAMETER  DESCRIPTION <code>json_string</code> <p>The JSON string the data lake series should be created on.</p> <p> TYPE: <code>str</code> </p> RETURNS DESCRIPTION <code>DataSeries</code> <p>Instance of <code>DataSeries</code> that is created based on the given JSON string.</p> RAISES DESCRIPTION <code>StreamPipesUnsupportedDataLakeSeries</code> <p>If the data lake series returned by the StreamPipes API cannot be parsed with the current version of the Python client.</p>"},{"location":"reference/model/resource/data_series/#streampipes.model.resource.data_series.DataSeries.to_pandas","title":"<code>to_pandas()</code>","text":"<p>Returns the data lake series in representation of a Pandas Dataframe.</p> RETURNS DESCRIPTION <code>pd</code> <p>The data lake series in form of a pandas dataframe</p> <p> TYPE: <code>pd.DataFrame</code> </p>"},{"location":"reference/model/resource/data_stream/","title":"Data stream","text":""},{"location":"reference/model/resource/data_stream/#streampipes.model.resource.data_stream.DataStream","title":"<code>DataStream(**kwargs)</code>","text":"<p>             Bases: <code>Resource</code></p> <p>Implementation of a resource for data streams.</p> <p>This resource defines the data model used by resource container (<code>model.container.DataStreams</code>). It inherits from Pydantic's BaseModel to get all its superpowers, which are used to parse, validate the API response and to easily switch between the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>"},{"location":"reference/model/resource/data_stream/#streampipes.model.resource.data_stream.DataStream.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of a data stream to be used when creating a pandas Dataframe.</p> RETURNS DESCRIPTION <code>pandas_repr</code> <p>Pandas representation of the resource as a dictionary, which is then used by the respource container to create a data frame from a collection of resources.</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/data_stream/#streampipes.model.resource.data_stream.DataStream.to_dict","title":"<code>to_dict(use_source_names=True)</code>","text":"<p>Returns the resource in dictionary representation.</p> PARAMETER  DESCRIPTION <code>use_source_names</code> <p>Indicates if the dictionary keys are in python representation or equally named to the StreamPipes backend</p> <p> DEFAULT: <code>True</code> </p> RETURNS DESCRIPTION <code>resource</code> <p>The resource as dictionary representation</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/exceptions/","title":"Exceptions","text":""},{"location":"reference/model/resource/exceptions/#streampipes.model.resource.exceptions.StreamPipesUnsupportedDataSeries","title":"<code>StreamPipesUnsupportedDataSeries(reason=None)</code>","text":"<p>             Bases: <code>Exception</code></p> <p>Exception to be raised when the returned data lake series cannot be parsed with the current implementation of the resource.</p>"},{"location":"reference/model/resource/function_definition/","title":"Function definition","text":""},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition","title":"<code>FunctionDefinition</code>","text":"<p>             Bases: <code>Resource</code></p> <p>Configuration for a StreamPipes Function.</p> <p>This class maps to the <code>FunctionDefinition</code> class in the StreamPipes model. It contains all metadata that are required to register a function at the StreamPipes backend.</p> PARAMETER  DESCRIPTION <code>consumed_streams</code> <p>List of data streams the function is consuming from</p> <p> </p> <code>function_id</code> <p>identifier object of a StreamPipes function</p> <p> </p> ATTRIBUTE DESCRIPTION <code>output_data_streams</code> <p>Map off all output data streams added to the function definition</p> <p> TYPE: <code>Dict[str, DataStream]</code> </p>"},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition.add_output_data_stream","title":"<code>add_output_data_stream(data_stream)</code>","text":"<p>Adds an output data stream to the function which makes it possible to write data back to StreamPipes.</p> PARAMETER  DESCRIPTION <code>data_stream</code> <p>The schema of the output data stream.</p> <p> TYPE: <code>DataStream</code> </p> RETURNS DESCRIPTION <code>self</code> <p>Instance of the function definition that is extended by the provided <code>DataStream</code></p> <p> TYPE: <code>FunctionDefinition</code> </p>"},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of a function definition to be used when creating a pandas Dataframe.</p> RETURNS DESCRIPTION <code>pandas_repr</code> <p>Pandas representation of the resource as a dictionary, which is then used by the respource container to create a data frame from a collection of resources.</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition.get_output_data_streams","title":"<code>get_output_data_streams()</code>","text":"<p>Get the output data streams of the function.</p> RETURNS DESCRIPTION <code>output_streams</code> <p>Dictionary with every known stream id and the related output stream.</p> <p> TYPE: <code>Dict[str, DataStream]</code> </p>"},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition.get_output_stream_ids","title":"<code>get_output_stream_ids()</code>","text":"<p>Get the stream ids of the output data streams.</p> RETURNS DESCRIPTION <code>output_stream_ids</code> <p>List of all stream ids</p> <p> TYPE: <code>List[str]</code> </p>"},{"location":"reference/model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionId","title":"<code>FunctionId</code>","text":"<p>             Bases: <code>BasicModel</code></p> <p>Identification object for a StreamPipes function.</p> <p>Maps to the <code>FunctionId</code> class defined in the StreamPipes model.</p> PARAMETER  DESCRIPTION <code>id</code> <p>unique identifier of the function instance</p> <p> </p> <code>version</code> <p>version of the corresponding function</p> <p> </p>"},{"location":"reference/model/resource/query_result/","title":"Query result","text":""},{"location":"reference/model/resource/query_result/#streampipes.model.resource.query_result.QueryResult","title":"<code>QueryResult</code>","text":"<p>             Bases: <code>Resource</code></p> <p>Implementation of a resource for query result. This resource defines the data model used by its resource container(<code>model.container.DataLakeMeasures</code>). It inherits from Pydantic's BaseModel to get all its superpowers, which are used to parse, validate the API response and to easily switch between the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>"},{"location":"reference/model/resource/query_result/#streampipes.model.resource.query_result.QueryResult.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of a data lake series to be used when creating a pandas Dataframe.</p> <p>It contains only the \"header rows\" (the column names) and \"rows\" that contain the actual data.</p> RETURNS DESCRIPTION <code>dict</code> <p>Dictionary with the keys <code>headers</code> and <code>rows</code></p> RAISES DESCRIPTION <code>StreamPipesUnsupportedDataLakeSeries</code> <p>If the query result returned by the StreamPipes API cannot be converted to the pandas representation</p>"},{"location":"reference/model/resource/query_result/#streampipes.model.resource.query_result.QueryResult.to_pandas","title":"<code>to_pandas()</code>","text":"<p>Returns the data lake series in representation of a Pandas Dataframe.</p> RETURNS DESCRIPTION <code>df</code> <p>Pandas df containing the query result</p> <p> TYPE: <code>pd.DataFrame</code> </p>"},{"location":"reference/model/resource/resource/","title":"Resource","text":"<p>General and abstract implementation for a resource.</p> <p>A resource defines the data model that is used by a resource container (<code>model.container.resourceContainer</code>).</p>"},{"location":"reference/model/resource/resource/#streampipes.model.resource.resource.Resource","title":"<code>Resource</code>","text":"<p>             Bases: <code>ABC</code>, <code>BasicModel</code></p> <p>General and abstract implementation for a resource.</p> <p>A resource defines the data model used by a resource container (<code>model.container.resourceContainer</code>). It inherits from Pydantic's BaseModel to get all its superpowers, which are used to parse, validate the API response and to easily switch between the Python representation (both serialized and deserialized) and Java representation (serialized only).</p>"},{"location":"reference/model/resource/resource/#streampipes.model.resource.resource.Resource.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>  <code>abstractmethod</code>","text":"<p>Returns a dictionary representation to be used when creating a pandas Dataframe.</p> RETURNS DESCRIPTION <code>pandas_repr</code> <p>Pandas representation of the resource as a dictionary, which is then used by the respource container to create a data frame from a collection of resources.</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/resource/#streampipes.model.resource.resource.Resource.to_dict","title":"<code>to_dict(use_source_names=True)</code>","text":"<p>Returns the resource in dictionary representation.</p> PARAMETER  DESCRIPTION <code>use_source_names</code> <p>Indicates if the dictionary keys are in python representation or equally named to the StreamPipes backend</p> <p> DEFAULT: <code>True</code> </p> RETURNS DESCRIPTION <code>resource</code> <p>The resource as dictionary representation</p> <p> TYPE: <code>Dict[str, Any]</code> </p>"},{"location":"reference/model/resource/version/","title":"Version","text":""},{"location":"reference/model/resource/version/#streampipes.model.resource.version.Version","title":"<code>Version</code>","text":"<p>             Bases: <code>Resource</code></p> <p>Metadata about the version of the connected StreamPipes server.</p> ATTRIBUTE DESCRIPTION <code>backend_version</code> <p>version of the StreamPipes backend the client is connected to</p> <p> TYPE: <code>str</code> </p>"},{"location":"reference/model/resource/version/#streampipes.model.resource.version.Version.convert_to_pandas_representation","title":"<code>convert_to_pandas_representation()</code>","text":"<p>Returns the dictionary representation of the version metadata to be used when creating a pandas Dataframe.</p>"},{"location":"scripts/gen_ref_pages/","title":"Gen ref pages","text":"<p>Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.  You may obtain a copy of the License at</p> <p>http://www.apache.org/licenses/LICENSE-2.0</p> <p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p> In\u00a0[\u00a0]: Copied! <pre>from pathlib import Path\n</pre> from pathlib import Path In\u00a0[\u00a0]: Copied! <pre>import mkdocs_gen_files\n</pre> import mkdocs_gen_files In\u00a0[\u00a0]: Copied! <pre>nav = mkdocs_gen_files.Nav()\n</pre> nav = mkdocs_gen_files.Nav() In\u00a0[\u00a0]: Copied! <pre>for path in sorted(Path(\"streampipes\").rglob(\"*.py\")):\n    module_path = path.relative_to(\"streampipes\").with_suffix(\"\")\n    doc_path = path.relative_to(\"streampipes\").with_suffix(\".md\")\n    full_doc_path = Path(\"reference\", doc_path)\n\n    parts = list(module_path.parts)\n\n    if parts[-1] == \"__init__\":\n        # parts = parts[:-1]\n        continue\n    elif parts[-1] == \"__version__\":\n        continue\n    elif parts[-1] == \"__main__\":\n        continue\n    elif parts[-1] == \" \":\n        continue\n\n    nav[parts] = doc_path.as_posix()\n\n    with mkdocs_gen_files.open(full_doc_path, \"w+\") as fd:\n        identifier = \".\".join(parts)\n        print(f\"::: streampipes.{identifier}\", file=fd)\n\n    mkdocs_gen_files.set_edit_path(full_doc_path, path)\n</pre> for path in sorted(Path(\"streampipes\").rglob(\"*.py\")):     module_path = path.relative_to(\"streampipes\").with_suffix(\"\")     doc_path = path.relative_to(\"streampipes\").with_suffix(\".md\")     full_doc_path = Path(\"reference\", doc_path)      parts = list(module_path.parts)      if parts[-1] == \"__init__\":         # parts = parts[:-1]         continue     elif parts[-1] == \"__version__\":         continue     elif parts[-1] == \"__main__\":         continue     elif parts[-1] == \" \":         continue      nav[parts] = doc_path.as_posix()      with mkdocs_gen_files.open(full_doc_path, \"w+\") as fd:         identifier = \".\".join(parts)         print(f\"::: streampipes.{identifier}\", file=fd)      mkdocs_gen_files.set_edit_path(full_doc_path, path) <p>with mkdocs_gen_files.open(\"reference/SUMMARY.md\", \"w+\") as nav_file: nav_file.writelines(nav.build_literate_nav())</p>"},{"location":"tutorials/1-introduction-to-streampipes-python-client/","title":"Introduction to StreamPipes Python","text":"In\u00a0[\u00a0]: Copied! <pre>%pip install streampipes\n</pre> %pip install streampipes  <p>If you want to have the current development state you can also execute:</p> In\u00a0[\u00a0]: Copied! <pre>%pip install git+https://github.com/apache/streampipes.git#subdirectory=streampipes-client-python\n</pre>  %pip install git+https://github.com/apache/streampipes.git#subdirectory=streampipes-client-python <p>The corresponding documentation can be found here. </p> In\u00a0[\u00a0]: Copied! <pre>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</pre> from streampipes.client import StreamPipesClient from streampipes.client.config import StreamPipesClientConfig from streampipes.client.credential_provider import StreamPipesApiKeyCredentials In\u00a0[\u00a0]: Copied! <pre>config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(\n        username=\"test@streampipes.apache.org\",\n        api_key=\"API-KEY\",\n    ),\n    host_address=\"localhost\",\n    https_disabled=True,\n    port=80\n)\n</pre> config = StreamPipesClientConfig(     credential_provider=StreamPipesApiKeyCredentials(         username=\"test@streampipes.apache.org\",         api_key=\"API-KEY\",     ),     host_address=\"localhost\",     https_disabled=True,     port=80 ) <p>Please be aware that connecting to StreamPipes via a <code>https</code> connection is currently not supported by the Python client.</p> <p>Providing secrets like the <code>api_key</code> as plaintext in the source code is an anti-pattern. This is why the StreamPipes client also supports passing the required secrets as environment variables. To do so, you must initialize the credential provider like the following:</p> In\u00a0[\u00a0]: Copied! <pre>StreamPipesApiKeyCredentials()\n</pre> StreamPipesApiKeyCredentials() <p>To ensure that the above code works, you must set the environment variables as expected. This can be done like following:</p> In\u00a0[\u00a0]: Copied! <pre>%export SP_USERNAME=\"&lt;USERNAME&gt;\"\n%export SP_API_KEY=\"&lt;API-KEY&gt;\"\n</pre> %export SP_USERNAME=\"\" %export SP_API_KEY=\"\" <p>Having the <code>config</code> ready, we can now initialize the actual client.</p> In\u00a0[\u00a0]: Copied! <pre>client = StreamPipesClient(client_config=config)\n</pre> client = StreamPipesClient(client_config=config) <p>That's already it. You can check if everything works out by using the following command:</p> In\u00a0[6]: Copied! <pre>client.describe()\n</pre> client.describe() <pre>2023-02-24 17:05:49,398 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n2023-02-24 17:05:49,457 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n\nHi there!\nYou are connected to a StreamPipes instance running at http://localhost:80.\nThe following StreamPipes resources are available with this client:\n1x DataLakeMeasures\n1x DataStreams\n</pre> <p>This prints you a short textual description of the connected StreamPipes instance to the console.</p> <p>The created <code>client</code> instance serves as the central point of interaction with StreamPipes. You can invoke a variety of commands directly on this object.</p> <p>Are you curious now how you actually can get data out of StreamPipes and make use of it with Python? Then check out the next tutorial on extracting Data from the StreamPipes data lake.</p> <p>Thanks for reading this introductory tutorial. We hope you like it and would love to receive some feedback from you. Just go to our GitHub discussion page and let us know your impression. We'll read and react to them all, we promise!</p>"},{"location":"tutorials/1-introduction-to-streampipes-python-client/#Introduction-to-StreamPipes-Python","title":"Introduction to StreamPipes Python\u00b6","text":""},{"location":"tutorials/1-introduction-to-streampipes-python-client/#Why-there-is-an-extra-Python-library-for-StreamPipes?","title":"Why there is an extra Python library for StreamPipes?\u00b6","text":"<p>Apache StreamPipes aims to enable non-technical users to connect and analyze IoT data streams. To this end, it provides an easy-to-use and convenient user interface that allows one to connect to an IoT data source and create some visual graphs within a few minutes.  Although this is the main use case of Apache StreamPipes, it can also provide great value for people who are eager to work on data analysis or data science with IoT data, but don't we do get in touch with all the hassle associated with extracting data from devices in a suitable format. In this scenario, StreamPipes helps you connect to your data source and extract the data for you. You then can make the data available outside StreamPipes by writing it into an external source, such as a database, Kafka, etc. While this requires another component, you can also extract your data directly from StreamPipes programmatically using the StreamPipes API. For convenience, we also provide you with a StreamPipes client both available for Java and Python. Specifically with StreamPipes Python, we want to address the amazing data analytics and data science community in Python and benefit from the great universe of Python libraries out there.</p>"},{"location":"tutorials/1-introduction-to-streampipes-python-client/#How-to-install-StreamPipes-Python?","title":"How to install StreamPipes Python?\u00b6","text":"<p>Simply use the following <code>pip</code> command:</p>"},{"location":"tutorials/1-introduction-to-streampipes-python-client/#How-to-prepare-the-tutorials","title":"How to prepare the tutorials\u00b6","text":"<p>In case you want to reproduce the first two tutorials exactly on your end, you need to create a simple pipeline in StreamPipes like demonstrated below.</p> <p></p>"},{"location":"tutorials/1-introduction-to-streampipes-python-client/#How-to-configure-the-Python-client","title":"How to configure the Python client\u00b6","text":"<p>In order to access the resources available in StreamPipes, one must be able to authenticate against the backend. For this purpose, the client sofar only supports the authentication via an API token that can be generated via the StreamPipes UI, as you see below.</p> <p></p> <p>Having generated the API token, one can directly start initializing a client instance as follows:</p>"},{"location":"tutorials/2-extracting-data-from-the-streampipes-data-lake/","title":"Extracting Data from the StreamPipes data lake","text":"In\u00a0[1]: Copied! <pre>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</pre> from streampipes.client import StreamPipesClient from streampipes.client.config import StreamPipesClientConfig from streampipes.client.credential_provider import StreamPipesApiKeyCredentials In\u00a0[\u00a0]: Copied! <pre># if you want all necessary dependencies required for this tutorial to be installed,\n# you can simply execute the following command\n%pip install matplotlib streampipes\n</pre> # if you want all necessary dependencies required for this tutorial to be installed, # you can simply execute the following command %pip install matplotlib streampipes In\u00a0[2]: Copied! <pre>import os\nos.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\"\nos.environ[\"SP_API_KEY\"] = \"XXX\"\n</pre> import os os.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\" os.environ[\"SP_API_KEY\"] = \"XXX\"  In\u00a0[3]: Copied! <pre>config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(),\n    host_address=\"localhost\",\n    https_disabled=True,\n    port=80\n)\n</pre> config = StreamPipesClientConfig(     credential_provider=StreamPipesApiKeyCredentials(),     host_address=\"localhost\",     https_disabled=True,     port=80 ) In\u00a0[4]: Copied! <pre>client = StreamPipesClient(client_config=config)\n</pre> client = StreamPipesClient(client_config=config) <pre>2023-02-24 17:34:25,860 - streampipes.client.client - [INFO] - [client.py:128] [_set_up_logging] - Logging successfully initialized with logging level INFO.\n</pre> <p>As a first step, we want to get an overview about all data available in the data lake. The data is stored as so-called <code>measures</code>, which refer to a data stream stored in the data lake. For his purpose we use the <code>all()</code> method of the <code>dataLakeMeasure</code> endpoint.</p> In\u00a0[5]: Copied! <pre>data_lake_measures = client.dataLakeMeasureApi.all()\n</pre> data_lake_measures = client.dataLakeMeasureApi.all() <pre>2023-02-24 17:34:25,929 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n</pre> <p>So let's see how many measures are available</p> In\u00a0[6]: Copied! <pre>len(data_lake_measures)\n</pre> len(data_lake_measures) Out[6]: <pre>2</pre> <p>All resources of the StreamPipes Python client support the standard Python expressions. If not, please let us know.</p> In\u00a0[7]: Copied! <pre>data_lake_measures[-1]\n</pre> data_lake_measures[-1] Out[7]: <pre>DataLakeMeasure(element_id='3cb6b5e6f107452483d1fd2ccf4bf9f9', measure_name='test', timestamp_field='s0::timestamp', event_schema=EventSchema(event_properties=[EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:EiFnkL', label='Density', description='Denotes the current density of the fluid', runtime_name='density', required=False, domain_properties=['http://schema.org/Number'], property_scope='MEASUREMENT_PROPERTY', index=5, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#float', measurement_unit=None, value_specification=None), EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:ghSkQI', label='Mass Flow', description='Denotes the current mass flow in the sensor', runtime_name='mass_flow', required=False, domain_properties=['http://schema.org/Number'], property_scope='MEASUREMENT_PROPERTY', index=2, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#float', measurement_unit=None, value_specification=None), EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:cQAUry', label='Sensor ID', description='The ID of the sensor', runtime_name='sensorId', required=False, domain_properties=['https://streampipes.org/vocabulary/examples/watertank/v1/hasSensorId'], property_scope='DIMENSION_PROPERTY', index=1, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#string', measurement_unit=None, value_specification=None), EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:pbPMyL', label='Sensor Fault Flags', description='Any fault flags of the sensors', runtime_name='sensor_fault_flags', required=False, domain_properties=['http://schema.org/Boolean'], property_scope='MEASUREMENT_PROPERTY', index=6, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#boolean', measurement_unit=None, value_specification=None), EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:Qmayhw', label='Temperature', description='Denotes the current temperature in degrees celsius', runtime_name='temperature', required=False, domain_properties=['http://schema.org/Number'], property_scope='MEASUREMENT_PROPERTY', index=4, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#float', measurement_unit='http://qudt.org/vocab/unit#DegreeCelsius', value_specification=ValueSpecification(class_name='org.apache.streampipes.model.schema.QuantitativeValue', element_id=None, min_value=0, max_value=100, step=0.1)), EventProperty(class_name='org.apache.streampipes.model.schema.EventPropertyPrimitive', element_id='sp:eventproperty:YQYhjd', label='Volume Flow', description='Denotes the current volume flow', runtime_name='volume_flow', required=False, domain_properties=['http://schema.org/Number'], property_scope='MEASUREMENT_PROPERTY', index=3, runtime_id=None, runtime_type='http://www.w3.org/2001/XMLSchema#float', measurement_unit=None, value_specification=None)]), pipeline_id=None, pipeline_name=None, pipeline_is_running=False, schema_version='1.1')</pre> <p>To get a more comprehensive overview, you can take a look at the <code>pandas</code> representation</p> In\u00a0[8]: Copied! <pre>display(data_lake_measures.to_pandas())\n</pre> display(data_lake_measures.to_pandas()) measure_name timestamp_field pipeline_id pipeline_name pipeline_is_running num_event_properties 0 flow-rate s0::timestamp None None False 6 1 test s0::timestamp None None False 6 <p>So far, we have only retrieved metadata about the available data lake measure. In the following, we will access the actual data of the measure <code>flow-rate</code>.</p> <p>For this purpose, we will use the <code>get()</code> method of the <code>dataLakeMeasure</code> endpoint.</p> In\u00a0[9]: Copied! <pre>flow_rate_measure = client.dataLakeMeasureApi.get(identifier=\"flow-rate\")\n</pre> flow_rate_measure = client.dataLakeMeasureApi.get(identifier=\"flow-rate\") <pre>2023-02-24 17:34:26,020 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n</pre> <p>For further processing, the easiest way is to turn the data measure into a <code>pandas DataFrame</code>.</p> In\u00a0[10]: Copied! <pre>flow_rate_pd = flow_rate_measure.to_pandas()\n</pre> flow_rate_pd = flow_rate_measure.to_pandas() <p>Let's see how many data points we got...</p> In\u00a0[11]: Copied! <pre>len(flow_rate_pd)\n</pre> len(flow_rate_pd) Out[11]: <pre>1000</pre> <p>... and get a first overview</p> In\u00a0[12]: Copied! <pre>flow_rate_pd.describe()\n</pre> flow_rate_pd.describe() Out[12]: density mass_flow temperature volume_flow count 1000.000000 1000.000000 1000.000000 1000.000000 mean 45.560337 5.457014 45.480231 5.659558 std 3.201544 3.184959 3.132878 3.122437 min 40.007698 0.004867 40.000992 0.039422 25% 42.819497 2.654101 42.754623 3.021625 50% 45.679264 5.382355 45.435944 5.572553 75% 48.206881 8.183144 48.248473 8.338209 max 50.998310 10.986015 50.964909 10.998676 <p>As a final step, we want to create a plot of both attributes</p> In\u00a0[13]: Copied! <pre>import matplotlib.pyplot as plt\nflow_rate_pd.plot(y=[\"mass_flow\", \"temperature\"])\nplt.show()\n</pre> import matplotlib.pyplot as plt flow_rate_pd.plot(y=[\"mass_flow\", \"temperature\"]) plt.show() <p>For data lake measurements, the <code>get()</code> method is even more powerful than simply returning all the data for a given data lake measurement. We will look at a selection of these below. The full list of supported parameters can be found in the docs.  Let's start by referring to the graph we created above, where we use only two columns of our data lake measurement. If we already know this, we can directly restrict the queried data to a subset of columns by using the <code>columns</code> parameter.  <code>columns</code> takes a list of column names as a comma-separated string:</p> In\u00a0[14]: Copied! <pre>flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", columns=\"mass_flow,temperature\").to_pandas()\nflow_rate_pd\n</pre> flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", columns=\"mass_flow,temperature\").to_pandas() flow_rate_pd <pre>2023-02-24 17:34:26,492 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n</pre> Out[14]: timestamp mass_flow temperature 0 2023-02-24T16:19:41.472Z 3.309556 44.448483 1 2023-02-24T16:19:41.482Z 5.608580 40.322033 2 2023-02-24T16:19:41.493Z 7.692881 49.239639 3 2023-02-24T16:19:41.503Z 3.632898 49.933754 4 2023-02-24T16:19:41.513Z 0.711260 50.106617 ... ... ... ... 995 2023-02-24T16:19:52.927Z 1.740114 46.558231 996 2023-02-24T16:19:52.94Z 7.211723 48.048622 997 2023-02-24T16:19:52.952Z 7.770180 48.188026 998 2023-02-24T16:19:52.965Z 4.458602 48.280899 999 2023-02-24T16:19:52.977Z 2.592060 47.505951 <p>1000 rows \u00d7 3 columns</p> <p>By default, the client returns only the first one thousand records of a Data Lake measurement. This can be changed by passing a concrete value for the <code>limit</code> parameter:</p> In\u00a0[15]: Copied! <pre>flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", limit=10000).to_pandas()\nlen(flow_rate_pd)\n</pre> flow_rate_pd = client.dataLakeMeasureApi.get(identifier=\"flow-rate\", limit=10000).to_pandas() len(flow_rate_pd) <pre>2023-02-24 17:34:26,736 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n</pre> Out[15]: <pre>9528</pre> <p>If you want your data to be selected by time of occurrence rather than quantity, you can specify your time window by passing the <code>start_date</code> and <code>end_date</code> parameters:</p> In\u00a0[16]: Copied! <pre>from datetime import datetime\nflow_rate_pd = client.dataLakeMeasureApi.get(\n    identifier=\"flow-rate\",\n    start_date=datetime(year=2023, month=2, day=24, hour=17, minute=21, second=0),\n    end_date=datetime(year=2023, month=2, day=24, hour=17, minute=21, second=1),\n    ).to_pandas()\nflow_rate_pd.plot(y=[\"mass_flow\", \"temperature\"])\nplt.show()\n</pre> from datetime import datetime flow_rate_pd = client.dataLakeMeasureApi.get(     identifier=\"flow-rate\",     start_date=datetime(year=2023, month=2, day=24, hour=17, minute=21, second=0),     end_date=datetime(year=2023, month=2, day=24, hour=17, minute=21, second=1),     ).to_pandas() flow_rate_pd.plot(y=[\"mass_flow\", \"temperature\"]) plt.show() <pre>2023-02-24 17:34:26,899 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:167] [_make_request] - Successfully retrieved all resources.\n</pre> <p>... from this point on we leave all future processing of the data up to your creativity. Keep in mind: the general syntax used in this tutorial (<code>all()</code>, <code>to_pandas()</code>, <code>get()</code>) applies to all endpoints and associated resources of the StreamPipes Python client.</p> <p>If you get further and create exiting stuff with data extracted from StreamPipes please let us know. We are thrilled to see what you as a community will build with the provided client. Furthermore, don't hesitate to discuss feature requests to extend the current functionality with us.</p> <p>For now, that's all about the StreamPipes client. Read the next tutorial (Getting live data from the StreamPipes data stream) if you are interested in making use of the powerful StreamPipes functions to interact with StreamPipes event-based.</p> <p>How do you like this tutorial? We hope you like it and would love to receive some feedback from you. Just go to our GitHub discussion page and let us know your impression. We'll read and react to them all, we promise!</p>"},{"location":"tutorials/2-extracting-data-from-the-streampipes-data-lake/#Extracting-Data-from-the-StreamPipes-data-lake","title":"Extracting Data from the StreamPipes data lake\u00b6","text":"<p>In the first tutorial (Introduction to the StreamPipes Python client) we took the first steps with the StreamPipes Python client and learned how to set everything up. Now we are ready to get started and want to retrieve some data out of StreamPipes. In this tutorial, we'll focus on the StreamPipes Data Lake, the component where StreamPipes stores data internally. To get started, we'll use the <code>client</code> instance created in the first tutorial.</p>"},{"location":"tutorials/3-getting-live-data-from-the-streampipes-data-stream/","title":"Getting live data from the StreamPipes data stream","text":"<p>Note As of now we mainly developed the support for StreamPipes functions using NATS as messaging protocol. Consequently, this setup is tested most and should work flawlessly. Visit our first-steps page to see how to start StreamPipes accordingly. Anyhow, you can also use the other brokers that are currently supported in StreamPipes Python. In case you observe any problems, please reach out to us and file us an issue on GitHub.</p> In\u00a0[1]: Copied! <pre>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</pre> from streampipes.client import StreamPipesClient from streampipes.client.config import StreamPipesClientConfig from streampipes.client.credential_provider import StreamPipesApiKeyCredentials In\u00a0[\u00a0]: Copied! <pre># You can install all required libraries for this tutorial with the following command\n%pip install matplotlib ipython streampipes\n</pre> # You can install all required libraries for this tutorial with the following command %pip install matplotlib ipython streampipes In\u00a0[2]: Copied! <pre>import os\n\nos.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\"\nos.environ[\"SP_API_KEY\"] = \"XXX\"\n\n# Use this if you work locally:\nos.environ[\"BROKER-HOST\"] = \"localhost\"  \nos.environ[\"KAFKA-PORT\"] = \"9094\" # When using Kafka as message broker\n</pre> import os  os.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\" os.environ[\"SP_API_KEY\"] = \"XXX\"  # Use this if you work locally: os.environ[\"BROKER-HOST\"] = \"localhost\"   os.environ[\"KAFKA-PORT\"] = \"9094\" # When using Kafka as message broker In\u00a0[3]: Copied! <pre>client_config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(),\n    host_address=\"localhost\",\n    port=80,\n    https_disabled=True,\n)\nclient = StreamPipesClient(client_config=client_config)\n</pre> client_config = StreamPipesClientConfig(     credential_provider=StreamPipesApiKeyCredentials(),     host_address=\"localhost\",     port=80,     https_disabled=True, ) client = StreamPipesClient(client_config=client_config) <pre>2022-12-14 10:43:37,664 - streampipes.client.client - [INFO] - [client.py:127] [_set_up_logging] - Logging successfully initialized with logging level INFO.\n</pre> <p>Now we can have a look at the available data streams. We can choose one or more stream to receive the data from and copy their <code>element_id</code>.</p> In\u00a0[4]: Copied! <pre>client.dataStreamApi.all().to_pandas()\n</pre> client.dataStreamApi.all().to_pandas() <pre>2022-12-14 10:43:39,944 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:153] [_make_request] - Successfully retrieved all resources.\n</pre> Out[4]: element_id name description icon_url app_id includes_assets includes_locales internally_managed measurement_object index ... uri dom num_transport_protocols num_measurement_capability num_application_links num_included_assets num_connected_to num_category num_event_properties num_included_locales 0 urn:streampipes.apache.org:eventstream:HHoidJ Test2 None None False False True None 0 ... urn:streampipes.apache.org:eventstream:HHoidJ None 1 0 0 0 0 0 7 0 1 urn:streampipes.apache.org:eventstream:uPDKLI Test None None False False True None 0 ... urn:streampipes.apache.org:eventstream:uPDKLI None 1 0 0 0 0 0 7 0 <p>2 rows \u00d7 21 columns</p> <p>Next we can create a StreamPipesFunction. For this we need to implement the 4 following methods:</p> <ul> <li>In <code>requiredStreamIds</code> you need to insert the <code>element_id</code> of the required streams.</li> <li><code>onServiceStarted</code> is called when the function gets started. There you can use the given meta information of the <code>FunctionContext</code> to initialize the function.</li> <li><code>onEvent</code> is called when ever a new event arrives. The <code>event</code> contains the live data and you can use the <code>streamId</code> to identify a stream if the function is connected to multiple data streams.</li> <li><code>onServiceStopped</code> is called when the function gets stopped.</li> </ul> <p>For this tutorial we just create a function that saves every new event in a <code>pandas DataFrame</code> and plots the first column of the <code>DataFrame</code> when the function gets stopped.</p> In\u00a0[5]: Copied! <pre>from typing import List, Dict, Any\nimport pandas as pd\nfrom datetime import datetime\nimport matplotlib.pyplot as plt\nfrom streampipes.functions.function_handler import FunctionHandler\nfrom streampipes.functions.registration import Registration\nfrom streampipes.functions.streampipes_function import StreamPipesFunction\nfrom streampipes.functions.utils.function_context import FunctionContext\n\n\nclass ExampleFunction(StreamPipesFunction):\n    def __init__(self) -&gt; None:\n        super().__init__()\n        # Create the Dataframe to save the live data\n        self.df = pd.DataFrame()\n\n    def requiredStreamIds(self) -&gt; List[str]:\n        return [\"urn:streampipes.apache.org:eventstream:uPDKLI\"]\n\n    def onServiceStarted(self, context: FunctionContext):\n        # Get the name of the timestamp field\n        for event_property in context.schema[context.streams[0]].event_schema.event_properties:\n            if event_property.property_scope == \"HEADER_PROPERTY\":\n                self.timestamp = event_property.runtime_name\n\n    def onEvent(self, event: Dict[str, Any], streamId: str):\n        # Convert the unix timestamp to datetime\n        event[self.timestamp] = datetime.fromtimestamp(event[self.timestamp] / 1000)\n        # Add every value of the event to the DataFrame\n        self.df = pd.concat(\n            [self.df, pd.DataFrame({key: [event[key]] for key in event.keys()}).set_index(self.timestamp)]\n        )\n\n    def onServiceStopped(self):\n        # Plot the first column of the Dataframe\n        plt.figure(figsize=(10, 5))\n        plt.xlabel(self.timestamp)\n        plt.ylabel(self.df.columns[0])\n        plt.plot(self.df.iloc[:, 0])\n        plt.show()\n</pre> from typing import List, Dict, Any import pandas as pd from datetime import datetime import matplotlib.pyplot as plt from streampipes.functions.function_handler import FunctionHandler from streampipes.functions.registration import Registration from streampipes.functions.streampipes_function import StreamPipesFunction from streampipes.functions.utils.function_context import FunctionContext   class ExampleFunction(StreamPipesFunction):     def __init__(self) -&gt; None:         super().__init__()         # Create the Dataframe to save the live data         self.df = pd.DataFrame()      def requiredStreamIds(self) -&gt; List[str]:         return [\"urn:streampipes.apache.org:eventstream:uPDKLI\"]      def onServiceStarted(self, context: FunctionContext):         # Get the name of the timestamp field         for event_property in context.schema[context.streams[0]].event_schema.event_properties:             if event_property.property_scope == \"HEADER_PROPERTY\":                 self.timestamp = event_property.runtime_name      def onEvent(self, event: Dict[str, Any], streamId: str):         # Convert the unix timestamp to datetime         event[self.timestamp] = datetime.fromtimestamp(event[self.timestamp] / 1000)         # Add every value of the event to the DataFrame         self.df = pd.concat(             [self.df, pd.DataFrame({key: [event[key]] for key in event.keys()}).set_index(self.timestamp)]         )      def onServiceStopped(self):         # Plot the first column of the Dataframe         plt.figure(figsize=(10, 5))         plt.xlabel(self.timestamp)         plt.ylabel(self.df.columns[0])         plt.plot(self.df.iloc[:, 0])         plt.show() <p>Now we can start the function. We have to register an instance of the <code>StreamPipesFunction</code> and them we can start the functions by initializing the <code>FunctionHandler</code>. (it's also possible to register multiple functions with <code>.register(...).register(...)</code>)</p> In\u00a0[6]: Copied! <pre>example_function = ExampleFunction()\n\nregistration = Registration()\nregistration.register(example_function)\n\nfunction_handler = FunctionHandler(registration, client)\nfunction_handler.initializeFunctions()\n</pre> example_function = ExampleFunction()  registration = Registration() registration.register(example_function)  function_handler = FunctionHandler(registration, client) function_handler.initializeFunctions() <pre>2022-12-14 10:43:42,810 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:153] [_make_request] - Successfully retrieved all resources.\n2022-12-14 10:43:42,812 - streampipes.functions.function_handler - [INFO] - [function_handler.py:82] [initializeFunctions] - Using NatsBroker for &lt;__main__.ExampleFunction object at 0x000001F2EF298D90&gt;\n</pre> <p>The <code>DataFrame</code> of the <code>ExampleFunction</code> gets updated whenever a new event arrives. Let's test this by executing the cell below.</p> In\u00a0[7]: Copied! <pre>import asyncio\nfrom asyncio.exceptions import CancelledError\nfrom IPython.display import clear_output\n\nwhile True:\n    clear_output(wait=True)\n    display(example_function.df)\n    try:\n        await asyncio.sleep(1)\n    except CancelledError:\n        break\n</pre> import asyncio from asyncio.exceptions import CancelledError from IPython.display import clear_output  while True:     clear_output(wait=True)     display(example_function.df)     try:         await asyncio.sleep(1)     except CancelledError:         break mass_flow density volume_flow sensor_fault_flags temperature sensorId timestamp 2022-12-14 10:43:43.357 10.955496 47.546290 1.001985 False 44.993413 flowrate02 2022-12-14 10:43:44.371 6.499040 44.392069 2.034402 False 41.232352 flowrate02 2022-12-14 10:43:45.382 10.168300 41.192146 9.724287 False 46.812779 flowrate02 2022-12-14 10:43:46.395 10.849059 50.086308 5.832691 False 45.860412 flowrate02 2022-12-14 10:43:47.410 3.081855 47.254246 8.860531 False 50.505801 flowrate02 ... ... ... ... ... ... ... 2022-12-14 10:44:43.920 1.803572 41.978894 10.294002 False 47.820239 flowrate02 2022-12-14 10:44:44.932 1.967062 42.212883 3.237440 False 49.047258 flowrate02 2022-12-14 10:44:45.934 4.457819 47.561256 0.315024 False 40.223413 flowrate02 2022-12-14 10:44:46.949 8.745343 46.346891 7.439090 False 41.982529 flowrate02 2022-12-14 10:44:47.950 5.828744 47.679720 6.307405 False 42.100354 flowrate02 <p>65 rows \u00d7 6 columns</p> <p>The <code>while</code> loop just displays the the <code>DataFrame</code> every second until the cell is stopped. We could achieve the same result manually by executing <code>example_function.df</code> repeatedly.</p> <p>You can stop the functions whenever you want by executing the command below.</p> In\u00a0[\u00a0]: Copied! <pre>function_handler.disconnect()\n</pre> function_handler.disconnect() <pre>2022-12-14 10:44:53,309 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:67] [disconnect] - Stopped connection to stream: urn:streampipes.apache.org:eventstream:uPDKLI\n</pre> <p>That's enough for this tutorial. Now you can try to write your own <code>StreamPipesFunction</code>. All you need to do is creating a new class, implementing the 4 required methods and registering the function.</p> <p>Want to see more exciting use cases you can achieve with StreamPipes functions in Python? Then don't hesitate and jump to our next tutorial on applying online machine learning algorithms to StreamPipes data streams with River.</p> <p>How do you like this tutorial? We hope you like it and would love to receive some feedback from you. Just go to our GitHub discussion page and let us know your impression. We'll read and react to them all, we promise!</p>"},{"location":"tutorials/3-getting-live-data-from-the-streampipes-data-stream/#Getting-live-data-from-the-StreamPipes-data-stream","title":"Getting live data from the StreamPipes data stream\u00b6","text":"<p>In the last tutorial (Extracting Data from the StreamPipes data lake) we learned how to extract the stored data from a StreamPipes data lake. This tutorial is about the StreamPipes data stream and shows how to get the live data from StreamPipes into Python. Therefore, we first create the <code>client</code> instance as before.</p>"},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/","title":"Using Online Machine Learning on a StreamPipes data stream","text":"In\u00a0[1]: Copied! <pre>from streampipes.client import StreamPipesClient\nfrom streampipes.client.config import StreamPipesClientConfig\nfrom streampipes.client.credential_provider import StreamPipesApiKeyCredentials\n</pre> from streampipes.client import StreamPipesClient from streampipes.client.config import StreamPipesClientConfig from streampipes.client.credential_provider import StreamPipesApiKeyCredentials In\u00a0[\u00a0]: Copied! <pre># you can install all required dependecies for this tutorial by executing the following command\n%pip install river streampipes\n</pre> # you can install all required dependecies for this tutorial by executing the following command %pip install river streampipes In\u00a0[2]: Copied! <pre>import os\n\nos.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\"\nos.environ[\"SP_API_KEY\"] = \"XXX\"\n\n# Use this if you work locally:\nos.environ[\"BROKER-HOST\"] = \"localhost\"  \nos.environ[\"KAFKA-PORT\"] = \"9094\" # When using Kafka as message broker\n</pre> import os  os.environ[\"SP_USERNAME\"] = \"admin@streampipes.apache.org\" os.environ[\"SP_API_KEY\"] = \"XXX\"  # Use this if you work locally: os.environ[\"BROKER-HOST\"] = \"localhost\"   os.environ[\"KAFKA-PORT\"] = \"9094\" # When using Kafka as message broker In\u00a0[3]: Copied! <pre>client_config = StreamPipesClientConfig(\n    credential_provider=StreamPipesApiKeyCredentials(),\n    host_address=\"localhost\",\n    port=80,\n    https_disabled=True,\n)\nclient = StreamPipesClient(client_config=client_config)\n</pre> client_config = StreamPipesClientConfig(     credential_provider=StreamPipesApiKeyCredentials(),     host_address=\"localhost\",     port=80,     https_disabled=True, ) client = StreamPipesClient(client_config=client_config) <pre>2023-01-27 16:04:24,784 - streampipes.client.client - [INFO] - [client.py:128] [_set_up_logging] - Logging successfully initialized with logging level INFO.\n</pre> In\u00a0[4]: Copied! <pre>client.dataStreamApi.all().to_pandas()\n</pre> client.dataStreamApi.all().to_pandas() <pre>2023-01-27 16:04:28,212 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:163] [_make_request] - Successfully retrieved all resources.\n</pre> Out[4]: element_id name description icon_url app_id includes_assets includes_locales internally_managed measurement_object index ... dom rev num_transport_protocols num_measurement_capability num_application_links num_included_assets num_connected_to num_category num_event_properties num_included_locales 0 sp:spdatastream:xboBFK Test None None False False True None 0 ... None 5-558c861debc745e1ebae29a266a8bdb9 1 0 0 0 0 0 7 0 1 urn:streampipes.apache.org:eventstream:Wgyrse Test File None None False False True None 0 ... None 4-66548b6b84287011b7cec0876ef82baf 1 0 0 0 0 0 2 0 <p>2 rows \u00d7 22 columns</p> In\u00a0[5]: Copied! <pre>from river import cluster, compose, preprocessing\nfrom streampipes.function_zoo.river_function import OnlineML\nfrom streampipes.functions.utils.data_stream_generator import RuntimeType\n\nk_means = compose.Pipeline(\n    (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),\n    (\"scale\", preprocessing.StandardScaler()),\n    (\"k_means\", cluster.KMeans(n_clusters=2)),\n)\n\nclustering = OnlineML(\n    client=client, stream_ids=[\"sp:spdatastream:xboBFK\"], model=k_means, prediction_type=RuntimeType.INTEGER.value\n)\nclustering.start()\n</pre> from river import cluster, compose, preprocessing from streampipes.function_zoo.river_function import OnlineML from streampipes.functions.utils.data_stream_generator import RuntimeType  k_means = compose.Pipeline(     (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),     (\"scale\", preprocessing.StandardScaler()),     (\"k_means\", cluster.KMeans(n_clusters=2)), )  clustering = OnlineML(     client=client, stream_ids=[\"sp:spdatastream:xboBFK\"], model=k_means, prediction_type=RuntimeType.INTEGER.value ) clustering.start() <pre>2023-01-27 16:04:35,599 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:163] [_make_request] - Successfully retrieved all resources.\n2023-01-27 16:04:35,599 - streampipes.functions.function_handler - [INFO] - [function_handler.py:64] [initializeFunctions] - Create output data stream \"sp:spdatastream:cwKPoo\" for the function \"65cf8b86-bcdf-433e-a1c7-3e920eab55d0\"\n2023-01-27 16:04:37,766 - streampipes.endpoint.endpoint - [INFO] - [endpoint.py:163] [_make_request] - Successfully retrieved all resources.\n2023-01-27 16:04:37,767 - streampipes.functions.function_handler - [INFO] - [function_handler.py:78] [initializeFunctions] - Using NatsBroker for RiverFunction\n2023-01-27 16:04:37,791 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:48] [_makeConnection] - Connected to NATS at localhost:4222\n2023-01-27 16:04:37,791 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:48] [_makeConnection] - Connected to NATS at localhost:4222\n2023-01-27 16:04:37,792 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:58] [createSubscription] - Subscribed to stream: sp:spdatastream:xboBFK\n</pre> In\u00a0[6]: Copied! <pre>clustering.set_learning(False)\n</pre> clustering.set_learning(False) In\u00a0[\u00a0]: Copied! <pre>clustering.stop()\n</pre> clustering.stop() <pre>2023-01-27 16:04:57,303 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:82] [disconnect] - Stopped connection to stream: sp:spdatastream:xboBFK\n2023-01-27 16:04:57,304 - streampipes.functions.broker.nats_broker - [INFO] - [nats_broker.py:82] [disconnect] - Stopped connection to stream: sp:spdatastream:cwKPoo\n</pre> In\u00a0[\u00a0]: Copied! <pre>import pickle\nfrom river import compose, tree\nfrom streampipes.function_zoo.river_function import OnlineML\nfrom streampipes.functions.utils.data_stream_generator import RuntimeType\n\nhoeffding_tree = compose.Pipeline(\n    (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),\n    (\"hoeffding_tree\", tree.HoeffdingTreeRegressor(grace_period=5)),\n)\n\n\ndef draw_tree(self, event, streamId):\n\"\"\"Draw the tree and save the image.\"\"\"\n    if self.learning:\n        if self.model[1].n_nodes != None:\n            self.model[1].draw().render(\"hoeffding_tree\", format=\"png\", cleanup=True)\n\n\ndef save_model(self):\n\"\"\"Save the trained model.\"\"\"\n    with open(\"hoeffding_tree.pkl\", \"wb\") as f:\n        pickle.dump(self.model, f)\n\n\nregressor = OnlineML(\n    client=client,\n    stream_ids=[\"sp:spdatastream:xboBFK\"],\n    model=hoeffding_tree,\n    prediction_type=RuntimeType.FLOAT.value,\n    supervised=True,\n    target_label=\"temperature\",\n    on_event=draw_tree,\n    on_stop=save_model,\n)\nregressor.start()\n</pre> import pickle from river import compose, tree from streampipes.function_zoo.river_function import OnlineML from streampipes.functions.utils.data_stream_generator import RuntimeType  hoeffding_tree = compose.Pipeline(     (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),     (\"hoeffding_tree\", tree.HoeffdingTreeRegressor(grace_period=5)), )   def draw_tree(self, event, streamId):     \"\"\"Draw the tree and save the image.\"\"\"     if self.learning:         if self.model[1].n_nodes != None:             self.model[1].draw().render(\"hoeffding_tree\", format=\"png\", cleanup=True)   def save_model(self):     \"\"\"Save the trained model.\"\"\"     with open(\"hoeffding_tree.pkl\", \"wb\") as f:         pickle.dump(self.model, f)   regressor = OnlineML(     client=client,     stream_ids=[\"sp:spdatastream:xboBFK\"],     model=hoeffding_tree,     prediction_type=RuntimeType.FLOAT.value,     supervised=True,     target_label=\"temperature\",     on_event=draw_tree,     on_stop=save_model, ) regressor.start() In\u00a0[9]: Copied! <pre>regressor.set_learning(False)\n</pre> regressor.set_learning(False) In\u00a0[\u00a0]: Copied! <pre>regressor.stop()\n</pre> regressor.stop() In\u00a0[\u00a0]: Copied! <pre>import pickle\nfrom river import compose, tree\nfrom streampipes.function_zoo.river_function import OnlineML\nfrom streampipes.functions.utils.data_stream_generator import RuntimeType\n\ndecision_tree = compose.Pipeline(\n    (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),\n    (\"decision_tree\", tree.ExtremelyFastDecisionTreeClassifier(grace_period=5)),\n)\n\n\ndef draw_tree(self, event, streamId):\n\"\"\"Draw the tree and save the image.\"\"\"\n    if self.learning:\n        if self.model[1].n_nodes != None:\n            self.model[1].draw().render(\"decicion_tree\", format=\"png\", cleanup=True)\n\n\ndef save_model(self):\n\"\"\"Save the trained model.\"\"\"\n    with open(\"decision_tree.pkl\", \"wb\") as f:\n        pickle.dump(self.model, f)\n\n\nclassifier = OnlineML(\n    client=client,\n    stream_ids=[\"sp:spdatastream:xboBFK\"],\n    model=decision_tree,\n    prediction_type=RuntimeType.BOOLEAN.value,\n    supervised=True,\n    target_label=\"sensor_fault_flags\",\n    on_event=draw_tree,\n    on_stop=save_model,\n)\nclassifier.start()\n</pre> import pickle from river import compose, tree from streampipes.function_zoo.river_function import OnlineML from streampipes.functions.utils.data_stream_generator import RuntimeType  decision_tree = compose.Pipeline(     (\"drop_features\", compose.Discard(\"sensorId\", \"timestamp\")),     (\"decision_tree\", tree.ExtremelyFastDecisionTreeClassifier(grace_period=5)), )   def draw_tree(self, event, streamId):     \"\"\"Draw the tree and save the image.\"\"\"     if self.learning:         if self.model[1].n_nodes != None:             self.model[1].draw().render(\"decicion_tree\", format=\"png\", cleanup=True)   def save_model(self):     \"\"\"Save the trained model.\"\"\"     with open(\"decision_tree.pkl\", \"wb\") as f:         pickle.dump(self.model, f)   classifier = OnlineML(     client=client,     stream_ids=[\"sp:spdatastream:xboBFK\"],     model=decision_tree,     prediction_type=RuntimeType.BOOLEAN.value,     supervised=True,     target_label=\"sensor_fault_flags\",     on_event=draw_tree,     on_stop=save_model, ) classifier.start() In\u00a0[12]: Copied! <pre>classifier.set_learning(False)\n</pre> classifier.set_learning(False) In\u00a0[\u00a0]: Copied! <pre>classifier.stop()\n</pre> classifier.stop() <p>How do you like this tutorial? We hope you like it and would love to receive some feedback from you. Just go to our GitHub discussion page and let us know your impression. We'll read and react to them all, we promise!</p>"},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/#Using-Online-Machine-Learning-on-a-StreamPipes-data-stream","title":"Using Online Machine Learning on a StreamPipes data stream\u00b6","text":"<p>The last tutorial (Getting live data from the StreamPipes data stream) showed how we can connect to a data stream, and it would be possible to use Online Machine Learning with this approach and train a model with the incoming events at the <code>onEvent</code> method. However, the StreamPipes client also provides an easier way to do this with the use of the River library for Online Machine Learning. We will have a look at this now.</p>"},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/#How-to-use-Online-Machine-Learning-with-StreamPipes","title":"How to use Online Machine Learning with StreamPipes\u00b6","text":"<p>After we configured the client as usual, we can start with the new part. The approach is straight forward and you can start with the ML part in just 3 steps:</p> <ol> <li>Create a pipeline with River and insert the preprocessing steps and model of your choice.</li> <li>Configure the <code>OnlineML</code> wrapper to fit to your model and insert the client and required data stream ids.</li> <li>Start the wrapper and let the learning begin.</li> </ol> <p>A StreamPipesFunction is then started, which trains the model for each new event. It also creates an output data stream which will send the prediction of the model back to StreamPipes. This output stream can be seen when creating a new pipeline and can be used like every other data source. So you can use it in a pipeline and save the predictions in a Data Lake. You can also stop and start the training with the method <code>set_learning</code>. To stop the whole function use the <code>stop</code> methode and if you want to delete the output stream entirely, you can go to the <code>Pipeline Element Installer</code> in StreamPipes and uninstall it.</p> <p>Now let's take a look at some examples. If you want to execute the examples below you have to create an adapter for the <code>Machine Data Simulator</code>, select the <code>flowrate</code> sensor and insert the stream id of this stream.</p>"},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/#KMeans","title":"KMeans\u00b6","text":""},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/#HoeffdingTreeRegressor","title":"HoeffdingTreeRegressor\u00b6","text":""},{"location":"tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/#DecisionTreeClassifier","title":"DecisionTreeClassifier\u00b6","text":""}]}
\ No newline at end of file
diff --git a/docs-python/dev/sitemap.xml b/docs-python/dev/sitemap.xml
index 8633297..1c4c29b 100644
--- a/docs-python/dev/sitemap.xml
+++ b/docs-python/dev/sitemap.xml
@@ -2,242 +2,242 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/getting-started/developing/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/getting-started/first-steps/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/getting-started/quickstart/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/client/client/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/client/config/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/client/credential_provider/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/endpoint/endpoint/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/endpoint/exceptions/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/endpoint/api/data_lake_measure/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/endpoint/api/data_stream/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/endpoint/api/version/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/function_zoo/river_function/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/function_handler/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/registration/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/streampipes_function/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/broker/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/broker_handler/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/consumer/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/output_collector/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/publisher/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/kafka/kafka_consumer/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/kafka/kafka_message_fetcher/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/kafka/kafka_publisher/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/nats/nats_consumer/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/nats/nats_publisher/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/utils/async_iter_handler/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/utils/data_stream_context/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/utils/data_stream_generator/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/utils/function_context/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/common/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/container/data_lake_measures/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/container/data_streams/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/container/resource_container/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/container/versions/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/data_lake_measure/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/data_series/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/data_stream/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/exceptions/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/function_definition/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/query_result/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/resource/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/version/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/scripts/gen_ref_pages/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/1-introduction-to-streampipes-python-client/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/2-extracting-data-from-the-streampipes-data-lake/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/3-getting-live-data-from-the-streampipes-data-stream/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/</loc>
-         <lastmod>2023-07-08</lastmod>
+         <lastmod>2023-07-15</lastmod>
          <changefreq>daily</changefreq>
     </url>
 </urlset>
\ No newline at end of file
diff --git a/docs-python/dev/sitemap.xml.gz b/docs-python/dev/sitemap.xml.gz
index c164b5a..80140ba 100644
--- a/docs-python/dev/sitemap.xml.gz
+++ b/docs-python/dev/sitemap.xml.gz
Binary files differ
diff --git a/website-v2/package-lock.json b/website-v2/package-lock.json
index 30cdd78..83917e1 100644
--- a/website-v2/package-lock.json
+++ b/website-v2/package-lock.json
@@ -4,6 +4,7 @@
   "requires": true,
   "packages": {
     "": {
+      "name": "website-v2",
       "dependencies": {
         "@docusaurus/core": "2.4.1",
         "@docusaurus/plugin-client-redirects": "2.4.1",
@@ -240,9 +241,9 @@
       }
     },
     "node_modules/@babel/core/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
@@ -302,9 +303,9 @@
       }
     },
     "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
@@ -332,9 +333,9 @@
       }
     },
     "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
@@ -356,9 +357,9 @@
       }
     },
     "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
@@ -380,9 +381,9 @@
       }
     },
     "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
@@ -1685,9 +1686,9 @@
       }
     },
     "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
@@ -1933,9 +1934,9 @@
       }
     },
     "node_modules/@babel/preset-env/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
@@ -2912,9 +2913,9 @@
       }
     },
     "node_modules/@mdx-js/mdx/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
       "bin": {
         "semver": "bin/semver"
       }
@@ -4140,9 +4141,9 @@
       }
     },
     "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
@@ -7900,9 +7901,9 @@
       }
     },
     "node_modules/make-dir/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
@@ -8523,9 +8524,9 @@
       }
     },
     "node_modules/package-json/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
@@ -10102,9 +10103,9 @@
       }
     },
     "node_modules/remark-mdx/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
       "bin": {
         "semver": "bin/semver"
       }
@@ -10656,9 +10657,9 @@
       }
     },
     "node_modules/semver-diff/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
