_client_adaptations.py
Go to the documentation of this file.
1 # Copyright 2016 gRPC authors.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 """Translates gRPC's client-side API into gRPC's client-side Beta API."""
15 
16 import grpc
17 from grpc import _common
18 from grpc.beta import _metadata
19 from grpc.beta import interfaces
20 from grpc.framework.common import cardinality
21 from grpc.framework.foundation import future
22 from grpc.framework.interfaces.face import face
23 
24 # pylint: disable=too-many-arguments,too-many-locals,unused-argument
25 
26 _STATUS_CODE_TO_ABORTION_KIND_AND_ABORTION_ERROR_CLASS = {
27  grpc.StatusCode.CANCELLED:
28  (face.Abortion.Kind.CANCELLED, face.CancellationError),
29  grpc.StatusCode.UNKNOWN:
30  (face.Abortion.Kind.REMOTE_FAILURE, face.RemoteError),
31  grpc.StatusCode.DEADLINE_EXCEEDED:
32  (face.Abortion.Kind.EXPIRED, face.ExpirationError),
33  grpc.StatusCode.UNIMPLEMENTED:
34  (face.Abortion.Kind.LOCAL_FAILURE, face.LocalError),
35 }
36 
37 
38 def _effective_metadata(metadata, metadata_transformer):
39  non_none_metadata = () if metadata is None else metadata
40  if metadata_transformer is None:
41  return non_none_metadata
42  else:
43  return metadata_transformer(non_none_metadata)
44 
45 
46 def _credentials(grpc_call_options):
47  return None if grpc_call_options is None else grpc_call_options.credentials
48 
49 
50 def _abortion(rpc_error_call):
51  code = rpc_error_call.code()
52  pair = _STATUS_CODE_TO_ABORTION_KIND_AND_ABORTION_ERROR_CLASS.get(code)
53  error_kind = face.Abortion.Kind.LOCAL_FAILURE if pair is None else pair[0]
54  return face.Abortion(error_kind, rpc_error_call.initial_metadata(),
55  rpc_error_call.trailing_metadata(), code,
56  rpc_error_call.details())
57 
58 
59 def _abortion_error(rpc_error_call):
60  code = rpc_error_call.code()
61  pair = _STATUS_CODE_TO_ABORTION_KIND_AND_ABORTION_ERROR_CLASS.get(code)
62  exception_class = face.AbortionError if pair is None else pair[1]
63  return exception_class(rpc_error_call.initial_metadata(),
64  rpc_error_call.trailing_metadata(), code,
65  rpc_error_call.details())
66 
67 
69 
71  pass # TODO(https://github.com/grpc/grpc/issues/4078): design, implement.
72 
73 
74 class _Rendezvous(future.Future, face.Call):
75 
76  def __init__(self, response_future, response_iterator, call):
77  self._future = response_future
78  self._iterator = response_iterator
79  self._call = call
80 
81  def cancel(self):
82  return self._call.cancel()
83 
84  def cancelled(self):
85  return self._future.cancelled()
86 
87  def running(self):
88  return self._future.running()
89 
90  def done(self):
91  return self._future.done()
92 
93  def result(self, timeout=None):
94  try:
95  return self._future.result(timeout=timeout)
96  except grpc.RpcError as rpc_error_call:
97  raise _abortion_error(rpc_error_call)
99  raise future.TimeoutError()
101  raise future.CancelledError()
102 
103  def exception(self, timeout=None):
104  try:
105  rpc_error_call = self._future.exception(timeout=timeout)
106  if rpc_error_call is None:
107  return None
108  else:
109  return _abortion_error(rpc_error_call)
111  raise future.TimeoutError()
113  raise future.CancelledError()
114 
115  def traceback(self, timeout=None):
116  try:
117  return self._future.traceback(timeout=timeout)
119  raise future.TimeoutError()
121  raise future.CancelledError()
122 
123  def add_done_callback(self, fn):
124  self._future.add_done_callback(lambda ignored_callback: fn(self))
125 
126  def __iter__(self):
127  return self
128 
129  def _next(self):
130  try:
131  return next(self._iterator)
132  except grpc.RpcError as rpc_error_call:
133  raise _abortion_error(rpc_error_call)
134 
135  def __next__(self):
136  return self._next()
137 
138  def next(self):
139  return self._next()
140 
141  def is_active(self):
142  return self._call.is_active()
143 
144  def time_remaining(self):
145  return self._call.time_remaining()
146 
147  def add_abortion_callback(self, abortion_callback):
148 
149  def done_callback():
150  if self.code() is not grpc.StatusCode.OK:
151  abortion_callback(_abortion(self._call))
152 
153  registered = self._call.add_callback(done_callback)
154  return None if registered else done_callback()
155 
156  def protocol_context(self):
158 
159  def initial_metadata(self):
160  return _metadata.beta(self._call.initial_metadata())
161 
162  def terminal_metadata(self):
163  return _metadata.beta(self._call.terminal_metadata())
164 
165  def code(self):
166  return self._call.code()
167 
168  def details(self):
169  return self._call.details()
170 
171 
172 def _blocking_unary_unary(channel, group, method, timeout, with_call,
173  protocol_options, metadata, metadata_transformer,
174  request, request_serializer, response_deserializer):
175  try:
176  multi_callable = channel.unary_unary(
177  _common.fully_qualified_method(group, method),
178  request_serializer=request_serializer,
179  response_deserializer=response_deserializer)
180  effective_metadata = _effective_metadata(metadata, metadata_transformer)
181  if with_call:
182  response, call = multi_callable.with_call(
183  request,
184  timeout=timeout,
185  metadata=_metadata.unbeta(effective_metadata),
186  credentials=_credentials(protocol_options))
187  return response, _Rendezvous(None, None, call)
188  else:
189  return multi_callable(request,
190  timeout=timeout,
191  metadata=_metadata.unbeta(effective_metadata),
192  credentials=_credentials(protocol_options))
193  except grpc.RpcError as rpc_error_call:
194  raise _abortion_error(rpc_error_call)
195 
196 
197 def _future_unary_unary(channel, group, method, timeout, protocol_options,
198  metadata, metadata_transformer, request,
199  request_serializer, response_deserializer):
200  multi_callable = channel.unary_unary(
201  _common.fully_qualified_method(group, method),
202  request_serializer=request_serializer,
203  response_deserializer=response_deserializer)
204  effective_metadata = _effective_metadata(metadata, metadata_transformer)
205  response_future = multi_callable.future(
206  request,
207  timeout=timeout,
208  metadata=_metadata.unbeta(effective_metadata),
209  credentials=_credentials(protocol_options))
210  return _Rendezvous(response_future, None, response_future)
211 
212 
213 def _unary_stream(channel, group, method, timeout, protocol_options, metadata,
214  metadata_transformer, request, request_serializer,
215  response_deserializer):
216  multi_callable = channel.unary_stream(
217  _common.fully_qualified_method(group, method),
218  request_serializer=request_serializer,
219  response_deserializer=response_deserializer)
220  effective_metadata = _effective_metadata(metadata, metadata_transformer)
221  response_iterator = multi_callable(
222  request,
223  timeout=timeout,
224  metadata=_metadata.unbeta(effective_metadata),
225  credentials=_credentials(protocol_options))
226  return _Rendezvous(None, response_iterator, response_iterator)
227 
228 
229 def _blocking_stream_unary(channel, group, method, timeout, with_call,
230  protocol_options, metadata, metadata_transformer,
231  request_iterator, request_serializer,
232  response_deserializer):
233  try:
234  multi_callable = channel.stream_unary(
235  _common.fully_qualified_method(group, method),
236  request_serializer=request_serializer,
237  response_deserializer=response_deserializer)
238  effective_metadata = _effective_metadata(metadata, metadata_transformer)
239  if with_call:
240  response, call = multi_callable.with_call(
241  request_iterator,
242  timeout=timeout,
243  metadata=_metadata.unbeta(effective_metadata),
244  credentials=_credentials(protocol_options))
245  return response, _Rendezvous(None, None, call)
246  else:
247  return multi_callable(request_iterator,
248  timeout=timeout,
249  metadata=_metadata.unbeta(effective_metadata),
250  credentials=_credentials(protocol_options))
251  except grpc.RpcError as rpc_error_call:
252  raise _abortion_error(rpc_error_call)
253 
254 
255 def _future_stream_unary(channel, group, method, timeout, protocol_options,
256  metadata, metadata_transformer, request_iterator,
257  request_serializer, response_deserializer):
258  multi_callable = channel.stream_unary(
259  _common.fully_qualified_method(group, method),
260  request_serializer=request_serializer,
261  response_deserializer=response_deserializer)
262  effective_metadata = _effective_metadata(metadata, metadata_transformer)
263  response_future = multi_callable.future(
264  request_iterator,
265  timeout=timeout,
266  metadata=_metadata.unbeta(effective_metadata),
267  credentials=_credentials(protocol_options))
268  return _Rendezvous(response_future, None, response_future)
269 
270 
271 def _stream_stream(channel, group, method, timeout, protocol_options, metadata,
272  metadata_transformer, request_iterator, request_serializer,
273  response_deserializer):
274  multi_callable = channel.stream_stream(
275  _common.fully_qualified_method(group, method),
276  request_serializer=request_serializer,
277  response_deserializer=response_deserializer)
278  effective_metadata = _effective_metadata(metadata, metadata_transformer)
279  response_iterator = multi_callable(
280  request_iterator,
281  timeout=timeout,
282  metadata=_metadata.unbeta(effective_metadata),
283  credentials=_credentials(protocol_options))
284  return _Rendezvous(None, response_iterator, response_iterator)
285 
286 
287 class _UnaryUnaryMultiCallable(face.UnaryUnaryMultiCallable):
288 
289  def __init__(self, channel, group, method, metadata_transformer,
290  request_serializer, response_deserializer):
291  self._channel = channel
292  self._group = group
293  self._method = method
294  self._metadata_transformer = metadata_transformer
295  self._request_serializer = request_serializer
296  self._response_deserializer = response_deserializer
297 
298  def __call__(self,
299  request,
300  timeout,
301  metadata=None,
302  with_call=False,
303  protocol_options=None):
304  return _blocking_unary_unary(self._channel, self._group, self._method,
305  timeout, with_call, protocol_options,
306  metadata, self._metadata_transformer,
307  request, self._request_serializer,
309 
310  def future(self, request, timeout, metadata=None, protocol_options=None):
311  return _future_unary_unary(self._channel, self._group, self._method,
312  timeout, protocol_options, metadata,
313  self._metadata_transformer, request,
314  self._request_serializer,
316 
317  def event(self,
318  request,
319  receiver,
320  abortion_callback,
321  timeout,
322  metadata=None,
323  protocol_options=None):
324  raise NotImplementedError()
325 
326 
327 class _UnaryStreamMultiCallable(face.UnaryStreamMultiCallable):
328 
329  def __init__(self, channel, group, method, metadata_transformer,
330  request_serializer, response_deserializer):
331  self._channel = channel
332  self._group = group
333  self._method = method
334  self._metadata_transformer = metadata_transformer
335  self._request_serializer = request_serializer
336  self._response_deserializer = response_deserializer
337 
338  def __call__(self, request, timeout, metadata=None, protocol_options=None):
339  return _unary_stream(self._channel, self._group, self._method, timeout,
340  protocol_options, metadata,
341  self._metadata_transformer, request,
342  self._request_serializer,
344 
345  def event(self,
346  request,
347  receiver,
348  abortion_callback,
349  timeout,
350  metadata=None,
351  protocol_options=None):
352  raise NotImplementedError()
353 
354 
355 class _StreamUnaryMultiCallable(face.StreamUnaryMultiCallable):
356 
357  def __init__(self, channel, group, method, metadata_transformer,
358  request_serializer, response_deserializer):
359  self._channel = channel
360  self._group = group
361  self._method = method
362  self._metadata_transformer = metadata_transformer
363  self._request_serializer = request_serializer
364  self._response_deserializer = response_deserializer
365 
366  def __call__(self,
367  request_iterator,
368  timeout,
369  metadata=None,
370  with_call=False,
371  protocol_options=None):
372  return _blocking_stream_unary(self._channel, self._group, self._method,
373  timeout, with_call, protocol_options,
374  metadata, self._metadata_transformer,
375  request_iterator,
376  self._request_serializer,
378 
379  def future(self,
380  request_iterator,
381  timeout,
382  metadata=None,
383  protocol_options=None):
384  return _future_stream_unary(self._channel, self._group, self._method,
385  timeout, protocol_options, metadata,
387  request_iterator, self._request_serializer,
389 
390  def event(self,
391  receiver,
392  abortion_callback,
393  timeout,
394  metadata=None,
395  protocol_options=None):
396  raise NotImplementedError()
397 
398 
399 class _StreamStreamMultiCallable(face.StreamStreamMultiCallable):
400 
401  def __init__(self, channel, group, method, metadata_transformer,
402  request_serializer, response_deserializer):
403  self._channel = channel
404  self._group = group
405  self._method = method
406  self._metadata_transformer = metadata_transformer
407  self._request_serializer = request_serializer
408  self._response_deserializer = response_deserializer
409 
410  def __call__(self,
411  request_iterator,
412  timeout,
413  metadata=None,
414  protocol_options=None):
415  return _stream_stream(self._channel, self._group, self._method, timeout,
416  protocol_options, metadata,
417  self._metadata_transformer, request_iterator,
418  self._request_serializer,
420 
421  def event(self,
422  receiver,
423  abortion_callback,
424  timeout,
425  metadata=None,
426  protocol_options=None):
427  raise NotImplementedError()
428 
429 
430 class _GenericStub(face.GenericStub):
431 
432  def __init__(self, channel, metadata_transformer, request_serializers,
433  response_deserializers):
434  self._channel = channel
435  self._metadata_transformer = metadata_transformer
436  self._request_serializers = request_serializers or {}
437  self._response_deserializers = response_deserializers or {}
438 
440  group,
441  method,
442  request,
443  timeout,
444  metadata=None,
445  with_call=None,
446  protocol_options=None):
447  request_serializer = self._request_serializers.get((
448  group,
449  method,
450  ))
451  response_deserializer = self._response_deserializers.get((
452  group,
453  method,
454  ))
455  return _blocking_unary_unary(self._channel, group, method, timeout,
456  with_call, protocol_options, metadata,
457  self._metadata_transformer, request,
458  request_serializer, response_deserializer)
459 
461  group,
462  method,
463  request,
464  timeout,
465  metadata=None,
466  protocol_options=None):
467  request_serializer = self._request_serializers.get((
468  group,
469  method,
470  ))
471  response_deserializer = self._response_deserializers.get((
472  group,
473  method,
474  ))
475  return _future_unary_unary(self._channel, group, method, timeout,
476  protocol_options, metadata,
477  self._metadata_transformer, request,
478  request_serializer, response_deserializer)
479 
481  group,
482  method,
483  request,
484  timeout,
485  metadata=None,
486  protocol_options=None):
487  request_serializer = self._request_serializers.get((
488  group,
489  method,
490  ))
491  response_deserializer = self._response_deserializers.get((
492  group,
493  method,
494  ))
495  return _unary_stream(self._channel, group, method, timeout,
496  protocol_options, metadata,
497  self._metadata_transformer, request,
498  request_serializer, response_deserializer)
499 
501  group,
502  method,
503  request_iterator,
504  timeout,
505  metadata=None,
506  with_call=None,
507  protocol_options=None):
508  request_serializer = self._request_serializers.get((
509  group,
510  method,
511  ))
512  response_deserializer = self._response_deserializers.get((
513  group,
514  method,
515  ))
516  return _blocking_stream_unary(self._channel, group, method, timeout,
517  with_call, protocol_options, metadata,
519  request_iterator, request_serializer,
520  response_deserializer)
521 
523  group,
524  method,
525  request_iterator,
526  timeout,
527  metadata=None,
528  protocol_options=None):
529  request_serializer = self._request_serializers.get((
530  group,
531  method,
532  ))
533  response_deserializer = self._response_deserializers.get((
534  group,
535  method,
536  ))
537  return _future_stream_unary(self._channel, group, method, timeout,
538  protocol_options, metadata,
540  request_iterator, request_serializer,
541  response_deserializer)
542 
544  group,
545  method,
546  request_iterator,
547  timeout,
548  metadata=None,
549  protocol_options=None):
550  request_serializer = self._request_serializers.get((
551  group,
552  method,
553  ))
554  response_deserializer = self._response_deserializers.get((
555  group,
556  method,
557  ))
558  return _stream_stream(self._channel, group, method, timeout,
559  protocol_options, metadata,
560  self._metadata_transformer, request_iterator,
561  request_serializer, response_deserializer)
562 
564  group,
565  method,
566  request,
567  receiver,
568  abortion_callback,
569  timeout,
570  metadata=None,
571  protocol_options=None):
572  raise NotImplementedError()
573 
575  group,
576  method,
577  request,
578  receiver,
579  abortion_callback,
580  timeout,
581  metadata=None,
582  protocol_options=None):
583  raise NotImplementedError()
584 
586  group,
587  method,
588  receiver,
589  abortion_callback,
590  timeout,
591  metadata=None,
592  protocol_options=None):
593  raise NotImplementedError()
594 
596  group,
597  method,
598  receiver,
599  abortion_callback,
600  timeout,
601  metadata=None,
602  protocol_options=None):
603  raise NotImplementedError()
604 
605  def unary_unary(self, group, method):
606  request_serializer = self._request_serializers.get((
607  group,
608  method,
609  ))
610  response_deserializer = self._response_deserializers.get((
611  group,
612  method,
613  ))
614  return _UnaryUnaryMultiCallable(self._channel, group, method,
616  request_serializer,
617  response_deserializer)
618 
619  def unary_stream(self, group, method):
620  request_serializer = self._request_serializers.get((
621  group,
622  method,
623  ))
624  response_deserializer = self._response_deserializers.get((
625  group,
626  method,
627  ))
628  return _UnaryStreamMultiCallable(self._channel, group, method,
630  request_serializer,
631  response_deserializer)
632 
633  def stream_unary(self, group, method):
634  request_serializer = self._request_serializers.get((
635  group,
636  method,
637  ))
638  response_deserializer = self._response_deserializers.get((
639  group,
640  method,
641  ))
642  return _StreamUnaryMultiCallable(self._channel, group, method,
644  request_serializer,
645  response_deserializer)
646 
647  def stream_stream(self, group, method):
648  request_serializer = self._request_serializers.get((
649  group,
650  method,
651  ))
652  response_deserializer = self._response_deserializers.get((
653  group,
654  method,
655  ))
656  return _StreamStreamMultiCallable(self._channel, group, method,
658  request_serializer,
659  response_deserializer)
660 
661  def __enter__(self):
662  return self
663 
664  def __exit__(self, exc_type, exc_val, exc_tb):
665  return False
666 
667 
668 class _DynamicStub(face.DynamicStub):
669 
670  def __init__(self, backing_generic_stub, group, cardinalities):
671  self._generic_stub = backing_generic_stub
672  self._group = group
673  self._cardinalities = cardinalities
674 
675  def __getattr__(self, attr):
676  method_cardinality = self._cardinalities.get(attr)
677  if method_cardinality is cardinality.Cardinality.UNARY_UNARY:
678  return self._generic_stub.unary_unary(self._group, attr)
679  elif method_cardinality is cardinality.Cardinality.UNARY_STREAM:
680  return self._generic_stub.unary_stream(self._group, attr)
681  elif method_cardinality is cardinality.Cardinality.STREAM_UNARY:
682  return self._generic_stub.stream_unary(self._group, attr)
683  elif method_cardinality is cardinality.Cardinality.STREAM_STREAM:
684  return self._generic_stub.stream_stream(self._group, attr)
685  else:
686  raise AttributeError('_DynamicStub object has no attribute "%s"!' %
687  attr)
688 
689  def __enter__(self):
690  return self
691 
692  def __exit__(self, exc_type, exc_val, exc_tb):
693  return False
694 
695 
696 def generic_stub(channel, host, metadata_transformer, request_serializers,
697  response_deserializers):
698  return _GenericStub(channel, metadata_transformer, request_serializers,
699  response_deserializers)
700 
701 
702 def dynamic_stub(channel, service, cardinalities, host, metadata_transformer,
703  request_serializers, response_deserializers):
704  return _DynamicStub(
705  _GenericStub(channel, metadata_transformer, request_serializers,
706  response_deserializers), service, cardinalities)
grpc.beta._client_adaptations._UnaryStreamMultiCallable._group
_group
Definition: _client_adaptations.py:331
grpc.beta._client_adaptations._Rendezvous.add_done_callback
def add_done_callback(self, fn)
Definition: _client_adaptations.py:123
grpc.beta._client_adaptations._UnaryUnaryMultiCallable._request_serializer
_request_serializer
Definition: _client_adaptations.py:294
grpc.beta._client_adaptations._StreamStreamMultiCallable.__init__
def __init__(self, channel, group, method, metadata_transformer, request_serializer, response_deserializer)
Definition: _client_adaptations.py:401
grpc.beta._client_adaptations._StreamStreamMultiCallable._request_serializer
_request_serializer
Definition: _client_adaptations.py:406
grpc.beta._client_adaptations._DynamicStub.__getattr__
def __getattr__(self, attr)
Definition: _client_adaptations.py:675
grpc.beta._client_adaptations._DynamicStub._generic_stub
_generic_stub
Definition: _client_adaptations.py:671
grpc.beta._client_adaptations._GenericStub.inline_stream_stream
def inline_stream_stream(self, group, method, request_iterator, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:543
grpc.beta._client_adaptations._DynamicStub.__enter__
def __enter__(self)
Definition: _client_adaptations.py:689
grpc.beta._client_adaptations._DynamicStub._group
_group
Definition: _client_adaptations.py:672
grpc.beta._client_adaptations._UnaryUnaryMultiCallable._metadata_transformer
_metadata_transformer
Definition: _client_adaptations.py:293
grpc.beta._client_adaptations._GenericStub.future_unary_unary
def future_unary_unary(self, group, method, request, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:460
grpc.beta._client_adaptations._Rendezvous._future
_future
Definition: _client_adaptations.py:77
grpc.beta._client_adaptations._StreamUnaryMultiCallable._channel
_channel
Definition: _client_adaptations.py:358
grpc.beta._client_adaptations._GenericStub.event_unary_stream
def event_unary_stream(self, group, method, request, receiver, abortion_callback, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:574
grpc.beta._client_adaptations._Rendezvous.__next__
def __next__(self)
Definition: _client_adaptations.py:135
get
absl::string_view get(const Cont &c)
Definition: abseil-cpp/absl/strings/str_replace_test.cc:185
grpc.beta._client_adaptations._Rendezvous.exception
def exception(self, timeout=None)
Definition: _client_adaptations.py:103
grpc.framework.foundation
Definition: src/python/grpcio/grpc/framework/foundation/__init__.py:1
grpc.beta._client_adaptations._StreamStreamMultiCallable
Definition: _client_adaptations.py:399
grpc.beta._client_adaptations._Rendezvous.__init__
def __init__(self, response_future, response_iterator, call)
Definition: _client_adaptations.py:76
grpc.beta._client_adaptations._GenericStub.future_stream_unary
def future_stream_unary(self, group, method, request_iterator, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:522
grpc.framework.interfaces.face
Definition: src/python/grpcio/grpc/framework/interfaces/face/__init__.py:1
grpc.beta
Definition: src/python/grpcio/grpc/beta/__init__.py:1
grpc.FutureCancelledError
Definition: src/python/grpcio/grpc/__init__.py:44
grpc.beta._client_adaptations._DynamicStub.__init__
def __init__(self, backing_generic_stub, group, cardinalities)
Definition: _client_adaptations.py:670
grpc.beta._client_adaptations._UnaryStreamMultiCallable._metadata_transformer
_metadata_transformer
Definition: _client_adaptations.py:333
grpc.beta._client_adaptations._StreamUnaryMultiCallable._group
_group
Definition: _client_adaptations.py:359
grpc.beta._client_adaptations._StreamStreamMultiCallable.__call__
def __call__(self, request_iterator, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:410
grpc._simple_stubs.unary_stream
Iterator[ResponseType] unary_stream(RequestType request, str target, str method, Optional[Callable[[Any], bytes]] request_serializer=None, Optional[Callable[[bytes], Any]] response_deserializer=None, Sequence[Tuple[AnyStr, AnyStr]] options=(), Optional[grpc.ChannelCredentials] channel_credentials=None, bool insecure=False, Optional[grpc.CallCredentials] call_credentials=None, Optional[grpc.Compression] compression=None, Optional[bool] wait_for_ready=None, Optional[float] timeout=_DEFAULT_TIMEOUT, Optional[Sequence[Tuple[str, Union[str, bytes]]]] metadata=None)
Definition: _simple_stubs.py:250
grpc.beta._client_adaptations._GenericStub.event_unary_unary
def event_unary_unary(self, group, method, request, receiver, abortion_callback, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:563
grpc.beta._client_adaptations._UnaryStreamMultiCallable._response_deserializer
_response_deserializer
Definition: _client_adaptations.py:335
grpc.beta._client_adaptations._Rendezvous.initial_metadata
def initial_metadata(self)
Definition: _client_adaptations.py:159
grpc.beta._client_adaptations._blocking_unary_unary
def _blocking_unary_unary(channel, group, method, timeout, with_call, protocol_options, metadata, metadata_transformer, request, request_serializer, response_deserializer)
Definition: _client_adaptations.py:172
grpc.beta._client_adaptations._DynamicStub.__exit__
def __exit__(self, exc_type, exc_val, exc_tb)
Definition: _client_adaptations.py:692
grpc.RpcError
Definition: src/python/grpcio/grpc/__init__.py:302
grpc.beta._client_adaptations._UnaryStreamMultiCallable.__init__
def __init__(self, channel, group, method, metadata_transformer, request_serializer, response_deserializer)
Definition: _client_adaptations.py:329
grpc.beta._client_adaptations._UnaryUnaryMultiCallable._group
_group
Definition: _client_adaptations.py:291
grpc.beta._client_adaptations._GenericStub._channel
_channel
Definition: _client_adaptations.py:433
grpc.beta._client_adaptations._Rendezvous._next
def _next(self)
Definition: _client_adaptations.py:129
grpc.beta.interfaces.GRPCInvocationContext
Definition: interfaces.py:79
grpc.beta._client_adaptations._future_stream_unary
def _future_stream_unary(channel, group, method, timeout, protocol_options, metadata, metadata_transformer, request_iterator, request_serializer, response_deserializer)
Definition: _client_adaptations.py:255
grpc.beta._client_adaptations._StreamStreamMultiCallable._method
_method
Definition: _client_adaptations.py:404
grpc.beta._client_adaptations._UnaryUnaryMultiCallable._channel
_channel
Definition: _client_adaptations.py:290
grpc.beta._client_adaptations._UnaryUnaryMultiCallable.future
def future(self, request, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:310
grpc.framework.common
Definition: src/python/grpcio/grpc/framework/common/__init__.py:1
grpc.beta._client_adaptations._abortion_error
def _abortion_error(rpc_error_call)
Definition: _client_adaptations.py:59
grpc.beta._client_adaptations._GenericStub.unary_unary
def unary_unary(self, group, method)
Definition: _client_adaptations.py:605
grpc.beta._client_adaptations._GenericStub.__exit__
def __exit__(self, exc_type, exc_val, exc_tb)
Definition: _client_adaptations.py:664
grpc.beta._client_adaptations._blocking_stream_unary
def _blocking_stream_unary(channel, group, method, timeout, with_call, protocol_options, metadata, metadata_transformer, request_iterator, request_serializer, response_deserializer)
Definition: _client_adaptations.py:229
grpc.beta._client_adaptations._StreamUnaryMultiCallable._metadata_transformer
_metadata_transformer
Definition: _client_adaptations.py:361
grpc.beta._client_adaptations.dynamic_stub
def dynamic_stub(channel, service, cardinalities, host, metadata_transformer, request_serializers, response_deserializers)
Definition: _client_adaptations.py:702
grpc.beta._client_adaptations._Rendezvous.cancelled
def cancelled(self)
Definition: _client_adaptations.py:84
tests.unit._exit_scenarios.multi_callable
multi_callable
Definition: _exit_scenarios.py:216
grpc.beta._client_adaptations._DynamicStub._cardinalities
_cardinalities
Definition: _client_adaptations.py:673
grpc.beta._client_adaptations._StreamStreamMultiCallable._group
_group
Definition: _client_adaptations.py:403
grpc.beta._client_adaptations._GenericStub.__init__
def __init__(self, channel, metadata_transformer, request_serializers, response_deserializers)
Definition: _client_adaptations.py:432
generate-asm-lcov.fn
fn
Definition: generate-asm-lcov.py:146
grpc.beta._client_adaptations._StreamUnaryMultiCallable._method
_method
Definition: _client_adaptations.py:360
grpc.beta._client_adaptations._unary_stream
def _unary_stream(channel, group, method, timeout, protocol_options, metadata, metadata_transformer, request, request_serializer, response_deserializer)
Definition: _client_adaptations.py:213
grpc.beta._client_adaptations._StreamUnaryMultiCallable
Definition: _client_adaptations.py:355
grpc.beta._client_adaptations._GenericStub.event_stream_stream
def event_stream_stream(self, group, method, receiver, abortion_callback, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:595
grpc._simple_stubs.stream_stream
Iterator[ResponseType] stream_stream(Iterator[RequestType] request_iterator, str target, str method, Optional[Callable[[Any], bytes]] request_serializer=None, Optional[Callable[[bytes], Any]] response_deserializer=None, Sequence[Tuple[AnyStr, AnyStr]] options=(), Optional[grpc.ChannelCredentials] channel_credentials=None, bool insecure=False, Optional[grpc.CallCredentials] call_credentials=None, Optional[grpc.Compression] compression=None, Optional[bool] wait_for_ready=None, Optional[float] timeout=_DEFAULT_TIMEOUT, Optional[Sequence[Tuple[str, Union[str, bytes]]]] metadata=None)
Definition: _simple_stubs.py:410
grpc.beta._client_adaptations._GenericStub.inline_unary_stream
def inline_unary_stream(self, group, method, request, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:480
grpc.beta._client_adaptations._GenericStub.stream_stream
def stream_stream(self, group, method)
Definition: _client_adaptations.py:647
grpc.beta._client_adaptations._StreamUnaryMultiCallable.future
def future(self, request_iterator, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:379
grpc.beta._client_adaptations._InvocationProtocolContext
Definition: _client_adaptations.py:68
grpc.beta._client_adaptations._GenericStub._response_deserializers
_response_deserializers
Definition: _client_adaptations.py:436
grpc.beta._client_adaptations._UnaryStreamMultiCallable.event
def event(self, request, receiver, abortion_callback, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:345
grpc.beta._client_adaptations._Rendezvous.done
def done(self)
Definition: _client_adaptations.py:90
grpc.beta._client_adaptations._stream_stream
def _stream_stream(channel, group, method, timeout, protocol_options, metadata, metadata_transformer, request_iterator, request_serializer, response_deserializer)
Definition: _client_adaptations.py:271
grpc.beta._client_adaptations._GenericStub._metadata_transformer
_metadata_transformer
Definition: _client_adaptations.py:434
grpc.beta._client_adaptations._UnaryUnaryMultiCallable.__init__
def __init__(self, channel, group, method, metadata_transformer, request_serializer, response_deserializer)
Definition: _client_adaptations.py:289
grpc.beta._client_adaptations._StreamUnaryMultiCallable._request_serializer
_request_serializer
Definition: _client_adaptations.py:362
grpc.beta._client_adaptations._StreamStreamMultiCallable._response_deserializer
_response_deserializer
Definition: _client_adaptations.py:407
grpc.beta._client_adaptations._Rendezvous.running
def running(self)
Definition: _client_adaptations.py:87
grpc._simple_stubs.stream_unary
ResponseType stream_unary(Iterator[RequestType] request_iterator, str target, str method, Optional[Callable[[Any], bytes]] request_serializer=None, Optional[Callable[[bytes], Any]] response_deserializer=None, Sequence[Tuple[AnyStr, AnyStr]] options=(), Optional[grpc.ChannelCredentials] channel_credentials=None, bool insecure=False, Optional[grpc.CallCredentials] call_credentials=None, Optional[grpc.Compression] compression=None, Optional[bool] wait_for_ready=None, Optional[float] timeout=_DEFAULT_TIMEOUT, Optional[Sequence[Tuple[str, Union[str, bytes]]]] metadata=None)
Definition: _simple_stubs.py:330
grpc.beta._client_adaptations._DynamicStub
Definition: _client_adaptations.py:668
grpc.beta._client_adaptations._GenericStub.event_stream_unary
def event_stream_unary(self, group, method, receiver, abortion_callback, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:585
grpc.beta._client_adaptations._StreamUnaryMultiCallable.__call__
def __call__(self, request_iterator, timeout, metadata=None, with_call=False, protocol_options=None)
Definition: _client_adaptations.py:366
grpc._simple_stubs.unary_unary
ResponseType unary_unary(RequestType request, str target, str method, Optional[Callable[[Any], bytes]] request_serializer=None, Optional[Callable[[bytes], Any]] response_deserializer=None, Sequence[Tuple[AnyStr, AnyStr]] options=(), Optional[grpc.ChannelCredentials] channel_credentials=None, bool insecure=False, Optional[grpc.CallCredentials] call_credentials=None, Optional[grpc.Compression] compression=None, Optional[bool] wait_for_ready=None, Optional[float] timeout=_DEFAULT_TIMEOUT, Optional[Sequence[Tuple[str, Union[str, bytes]]]] metadata=None)
Definition: _simple_stubs.py:169
grpc.beta._client_adaptations._GenericStub.blocking_unary_unary
def blocking_unary_unary(self, group, method, request, timeout, metadata=None, with_call=None, protocol_options=None)
Definition: _client_adaptations.py:439
grpc.beta._client_adaptations._UnaryStreamMultiCallable._channel
_channel
Definition: _client_adaptations.py:330
grpc.beta._client_adaptations._UnaryUnaryMultiCallable.__call__
def __call__(self, request, timeout, metadata=None, with_call=False, protocol_options=None)
Definition: _client_adaptations.py:298
grpc.beta._client_adaptations._future_unary_unary
def _future_unary_unary(channel, group, method, timeout, protocol_options, metadata, metadata_transformer, request, request_serializer, response_deserializer)
Definition: _client_adaptations.py:197
grpc.FutureTimeoutError
Future Interface ###############################.
Definition: src/python/grpcio/grpc/__init__.py:40
grpc.beta._client_adaptations._StreamStreamMultiCallable.event
def event(self, receiver, abortion_callback, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:421
grpc.beta._client_adaptations._StreamUnaryMultiCallable._response_deserializer
_response_deserializer
Definition: _client_adaptations.py:363
grpc.beta._client_adaptations._credentials
def _credentials(grpc_call_options)
Definition: _client_adaptations.py:46
grpc.beta._client_adaptations._Rendezvous.traceback
def traceback(self, timeout=None)
Definition: _client_adaptations.py:115
grpc.beta._client_adaptations._StreamUnaryMultiCallable.event
def event(self, receiver, abortion_callback, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:390
grpc.beta._client_adaptations._UnaryUnaryMultiCallable._method
_method
Definition: _client_adaptations.py:292
grpc.beta._client_adaptations._InvocationProtocolContext.disable_next_request_compression
def disable_next_request_compression(self)
Definition: _client_adaptations.py:70
grpc.beta._client_adaptations._Rendezvous.result
def result(self, timeout=None)
Definition: _client_adaptations.py:93
grpc.beta._client_adaptations._Rendezvous._call
_call
Definition: _client_adaptations.py:79
grpc.beta._client_adaptations._abortion
def _abortion(rpc_error_call)
Definition: _client_adaptations.py:50
grpc.beta._client_adaptations._GenericStub.blocking_stream_unary
def blocking_stream_unary(self, group, method, request_iterator, timeout, metadata=None, with_call=None, protocol_options=None)
Definition: _client_adaptations.py:500
grpc.beta._client_adaptations._StreamStreamMultiCallable._metadata_transformer
_metadata_transformer
Definition: _client_adaptations.py:405
_credentials
Definition: _credentials.py:1
grpc.beta._client_adaptations._Rendezvous.__iter__
def __iter__(self)
Definition: _client_adaptations.py:126
grpc.beta._client_adaptations._Rendezvous.cancel
def cancel(self)
Definition: _client_adaptations.py:81
grpc.beta._client_adaptations._Rendezvous.code
def code(self)
Definition: _client_adaptations.py:165
grpc.beta._client_adaptations._Rendezvous.time_remaining
def time_remaining(self)
Definition: _client_adaptations.py:144
grpc.beta._client_adaptations._UnaryStreamMultiCallable
Definition: _client_adaptations.py:327
grpc.beta._client_adaptations._UnaryUnaryMultiCallable
Definition: _client_adaptations.py:287
grpc.beta._client_adaptations._Rendezvous.terminal_metadata
def terminal_metadata(self)
Definition: _client_adaptations.py:162
grpc.beta._client_adaptations._StreamUnaryMultiCallable.__init__
def __init__(self, channel, group, method, metadata_transformer, request_serializer, response_deserializer)
Definition: _client_adaptations.py:357
grpc.beta._client_adaptations._Rendezvous.add_abortion_callback
def add_abortion_callback(self, abortion_callback)
Definition: _client_adaptations.py:147
grpc.beta._client_adaptations._effective_metadata
def _effective_metadata(metadata, metadata_transformer)
Definition: _client_adaptations.py:38
grpc.beta._client_adaptations._GenericStub._request_serializers
_request_serializers
Definition: _client_adaptations.py:435
grpc.beta._client_adaptations._Rendezvous
Definition: _client_adaptations.py:74
code
Definition: bloaty/third_party/zlib/contrib/infback9/inftree9.h:24
grpc.beta._client_adaptations.generic_stub
def generic_stub(channel, host, metadata_transformer, request_serializers, response_deserializers)
Definition: _client_adaptations.py:696
grpc.beta._client_adaptations._Rendezvous.details
def details(self)
Definition: _client_adaptations.py:168
grpc.beta._client_adaptations._GenericStub.__enter__
def __enter__(self)
Definition: _client_adaptations.py:661
grpc.beta._client_adaptations._Rendezvous.next
def next(self)
Definition: _client_adaptations.py:138
grpc.beta._client_adaptations._GenericStub
Definition: _client_adaptations.py:430
grpc.beta._client_adaptations._GenericStub.stream_unary
def stream_unary(self, group, method)
Definition: _client_adaptations.py:633
grpc.beta._client_adaptations._Rendezvous.is_active
def is_active(self)
Definition: _client_adaptations.py:141
grpc.beta._client_adaptations._Rendezvous.protocol_context
def protocol_context(self)
Definition: _client_adaptations.py:156
grpc.beta._client_adaptations._UnaryStreamMultiCallable._request_serializer
_request_serializer
Definition: _client_adaptations.py:334
grpc.beta._client_adaptations._StreamStreamMultiCallable._channel
_channel
Definition: _client_adaptations.py:402
grpc.beta._client_adaptations._UnaryUnaryMultiCallable.event
def event(self, request, receiver, abortion_callback, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:317
grpc.beta._client_adaptations._GenericStub.unary_stream
def unary_stream(self, group, method)
Definition: _client_adaptations.py:619
grpc.beta._client_adaptations._UnaryStreamMultiCallable._method
_method
Definition: _client_adaptations.py:332
grpc.beta._client_adaptations._UnaryUnaryMultiCallable._response_deserializer
_response_deserializer
Definition: _client_adaptations.py:295
grpc.beta._client_adaptations._UnaryStreamMultiCallable.__call__
def __call__(self, request, timeout, metadata=None, protocol_options=None)
Definition: _client_adaptations.py:338
grpc.beta._client_adaptations._Rendezvous._iterator
_iterator
Definition: _client_adaptations.py:78


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:27