Browse Source

Merge pull request #18775 from lidizheng/v1.20.0-doc

Auto-update Python documentation for v1.20.0
Lidi Zheng 6 years ago
parent
commit
9e7b00c043

+ 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: d7c2d3a0eccec29101a2e70a003ec931
+config: f36f3b2a05b267a2ac62e8d15f44ea32
 tags: 645f666f9bcd5a90fca523b33c5a78b7
 tags: 645f666f9bcd5a90fca523b33c5a78b7

BIN
python/.doctrees/environment.pickle


BIN
python/.doctrees/grpc.doctree


BIN
python/.doctrees/grpc_health_checking.doctree


BIN
python/.doctrees/grpc_status.doctree


BIN
python/.doctrees/grpc_testing.doctree


BIN
python/.doctrees/index.doctree


+ 15 - 5
python/_modules/grpc.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>grpc &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>grpc &#8212; gRPC Python 1.20.0 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>
@@ -31,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -45,6 +45,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
 </ul>
 </ul>
@@ -103,6 +104,7 @@
 <span class="sd">&quot;&quot;&quot;gRPC&#39;s Python API.&quot;&quot;&quot;</span>
 <span class="sd">&quot;&quot;&quot;gRPC&#39;s Python API.&quot;&quot;&quot;</span>
 
 
 <span class="kn">import</span> <span class="nn">abc</span>
 <span class="kn">import</span> <span class="nn">abc</span>
+<span class="kn">import</span> <span class="nn">contextlib</span>
 <span class="kn">import</span> <span class="nn">enum</span>
 <span class="kn">import</span> <span class="nn">enum</span>
 <span class="kn">import</span> <span class="nn">logging</span>
 <span class="kn">import</span> <span class="nn">logging</span>
 <span class="kn">import</span> <span class="nn">sys</span>
 <span class="kn">import</span> <span class="nn">sys</span>
@@ -370,7 +372,7 @@
 
 
 <span class="sd">    Attributes:</span>
 <span class="sd">    Attributes:</span>
 <span class="sd">      code: A StatusCode object to be sent to the client.</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">      details: A UTF-8-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">      trailing_metadata: The trailing :term:`metadata` in 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="sd">    &quot;&quot;&quot;</span>
@@ -1219,7 +1221,7 @@
 <span class="sd">        Args:</span>
 <span class="sd">        Args:</span>
 <span class="sd">          code: A StatusCode object to be sent to the client.</span>
 <span class="sd">          code: A StatusCode object to be sent to the client.</span>
 <span class="sd">            It must not be StatusCode.OK.</span>
 <span class="sd">            It must not be StatusCode.OK.</span>
-<span class="sd">          details: An ASCII-encodable string to be sent to the client upon</span>
+<span class="sd">          details: A UTF-8-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">        Raises:</span>
@@ -1267,7 +1269,7 @@
 <span class="sd">        no details to transmit.</span>
 <span class="sd">        no details to transmit.</span>
 
 
 <span class="sd">        Args:</span>
 <span class="sd">        Args:</span>
-<span class="sd">          details: An ASCII-encodable string to be sent to the client upon</span>
+<span class="sd">          details: A UTF-8-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">        &quot;&quot;&quot;</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
         <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span></div></div>
@@ -1868,6 +1870,14 @@
                                  <span class="n">maximum_concurrent_rpcs</span><span class="p">)</span></div>
                                  <span class="n">maximum_concurrent_rpcs</span><span class="p">)</span></div>
 
 
 
 
