Эх сурвалжийг харах

Auto-update Python documentation

Lidi Zheng 6 жил өмнө
parent
commit
3c1819e66c

+ 1 - 1
python/.buildinfo

@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: c61dc0b4346068c21add79e96fa0cfff
+config: 059be3702ccdd31e17f0dc8d46751f07
 tags: 645f666f9bcd5a90fca523b33c5a78b7
 tags: 645f666f9bcd5a90fca523b33c5a78b7

BIN
python/.doctrees/environment.pickle


BIN
python/.doctrees/glossary.doctree


BIN
python/.doctrees/grpc.doctree


BIN
python/.doctrees/grpc_channelz.doctree


BIN
python/.doctrees/grpc_health_checking.doctree


BIN
python/.doctrees/grpc_reflection.doctree


BIN
python/.doctrees/grpc_testing.doctree


BIN
python/.doctrees/index.doctree


+ 46 - 3
python/_modules/grpc.html

@@ -6,13 +6,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>grpc &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>grpc &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="../_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="../_static/language_data.js"></script>
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="search" title="Search" href="../search.html" />
    
    
@@ -30,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -41,6 +42,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="../grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_testing.html">gRPC Testing</a></li>
@@ -110,6 +112,11 @@
 
 
 <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span><span class="o">.</span><span class="n">addHandler</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">NullHandler</span><span class="p">())</span>
 <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span><span class="o">.</span><span class="n">addHandler</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">NullHandler</span><span class="p">())</span>
 
 
+<span class="k">try</span><span class="p">:</span>
+    <span class="kn">from</span> <span class="nn">grpc._grpcio_metadata</span> <span class="k">import</span> <span class="n">__version__</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+    <span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;dev0&quot;</span>
+
 <span class="c1">############################## Future Interface  ###############################</span>
 <span class="c1">############################## Future Interface  ###############################</span>
 
 
 
 
