| 
					
				 | 
			
			
				@@ -32,11 +32,24 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import abc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import enum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# exceptions, abandonment, and future are referenced from specification in this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# module. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# cardinality, style, exceptions, abandonment, future, and stream are 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# referenced from specification in this module. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from grpc.framework.common import cardinality  # pylint: disable=unused-import 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from grpc.framework.common import style  # pylint: disable=unused-import 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from grpc.framework.face import exceptions  # pylint: disable=unused-import 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from grpc.framework.foundation import abandonment  # pylint: disable=unused-import 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from grpc.framework.foundation import future  # pylint: disable=unused-import 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from grpc.framework.foundation import stream  # pylint: disable=unused-import 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@enum.unique 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class Abortion(enum.Enum): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """Categories of RPC abortion.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  CANCELLED = 'cancelled' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  EXPIRED = 'expired' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NETWORK_FAILURE = 'network failure' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  SERVICED_FAILURE = 'serviced failure' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  SERVICER_FAILURE = 'servicer failure' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class CancellableIterator(object): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -59,69 +72,61 @@ class CancellableIterator(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class UnaryUnarySyncAsync(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """Affords invoking a unary-unary RPC synchronously or asynchronously. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Values implementing this interface are directly callable and present an 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "async" method. Both calls take a request value and a numeric timeout. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Direct invocation of a value of this type invokes its associated RPC and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  blocks until the RPC's response is available. Calling the "async" method 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  of a value of this type invokes its associated RPC and immediately returns a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  future.Future bound to the asynchronous execution of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class RpcContext(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """Provides RPC-related information and action.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def __call__(self, request, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Synchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def is_active(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Describes whether the RPC is active or has terminated.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      request: The request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def time_remaining(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Describes the length of allowed time remaining for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      The response value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Raises: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      exceptions.RpcError: Indicating that the RPC was aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def async(self, request, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Asynchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def add_abortion_callback(self, abortion_callback): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Registers a callback to be called if the RPC is aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      request: The request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      A future.Future representing the RPC. In the event of RPC completion, the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        returned Future's result value will be the response value of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        In the event of RPC abortion, the returned Future's exception value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        will be an exceptions.RpcError. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      abortion_callback: A callable to be called and passed an Abortion value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        in the event of RPC abortion. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class StreamUnarySyncAsync(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """Affords invoking a stream-unary RPC synchronously or asynchronously. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class Call(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """Invocation-side representation of an RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Values implementing this interface are directly callable and present an 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "async" method. Both calls take an iterator of request values and a numeric 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  timeout. Direct invocation of a value of this type invokes its associated RPC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  and blocks until the RPC's response is available. Calling the "async" method 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  of a value of this type invokes its associated RPC and immediately returns a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  future.Future bound to the asynchronous execution of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Attributes: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    context: An RpcContext affording information about the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def __call__(self, request_iterator, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def cancel(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Requests cancellation of the RPC.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class UnaryUnaryMultiCallable(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """Affords invoking a unary-unary RPC in any call style.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def __call__(self, request, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Synchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      request_iterator: An iterator that yields request values for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request: The request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Returns: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -133,11 +138,11 @@ class StreamUnarySyncAsync(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def async(self, request, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def future(self, request, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Asynchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      request_iterator: An iterator that yields request values for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request: The request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Returns: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -148,248 +153,204 @@ class StreamUnarySyncAsync(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@enum.unique 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class Abortion(enum.Enum): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """Categories of RPC abortion.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  CANCELLED = 'cancelled' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  EXPIRED = 'expired' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NETWORK_FAILURE = 'network failure' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  SERVICED_FAILURE = 'serviced failure' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  SERVICER_FAILURE = 'servicer failure' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class RpcContext(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """Provides RPC-related information and action.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def is_active(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Describes whether the RPC is active or has terminated.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def time_remaining(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Describes the length of allowed time remaining for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      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. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def add_abortion_callback(self, abortion_callback): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Registers a callback to be called if the RPC is aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def event(self, request, response_callback, abortion_callback, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Asynchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      abortion_callback: A callable to be called and passed an Abortion value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request: The request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      response_callback: A callback to be called to accept the restponse value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      abortion_callback: A callback to be called and passed an Abortion value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         in the event of RPC abortion. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class InlineValueInValueOutMethod(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """A type for inline unary-request-unary-response RPC methods.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def service(self, request, context): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Services an RPC that accepts one value and produces one value. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      request: The single request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      context: An RpcContext object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      The single response value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Raises: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      abandonment.Abandoned: If no response is necessary because the RPC has 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        been aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A Call object for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class InlineValueInStreamOutMethod(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """A type for inline unary-request-stream-response RPC methods.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class UnaryStreamMultiCallable(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """Affords invoking a unary-stream RPC in any call style.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def service(self, request, context): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Services an RPC that accepts one value and produces a stream of values. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def __call__(self, request, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Synchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      request: The single request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      context: An RpcContext object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Yields: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      The values that comprise the response stream of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request: The request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Raises: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      abandonment.Abandoned: If completing the response stream is not necessary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        because the RPC has been aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A CancellableIterator that yields the response values of the RPC and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        affords RPC cancellation. Drawing response values from the returned 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CancellableIterator may raise exceptions.RpcError indicating abortion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class InlineStreamInValueOutMethod(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """A type for inline stream-request-unary-response RPC methods.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def service(self, request_iterator, context): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Services an RPC that accepts a stream of values and produces one value. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def event(self, request, response_consumer, abortion_callback, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Asynchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      request_iterator: An iterator that yields the request values of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Drawing values from this iterator may also raise exceptions.RpcError to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        indicate abortion of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      context: An RpcContext object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Yields: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      The values that comprise the response stream of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request: The request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      response_consumer: A stream.Consumer to be called to accept the restponse 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        values of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      abortion_callback: A callback to be called and passed an Abortion value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        in the event of RPC abortion. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Raises: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      abandonment.Abandoned: If no response is necessary because the RPC has 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        been aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      exceptions.RpcError: Implementations of this method must not deliberately 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        raise exceptions.RpcError but may allow such errors raised by the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        request_iterator passed to them to propagate through their bodies 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        uncaught. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A Call object for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class InlineStreamInStreamOutMethod(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """A type for inline stream-request-stream-response RPC methods.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class StreamUnaryMultiCallable(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """Affords invoking a stream-unary RPC in any call style.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def service(self, request_iterator, context): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Services an RPC that accepts and produces streams of values. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def __call__(self, request_iterator, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Synchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      request_iterator: An iterator that yields the request values of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Drawing values from this iterator may also raise exceptions.RpcError to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        indicate abortion of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      context: An RpcContext object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request_iterator: An iterator that yields request values for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Yields: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      The values that comprise the response stream of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      The response value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Raises: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      abandonment.Abandoned: If completing the response stream is not necessary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        because the RPC has been aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      exceptions.RpcError: Implementations of this method must not deliberately 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        raise exceptions.RpcError but may allow such errors raised by the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        request_iterator passed to them to propagate through their bodies 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        uncaught. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      exceptions.RpcError: Indicating that the RPC was aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class EventValueInValueOutMethod(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """A type for event-driven unary-request-unary-response RPC methods.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def service(self, request, response_callback, context): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Services an RPC that accepts one value and produces one value. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def future(self, request_iterator, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Asynchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      request: The single request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      response_callback: A callback to be called to accept the response value of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      context: An RpcContext object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request_iterator: An iterator that yields request values for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Raises: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      abandonment.Abandoned: May or may not be raised when the RPC has been 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A future.Future representing the RPC. In the event of RPC completion, the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        returned Future's result value will be the response value of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        In the event of RPC abortion, the returned Future's exception value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        will be an exceptions.RpcError. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class EventValueInStreamOutMethod(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """A type for event-driven unary-request-stream-response RPC methods.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def service(self, request, response_consumer, context): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Services an RPC that accepts one value and produces a stream of values. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def event(self, response_callback, abortion_callback, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Asynchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      request: The single request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      response_consumer: A stream.Consumer to be called to accept the response 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        values of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      context: An RpcContext object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request: The request value for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      response_callback: A callback to be called to accept the restponse value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      abortion_callback: A callback to be called and passed an Abortion value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        in the event of RPC abortion. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Raises: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      abandonment.Abandoned: May or may not be raised when the RPC has been 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A pair of a Call object for the RPC and a stream.Consumer to which the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request values of the RPC should be passed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class EventStreamInValueOutMethod(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """A type for event-driven stream-request-unary-response RPC methods.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class StreamStreamMultiCallable(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """Affords invoking a stream-stream RPC in any call style.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def service(self, response_callback, context): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Services an RPC that accepts a stream of values and produces one value. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def __call__(self, request_iterator, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Synchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      response_callback: A callback to be called to accept the response value of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      context: An RpcContext object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request_iterator: An iterator that yields request values for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      A stream.Consumer with which to accept the request values of the RPC. The 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        consumer returned from this method may or may not be invoked to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        completion: in the case of RPC abortion, RPC Framework will simply stop 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        passing values to this object. Implementations must not assume that this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        object will be called to completion of the request stream or even called 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        at all. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Raises: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      abandonment.Abandoned: May or may not be raised when the RPC has been 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A CancellableIterator that yields the response values of the RPC and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        affords RPC cancellation. Drawing response values from the returned 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CancellableIterator may raise exceptions.RpcError indicating abortion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class EventStreamInStreamOutMethod(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """A type for event-driven stream-request-stream-response RPC methods.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def service(self, response_consumer, context): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Services an RPC that accepts and produces streams of values. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def event(self, response_consumer, abortion_callback, timeout): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Asynchronously invokes the underlying RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      response_consumer: A stream.Consumer to be called to accept the response 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+l    Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      response_consumer: A stream.Consumer to be called to accept the restponse 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         values of the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      context: An RpcContext object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      abortion_callback: A callback to be called and passed an Abortion value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        in the event of RPC abortion. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      timeout: A duration of time in seconds to allow for the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      A stream.Consumer with which to accept the request values of the RPC. The 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        consumer returned from this method may or may not be invoked to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        completion: in the case of RPC abortion, RPC Framework will simply stop 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        passing values to this object. Implementations must not assume that this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        object will be called to completion of the request stream or even called 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        at all. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Raises: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      abandonment.Abandoned: May or may not be raised when the RPC has been 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        aborted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A pair of a Call object for the RPC and a stream.Consumer to which the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request values of the RPC should be passed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class MultiMethod(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class MethodImplementation(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """A sum type that describes an RPC method implementation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Attributes: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cardinality: A cardinality.Cardinality value. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    style: A style.Service value. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    unary_unary_inline: The implementation of the RPC method as a callable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      value that takes a request value and an RpcContext object and returns a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      response value. Only non-None if cardinality is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      cardinality.Cardinality.UNARY_UNARY and style is style.Service.INLINE. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    unary_stream_inline: The implementation of the RPC method as a callable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      value that takes a request value and an RpcContext object and returns an 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      iterator of response values. Only non-None if cardinality is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      cardinality.Cardinality.UNARY_STREAM and style is style.Service.INLINE. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    stream_unary_inline: The implementation of the RPC method as a callable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      value that takes an iterator of request values and an RpcContext object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      and returns a response value. Only non-None if cardinality is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      cardinality.Cardinality.STREAM_UNARY and style is style.Service.INLINE. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    stream_stream_inline: The implementation of the RPC method as a callable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      value that takes an iterator of request values and an RpcContext object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      and returns an iterator of response values. Only non-None if cardinality 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      is cardinality.Cardinality.STREAM_STREAM and style is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      style.Service.INLINE. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    unary_unary_event: The implementation of the RPC method as a callable value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      that takes a request value, a response callback to which to pass the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      response value of the RPC, and an RpcContext. Only non-None if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      cardinality is cardinality.Cardinality.UNARY_UNARY and style is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      style.Service.EVENT. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    unary_stream_event: The implementation of the RPC method as a callable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      value that takes a request value, a stream.Consumer to which to pass the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      the response values of the RPC, and an RpcContext. Only non-None if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      cardinality is cardinality.Cardinality.UNARY_STREAM and style is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      style.Service.EVENT. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    stream_unary_event: The implementation of the RPC method as a callable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      value that takes a response callback to which to pass the response value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      of the RPC and an RpcContext and returns a stream.Consumer to which the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request values of the RPC should be passed. Only non-None if cardinality 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      is cardinality.Cardinality.STREAM_UNARY and style is style.Service.EVENT. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    stream_stream_event: The implementation of the RPC method as a callable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      value that takes a stream.Consumer to which to pass the response values 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      of the RPC and an RpcContext and returns a stream.Consumer to which the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      request values of the RPC should be passed. Only non-None if cardinality 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      is cardinality.Cardinality.STREAM_STREAM and style is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      style.Service.EVENT. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class MultiMethodImplementation(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   """A general type able to service many RPC methods.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -420,26 +381,7 @@ class MultiMethod(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class Server(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """Specification of a running server that services RPCs.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class Call(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """Invocation-side representation of an RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Attributes: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    context: An RpcContext affording information about the RPC. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def cancel(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Requests cancellation of the RPC.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class Stub(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class GenericStub(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   """Affords RPC methods to callers.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   __metaclass__ = abc.ABCMeta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -632,25 +574,67 @@ class Stub(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def unary_unary_sync_async(self, name): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Creates a UnaryUnarySyncAsync value for a unary-unary RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def unary_unary_multi_callable(self, name): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Creates a UnaryUnaryMultiCallable for a unary-unary RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      name: The RPC method name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A UnaryUnaryMultiCallable value for the named unary-unary RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def unary_stream_multi_callable(self, name): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Creates a UnaryStreamMultiCallable for a unary-stream RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       name: The RPC method name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      A UnaryUnarySyncAsync value for the named unary-unary RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A UnaryStreamMultiCallable value for the name unary-stream RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  def stream_unary_sync_async(self, name): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Creates a StreamUnarySyncAsync value for a stream-unary RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def stream_unary_multi_callable(self, name): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Creates a StreamUnaryMultiCallable for a stream-unary RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       name: The RPC method name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      A StreamUnarySyncAsync value for the named stream-unary RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A StreamUnaryMultiCallable value for the named stream-unary RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  @abc.abstractmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def stream_stream_multi_callable(self, name): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """Creates a StreamStreamMultiCallable for a stream-stream RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Args: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      name: The RPC method name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Returns: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      A StreamStreamMultiCallable value for the named stream-stream RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    raise NotImplementedError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class DynamicStub(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """A stub with RPC-method-bound multi-callable attributes. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Instances of this type responsd to attribute access as follows: if the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  requested attribute is the name of a unary-unary RPC method, the value of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  attribute will be a UnaryUnaryMultiCallable with which to invoke the RPC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  method; if the requested attribute is the name of a unary-stream RPC method, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  the value of the attribute will be a UnaryStreamMultiCallable with which to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  invoke the RPC method; if the requested attribute is the name of a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  stream-unary RPC method, the value of the attribute will be a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  StreamUnaryMultiCallable with which to invoke the RPC method; and if the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  requested attribute is the name of a stream-stream RPC method, the value of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  the attribute will be a StreamStreamMultiCallable with which to invoke the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  RPC method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  __metaclass__ = abc.ABCMeta 
			 |