+<span class="nd">@contextlib</span><span class="o">.</span><span class="n">contextmanager</span>
+<span class="k">def</span> <span class="nf">_create_servicer_context</span><span class="p">(</span><span class="n">rpc_event</span><span class="p">,</span> <span class="n">state</span><span class="p">,</span> <span class="n">request_deserializer</span><span class="p">):</span>
+    <span class="kn">from</span> <span class="nn">grpc</span> <span class="k">import</span> <span class="n">_server</span>  <span class="c1"># pylint: disable=cyclic-import</span>
+    <span class="n">context</span> <span class="o">=</span> <span class="n">_server</span><span class="o">.</span><span class="n">_Context</span><span class="p">(</span><span class="n">rpc_event</span><span class="p">,</span> <span class="n">state</span><span class="p">,</span> <span class="n">request_deserializer</span><span class="p">)</span>
+    <span class="k">yield</span> <span class="n">context</span>
+    <span class="n">context</span><span class="o">.</span><span class="n">_finalize_state</span><span class="p">()</span>  <span class="c1"># pylint: disable=protected-access</span>
+
+
 <span class="c1">###################################  __all__  #################################</span>
 <span class="c1">###################################  __all__  #################################</span>
 
 
 <span class="n">__all__</span> <span class="o">=</span> <span class="p">(</span>
 <span class="n">__all__</span> <span class="o">=</span> <span class="p">(</span>

+ 3 - 2
python/_modules/grpc_channelz/v1/channelz.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>grpc_channelz.v1.channelz &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>grpc_channelz.v1.channelz &#8212; gRPC Python 1.20.0 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>
@@ -31,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -45,6 +45,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
 </ul>
 </ul>

+ 73 - 21
python/_modules/grpc_health/v1/health.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>grpc_health.v1.health &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>grpc_health.v1.health &#8212; gRPC Python 1.20.0 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>
@@ -31,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -45,6 +45,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
 </ul>
 </ul>
@@ -102,6 +103,7 @@
 <span class="c1"># limitations under the License.</span>
 <span class="c1"># limitations under the License.</span>
 <span class="sd">&quot;&quot;&quot;Reference implementation for health checking in gRPC Python.&quot;&quot;&quot;</span>
 <span class="sd">&quot;&quot;&quot;Reference implementation for health checking in gRPC Python.&quot;&quot;&quot;</span>
 
 
+<span class="kn">import</span> <span class="nn">collections</span>
 <span class="kn">import</span> <span class="nn">threading</span>
 <span class="kn">import</span> <span class="nn">threading</span>
 
 
 <span class="kn">import</span> <span class="nn">grpc</span>
 <span class="kn">import</span> <span class="nn">grpc</span>
@@ -116,7 +118,7 @@
 
 
     <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">_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">_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">_responses</span> <span class="o">=</span> <span class="n">collections</span><span class="o">.</span><span class="n">deque</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="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">def</span> <span class="nf">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@@ -127,7 +129,7 @@
             <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="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="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">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">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_responses</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
             <span class="k">else</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">raise</span> <span class="ne">StopIteration</span><span class="p">()</span>
 
 
@@ -148,20 +150,37 @@
             <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="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">_watcher_to_send_response_callback_adapter</span><span class="p">(</span><span class="n">watcher</span><span class="p">):</span>
+
+    <span class="k">def</span> <span class="nf">send_response_callback</span><span class="p">(</span><span class="n">response</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">response</span> <span class="ow">is</span> <span class="kc">None</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">else</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">response</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">send_response_callback</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="n">experimental_non_blocking</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                 <span class="n">experimental_thread_pool</span><span class="o">=</span><span class="kc">None</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">_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="bp">self</span><span class="o">.</span><span class="n">_send_response_callbacks</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">Watch</span><span class="o">.</span><span class="vm">__func__</span><span class="o">.</span><span class="n">experimental_non_blocking</span> <span class="o">=</span> <span class="n">experimental_non_blocking</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">Watch</span><span class="o">.</span><span class="vm">__func__</span><span class="o">.</span><span class="n">experimental_thread_pool</span> <span class="o">=</span> <span class="n">experimental_thread_pool</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_gracefully_shutting_down</span> <span class="o">=</span> <span class="kc">False</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">_on_close_callback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">send_response_callback</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">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="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="bp">self</span><span class="o">.</span><span class="n">_send_response_callbacks</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">send_response_callback</span><span class="p">)</span>
+            <span class="n">send_response_callback</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
 
 
         <span class="k">return</span> <span class="n">callback</span>
         <span class="k">return</span> <span class="n">callback</span>
 
 
@@ -174,19 +193,29 @@
             <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="c1"># pylint: disable=arguments-differ</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">send_response_callback</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+        <span class="n">blocking_watcher</span> <span class="o">=</span> <span class="kc">None</span>
+        <span class="k">if</span> <span class="n">send_response_callback</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="c1"># The server does not support the experimental_non_blocking</span>
+            <span class="c1"># parameter. For backwards compatibility, return a blocking response</span>
+            <span class="c1"># generator.</span>
+            <span class="n">blocking_watcher</span> <span class="o">=</span> <span class="n">_Watcher</span><span class="p">()</span>
+            <span class="n">send_response_callback</span> <span class="o">=</span> <span class="n">_watcher_to_send_response_callback_adapter</span><span class="p">(</span>
+                <span class="n">blocking_watcher</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="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="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="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="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">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>
+            <span class="n">send_response_callback</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">_send_response_callbacks</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_send_response_callbacks</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">_send_response_callbacks</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">send_response_callback</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">send_response_callback</span><span class="p">,</span> <span class="n">service</span><span class="p">))</span>
+        <span class="k">return</span> <span class="n">blocking_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>
@@ -197,10 +226,33 @@
 <span class="sd">            the service</span>
 <span class="sd">            the service</span>
 <span class="sd">        &quot;&quot;&quot;</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="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>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_gracefully_shutting_down</span><span class="p">:</span>
+                <span class="k">return</span>
+            <span class="k">else</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">_send_response_callbacks</span><span class="p">:</span>
+                    <span class="k">for</span> <span class="n">send_response_callback</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_send_response_callbacks</span><span class="p">[</span>
+                            <span class="n">service</span><span class="p">]:</span>
+                        <span class="n">send_response_callback</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 class="viewcode-block" id="HealthServicer.enter_graceful_shutdown"><a class="viewcode-back" href="../../../grpc_health_checking.html#grpc_health.v1.health.HealthServicer.enter_graceful_shutdown">[docs]</a>    <span class="k">def</span> <span class="nf">enter_graceful_shutdown</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Permanently sets the status of all services to NOT_SERVING.</span>
+
+<span class="sd">        This should be invoked when the server is entering a graceful shutdown</span>
+<span class="sd">        period. After this method is invoked, future attempts to set the status</span>
+<span class="sd">        of a service will be ignored.</span>
+
+<span class="sd">        This is an EXPERIMENTAL API.</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="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_gracefully_shutting_down</span><span class="p">:</span>
+                <span class="k">return</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">for</span> <span class="n">service</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_server_status</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">service</span><span class="p">,</span>
+                             <span class="n">_health_pb2</span><span class="o">.</span><span class="n">HealthCheckResponse</span><span class="o">.</span><span class="n">NOT_SERVING</span><span class="p">)</span>  <span class="c1"># pylint: disable=no-member</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_gracefully_shutting_down</span> <span class="o">=</span> <span class="kc">True</span></div></div>
 </pre></div>
 </pre></div>
 
 
           </div>
           </div>

