def _resolve_condition(self, unresolved_condition):
     condition, _ = VariableReplacer().replace(
         [unresolved_condition], (), variables=self._context.variables)
     resolved_condition = condition[0]
     if is_unicode(resolved_condition):
         return evaluate_expression(resolved_condition,
                                    self._context.variables)
     return bool(resolved_condition)
Beispiel #2
0
 def _should_run(self, condition, variables):
     try:
         condition = variables.replace_scalar(condition)
         if is_string(condition):
             return evaluate_expression(condition, variables.current.store)
         return bool(condition)
     except DataError as err:
         raise DataError(f'Evaluating WHILE loop condition failed: {err}')
Beispiel #3
0
 def _should_run_branch(self, condition, recursive_dry_run=False):
     if self._context.dry_run:
         return not recursive_dry_run
     if not self._run:
         return False
     if condition is None:
         return True
     condition = self._context.variables.replace_scalar(condition)
     if is_unicode(condition):
         return evaluate_expression(condition, self._context.variables.current.store)
     return bool(condition)
Beispiel #4
0
 def _should_run_branch(self, branch, context, recursive_dry_run=False):
     condition = branch.condition
     variables = context.variables
     if context.dry_run:
         return not recursive_dry_run
     if not self._run:
         return False
     if condition is None:
         return True
     try:
         condition = variables.replace_scalar(condition)
         if is_string(condition):
             return evaluate_expression(condition, variables.current.store)
         return bool(condition)
     except DataError as err:
         raise DataError(f'Evaluating {branch.type} condition failed: {err}')
 def _should_run(self, condition):
     condition = self._context.variables.replace_scalar(condition)
     if is_string(condition):
         return evaluate_expression(condition,
                                    self._context.variables.current.store)
     return bool(condition)