

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>apache_beam.internal.util module &mdash; Apache Beam  documentation</title>
  

  
  
  
  

  
  <script type="text/javascript" src="_static/js/modernizr.min.js"></script>
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
        <script type="text/javascript" src="_static/jquery.js"></script>
        <script type="text/javascript" src="_static/underscore.js"></script>
        <script type="text/javascript" src="_static/doctools.js"></script>
        <script type="text/javascript" src="_static/language_data.js"></script>
    
    <script type="text/javascript" src="_static/js/theme.js"></script>

    

  
  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="apache_beam.io package" href="apache_beam.io.html" />
    <link rel="prev" title="apache_beam.internal.pickler module" href="apache_beam.internal.pickler.html" /> 
</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="index.html" class="icon icon-home"> Apache Beam
          

          
          </a>

          
            
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="apache_beam.coders.html">apache_beam.coders package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.dataframe.html">apache_beam.dataframe package</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="apache_beam.internal.html">apache_beam.internal package</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="apache_beam.internal.html#subpackages">Subpackages</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="apache_beam.internal.html#submodules">Submodules</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="apache_beam.internal.http_client.html">apache_beam.internal.http_client module</a></li>
<li class="toctree-l3"><a class="reference internal" href="apache_beam.internal.pickler.html">apache_beam.internal.pickler module</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">apache_beam.internal.util module</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.io.html">apache_beam.io package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.metrics.html">apache_beam.metrics package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.ml.html">apache_beam.ml package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.options.html">apache_beam.options package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.portability.html">apache_beam.portability package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.runners.html">apache_beam.runners package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.testing.html">apache_beam.testing package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.tools.html">apache_beam.tools package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.transforms.html">apache_beam.transforms package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.typehints.html">apache_beam.typehints package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.utils.html">apache_beam.utils package</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.error.html">apache_beam.error module</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.pipeline.html">apache_beam.pipeline module</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.pvalue.html">apache_beam.pvalue module</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.version.html">apache_beam.version module</a></li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="index.html">Apache Beam</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="index.html">Docs</a> &raquo;</li>
        
          <li><a href="apache_beam.internal.html">apache_beam.internal package</a> &raquo;</li>
        
      <li>apache_beam.internal.util module</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
            <a href="_sources/apache_beam.internal.util.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="module-apache_beam.internal.util">
<span id="apache-beam-internal-util-module"></span><h1>apache_beam.internal.util module<a class="headerlink" href="#module-apache_beam.internal.util" title="Permalink to this headline">¶</a></h1>
<p>Utility functions used throughout the package.</p>
<p>For internal use only. No backwards compatibility guarantees.</p>
<dl class="class">
<dt id="apache_beam.internal.util.ArgumentPlaceholder">
<em class="property">class </em><code class="descclassname">apache_beam.internal.util.</code><code class="descname">ArgumentPlaceholder</code><a class="reference internal" href="_modules/apache_beam/internal/util.html#ArgumentPlaceholder"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.internal.util.ArgumentPlaceholder" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.9)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>For internal use only; no backwards-compatibility guarantees.</p>
<p>A place holder object replacing PValues in argument lists.</p>
<p>A Fn object can take any number of “side inputs”, which are PValues that will
be evaluated during pipeline execution and will be provided to the function
at the moment of its execution as positional or keyword arguments.</p>
<p>This is used only internally and should never be used by user code. A custom
Fn object by the time it executes will have such values replaced with real
computed values.</p>
</dd></dl>

<dl class="function">
<dt id="apache_beam.internal.util.remove_objects_from_args">
<code class="descclassname">apache_beam.internal.util.</code><code class="descname">remove_objects_from_args</code><span class="sig-paren">(</span><em>args</em>, <em>kwargs</em>, <em>pvalue_class</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/internal/util.html#remove_objects_from_args"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.internal.util.remove_objects_from_args" title="Permalink to this definition">¶</a></dt>
<dd><p>For internal use only; no backwards-compatibility guarantees.</p>
<p>Replaces all objects of a given type in args/kwargs with a placeholder.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>args</strong> – A list of positional arguments.</li>
<li><strong>kwargs</strong> – A dictionary of keyword arguments.</li>
<li><strong>pvalue_class</strong> – A class object representing the types of arguments that must
be replaced with a placeholder value (instance of ArgumentPlaceholder).</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A 3-tuple containing a modified list of positional arguments, a modified
dictionary of keyword arguments, and a list of all objects replaced with
a placeholder value.</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="apache_beam.internal.util.insert_values_in_args">
<code class="descclassname">apache_beam.internal.util.</code><code class="descname">insert_values_in_args</code><span class="sig-paren">(</span><em>args</em>, <em>kwargs</em>, <em>values</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/internal/util.html#insert_values_in_args"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.internal.util.insert_values_in_args" title="Permalink to this definition">¶</a></dt>
<dd><p>For internal use only; no backwards-compatibility guarantees.</p>
<p>Replaces all placeholders in args/kwargs with actual values.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>args</strong> – A list of positional arguments.</li>
<li><strong>kwargs</strong> – A dictionary of keyword arguments.</li>
<li><strong>values</strong> – A list of values that will be used to replace placeholder values.</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A 2-tuple containing a modified list of positional arguments, and a
modified dictionary of keyword arguments.</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="apache_beam.internal.util.run_using_threadpool">
<code class="descclassname">apache_beam.internal.util.</code><code class="descname">run_using_threadpool</code><span class="sig-paren">(</span><em>fn_to_execute</em>, <em>inputs</em>, <em>pool_size</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/internal/util.html#run_using_threadpool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.internal.util.run_using_threadpool" title="Permalink to this definition">¶</a></dt>
<dd><p>For internal use only; no backwards-compatibility guarantees.</p>
<p>Runs the given function on given inputs using a thread pool.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>fn_to_execute</strong> – Function to execute</li>
<li><strong>inputs</strong> – Inputs on which given function will be executed in parallel.</li>
<li><strong>pool_size</strong> – Size of thread pool.</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Results retrieved after executing the given function on given inputs.</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

</div>


           </div>
           
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="apache_beam.io.html" class="btn btn-neutral float-right" title="apache_beam.io package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="apache_beam.internal.pickler.html" class="btn btn-neutral float-left" title="apache_beam.internal.pickler module" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>