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)
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}')
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)
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)