def _validates_vars(self) -> None: # validate given var are okay name = self._internal_ctx.node.var_name if name not in self._vars: default_values = self._internal_ctx.node.default_value if not default_values and not self._internal_ctx.node.is_nullable: self._add_exception(UnknownVariableException(name)) return None self._vars[name] = default_values return None a_type = self._internal_ctx.node.var_type a_value = self._vars[name] if self._internal_ctx.node.is_list: if not isinstance(a_value, list): self._add_exception( InvalidType( "Expecting List for < %s > values" % name, path=self._internal_ctx.field_path[:], locations=[self._internal_ctx.node.location], )) return None for val in a_value: self._validate_type(name, val, a_type) return None self._validate_type(name, a_value, a_type) return None
def _validates_vars(self) -> None: # validate given var are okay name = self._internal_ctx.node.var_name if name not in self._vars: default_values = self._internal_ctx.node.default_value if ( default_values is None or default_values is UNDEFINED_VALUE ) and not self._internal_ctx.node.is_nullable: self._add_exception(UnknownVariableException(name)) return self._vars[name] = default_values return a_type = self._internal_ctx.node.var_type is_nullable = self._internal_ctx.node.is_nullable a_value = self._vars[name] if self._internal_ctx.node.is_list: if not isinstance(a_value, list) and a_value is not None: a_value = [a_value] if a_value is not None: for val in a_value: self._validate_type( name, val, a_type, self._internal_ctx.node.is_list_item_nullable, ) return self._validate_type(name, a_value, a_type, is_nullable) return
def _validates_vars(self): # validate given var are okay name = self._current_node.var_name if name not in self._vars: dfv = self._current_node.default_value if not dfv and not self._current_node.is_nullable: self.continue_child = 0 self.exception = UnknownVariableException(name) return None self._vars[name] = dfv return None a_type = self._current_node.var_type a_value = self._vars[name] if self._current_node.is_list: if not isinstance(a_value, list): self.continue_child = 0 self.exception = TypeError("Expecting List for < %s > values" % name) return None for val in a_value: self._validate_type(name, val, a_type) return None self._validate_type(name, a_value, a_type) return None
def _on_variable_in(self, element: _VisitorElement): if hasattr(self._current_node, 'var_name'): self._current_node.var_name = element.name return try: var_name = element.name self._current_node.arguments.update( {self._current_argument_name: self._vars[var_name]}) except KeyError: self.continue_child = 0 self.exception = UnknownVariableException(var_name)
def _on_variable_in(self, element: _VisitorElement, *_args, **_kwargs) -> None: if hasattr(self._internal_ctx.node, "var_name"): self._internal_ctx.node.var_name = element.name return var_name = element.name try: if self._internal_ctx.current_object_value is not None: self._internal_ctx.current_object_value.set_value( self._vars[var_name]) return self._internal_ctx.argument.value = self._vars[var_name] self._add_argument_to_parent() except KeyError: self._add_exception(UnknownVariableException(var_name))