diff --git a/hyperglass/command/construct.py b/hyperglass/command/construct.py index 8592cf2..96c65f7 100644 --- a/hyperglass/command/construct.py +++ b/hyperglass/command/construct.py @@ -15,7 +15,8 @@ from logzero import logger as log # Project Imports from hyperglass.configuration import vrfs from hyperglass.configuration import commands -from hyperglass.configuration import logzero_config # noqa: F401 +from hyperglass.configuration import logzero_config # NOQA: F401 +from hyperglass.configuration import stack # NOQA: F401 from hyperglass.constants import target_format_space diff --git a/hyperglass/command/execute.py b/hyperglass/command/execute.py index 13640f2..2de81a0 100644 --- a/hyperglass/command/execute.py +++ b/hyperglass/command/execute.py @@ -23,6 +23,7 @@ from hyperglass.command.validate import Validate from hyperglass.configuration import credentials from hyperglass.configuration import devices from hyperglass.configuration import logzero_config # noqa: F401 +from hyperglass.configuration import stack # NOQA: F401 from hyperglass.configuration import params from hyperglass.configuration import proxies from hyperglass.constants import Supported diff --git a/hyperglass/command/validate.py b/hyperglass/command/validate.py index 51c60eb..70a2fab 100644 --- a/hyperglass/command/validate.py +++ b/hyperglass/command/validate.py @@ -13,6 +13,7 @@ from logzero import logger as log # Project Imports from hyperglass.configuration import logzero_config # noqa: F401 +from hyperglass.configuration import stack # NOQA: F401 from hyperglass.configuration import params from hyperglass.configuration import vrfs from hyperglass.exceptions import InputInvalid, InputNotAllowed diff --git a/hyperglass/configuration/__init__.py b/hyperglass/configuration/__init__.py index b49ea84..2ff2783 100644 --- a/hyperglass/configuration/__init__.py +++ b/hyperglass/configuration/__init__.py @@ -8,6 +8,7 @@ from pathlib import Path # Third Party Imports import logzero +import stackprinter import yaml from logzero import logger as log from pydantic import ValidationError @@ -24,6 +25,9 @@ from hyperglass.configuration.models import ( ) from hyperglass.exceptions import ConfigError, ConfigInvalid, ConfigMissing +# Stackprinter Configuration +stack = stackprinter.set_excepthook() + # Project Directories working_dir = Path(__file__).resolve().parent diff --git a/hyperglass/hyperglass.py b/hyperglass/hyperglass.py index 6ccfe48..cb0e6a9 100644 --- a/hyperglass/hyperglass.py +++ b/hyperglass/hyperglass.py @@ -29,6 +29,7 @@ from hyperglass.command.execute import Execute from hyperglass.configuration import devices from hyperglass.configuration import vrfs from hyperglass.configuration import logzero_config # noqa: F401 +from hyperglass.configuration import stack # NOQA: F401 from hyperglass.configuration import params from hyperglass.constants import Supported from hyperglass.exceptions import ( diff --git a/hyperglass/render/html.py b/hyperglass/render/html.py index 314e294..11e052c 100644 --- a/hyperglass/render/html.py +++ b/hyperglass/render/html.py @@ -12,7 +12,8 @@ from markdown2 import Markdown # Project Imports from hyperglass.configuration import devices -from hyperglass.configuration import logzero_config # noqa: F401 +from hyperglass.configuration import logzero_config # NOQA: F401 +from hyperglass.configuration import stack # NOQA: F401 from hyperglass.configuration import params, networks from hyperglass.exceptions import HyperglassError diff --git a/hyperglass/render/webassets.py b/hyperglass/render/webassets.py index 34b34a3..dc24dcd 100644 --- a/hyperglass/render/webassets.py +++ b/hyperglass/render/webassets.py @@ -11,7 +11,8 @@ import jinja2 from logzero import logger as log # Project Imports -from hyperglass.configuration import logzero_config # noqa: F401 +from hyperglass.configuration import logzero_config # NOQA: F401 +from hyperglass.configuration import stack # NOQA: F401 from hyperglass.configuration import params from hyperglass.configuration import frontend_params from hyperglass.configuration import frontend_networks diff --git a/hyperglass/web.py b/hyperglass/web.py index 86fc046..ec95814 100644 --- a/hyperglass/web.py +++ b/hyperglass/web.py @@ -13,6 +13,7 @@ try: import tempfile from hyperglass import hyperglass from hyperglass.configuration import params + from hyperglass.configuration import stack # NOQA: F401 except ImportError as import_error: raise RuntimeError(import_error) diff --git a/manage.py b/manage.py index db41ade..0e443dc 100755 --- a/manage.py +++ b/manage.py @@ -18,6 +18,9 @@ import click import json from passlib.hash import pbkdf2_sha256 import requests +import stackprinter + +stackprinter.set_excepthook(style="darkbg2") # Initialize shutil copy function cp = shutil.copyfile