Coverage for gws-app/gws/ext/__init__.py: 100%

132 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-05 13:35 +0200

1"""Dummy decorators to support extension typing.""" 

2 

3from typing import TypeVar 

4 

5T = TypeVar('T') 

6 

7 

8class _classTag: 

9 extName = '' 

10 

11 def __init__(self, typ: str): 

12 self.typ = typ 

13 

14 def __call__(self, target: T) -> T: 

15 setattr(target, 'extName', self.extName + '.' + self.typ) 

16 setattr(target, 'extType', self.typ) 

17 return target 

18 

19 

20class _methodTag: 

21 def __init__(self, typ): 

22 pass 

23 

24 def __call__(self, target): 

25 return target 

26 

27 

28def name_for(obj: str | type) -> str | None: 

29 if isinstance(obj, str) and obj.startswith('gws.ext.'): 

30 return obj 

31 if isinstance(obj, type) and issubclass(obj, _classTag): 

32 return obj.extName 

33 

34 

35# fmt: off 

36 

37## 

38 

39 

40TYPES = [ 

41 "action", 

42 "application", 

43 "authMethod", 

44 "authMultiFactorAdapter", 

45 "authProvider", 

46 "authSessionManager", 

47 "cli", 

48 "databaseProvider", 

49 "exporter", 

50 "finder", 

51 "helper", 

52 "layer", 

53 "legend", 

54 "map", 

55 "model", 

56 "modelField", 

57 "modelValidator", 

58 "modelValue", 

59 "modelWidget", 

60 "owsProvider", 

61 "owsService", 

62 "printer", 

63 "project", 

64 "storageProvider", 

65 "template", 

66] 

67 

68 

69class command: 

70 class api(_methodTag): pass 

71 class cli(_methodTag): pass 

72 class get(_methodTag): pass 

73 class post(_methodTag): pass 

74 class raw(_methodTag): pass 

75 

76 

77class _new: 

78 def action(self, *args): pass 

79 def application(self, *args): pass 

80 def authMethod(self, *args): pass 

81 def authMultiFactorAdapter(self, *args): pass 

82 def authProvider(self, *args): pass 

83 def authSessionManager(self, *args): pass 

84 def cli(self, *args): pass 

85 def databaseProvider(self, *args): pass 

86 def exporter(self, *args): pass 

87 def finder(self, *args): pass 

88 def helper(self, *args): pass 

89 def layer(self, *args): pass 

90 def legend(self, *args): pass 

91 def map(self, *args): pass 

92 def model(self, *args): pass 

93 def modelField(self, *args): pass 

94 def modelValidator(self, *args): pass 

95 def modelValue(self, *args): pass 

96 def modelWidget(self, *args): pass 

97 def owsProvider(self, *args): pass 

98 def owsService(self, *args): pass 

99 def printer(self, *args): pass 

100 def project(self, *args): pass 

101 def storageProvider(self, *args): pass 

102 def template(self, *args): pass 

103 

104 

105new = _new() 

106 

107 

108class object: 

109 class action (_classTag): extName = 'gws.ext.object.action' 

110 class application (_classTag): extName = 'gws.ext.object.application' 

111 class authMethod (_classTag): extName = 'gws.ext.object.authMethod' 

112 class authMultiFactorAdapter (_classTag): extName = 'gws.ext.object.authMultiFactorAdapter' 

113 class authProvider (_classTag): extName = 'gws.ext.object.authProvider' 

114 class authSessionManager (_classTag): extName = 'gws.ext.object.authSessionManager' 

115 class cli (_classTag): extName = 'gws.ext.object.cli' 

116 class databaseProvider (_classTag): extName = 'gws.ext.object.databaseProvider' 

117 class exporter (_classTag): extName = 'gws.ext.object.exporter' 

118 class finder (_classTag): extName = 'gws.ext.object.finder' 

119 class helper (_classTag): extName = 'gws.ext.object.helper' 

120 class layer (_classTag): extName = 'gws.ext.object.layer' 

121 class legend (_classTag): extName = 'gws.ext.object.legend' 

122 class map (_classTag): extName = 'gws.ext.object.map' 

123 class model (_classTag): extName = 'gws.ext.object.model' 

124 class modelField (_classTag): extName = 'gws.ext.object.modelField' 

125 class modelValidator (_classTag): extName = 'gws.ext.object.modelValidator' 

126 class modelValue (_classTag): extName = 'gws.ext.object.modelValue' 

127 class modelWidget (_classTag): extName = 'gws.ext.object.modelWidget' 

