def handles(cls, statement, ctx): for token in statement: if token.value == 'IF': return True if not is_assign(token.value, allow_assign_mark=True): return False return False
def handles(self, statement): for token in statement: if token.value == 'IF': return True if is_assign(token.value, allow_assign_mark=True): continue return False
def _validate_arg(self, arg): arg, default = split_from_equals(arg) if not (is_assign(arg) or arg == '@{}'): self._raise_invalid_spec("Invalid argument syntax '%s'." % arg) if default is not None: return arg, default return arg
def _lex_as_keyword_call(self): keyword_seen = False for token in self.statement: if keyword_seen: token.type = Token.ARGUMENT elif is_assign(token.value, allow_assign_mark=True): token.type = Token.ASSIGN else: token.type = Token.KEYWORD keyword_seen = True
def _validate_arg(self, arg): arg, default = split_from_equals(arg) if not (is_assign(arg) or arg == '@{}'): self._report_error("Invalid argument syntax '%s'." % arg) if default is None: return arg if not is_scalar_assign(arg): typ = 'list' if arg[0] == '@' else 'dictionary' self._report_error("Only normal arguments accept default values, " "%s arguments like '%s' do not." % (typ, arg)) return arg, default
def test_is_assign(self): for ok in SCALARS + LISTS + DICTS: assert is_assign(ok) assert is_assign(ok + '=', allow_assign_mark=True) assert is_assign(ok + ' =', allow_assign_mark=True) assert not is_assign(ok + '[item]') assert not is_assign(' ' + ok) for nok in NOK_ASSIGNS: assert not is_assign(nok)
def test_is_assign(self): for ok in SCALARS + LISTS + DICTS: assert is_assign(ok) assert search_variable(ok).is_assign() assert is_assign(ok + '=', allow_assign_mark=True) assert is_assign(ok + ' =', allow_assign_mark=True) assert not is_assign(ok + '[item]') assert not is_assign(' ' + ok) for nok in NOK_ASSIGNS: assert not is_assign(nok) assert not search_variable(nok, ignore_errors=True).is_assign()