+ 3 - 2
python/_modules/grpc_reflection/v1alpha/reflection.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>grpc_reflection.v1alpha.reflection &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>grpc_reflection.v1alpha.reflection &#8212; gRPC Python 1.20.0 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>
@@ -31,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -45,6 +45,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
 </ul>
 </ul>

+ 211 - 0
python/_modules/grpc_status/rpc_status.html

@@ -0,0 +1,211 @@
+
+<!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_status.rpc_status &#8212; gRPC Python 1.20.0 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.20.0</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_status.html">gRPC Status</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_status.rpc_status</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;Reference implementation for status mapping in gRPC Python.&quot;&quot;&quot;</span>
+
+<span class="kn">import</span> <span class="nn">collections</span>
+
+<span class="kn">import</span> <span class="nn">grpc</span>
+
+<span class="kn">from</span> <span class="nn">google.rpc</span> <span class="k">import</span> <span class="n">status_pb2</span>
+
+<span class="n">_CODE_TO_GRPC_CODE_MAPPING</span> <span class="o">=</span> <span class="p">{</span><span class="n">x</span><span class="o">.</span><span class="n">value</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span> <span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">grpc</span><span class="o">.</span><span class="n">StatusCode</span><span class="p">}</span>
+
+<span class="n">_GRPC_DETAILS_METADATA_KEY</span> <span class="o">=</span> <span class="s1">&#39;grpc-status-details-bin&#39;</span>
+
+
+<span class="k">class</span> <span class="nc">_Status</span><span class="p">(</span>
+        <span class="n">collections</span><span class="o">.</span><span class="n">namedtuple</span><span class="p">(</span>
+            <span class="s1">&#39;_Status&#39;</span><span class="p">,</span> <span class="p">(</span><span class="s1">&#39;code&#39;</span><span class="p">,</span> <span class="s1">&#39;details&#39;</span><span class="p">,</span> <span class="s1">&#39;trailing_metadata&#39;</span><span class="p">)),</span> <span class="n">grpc</span><span class="o">.</span><span class="n">Status</span><span class="p">):</span>
+    <span class="k">pass</span>
+
+
+<span class="k">def</span> <span class="nf">_code_to_grpc_status_code</span><span class="p">(</span><span class="n">code</span><span class="p">):</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">_CODE_TO_GRPC_CODE_MAPPING</span><span class="p">[</span><span class="n">code</span><span class="p">]</span>
+    <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;Invalid status code </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">code</span><span class="p">)</span>
+
+
+<div class="viewcode-block" id="from_call"><a class="viewcode-back" href="../../grpc_status.html#grpc_status.rpc_status.from_call">[docs]</a><span class="k">def</span> <span class="nf">from_call</span><span class="p">(</span><span class="n">call</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Returns a google.rpc.status.Status message corresponding to a given grpc.Call.</span>
+
+<span class="sd">    This is an EXPERIMENTAL API.</span>
+
+<span class="sd">    Args:</span>
+<span class="sd">      call: A grpc.Call instance.</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">      A google.rpc.status.Status message representing the status of the RPC.</span>
+
+<span class="sd">    Raises:</span>
+<span class="sd">      ValueError: If the gRPC call&#39;s code or details are inconsistent with the</span>
+<span class="sd">        status code and message inside of the google.rpc.status.Status.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">call</span><span class="o">.</span><span class="n">trailing_metadata</span><span class="p">():</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="o">==</span> <span class="n">_GRPC_DETAILS_METADATA_KEY</span><span class="p">:</span>
+            <span class="n">rich_status</span> <span class="o">=</span> <span class="n">status_pb2</span><span class="o">.</span><span class="n">Status</span><span class="o">.</span><span class="n">FromString</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">call</span><span class="o">.</span><span class="n">code</span><span class="p">()</span><span class="o">.</span><span class="n">value</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="n">rich_status</span><span class="o">.</span><span class="n">code</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
+                    <span class="s1">&#39;Code in Status proto (</span><span class="si">%s</span><span class="s1">) doesn</span><span class="se">\&#39;</span><span class="s1">t match status code (</span><span class="si">%s</span><span class="s1">)&#39;</span>
+                    <span class="o">%</span> <span class="p">(</span><span class="n">_code_to_grpc_status_code</span><span class="p">(</span><span class="n">rich_status</span><span class="o">.</span><span class="n">code</span><span class="p">),</span>
+                       <span class="n">call</span><span class="o">.</span><span class="n">code</span><span class="p">()))</span>
+            <span class="k">if</span> <span class="n">call</span><span class="o">.</span><span class="n">details</span><span class="p">()</span> <span class="o">!=</span> <span class="n">rich_status</span><span class="o">.</span><span class="n">message</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
+                    <span class="s1">&#39;Message in Status proto (</span><span class="si">%s</span><span class="s1">) doesn</span><span class="se">\&#39;</span><span class="s1">t match status details (</span><span class="si">%s</span><span class="s1">)&#39;</span>
+                    <span class="o">%</span> <span class="p">(</span><span class="n">rich_status</span><span class="o">.</span><span class="n">message</span><span class="p">,</span> <span class="n">call</span><span class="o">.</span><span class="n">details</span><span class="p">()))</span>
+            <span class="k">return</span> <span class="n">rich_status</span>
+    <span class="k">return</span> <span class="kc">None</span></div>
+
+
+<div class="viewcode-block" id="to_status"><a class="viewcode-back" href="../../grpc_status.html#grpc_status.rpc_status.to_status">[docs]</a><span class="k">def</span> <span class="nf">to_status</span><span class="p">(</span><span class="n">status</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Convert a google.rpc.status.Status message to grpc.Status.</span>
+
+<span class="sd">    This is an EXPERIMENTAL API.</span>
+
+<span class="sd">    Args:</span>
+<span class="sd">      status: a google.rpc.status.Status message representing the non-OK status</span>
+<span class="sd">        to terminate the RPC with and communicate it to the client.</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">      A grpc.Status instance representing the input google.rpc.status.Status message.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="n">_Status</span><span class="p">(</span>
+        <span class="n">code</span><span class="o">=</span><span class="n">_code_to_grpc_status_code</span><span class="p">(</span><span class="n">status</span><span class="o">.</span><span class="n">code</span><span class="p">),</span>
+        <span class="n">details</span><span class="o">=</span><span class="n">status</span><span class="o">.</span><span class="n">message</span><span class="p">,</span>
+        <span class="n">trailing_metadata</span><span class="o">=</span><span class="p">((</span><span class="n">_GRPC_DETAILS_METADATA_KEY</span><span class="p">,</span>
+                            <span class="n">status</span><span class="o">.</span><span class="n">SerializeToString</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>

+ 3 - 2
python/_modules/grpc_testing.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>grpc_testing &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>grpc_testing &#8212; gRPC Python 1.20.0 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>
@@ -31,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -45,6 +45,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
 </ul>
 </ul>

+ 4 - 2
python/_modules/index.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>Overview: module code &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>Overview: module code &#8212; gRPC Python 1.20.0 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>
@@ -31,7 +31,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -45,6 +45,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
 </ul>
 </ul>
@@ -89,6 +90,7 @@
 <li><a href="grpc_channelz/v1/channelz.html">grpc_channelz.v1.channelz</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_status/rpc_status.html">grpc_status.rpc_status</a></li>
 <li><a href="grpc_testing.html">grpc_testing</a></li>
 <li><a href="grpc_testing.html">grpc_testing</a></li>
 </ul>
 </ul>
 
 

+ 7 - 0
python/_sources/grpc_status.rst.txt

@@ -0,0 +1,7 @@
+gRPC Status
+====================
+
+Module Contents
+---------------
+
+.. automodule:: grpc_status.rpc_status

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

@@ -13,6 +13,7 @@ API Reference
    grpc_channelz
    grpc_channelz
    grpc_health_checking
    grpc_health_checking
    grpc_reflection
    grpc_reflection
+   grpc_status
    grpc_testing
    grpc_testing
    glossary
    glossary
 
 

+ 1 - 1
python/_static/documentation_options.js

@@ -1,6 +1,6 @@
 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.19.0',
+    VERSION: '1.20.0',
     LANGUAGE: 'en',
     LANGUAGE: 'en',
     COLLAPSE_INDEX: false,
     COLLAPSE_INDEX: false,
     FILE_SUFFIX: '.html',
     FILE_SUFFIX: '.html',

+ 15 - 6
python/genindex.html

@@ -7,7 +7,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>Index &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>Index &#8212; gRPC Python 1.20.0 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>
@@ -32,7 +32,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -46,6 +46,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 </ul>
 </ul>
@@ -266,6 +267,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_health_checking.html#grpc_health.v1.health.HealthServicer.enter_graceful_shutdown">enter_graceful_shutdown() (grpc_health.v1.health.HealthServicer method)</a>
+</li>
       <li><a href="grpc.html#grpc.Future.exception">exception() (grpc.Future method)</a>
       <li><a href="grpc.html#grpc.Future.exception">exception() (grpc.Future method)</a>
 </li>
 </li>
   </ul></td>
   </ul></td>
@@ -275,17 +278,19 @@
 <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.StatusCode.FAILED_PRECONDITION">FAILED_PRECONDITION (grpc.StatusCode attribute)</a>
       <li><a href="grpc.html#grpc.StatusCode.FAILED_PRECONDITION">FAILED_PRECONDITION (grpc.StatusCode attribute)</a>
+</li>
+      <li><a href="grpc_status.html#grpc_status.rpc_status.from_call">from_call() (in module grpc_status.rpc_status)</a>
 </li>
 </li>
       <li><a href="grpc.html#grpc.Future">Future (class in grpc)</a>
       <li><a href="grpc.html#grpc.Future">Future (class in grpc)</a>
 </li>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="grpc.html#grpc.StreamUnaryMultiCallable.future">future() (grpc.StreamUnaryMultiCallable method)</a>
       <li><a href="grpc.html#grpc.StreamUnaryMultiCallable.future">future() (grpc.StreamUnaryMultiCallable method)</a>
 
 
       <ul>
       <ul>
         <li><a href="grpc.html#grpc.UnaryUnaryMultiCallable.future">(grpc.UnaryUnaryMultiCallable method)</a>
         <li><a href="grpc.html#grpc.UnaryUnaryMultiCallable.future">(grpc.UnaryUnaryMultiCallable method)</a>
 </li>
 </li>
       </ul></li>
       </ul></li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="grpc.html#grpc.FutureCancelledError">FutureCancelledError</a>
       <li><a href="grpc.html#grpc.FutureCancelledError">FutureCancelledError</a>
 </li>
 </li>
       <li><a href="grpc.html#grpc.FutureTimeoutError">FutureTimeoutError</a>
       <li><a href="grpc.html#grpc.FutureTimeoutError">FutureTimeoutError</a>
@@ -300,11 +305,13 @@
 </li>
 </li>
       <li><a href="grpc.html#module-grpc">grpc (module)</a>
       <li><a href="grpc.html#module-grpc">grpc (module)</a>
 </li>
 </li>
-  </ul></td>
-  <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><a href="grpc_channelz.html#module-grpc_channelz.v1.channelz">grpc_channelz.v1.channelz (module)</a>
 </li>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <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><a href="grpc_status.html#module-grpc_status.rpc_status">grpc_status.rpc_status (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>
 </li>
 </li>
@@ -647,6 +654,8 @@
       <li><a href="grpc.html#grpc.RpcContext.time_remaining">time_remaining() (grpc.RpcContext method)</a>
       <li><a href="grpc.html#grpc.RpcContext.time_remaining">time_remaining() (grpc.RpcContext method)</a>
 </li>
 </li>
       <li><a href="grpc.html#grpc.ClientCallDetails.timeout">timeout (grpc.ClientCallDetails attribute)</a>
       <li><a href="grpc.html#grpc.ClientCallDetails.timeout">timeout (grpc.ClientCallDetails attribute)</a>
+</li>
+      <li><a href="grpc_status.html#grpc_status.rpc_status.to_status">to_status() (in module grpc_status.rpc_status)</a>
 </li>
 </li>
       <li><a href="grpc.html#grpc.Future.traceback">traceback() (grpc.Future method)</a>
       <li><a href="grpc.html#grpc.Future.traceback">traceback() (grpc.Future method)</a>
 </li>
 </li>

+ 3 - 2
python/glossary.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>Glossary &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>Glossary &#8212; gRPC Python 1.20.0 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>
@@ -32,7 +32,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -46,6 +46,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Glossary</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Glossary</a></li>
 </ul>
 </ul>

+ 5 - 4
python/grpc.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>gRPC &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>gRPC &#8212; gRPC Python 1.20.0 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>
@@ -33,7 +33,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -75,6 +75,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 </ul>
 </ul>
@@ -1526,7 +1527,7 @@ ones.</p>
 <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
 <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
 <li><strong>code</strong> – A StatusCode object to be sent to the client.
 <li><strong>code</strong> – A StatusCode object to be sent to the client.
 It must not be StatusCode.OK.</li>
 It must not be StatusCode.OK.</li>
-<li><strong>details</strong> – An ASCII-encodable string to be sent to the client upon
+<li><strong>details</strong> – A UTF-8-encodable string to be sent to the client upon
 termination of the RPC.</li>
 termination of the RPC.</li>
 </ul>
 </ul>
 </td>
 </td>
@@ -1679,7 +1680,7 @@ no details to transmit.</p>
 <col class="field-name" />
 <col class="field-name" />
 <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"><strong>details</strong> – An ASCII-encodable string to be sent to the client upon
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>details</strong> – A UTF-8-encodable string to be sent to the client upon
 termination of the RPC.</td>
 termination of the RPC.</td>
 </tr>
 </tr>
 </tbody>
 </tbody>

+ 3 - 2
python/grpc_channelz.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>gRPC Channelz &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>gRPC Channelz &#8212; gRPC Python 1.20.0 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>
@@ -33,7 +33,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -51,6 +51,7 @@
 </li>
 </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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 </ul>
 </ul>

+ 14 - 3
python/grpc_health_checking.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>gRPC Health Checking &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>gRPC Health Checking &#8212; gRPC Python 1.20.0 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>
@@ -33,7 +33,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -50,6 +50,7 @@
 </ul>
 </ul>
 </li>
 </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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 </ul>
 </ul>
@@ -97,8 +98,18 @@
 <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>
 <dl class="class">
 <dl class="class">
 <dt id="grpc_health.v1.health.HealthServicer">
 <dt id="grpc_health.v1.health.HealthServicer">
-<em class="property">class </em><code class="descclassname">grpc_health.v1.health.</code><code class="descname">HealthServicer</code><a class="reference internal" href="_modules/grpc_health/v1/health.html#HealthServicer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc_health.v1.health.HealthServicer" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="descclassname">grpc_health.v1.health.</code><code class="descname">HealthServicer</code><span class="sig-paren">(</span><em>experimental_non_blocking=True</em>, <em>experimental_thread_pool=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc_health/v1/health.html#HealthServicer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc_health.v1.health.HealthServicer" title="Permalink to this definition">¶</a></dt>
 <dd><p>Servicer handling RPCs for service statuses.</p>
 <dd><p>Servicer handling RPCs for service statuses.</p>
+<dl class="method">
+<dt id="grpc_health.v1.health.HealthServicer.enter_graceful_shutdown">
+<code class="descname">enter_graceful_shutdown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc_health/v1/health.html#HealthServicer.enter_graceful_shutdown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc_health.v1.health.HealthServicer.enter_graceful_shutdown" title="Permalink to this definition">¶</a></dt>
+<dd><p>Permanently sets the status of all services to NOT_SERVING.</p>
+<p>This should be invoked when the server is entering a graceful shutdown
+period. After this method is invoked, future attempts to set the status
+of a service will be ignored.</p>
+<p>This is an EXPERIMENTAL API.</p>
+</dd></dl>
+
 <dl class="method">
 <dl class="method">
 <dt id="grpc_health.v1.health.HealthServicer.set">
 <dt id="grpc_health.v1.health.HealthServicer.set">
 <code class="descname">set</code><span class="sig-paren">(</span><em>service</em>, <em>status</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc_health/v1/health.html#HealthServicer.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc_health.v1.health.HealthServicer.set" title="Permalink to this definition">¶</a></dt>
 <code class="descname">set</code><span class="sig-paren">(</span><em>service</em>, <em>status</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc_health/v1/health.html#HealthServicer.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc_health.v1.health.HealthServicer.set" title="Permalink to this definition">¶</a></dt>

+ 5 - 4
python/grpc_reflection.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>gRPC Reflection &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>gRPC Reflection &#8212; gRPC Python 1.20.0 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>
@@ -16,7 +16,7 @@
     <script type="text/javascript" src="_static/language_data.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 Status" href="grpc_status.html" />
     <link rel="prev" title="gRPC Health Checking" href="grpc_health_checking.html" />
     <link rel="prev" title="gRPC Health Checking" href="grpc_health_checking.html" />
    
    
   <link rel="stylesheet" href="_static/custom.css" type="text/css" />
   <link rel="stylesheet" href="_static/custom.css" type="text/css" />
@@ -33,7 +33,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -52,6 +52,7 @@
 <li class="toctree-l2"><a class="reference internal" href="#module-grpc_reflection.v1alpha.reflection">Module Contents</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#module-grpc_reflection.v1alpha.reflection">Module Contents</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 </ul>
 </ul>
@@ -61,7 +62,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="grpc_health_checking.html" title="previous chapter">gRPC Health Checking</a></li>
       <li>Previous: <a href="grpc_health_checking.html" title="previous chapter">gRPC Health Checking</a></li>
-      <li>Next: <a href="grpc_testing.html" title="next chapter">gRPC Testing</a></li>
+      <li>Next: <a href="grpc_status.html" title="next chapter">gRPC Status</a></li>
   </ul></li>
   </ul></li>
 </ul>
 </ul>
 </div>
 </div>

+ 176 - 0
python/grpc_status.html

@@ -0,0 +1,176 @@
+
+<!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 Status &#8212; gRPC Python 1.20.0 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 Testing" href="grpc_testing.html" />
+    <link rel="prev" title="gRPC Reflection" href="grpc_reflection.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.20.0</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"><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 current"><a class="current reference internal" href="#">gRPC Status</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#module-grpc_status.rpc_status">Module Contents</a></li>
+</ul>
+</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_reflection.html" title="previous chapter">gRPC Reflection</a></li>
+      <li>Next: <a href="grpc_testing.html" title="next chapter">gRPC Testing</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-status">
+<h1>gRPC Status<a class="headerlink" href="#grpc-status" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="module-grpc_status.rpc_status">
+<span id="module-contents"></span><h2>Module Contents<a class="headerlink" href="#module-grpc_status.rpc_status" title="Permalink to this headline">¶</a></h2>
+<p>Reference implementation for status mapping in gRPC Python.</p>
+<dl class="function">
+<dt id="grpc_status.rpc_status.from_call">
+<code class="descclassname">grpc_status.rpc_status.</code><code class="descname">from_call</code><span class="sig-paren">(</span><em>call</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc_status/rpc_status.html#from_call"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc_status.rpc_status.from_call" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a google.rpc.status.Status message corresponding to a given grpc.Call.</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>call</strong> – A grpc.Call instance.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A google.rpc.status.Status message representing the status of the RPC.</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> – If the gRPC call’s code or details are inconsistent with the
+status code and message inside of the google.rpc.status.Status.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="grpc_status.rpc_status.to_status">
+<code class="descclassname">grpc_status.rpc_status.</code><code class="descname">to_status</code><span class="sig-paren">(</span><em>status</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc_status/rpc_status.html#to_status"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#grpc_status.rpc_status.to_status" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert a google.rpc.status.Status message to grpc.Status.</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 google.rpc.status.Status message representing the non-OK status
+to terminate the RPC with and communicate it to the client.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A grpc.Status instance representing the input google.rpc.status.Status message.</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_status.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>

+ 5 - 4
python/grpc_testing.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>gRPC Testing &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>gRPC Testing &#8212; gRPC Python 1.20.0 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>
@@ -17,7 +17,7 @@
     <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" />
-    <link rel="prev" title="gRPC Reflection" href="grpc_reflection.html" />
+    <link rel="prev" title="gRPC Status" href="grpc_status.html" />
    
    
   <link rel="stylesheet" href="_static/custom.css" type="text/css" />
   <link rel="stylesheet" href="_static/custom.css" type="text/css" />
   
   
@@ -33,7 +33,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -47,6 +47,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l2"><a class="reference internal" href="#module-grpc_testing">Module Contents</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#module-grpc_testing">Module Contents</a></li>
 </ul>
 </ul>
@@ -58,7 +59,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_reflection.html" title="previous chapter">gRPC Reflection</a></li>
+      <li>Previous: <a href="grpc_status.html" title="previous chapter">gRPC Status</a></li>
       <li>Next: <a href="glossary.html" title="next chapter">Glossary</a></li>
       <li>Next: <a href="glossary.html" title="next chapter">Glossary</a></li>
   </ul></li>
   </ul></li>
 </ul>
 </ul>

+ 8 - 3
python/index.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>Welcome to gRPC Python’s documentation! &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>Welcome to gRPC Python’s documentation! &#8212; gRPC Python 1.20.0 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>
@@ -32,7 +32,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -46,6 +46,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 </ul>
 </ul>
@@ -88,7 +89,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.19.0 Release: 1.19.0</p>
+<p>Version: 1.20.0 Release: 1.20.0</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>
@@ -139,6 +140,10 @@
 <li class="toctree-l2"><a class="reference internal" href="grpc_reflection.html#module-grpc_reflection.v1alpha.reflection">Module Contents</a></li>
 <li class="toctree-l2"><a class="reference internal" href="grpc_reflection.html#module-grpc_reflection.v1alpha.reflection">Module Contents</a></li>
 </ul>
 </ul>
 </li>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="grpc_status.html">gRPC Status</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="grpc_status.html#module-grpc_status.rpc_status">Module Contents</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a><ul>
 <li class="toctree-l1"><a class="reference internal" href="grpc_testing.html">gRPC Testing</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="grpc_testing.html#module-grpc_testing">Module Contents</a></li>
 <li class="toctree-l2"><a class="reference internal" href="grpc_testing.html#module-grpc_testing">Module Contents</a></li>
 </ul>
 </ul>

BIN
python/objects.inv


+ 14 - 2
python/py-modindex.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>Python Module Index &#8212; gRPC Python 1.19.0 documentation</title>
+    <title>Python Module Index &#8212; gRPC Python 1.20.0 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>
@@ -34,7 +34,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -48,6 +48,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 </ul>
 </ul>
@@ -125,6 +126,17 @@
        <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>
        <em></em></td></tr>
        <em></em></td></tr>
+     <tr>
+       <td><img src="_static/minus.png" class="toggler"
+              id="toggle-3" style="display: none" alt="-" /></td>
+       <td>
+       <code class="xref">grpc_status</code></td><td>
+       <em></em></td></tr>
+     <tr class="cg-3">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="grpc_status.html#module-grpc_status.rpc_status"><code class="xref">grpc_status.rpc_status</code></a></td><td>
+       <em></em></td></tr>
      <tr>
      <tr>
        <td></td>
        <td></td>
        <td>
        <td>

+ 3 - 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.19.0 documentation</title>
+    <title>Search &#8212; gRPC Python 1.20.0 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" />
     
     
@@ -40,7 +40,7 @@
 
 
 
 
 
 
-<p class="blurb">1.19.0</p>
+<p class="blurb">1.20.0</p>
 
 
 
 
 
 
@@ -54,6 +54,7 @@
 <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_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_status.html">gRPC Status</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>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 <li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
 </ul>
 </ul>

File diff suppressed because it is too large
+ 0 - 0
python/searchindex.js


Some files were not shown because too many files changed in this diff