@@ -353,6 +360,22 @@
     <span class="n">UNAUTHENTICATED</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">unauthenticated</span><span class="p">,</span> <span class="s1">&#39;unauthenticated&#39;</span><span class="p">)</span></div>
     <span class="n">UNAUTHENTICATED</span> <span class="o">=</span> <span class="p">(</span><span class="n">_cygrpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">unauthenticated</span><span class="p">,</span> <span class="s1">&#39;unauthenticated&#39;</span><span class="p">)</span></div>
 
 
 
 
+<span class="c1">#############################  gRPC Status  ################################</span>
+
+
+<span class="k">class</span> <span class="nc">Status</span><span class="p">(</span><span class="n">six</span><span class="o">.</span><span class="n">with_metaclass</span><span class="p">(</span><span class="n">abc</span><span class="o">.</span><span class="n">ABCMeta</span><span class="p">)):</span>
+    <span class="sd">&quot;&quot;&quot;Describes the status of an RPC.</span>
+
+<span class="sd">    This is an EXPERIMENTAL API.</span>
+
+<span class="sd">    Attributes:</span>
+<span class="sd">      code: A StatusCode object to be sent to the client.</span>
+<span class="sd">      details: An ASCII-encodable string to be sent to the client upon</span>
+<span class="sd">        termination of the RPC.</span>
+<span class="sd">      trailing_metadata: The trailing :term:`metadata` in the RPC.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+
 <span class="c1">#############################  gRPC Exceptions  ################################</span>
 <span class="c1">#############################  gRPC Exceptions  ################################</span>
 
 
 
 
@@ -1199,6 +1222,25 @@
 <span class="sd">          details: An ASCII-encodable string to be sent to the client upon</span>
 <span class="sd">          details: An ASCII-encodable string to be sent to the client upon</span>
 <span class="sd">            termination of the RPC.</span>
 <span class="sd">            termination of the RPC.</span>
 
 
+<span class="sd">        Raises:</span>
+<span class="sd">          Exception: An exception is always raised to signal the abortion the</span>
+<span class="sd">            RPC to the gRPC runtime.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div>
+
+<div class="viewcode-block" id="ServicerContext.abort_with_status"><a class="viewcode-back" href="../grpc.html#grpc.ServicerContext.abort_with_status">[docs]</a>    <span class="nd">@abc</span><span class="o">.</span><span class="n">abstractmethod</span>
+    <span class="k">def</span> <span class="nf">abort_with_status</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Raises an exception to terminate the RPC with a non-OK status.</span>
+
+<span class="sd">        The status passed as argument will supercede any existing status code,</span>
+<span class="sd">        status message and trailing metadata.</span>
+
+<span class="sd">        This is an EXPERIMENTAL API.</span>
+
+<span class="sd">        Args:</span>
+<span class="sd">          status: A grpc.Status object. The status code in it must not be</span>
+<span class="sd">            StatusCode.OK.</span>
+
 <span class="sd">        Raises:</span>
 <span class="sd">        Raises:</span>
 <span class="sd">          Exception: An exception is always raised to signal the abortion the</span>
 <span class="sd">          Exception: An exception is always raised to signal the abortion the</span>
 <span class="sd">            RPC to the gRPC runtime.</span>
 <span class="sd">            RPC to the gRPC runtime.</span>
@@ -1810,7 +1852,7 @@
 <span class="sd">        handlers. The interceptors are given control in the order they are</span>
 <span class="sd">        handlers. The interceptors are given control in the order they are</span>
 <span class="sd">        specified. This is an EXPERIMENTAL API.</span>
 <span class="sd">        specified. This is an EXPERIMENTAL API.</span>
 <span class="sd">      options: An optional list of key-value pairs (channel args in gRPC runtime)</span>
 <span class="sd">      options: An optional list of key-value pairs (channel args in gRPC runtime)</span>
-<span class="sd">      to configure the channel.</span>
+<span class="sd">        to configure the channel.</span>
 <span class="sd">      maximum_concurrent_rpcs: The maximum number of concurrent RPCs this server</span>
 <span class="sd">      maximum_concurrent_rpcs: The maximum number of concurrent RPCs this server</span>
 <span class="sd">        will service before returning RESOURCE_EXHAUSTED status, or None to</span>
 <span class="sd">        will service before returning RESOURCE_EXHAUSTED status, or None to</span>
 <span class="sd">        indicate no limit.</span>
 <span class="sd">        indicate no limit.</span>
@@ -1834,6 +1876,7 @@
     <span class="s1">&#39;Future&#39;</span><span class="p">,</span>
     <span class="s1">&#39;Future&#39;</span><span class="p">,</span>
     <span class="s1">&#39;ChannelConnectivity&#39;</span><span class="p">,</span>
     <span class="s1">&#39;ChannelConnectivity&#39;</span><span class="p">,</span>
     <span class="s1">&#39;StatusCode&#39;</span><span class="p">,</span>
     <span class="s1">&#39;StatusCode&#39;</span><span class="p">,</span>
+    <span class="s1">&#39;Status&#39;</span><span class="p">,</span>
     <span class="s1">&#39;RpcError&#39;</span><span class="p">,</span>
     <span class="s1">&#39;RpcError&#39;</span><span class="p">,</span>
     <span class="s1">&#39;RpcContext&#39;</span><span class="p">,</span>
     <span class="s1">&#39;RpcContext&#39;</span><span class="p">,</span>
     <span class="s1">&#39;Call&#39;</span><span class="p">,</span>
     <span class="s1">&#39;Call&#39;</span><span class="p">,</span>

+ 265 - 0
python/_modules/grpc_channelz/v1/channelz.html

@@ -0,0 +1,265 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>grpc_channelz.v1.channelz &#8212; gRPC Python 1.19.0.dev0 documentation</title>
+    <link rel="stylesheet" href="../../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
+    <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>
+    <link rel="index" title="Index" href="../../../genindex.html" />
+    <link rel="search" title="Search" href="../../../search.html" />
+   
+  <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head><body>
+  <div class="document">
+    
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+<h1 class="logo"><a href="../../../index.html">gRPC Python</a></h1>
+
+
+
+<p class="blurb">1.19.0.dev0</p>
+
+
+
+
+
+
+<h3>Navigation</h3>
+<p class="caption"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../grpc_channelz.html">gRPC Channelz</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../grpc_health_checking.html">gRPC Health Checking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../grpc_reflection.html">gRPC Reflection</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../grpc_testing.html">gRPC Testing</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
+</ul>
+
+<div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../../index.html">Documentation overview</a><ul>
+  <li><a href="../../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="../../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+
+
+
+
+
+
+
+
+        </div>
+      </div>
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          
+
+          <div class="body" role="main">
+            
+  <h1>Source code for grpc_channelz.v1.channelz</h1><div class="highlight"><pre>
+<span></span><span class="c1"># Copyright 2018 The gRPC Authors</span>
+<span class="c1">#</span>
+<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span>
+<span class="c1"># you may not use this file except in compliance with the License.</span>
+<span class="c1"># You may obtain a copy of the License at</span>
+<span class="c1">#</span>
+<span class="c1">#     http://www.apache.org/licenses/LICENSE-2.0</span>
+<span class="c1">#</span>
+<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
+<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
+<span class="c1"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
+<span class="c1"># See the License for the specific language governing permissions and</span>
+<span class="c1"># limitations under the License.</span>
+<span class="sd">&quot;&quot;&quot;Channelz debug service implementation in gRPC Python.&quot;&quot;&quot;</span>
+
+<span class="kn">import</span> <span class="nn">grpc</span>
+<span class="kn">from</span> <span class="nn">grpc._cython</span> <span class="k">import</span> <span class="n">cygrpc</span>
+
+<span class="kn">import</span> <span class="nn">grpc_channelz.v1.channelz_pb2</span> <span class="k">as</span> <span class="nn">_channelz_pb2</span>
+<span class="kn">import</span> <span class="nn">grpc_channelz.v1.channelz_pb2_grpc</span> <span class="k">as</span> <span class="nn">_channelz_pb2_grpc</span>
+
+<span class="kn">from</span> <span class="nn">google.protobuf</span> <span class="k">import</span> <span class="n">json_format</span>
+
+
+<div class="viewcode-block" id="ChannelzServicer"><a class="viewcode-back" href="../../../grpc_channelz.html#grpc_channelz.v1.channelz.ChannelzServicer">[docs]</a><span class="k">class</span> <span class="nc">ChannelzServicer</span><span class="p">(</span><span class="n">_channelz_pb2_grpc</span><span class="o">.</span><span class="n">ChannelzServicer</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Servicer handling RPCs for service statuses.&quot;&quot;&quot;</span>
+
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">GetTopChannels</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">json_format</span><span class="o">.</span><span class="n">Parse</span><span class="p">(</span>
+                <span class="n">cygrpc</span><span class="o">.</span><span class="n">channelz_get_top_channels</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">start_channel_id</span><span class="p">),</span>
+                <span class="n">_channelz_pb2</span><span class="o">.</span><span class="n">GetTopChannelsResponse</span><span class="p">(),</span>
+            <span class="p">)</span>
+        <span class="k">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="n">json_format</span><span class="o">.</span><span class="n">ParseError</span><span class="p">)</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">INTERNAL</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">GetServers</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">json_format</span><span class="o">.</span><span class="n">Parse</span><span class="p">(</span>
+                <span class="n">cygrpc</span><span class="o">.</span><span class="n">channelz_get_servers</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">start_server_id</span><span class="p">),</span>
+                <span class="n">_channelz_pb2</span><span class="o">.</span><span class="n">GetServersResponse</span><span class="p">(),</span>
+            <span class="p">)</span>
+        <span class="k">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="n">json_format</span><span class="o">.</span><span class="n">ParseError</span><span class="p">)</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">INTERNAL</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">GetServer</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">json_format</span><span class="o">.</span><span class="n">Parse</span><span class="p">(</span>
+                <span class="n">cygrpc</span><span class="o">.</span><span class="n">channelz_get_server</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">server_id</span><span class="p">),</span>
+                <span class="n">_channelz_pb2</span><span class="o">.</span><span class="n">GetServerResponse</span><span class="p">(),</span>
+            <span class="p">)</span>
+        <span class="k">except</span> <span class="ne">ValueError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+        <span class="k">except</span> <span class="n">json_format</span><span class="o">.</span><span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">INTERNAL</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">GetServerSockets</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">json_format</span><span class="o">.</span><span class="n">Parse</span><span class="p">(</span>
+                <span class="n">cygrpc</span><span class="o">.</span><span class="n">channelz_get_server_sockets</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">server_id</span><span class="p">,</span>
+                                                   <span class="n">request</span><span class="o">.</span><span class="n">start_socket_id</span><span class="p">,</span>
+                                                   <span class="n">request</span><span class="o">.</span><span class="n">max_results</span><span class="p">),</span>
+                <span class="n">_channelz_pb2</span><span class="o">.</span><span class="n">GetServerSocketsResponse</span><span class="p">(),</span>
+            <span class="p">)</span>
+        <span class="k">except</span> <span class="ne">ValueError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+        <span class="k">except</span> <span class="n">json_format</span><span class="o">.</span><span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">INTERNAL</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">GetChannel</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">json_format</span><span class="o">.</span><span class="n">Parse</span><span class="p">(</span>
+                <span class="n">cygrpc</span><span class="o">.</span><span class="n">channelz_get_channel</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">channel_id</span><span class="p">),</span>
+                <span class="n">_channelz_pb2</span><span class="o">.</span><span class="n">GetChannelResponse</span><span class="p">(),</span>
+            <span class="p">)</span>
+        <span class="k">except</span> <span class="ne">ValueError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+        <span class="k">except</span> <span class="n">json_format</span><span class="o">.</span><span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">INTERNAL</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">GetSubchannel</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">json_format</span><span class="o">.</span><span class="n">Parse</span><span class="p">(</span>
+                <span class="n">cygrpc</span><span class="o">.</span><span class="n">channelz_get_subchannel</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">subchannel_id</span><span class="p">),</span>
+                <span class="n">_channelz_pb2</span><span class="o">.</span><span class="n">GetSubchannelResponse</span><span class="p">(),</span>
+            <span class="p">)</span>
+        <span class="k">except</span> <span class="ne">ValueError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+        <span class="k">except</span> <span class="n">json_format</span><span class="o">.</span><span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">INTERNAL</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">GetSocket</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">json_format</span><span class="o">.</span><span class="n">Parse</span><span class="p">(</span>
+                <span class="n">cygrpc</span><span class="o">.</span><span class="n">channelz_get_socket</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">socket_id</span><span class="p">),</span>
+                <span class="n">_channelz_pb2</span><span class="o">.</span><span class="n">GetSocketResponse</span><span class="p">(),</span>
+            <span class="p">)</span>
+        <span class="k">except</span> <span class="ne">ValueError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+        <span class="k">except</span> <span class="n">json_format</span><span class="o">.</span><span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">INTERNAL</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">set_details</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span></div>
+
+
+<div class="viewcode-block" id="add_channelz_servicer"><a class="viewcode-back" href="../../../grpc_channelz.html#grpc_channelz.v1.channelz.add_channelz_servicer">[docs]</a><span class="k">def</span> <span class="nf">add_channelz_servicer</span><span class="p">(</span><span class="n">server</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Add Channelz servicer to a server. Channelz servicer is in charge of</span>
+<span class="sd">    pulling information from C-Core for entire process. It will allow the</span>
+<span class="sd">    server to response to Channelz queries.</span>
+
+<span class="sd">    The Channelz statistic is enabled by default inside C-Core. Whether the</span>
+<span class="sd">    statistic is enabled or not is isolated from adding Channelz servicer.</span>
+<span class="sd">    That means you can query Channelz info with a Channelz-disabled channel,</span>
+<span class="sd">    and you can add Channelz servicer to a Channelz-disabled server.</span>
+
+<span class="sd">    The Channelz statistic can be enabled or disabled by channel option</span>
+<span class="sd">    &#39;grpc.enable_channelz&#39;. Set to 1 to enable, set to 0 to disable.</span>
+
+<span class="sd">    This is an EXPERIMENTAL API.</span>
+
+<span class="sd">    Args:</span>
+<span class="sd">      server: grpc.Server to which Channelz service will be added.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">_channelz_pb2_grpc</span><span class="o">.</span><span class="n">add_ChannelzServicer_to_server</span><span class="p">(</span><span class="n">ChannelzServicer</span><span class="p">(),</span>
+                                                      <span class="n">server</span><span class="p">)</span></div>
+</pre></div>
+
+          </div>
+          
+        </div>
+      </div>
+    <div class="clearer"></div>
+  </div>
+    <div class="footer">
+      &copy;2018, The gRPC Authors.
+      
+    </div>
+
+    
+
+    
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-60127042-1']);
+      _gaq.push(['_setDomainName', 'none']);
+      _gaq.push(['_setAllowLinker', true]);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+    
+  </body>
+</html>

