Coverage for src / lexigram / contracts / web / __init__.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-08-19 05:41 +0800

1"""Web framework protocols. 

2 

3Protocols for middleware and exception handling. 

4""" 

5 

6from __future__ import annotations 

7 

8from lexigram.contracts.core.middleware import ( 

9 ExceptionFilterChainProtocol, 

10 Middleware, 

11 MiddlewarePipelineProtocol, 

12 MiddlewareProtocol, 

13) 

14from lexigram.contracts.web.controller import ControllerProtocol 

15from lexigram.contracts.web.execution_context import ExecutionContextProtocol 

16from lexigram.contracts.web.guard import GuardProtocol 

17from lexigram.contracts.web.http_constants import ( 

18 CONTENT_TYPE_BYTES, 

19 CONTENT_TYPE_FORM, 

20 CONTENT_TYPE_HTML, 

21 CONTENT_TYPE_JSON, 

22 CONTENT_TYPE_MULTIPART, 

23 CONTENT_TYPE_TEXT, 

24 DEFAULT_ENCODING, 

25 DELETE, 

26 GET, 

27 HEAD, 

28 HEADER_ACCEPT, 

29 HEADER_AUTHORIZATION, 

30 HEADER_CONTENT_TYPE, 

31 HEADER_USER_AGENT, 

32 HEADER_X_REQUEST_ID, 

33 OPTIONS, 

34 PATCH, 

35 POST, 

36 PUT, 

37) 

38from lexigram.contracts.web.http_models import HttpResponse, HttpStatusError 

39from lexigram.contracts.web.http_protocols import ( 

40 ConnectMetricsCollectorProtocol, 

41 HTTPClientProtocol, 

42 HTTPSessionProtocol, 

43 InterceptorChainProtocol, 

44 InterceptorProtocol, 

45 SelectorProtocol, 

46 ServiceMeshRegistryProtocol, 

47 WebSocketProtocol, 

48) 

49from lexigram.contracts.web.http_types import ServiceInfo 

50from lexigram.contracts.web.protocols import ( 

51 BackgroundTaskRunnerProtocol, 

52 CORSPolicyProtocol, 

53 CSRFProtectionProtocol, 

54 ExceptionFilterProtocol, 

55 HTTPApplicationProtocol, 

56 HttpRequestLoggerProtocol, 

57 RequestProtocol, 

58 ResponseFactoryProtocol, 

59 ResponseProtocol, 

60 WebContributorProtocol, 

61 WebMiddlewareProtocol, 

62 WebProviderProtocol, 

63 WebRateLimiterProtocol, 

64) 

65from lexigram.contracts.web.routing import delete, get, patch, post, put 

66from lexigram.contracts.web.sse import ServerSentEvent, SseResponseFactoryProtocol 

67from lexigram.contracts.web.types import ( 

68 ErrorDetail, 

69 ErrorResponseDTO, 

70 PaginatedResponseDTO, 

71) 

72 

73__all__ = [ 

74 "CONTENT_TYPE_BYTES", 

75 "CONTENT_TYPE_FORM", 

76 "CONTENT_TYPE_HTML", 

77 "CONTENT_TYPE_JSON", 

78 "CONTENT_TYPE_MULTIPART", 

79 "CONTENT_TYPE_TEXT", 

80 "DEFAULT_ENCODING", 

81 "DELETE", 

82 "GET", 

83 "HEAD", 

84 "HEADER_ACCEPT", 

85 "HEADER_AUTHORIZATION", 

86 "HEADER_CONTENT_TYPE", 

87 "HEADER_USER_AGENT", 

88 "HEADER_X_REQUEST_ID", 

89 "OPTIONS", 

90 "PATCH", 

91 "POST", 

92 "PUT", 

93 "BackgroundTaskRunnerProtocol", 

94 "CORSPolicyProtocol", 

95 "CSRFProtectionProtocol", 

96 "ConnectMetricsCollectorProtocol", 

97 "ControllerProtocol", 

98 "ErrorDetail", 

99 "ErrorResponseDTO", 

100 "ExceptionFilterChainProtocol", 

101 "ExceptionFilterProtocol", 

102 "ExecutionContextProtocol", 

103 "GuardProtocol", 

104 "HTTPApplicationProtocol", 

105 "HTTPClientProtocol", 

106 "HTTPSessionProtocol", 

107 "HttpRequestLoggerProtocol", 

108 "HttpResponse", 

109 "HttpStatusError", 

110 "InterceptorChainProtocol", 

111 "InterceptorProtocol", 

112 "Middleware", 

113 "MiddlewarePipelineProtocol", 

114 "MiddlewareProtocol", 

115 "PaginatedResponseDTO", 

116 "RequestProtocol", 

117 "ResponseFactoryProtocol", 

118 "ResponseProtocol", 

119 "SelectorProtocol", 

120 "ServerSentEvent", 

121 "ServiceInfo", 

122 "ServiceMeshRegistryProtocol", 

123 "SseResponseFactoryProtocol", 

124 "WebContributorProtocol", 

125 "WebMiddlewareProtocol", 

126 "WebProviderProtocol", 

127 "WebRateLimiterProtocol", 

128 "WebSocketProtocol", 

129 "delete", 

130 "get", 

131 "patch", 

132 "post", 

133 "put", 

134]