blob: 1f5fa88a4aab7efb6b0216fca37e592c008bf79d [file] [log] [blame] [edit]
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>gRPC AsyncIO API &#8212; gRPC Python 1.76.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=f0f94f3a" />
<script src="_static/documentation_options.js?v=8c3e8212"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="gRPC Admin" href="grpc_admin.html" />
<link rel="prev" title="gRPC" href="grpc.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">gRPC Python</a></h1>
<p class="blurb">1.76.0</p>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="grpc.html">gRPC</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">gRPC AsyncIO API</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#overview">Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="#caveats">Caveats</a></li>
<li class="toctree-l2"><a class="reference internal" href="#blocking-code-in-asyncio">Blocking Code in AsyncIO</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#create-channel">Create Channel</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.insecure_channel"><code class="docutils literal notranslate"><span class="pre">insecure_channel()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.secure_channel"><code class="docutils literal notranslate"><span class="pre">secure_channel()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#channel-object">Channel Object</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.Channel"><code class="docutils literal notranslate"><span class="pre">Channel</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Channel.__aenter__"><code class="docutils literal notranslate"><span class="pre">Channel.__aenter__()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Channel.__aexit__"><code class="docutils literal notranslate"><span class="pre">Channel.__aexit__()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Channel.channel_ready"><code class="docutils literal notranslate"><span class="pre">Channel.channel_ready()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Channel.close"><code class="docutils literal notranslate"><span class="pre">Channel.close()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Channel.get_state"><code class="docutils literal notranslate"><span class="pre">Channel.get_state()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Channel.stream_stream"><code class="docutils literal notranslate"><span class="pre">Channel.stream_stream()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Channel.stream_unary"><code class="docutils literal notranslate"><span class="pre">Channel.stream_unary()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Channel.unary_stream"><code class="docutils literal notranslate"><span class="pre">Channel.unary_stream()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Channel.unary_unary"><code class="docutils literal notranslate"><span class="pre">Channel.unary_unary()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Channel.wait_for_state_change"><code class="docutils literal notranslate"><span class="pre">Channel.wait_for_state_change()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#create-server">Create Server</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.server"><code class="docutils literal notranslate"><span class="pre">server()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#server-object">Server Object</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.Server"><code class="docutils literal notranslate"><span class="pre">Server</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Server.add_generic_rpc_handlers"><code class="docutils literal notranslate"><span class="pre">Server.add_generic_rpc_handlers()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Server.add_insecure_port"><code class="docutils literal notranslate"><span class="pre">Server.add_insecure_port()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Server.add_registered_method_handlers"><code class="docutils literal notranslate"><span class="pre">Server.add_registered_method_handlers()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Server.add_secure_port"><code class="docutils literal notranslate"><span class="pre">Server.add_secure_port()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Server.start"><code class="docutils literal notranslate"><span class="pre">Server.start()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Server.stop"><code class="docutils literal notranslate"><span class="pre">Server.stop()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Server.wait_for_termination"><code class="docutils literal notranslate"><span class="pre">Server.wait_for_termination()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#grpc-exceptions">gRPC Exceptions</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.BaseError"><code class="docutils literal notranslate"><span class="pre">BaseError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.UsageError"><code class="docutils literal notranslate"><span class="pre">UsageError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.AbortError"><code class="docutils literal notranslate"><span class="pre">AbortError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.InternalError"><code class="docutils literal notranslate"><span class="pre">InternalError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.AioRpcError"><code class="docutils literal notranslate"><span class="pre">AioRpcError</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.AioRpcError.code"><code class="docutils literal notranslate"><span class="pre">AioRpcError.code()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.AioRpcError.debug_error_string"><code class="docutils literal notranslate"><span class="pre">AioRpcError.debug_error_string()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.AioRpcError.details"><code class="docutils literal notranslate"><span class="pre">AioRpcError.details()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.AioRpcError.initial_metadata"><code class="docutils literal notranslate"><span class="pre">AioRpcError.initial_metadata()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.AioRpcError.trailing_metadata"><code class="docutils literal notranslate"><span class="pre">AioRpcError.trailing_metadata()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#grpc-metadata">gRPC Metadata</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.Metadata"><code class="docutils literal notranslate"><span class="pre">Metadata</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Metadata.__delitem__"><code class="docutils literal notranslate"><span class="pre">Metadata.__delitem__()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Metadata.__getitem__"><code class="docutils literal notranslate"><span class="pre">Metadata.__getitem__()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Metadata.__len__"><code class="docutils literal notranslate"><span class="pre">Metadata.__len__()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Metadata.__setitem__"><code class="docutils literal notranslate"><span class="pre">Metadata.__setitem__()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Metadata.delete_all"><code class="docutils literal notranslate"><span class="pre">Metadata.delete_all()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Metadata.get_all"><code class="docutils literal notranslate"><span class="pre">Metadata.get_all()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#rpc-context">RPC Context</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.RpcContext"><code class="docutils literal notranslate"><span class="pre">RpcContext</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.RpcContext.add_done_callback"><code class="docutils literal notranslate"><span class="pre">RpcContext.add_done_callback()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.RpcContext.cancel"><code class="docutils literal notranslate"><span class="pre">RpcContext.cancel()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.RpcContext.cancelled"><code class="docutils literal notranslate"><span class="pre">RpcContext.cancelled()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.RpcContext.done"><code class="docutils literal notranslate"><span class="pre">RpcContext.done()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.RpcContext.time_remaining"><code class="docutils literal notranslate"><span class="pre">RpcContext.time_remaining()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#client-side-context">Client-Side Context</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.Call"><code class="docutils literal notranslate"><span class="pre">Call</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Call.code"><code class="docutils literal notranslate"><span class="pre">Call.code()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Call.details"><code class="docutils literal notranslate"><span class="pre">Call.details()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Call.initial_metadata"><code class="docutils literal notranslate"><span class="pre">Call.initial_metadata()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Call.trailing_metadata"><code class="docutils literal notranslate"><span class="pre">Call.trailing_metadata()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.Call.wait_for_connection"><code class="docutils literal notranslate"><span class="pre">Call.wait_for_connection()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.UnaryUnaryCall"><code class="docutils literal notranslate"><span class="pre">UnaryUnaryCall</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.UnaryUnaryCall.__await__"><code class="docutils literal notranslate"><span class="pre">UnaryUnaryCall.__await__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.UnaryStreamCall"><code class="docutils literal notranslate"><span class="pre">UnaryStreamCall</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.UnaryStreamCall.__aiter__"><code class="docutils literal notranslate"><span class="pre">UnaryStreamCall.__aiter__()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.UnaryStreamCall.read"><code class="docutils literal notranslate"><span class="pre">UnaryStreamCall.read()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.StreamUnaryCall"><code class="docutils literal notranslate"><span class="pre">StreamUnaryCall</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamUnaryCall.__await__"><code class="docutils literal notranslate"><span class="pre">StreamUnaryCall.__await__()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamUnaryCall.done_writing"><code class="docutils literal notranslate"><span class="pre">StreamUnaryCall.done_writing()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamUnaryCall.write"><code class="docutils literal notranslate"><span class="pre">StreamUnaryCall.write()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.StreamStreamCall"><code class="docutils literal notranslate"><span class="pre">StreamStreamCall</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamStreamCall.__aiter__"><code class="docutils literal notranslate"><span class="pre">StreamStreamCall.__aiter__()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamStreamCall.done_writing"><code class="docutils literal notranslate"><span class="pre">StreamStreamCall.done_writing()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamStreamCall.read"><code class="docutils literal notranslate"><span class="pre">StreamStreamCall.read()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamStreamCall.write"><code class="docutils literal notranslate"><span class="pre">StreamStreamCall.write()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#server-side-context">Server-Side Context</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.ServicerContext"><code class="docutils literal notranslate"><span class="pre">ServicerContext</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.abort"><code class="docutils literal notranslate"><span class="pre">ServicerContext.abort()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.add_done_callback"><code class="docutils literal notranslate"><span class="pre">ServicerContext.add_done_callback()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.auth_context"><code class="docutils literal notranslate"><span class="pre">ServicerContext.auth_context()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.cancelled"><code class="docutils literal notranslate"><span class="pre">ServicerContext.cancelled()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.code"><code class="docutils literal notranslate"><span class="pre">ServicerContext.code()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.details"><code class="docutils literal notranslate"><span class="pre">ServicerContext.details()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.disable_next_message_compression"><code class="docutils literal notranslate"><span class="pre">ServicerContext.disable_next_message_compression()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.done"><code class="docutils literal notranslate"><span class="pre">ServicerContext.done()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.invocation_metadata"><code class="docutils literal notranslate"><span class="pre">ServicerContext.invocation_metadata()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.peer"><code class="docutils literal notranslate"><span class="pre">ServicerContext.peer()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.peer_identities"><code class="docutils literal notranslate"><span class="pre">ServicerContext.peer_identities()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.peer_identity_key"><code class="docutils literal notranslate"><span class="pre">ServicerContext.peer_identity_key()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.read"><code class="docutils literal notranslate"><span class="pre">ServicerContext.read()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.send_initial_metadata"><code class="docutils literal notranslate"><span class="pre">ServicerContext.send_initial_metadata()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.set_code"><code class="docutils literal notranslate"><span class="pre">ServicerContext.set_code()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.set_compression"><code class="docutils literal notranslate"><span class="pre">ServicerContext.set_compression()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.set_details"><code class="docutils literal notranslate"><span class="pre">ServicerContext.set_details()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.set_trailing_metadata"><code class="docutils literal notranslate"><span class="pre">ServicerContext.set_trailing_metadata()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.time_remaining"><code class="docutils literal notranslate"><span class="pre">ServicerContext.time_remaining()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.trailing_metadata"><code class="docutils literal notranslate"><span class="pre">ServicerContext.trailing_metadata()</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServicerContext.write"><code class="docutils literal notranslate"><span class="pre">ServicerContext.write()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#client-side-interceptor">Client-Side Interceptor</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.ClientCallDetails"><code class="docutils literal notranslate"><span class="pre">ClientCallDetails</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.InterceptedUnaryUnaryCall"><code class="docutils literal notranslate"><span class="pre">InterceptedUnaryUnaryCall</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.InterceptedUnaryUnaryCall.time_remaining"><code class="docutils literal notranslate"><span class="pre">InterceptedUnaryUnaryCall.time_remaining()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.ClientInterceptor"><code class="docutils literal notranslate"><span class="pre">ClientInterceptor</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.UnaryUnaryClientInterceptor"><code class="docutils literal notranslate"><span class="pre">UnaryUnaryClientInterceptor</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.UnaryUnaryClientInterceptor.intercept_unary_unary"><code class="docutils literal notranslate"><span class="pre">UnaryUnaryClientInterceptor.intercept_unary_unary()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.UnaryStreamClientInterceptor"><code class="docutils literal notranslate"><span class="pre">UnaryStreamClientInterceptor</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.UnaryStreamClientInterceptor.intercept_unary_stream"><code class="docutils literal notranslate"><span class="pre">UnaryStreamClientInterceptor.intercept_unary_stream()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.StreamUnaryClientInterceptor"><code class="docutils literal notranslate"><span class="pre">StreamUnaryClientInterceptor</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamUnaryClientInterceptor.intercept_stream_unary"><code class="docutils literal notranslate"><span class="pre">StreamUnaryClientInterceptor.intercept_stream_unary()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.StreamStreamClientInterceptor"><code class="docutils literal notranslate"><span class="pre">StreamStreamClientInterceptor</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamStreamClientInterceptor.intercept_stream_stream"><code class="docutils literal notranslate"><span class="pre">StreamStreamClientInterceptor.intercept_stream_stream()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#server-side-interceptor">Server-Side Interceptor</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.ServerInterceptor"><code class="docutils literal notranslate"><span class="pre">ServerInterceptor</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.ServerInterceptor.intercept_service"><code class="docutils literal notranslate"><span class="pre">ServerInterceptor.intercept_service()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#multi-callable-interfaces">Multi-Callable Interfaces</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.UnaryUnaryMultiCallable"><code class="docutils literal notranslate"><span class="pre">UnaryUnaryMultiCallable</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.UnaryUnaryMultiCallable.__call__"><code class="docutils literal notranslate"><span class="pre">UnaryUnaryMultiCallable.__call__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.UnaryStreamMultiCallable"><code class="docutils literal notranslate"><span class="pre">UnaryStreamMultiCallable</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.UnaryStreamMultiCallable.__call__"><code class="docutils literal notranslate"><span class="pre">UnaryStreamMultiCallable.__call__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.StreamUnaryMultiCallable"><code class="docutils literal notranslate"><span class="pre">StreamUnaryMultiCallable</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamUnaryMultiCallable.__call__"><code class="docutils literal notranslate"><span class="pre">StreamUnaryMultiCallable.__call__()</span></code></a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#grpc.aio.StreamStreamMultiCallable"><code class="docutils literal notranslate"><span class="pre">StreamStreamMultiCallable</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="#grpc.aio.StreamStreamMultiCallable.__call__"><code class="docutils literal notranslate"><span class="pre">StreamStreamMultiCallable.__call__()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="grpc_admin.html">gRPC Admin</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_csds.html">gRPC CSDS</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="grpc_observability.html">gRPC Python Observability</a></li>
<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="grpc.html" title="previous chapter">gRPC</a></li>
<li>Next: <a href="grpc_admin.html" title="next chapter">gRPC Admin</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-grpc.aio">
<span id="grpc-asyncio-api"></span><h1>gRPC AsyncIO API<a class="headerlink" href="#module-grpc.aio" title="Link to this heading"></a></h1>
<section id="overview">
<h2>Overview<a class="headerlink" href="#overview" title="Link to this heading"></a></h2>
<p>gRPC AsyncIO API is the <strong>new version</strong> of gRPC Python whose architecture is
tailored to AsyncIO. Underlying, it utilizes the same C-extension, gRPC C-Core,
as existing stack, and it replaces all gRPC IO operations with methods provided
by the AsyncIO library.</p>
<p>This API is stable. Feel free to open issues on our GitHub repo
<a class="reference external" href="https://github.com/grpc/grpc">grpc/grpc</a> for bugs or suggestions.</p>
<p>The design doc can be found here as <a class="reference external" href="https://github.com/grpc/proposal/pull/155">gRFC</a>.</p>
</section>
<section id="caveats">
<h2>Caveats<a class="headerlink" href="#caveats" title="Link to this heading"></a></h2>
<p>gRPC Async API objects may only be used on the thread on which they were
created. AsyncIO doesn’t provide thread safety for most of its APIs.</p>
</section>
<section id="blocking-code-in-asyncio">
<h2>Blocking Code in AsyncIO<a class="headerlink" href="#blocking-code-in-asyncio" title="Link to this heading"></a></h2>
<p>Making blocking function calls in coroutines or in the thread running event
loop will block the event loop, potentially starving all RPCs in the process.
Refer to the Python language documentation on AsyncIO for more details (<a class="reference external" href="https://docs.python.org/3/library/asyncio-dev.html#running-blocking-code">running-blocking-code</a>).</p>
</section>
<section id="module-contents">
<h2>Module Contents<a class="headerlink" href="#module-contents" title="Link to this heading"></a></h2>
<section id="create-channel">
<h3>Create Channel<a class="headerlink" href="#create-channel" title="Link to this heading"></a></h3>
<p>Channels are the abstraction of clients, where most of networking logic
happens, for example, managing one or more underlying connections, name
resolution, load balancing, flow control, etc.. If you are using ProtoBuf,
Channel objects works best when further encapsulate into stub objects, then the
application can invoke remote functions as if they are local functions.</p>
<dl class="py function">
<dt class="sig sig-object py" id="grpc.aio.insecure_channel">
<span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">insecure_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">options</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interceptors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_channel.html#insecure_channel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.insecure_channel" title="Link to this definition"></a></dt>
<dd><p>Creates an insecure asynchronous Channel to a server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>target</strong> (<em>str</em>) – The server address</p></li>
<li><p><strong>options</strong> (<em>Sequence</em><em>[</em><em>Tuple</em><em>[</em><em>str</em><em>, </em><em>Any</em><em>]</em><em>] </em><em>| </em><em>None</em>) – An optional list of key-value pairs (<a class="reference internal" href="glossary.html#term-channel_arguments"><span class="xref std std-term">channel_arguments</span></a>
in gRPC Core runtime) to configure the channel.</p></li>
<li><p><strong>compression</strong> (<a class="reference internal" href="grpc.html#grpc.Compression" title="grpc.Compression"><em>Compression</em></a><em> | </em><em>None</em>) – An optional value indicating the compression method to be
used over the lifetime of the channel.</p></li>
<li><p><strong>interceptors</strong> (<em>Sequence</em><em>[</em><a class="reference internal" href="#grpc.aio.ClientInterceptor" title="grpc.aio._interceptor.ClientInterceptor"><em>ClientInterceptor</em></a><em>] </em><em>| </em><em>None</em>) – An optional sequence of interceptors that will be executed for
any call executed with this channel.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A Channel.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="grpc.aio.secure_channel">
<span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">secure_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">credentials</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">options</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interceptors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_channel.html#secure_channel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.secure_channel" title="Link to this definition"></a></dt>
<dd><p>Creates a secure asynchronous Channel to a server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>target</strong> (<em>str</em>) – The server address.</p></li>
<li><p><strong>credentials</strong> (<a class="reference internal" href="grpc.html#grpc.ChannelCredentials" title="grpc.ChannelCredentials"><em>ChannelCredentials</em></a>) – A ChannelCredentials instance.</p></li>
<li><p><strong>options</strong> (<em>Sequence</em><em>[</em><em>Tuple</em><em>[</em><em>str</em><em>, </em><em>Any</em><em>]</em><em>] </em><em>| </em><em>None</em>) – An optional list of key-value pairs (<a class="reference internal" href="glossary.html#term-channel_arguments"><span class="xref std std-term">channel_arguments</span></a>
in gRPC Core runtime) to configure the channel.</p></li>
<li><p><strong>compression</strong> (<a class="reference internal" href="grpc.html#grpc.Compression" title="grpc.Compression"><em>Compression</em></a><em> | </em><em>None</em>) – An optional value indicating the compression method to be
used over the lifetime of the channel.</p></li>
<li><p><strong>interceptors</strong> (<em>Sequence</em><em>[</em><a class="reference internal" href="#grpc.aio.ClientInterceptor" title="grpc.aio._interceptor.ClientInterceptor"><em>ClientInterceptor</em></a><em>] </em><em>| </em><em>None</em>) – An optional sequence of interceptors that will be executed for
any call executed with this channel.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>An aio.Channel.</p>
</dd>
</dl>
</dd></dl>
</section>
<section id="channel-object">
<h3>Channel Object<a class="headerlink" href="#channel-object" title="Link to this heading"></a></h3>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.Channel">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">Channel</span></span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel" title="Link to this definition"></a></dt>
<dd><p>Enables asynchronous RPC invocation as a client.</p>
<p>Channel objects implement the Asynchronous Context Manager (aka. async
with) type, although they are not supported to be entered and exited
multiple times.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Channel.__aenter__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__aenter__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel.__aenter__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel.__aenter__" title="Link to this definition"></a></dt>
<dd><p>Starts an asynchronous context manager.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>Channel the channel that was instantiated.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Channel.__aexit__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__aexit__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">exc_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exc_val</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exc_tb</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel.__aexit__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel.__aexit__" title="Link to this definition"></a></dt>
<dd><p>Finishes the asynchronous context manager by closing the channel.</p>
<p>Still active RPCs will be cancelled.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Channel.channel_ready">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">channel_ready</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel.channel_ready"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel.channel_ready" title="Link to this definition"></a></dt>
<dd><p>Creates a coroutine that blocks until the Channel is READY.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Channel.close">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">close</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">grace</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel.close"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel.close" title="Link to this definition"></a></dt>
<dd><p>Closes this Channel and releases all resources held by it.</p>
<p>This method immediately stops the channel from executing new RPCs in
all cases.</p>
<p>If a grace period is specified, this method waits until all active
RPCs are finished or until the grace period is reached. RPCs that haven’t
been terminated within the grace period are aborted.
If a grace period is not specified (by passing None for grace),
all existing RPCs are cancelled immediately.</p>
<p>This method is idempotent.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>grace</strong> (<em>float</em><em> | </em><em>None</em>)</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Channel.get_state">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_state</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">try_to_connect</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel.get_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel.get_state" title="Link to this definition"></a></dt>
<dd><p>Checks the connectivity state of a channel.</p>
<p>This is an EXPERIMENTAL API.</p>
<p>If the channel reaches a stable connectivity state, it is guaranteed
that the return value of this function will eventually converge to that
state.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>try_to_connect</strong> (<em>bool</em>) – a bool indicate whether the Channel should try to
connect to peer or not.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="grpc.html#grpc.ChannelConnectivity" title="grpc.ChannelConnectivity"><em>ChannelConnectivity</em></a></p>
</dd>
</dl>
<p>Returns: A ChannelConnectivity object.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Channel.stream_stream">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">stream_stream</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">method</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request_serializer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_deserializer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_registered_method</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel.stream_stream"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel.stream_stream" title="Link to this definition"></a></dt>
<dd><p>Creates a StreamStreamMultiCallable for a stream-stream method.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>method</strong> (<em>str</em>) – The name of the RPC method.</p></li>
<li><p><strong>request_serializer</strong> (<em>Callable</em><em>[</em><em>[</em><em>Any</em><em>]</em><em>, </em><em>bytes</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-serializer"><span class="xref std std-term">serializer</span></a> for serializing the request
message. Request goes unserialized in case None is passed.</p></li>
<li><p><strong>response_deserializer</strong> (<em>Callable</em><em>[</em><em>[</em><em>bytes</em><em>]</em><em>, </em><em>Any</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-deserializer"><span class="xref std std-term">deserializer</span></a> for deserializing the
response message. Response goes undeserialized in case None
is passed.</p></li>
<li><p><strong>_registered_method</strong> (<em>bool</em><em> | </em><em>None</em>) – Implementation Private. Optional: A bool representing
whether the method is registered.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A StreamStreamMultiCallable value for the named stream-stream method.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#grpc.aio.StreamStreamMultiCallable" title="grpc.aio._base_channel.StreamStreamMultiCallable"><em>StreamStreamMultiCallable</em></a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Channel.stream_unary">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">stream_unary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">method</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request_serializer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_deserializer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_registered_method</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel.stream_unary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel.stream_unary" title="Link to this definition"></a></dt>
<dd><p>Creates a StreamUnaryMultiCallable for a stream-unary method.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>method</strong> (<em>str</em>) – The name of the RPC method.</p></li>
<li><p><strong>request_serializer</strong> (<em>Callable</em><em>[</em><em>[</em><em>Any</em><em>]</em><em>, </em><em>bytes</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-serializer"><span class="xref std std-term">serializer</span></a> for serializing the request
message. Request goes unserialized in case None is passed.</p></li>
<li><p><strong>response_deserializer</strong> (<em>Callable</em><em>[</em><em>[</em><em>bytes</em><em>]</em><em>, </em><em>Any</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-deserializer"><span class="xref std std-term">deserializer</span></a> for deserializing the
response message. Response goes undeserialized in case None
is passed.</p></li>
<li><p><strong>_registered_method</strong> (<em>bool</em><em> | </em><em>None</em>) – Implementation Private. Optional: A bool representing
whether the method is registered.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A StreamUnaryMultiCallable value for the named stream-unary method.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#grpc.aio.StreamUnaryMultiCallable" title="grpc.aio._base_channel.StreamUnaryMultiCallable"><em>StreamUnaryMultiCallable</em></a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Channel.unary_stream">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">unary_stream</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">method</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request_serializer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_deserializer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_registered_method</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel.unary_stream"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel.unary_stream" title="Link to this definition"></a></dt>
<dd><p>Creates a UnaryStreamMultiCallable for a unary-stream method.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>method</strong> (<em>str</em>) – The name of the RPC method.</p></li>
<li><p><strong>request_serializer</strong> (<em>Callable</em><em>[</em><em>[</em><em>Any</em><em>]</em><em>, </em><em>bytes</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-serializer"><span class="xref std std-term">serializer</span></a> for serializing the request
message. Request goes unserialized in case None is passed.</p></li>
<li><p><strong>response_deserializer</strong> (<em>Callable</em><em>[</em><em>[</em><em>bytes</em><em>]</em><em>, </em><em>Any</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-deserializer"><span class="xref std std-term">deserializer</span></a> for deserializing the
response message. Response goes undeserialized in case None
is passed.</p></li>
<li><p><strong>_registered_method</strong> (<em>bool</em><em> | </em><em>None</em>) – Implementation Private. Optional: A bool representing
whether the method is registered.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A UnaryStreamMultiCallable value for the named unary-stream method.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#grpc.aio.UnaryStreamMultiCallable" title="grpc.aio._base_channel.UnaryStreamMultiCallable"><em>UnaryStreamMultiCallable</em></a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Channel.unary_unary">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">unary_unary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">method</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request_serializer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_deserializer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_registered_method</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel.unary_unary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel.unary_unary" title="Link to this definition"></a></dt>
<dd><p>Creates a UnaryUnaryMultiCallable for a unary-unary method.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>method</strong> (<em>str</em>) – The name of the RPC method.</p></li>
<li><p><strong>request_serializer</strong> (<em>Callable</em><em>[</em><em>[</em><em>Any</em><em>]</em><em>, </em><em>bytes</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-serializer"><span class="xref std std-term">serializer</span></a> for serializing the request
message. Request goes unserialized in case None is passed.</p></li>
<li><p><strong>response_deserializer</strong> (<em>Callable</em><em>[</em><em>[</em><em>bytes</em><em>]</em><em>, </em><em>Any</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-deserializer"><span class="xref std std-term">deserializer</span></a> for deserializing the
response message. Response goes undeserialized in case None
is passed.</p></li>
<li><p><strong>_registered_method</strong> (<em>bool</em><em> | </em><em>None</em>) – Implementation Private. Optional: A bool representing
whether the method is registered.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A UnaryUnaryMultiCallable value for the named unary-unary method.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#grpc.aio.UnaryUnaryMultiCallable" title="grpc.aio._base_channel.UnaryUnaryMultiCallable"><em>UnaryUnaryMultiCallable</em></a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Channel.wait_for_state_change">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">wait_for_state_change</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">last_observed_state</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#Channel.wait_for_state_change"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Channel.wait_for_state_change" title="Link to this definition"></a></dt>
<dd><p>Waits for a change in connectivity state.</p>
<p>This is an EXPERIMENTAL API.</p>
<p>The function blocks until there is a change in the channel connectivity
state from the “last_observed_state”. If the state is already
different, this function will return immediately.</p>
<p>There is an inherent race between the invocation of
“Channel.wait_for_state_change” and “Channel.get_state”. The state can
change arbitrary many times during the race, so there is no way to
observe every state transition.</p>
<p>If there is a need to put a timeout for this function, please refer to
“asyncio.wait_for”.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>last_observed_state</strong> (<a class="reference internal" href="grpc.html#grpc.ChannelConnectivity" title="grpc.ChannelConnectivity"><em>ChannelConnectivity</em></a>) – A grpc.ChannelConnectivity object representing
the last known state.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="create-server">
<h3>Create Server<a class="headerlink" href="#create-server" title="Link to this heading"></a></h3>
<dl class="py function">
<dt class="sig sig-object py" id="grpc.aio.server">
<span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">server</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">migration_thread_pool</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">handlers</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interceptors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">options</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">maximum_concurrent_rpcs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_server.html#server"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.server" title="Link to this definition"></a></dt>
<dd><p>Creates a Server with which RPCs can be serviced.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>migration_thread_pool</strong> (<em>Executor</em><em> | </em><em>None</em>) – A futures.ThreadPoolExecutor to be used by the
Server to execute non-AsyncIO RPC handlers for migration purpose.</p></li>
<li><p><strong>handlers</strong> (<em>Sequence</em><em>[</em><a class="reference internal" href="grpc.html#grpc.GenericRpcHandler" title="grpc.GenericRpcHandler"><em>GenericRpcHandler</em></a><em>] </em><em>| </em><em>None</em>) – An optional list of GenericRpcHandlers used for executing RPCs.
More handlers may be added by calling add_generic_rpc_handlers any time
before the server is started.</p></li>
<li><p><strong>interceptors</strong> (<em>Sequence</em><em>[</em><em>Any</em><em>] </em><em>| </em><em>None</em>) – An optional list of ServerInterceptor objects that observe
and optionally manipulate the incoming RPCs before handing them over to
handlers. The interceptors are given control in the order they are
specified. This is an EXPERIMENTAL API.</p></li>
<li><p><strong>options</strong> (<em>Sequence</em><em>[</em><em>Tuple</em><em>[</em><em>str</em><em>, </em><em>Any</em><em>]</em><em>] </em><em>| </em><em>None</em>) – An optional list of key-value pairs (<a class="reference internal" href="glossary.html#term-channel_arguments"><span class="xref std std-term">channel_arguments</span></a> in gRPC runtime)
to configure the channel.</p></li>
<li><p><strong>maximum_concurrent_rpcs</strong> (<em>int</em><em> | </em><em>None</em>) – The maximum number of concurrent RPCs this server
will service before returning RESOURCE_EXHAUSTED status, or None to
indicate no limit.</p></li>
<li><p><strong>compression</strong> (<a class="reference internal" href="grpc.html#grpc.Compression" title="grpc.Compression"><em>Compression</em></a><em> | </em><em>None</em>) – An element of grpc.compression, e.g.
grpc.compression.Gzip. This compression algorithm will be used for the
lifetime of the server unless overridden by set_compression.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A Server object.</p>
</dd>
</dl>
</dd></dl>
</section>
<section id="server-object">
<h3>Server Object<a class="headerlink" href="#server-object" title="Link to this heading"></a></h3>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.Server">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">Server</span></span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#Server"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Server" title="Link to this definition"></a></dt>
<dd><p>Serves RPCs.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Server.add_generic_rpc_handlers">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">add_generic_rpc_handlers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">generic_rpc_handlers</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#Server.add_generic_rpc_handlers"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Server.add_generic_rpc_handlers" title="Link to this definition"></a></dt>
<dd><p>Registers GenericRpcHandlers with this Server.</p>
<p>This method is only safe to call before the server is started.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>generic_rpc_handlers</strong> (<em>Sequence</em><em>[</em><a class="reference internal" href="grpc.html#grpc.GenericRpcHandler" title="grpc.GenericRpcHandler"><em>GenericRpcHandler</em></a><em>]</em>) – A sequence of GenericRpcHandlers that will be</p></li>
<li><p><strong>RPCs.</strong> (<em>used to service</em>)</p></li>
</ul>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Server.add_insecure_port">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">add_insecure_port</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">address</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#Server.add_insecure_port"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Server.add_insecure_port" title="Link to this definition"></a></dt>
<dd><p>Opens an insecure port for accepting RPCs.</p>
<p>A port is a communication endpoint that used by networking protocols,
like TCP and UDP. To date, we only support TCP.</p>
<p>This method may only be called before starting the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>address</strong> (<em>str</em>) – The address for which to open a port. If the port is 0,
or not specified in the address, then the gRPC runtime will choose a port.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>An integer port on which the server will accept RPC requests.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Server.add_registered_method_handlers">
<span class="sig-name descname"><span class="pre">add_registered_method_handlers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">service_name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">method_handlers</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#Server.add_registered_method_handlers"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Server.add_registered_method_handlers" title="Link to this definition"></a></dt>
<dd><p>Registers GenericRpcHandlers with this Server.</p>
<p>This method is only safe to call before the server is started.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>service_name</strong> – The service name.</p></li>
<li><p><strong>method_handlers</strong> – A dictionary that maps method names to corresponding
RpcMethodHandler.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Server.add_secure_port">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">add_secure_port</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">address</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">server_credentials</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#Server.add_secure_port"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Server.add_secure_port" title="Link to this definition"></a></dt>
<dd><p>Opens a secure port for accepting RPCs.</p>
<p>A port is a communication endpoint that used by networking protocols,
like TCP and UDP. To date, we only support TCP.</p>
<p>This method may only be called before starting the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>address</strong> (<em>str</em>) – The address for which to open a port.
if the port is 0, or not specified in the address, then the gRPC
runtime will choose a port.</p></li>
<li><p><strong>server_credentials</strong> (<a class="reference internal" href="grpc.html#grpc.ServerCredentials" title="grpc.ServerCredentials"><em>ServerCredentials</em></a>) – A ServerCredentials object.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>An integer port on which the server will accept RPC requests.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Server.start">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">start</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#Server.start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Server.start" title="Link to this definition"></a></dt>
<dd><p>Starts this Server.</p>
<p>This method may only be called once. (i.e. it is not idempotent).</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Server.stop">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">stop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">grace</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#Server.stop"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Server.stop" title="Link to this definition"></a></dt>
<dd><p>Stops this Server.</p>
<p>This method immediately stops the server from servicing new RPCs in
all cases.</p>
<p>If a grace period is specified, this method waits until all active
RPCs are finished or until the grace period is reached. RPCs that haven’t
been terminated within the grace period are aborted.
If a grace period is not specified (by passing None for grace), all
existing RPCs are aborted immediately and this method blocks until
the last RPC handler terminates.</p>
<p>This method is idempotent and may be called at any time. Passing a
smaller grace value in a subsequent call will have the effect of
stopping the Server sooner (passing None will have the effect of
stopping the server immediately). Passing a larger grace value in a
subsequent call will not have the effect of stopping the server later
(i.e. the most restrictive grace value is used).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>grace</strong> (<em>float</em><em> | </em><em>None</em>) – A duration of time in seconds or None.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Server.wait_for_termination">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">wait_for_termination</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#Server.wait_for_termination"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Server.wait_for_termination" title="Link to this definition"></a></dt>
<dd><p>Continues current coroutine once the server stops.</p>
<p>This is an EXPERIMENTAL API.</p>
<p>The wait will not consume computational resources during blocking, and
it will block until one of the two following conditions are met:</p>
<ol class="arabic simple">
<li><p>The server is stopped or terminated;</p></li>
<li><p>A timeout occurs if timeout is not <cite>None</cite>.</p></li>
</ol>
<p>The timeout argument works in the same way as <cite>threading.Event.wait()</cite>.
<a class="reference external" href="https://docs.python.org/3/library/threading.html#threading.Event.wait">https://docs.python.org/3/library/threading.html#threading.Event.wait</a></p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> (<em>float</em><em> | </em><em>None</em>) – A floating point number specifying a timeout for the
operation in seconds.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A bool indicates if the operation times out.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>bool</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="grpc-exceptions">
<h3>gRPC Exceptions<a class="headerlink" href="#grpc-exceptions" title="Link to this heading"></a></h3>
<dl class="py exception">
<dt class="sig sig-object py" id="grpc.aio.BaseError">
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">BaseError</span></span><a class="headerlink" href="#grpc.aio.BaseError" title="Link to this definition"></a></dt>
<dd><p>The base class for exceptions generated by gRPC AsyncIO stack.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="grpc.aio.UsageError">
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">UsageError</span></span><a class="headerlink" href="#grpc.aio.UsageError" title="Link to this definition"></a></dt>
<dd><p>Raised when the usage of API by applications is inappropriate.</p>
<p>For example, trying to invoke RPC on a closed channel, mixing two styles
of streaming API on the client side. This exception should not be
suppressed.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="grpc.aio.AbortError">
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">AbortError</span></span><a class="headerlink" href="#grpc.aio.AbortError" title="Link to this definition"></a></dt>
<dd><p>Raised when calling abort in servicer methods.</p>
<p>This exception should not be suppressed. Applications may catch it to
perform certain clean-up logic, and then re-raise it.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="grpc.aio.InternalError">
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">InternalError</span></span><a class="headerlink" href="#grpc.aio.InternalError" title="Link to this definition"></a></dt>
<dd><p>Raised upon unexpected errors in native code.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="grpc.aio.AioRpcError">
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">AioRpcError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">code</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">initial_metadata</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">trailing_metadata</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">details</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">debug_error_string</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_call.html#AioRpcError"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.AioRpcError" title="Link to this definition"></a></dt>
<dd><p>An implementation of RpcError to be used by the asynchronous API.</p>
<p>Raised RpcError is a snapshot of the final status of the RPC, values are
determined. Hence, its methods no longer needs to be coroutines.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>code</strong> (<a class="reference internal" href="grpc.html#grpc.StatusCode" title="grpc.StatusCode"><em>StatusCode</em></a>)</p></li>
<li><p><strong>initial_metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a>)</p></li>
<li><p><strong>trailing_metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a>)</p></li>
<li><p><strong>details</strong> (<em>str</em><em> | </em><em>None</em>)</p></li>
<li><p><strong>debug_error_string</strong> (<em>str</em><em> | </em><em>None</em>)</p></li>
</ul>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.AioRpcError.code">
<span class="sig-name descname"><span class="pre">code</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_call.html#AioRpcError.code"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.AioRpcError.code" title="Link to this definition"></a></dt>
<dd><p>Accesses the status code sent by the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The <cite>grpc.StatusCode</cite> status code.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="grpc.html#grpc.StatusCode" title="grpc.StatusCode"><em>StatusCode</em></a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.AioRpcError.debug_error_string">
<span class="sig-name descname"><span class="pre">debug_error_string</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_call.html#AioRpcError.debug_error_string"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.AioRpcError.debug_error_string" title="Link to this definition"></a></dt>
<dd><p>Accesses the debug error string sent by the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The debug error string received.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>str</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.AioRpcError.details">
<span class="sig-name descname"><span class="pre">details</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_call.html#AioRpcError.details"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.AioRpcError.details" title="Link to this definition"></a></dt>
<dd><p>Accesses the details sent by the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The description of the error.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>str | None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.AioRpcError.initial_metadata">
<span class="sig-name descname"><span class="pre">initial_metadata</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_call.html#AioRpcError.initial_metadata"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.AioRpcError.initial_metadata" title="Link to this definition"></a></dt>
<dd><p>Accesses the initial metadata sent by the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The initial metadata received.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.AioRpcError.trailing_metadata">
<span class="sig-name descname"><span class="pre">trailing_metadata</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_call.html#AioRpcError.trailing_metadata"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.AioRpcError.trailing_metadata" title="Link to this definition"></a></dt>
<dd><p>Accesses the trailing metadata sent by the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The trailing metadata received.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a></p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="grpc-metadata">
<h3>gRPC Metadata<a class="headerlink" href="#grpc-metadata" title="Link to this heading"></a></h3>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.Metadata">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">Metadata</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_metadata.html#Metadata"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Metadata" title="Link to this definition"></a></dt>
<dd><p>Metadata abstraction for the asynchronous calls and interceptors.</p>
<p>The metadata is a mapping from str -&gt; List[str]</p>
<dl class="simple">
<dt>Traits</dt><dd><ul class="simple">
<li><p>Multiple entries are allowed for the same key</p></li>
<li><p>The order of the values by key is preserved</p></li>
<li><p>Getting by an element by key, retrieves the first mapped value</p></li>
<li><p>Supports an immutable view of the data</p></li>
<li><p>Allows partial mutation on the data without recreating the new object from scratch.</p></li>
</ul>
</dd>
</dl>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>args</strong> (<em>Tuple</em><em>[</em><em>str</em><em>, </em><em>str</em><em> | </em><em>bytes</em><em>]</em>)</p>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Metadata.__delitem__">
<span class="sig-name descname"><span class="pre">__delitem__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_metadata.html#Metadata.__delitem__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Metadata.__delitem__" title="Link to this definition"></a></dt>
<dd><p><code class="docutils literal notranslate"><span class="pre">del</span> <span class="pre">metadata[&lt;key&gt;]</span></code> deletes the first mapping for &lt;key&gt;.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>)</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Metadata.__getitem__">
<span class="sig-name descname"><span class="pre">__getitem__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_metadata.html#Metadata.__getitem__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Metadata.__getitem__" title="Link to this definition"></a></dt>
<dd><p>When calling &lt;metadata&gt;[&lt;key&gt;], the first element of all those
mapped for &lt;key&gt; is returned.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>)</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>str | bytes</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Metadata.__len__">
<span class="sig-name descname"><span class="pre">__len__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_metadata.html#Metadata.__len__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Metadata.__len__" title="Link to this definition"></a></dt>
<dd><p>Return the total number of elements that there are in the metadata,
including multiple values for the same key.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Metadata.__setitem__">
<span class="sig-name descname"><span class="pre">__setitem__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_metadata.html#Metadata.__setitem__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Metadata.__setitem__" title="Link to this definition"></a></dt>
<dd><p>Calling metadata[&lt;key&gt;] = &lt;value&gt;
Maps &lt;value&gt; to the first instance of &lt;key&gt;.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em>)</p></li>
<li><p><strong>value</strong> (<em>str</em><em> | </em><em>bytes</em>)</p></li>
</ul>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Metadata.delete_all">
<span class="sig-name descname"><span class="pre">delete_all</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_metadata.html#Metadata.delete_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Metadata.delete_all" title="Link to this definition"></a></dt>
<dd><p>Delete all mappings for &lt;key&gt;.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>)</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Metadata.get_all">
<span class="sig-name descname"><span class="pre">get_all</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_metadata.html#Metadata.get_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Metadata.get_all" title="Link to this definition"></a></dt>
<dd><p>For compatibility with other Metadata abstraction objects (like in Java),
this would return all items under the desired &lt;key&gt;.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>)</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>List</em>[str | bytes]</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="rpc-context">
<h3>RPC Context<a class="headerlink" href="#rpc-context" title="Link to this heading"></a></h3>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.RpcContext">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">RpcContext</span></span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#RpcContext"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.RpcContext" title="Link to this definition"></a></dt>
<dd><p>Provides RPC-related information and action.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.RpcContext.add_done_callback">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">add_done_callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#RpcContext.add_done_callback"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.RpcContext.add_done_callback" title="Link to this definition"></a></dt>
<dd><p>Registers a callback to be called on RPC termination.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>callback</strong> (<em>Callable</em><em>[</em><em>[</em><em>Any</em><em>]</em><em>, </em><em>None</em><em>]</em>) – A callable object will be called with the call object as</p></li>
<li><p><strong>argument.</strong> (<em>its only</em>)</p></li>
</ul>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.RpcContext.cancel">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">cancel</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#RpcContext.cancel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.RpcContext.cancel" title="Link to this definition"></a></dt>
<dd><p>Cancels the RPC.</p>
<p>Idempotent and has no effect if the RPC has already terminated.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A bool indicates if the cancellation is performed or not.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.RpcContext.cancelled">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">cancelled</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#RpcContext.cancelled"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.RpcContext.cancelled" title="Link to this definition"></a></dt>
<dd><p>Return True if the RPC is cancelled.</p>
<p>The RPC is cancelled when the cancellation was requested with cancel().</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A bool indicates whether the RPC is cancelled or not.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.RpcContext.done">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">done</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#RpcContext.done"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.RpcContext.done" title="Link to this definition"></a></dt>
<dd><p>Return True if the RPC is done.</p>
<p>An RPC is done if the RPC is completed, cancelled or aborted.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A bool indicates if the RPC is done.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.RpcContext.time_remaining">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">time_remaining</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#RpcContext.time_remaining"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.RpcContext.time_remaining" title="Link to this definition"></a></dt>
<dd><p>Describes the length of allowed time remaining for the RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A nonnegative float indicating the length of allowed time in seconds
remaining for the RPC to complete before it is considered to have
timed out, or None if no deadline was specified for the RPC.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>float | None</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="client-side-context">
<h3>Client-Side Context<a class="headerlink" href="#client-side-context" title="Link to this heading"></a></h3>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.Call">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">Call</span></span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#Call"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Call" title="Link to this definition"></a></dt>
<dd><p>The abstract base class of an RPC on the client-side.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Call.code">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">code</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#Call.code"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Call.code" title="Link to this definition"></a></dt>
<dd><p>Accesses the status code sent by the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The StatusCode value for the RPC.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="grpc.html#grpc.StatusCode" title="grpc.StatusCode"><em>StatusCode</em></a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Call.details">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">details</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#Call.details"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Call.details" title="Link to this definition"></a></dt>
<dd><p>Accesses the details sent by the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The details string of the RPC.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>str</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Call.initial_metadata">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">initial_metadata</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#Call.initial_metadata"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Call.initial_metadata" title="Link to this definition"></a></dt>
<dd><p>Accesses the initial metadata sent by the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The initial <a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a>.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Call.trailing_metadata">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">trailing_metadata</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#Call.trailing_metadata"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Call.trailing_metadata" title="Link to this definition"></a></dt>
<dd><p>Accesses the trailing metadata sent by the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The trailing <a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a>.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.Call.wait_for_connection">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">wait_for_connection</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#Call.wait_for_connection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.Call.wait_for_connection" title="Link to this definition"></a></dt>
<dd><p>Waits until connected to peer and raises aio.AioRpcError if failed.</p>
<p>This is an EXPERIMENTAL method.</p>
<p>This method ensures the RPC has been successfully connected. Otherwise,
an AioRpcError will be raised to explain the reason of the connection
failure.</p>
<p>This method is recommended for building retry mechanisms.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>None</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.UnaryUnaryCall">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">UnaryUnaryCall</span></span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#UnaryUnaryCall"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryUnaryCall" title="Link to this definition"></a></dt>
<dd><p>The abstract base class of a unary-unary RPC on the client-side.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.UnaryUnaryCall.__await__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__await__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#UnaryUnaryCall.__await__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryUnaryCall.__await__" title="Link to this definition"></a></dt>
<dd><p>Await the response message to be ready.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The response message of the RPC.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>Generator</em>[<em>Any</em>, None, <em>ResponseType</em>]</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.UnaryStreamCall">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">UnaryStreamCall</span></span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#UnaryStreamCall"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryStreamCall" title="Link to this definition"></a></dt>
<dd><dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.UnaryStreamCall.__aiter__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__aiter__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#UnaryStreamCall.__aiter__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryStreamCall.__aiter__" title="Link to this definition"></a></dt>
<dd><p>Returns the async iterator representation that yields messages.</p>
<p>Under the hood, it is calling the “read” method.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>An async iterator object that yields messages.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>AsyncIterator</em>[<em>ResponseType</em>]</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.UnaryStreamCall.read">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">read</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#UnaryStreamCall.read"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryStreamCall.read" title="Link to this definition"></a></dt>
<dd><p>Reads one message from the stream.</p>
<p>Read operations must be serialized when called from multiple
coroutines.</p>
<p>Note that the iterator and read/write APIs may not be mixed on
a single RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A response message, or an <cite>grpc.aio.EOF</cite> to indicate the end of the
stream.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>_EOF</em> | <em>ResponseType</em></p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.StreamUnaryCall">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">StreamUnaryCall</span></span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#StreamUnaryCall"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamUnaryCall" title="Link to this definition"></a></dt>
<dd><dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamUnaryCall.__await__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__await__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#StreamUnaryCall.__await__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamUnaryCall.__await__" title="Link to this definition"></a></dt>
<dd><p>Await the response message to be ready.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The response message of the stream.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>Generator</em>[<em>Any</em>, None, <em>ResponseType</em>]</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamUnaryCall.done_writing">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">done_writing</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#StreamUnaryCall.done_writing"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamUnaryCall.done_writing" title="Link to this definition"></a></dt>
<dd><p>Notifies server that the client is done sending messages.</p>
<p>After done_writing is called, any additional invocation to the write
function will fail. This function is idempotent.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamUnaryCall.write">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">write</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#StreamUnaryCall.write"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamUnaryCall.write" title="Link to this definition"></a></dt>
<dd><p>Writes one message to the stream.</p>
<p>Note that the iterator and read/write APIs may not be mixed on
a single RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>An RpcError exception if the write failed.</strong></p>
</dd>
<dt class="field-even">Parameters<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>request</strong> (<em>RequestType</em>)</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>None</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.StreamStreamCall">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">StreamStreamCall</span></span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#StreamStreamCall"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamStreamCall" title="Link to this definition"></a></dt>
<dd><dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamStreamCall.__aiter__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__aiter__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#StreamStreamCall.__aiter__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamStreamCall.__aiter__" title="Link to this definition"></a></dt>
<dd><p>Returns the async iterator representation that yields messages.</p>
<p>Under the hood, it is calling the “read” method.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>An async iterator object that yields messages.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>AsyncIterator</em>[<em>ResponseType</em>]</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamStreamCall.done_writing">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">done_writing</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#StreamStreamCall.done_writing"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamStreamCall.done_writing" title="Link to this definition"></a></dt>
<dd><p>Notifies server that the client is done sending messages.</p>
<p>After done_writing is called, any additional invocation to the write
function will fail. This function is idempotent.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamStreamCall.read">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">read</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#StreamStreamCall.read"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamStreamCall.read" title="Link to this definition"></a></dt>
<dd><p>Reads one message from the stream.</p>
<p>Read operations must be serialized when called from multiple
coroutines.</p>
<p>Note that the iterator and read/write APIs may not be mixed on
a single RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A response message, or an <cite>grpc.aio.EOF</cite> to indicate the end of the
stream.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>_EOF</em> | <em>ResponseType</em></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamStreamCall.write">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">write</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_call.html#StreamStreamCall.write"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamStreamCall.write" title="Link to this definition"></a></dt>
<dd><p>Writes one message to the stream.</p>
<p>Note that the iterator and read/write APIs may not be mixed on
a single RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>An RpcError exception if the write failed.</strong></p>
</dd>
<dt class="field-even">Parameters<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>request</strong> (<em>RequestType</em>)</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>None</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="server-side-context">
<h3>Server-Side Context<a class="headerlink" href="#server-side-context" title="Link to this heading"></a></h3>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">ServicerContext</span></span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext" title="Link to this definition"></a></dt>
<dd><p>A context object passed to method implementations.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.abort">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">abort</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">code</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">details</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">trailing_metadata</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.abort"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.abort" title="Link to this definition"></a></dt>
<dd><p>Raises an exception to terminate the RPC with a non-OK status.</p>
<p>The code and details passed as arguments will supersede any existing
ones.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>code</strong> (<a class="reference internal" href="grpc.html#grpc.StatusCode" title="grpc.StatusCode"><em>StatusCode</em></a>) – A StatusCode object to be sent to the client.
It must not be StatusCode.OK.</p></li>
<li><p><strong>details</strong> (<em>str</em>) – A UTF-8-encodable string to be sent to the client upon
termination of the RPC.</p></li>
<li><p><strong>trailing_metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a><em> | </em><em>Sequence</em><em>[</em><em>Tuple</em><em>[</em><em>str</em><em>, </em><em>str</em><em> | </em><em>bytes</em><em>]</em><em>]</em>) – A sequence of tuple represents the trailing
<a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a>.</p></li>
</ul>
</dd>
<dt class="field-even">Raises<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>Exception</strong> – An exception is always raised to signal the abortion the
RPC to the gRPC runtime.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>NoReturn</em></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.add_done_callback">
<span class="sig-name descname"><span class="pre">add_done_callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.add_done_callback"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.add_done_callback" title="Link to this definition"></a></dt>
<dd><p>Registers a callback to be called on RPC termination.</p>
<p>This is an EXPERIMENTAL API.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>callback</strong> (<em>Callable</em><em>[</em><em>[</em><em>Any</em><em>]</em><em>, </em><em>None</em><em>]</em>) – A callable object will be called with the servicer context
object as its only argument.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.auth_context">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">auth_context</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.auth_context"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.auth_context" title="Link to this definition"></a></dt>
<dd><p>Gets the auth context for the call.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A map of strings to an iterable of bytes for each auth property.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>Mapping</em>[str, <em>Iterable</em>[bytes]]</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.cancelled">
<span class="sig-name descname"><span class="pre">cancelled</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.cancelled"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.cancelled" title="Link to this definition"></a></dt>
<dd><p>Return True if the RPC is cancelled.</p>
<p>The RPC is cancelled when the cancellation was requested with cancel().</p>
<p>This is an EXPERIMENTAL API.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A bool indicates whether the RPC is cancelled or not.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.code">
<span class="sig-name descname"><span class="pre">code</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.code"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.code" title="Link to this definition"></a></dt>
<dd><p>Accesses the value to be used as status code upon RPC completion.</p>
<p>This is an EXPERIMENTAL API.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The StatusCode value for the RPC.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.details">
<span class="sig-name descname"><span class="pre">details</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.details"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.details" title="Link to this definition"></a></dt>
<dd><p>Accesses the value to be used as detail string upon RPC completion.</p>
<p>This is an EXPERIMENTAL API.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The details string of the RPC.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.disable_next_message_compression">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">disable_next_message_compression</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.disable_next_message_compression"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.disable_next_message_compression" title="Link to this definition"></a></dt>
<dd><p>Disables compression for the next response message.</p>
<p>This method will override any compression configuration set during
server creation or set on the call.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.done">
<span class="sig-name descname"><span class="pre">done</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.done"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.done" title="Link to this definition"></a></dt>
<dd><p>Return True if the RPC is done.</p>
<p>An RPC is done if the RPC is completed, cancelled or aborted.</p>
<p>This is an EXPERIMENTAL API.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A bool indicates if the RPC is done.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.invocation_metadata">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">invocation_metadata</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.invocation_metadata"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.invocation_metadata" title="Link to this definition"></a></dt>
<dd><p>Accesses the metadata sent by the client.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The invocation <a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a>.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a> | <em>Sequence</em>[<em>Tuple</em>[str, str | bytes]] | None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.peer">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">peer</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.peer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.peer" title="Link to this definition"></a></dt>
<dd><p>Identifies the peer that invoked the RPC being serviced.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A string identifying the peer that invoked the RPC being serviced.
The string format is determined by gRPC runtime.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>str</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.peer_identities">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">peer_identities</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.peer_identities"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.peer_identities" title="Link to this definition"></a></dt>
<dd><p>Gets one or more peer identity(s).</p>
<p>Equivalent to
servicer_context.auth_context().get(servicer_context.peer_identity_key())</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>An iterable of the identities, or None if the call is not
authenticated. Each identity is returned as a raw bytes type.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>Iterable</em>[bytes] | None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.peer_identity_key">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">peer_identity_key</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.peer_identity_key"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.peer_identity_key" title="Link to this definition"></a></dt>
<dd><p>The auth property used to identify the peer.</p>
<p>For example, “x509_common_name” or “x509_subject_alternative_name” are
used to identify an SSL peer.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The auth property (string) that indicates the
peer identity, or None if the call is not authenticated.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>str | None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.read">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">read</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.read"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.read" title="Link to this definition"></a></dt>
<dd><p>Reads one message from the RPC.</p>
<p>Only one read operation is allowed simultaneously.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A response message of the RPC.</p>
</dd>
<dt class="field-even">Raises<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>An RpcError exception if the read failed.</strong></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>RequestType</em></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.send_initial_metadata">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">send_initial_metadata</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial_metadata</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.send_initial_metadata"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.send_initial_metadata" title="Link to this definition"></a></dt>
<dd><p>Sends the initial metadata value to the client.</p>
<p>This method need not be called by implementations if they have no
metadata to add to what the gRPC runtime will transmit.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>initial_metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a><em> | </em><em>Sequence</em><em>[</em><em>Tuple</em><em>[</em><em>str</em><em>, </em><em>str</em><em> | </em><em>bytes</em><em>]</em><em>]</em>) – The initial <a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a>.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.set_code">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">set_code</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">code</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.set_code"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.set_code" title="Link to this definition"></a></dt>
<dd><p>Sets the value to be used as status code upon RPC completion.</p>
<p>This method need not be called by method implementations if they wish
the gRPC runtime to determine the status code of the RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>code</strong> (<a class="reference internal" href="grpc.html#grpc.StatusCode" title="grpc.StatusCode"><em>StatusCode</em></a>) – A StatusCode object to be sent to the client.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.set_compression">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">set_compression</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">compression</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.set_compression"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.set_compression" title="Link to this definition"></a></dt>
<dd><p>Set the compression algorithm to be used for the entire call.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>compression</strong> (<a class="reference internal" href="grpc.html#grpc.Compression" title="grpc.Compression"><em>Compression</em></a>) – An element of grpc.compression, e.g.
grpc.compression.Gzip.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.set_details">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">set_details</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">details</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.set_details"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.set_details" title="Link to this definition"></a></dt>
<dd><p>Sets the value to be used the as detail string upon RPC completion.</p>
<p>This method need not be called by method implementations if they have
no details to transmit.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>details</strong> (<em>str</em>) – A UTF-8-encodable string to be sent to the client upon
termination of the RPC.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.set_trailing_metadata">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">set_trailing_metadata</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">trailing_metadata</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.set_trailing_metadata"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.set_trailing_metadata" title="Link to this definition"></a></dt>
<dd><p>Sends the trailing metadata for the RPC.</p>
<p>This method need not be called by implementations if they have no
metadata to add to what the gRPC runtime will transmit.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>trailing_metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a><em> | </em><em>Sequence</em><em>[</em><em>Tuple</em><em>[</em><em>str</em><em>, </em><em>str</em><em> | </em><em>bytes</em><em>]</em><em>]</em>) – The trailing <a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a>.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.time_remaining">
<span class="sig-name descname"><span class="pre">time_remaining</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.time_remaining"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.time_remaining" title="Link to this definition"></a></dt>
<dd><p>Describes the length of allowed time remaining for the RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A nonnegative float indicating the length of allowed time in seconds
remaining for the RPC to complete before it is considered to have
timed out, or None if no deadline was specified for the RPC.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>float</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.trailing_metadata">
<span class="sig-name descname"><span class="pre">trailing_metadata</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.trailing_metadata"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.trailing_metadata" title="Link to this definition"></a></dt>
<dd><p>Access value to be used as trailing metadata upon RPC completion.</p>
<p>This is an EXPERIMENTAL API.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The trailing <a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a> for the RPC.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServicerContext.write">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">write</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_server.html#ServicerContext.write"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServicerContext.write" title="Link to this definition"></a></dt>
<dd><p>Writes one message to the RPC.</p>
<p>Only one write operation is allowed simultaneously.</p>
<dl class="field-list simple">
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>An RpcError exception if the write failed.</strong></p>
</dd>
<dt class="field-even">Parameters<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>message</strong> (<em>ResponseType</em>)</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>None</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="client-side-interceptor">
<h3>Client-Side Interceptor<a class="headerlink" href="#client-side-interceptor" title="Link to this heading"></a></h3>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.ClientCallDetails">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">ClientCallDetails</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">method</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">credentials</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wait_for_ready</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#ClientCallDetails"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ClientCallDetails" title="Link to this definition"></a></dt>
<dd><p>Describes an RPC to be invoked.</p>
<p>This is an EXPERIMENTAL API.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>method</strong> (<em>bytes</em>) – The method name of the RPC.</p></li>
<li><p><strong>timeout</strong> (<em>float</em><em> | </em><em>None</em>) – An optional duration of time in seconds to allow for the RPC.</p></li>
<li><p><strong>metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a><em> | </em><em>None</em>) – Optional metadata to be transmitted to the service-side of
the RPC.</p></li>
<li><p><strong>credentials</strong> (<a class="reference internal" href="grpc.html#grpc.CallCredentials" title="grpc.CallCredentials"><em>CallCredentials</em></a><em> | </em><em>None</em>) – An optional CallCredentials for the RPC.</p></li>
<li><p><strong>wait_for_ready</strong> (<em>bool</em><em> | </em><em>None</em>) – An optional flag to enable <a class="reference internal" href="glossary.html#term-wait_for_ready"><span class="xref std std-term">wait_for_ready</span></a> mechanism.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.InterceptedUnaryUnaryCall">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">InterceptedUnaryUnaryCall</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interceptors</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">credentials</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wait_for_ready</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">method</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request_serializer</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_deserializer</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">loop</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#InterceptedUnaryUnaryCall"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.InterceptedUnaryUnaryCall" title="Link to this definition"></a></dt>
<dd><p>Used for running a <cite>UnaryUnaryCall</cite> wrapped by interceptors.</p>
<p>For the <cite>__await__</cite> method is it is proxied to the intercepted call only when
the interceptor task is finished.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>interceptors</strong> (<em>Sequence</em><em>[</em><a class="reference internal" href="#grpc.aio.UnaryUnaryClientInterceptor" title="grpc.aio.UnaryUnaryClientInterceptor"><em>UnaryUnaryClientInterceptor</em></a><em>]</em>)</p></li>
<li><p><strong>request</strong> (<em>RequestType</em>)</p></li>
<li><p><strong>timeout</strong> (<em>Optional</em><em>[</em><em>float</em><em>]</em>)</p></li>
<li><p><strong>metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio.Metadata"><em>Metadata</em></a>)</p></li>
<li><p><strong>credentials</strong> (<em>Optional</em><em>[</em><a class="reference internal" href="grpc.html#grpc.CallCredentials" title="grpc.CallCredentials"><em>grpc.CallCredentials</em></a><em>]</em>)</p></li>
<li><p><strong>wait_for_ready</strong> (<em>Optional</em><em>[</em><em>bool</em><em>]</em>)</p></li>
<li><p><strong>channel</strong> (<em>cygrpc.AioChannel</em>)</p></li>
<li><p><strong>method</strong> (<em>bytes</em>)</p></li>
<li><p><strong>request_serializer</strong> (<em>Optional</em><em>[</em><em>SerializingFunction</em><em>]</em>)</p></li>
<li><p><strong>response_deserializer</strong> (<em>Optional</em><em>[</em><em>DeserializingFunction</em><em>]</em>)</p></li>
<li><p><strong>loop</strong> (<em>asyncio.AbstractEventLoop</em>)</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.InterceptedUnaryUnaryCall.time_remaining">
<span class="sig-name descname"><span class="pre">time_remaining</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#InterceptedUnaryUnaryCall.time_remaining"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.InterceptedUnaryUnaryCall.time_remaining" title="Link to this definition"></a></dt>
<dd><p>Describes the length of allowed time remaining for the RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>A nonnegative float indicating the length of allowed time in seconds
remaining for the RPC to complete before it is considered to have
timed out, or None if no deadline was specified for the RPC.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>float | None</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.ClientInterceptor">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">ClientInterceptor</span></span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#ClientInterceptor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ClientInterceptor" title="Link to this definition"></a></dt>
<dd><p>Base class used for all Aio Client Interceptor classes</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.UnaryUnaryClientInterceptor">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">UnaryUnaryClientInterceptor</span></span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#UnaryUnaryClientInterceptor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryUnaryClientInterceptor" title="Link to this definition"></a></dt>
<dd><p>Affords intercepting unary-unary invocations.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.UnaryUnaryClientInterceptor.intercept_unary_unary">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">intercept_unary_unary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">continuation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">client_call_details</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#UnaryUnaryClientInterceptor.intercept_unary_unary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryUnaryClientInterceptor.intercept_unary_unary" title="Link to this definition"></a></dt>
<dd><p>Intercepts a unary-unary invocation asynchronously.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>continuation</strong> (<em>Callable</em><em>[</em><em>[</em><a class="reference internal" href="#grpc.aio.ClientCallDetails" title="grpc.aio._interceptor.ClientCallDetails"><em>ClientCallDetails</em></a><em>, </em><em>RequestType</em><em>]</em><em>, </em><em>UnaryUnaryCall</em><em>]</em>) – A coroutine that proceeds with the invocation by
executing the next interceptor in the chain or invoking the
actual RPC on the underlying Channel. It is the interceptor’s
responsibility to call it if it decides to move the RPC forward.
The interceptor can use
<cite>call = await continuation(client_call_details, request)</cite>
to continue with the RPC. <cite>continuation</cite> returns the call to the
RPC.</p></li>
<li><p><strong>client_call_details</strong> (<a class="reference internal" href="#grpc.aio.ClientCallDetails" title="grpc.aio._interceptor.ClientCallDetails"><em>ClientCallDetails</em></a>) – A ClientCallDetails object describing the
outgoing RPC.</p></li>
<li><p><strong>request</strong> (<em>RequestType</em>) – The request value for the RPC.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>An object with the RPC response.</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="#grpc.aio.AioRpcError" title="grpc.aio.AioRpcError"><strong>AioRpcError</strong></a> – Indicating that the RPC terminated with non-OK status.</p></li>
<li><p><strong>asyncio.CancelledError</strong> – Indicating that the RPC was canceled.</p></li>
</ul>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>UnaryUnaryCall</em> | <em>ResponseType</em></p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.UnaryStreamClientInterceptor">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">UnaryStreamClientInterceptor</span></span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#UnaryStreamClientInterceptor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryStreamClientInterceptor" title="Link to this definition"></a></dt>
<dd><p>Affords intercepting unary-stream invocations.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.UnaryStreamClientInterceptor.intercept_unary_stream">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">intercept_unary_stream</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">continuation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">client_call_details</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#UnaryStreamClientInterceptor.intercept_unary_stream"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryStreamClientInterceptor.intercept_unary_stream" title="Link to this definition"></a></dt>
<dd><p>Intercepts a unary-stream invocation asynchronously.</p>
<p>The function could return the call object or an asynchronous
iterator, in case of being an asyncrhonous iterator this will
become the source of the reads done by the caller.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>continuation</strong> (<em>Callable</em><em>[</em><em>[</em><a class="reference internal" href="#grpc.aio.ClientCallDetails" title="grpc.aio._interceptor.ClientCallDetails"><em>ClientCallDetails</em></a><em>, </em><em>RequestType</em><em>]</em><em>, </em><em>UnaryStreamCall</em><em>]</em>) – A coroutine that proceeds with the invocation by
executing the next interceptor in the chain or invoking the
actual RPC on the underlying Channel. It is the interceptor’s
responsibility to call it if it decides to move the RPC forward.
The interceptor can use
<cite>call = await continuation(client_call_details, request)</cite>
to continue with the RPC. <cite>continuation</cite> returns the call to the
RPC.</p></li>
<li><p><strong>client_call_details</strong> (<a class="reference internal" href="#grpc.aio.ClientCallDetails" title="grpc.aio._interceptor.ClientCallDetails"><em>ClientCallDetails</em></a>) – A ClientCallDetails object describing the
outgoing RPC.</p></li>
<li><p><strong>request</strong> (<em>RequestType</em>) – The request value for the RPC.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The RPC Call or an asynchronous iterator.</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="#grpc.aio.AioRpcError" title="grpc.aio.AioRpcError"><strong>AioRpcError</strong></a> – Indicating that the RPC terminated with non-OK status.</p></li>
<li><p><strong>asyncio.CancelledError</strong> – Indicating that the RPC was canceled.</p></li>
</ul>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>AsyncIterable</em>[<em>Any</em>] | <em>UnaryStreamCall</em></p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.StreamUnaryClientInterceptor">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">StreamUnaryClientInterceptor</span></span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#StreamUnaryClientInterceptor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamUnaryClientInterceptor" title="Link to this definition"></a></dt>
<dd><p>Affords intercepting stream-unary invocations.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamUnaryClientInterceptor.intercept_stream_unary">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">intercept_stream_unary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">continuation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">client_call_details</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request_iterator</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#StreamUnaryClientInterceptor.intercept_stream_unary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamUnaryClientInterceptor.intercept_stream_unary" title="Link to this definition"></a></dt>
<dd><p>Intercepts a stream-unary invocation asynchronously.</p>
<p>Within the interceptor the usage of the call methods like <cite>write</cite> or
even awaiting the call should be done carefully, since the caller
could be expecting an untouched call, for example for start writing
messages to it.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>continuation</strong> (<em>Callable</em><em>[</em><em>[</em><a class="reference internal" href="#grpc.aio.ClientCallDetails" title="grpc.aio._interceptor.ClientCallDetails"><em>ClientCallDetails</em></a><em>, </em><em>RequestType</em><em>]</em><em>, </em><em>StreamUnaryCall</em><em>]</em>) – A coroutine that proceeds with the invocation by
executing the next interceptor in the chain or invoking the
actual RPC on the underlying Channel. It is the interceptor’s
responsibility to call it if it decides to move the RPC forward.
The interceptor can use
<cite>call = await continuation(client_call_details, request_iterator)</cite>
to continue with the RPC. <cite>continuation</cite> returns the call to the
RPC.</p></li>
<li><p><strong>client_call_details</strong> (<a class="reference internal" href="#grpc.aio.ClientCallDetails" title="grpc.aio._interceptor.ClientCallDetails"><em>ClientCallDetails</em></a>) – A ClientCallDetails object describing the
outgoing RPC.</p></li>
<li><p><strong>request_iterator</strong> (<em>Iterable</em><em>[</em><em>Any</em><em>] </em><em>| </em><em>AsyncIterable</em><em>[</em><em>Any</em><em>]</em>) – The request iterator that will produce requests
for the RPC.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The RPC Call.</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="#grpc.aio.AioRpcError" title="grpc.aio.AioRpcError"><strong>AioRpcError</strong></a> – Indicating that the RPC terminated with non-OK status.</p></li>
<li><p><strong>asyncio.CancelledError</strong> – Indicating that the RPC was canceled.</p></li>
</ul>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>StreamUnaryCall</em></p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.StreamStreamClientInterceptor">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">StreamStreamClientInterceptor</span></span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#StreamStreamClientInterceptor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamStreamClientInterceptor" title="Link to this definition"></a></dt>
<dd><p>Affords intercepting stream-stream invocations.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamStreamClientInterceptor.intercept_stream_stream">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">intercept_stream_stream</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">continuation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">client_call_details</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request_iterator</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#StreamStreamClientInterceptor.intercept_stream_stream"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamStreamClientInterceptor.intercept_stream_stream" title="Link to this definition"></a></dt>
<dd><p>Intercepts a stream-stream invocation asynchronously.</p>
<p>Within the interceptor the usage of the call methods like <cite>write</cite> or
even awaiting the call should be done carefully, since the caller
could be expecting an untouched call, for example for start writing
messages to it.</p>
<p>The function could return the call object or an asynchronous
iterator, in case of being an asyncrhonous iterator this will
become the source of the reads done by the caller.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>continuation</strong> (<em>Callable</em><em>[</em><em>[</em><a class="reference internal" href="#grpc.aio.ClientCallDetails" title="grpc.aio._interceptor.ClientCallDetails"><em>ClientCallDetails</em></a><em>, </em><em>RequestType</em><em>]</em><em>, </em><em>StreamStreamCall</em><em>]</em>) – A coroutine that proceeds with the invocation by
executing the next interceptor in the chain or invoking the
actual RPC on the underlying Channel. It is the interceptor’s
responsibility to call it if it decides to move the RPC forward.
The interceptor can use
<cite>call = await continuation(client_call_details, request_iterator)</cite>
to continue with the RPC. <cite>continuation</cite> returns the call to the
RPC.</p></li>
<li><p><strong>client_call_details</strong> (<a class="reference internal" href="#grpc.aio.ClientCallDetails" title="grpc.aio._interceptor.ClientCallDetails"><em>ClientCallDetails</em></a>) – A ClientCallDetails object describing the
outgoing RPC.</p></li>
<li><p><strong>request_iterator</strong> (<em>Iterable</em><em>[</em><em>Any</em><em>] </em><em>| </em><em>AsyncIterable</em><em>[</em><em>Any</em><em>]</em>) – The request iterator that will produce requests
for the RPC.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The RPC Call or an asynchronous iterator.</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="#grpc.aio.AioRpcError" title="grpc.aio.AioRpcError"><strong>AioRpcError</strong></a> – Indicating that the RPC terminated with non-OK status.</p></li>
<li><p><strong>asyncio.CancelledError</strong> – Indicating that the RPC was canceled.</p></li>
</ul>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><em>AsyncIterable</em>[<em>Any</em>] | <em>StreamStreamCall</em></p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="server-side-interceptor">
<h3>Server-Side Interceptor<a class="headerlink" href="#server-side-interceptor" title="Link to this heading"></a></h3>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.ServerInterceptor">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">ServerInterceptor</span></span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#ServerInterceptor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServerInterceptor" title="Link to this definition"></a></dt>
<dd><p>Affords intercepting incoming RPCs on the service-side.</p>
<p>This is an EXPERIMENTAL API.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.ServerInterceptor.intercept_service">
<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">intercept_service</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">continuation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">handler_call_details</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_interceptor.html#ServerInterceptor.intercept_service"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.ServerInterceptor.intercept_service" title="Link to this definition"></a></dt>
<dd><p>Intercepts incoming RPCs before handing them over to a handler.</p>
<p>State can be passed from an interceptor to downstream interceptors
via contextvars. The first interceptor is called from an empty
contextvars.Context, and the same Context is used for downstream
interceptors and for the final handler call. Note that there are no
guarantees that interceptors and handlers will be called from the
same thread.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>continuation</strong> (<em>Callable</em><em>[</em><em>[</em><a class="reference internal" href="grpc.html#grpc.HandlerCallDetails" title="grpc.HandlerCallDetails"><em>HandlerCallDetails</em></a><em>]</em><em>, </em><em>Awaitable</em><em>[</em><a class="reference internal" href="grpc.html#grpc.RpcMethodHandler" title="grpc.RpcMethodHandler"><em>RpcMethodHandler</em></a><em>]</em><em>]</em>) – A function that takes a HandlerCallDetails and
proceeds to invoke the next interceptor in the chain, if any,
or the RPC handler lookup logic, with the call details passed
as an argument, and returns an RpcMethodHandler instance if
the RPC is considered serviced, or None otherwise.</p></li>
<li><p><strong>handler_call_details</strong> (<a class="reference internal" href="grpc.html#grpc.HandlerCallDetails" title="grpc.HandlerCallDetails"><em>HandlerCallDetails</em></a>) – A HandlerCallDetails describing the RPC.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>An RpcMethodHandler with which the RPC may be serviced if the
interceptor chooses to service this RPC, or None otherwise.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="grpc.html#grpc.RpcMethodHandler" title="grpc.RpcMethodHandler"><em>RpcMethodHandler</em></a></p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="multi-callable-interfaces">
<h3>Multi-Callable Interfaces<a class="headerlink" href="#multi-callable-interfaces" title="Link to this heading"></a></h3>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.UnaryUnaryMultiCallable">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">UnaryUnaryMultiCallable</span></span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#UnaryUnaryMultiCallable"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryUnaryMultiCallable" title="Link to this definition"></a></dt>
<dd><p>Enables asynchronous invocation of a unary-call RPC.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.UnaryUnaryMultiCallable.__call__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">credentials</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wait_for_ready</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#UnaryUnaryMultiCallable.__call__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryUnaryMultiCallable.__call__" title="Link to this definition"></a></dt>
<dd><p>Asynchronously invokes the underlying RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>request</strong> (<em>RequestType</em>) – The request value for the RPC.</p></li>
<li><p><strong>timeout</strong> (<em>float</em><em> | </em><em>None</em>) – An optional duration of time in seconds to allow
for the RPC.</p></li>
<li><p><strong>metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a><em> | </em><em>Sequence</em><em>[</em><em>Tuple</em><em>[</em><em>str</em><em>, </em><em>str</em><em> | </em><em>bytes</em><em>]</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a> to be transmitted to the
service-side of the RPC.</p></li>
<li><p><strong>credentials</strong> (<a class="reference internal" href="grpc.html#grpc.CallCredentials" title="grpc.CallCredentials"><em>CallCredentials</em></a><em> | </em><em>None</em>) – An optional CallCredentials for the RPC. Only valid for
secure Channel.</p></li>
<li><p><strong>wait_for_ready</strong> (<em>bool</em><em> | </em><em>None</em>) – An optional flag to enable <a class="reference internal" href="glossary.html#term-wait_for_ready"><span class="xref std std-term">wait_for_ready</span></a> mechanism.</p></li>
<li><p><strong>compression</strong> (<a class="reference internal" href="grpc.html#grpc.Compression" title="grpc.Compression"><em>Compression</em></a><em> | </em><em>None</em>) – An element of grpc.compression, e.g.
grpc.compression.Gzip.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A UnaryUnaryCall object.</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="grpc.html#grpc.RpcError" title="grpc.RpcError"><strong>RpcError</strong></a> – Indicates that the RPC terminated with non-OK status. The
raised RpcError will also be a Call for the RPC affording the RPC’s
metadata, status code, and details.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="#grpc.aio.UnaryUnaryCall" title="grpc.aio._base_call.UnaryUnaryCall"><em>UnaryUnaryCall</em></a>[<em>RequestType</em>, <em>ResponseType</em>]</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.UnaryStreamMultiCallable">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">UnaryStreamMultiCallable</span></span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#UnaryStreamMultiCallable"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryStreamMultiCallable" title="Link to this definition"></a></dt>
<dd><p>Enables asynchronous invocation of a server-streaming RPC.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.UnaryStreamMultiCallable.__call__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">credentials</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wait_for_ready</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#UnaryStreamMultiCallable.__call__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.UnaryStreamMultiCallable.__call__" title="Link to this definition"></a></dt>
<dd><p>Asynchronously invokes the underlying RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>request</strong> (<em>RequestType</em>) – The request value for the RPC.</p></li>
<li><p><strong>timeout</strong> (<em>float</em><em> | </em><em>None</em>) – An optional duration of time in seconds to allow
for the RPC.</p></li>
<li><p><strong>metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a><em> | </em><em>Sequence</em><em>[</em><em>Tuple</em><em>[</em><em>str</em><em>, </em><em>str</em><em> | </em><em>bytes</em><em>]</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a> to be transmitted to the
service-side of the RPC.</p></li>
<li><p><strong>credentials</strong> (<a class="reference internal" href="grpc.html#grpc.CallCredentials" title="grpc.CallCredentials"><em>CallCredentials</em></a><em> | </em><em>None</em>) – An optional CallCredentials for the RPC. Only valid for
secure Channel.</p></li>
<li><p><strong>wait_for_ready</strong> (<em>bool</em><em> | </em><em>None</em>) – An optional flag to enable <a class="reference internal" href="glossary.html#term-wait_for_ready"><span class="xref std std-term">wait_for_ready</span></a> mechanism.</p></li>
<li><p><strong>compression</strong> (<a class="reference internal" href="grpc.html#grpc.Compression" title="grpc.Compression"><em>Compression</em></a><em> | </em><em>None</em>) – An element of grpc.compression, e.g.
grpc.compression.Gzip.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A UnaryStreamCall object.</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="grpc.html#grpc.RpcError" title="grpc.RpcError"><strong>RpcError</strong></a> – Indicates that the RPC terminated with non-OK status. The
raised RpcError will also be a Call for the RPC affording the RPC’s
metadata, status code, and details.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="#grpc.aio.UnaryStreamCall" title="grpc.aio._base_call.UnaryStreamCall"><em>UnaryStreamCall</em></a>[<em>RequestType</em>, <em>ResponseType</em>]</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.StreamUnaryMultiCallable">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">StreamUnaryMultiCallable</span></span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#StreamUnaryMultiCallable"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamUnaryMultiCallable" title="Link to this definition"></a></dt>
<dd><p>Enables asynchronous invocation of a client-streaming RPC.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamUnaryMultiCallable.__call__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request_iterator</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">credentials</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wait_for_ready</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#StreamUnaryMultiCallable.__call__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamUnaryMultiCallable.__call__" title="Link to this definition"></a></dt>
<dd><p>Asynchronously invokes the underlying RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>request_iterator</strong> (<em>Iterable</em><em>[</em><em>Any</em><em>] </em><em>| </em><em>AsyncIterable</em><em>[</em><em>Any</em><em>] </em><em>| </em><em>None</em>) – An optional async iterable or iterable of request
messages for the RPC.</p></li>
<li><p><strong>timeout</strong> (<em>float</em><em> | </em><em>None</em>) – An optional duration of time in seconds to allow
for the RPC.</p></li>
<li><p><strong>metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a><em> | </em><em>Sequence</em><em>[</em><em>Tuple</em><em>[</em><em>str</em><em>, </em><em>str</em><em> | </em><em>bytes</em><em>]</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a> to be transmitted to the
service-side of the RPC.</p></li>
<li><p><strong>credentials</strong> (<a class="reference internal" href="grpc.html#grpc.CallCredentials" title="grpc.CallCredentials"><em>CallCredentials</em></a><em> | </em><em>None</em>) – An optional CallCredentials for the RPC. Only valid for
secure Channel.</p></li>
<li><p><strong>wait_for_ready</strong> (<em>bool</em><em> | </em><em>None</em>) – An optional flag to enable <a class="reference internal" href="glossary.html#term-wait_for_ready"><span class="xref std std-term">wait_for_ready</span></a> mechanism.</p></li>
<li><p><strong>compression</strong> (<a class="reference internal" href="grpc.html#grpc.Compression" title="grpc.Compression"><em>Compression</em></a><em> | </em><em>None</em>) – An element of grpc.compression, e.g.
grpc.compression.Gzip.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A StreamUnaryCall object.</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="grpc.html#grpc.RpcError" title="grpc.RpcError"><strong>RpcError</strong></a> – Indicates that the RPC terminated with non-OK status. The
raised RpcError will also be a Call for the RPC affording the RPC’s
metadata, status code, and details.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="#grpc.aio.StreamUnaryCall" title="grpc.aio._base_call.StreamUnaryCall"><em>StreamUnaryCall</em></a></p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="grpc.aio.StreamStreamMultiCallable">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">grpc.aio.</span></span><span class="sig-name descname"><span class="pre">StreamStreamMultiCallable</span></span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#StreamStreamMultiCallable"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamStreamMultiCallable" title="Link to this definition"></a></dt>
<dd><p>Enables asynchronous invocation of a bidirectional-streaming RPC.</p>
<dl class="py method">
<dt class="sig sig-object py" id="grpc.aio.StreamStreamMultiCallable.__call__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request_iterator</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">credentials</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wait_for_ready</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/grpc/aio/_base_channel.html#StreamStreamMultiCallable.__call__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#grpc.aio.StreamStreamMultiCallable.__call__" title="Link to this definition"></a></dt>
<dd><p>Asynchronously invokes the underlying RPC.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>request_iterator</strong> (<em>Iterable</em><em>[</em><em>Any</em><em>] </em><em>| </em><em>AsyncIterable</em><em>[</em><em>Any</em><em>] </em><em>| </em><em>None</em>) – An optional async iterable or iterable of request
messages for the RPC.</p></li>
<li><p><strong>timeout</strong> (<em>float</em><em> | </em><em>None</em>) – An optional duration of time in seconds to allow
for the RPC.</p></li>
<li><p><strong>metadata</strong> (<a class="reference internal" href="#grpc.aio.Metadata" title="grpc.aio._metadata.Metadata"><em>Metadata</em></a><em> | </em><em>Sequence</em><em>[</em><em>Tuple</em><em>[</em><em>str</em><em>, </em><em>str</em><em> | </em><em>bytes</em><em>]</em><em>] </em><em>| </em><em>None</em>) – Optional <a class="reference internal" href="glossary.html#term-metadata"><span class="xref std std-term">metadata</span></a> to be transmitted to the
service-side of the RPC.</p></li>
<li><p><strong>credentials</strong> (<a class="reference internal" href="grpc.html#grpc.CallCredentials" title="grpc.CallCredentials"><em>CallCredentials</em></a><em> | </em><em>None</em>) – An optional CallCredentials for the RPC. Only valid for
secure Channel.</p></li>
<li><p><strong>wait_for_ready</strong> (<em>bool</em><em> | </em><em>None</em>) – An optional flag to enable <a class="reference internal" href="glossary.html#term-wait_for_ready"><span class="xref std std-term">wait_for_ready</span></a> mechanism.</p></li>
<li><p><strong>compression</strong> (<a class="reference internal" href="grpc.html#grpc.Compression" title="grpc.Compression"><em>Compression</em></a><em> | </em><em>None</em>) – An element of grpc.compression, e.g.
grpc.compression.Gzip.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A StreamStreamCall object.</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="grpc.html#grpc.RpcError" title="grpc.RpcError"><strong>RpcError</strong></a> – Indicates that the RPC terminated with non-OK status. The
raised RpcError will also be a Call for the RPC affording the RPC’s
metadata, status code, and details.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="#grpc.aio.StreamStreamCall" title="grpc.aio._base_call.StreamStreamCall"><em>StreamStreamCall</em></a></p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
</section>
</section>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2025, The gRPC Authors.
|
<a href="_sources/grpc_asyncio.rst.txt"
rel="nofollow">Page source</a>
</div>
<script>
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.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'https://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>