1# -*- coding: utf-8 -*- 
    2# Copyright 2020 Google LLC 
    3# 
    4# Licensed under the Apache License, Version 2.0 (the "License"); 
    5# you may not use this file except in compliance with the License. 
    6# You may obtain a copy of the License at 
    7# 
    8#     http://www.apache.org/licenses/LICENSE-2.0 
    9# 
    10# Unless required by applicable law or agreed to in writing, software 
    11# distributed under the License is distributed on an "AS IS" BASIS, 
    12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
    13# See the License for the specific language governing permissions and 
    14# limitations under the License. 
    15# 
    16from collections import OrderedDict 
    17from typing import cast, Dict, Tuple 
    18 
    19from .base import OperationsTransport 
    20from .rest import OperationsRestTransport 
    21 
    22# Compile a registry of transports. 
    23_transport_registry: Dict[str, OperationsTransport] = OrderedDict() 
    24_transport_registry["rest"] = cast(OperationsTransport, OperationsRestTransport) 
    25 
    26__all__: Tuple[str, ...] = ("OperationsTransport", "OperationsRestTransport") 
    27 
    28try: 
    29    from .rest_asyncio import AsyncOperationsRestTransport 
    30 
    31    __all__ += ("AsyncOperationsRestTransport",) 
    32    _transport_registry["rest_asyncio"] = cast( 
    33        OperationsTransport, AsyncOperationsRestTransport 
    34    ) 
    35except ImportError: 
    36    # This import requires the `async_rest` extra. 
    37    # Don't raise an exception if `AsyncOperationsRestTransport` cannot be imported 
    38    # as other transports are still available. 
    39    pass