1# Copyright 2019 The 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"""Common types for gRPC Async API""" 15 16from typing import ( 17 Any, 18 AsyncIterable, 19 Callable, 20 Iterable, 21 Sequence, 22 Tuple, 23 TypeVar, 24 Union, 25) 26 27from grpc._cython.cygrpc import EOF 28 29from ._metadata import Metadata 30from ._metadata import MetadataKey 31from ._metadata import MetadataValue 32 33RequestType = TypeVar("RequestType") 34ResponseType = TypeVar("ResponseType") 35SerializingFunction = Callable[[Any], bytes] 36DeserializingFunction = Callable[[bytes], Any] 37MetadatumType = Tuple[MetadataKey, MetadataValue] 38MetadataType = Union[Metadata, Sequence[MetadatumType]] 39ChannelArgumentType = Sequence[Tuple[str, Any]] 40EOFType = type(EOF) 41DoneCallbackType = Callable[[Any], None] 42RequestIterableType = Union[Iterable[Any], AsyncIterable[Any]] 43ResponseIterableType = AsyncIterable[Any] 44