<!--
  ~ 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
  ~
  ~    http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ 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.
  ~
-->

<!-- Elements added to main will be displayed on all pages -->

<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
        <meta name="description" content="Python library for Apache StreamPipes">
      
      
        <meta name="author" content="Apache Software Foundation (ASF)">
      
      
        <link rel="canonical" href="https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/streampipes_function/">
      
      
        <link rel="prev" href="../registration/">
      
      
        <link rel="next" href="../broker/broker/">
      
      <link rel="icon" href="https://streampipes.apache.org/img/favicon/favicon.png">
      <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.8">
    
    
      
        <title>Streampipes function - Apache StreamPipes Python</title>
      
    
    
      <link rel="stylesheet" href="../../../assets/stylesheets/main.0d440cfe.min.css">
      
        
        <link rel="stylesheet" href="../../../assets/stylesheets/palette.2505c338.min.css">
      
      

    
    
    
      
    
    
      <link rel="stylesheet" href="../../../assets/_mkdocstrings.css">
    
      <link rel="stylesheet" href="../../../stylesheets/extra.css">
    
    <script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
    
      
  


  <!--
  ~ 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
  ~
  ~    http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ 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.
  ~
-->
<script>
    var _paq = window._paq = window._paq || [];
    /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
    /* We explicitly disable cookie tracking to avoid privacy issues */
    _paq.push(['disableCookies']);
    /* Measure a visit to flink.apache.org and nightlies.apache.org/flink as the same visit */
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function () {
        var u = "//analytics.apache.org/";
        _paq.push(['setTrackerUrl', u + 'matomo.php']);
        _paq.push(['setSiteId', '35']);
        var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
        g.async = true;
        g.src = u + 'matomo.js';
        s.parentNode.insertBefore(g, s);
    })();
</script>

  
    <script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
  

    
    
    
  </head>
  
  
    
    
    
    
    
    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="" data-md-color-accent="">
  
    
    
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#streampipes.functions.streampipes_function" class="md-skip">
          Skip to content
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
      <div data-md-component="outdated" hidden>
        
      </div>
    
    
      

  

<header class="md-header md-header--lifted" data-md-component="header">
  <nav class="md-header__inner md-grid" aria-label="Header">
    <a href="https://streampipes.apache.org/" title="Apache StreamPipes Python" class="md-header__button md-logo" aria-label="Apache StreamPipes Python" data-md-component="logo">
      
  <img src="https://streampipes.apache.org/img/sp-logo-white-right.png" alt="logo">

    </a>
    <label class="md-header__button md-icon" for="__drawer">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
    </label>
    <div class="md-header__title" data-md-component="header-title">
      <div class="md-header__ellipsis">
        <div class="md-header__topic">
          <span class="md-ellipsis">
            Apache StreamPipes Python
          </span>
        </div>
        <div class="md-header__topic" data-md-component="header-topic">
          <span class="md-ellipsis">
            
              Streampipes function
            
          </span>
        </div>
      </div>
    </div>
    
    
    
    
      <div class="md-header__source">
        <a href="https://github.com/apache/streampipes" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    apache/streampipes
  </div>
</a>
      </div>
    
  </nav>
  
    
      
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
  <div class="md-tabs__inner md-grid">
    <ul class="md-tabs__list">
      
        
  
  


  <li class="md-tabs__item">
    <a href="../../.." class="md-tabs__link">
      🏡 Home
    </a>
  </li>

      
        
  
  


  
  
  
    <li class="md-tabs__item">
      <a href="../../../getting-started/first-steps/" class="md-tabs__link">
        🚀 Getting Started
      </a>
    </li>
  

      
        
  
  


  
  
  
    <li class="md-tabs__item">
      <a href="../../../tutorials/1-introduction-to-streampipes-python-client/" class="md-tabs__link">
        🤓 Tutorials
      </a>
    </li>
  

      
        
  
  
    
  


  
  
  
    

  
  
  
    <li class="md-tabs__item">
      <a href="../../client/client/" class="md-tabs__link md-tabs__link--active">
        📚 Reference
      </a>
    </li>
  

  

      
    </ul>
  </div>
</nav>
    
  
</header>
    
    <div class="md-container" data-md-component="container">
      
      
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              
              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    

  