128 class owsProvider (_classTag): extName = 'gws.ext.object.owsProvider' 

129 class owsService (_classTag): extName = 'gws.ext.object.owsService' 

130 class printer (_classTag): extName = 'gws.ext.object.printer' 

131 class project (_classTag): extName = 'gws.ext.object.project' 

132 class storageProvider (_classTag): extName = 'gws.ext.object.storageProvider' 

133 class template (_classTag): extName = 'gws.ext.object.template' 

134 

135 

136class config: 

137 class action (_classTag): extName = 'gws.ext.config.action' 

138 class application (_classTag): extName = 'gws.ext.config.application' 

139 class authMethod (_classTag): extName = 'gws.ext.config.authMethod' 

140 class authMultiFactorAdapter (_classTag): extName = 'gws.ext.config.authMultiFactorAdapter' 

141 class authProvider (_classTag): extName = 'gws.ext.config.authProvider' 

142 class authSessionManager (_classTag): extName = 'gws.ext.config.authSessionManager' 

143 class cli (_classTag): extName = 'gws.ext.config.cli' 

144 class databaseProvider (_classTag): extName = 'gws.ext.config.databaseProvider' 

145 class exporter (_classTag): extName = 'gws.ext.config.exporter' 

146 class finder (_classTag): extName = 'gws.ext.config.finder' 

147 class helper (_classTag): extName = 'gws.ext.config.helper' 

148 class layer (_classTag): extName = 'gws.ext.config.layer' 

149 class legend (_classTag): extName = 'gws.ext.config.legend' 

150 class map (_classTag): extName = 'gws.ext.config.map' 

151 class model (_classTag): extName = 'gws.ext.config.model' 

152 class modelField (_classTag): extName = 'gws.ext.config.modelField' 

153 class modelValidator (_classTag): extName = 'gws.ext.config.modelValidator' 

154 class modelValue (_classTag): extName = 'gws.ext.config.modelValue' 

155 class modelWidget (_classTag): extName = 'gws.ext.config.modelWidget' 

156 class owsProvider (_classTag): extName = 'gws.ext.config.owsProvider' 

157 class owsService (_classTag): extName = 'gws.ext.config.owsService' 

158 class printer (_classTag): extName = 'gws.ext.config.printer' 

159 class project (_classTag): extName = 'gws.ext.config.project' 

160 class storageProvider (_classTag): extName = 'gws.ext.config.storageProvider' 

161 class template (_classTag): extName = 'gws.ext.config.template' 

162 

163 

164class props: 

165 class action (_classTag): extName = 'gws.ext.props.action' 

166 class application (_classTag): extName = 'gws.ext.props.application' 

167 class authMethod (_classTag): extName = 'gws.ext.props.authMethod' 

168 class authMultiFactorAdapter (_classTag): extName = 'gws.ext.props.authMultiFactorAdapter' 

169 class authProvider (_classTag): extName = 'gws.ext.props.authProvider' 

170 class authSessionManager (_classTag): extName = 'gws.ext.props.authSessionManager' 

171 class cli (_classTag): extName = 'gws.ext.props.cli' 

172 class databaseProvider (_classTag): extName = 'gws.ext.props.databaseProvider' 

173 class exporter (_classTag): extName = 'gws.ext.props.exporter' 

174 class finder (_classTag): extName = 'gws.ext.props.finder' 

175 class helper (_classTag): extName = 'gws.ext.props.helper' 

176 class layer (_classTag): extName = 'gws.ext.props.layer' 

177 class legend (_classTag): extName = 'gws.ext.props.legend' 

178 class map (_classTag): extName = 'gws.ext.props.map' 

179 class model (_classTag): extName = 'gws.ext.props.model' 

180 class modelField (_classTag): extName = 'gws.ext.props.modelField' 

181 class modelValidator (_classTag): extName = 'gws.ext.props.modelValidator' 

182 class modelValue (_classTag): extName = 'gws.ext.props.modelValue' 

183 class modelWidget (_classTag): extName = 'gws.ext.props.modelWidget' 

184 class owsProvider (_classTag): extName = 'gws.ext.props.owsProvider' 

185 class owsService (_classTag): extName = 'gws.ext.props.owsService' 

186 class printer (_classTag): extName = 'gws.ext.props.printer' 

187 class project (_classTag): extName = 'gws.ext.props.project' 

188 class storageProvider (_classTag): extName = 'gws.ext.props.storageProvider' 

189 class template (_classTag): extName = 'gws.ext.props.template'