Coverage for src/lexigram/web/interceptors/__init__.py: 100%
10 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 04:37 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 04:37 +0800
1"""Interceptor system for Lexigram Web.
3Two interception models are available:
5- **HTTP Pipeline** (``interceptors.pipeline``): For HTTP request/response interception.
6- **AOP Proxy** (``interceptors.aop``): For general-purpose method interception.
7"""
9from __future__ import annotations
11from lexigram.di.extensions.aop_interceptors import (
12 InterceptorTimeoutError,
13 MethodInterceptorProtocol,
14 MethodInterceptorRegistry,
15 MethodInterceptorRegistryManager,
16)
17from lexigram.web.interceptors.builtin.cache import CacheInterceptor
19# Built-in interceptors
20from lexigram.web.interceptors.builtin.logging import LoggingInterceptor
21from lexigram.web.interceptors.builtin.timing import HandlerTimingInterceptor
22from lexigram.web.interceptors.builtin.transform import TransformInterceptor
23from lexigram.web.interceptors.pipeline import InterceptorPipeline
24from lexigram.web.protocols import (
25 CallHandlerProtocol,
26 ExecutionContextProtocol,
27 WebInterceptorBase,
28 WebInterceptorProtocol,
29)
30from lexigram.web.routing.execution_context import (
31 WebExecutionContext,
32)
34__all__ = [
35 "CacheInterceptor",
36 # Protocols
37 "CallHandlerProtocol",
38 "ExecutionContextProtocol",
39 "HandlerTimingInterceptor",
40 # Pipeline
41 "InterceptorPipeline",
42 # Timeout
43 "InterceptorTimeoutError",
44 # Built-in interceptors
45 "LoggingInterceptor",
46 # AOP
47 "MethodInterceptorProtocol",
48 "MethodInterceptorRegistry",
49 "MethodInterceptorRegistryManager",
50 "TransformInterceptor",
51 # Context
52 "WebExecutionContext",
53 "WebInterceptorBase",
54 "WebInterceptorProtocol",
55]