<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href="https://streampipes.apache.org/" title="Apache StreamPipes Python" class="md-nav__button md-logo" aria-label="Apache StreamPipes Python" data-md-component="logo">
      
  <img src="https://streampipes.apache.org/img/sp-logo-white-right.png" alt="logo">

    </a>
    Apache StreamPipes Python
  </label>
  
    <div class="md-nav__source">
      <a href="https://github.com/apache/streampipes" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    apache/streampipes
  </div>
</a>
    </div>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
      

  
  
  
    <li class="md-nav__item">
      <a href="../../.." class="md-nav__link">
        🏡 Home
      </a>
    </li>
  

    
      
      
      

  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
      
      
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
          🚀 Getting Started
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_2">
          <span class="md-nav__icon md-icon"></span>
          🚀 Getting Started
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../getting-started/first-steps/" class="md-nav__link">
        First Steps
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../getting-started/developing/" class="md-nav__link">
        Developing & Contributing
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../getting-started/quickstart/" class="md-nav__link">
        Quickstart
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

    
      
      
      

  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
      
      
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
          🤓 Tutorials
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_3">
          <span class="md-nav__icon md-icon"></span>
          🤓 Tutorials
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../tutorials/1-introduction-to-streampipes-python-client/" class="md-nav__link">
        Introduction to StreamPipes Python
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../tutorials/2-extracting-data-from-the-streampipes-data-lake/" class="md-nav__link">
        Extracting Data from the StreamPipes data lake
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../tutorials/3-getting-live-data-from-the-streampipes-data-stream/" class="md-nav__link">
        Getting live data from the StreamPipes data stream
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/" class="md-nav__link">
        Using Online Machine Learning on a StreamPipes data stream
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

    
      
      
      

  
  
    
  
  
    
    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
      
      
        
          
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
          📚 Reference
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
        <label class="md-nav__title" for="__nav_4">
          <span class="md-nav__icon md-icon"></span>
          📚 Reference
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_1" >
      
      
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_1" id="__nav_4_1_label" tabindex="0">
          Client
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_1_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_4_1">
          <span class="md-nav__icon md-icon"></span>
          Client
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../client/client/" class="md-nav__link">
        Client
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../client/config/" class="md-nav__link">
        Config
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../client/credential_provider/" class="md-nav__link">
        Credential provider
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_2" >
      
      
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
          Endpoint
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_4_2">
          <span class="md-nav__icon md-icon"></span>
          Endpoint
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../endpoint/endpoint/" class="md-nav__link">
        Endpoint
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../endpoint/exceptions/" class="md-nav__link">
        Exceptions
      </a>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_2_3" >
      
      
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
          Api
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_4_2_3">
          <span class="md-nav__icon md-icon"></span>
          Api
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../endpoint/api/data_lake_measure/" class="md-nav__link">
        Data lake measure
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../endpoint/api/data_stream/" class="md-nav__link">
        Data stream
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3" >
      
      
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_3" id="__nav_4_3_label" tabindex="0">
          Function zoo
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_3_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_4_3">
          <span class="md-nav__icon md-icon"></span>
          Function zoo
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../function_zoo/river_function/" class="md-nav__link">
        River function
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
    
  
  
    
    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4" checked>
      
      
        
          
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_4" id="__nav_4_4_label" tabindex="0">
          Functions
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_4_label" aria-expanded="true">
        <label class="md-nav__title" for="__nav_4_4">
          <span class="md-nav__icon md-icon"></span>
          Functions
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../function_handler/" class="md-nav__link">
        Function handler
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../registration/" class="md-nav__link">
        Registration
      </a>
    </li>
  

            
          
            
              
  
  
    
  
  
    <li class="md-nav__item md-nav__item--active">
      
      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
      
      
      
        <label class="md-nav__link md-nav__link--active" for="__toc">
          Streampipes function
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <a href="./" class="md-nav__link md-nav__link--active">
        Streampipes function
      </a>
      
        

<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  
  
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      Table of contents
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function" class="md-nav__link">
    streampipes.functions.streampipes_function
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction" class="md-nav__link">
    StreamPipesFunction
  </a>
  
    <nav class="md-nav" aria-label="StreamPipesFunction">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.add_output" class="md-nav__link">
    add_output()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.getFunctionId" class="md-nav__link">
    getFunctionId()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.onEvent" class="md-nav__link">
    onEvent()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStarted" class="md-nav__link">
    onServiceStarted()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStopped" class="md-nav__link">
    onServiceStopped()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.requiredStreamIds" class="md-nav__link">
    requiredStreamIds()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.stop" class="md-nav__link">
    stop()
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
    </ul>
  
