Source code for grappa_http.adapters

from .base import BaseAdapter
from .aiohttp import AioHttpAdapter
from .requests import RequestsAdapter

# Module symbols to export
__all__ = (
    'adapters', 'match', 'use_adapter',
    'BaseAdapter', 'RequestsAdapter', 'AioHttpAdapter',
)


# List of supported HTTP adapters
adapters = (
    AioHttpAdapter,
    RequestsAdapter
)


[docs]def match(res): """ Match adapter based on response object using type inference. Arguments: res (mixed): HTTP client specific response object to infer. Returns: grappa_http.adapters.BaseAdapter """ for adapter in adapters: if adapter.test(res): return adapter
[docs]def use_adapter(*_adapters): """ Adds one or multiple custom HTTP client adapters for testing introspection. Arguments: *adapters (grappa_http.BaseAdapter): adapter or adapters to use. """ for adapter in _adapters: if not issubclass(adapter, BaseAdapter): raise TypeError('adapter must inherit from ' 'grappa_http.BaseAdapter') global adapters adapters = _adapters + adapters