Coverage for src/lexigram/web/routing/__init__.py: 78%

23 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 04:37 +0800

1from __future__ import annotations 

2 

3from typing import Any 

4 

5from lexigram.web.routing.controller import GenericController 

6from lexigram.web.routing.controller_registry import ( 

7 ControllerRegistry, 

8 controller, 

9 controller_registry, 

10) 

11from lexigram.web.routing.controllers import Controller 

12from lexigram.web.routing.cqrs import CQRSController 

13from lexigram.web.routing.decorators import ( 

14 delete, 

15 get, 

16 head, 

17 options, 

18 patch, 

19 post, 

20 put, 

21 trace, 

22 websocket, 

23) 

24from lexigram.web.routing.discovery import discover_controllers 

25 

26 

27def __dir__() -> list[str]: 

28 return sorted(__all__) 

29 

30 

31from lexigram.web.routing.execution_context import WebExecutionContext 

32from lexigram.web.routing.parameter_binder import ParameterBinder 

33from lexigram.web.routing.parameters import ( 

34 body, 

35 cookie, 

36 file, 

37 form, 

38 header, 

39 path, 

40 query, 

41) 

42from lexigram.web.routing.pipeline import RequestPipeline 

43from lexigram.web.routing.registry import ( 

44 RouteRegistry, 

45 register_controller, 

46 route_registry, 

47) 

48from lexigram.web.routing.router import Router 

49from lexigram.web.routing.versioning import ( 

50 ApiVersionMetadata, 

51 VersionExtractor, 

52 VersioningMiddleware, 

53 VersioningStrategy, 

54 api_version, 

55 get_version, 

56 version, 

57) 

58 

59 

60def __getattr__(name: str) -> Any: 

61 if name == "VersioningConfig": 

62 from lexigram.web.routing.versioning import VersioningConfig 

63 

64 return VersioningConfig 

65 raise AttributeError(f"module {__name__!r} has no attribute {name!r}") 

66 

67 

68__all__ = [ 

69 "ApiVersionMetadata", 

70 "CQRSController", 

71 "Controller", 

72 "ControllerRegistry", 

73 "GenericController", 

74 "ParameterBinder", 

75 "RequestPipeline", 

76 "RouteRegistry", 

77 "Router", 

78 "VersionExtractor", 

79 "VersioningConfig", 

80 "VersioningMiddleware", 

81 "VersioningStrategy", 

82 "WebExecutionContext", 

83 "api_version", 

84 "body", 

85 "controller", 

86 "controller_registry", 

87 "cookie", 

88 "delete", 

89 "discover_controllers", 

90 "file", 

91 "form", 

92 "get", 

93 "get_version", 

94 "head", 

95 "header", 

96 "options", 

97 "patch", 

98 "path", 

99 "post", 

100 "put", 

101 "query", 

102 "register_controller", 

103 "route_registry", 

104 "trace", 

105 "version", 

106 "websocket", 

107]