diff options
author | nkozlovskiy <nmk@ydb.tech> | 2023-09-29 12:24:06 +0300 |
---|---|---|
committer | nkozlovskiy <nmk@ydb.tech> | 2023-09-29 12:41:34 +0300 |
commit | e0e3e1717e3d33762ce61950504f9637a6e669ed (patch) | |
tree | bca3ff6939b10ed60c3d5c12439963a1146b9711 /contrib/python/grpcio/py2/grpc/framework/interfaces/base/utilities.py | |
parent | 38f2c5852db84c7b4d83adfcb009eb61541d1ccd (diff) | |
download | ydb-e0e3e1717e3d33762ce61950504f9637a6e669ed.tar.gz |
add ydb deps
Diffstat (limited to 'contrib/python/grpcio/py2/grpc/framework/interfaces/base/utilities.py')
-rw-r--r-- | contrib/python/grpcio/py2/grpc/framework/interfaces/base/utilities.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/contrib/python/grpcio/py2/grpc/framework/interfaces/base/utilities.py b/contrib/python/grpcio/py2/grpc/framework/interfaces/base/utilities.py new file mode 100644 index 00000000000..281db62b5d4 --- /dev/null +++ b/contrib/python/grpcio/py2/grpc/framework/interfaces/base/utilities.py @@ -0,0 +1,71 @@ +# Copyright 2015 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Utilities for use with the base interface of RPC Framework.""" + +import collections + +from grpc.framework.interfaces.base import base + + +class _Completion(base.Completion, + collections.namedtuple('_Completion', ( + 'terminal_metadata', + 'code', + 'message', + ))): + """A trivial implementation of base.Completion.""" + + +class _Subscription(base.Subscription, + collections.namedtuple('_Subscription', ( + 'kind', + 'termination_callback', + 'allowance', + 'operator', + 'protocol_receiver', + ))): + """A trivial implementation of base.Subscription.""" + + +_NONE_SUBSCRIPTION = _Subscription(base.Subscription.Kind.NONE, None, None, + None, None) + + +def completion(terminal_metadata, code, message): + """Creates a base.Completion aggregating the given operation values. + + Args: + terminal_metadata: A terminal metadata value for an operaton. + code: A code value for an operation. + message: A message value for an operation. + + Returns: + A base.Completion aggregating the given operation values. + """ + return _Completion(terminal_metadata, code, message) + + +def full_subscription(operator, protocol_receiver): + """Creates a "full" base.Subscription for the given base.Operator. + + Args: + operator: A base.Operator to be used in an operation. + protocol_receiver: A base.ProtocolReceiver to be used in an operation. + + Returns: + A base.Subscription of kind base.Subscription.Kind.FULL wrapping the given + base.Operator and base.ProtocolReceiver. + """ + return _Subscription(base.Subscription.Kind.FULL, None, None, operator, + protocol_receiver) |