Coverage for src/lektor_ng/environment/expressions.py: 100%

20 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-08-08 12:57 +0000

1class Expression: 

2 def __init__(self, env, expr): 

3 self.env = env 

4 self.tmpl = env.jinja_env.from_string(f"{{{{ __result__({expr}) }}}}") 

5 

6 def evaluate(self, pad=None, this=None, values=None, alt=None): 

7 result = [] 

8 

9 def result_func(value): 

10 result.append(value) 

11 return "" 

12 

13 values = self.env.make_default_tmpl_values(pad, this, values, alt) 

14 values["__result__"] = result_func 

15 self.tmpl.render(values) 

16 return result[0] 

17 

18 

19class FormatExpression: 

20 def __init__(self, env, expr): 

21 self.env = env 

22 self.tmpl = env.jinja_env.from_string(expr) 

23 

24 def evaluate(self, pad=None, this=None, values=None, alt=None): 

25 values = self.env.make_default_tmpl_values(pad, this, values, alt) 

26 return self.tmpl.render(values)