+ 76 - 12
python/_modules/grpc_health/v1/health.html

@@ -6,13 +6,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>grpc_health.v1.health &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>grpc_health.v1.health &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="../../../_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="../../../_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="../../../_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="../../../_static/language_data.js"></script>
     <link rel="index" title="Index" href="../../../genindex.html" />
     <link rel="index" title="Index" href="../../../genindex.html" />
     <link rel="search" title="Search" href="../../../search.html" />
     <link rel="search" title="Search" href="../../../search.html" />
    
    
@@ -30,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -41,6 +42,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_testing.html">gRPC Testing</a></li>
@@ -110,15 +112,61 @@
 <span class="n">SERVICE_NAME</span> <span class="o">=</span> <span class="n">_health_pb2</span><span class="o">.</span><span class="n">DESCRIPTOR</span><span class="o">.</span><span class="n">services_by_name</span><span class="p">[</span><span class="s1">&#39;Health&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">full_name</span>
 <span class="n">SERVICE_NAME</span> <span class="o">=</span> <span class="n">_health_pb2</span><span class="o">.</span><span class="n">DESCRIPTOR</span><span class="o">.</span><span class="n">services_by_name</span><span class="p">[</span><span class="s1">&#39;Health&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">full_name</span>
 
 
 
 
+<span class="k">class</span> <span class="nc">_Watcher</span><span class="p">():</span>
+
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_condition</span> <span class="o">=</span> <span class="n">threading</span><span class="o">.</span><span class="n">Condition</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_responses</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_open</span> <span class="o">=</span> <span class="kc">True</span>
+
+    <span class="k">def</span> <span class="nf">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span> <span class="bp">self</span>
+
+    <span class="k">def</span> <span class="nf">_next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_condition</span><span class="p">:</span>
+            <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_responses</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_condition</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_responses</span><span class="p">:</span>
+                <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_responses</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">StopIteration</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">__next__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">):</span>
+        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_condition</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_responses</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">response</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_condition</span><span class="o">.</span><span class="n">notify</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_condition</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_open</span> <span class="o">=</span> <span class="kc">False</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_condition</span><span class="o">.</span><span class="n">notify</span><span class="p">()</span>
+
+
 <div class="viewcode-block" id="HealthServicer"><a class="viewcode-back" href="../../../grpc_health_checking.html#grpc_health.v1.health.HealthServicer">[docs]</a><span class="k">class</span> <span class="nc">HealthServicer</span><span class="p">(</span><span class="n">_health_pb2_grpc</span><span class="o">.</span><span class="n">HealthServicer</span><span class="p">):</span>
 <div class="viewcode-block" id="HealthServicer"><a class="viewcode-back" href="../../../grpc_health_checking.html#grpc_health.v1.health.HealthServicer">[docs]</a><span class="k">class</span> <span class="nc">HealthServicer</span><span class="p">(</span><span class="n">_health_pb2_grpc</span><span class="o">.</span><span class="n">HealthServicer</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Servicer handling RPCs for service statuses.&quot;&quot;&quot;</span>
     <span class="sd">&quot;&quot;&quot;Servicer handling RPCs for service statuses.&quot;&quot;&quot;</span>
 
 
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">_server_status_lock</span> <span class="o">=</span> <span class="n">threading</span><span class="o">.</span><span class="n">Lock</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_lock</span> <span class="o">=</span> <span class="n">threading</span><span class="o">.</span><span class="n">RLock</span><span class="p">()</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_server_status</span> <span class="o">=</span> <span class="p">{}</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_server_status</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_watchers</span> <span class="o">=</span> <span class="p">{}</span>
+
+    <span class="k">def</span> <span class="nf">_on_close_callback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">watcher</span><span class="p">,</span> <span class="n">service</span><span class="p">):</span>
+
+        <span class="k">def</span> <span class="nf">callback</span><span class="p">():</span>
+            <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_lock</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_watchers</span><span class="p">[</span><span class="n">service</span><span class="p">]</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">watcher</span><span class="p">)</span>
+            <span class="n">watcher</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+        <span class="k">return</span> <span class="n">callback</span>
 
 
     <span class="k">def</span> <span class="nf">Check</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
     <span class="k">def</span> <span class="nf">Check</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
-        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_server_status_lock</span><span class="p">:</span>
+        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_lock</span><span class="p">:</span>
             <span class="n">status</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_server_status</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">service</span><span class="p">)</span>
             <span class="n">status</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_server_status</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">service</span><span class="p">)</span>
             <span class="k">if</span> <span class="n">status</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
             <span class="k">if</span> <span class="n">status</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
                 <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">)</span>
                 <span class="n">context</span><span class="o">.</span><span class="n">set_code</span><span class="p">(</span><span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">)</span>
@@ -126,17 +174,33 @@
             <span class="k">else</span><span class="p">:</span>
             <span class="k">else</span><span class="p">:</span>
                 <span class="k">return</span> <span class="n">_health_pb2</span><span class="o">.</span><span class="n">HealthCheckResponse</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">)</span>
                 <span class="k">return</span> <span class="n">_health_pb2</span><span class="o">.</span><span class="n">HealthCheckResponse</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">)</span>
 
 
+    <span class="k">def</span> <span class="nf">Watch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
+        <span class="n">service</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">service</span>
+        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_lock</span><span class="p">:</span>
+            <span class="n">status</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_server_status</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">service</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">status</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+                <span class="n">status</span> <span class="o">=</span> <span class="n">_health_pb2</span><span class="o">.</span><span class="n">HealthCheckResponse</span><span class="o">.</span><span class="n">SERVICE_UNKNOWN</span>  <span class="c1"># pylint: disable=no-member</span>
+            <span class="n">watcher</span> <span class="o">=</span> <span class="n">_Watcher</span><span class="p">()</span>
+            <span class="n">watcher</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">_health_pb2</span><span class="o">.</span><span class="n">HealthCheckResponse</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">))</span>
+            <span class="k">if</span> <span class="n">service</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_watchers</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_watchers</span><span class="p">[</span><span class="n">service</span><span class="p">]</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_watchers</span><span class="p">[</span><span class="n">service</span><span class="p">]</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">watcher</span><span class="p">)</span>
+            <span class="n">context</span><span class="o">.</span><span class="n">add_callback</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_on_close_callback</span><span class="p">(</span><span class="n">watcher</span><span class="p">,</span> <span class="n">service</span><span class="p">))</span>
+        <span class="k">return</span> <span class="n">watcher</span>
+
 <div class="viewcode-block" id="HealthServicer.set"><a class="viewcode-back" href="../../../grpc_health_checking.html#grpc_health.v1.health.HealthServicer.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service</span><span class="p">,</span> <span class="n">status</span><span class="p">):</span>
 <div class="viewcode-block" id="HealthServicer.set"><a class="viewcode-back" href="../../../grpc_health_checking.html#grpc_health.v1.health.HealthServicer.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service</span><span class="p">,</span> <span class="n">status</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Sets the status of a service.</span>
         <span class="sd">&quot;&quot;&quot;Sets the status of a service.</span>
 
 
-<span class="sd">    Args:</span>
-<span class="sd">        service: string, the name of the service.</span>
-<span class="sd">            NOTE, &#39;&#39; must be set.</span>
-<span class="sd">        status: HealthCheckResponse.status enum value indicating</span>
-<span class="sd">            the status of the service</span>
-<span class="sd">    &quot;&quot;&quot;</span>
-        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_server_status_lock</span><span class="p">:</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">_server_status</span><span class="p">[</span><span class="n">service</span><span class="p">]</span> <span class="o">=</span> <span class="n">status</span></div></div>
+<span class="sd">        Args:</span>
+<span class="sd">          service: string, the name of the service. NOTE, &#39;&#39; must be set.</span>
+<span class="sd">          status: HealthCheckResponse.status enum value indicating the status of</span>
+<span class="sd">            the service</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_lock</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_server_status</span><span class="p">[</span><span class="n">service</span><span class="p">]</span> <span class="o">=</span> <span class="n">status</span>
+            <span class="k">if</span> <span class="n">service</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_watchers</span><span class="p">:</span>
+                <span class="k">for</span> <span class="n">watcher</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_watchers</span><span class="p">[</span><span class="n">service</span><span class="p">]:</span>
+                    <span class="n">watcher</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">_health_pb2</span><span class="o">.</span><span class="n">HealthCheckResponse</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">))</span></div></div>
 </pre></div>
 </pre></div>
 
 
           </div>
           </div>

