def wrapper(*args, **kwargs): try: return function(*args, **kwargs) except ValidationError as error: sys.exit(error.exit_code) except SpectaclesException as error: logger.error( f"{error}\n\n" + printer.dim( "For support, please create an issue at " "https://github.com/spectacles-ci/spectacles/issues" ) + "\n" ) sys.exit(error.exit_code) except Exception as error: logger.debug(error, exc_info=True) logger.error( f'Encountered unexpected {error.__class__.__name__}: "{error}"\n' f"Full error traceback logged to {LOG_FILEPATH}\n\n" + printer.dim( "For support, please create an issue at " "https://github.com/spectacles-ci/spectacles/issues" ) + "\n" ) sys.exit(1)
def wrapper(*args, **kwargs): try: return function(*args, **kwargs) except GenericValidationError as error: sys.exit(error.exit_code) except LookerApiError as error: logger.error(f"\n{error}\n\n" + printer.dim( "Run in verbose mode (-v) or check your log file to see the full " "response from the Looker API. " "For support, please create an issue at " "https://github.com/spectacles-ci/spectacles/issues") + "\n") looker_api_response = json.dumps(error.looker_api_response, indent=2) logger.debug( f"Spectacles received a {error.status} response code from " f"the Looker API with the following details: {looker_api_response}\n" ) sys.exit(error.exit_code) except SpectaclesException as error: logger.error(f"\n{error}\n\n" + printer.dim( "For support, please create an issue at " "https://github.com/spectacles-ci/spectacles/issues") + "\n") sys.exit(error.exit_code) except KeyboardInterrupt as error: logger.debug(error, exc_info=True) logger.info("Spectacles was manually interrupted.") sys.exit(1) except Exception as error: logger.debug(error, exc_info=True) logger.error( f'\nEncountered unexpected {error.__class__.__name__}: "{error}"\n' f"Full error traceback logged to file.\n\n" + printer.dim( "For support, please create an issue at " "https://github.com/spectacles-ci/spectacles/issues") + "\n") sys.exit(1)