14 """Abstract base classes for Channel objects and Multicallable objects."""
17 from typing
import Any, Optional
21 from .
import _base_call
22 from ._typing
import DeserializingFunction
23 from ._typing
import MetadataType
24 from ._typing
import RequestIterableType
25 from ._typing
import SerializingFunction
29 """Enables asynchronous invocation of a unary-call RPC."""
36 timeout: Optional[float] =
None,
37 metadata: Optional[MetadataType] =
None,
39 wait_for_ready: Optional[bool] =
None,
42 """Asynchronously invokes the underlying RPC.
45 request: The request value for the RPC.
46 timeout: An optional duration of time in seconds to allow
48 metadata: Optional :term:`metadata` to be transmitted to the
49 service-side of the RPC.
50 credentials: An optional CallCredentials for the RPC. Only valid for
52 wait_for_ready: This is an EXPERIMENTAL argument. An optional
53 flag to enable :term:`wait_for_ready` mechanism.
54 compression: An element of grpc.compression, e.g.
55 grpc.compression.Gzip. This is an EXPERIMENTAL option.
58 A UnaryUnaryCall object.
61 RpcError: Indicates that the RPC terminated with non-OK status. The
62 raised RpcError will also be a Call for the RPC affording the RPC's
63 metadata, status code, and details.
68 """Enables asynchronous invocation of a server-streaming RPC."""
75 timeout: Optional[float] =
None,
76 metadata: Optional[MetadataType] =
None,
78 wait_for_ready: Optional[bool] =
None,
81 """Asynchronously invokes the underlying RPC.
84 request: The request value for the RPC.
85 timeout: An optional duration of time in seconds to allow
87 metadata: Optional :term:`metadata` to be transmitted to the
88 service-side of the RPC.
89 credentials: An optional CallCredentials for the RPC. Only valid for
91 wait_for_ready: This is an EXPERIMENTAL argument. An optional
92 flag to enable :term:`wait_for_ready` mechanism.
93 compression: An element of grpc.compression, e.g.
94 grpc.compression.Gzip. This is an EXPERIMENTAL option.
97 A UnaryStreamCall object.
100 RpcError: Indicates that the RPC terminated with non-OK status. The
101 raised RpcError will also be a Call for the RPC affording the RPC's
102 metadata, status code, and details.
107 """Enables asynchronous invocation of a client-streaming RPC."""
112 request_iterator: Optional[RequestIterableType] =
None,
113 timeout: Optional[float] =
None,
114 metadata: Optional[MetadataType] =
None,
116 wait_for_ready: Optional[bool] =
None,
119 """Asynchronously invokes the underlying RPC.
122 request_iterator: An optional async iterable or iterable of request
123 messages for the RPC.
124 timeout: An optional duration of time in seconds to allow
126 metadata: Optional :term:`metadata` to be transmitted to the
127 service-side of the RPC.
128 credentials: An optional CallCredentials for the RPC. Only valid for
130 wait_for_ready: This is an EXPERIMENTAL argument. An optional
131 flag to enable :term:`wait_for_ready` mechanism.
132 compression: An element of grpc.compression, e.g.
133 grpc.compression.Gzip. This is an EXPERIMENTAL option.
136 A StreamUnaryCall object.
139 RpcError: Indicates that the RPC terminated with non-OK status. The
140 raised RpcError will also be a Call for the RPC affording the RPC's
141 metadata, status code, and details.
146 """Enables asynchronous invocation of a bidirectional-streaming RPC."""
151 request_iterator: Optional[RequestIterableType] =
None,
152 timeout: Optional[float] =
None,
153 metadata: Optional[MetadataType] =
None,
155 wait_for_ready: Optional[bool] =
None,
158 """Asynchronously invokes the underlying RPC.
161 request_iterator: An optional async iterable or iterable of request
162 messages for the RPC.
163 timeout: An optional duration of time in seconds to allow
165 metadata: Optional :term:`metadata` to be transmitted to the
166 service-side of the RPC.
167 credentials: An optional CallCredentials for the RPC. Only valid for
169 wait_for_ready: This is an EXPERIMENTAL argument. An optional
170 flag to enable :term:`wait_for_ready` mechanism.
171 compression: An element of grpc.compression, e.g.
172 grpc.compression.Gzip. This is an EXPERIMENTAL option.
175 A StreamStreamCall object.
178 RpcError: Indicates that the RPC terminated with non-OK status. The
179 raised RpcError will also be a Call for the RPC affording the RPC's
180 metadata, status code, and details.
185 """Enables asynchronous RPC invocation as a client.
187 Channel objects implement the Asynchronous Context Manager (aka. async
188 with) type, although they are not supportted to be entered and exited
194 """Starts an asynchronous context manager.
197 Channel the channel that was instantiated.
202 """Finishes the asynchronous context manager by closing the channel.
204 Still active RPCs will be cancelled.
208 async
def close(self, grace: Optional[float] =
None):
209 """Closes this Channel and releases all resources held by it.
211 This method immediately stops the channel from executing new RPCs in
214 If a grace period is specified, this method wait until all active
215 RPCs are finshed, once the grace period is reached the ones that haven't
216 been terminated are cancelled. If a grace period is not specified
217 (by passing None for grace), all existing RPCs are cancelled immediately.
219 This method is idempotent.
225 """Checks the connectivity state of a channel.
227 This is an EXPERIMENTAL API.
229 If the channel reaches a stable connectivity state, it is guaranteed
230 that the return value of this function will eventually converge to that
234 try_to_connect: a bool indicate whether the Channel should try to
235 connect to peer or not.
237 Returns: A ChannelConnectivity object.
243 last_observed_state: grpc.ChannelConnectivity,
245 """Waits for a change in connectivity state.
247 This is an EXPERIMENTAL API.
249 The function blocks until there is a change in the channel connectivity
250 state from the "last_observed_state". If the state is already
251 different, this function will return immediately.
253 There is an inherent race between the invocation of
254 "Channel.wait_for_state_change" and "Channel.get_state". The state can
255 change arbitrary many times during the race, so there is no way to
256 observe every state transition.
258 If there is a need to put a timeout for this function, please refer to
262 last_observed_state: A grpc.ChannelConnectivity object representing
263 the last known state.
268 """Creates a coroutine that blocks until the Channel is READY."""
274 request_serializer: Optional[SerializingFunction] =
None,
275 response_deserializer: Optional[DeserializingFunction] =
None
276 ) -> UnaryUnaryMultiCallable:
277 """Creates a UnaryUnaryMultiCallable for a unary-unary method.
280 method: The name of the RPC method.
281 request_serializer: Optional :term:`serializer` for serializing the request
282 message. Request goes unserialized in case None is passed.
283 response_deserializer: Optional :term:`deserializer` for deserializing the
284 response message. Response goes undeserialized in case None
288 A UnaryUnaryMultiCallable value for the named unary-unary method.
295 request_serializer: Optional[SerializingFunction] =
None,
296 response_deserializer: Optional[DeserializingFunction] =
None
297 ) -> UnaryStreamMultiCallable:
298 """Creates a UnaryStreamMultiCallable for a unary-stream method.
301 method: The name of the RPC method.
302 request_serializer: Optional :term:`serializer` for serializing the request
303 message. Request goes unserialized in case None is passed.
304 response_deserializer: Optional :term:`deserializer` for deserializing the
305 response message. Response goes undeserialized in case None
309 A UnarySteramMultiCallable value for the named unary-stream method.
316 request_serializer: Optional[SerializingFunction] =
None,
317 response_deserializer: Optional[DeserializingFunction] =
None
318 ) -> StreamUnaryMultiCallable:
319 """Creates a StreamUnaryMultiCallable for a stream-unary method.
322 method: The name of the RPC method.
323 request_serializer: Optional :term:`serializer` for serializing the request
324 message. Request goes unserialized in case None is passed.
325 response_deserializer: Optional :term:`deserializer` for deserializing the
326 response message. Response goes undeserialized in case None
330 A StreamUnaryMultiCallable value for the named stream-unary method.
337 request_serializer: Optional[SerializingFunction] =
None,
338 response_deserializer: Optional[DeserializingFunction] =
None
339 ) -> StreamStreamMultiCallable:
340 """Creates a StreamStreamMultiCallable for a stream-stream method.
343 method: The name of the RPC method.
344 request_serializer: Optional :term:`serializer` for serializing the request
345 message. Request goes unserialized in case None is passed.
346 response_deserializer: Optional :term:`deserializer` for deserializing the
347 response message. Response goes undeserialized in case None
351 A StreamStreamMultiCallable value for the named stream-stream method.