</nav>
      
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4_4" >
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_4_4" id="__nav_4_4_4_label" tabindex="0">
          Broker
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_4_4_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_4_4_4">
          <span class="md-nav__icon md-icon"></span>
          Broker
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../broker/broker/" class="md-nav__link">
        Broker
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../broker/broker_handler/" class="md-nav__link">
        Broker handler
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../broker/kafka_broker/" class="md-nav__link">
        Kafka broker
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../broker/kafka_message_fetcher/" class="md-nav__link">
        Kafka message fetcher
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../broker/nats_broker/" class="md-nav__link">
        Nats broker
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../broker/output_collector/" class="md-nav__link">
        Output collector
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4_5" >
      
      
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_4_5" id="__nav_4_4_5_label" tabindex="0">
          Utils
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_4_5_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_4_4_5">
          <span class="md-nav__icon md-icon"></span>
          Utils
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../utils/async_iter_handler/" class="md-nav__link">
        Async iter handler
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../utils/data_stream_context/" class="md-nav__link">
        Data stream context
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../utils/data_stream_generator/" class="md-nav__link">
        Data stream generator
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../utils/function_context/" class="md-nav__link">
        Function context
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_5" >
      
      
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_5" id="__nav_4_5_label" tabindex="0">
          Model
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_5_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_4_5">
          <span class="md-nav__icon md-icon"></span>
          Model
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/common/" class="md-nav__link">
        Common
      </a>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_5_2" >
      
      
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_5_2" id="__nav_4_5_2_label" tabindex="0">
          Container
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_5_2_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_4_5_2">
          <span class="md-nav__icon md-icon"></span>
          Container
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/container/data_lake_measures/" class="md-nav__link">
        Data lake measures
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/container/data_streams/" class="md-nav__link">
        Data streams
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/container/resource_container/" class="md-nav__link">
        Resource container
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
      
      
      <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_5_3" >
      
      
        
          
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_5_3" id="__nav_4_5_3_label" tabindex="0">
          Resource
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_5_3_label" aria-expanded="false">
        <label class="md-nav__title" for="__nav_4_5_3">
          <span class="md-nav__icon md-icon"></span>
          Resource
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/resource/data_lake_measure/" class="md-nav__link">
        Data lake measure
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/resource/data_lake_series/" class="md-nav__link">
        Data lake series
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/resource/data_stream/" class="md-nav__link">
        Data stream
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/resource/function_definition/" class="md-nav__link">
        Function definition
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/resource/resource/" class="md-nav__link">
        Resource
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              
              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    

<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  
  
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      Table of contents
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function" class="md-nav__link">
    streampipes.functions.streampipes_function
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction" class="md-nav__link">
    StreamPipesFunction
  </a>
  
    <nav class="md-nav" aria-label="StreamPipesFunction">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.add_output" class="md-nav__link">
    add_output()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.getFunctionId" class="md-nav__link">
    getFunctionId()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.onEvent" class="md-nav__link">
    onEvent()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStarted" class="md-nav__link">
    onServiceStarted()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStopped" class="md-nav__link">
    onServiceStopped()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.requiredStreamIds" class="md-nav__link">
    requiredStreamIds()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.functions.streampipes_function.StreamPipesFunction.stop" class="md-nav__link">
    stop()
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          
            <div class="md-content" data-md-component="content">
              <article class="md-content__inner md-typeset">
                
                  

  
  



  <h1>Streampipes function</h1>

<div class="doc doc-object doc-module">


<a id="streampipes.functions.streampipes_function"></a>
  <div class="doc doc-contents first">

  

  <div class="doc doc-children">








<div class="doc doc-object doc-class">