+ 4 - 2
python/_modules/grpc_reflection/v1alpha/reflection.html

@@ -6,13 +6,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>grpc_reflection.v1alpha.reflection &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>grpc_reflection.v1alpha.reflection &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="../../../_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="../../../_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="../../../_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="../../../_static/language_data.js"></script>
     <link rel="index" title="Index" href="../../../genindex.html" />
     <link rel="index" title="Index" href="../../../genindex.html" />
     <link rel="search" title="Search" href="../../../search.html" />
     <link rel="search" title="Search" href="../../../search.html" />
    
    
@@ -30,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -41,6 +42,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../grpc_testing.html">gRPC Testing</a></li>

+ 4 - 2
python/_modules/grpc_testing.html

@@ -6,13 +6,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>grpc_testing &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>grpc_testing &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="../_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="../_static/language_data.js"></script>
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="search" title="Search" href="../search.html" />
    
    
@@ -30,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -41,6 +42,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="../grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_testing.html">gRPC Testing</a></li>

+ 5 - 2
python/_modules/index.html

@@ -6,13 +6,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Overview: module code &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>Overview: module code &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="../_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="../_static/language_data.js"></script>
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="search" title="Search" href="../search.html" />
    
    
@@ -30,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -41,6 +42,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="../grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../grpc_testing.html">gRPC Testing</a></li>
@@ -84,6 +86,7 @@
             
             
   <h1>All modules for which code is available</h1>
   <h1>All modules for which code is available</h1>
 <ul><li><a href="grpc.html">grpc</a></li>
 <ul><li><a href="grpc.html">grpc</a></li>
+<li><a href="grpc_channelz/v1/channelz.html">grpc_channelz.v1.channelz</a></li>
 <li><a href="grpc_health/v1/health.html">grpc_health.v1.health</a></li>
 <li><a href="grpc_health/v1/health.html">grpc_health.v1.health</a></li>
 <li><a href="grpc_reflection/v1alpha/reflection.html">grpc_reflection.v1alpha.reflection</a></li>
 <li><a href="grpc_reflection/v1alpha/reflection.html">grpc_reflection.v1alpha.reflection</a></li>
 <li><a href="grpc_testing.html">grpc_testing</a></li>
 <li><a href="grpc_testing.html">grpc_testing</a></li>

+ 5 - 0
python/_sources/grpc.rst.txt

@@ -19,6 +19,11 @@ Go to `gRPC Python Examples <https://github.com/grpc/grpc/tree/master/examples/p
 Module Contents
 Module Contents
 ---------------
 ---------------
 
 
+Version
+^^^^^^^
+
+The version string is available as :code:`grpc.__version__`.
+
 Create Client
 Create Client
 ^^^^^^^^^^^^^
 ^^^^^^^^^^^^^
 
 

+ 12 - 0
python/_sources/grpc_channelz.rst.txt

@@ -0,0 +1,12 @@
+gRPC Channelz
+====================
+
+What is gRPC Channelz?
+---------------------------------------------
+
+Design Document `gRPC Channelz <https://github.com/grpc/proposal/blob/master/A14-channelz.md>`_
+
+Module Contents
+---------------
+
+.. automodule:: grpc_channelz.v1.channelz

+ 1 - 0
python/_sources/index.rst.txt

@@ -10,6 +10,7 @@ API Reference
    :caption: Contents:
    :caption: Contents:
 
 
    grpc
    grpc
+   grpc_channelz
    grpc_health_checking
    grpc_health_checking
    grpc_reflection
    grpc_reflection
    grpc_testing
    grpc_testing

+ 2 - 288
python/_static/documentation_options.js

