
These changes make the Hy REPL more closely follow `code.InteractiveConsole`'s class interface and provide minimally intrusive traceback print-out filtering via a context manager that temporarily alters `sys.excepthook`. In other words, exception messages from the REPL will no longer show Hy internal code (e.g. importer, compiler and parsing functions). The boolean variable `hy.errors._hy_filter_internal_errors` dynamically enables/disables trace filtering, and the env variable `HY_FILTER_INTERNAL_ERRORS` can be used as the initial value.
27 lines
677 B
Python
27 lines
677 B
Python
__appname__ = 'hy'
|
|
try:
|
|
from hy.version import __version__
|
|
except ImportError:
|
|
__version__ = 'unknown'
|
|
|
|
|
|
def _initialize_env_var(env_var, default_val):
|
|
import os, distutils.util
|
|
try:
|
|
res = bool(distutils.util.strtobool(
|
|
os.environ.get(env_var, str(default_val))))
|
|
except ValueError as e:
|
|
res = default_val
|
|
return res
|
|
|
|
|
|
from hy.models import HyExpression, HyInteger, HyKeyword, HyComplex, HyString, HyBytes, HySymbol, HyFloat, HyDict, HyList, HySet # NOQA
|
|
|
|
|
|
import hy.importer # NOQA
|
|
# we import for side-effects.
|
|
|
|
|
|
from hy.lex import read, read_str, mangle, unmangle # NOQA
|
|
from hy.compiler import hy_eval as eval # NOQA
|