<h2 id="streampipes.functions.streampipes_function.StreamPipesFunction" class="doc doc-heading">
<code class="highlight language-python"><span class="n">StreamPipesFunction</span><span class="p">(</span><span class="n">function_definition</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>

<a href="#streampipes.functions.streampipes_function.StreamPipesFunction" 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>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>

  <table>
    <thead>
      <tr>
        <th><b>PARAMETER</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td><code>function_definition</code></td>
          <td class="doc-param-details">
            <p>the definition of the function that contains metadata about the connected function</p>
            <p>
                <span class="doc-param-annotation">
                  <b>TYPE:</b>
                    <code><span title="typing.Optional">Optional</span>[<a class="autorefs autorefs-internal" title="streampipes.model.resource.FunctionDefinition" href="../../model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionDefinition">FunctionDefinition</a>]</code>
                </span>
                <span class="doc-param-default">
                  <b>DEFAULT:</b> 
                    <code>None</code>
                </span>
            </p>
          </td>
        </tr>
    </tbody>
  </table>

  <table>
    <thead>
      <tr>
        <th><b>ATTRIBUTE</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td><code>output_collectors</code></td>
          <td class="doc-attribute-details">
            <p>List of all output collectors which are created based on the provided function definitions.</p>
            <p>
                <span class="doc-attribute-annotation">
                  <b>TYPE:</b>
                    <code><span title="typing.Dict">Dict</span>[str, <a class="autorefs autorefs-internal" title="streampipes.functions.broker.output_collector.OutputCollector" href="../broker/output_collector/#streampipes.functions.broker.output_collector.OutputCollector">OutputCollector</a>]</code>
                </span>
            </p>
          </td>
        </tr>
    </tbody>
  </table>



  

  <div class="doc doc-children">









<div class="doc doc-object doc-function">



<h3 id="streampipes.functions.streampipes_function.StreamPipesFunction.add_output" class="doc doc-heading">
<code class="highlight language-python"><span class="n">add_output</span><span class="p">(</span><span class="n">stream_id</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span></code>

<a href="#streampipes.functions.streampipes_function.StreamPipesFunction.add_output" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <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>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td><code>stream_id</code></td>
          <td class="doc-param-details">
            <p>The id of the output data stream</p>
            <p>
                <span class="doc-param-annotation">
                  <b>TYPE:</b>
                    <code>str</code>
                </span>
            </p>
          </td>
        </tr>
        <tr>
          <td><code>event</code></td>
          <td class="doc-param-details">
            <p>The event which should be sent</p>
            <p>
                <span class="doc-param-annotation">
                  <b>TYPE:</b>
                    <code><span title="typing.Dict">Dict</span>[str, <span title="typing.Any">Any</span>]</code>
                </span>
            </p>
          </td>
        </tr>
    </tbody>
  </table>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <span class="doc-returns-annotation">
                  <code>None</code>
              </span>
          </td>
          <td class="doc-returns-details">
            
          </td>
        </tr>
    </tbody>
  </table>

  </div>

</div>

<div class="doc doc-object doc-function">



<h3 id="streampipes.functions.streampipes_function.StreamPipesFunction.getFunctionId" class="doc doc-heading">
<code class="highlight language-python"><span class="n">getFunctionId</span><span class="p">()</span></code>

<a href="#streampipes.functions.streampipes_function.StreamPipesFunction.getFunctionId" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Returns the id of the function.</p>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <code>function_id</code>
          </td>
          <td class="doc-returns-details">
            <p>Identification object of the StreamPipes function</p>
              <p>
                <span class="doc-returns-annotation">
                  <b>TYPE:</b>
                    <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.function_definition.FunctionId" href="../../model/resource/function_definition/#streampipes.model.resource.function_definition.FunctionId">FunctionId</a></code>
                </span>
              </p>
          </td>
        </tr>
    </tbody>
  </table>

  </div>

</div>

<div class="doc doc-object doc-function">



<h3 id="streampipes.functions.streampipes_function.StreamPipesFunction.onEvent" class="doc doc-heading">
<code class="highlight language-python"><span class="n">onEvent</span><span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="n">streamId</span><span class="p">)</span></code>
  
  <span class="doc doc-labels">
      <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small>
  </span>

<a href="#streampipes.functions.streampipes_function.StreamPipesFunction.onEvent" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Is called for every event of a data stream.</p>

  <table>
    <thead>
      <tr>
        <th><b>PARAMETER</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td><code>event</code></td>
          <td class="doc-param-details">
            <p>The received event from the data stream.</p>
            <p>
                <span class="doc-param-annotation">
                  <b>TYPE:</b>
                    <code><span title="typing.Dict">Dict</span>[str, <span title="typing.Any">Any</span>]</code>
                </span>
            </p>
          </td>
        </tr>
        <tr>
          <td><code>streamId</code></td>
          <td class="doc-param-details">
            <p>The id of the data stream which the event belongs to.</p>
            <p>
                <span class="doc-param-annotation">
                  <b>TYPE:</b>
                    <code>str</code>
                </span>
            </p>
          </td>
        </tr>
    </tbody>
  </table>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <span class="doc-returns-annotation">
                  <code>None</code>
              </span>
          </td>
          <td class="doc-returns-details">
            
          </td>
        </tr>
    </tbody>
  </table>

  </div>

</div>

<div class="doc doc-object doc-function">



<h3 id="streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStarted" class="doc doc-heading">
<code class="highlight language-python"><span class="n">onServiceStarted</span><span class="p">(</span><span class="n">context</span><span class="p">)</span></code>
  
  <span class="doc doc-labels">
      <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small>
  </span>

<a href="#streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStarted" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Is called when the function gets started.</p>

  <table>
    <thead>
      <tr>
        <th><b>PARAMETER</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td><code>context</code></td>
          <td class="doc-param-details">
            <p>The context in which the function gets started.</p>
            <p>
                <span class="doc-param-annotation">
                  <b>TYPE:</b>
                    <code><a class="autorefs autorefs-internal" title="streampipes.functions.utils.function_context.FunctionContext" href="../utils/function_context/#streampipes.functions.utils.function_context.FunctionContext">FunctionContext</a></code>
                </span>
            </p>
          </td>
        </tr>
    </tbody>
  </table>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <span class="doc-returns-annotation">
                  <code>None</code>
              </span>
          </td>
          <td class="doc-returns-details">
            
          </td>
        </tr>
    </tbody>
  </table>

  </div>

</div>

<div class="doc doc-object doc-function">



<h3 id="streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStopped" class="doc doc-heading">
<code class="highlight language-python"><span class="n">onServiceStopped</span><span class="p">()</span></code>
  
  <span class="doc doc-labels">
      <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small>
  </span>

<a href="#streampipes.functions.streampipes_function.StreamPipesFunction.onServiceStopped" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Is called when the function gets stopped.</p>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <span class="doc-returns-annotation">
                  <code>None</code>
              </span>
          </td>
          <td class="doc-returns-details">
            
          </td>
        </tr>
    </tbody>
  </table>

  </div>

</div>

<div class="doc doc-object doc-function">



<h3 id="streampipes.functions.streampipes_function.StreamPipesFunction.requiredStreamIds" class="doc doc-heading">
<code class="highlight language-python"><span class="n">requiredStreamIds</span><span class="p">()</span></code>
  
  <span class="doc doc-labels">
      <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small>
  </span>

<a href="#streampipes.functions.streampipes_function.StreamPipesFunction.requiredStreamIds" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Get the ids of the streams needed by the function.</p>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <code>stream_ids</code>
          </td>
          <td class="doc-returns-details">
            <p>List of the stream ids</p>
              <p>
                <span class="doc-returns-annotation">
                  <b>TYPE:</b>
                    <code><span title="typing.List">List</span>[str]</code>
                </span>
              </p>
          </td>
        </tr>
    </tbody>
  </table>

  </div>

</div>

<div class="doc doc-object doc-function">



<h3 id="streampipes.functions.streampipes_function.StreamPipesFunction.stop" class="doc doc-heading">
<code class="highlight language-python"><span class="n">stop</span><span class="p">()</span></code>

<a href="#streampipes.functions.streampipes_function.StreamPipesFunction.stop" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Stops the function and disconnects from the output streams</p>

  </div>

</div>



  </div>

  </div>

</div>




  </div>

  </div>

</div>


  




                
              </article>
            </div>
          
          
        </div>
        
      </main>
      
<footer class="md-footer">
    <div class="md-footer-meta md-typeset">
        <div class="md-footer-meta__inner md-grid">
            <!-- Copyright and theme information -->
            <div class="md-footer-copyright">
                
                <div class="md-footer-copyright__highlight">
                    Apache License 2.0
                </div>
                
                powered by
                <a href="https://www.mkdocs.org" title="MkDocs">MkDocs</a>
                and
                <a href="https://squidfunk.github.io/mkdocs-material/"
                   title="Material for MkDocs">
                    Material for MkDocs</a>
            </div>
            
            <div class="md-social">
  
    
    
      
      
    
    <a href="https://github.com/apache/streampipes" target="_blank" rel="noopener" title="github.com" class="md-social__link">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"/></svg>
    </a>
  
</div>
            
        </div>
    </div>
</footer>

    </div>
    <div class="md-dialog" data-md-component="dialog">
      <div class="md-dialog__inner md-typeset"></div>
    </div>
    
    <script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.tabs", "navigation.tabs.sticky", "navigation.instant", "navigation.indexes", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.db81ec45.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
    
    
      <script src="../../../assets/javascripts/bundle.a00a7c5e.min.js"></script>
      
    
  </body>
</html>