@@ -1,296 +1,10 @@
 var DOCUMENTATION_OPTIONS = {
 var DOCUMENTATION_OPTIONS = {
     URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
     URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
-    VERSION: '1.17.1',
+    VERSION: '1.19.0.dev0',
     LANGUAGE: 'en',
     LANGUAGE: 'en',
     COLLAPSE_INDEX: false,
     COLLAPSE_INDEX: false,
     FILE_SUFFIX: '.html',
     FILE_SUFFIX: '.html',
     HAS_SOURCE: true,
     HAS_SOURCE: true,
     SOURCELINK_SUFFIX: '.txt',
     SOURCELINK_SUFFIX: '.txt',
     NAVIGATION_WITH_KEYS: false,
     NAVIGATION_WITH_KEYS: false,
-    SEARCH_LANGUAGE_STOP_WORDS: ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"]
-};
-
-
-
-/* Non-minified version JS is _stemmer.js if file is provided */ 
-/**
- * Porter Stemmer
- */
-var Stemmer = function() {
-
-  var step2list = {
-    ational: 'ate',
-    tional: 'tion',
-    enci: 'ence',
-    anci: 'ance',
-    izer: 'ize',
-    bli: 'ble',
-    alli: 'al',
-    entli: 'ent',
-    eli: 'e',
-    ousli: 'ous',
-    ization: 'ize',
-    ation: 'ate',
-    ator: 'ate',
-    alism: 'al',
-    iveness: 'ive',
-    fulness: 'ful',
-    ousness: 'ous',
-    aliti: 'al',
-    iviti: 'ive',
-    biliti: 'ble',
-    logi: 'log'
-  };
-
-  var step3list = {
-    icate: 'ic',
-    ative: '',
-    alize: 'al',
-    iciti: 'ic',
-    ical: 'ic',
-    ful: '',
-    ness: ''
-  };
-
-  var c = "[^aeiou]";          // consonant
-  var v = "[aeiouy]";          // vowel
-  var C = c + "[^aeiouy]*";    // consonant sequence
-  var V = v + "[aeiou]*";      // vowel sequence
-
-  var mgr0 = "^(" + C + ")?" + V + C;                      // [C]VC... is m>0
-  var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$";    // [C]VC[V] is m=1
-  var mgr1 = "^(" + C + ")?" + V + C + V + C;              // [C]VCVC... is m>1
-  var s_v   = "^(" + C + ")?" + v;                         // vowel in stem
-
-  this.stemWord = function (w) {
-    var stem;
-    var suffix;
-    var firstch;
-    var origword = w;
-
-    if (w.length < 3)
-      return w;
-
-    var re;
-    var re2;
-    var re3;
-    var re4;
-
-    firstch = w.substr(0,1);
-    if (firstch == "y")
-      w = firstch.toUpperCase() + w.substr(1);
-
-    // Step 1a
-    re = /^(.+?)(ss|i)es$/;
-    re2 = /^(.+?)([^s])s$/;
-
-    if (re.test(w))
-      w = w.replace(re,"$1$2");
-    else if (re2.test(w))
-      w = w.replace(re2,"$1$2");
-
-    // Step 1b
-    re = /^(.+?)eed$/;
-    re2 = /^(.+?)(ed|ing)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      re = new RegExp(mgr0);
-      if (re.test(fp[1])) {
-        re = /.$/;
-        w = w.replace(re,"");
-      }
-    }
-    else if (re2.test(w)) {
-      var fp = re2.exec(w);
-      stem = fp[1];
-      re2 = new RegExp(s_v);
-      if (re2.test(stem)) {
-        w = stem;
-        re2 = /(at|bl|iz)$/;
-        re3 = new RegExp("([^aeiouylsz])\\1$");
-        re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
-        if (re2.test(w))
-          w = w + "e";
-        else if (re3.test(w)) {
-          re = /.$/;
-          w = w.replace(re,"");
-        }
-        else if (re4.test(w))
-          w = w + "e";
-      }
-    }
-
-    // Step 1c
-    re = /^(.+?)y$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(s_v);
-      if (re.test(stem))
-        w = stem + "i";
-    }
-
-    // Step 2
-    re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      suffix = fp[2];
-      re = new RegExp(mgr0);
-      if (re.test(stem))
-        w = stem + step2list[suffix];
-    }
-
-    // Step 3
-    re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      suffix = fp[2];
-      re = new RegExp(mgr0);
-      if (re.test(stem))
-        w = stem + step3list[suffix];
-    }
-
-    // Step 4
-    re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
-    re2 = /^(.+?)(s|t)(ion)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(mgr1);
-      if (re.test(stem))
-        w = stem;
-    }
-    else if (re2.test(w)) {
-      var fp = re2.exec(w);
-      stem = fp[1] + fp[2];
-      re2 = new RegExp(mgr1);
-      if (re2.test(stem))
-        w = stem;
-    }
-
-    // Step 5
-    re = /^(.+?)e$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(mgr1);
-      re2 = new RegExp(meq1);
-      re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
-      if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
-        w = stem;
-    }
-    re = /ll$/;
-    re2 = new RegExp(mgr1);
-    if (re.test(w) && re2.test(w)) {
-      re = /.$/;
-      w = w.replace(re,"");
-    }
-
-    // and turn initial Y back to y
-    if (firstch == "y")
-      w = firstch.toLowerCase() + w.substr(1);
-    return w;
-  }
-}
-
-
-
-
-
-var splitChars = (function() {
-    var result = {};
-    var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
-         1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
-         2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
-         2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
-         3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
-         3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
-         4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
-         8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
-         11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
-         43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
-    var i, j, start, end;
-    for (i = 0; i < singles.length; i++) {
-        result[singles[i]] = true;
-    }
-    var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
-         [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
-         [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
-         [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
-         [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
-         [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
-         [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
-         [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
-         [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
-         [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
-         [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
-         [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
-         [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
-         [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
-         [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
-         [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
-         [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
-         [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
-         [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
-         [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
-         [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
-         [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
-         [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
-         [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
-         [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
-         [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
-         [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
-         [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
-         [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
-         [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
-         [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
-         [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
-         [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
-         [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
-         [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
-         [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
-         [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
-         [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
-         [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
-         [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
-         [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
-         [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
-         [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
-         [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
-         [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
-         [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
-         [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
-         [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
-         [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
-    for (i = 0; i < ranges.length; i++) {
-        start = ranges[i][0];
-        end = ranges[i][1];
-        for (j = start; j <= end; j++) {
-            result[j] = true;
-        }
-    }
-    return result;
-})();
-
-function splitQuery(query) {
-    var result = [];
-    var start = -1;
-    for (var i = 0; i < query.length; i++) {
-        if (splitChars[query.charCodeAt(i)]) {
-            if (start !== -1) {
-                result.push(query.slice(start, i));
-                start = -1;
-            }
-        } else if (start === -1) {
-            start = i;
-        }
-    }
-    if (start !== -1) {
-        result.push(query.slice(start));
-    }
-    return result;
-}
-
-
+};

+ 297 - 0
python/_static/language_data.js

@@ -0,0 +1,297 @@
+/*
+ * language_data.js
+ * ~~~~~~~~~~~~~~~~
+ *
+ * This script contains the language-specific data used by searchtools.js,
+ * namely the list of stopwords, stemmer, scorer and splitter.
+ *
+ * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
+
+
+/* Non-minified version JS is _stemmer.js if file is provided */ 
+/**
+ * Porter Stemmer
+ */
+var Stemmer = function() {
+
+  var step2list = {
+    ational: 'ate',
+    tional: 'tion',
+    enci: 'ence',
+    anci: 'ance',
+    izer: 'ize',
+    bli: 'ble',
+    alli: 'al',
+    entli: 'ent',
+    eli: 'e',
+    ousli: 'ous',
+    ization: 'ize',
+    ation: 'ate',
+    ator: 'ate',
+    alism: 'al',
+    iveness: 'ive',
+    fulness: 'ful',
+    ousness: 'ous',
+    aliti: 'al',
+    iviti: 'ive',
+    biliti: 'ble',
+    logi: 'log'
+  };
+
+  var step3list = {
+    icate: 'ic',
+    ative: '',
+    alize: 'al',
+    iciti: 'ic',
+    ical: 'ic',
+    ful: '',
+    ness: ''
+  };
+
+  var c = "[^aeiou]";          // consonant
+  var v = "[aeiouy]";          // vowel
+  var C = c + "[^aeiouy]*";    // consonant sequence
+  var V = v + "[aeiou]*";      // vowel sequence
+
+  var mgr0 = "^(" + C + ")?" + V + C;                      // [C]VC... is m>0
+  var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$";    // [C]VC[V] is m=1
+  var mgr1 = "^(" + C + ")?" + V + C + V + C;              // [C]VCVC... is m>1
+  var s_v   = "^(" + C + ")?" + v;                         // vowel in stem
+
+  this.stemWord = function (w) {
+    var stem;
+    var suffix;
+    var firstch;
+    var origword = w;
+
+    if (w.length < 3)
+      return w;
+
+    var re;
+    var re2;
+    var re3;
+    var re4;
+
+    firstch = w.substr(0,1);
+    if (firstch == "y")
+      w = firstch.toUpperCase() + w.substr(1);
+
+    // Step 1a
+    re = /^(.+?)(ss|i)es$/;
+    re2 = /^(.+?)([^s])s$/;
+
+    if (re.test(w))
+      w = w.replace(re,"$1$2");
+    else if (re2.test(w))
+      w = w.replace(re2,"$1$2");
+
+    // Step 1b
+    re = /^(.+?)eed$/;
+    re2 = /^(.+?)(ed|ing)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      re = new RegExp(mgr0);
+      if (re.test(fp[1])) {
+        re = /.$/;
+        w = w.replace(re,"");
+      }
+    }
+    else if (re2.test(w)) {
+      var fp = re2.exec(w);
+      stem = fp[1];
+      re2 = new RegExp(s_v);
+      if (re2.test(stem)) {
+        w = stem;
+        re2 = /(at|bl|iz)$/;
+        re3 = new RegExp("([^aeiouylsz])\\1$");
+        re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+        if (re2.test(w))
+          w = w + "e";
+        else if (re3.test(w)) {
+          re = /.$/;
+          w = w.replace(re,"");
+        }
+        else if (re4.test(w))
+          w = w + "e";
+      }
+    }
+
+    // Step 1c
+    re = /^(.+?)y$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(s_v);
+      if (re.test(stem))
+        w = stem + "i";
+    }
+
+    // Step 2
+    re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      suffix = fp[2];
+      re = new RegExp(mgr0);
+      if (re.test(stem))
+        w = stem + step2list[suffix];
+    }
+
+    // Step 3
+    re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      suffix = fp[2];
+      re = new RegExp(mgr0);
+      if (re.test(stem))
+        w = stem + step3list[suffix];
+    }
+
+    // Step 4
+    re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+    re2 = /^(.+?)(s|t)(ion)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(mgr1);
+      if (re.test(stem))
+        w = stem;
+    }
+    else if (re2.test(w)) {
+      var fp = re2.exec(w);
+      stem = fp[1] + fp[2];
+      re2 = new RegExp(mgr1);
+      if (re2.test(stem))
+        w = stem;
+    }
+
+    // Step 5
+    re = /^(.+?)e$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(mgr1);
+      re2 = new RegExp(meq1);
+      re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+      if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
+        w = stem;
+    }
+    re = /ll$/;
+    re2 = new RegExp(mgr1);
+    if (re.test(w) && re2.test(w)) {
+      re = /.$/;
+      w = w.replace(re,"");
+    }
+
+    // and turn initial Y back to y
+    if (firstch == "y")
+      w = firstch.toLowerCase() + w.substr(1);
+    return w;
+  }
+}
+
+
+
+
+
+var splitChars = (function() {
+    var result = {};
+    var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
+         1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
+         2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
+         2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
+         3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
+         3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
+         4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
+         8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
+         11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
+         43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
+    var i, j, start, end;
+    for (i = 0; i < singles.length; i++) {
+        result[singles[i]] = true;
+    }
+    var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
+         [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
+         [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
+         [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
+         [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
+         [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
+         [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
+         [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
+         [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
+         [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
+         [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
+         [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
+         [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
+         [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
+         [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
+         [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
+         [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
+         [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
+         [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
+         [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
+         [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
+         [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
+         [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
+         [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
+         [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
+         [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
+         [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
+         [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
+         [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
+         [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
+         [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
+         [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
+         [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
+         [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
+         [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
+         [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
+         [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
+         [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
+         [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
+         [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
+         [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
+         [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
+         [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
+         [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
+         [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
+         [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
+         [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
+         [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
+         [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
+    for (i = 0; i < ranges.length; i++) {
+        start = ranges[i][0];
+        end = ranges[i][1];
+        for (j = start; j <= end; j++) {
+            result[j] = true;
+        }
+    }
+    return result;
+})();
+
+function splitQuery(query) {
+    var result = [];
+    var start = -1;
+    for (var i = 0; i < query.length; i++) {
+        if (splitChars[query.charCodeAt(i)]) {
+            if (start !== -1) {
+                result.push(query.slice(start, i));
+                start = -1;
+            }
+        } else if (start === -1) {
+            start = i;
+        }
+    }
+    if (start !== -1) {
+        result.push(query.slice(start));
+    }
+    return result;
+}
+
+

+ 0 - 1
python/_static/searchtools.js

@@ -138,7 +138,6 @@ var Search = {
    */
    */
   query : function(query) {
   query : function(query) {
     var i;
     var i;
-    var stopwords = DOCUMENTATION_OPTIONS.SEARCH_LANGUAGE_STOP_WORDS;
 
 
     // stem the searchterms and add them to the correct list
     // stem the searchterms and add them to the correct list
     var stemmer = new Stemmer();
     var stemmer = new Stemmer();

+ 14 - 4
python/genindex.html

@@ -7,13 +7,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Index &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>Index &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="_static/language_data.js"></script>
     <link rel="index" title="Index" href="#" />
     <link rel="index" title="Index" href="#" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="search" title="Search" href="search.html" />
    
    
@@ -31,7 +32,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -42,6 +43,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
@@ -131,6 +133,8 @@
 <table style="width: 100%" class="indextable genindextable"><tr>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="grpc.html#grpc.ServicerContext.abort">abort() (grpc.ServicerContext method)</a>
       <li><a href="grpc.html#grpc.ServicerContext.abort">abort() (grpc.ServicerContext method)</a>
+</li>
+      <li><a href="grpc.html#grpc.ServicerContext.abort_with_status">abort_with_status() (grpc.ServicerContext method)</a>
 </li>
 </li>
       <li><a href="grpc.html#grpc.StatusCode.ABORTED">ABORTED (grpc.StatusCode attribute)</a>
       <li><a href="grpc.html#grpc.StatusCode.ABORTED">ABORTED (grpc.StatusCode attribute)</a>
 </li>
 </li>
@@ -138,12 +142,14 @@
 </li>
 </li>
       <li><a href="grpc.html#grpc.RpcContext.add_callback">add_callback() (grpc.RpcContext method)</a>
       <li><a href="grpc.html#grpc.RpcContext.add_callback">add_callback() (grpc.RpcContext method)</a>
 </li>
 </li>
-      <li><a href="grpc.html#grpc.Future.add_done_callback">add_done_callback() (grpc.Future method)</a>
+      <li><a href="grpc_channelz.html#grpc_channelz.v1.channelz.add_channelz_servicer">add_channelz_servicer() (in module grpc_channelz.v1.channelz)</a>
 </li>
 </li>
-      <li><a href="grpc.html#grpc.Server.add_generic_rpc_handlers">add_generic_rpc_handlers() (grpc.Server method)</a>
+      <li><a href="grpc.html#grpc.Future.add_done_callback">add_done_callback() (grpc.Future method)</a>
 </li>
 </li>
   </ul></td>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="grpc.html#grpc.Server.add_generic_rpc_handlers">add_generic_rpc_handlers() (grpc.Server method)</a>
+</li>
       <li><a href="grpc.html#grpc.Server.add_insecure_port">add_insecure_port() (grpc.Server method)</a>
       <li><a href="grpc.html#grpc.Server.add_insecure_port">add_insecure_port() (grpc.Server method)</a>
 </li>
 </li>
       <li><a href="grpc.html#grpc.Server.add_secure_port">add_secure_port() (grpc.Server method)</a>
       <li><a href="grpc.html#grpc.Server.add_secure_port">add_secure_port() (grpc.Server method)</a>
@@ -215,6 +221,8 @@
       <li><a href="grpc.html#grpc.ChannelConnectivity">ChannelConnectivity (class in grpc)</a>
       <li><a href="grpc.html#grpc.ChannelConnectivity">ChannelConnectivity (class in grpc)</a>
 </li>
 </li>
       <li><a href="grpc.html#grpc.ChannelCredentials">ChannelCredentials (class in grpc)</a>
       <li><a href="grpc.html#grpc.ChannelCredentials">ChannelCredentials (class in grpc)</a>
+</li>
+      <li><a href="grpc_channelz.html#grpc_channelz.v1.channelz.ChannelzServicer">ChannelzServicer (class in grpc_channelz.v1.channelz)</a>
 </li>
 </li>
       <li><a href="grpc.html#grpc.ClientCallDetails">ClientCallDetails (class in grpc)</a>
       <li><a href="grpc.html#grpc.ClientCallDetails">ClientCallDetails (class in grpc)</a>
 </li>
 </li>
@@ -294,6 +302,8 @@
 </li>
 </li>
   </ul></td>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="grpc_channelz.html#module-grpc_channelz.v1.channelz">grpc_channelz.v1.channelz (module)</a>
+</li>
       <li><a href="grpc_reflection.html#module-grpc_reflection.v1alpha.reflection">grpc_reflection.v1alpha.reflection (module)</a>
       <li><a href="grpc_reflection.html#module-grpc_reflection.v1alpha.reflection">grpc_reflection.v1alpha.reflection (module)</a>
 </li>
 </li>
       <li><a href="grpc_testing.html#module-grpc_testing">grpc_testing (module)</a>
       <li><a href="grpc_testing.html#module-grpc_testing">grpc_testing (module)</a>

+ 4 - 2
python/glossary.html

@@ -6,13 +6,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Glossary &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>Glossary &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="_static/language_data.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="prev" title="gRPC Testing" href="grpc_testing.html" />
     <link rel="prev" title="gRPC Testing" href="grpc_testing.html" />
@@ -31,7 +32,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -42,6 +43,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>

+ 34 - 6
python/grpc.html

@@ -6,16 +6,17 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>gRPC &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>gRPC &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="_static/language_data.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="search" title="Search" href="search.html" />
-    <link rel="next" title="gRPC Health Checking" href="grpc_health_checking.html" />
+    <link rel="next" title="gRPC Channelz" href="grpc_channelz.html" />
     <link rel="prev" title="Welcome to gRPC Python’s documentation!" href="index.html" />
     <link rel="prev" title="Welcome to gRPC Python’s documentation!" href="index.html" />
    
    
   <link rel="stylesheet" href="_static/custom.css" type="text/css" />
   <link rel="stylesheet" href="_static/custom.css" type="text/css" />
@@ -32,7 +33,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -46,6 +47,7 @@
 <li class="toctree-l2"><a class="reference internal" href="#tutorial">Tutorial</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#tutorial">Tutorial</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#example">Example</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#example">Example</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#version">Version</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#create-client">Create Client</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#create-client">Create Client</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#create-client-credentials">Create Client Credentials</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#create-client-credentials">Create Client Credentials</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#create-server">Create Server</a></li>
 <li class="toctree-l3"><a class="reference internal" href="#create-server">Create Server</a></li>
@@ -70,6 +72,7 @@
 </li>
 </li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
@@ -81,7 +84,7 @@
 <ul>
 <ul>
   <li><a href="index.html">Documentation overview</a><ul>
   <li><a href="index.html">Documentation overview</a><ul>
       <li>Previous: <a href="index.html" title="previous chapter">Welcome to gRPC Python’s documentation!</a></li>
       <li>Previous: <a href="index.html" title="previous chapter">Welcome to gRPC Python’s documentation!</a></li>
-      <li>Next: <a href="grpc_health_checking.html" title="next chapter">gRPC Health Checking</a></li>
+      <li>Next: <a href="grpc_channelz.html" title="next chapter">gRPC Channelz</a></li>
   </ul></li>
   </ul></li>
 </ul>
 </ul>
 </div>
 </div>
@@ -126,6 +129,10 @@ Or, if you would like dive in with more extensive usage of gRPC Python, check <a
 </div>
 </div>
 <div class="section" id="module-contents">
 <div class="section" id="module-contents">
 <h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2>
 <h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="version">
+<h3>Version<a class="headerlink" href="#version" title="Permalink to this headline">¶</a></h3>
+<p>The version string is available as <code class="code docutils literal notranslate"><span class="pre">grpc.__version__</span></code>.</p>
+</div>
 <div class="section" id="create-client">
 <div class="section" id="create-client">
 <h3>Create Client<a class="headerlink" href="#create-client" title="Permalink to this headline">¶</a></h3>
 <h3>Create Client<a class="headerlink" href="#create-client" title="Permalink to this headline">¶</a></h3>
 <dl class="function">
 <dl class="function">
@@ -340,8 +347,8 @@ before the server is started.</li>
 and optionally manipulate the incoming RPCs before handing them over to
 and optionally manipulate the incoming RPCs before handing them over to
 handlers. The interceptors are given control in the order they are
 handlers. The interceptors are given control in the order they are
 specified. This is an EXPERIMENTAL API.</li>
 specified. This is an EXPERIMENTAL API.</li>
-<li><strong>options</strong> – An optional list of key-value pairs (channel args in gRPC runtime)</li>
-<li><strong>configure the channel.</strong> (<em>to</em>) – </li>
+<li><strong>options</strong> – An optional list of key-value pairs (channel args in gRPC runtime)
+to configure the channel.</li>
 <li><strong>maximum_concurrent_rpcs</strong> – The maximum number of concurrent RPCs this server
 <li><strong>maximum_concurrent_rpcs</strong> – The maximum number of concurrent RPCs this server
 will service before returning RESOURCE_EXHAUSTED status, or None to
 will service before returning RESOURCE_EXHAUSTED status, or None to
 indicate no limit.</li>
 indicate no limit.</li>
@@ -1532,6 +1539,27 @@ RPC to the gRPC runtime.</p>
 </table>
 </table>
 </dd></dl>
 </dd></dl>
 
 
+<dl class="method">
+<dt id="grpc.ServicerContext.abort_with_status">
+<code class="descname">abort_with_status</code><span class="sig-paren">(</span><em>status</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc.html#ServicerContext.abort_with_status"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc.ServicerContext.abort_with_status" title="Permalink to this definition">¶</a></dt>
+<dd><p>Raises an exception to terminate the RPC with a non-OK status.</p>
+<p>The status passed as argument will supercede any existing status code,
+status message and trailing metadata.</p>
+<p>This is an EXPERIMENTAL API.</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"><strong>status</strong> – A grpc.Status object. The status code in it must not be
+StatusCode.OK.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">Exception</span></code> – An exception is always raised to signal the abortion the
+RPC to the gRPC runtime.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
 <dl class="method">
 <dl class="method">
 <dt id="grpc.ServicerContext.auth_context">
 <dt id="grpc.ServicerContext.auth_context">
 <code class="descname">auth_context</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc.html#ServicerContext.auth_context"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc.ServicerContext.auth_context" title="Permalink to this definition">¶</a></dt>
 <code class="descname">auth_context</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc.html#ServicerContext.auth_context"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc.ServicerContext.auth_context" title="Permalink to this definition">¶</a></dt>

+ 171 - 0
python/grpc_channelz.html

@@ -0,0 +1,171 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>gRPC Channelz &#8212; gRPC Python 1.19.0.dev0 documentation</title>
+    <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <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>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="gRPC Health Checking" href="grpc_health_checking.html" />
+    <link rel="prev" title="gRPC" href="grpc.html" />
+   
+  <link rel="stylesheet" href="_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head><body>
+  <div class="document">
+    
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+<h1 class="logo"><a href="index.html">gRPC Python</a></h1>
+
+
+
+<p class="blurb">1.19.0.dev0</p>
+
+
+
+
+
+
+<h3>Navigation</h3>
+<p class="caption"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
+<li class="toctree-l1 current"><a class="current reference internal" href="#">gRPC Channelz</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#what-is-grpc-channelz">What is gRPC Channelz?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-grpc_channelz.v1.channelz">Module Contents</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
+<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
+</ul>
+
+<div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="index.html">Documentation overview</a><ul>
+      <li>Previous: <a href="grpc.html" title="previous chapter">gRPC</a></li>
+      <li>Next: <a href="grpc_health_checking.html" title="next chapter">gRPC Health Checking</a></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+
+
+
+
+
+
+
+
+        </div>
+      </div>
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          
+
+          <div class="body" role="main">
+            
+  <div class="section" id="grpc-channelz">
+<h1>gRPC Channelz<a class="headerlink" href="#grpc-channelz" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="what-is-grpc-channelz">
+<h2>What is gRPC Channelz?<a class="headerlink" href="#what-is-grpc-channelz" title="Permalink to this headline">¶</a></h2>
+<p>Design Document <a class="reference external" href="https://github.com/grpc/proposal/blob/master/A14-channelz.md">gRPC Channelz</a></p>
+</div>
+<div class="section" id="module-grpc_channelz.v1.channelz">
+<span id="module-contents"></span><h2>Module Contents<a class="headerlink" href="#module-grpc_channelz.v1.channelz" title="Permalink to this headline">¶</a></h2>
+<p>Channelz debug service implementation in gRPC Python.</p>
+<dl class="class">
+<dt id="grpc_channelz.v1.channelz.ChannelzServicer">
+<em class="property">class </em><code class="descclassname">grpc_channelz.v1.channelz.</code><code class="descname">ChannelzServicer</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc_channelz/v1/channelz.html#ChannelzServicer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc_channelz.v1.channelz.ChannelzServicer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Servicer handling RPCs for service statuses.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="grpc_channelz.v1.channelz.add_channelz_servicer">
+<code class="descclassname">grpc_channelz.v1.channelz.</code><code class="descname">add_channelz_servicer</code><span class="sig-paren">(</span><em>server</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc_channelz/v1/channelz.html#add_channelz_servicer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc_channelz.v1.channelz.add_channelz_servicer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add Channelz servicer to a server. Channelz servicer is in charge of
+pulling information from C-Core for entire process. It will allow the
+server to response to Channelz queries.</p>
+<p>The Channelz statistic is enabled by default inside C-Core. Whether the
+statistic is enabled or not is isolated from adding Channelz servicer.
+That means you can query Channelz info with a Channelz-disabled channel,
+and you can add Channelz servicer to a Channelz-disabled server.</p>
+<p>The Channelz statistic can be enabled or disabled by channel option
+‘grpc.enable_channelz’. Set to 1 to enable, set to 0 to disable.</p>
+<p>This is an EXPERIMENTAL API.</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"><strong>server</strong> – grpc.Server to which Channelz service will be added.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+          
+        </div>
+      </div>
+    <div class="clearer"></div>
+  </div>
+    <div class="footer">
+      &copy;2018, The gRPC Authors.
+      
+      |
+      <a href="_sources/grpc_channelz.rst.txt"
+          rel="nofollow">Page source</a>
+    </div>
+
+    
+
+    
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-60127042-1']);
+      _gaq.push(['_setDomainName', 'none']);
+      _gaq.push(['_setAllowLinker', true]);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+    
+  </body>
+</html>

+ 9 - 8
python/grpc_health_checking.html

@@ -6,17 +6,18 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>gRPC Health Checking &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>gRPC Health Checking &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="_static/language_data.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="next" title="gRPC Reflection" href="grpc_reflection.html" />
     <link rel="next" title="gRPC Reflection" href="grpc_reflection.html" />
-    <link rel="prev" title="gRPC" href="grpc.html" />
+    <link rel="prev" title="gRPC Channelz" href="grpc_channelz.html" />
    
    
   <link rel="stylesheet" href="_static/custom.css" type="text/css" />
   <link rel="stylesheet" href="_static/custom.css" type="text/css" />
   
   
@@ -32,7 +33,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -43,6 +44,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">gRPC Health Checking</a><ul>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">gRPC Health Checking</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="#module-contents">Module Contents</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#module-contents">Module Contents</a></li>
 </ul>
 </ul>
@@ -56,7 +58,7 @@
 <h3>Related Topics</h3>
 <h3>Related Topics</h3>
 <ul>
 <ul>
   <li><a href="index.html">Documentation overview</a><ul>
   <li><a href="index.html">Documentation overview</a><ul>
-      <li>Previous: <a href="grpc.html" title="previous chapter">gRPC</a></li>
+      <li>Previous: <a href="grpc_channelz.html" title="previous chapter">gRPC Channelz</a></li>
       <li>Next: <a href="grpc_reflection.html" title="next chapter">gRPC Reflection</a></li>
       <li>Next: <a href="grpc_reflection.html" title="next chapter">gRPC Reflection</a></li>
   </ul></li>
   </ul></li>
 </ul>
 </ul>
@@ -106,10 +108,9 @@
 <col class="field-body" />
 <col class="field-body" />
 <tbody valign="top">
 <tbody valign="top">
 <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
 <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>service</strong> – string, the name of the service.
-NOTE, ‘’ must be set.</li>
-<li><strong>status</strong> – HealthCheckResponse.status enum value indicating
-the status of the service</li>
+<li><strong>service</strong> – string, the name of the service. NOTE, ‘’ must be set.</li>
+<li><strong>status</strong> – HealthCheckResponse.status enum value indicating the status of
+the service</li>
 </ul>
 </ul>
 </td>
 </td>
 </tr>
 </tr>

+ 4 - 2
python/grpc_reflection.html

@@ -6,13 +6,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>gRPC Reflection &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>gRPC Reflection &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="_static/language_data.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="next" title="gRPC Testing" href="grpc_testing.html" />
     <link rel="next" title="gRPC Testing" href="grpc_testing.html" />
@@ -32,7 +33,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -43,6 +44,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">gRPC Reflection</a><ul>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">gRPC Reflection</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="#what-is-grpc-reflection">What is gRPC reflection?</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#what-is-grpc-reflection">What is gRPC reflection?</a></li>

+ 4 - 2
python/grpc_testing.html

@@ -6,13 +6,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>gRPC Testing &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>gRPC Testing &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="_static/language_data.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="next" title="Glossary" href="glossary.html" />
     <link rel="next" title="Glossary" href="glossary.html" />
@@ -32,7 +33,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -43,6 +44,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul class="current">
 <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">gRPC Testing</a><ul>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">gRPC Testing</a><ul>

+ 11 - 3
python/index.html

@@ -6,13 +6,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Welcome to gRPC Python’s documentation! &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>Welcome to gRPC Python’s documentation! &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="_static/language_data.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="next" title="gRPC" href="grpc.html" />
     <link rel="next" title="gRPC" href="grpc.html" />
@@ -31,7 +32,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -42,6 +43,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
@@ -86,7 +88,7 @@
             
             
   <div class="section" id="welcome-to-grpc-python-s-documentation">
   <div class="section" id="welcome-to-grpc-python-s-documentation">
 <h1>Welcome to gRPC Python’s documentation!<a class="headerlink" href="#welcome-to-grpc-python-s-documentation" title="Permalink to this headline">¶</a></h1>
 <h1>Welcome to gRPC Python’s documentation!<a class="headerlink" href="#welcome-to-grpc-python-s-documentation" title="Permalink to this headline">¶</a></h1>
-<p>Version: 1.17.1 Release: 1.17.1</p>
+<p>Version: 1.19.0 Release: 1.19.0.dev0</p>
 </div>
 </div>
 <div class="section" id="api-reference">
 <div class="section" id="api-reference">
 <h1>API Reference<a class="headerlink" href="#api-reference" title="Permalink to this headline">¶</a></h1>
 <h1>API Reference<a class="headerlink" href="#api-reference" title="Permalink to this headline">¶</a></h1>
@@ -97,6 +99,7 @@
 <li class="toctree-l2"><a class="reference internal" href="grpc.html#tutorial">Tutorial</a></li>
 <li class="toctree-l2"><a class="reference internal" href="grpc.html#tutorial">Tutorial</a></li>
 <li class="toctree-l2"><a class="reference internal" href="grpc.html#example">Example</a></li>
 <li class="toctree-l2"><a class="reference internal" href="grpc.html#example">Example</a></li>
 <li class="toctree-l2"><a class="reference internal" href="grpc.html#module-contents">Module Contents</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="grpc.html#module-contents">Module Contents</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="grpc.html#version">Version</a></li>
 <li class="toctree-l3"><a class="reference internal" href="grpc.html#create-client">Create Client</a></li>
 <li class="toctree-l3"><a class="reference internal" href="grpc.html#create-client">Create Client</a></li>
 <li class="toctree-l3"><a class="reference internal" href="grpc.html#create-client-credentials">Create Client Credentials</a></li>
 <li class="toctree-l3"><a class="reference internal" href="grpc.html#create-client-credentials">Create Client Credentials</a></li>
 <li class="toctree-l3"><a class="reference internal" href="grpc.html#create-server">Create Server</a></li>
 <li class="toctree-l3"><a class="reference internal" href="grpc.html#create-server">Create Server</a></li>
@@ -121,6 +124,11 @@
 </li>
 </li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_channelz.html">gRPC Channelz</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="grpc_channelz.html#what-is-grpc-channelz">What is gRPC Channelz?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="grpc_channelz.html#module-grpc_channelz.v1.channelz">Module Contents</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a><ul>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="grpc_health_checking.html#module-contents">Module Contents</a></li>
 <li class="toctree-l2"><a class="reference internal" href="grpc_health_checking.html#module-contents">Module Contents</a></li>
 </ul>
 </ul>

BIN
python/objects.inv


+ 16 - 7
python/py-modindex.html

@@ -6,13 +6,14 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Python Module Index &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>Python Module Index &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.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/jquery.js"></script>
     <script type="text/javascript" src="_static/underscore.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/doctools.js"></script>
+    <script type="text/javascript" src="_static/language_data.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="search" title="Search" href="search.html" />
 
 
@@ -23,10 +24,6 @@
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
 
 
 
 
-    <script type="text/javascript">
-      DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true;
-    </script>
-
 
 
   </head><body>
   </head><body>
   <div class="document">
   <div class="document">
@@ -37,7 +34,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -48,6 +45,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
@@ -109,9 +107,20 @@
        <td><img src="_static/minus.png" class="toggler"
        <td><img src="_static/minus.png" class="toggler"
               id="toggle-1" style="display: none" alt="-" /></td>
               id="toggle-1" style="display: none" alt="-" /></td>
        <td>
        <td>
-       <code class="xref">grpc_reflection</code></td><td>
+       <code class="xref">grpc_channelz</code></td><td>
        <em></em></td></tr>
        <em></em></td></tr>
      <tr class="cg-1">
      <tr class="cg-1">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="grpc_channelz.html#module-grpc_channelz.v1.channelz"><code class="xref">grpc_channelz.v1.channelz</code></a></td><td>
+       <em></em></td></tr>
+     <tr>
+       <td><img src="_static/minus.png" class="toggler"
+              id="toggle-2" style="display: none" alt="-" /></td>
+       <td>
+       <code class="xref">grpc_reflection</code></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
        <td></td>
        <td></td>
        <td>&#160;&#160;&#160;
        <td>&#160;&#160;&#160;
        <a href="grpc_reflection.html#module-grpc_reflection.v1alpha.reflection"><code class="xref">grpc_reflection.v1alpha.reflection</code></a></td><td>
        <a href="grpc_reflection.html#module-grpc_reflection.v1alpha.reflection"><code class="xref">grpc_reflection.v1alpha.reflection</code></a></td><td>

+ 4 - 2
python/search.html

@@ -6,7 +6,7 @@
   <head>
   <head>
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Search &#8212; gRPC Python 1.17.1 documentation</title>
+    <title>Search &#8212; gRPC Python 1.19.0.dev0 documentation</title>
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     
@@ -14,6 +14,7 @@
     <script type="text/javascript" src="_static/jquery.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/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.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/searchtools.js"></script>
     <script type="text/javascript" src="_static/searchtools.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="#" />
     <link rel="search" title="Search" href="#" />
@@ -39,7 +40,7 @@
 
 
 
 
 
 
-<p class="blurb">1.17.1</p>
+<p class="blurb">1.19.0.dev0</p>
 
 
 
 
 
 
@@ -50,6 +51,7 @@
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_channelz.html">gRPC Channelz</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_health_checking.html">gRPC Health Checking</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_reflection.html">gRPC Reflection</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a></li>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
python/searchindex.js


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно