diff --git a/hy/_compat.py b/hy/_compat.py index 1411521..57a67dd 100644 --- a/hy/_compat.py +++ b/hy/_compat.py @@ -18,27 +18,8 @@ def reraise(exc_type, value, traceback=None): def isidentifier(x): - if x in ('True', 'False', 'None', 'print'): - # `print` is special-cased here because Python 2's - # keyword.iskeyword will count it as a keyword, but we - # use the __future__ feature print_function, which makes - # it a non-keyword. + if x in ('True', 'False', 'None'): return True if keyword.iskeyword(x): return False - if PY3: - return x.isidentifier() - if x.rstrip() != x: - return False - import tokenize as T - from io import StringIO - try: - tokens = list(T.generate_tokens(StringIO(x).readline)) - except (T.TokenError, IndentationError): - return False - # Some versions of Python 2.7 (including one that made it into - # Ubuntu 18.10) have a Python 3 backport that adds a NEWLINE - # token. Remove it if it's present. - # https://bugs.python.org/issue33899 - tokens = [t for t in tokens if t[0] != T.NEWLINE] - return len(tokens) == 2 and tokens[0][0] == T.NAME + return x.isidentifier()