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

1"""Interceptor system for Lexigram Web. 

2 

3Two interception models are available: 

4 

5- **HTTP Pipeline** (``interceptors.pipeline``): For HTTP request/response interception. 

6- **AOP Proxy** (``interceptors.aop``): For general-purpose method interception. 

7""" 

8 

9from __future__ import annotations 

10 

11from lexigram.di.extensions.aop_interceptors import ( 

12 InterceptorTimeoutError, 

13 MethodInterceptorProtocol, 

14 MethodInterceptorRegistry, 

15 MethodInterceptorRegistryManager, 

16) 

17from lexigram.web.interceptors.builtin.cache import CacheInterceptor 

18 

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) 

33 

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]