Source code for pook.interceptors

from .urllib3 import Urllib3Interceptor
from .http import HTTPClientInterceptor
from .base import BaseInterceptor

# Explicit symbols to export
__all__ = (
    "interceptors",
    "add",
    "get",
    "BaseInterceptor",
    "Urllib3Interceptor",
    "HTTPClientInterceptor",
    "HttpxInterceptor",
    "AIOHTTPInterceptor",
)

# Store built-in interceptors in pook.
interceptors = [Urllib3Interceptor, HTTPClientInterceptor]

try:
    import aiohttp  # noqa
    from .aiohttp import AIOHTTPInterceptor

    interceptors.append(AIOHTTPInterceptor)
except ImportError:
    pass

try:
    import httpx  # noqa
    from ._httpx import HttpxInterceptor

    interceptors.append(HttpxInterceptor)
except ImportError:
    pass


[docs] def add(*custom_interceptors): """ Registers a new HTTP client interceptor. Arguments: *custom_interceptors (interceptor): interceptor(s) to be added. """ interceptors.append(*custom_interceptors)
[docs] def get(name): """ Returns an interceptor by class name. Arguments: name (str): interceptor class name or alias. Returns: interceptor: found interceptor instance, otherwise ``None``. """ for interceptor in interceptors: if interceptor.__name__ == name: return interceptor