Coverage for /home/martinb/.local/share/virtualenvs/camcops/lib/python3.6/site-packages/chameleon/nodes.py : 93%

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
4class UseExternalMacro(Node):
5 """Extend external macro."""
7 _fields = "expression", "slots", "extend"
10class Sequence(Node):
11 """Element sequence."""
13 _fields = "items",
15 def __nonzero__(self):
16 return bool(self.items)
19class Content(Node):
20 """Content substitution."""
22 _fields = "expression", "char_escape", "translate"
25class CodeBlock(Node):
26 _fields = "source",
29class Value(Node):
30 """Expression object value."""
32 _fields = "value", "default", "default_marker"
34 default = None
36 default_marker = None
38 def __repr__(self):
39 try:
40 line, column = self.value.location
41 except AttributeError:
42 line, column = 0, 0
44 return "<%s %r (%d:%d)>" % (
45 type(self).__name__, self.value, line, column
46 )
49class Substitution(Value):
50 """Expression value for text substitution."""
52 _fields = "value", "char_escape", "default", "default_marker"
54 default = None
57class Boolean(Value):
58 _fields = "value", "s", "default", "default_marker"
61class Negate(Node):
62 """Wraps an expression with a negation."""
64 _fields = "value",
67class Element(Node):
68 """XML element."""
70 _fields = "start", "end", "content"
73class DictAttributes(Node):
74 """Element attributes from one or more Python dicts."""
76 _fields = "expression", "char_escape", "quote", "exclude"
79class Attribute(Node):
80 """Element attribute."""
82 _fields = "name", "expression", "quote", "eq", "space", "default", "filters"
85class Start(Node):
86 """Start-tag."""
88 _fields = "name", "prefix", "suffix", "attributes"
91class End(Node):
92 """End-tag."""
94 _fields = "name", "space", "prefix", "suffix"
97class Condition(Node):
98 """Node visited only if one of the condition holds."""
100 _fields = "expression", "node", "orelse"
103class Op(Node):
104 """An operator node."""
107class Is(Op):
108 """Object identity."""
111class IsNot(Op):
112 """Object identity."""
115class Equals(Op):
116 """Object equality."""
119class Logical(Node):
120 """Logical operator."""
122 _fields = "expressions",
125class And(Logical):
126 """All terms must be met."""
129class Or(Logical):
130 """At least one term must be met."""
133class BinOp(Node):
134 """Binary comparison."""
136 _fields = "left", "op", "right"
139class Cache(Node):
140 """Cache (evaluate only once) the value of ``expression`` inside
141 ``node``.
142 """
144 _fields = "expressions", "node"
147class Cancel(Cache):
148 _fields = "expressions", "node", "value"
151class Copy(Node):
152 _fields = "expression",
155class Assignment(Node):
156 """Variable assignment."""
158 _fields = "names", "expression", "local"
161class Alias(Assignment):
162 """Alias assignment.
164 Note that ``expression`` should be a cached or global value.
165 """
167 local = False
170class Define(Node):
171 """Variable definition in scope."""
173 _fields = "assignments", "node"
176class Repeat(Assignment):
177 """Iterate over provided assignment and repeat body."""
179 _fields = "names", "expression", "local", "whitespace", "node"
182class Macro(Node):
183 """Macro definition."""
185 _fields = "name", "body"
188class Program(Node):
189 _fields = "name", "body"
192class Module(Node):
193 _fields = "name", "program",
196class Context(Node):
197 _fields = "node",
200class Text(Node):
201 """Static text output."""
203 _fields = "value",
206class Interpolation(Node):
207 """String interpolation output."""
209 _fields = "value", "braces_required", "translation", "default", "default_marker"
214class Translate(Node):
215 """Translate node."""
217 _fields = "msgid", "node"
220class Name(Node):
221 """Translation name."""
223 _fields = "name", "node"
226class Domain(Node):
227 """Update translation domain."""
229 _fields = "name", "node"
232class TxContext(Node):
233 """Update translation context."""
235 _fields = "name", "node"
238class OnError(Node):
239 _fields = "fallback", "name", "node"
242class UseInternalMacro(Node):
243 """Use internal macro (defined inside same program)."""
245 _fields = "name",
248class FillSlot(Node):
249 """Fill a macro slot."""
251 _fields = "name", "node"
254class DefineSlot(Node):
255 """Define a macro slot."""
257 _fields = "name", "node"