Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1from .astutil import Node 

2 

3 

4class UseExternalMacro(Node): 

5 """Extend external macro.""" 

6 

7 _fields = "expression", "slots", "extend" 

8 

9 

10class Sequence(Node): 

11 """Element sequence.""" 

12 

13 _fields = "items", 

14 

15 def __nonzero__(self): 

16 return bool(self.items) 

17 

18 

19class Content(Node): 

20 """Content substitution.""" 

21 

22 _fields = "expression", "char_escape", "translate" 

23 

24 

25class CodeBlock(Node): 

26 _fields = "source", 

27 

28 

29class Value(Node): 

30 """Expression object value.""" 

31 

32 _fields = "value", "default", "default_marker" 

33 

34 default = None 

35 

36 default_marker = None 

37 

38 def __repr__(self): 

39 try: 

40 line, column = self.value.location 

41 except AttributeError: 

42 line, column = 0, 0 

43 

44 return "<%s %r (%d:%d)>" % ( 

45 type(self).__name__, self.value, line, column 

46 ) 

47 

48 

49class Substitution(Value): 

50 """Expression value for text substitution.""" 

51 

52 _fields = "value", "char_escape", "default", "default_marker" 

53 

54 default = None 

55 

56 

57class Boolean(Value): 

58 _fields = "value", "s", "default", "default_marker" 

59 

60 

61class Negate(Node): 

62 """Wraps an expression with a negation.""" 

63 

64 _fields = "value", 

65 

66 

67class Element(Node): 

68 """XML element.""" 

69 

70 _fields = "start", "end", "content" 

71 

72 

73class DictAttributes(Node): 

74 """Element attributes from one or more Python dicts.""" 

75 

76 _fields = "expression", "char_escape", "quote", "exclude" 

77 

78 

79class Attribute(Node): 

80 """Element attribute.""" 

81 

82 _fields = "name", "expression", "quote", "eq", "space", "default", "filters" 

83 

84 

85class Start(Node): 

86 """Start-tag.""" 

87 

88 _fields = "name", "prefix", "suffix", "attributes" 

89 

90 

91class End(Node): 

92 """End-tag.""" 

93 

94 _fields = "name", "space", "prefix", "suffix" 

95 

96 

97class Condition(Node): 

98 """Node visited only if one of the condition holds.""" 

99 

100 _fields = "expression", "node", "orelse" 

101 

102 

103class Op(Node): 

104 """An operator node.""" 

105 

106 

107class Is(Op): 

108 """Object identity.""" 

109 

110 

111class IsNot(Op): 

112 """Object identity.""" 

113 

114 

115class Equals(Op): 

116 """Object equality.""" 

117 

118 

119class Logical(Node): 

120 """Logical operator.""" 

121 

122 _fields = "expressions", 

123 

124 

125class And(Logical): 

126 """All terms must be met.""" 

127 

128 

129class Or(Logical): 

130 """At least one term must be met.""" 

131 

132 

133class BinOp(Node): 

134 """Binary comparison.""" 

135 

136 _fields = "left", "op", "right" 

137 

138 

139class Cache(Node): 

140 """Cache (evaluate only once) the value of ``expression`` inside 

141 ``node``. 

142 """ 

143 

144 _fields = "expressions", "node" 

145 

146 

147class Cancel(Cache): 

148 _fields = "expressions", "node", "value" 

149 

150 

151class Copy(Node): 

152 _fields = "expression", 

153 

154 

155class Assignment(Node): 

156 """Variable assignment.""" 

157 

158 _fields = "names", "expression", "local" 

159 

160 

161class Alias(Assignment): 

162 """Alias assignment. 

163 

164 Note that ``expression`` should be a cached or global value. 

165 """ 

166 

167 local = False 

168 

169 

170class Define(Node): 

171 """Variable definition in scope.""" 

172 

173 _fields = "assignments", "node" 

174 

175 

176class Repeat(Assignment): 

177 """Iterate over provided assignment and repeat body.""" 

178 

179 _fields = "names", "expression", "local", "whitespace", "node" 

180 

181 

182class Macro(Node): 

183 """Macro definition.""" 

184 

185 _fields = "name", "body" 

186 

187 

188class Program(Node): 

189 _fields = "name", "body" 

190 

191 

192class Module(Node): 

193 _fields = "name", "program", 

194 

195 

196class Context(Node): 

197 _fields = "node", 

198 

199 

200class Text(Node): 

201 """Static text output.""" 

202 

203 _fields = "value", 

204 

205 

206class Interpolation(Node): 

207 """String interpolation output.""" 

208 

209 _fields = "value", "braces_required", "translation", "default", "default_marker" 

210 

211 

212 

213 

214class Translate(Node): 

215 """Translate node.""" 

216 

217 _fields = "msgid", "node" 

218 

219 

220class Name(Node): 

221 """Translation name.""" 

222 

223 _fields = "name", "node" 

224 

225 

226class Domain(Node): 

227 """Update translation domain.""" 

228 

229 _fields = "name", "node" 

230 

231 

232class TxContext(Node): 

233 """Update translation context.""" 

234 

235 _fields = "name", "node" 

236 

237 

238class OnError(Node): 

239 _fields = "fallback", "name", "node" 

240 

241 

242class UseInternalMacro(Node): 

243 """Use internal macro (defined inside same program).""" 

244 

245 _fields = "name", 

246 

247 

248class FillSlot(Node): 

249 """Fill a macro slot.""" 

250 

251 _fields = "name", "node" 

252 

253 

254class DefineSlot(Node): 

255 """Define a macro slot.""" 

256 

257 _fields = "name", "node"