match_face/.venv/Lib/site-packages/pipenv/patched/safety/errors.py

107 lines
3.5 KiB
Python
Raw Normal View History

from pipenv.patched.safety.constants import EXIT_CODE_FAILURE, EXIT_CODE_INVALID_API_KEY, EXIT_CODE_TOO_MANY_REQUESTS, \
EXIT_CODE_UNABLE_TO_FETCH_VULNERABILITY_DB, EXIT_CODE_UNABLE_TO_LOAD_LOCAL_VULNERABILITY_DB, EXIT_CODE_MALFORMED_DB
class SafetyException(Exception):
def __init__(self, message="Unhandled exception happened: {info}", info=""):
self.message = message.format(info=info)
super().__init__(self.message)
def get_exit_code(self):
return EXIT_CODE_FAILURE
class SafetyError(Exception):
def __init__(self, message="Unhandled Safety generic error"):
self.message = message
super().__init__(self.message)
def get_exit_code(self):
return EXIT_CODE_FAILURE
class MalformedDatabase(SafetyError):
def __init__(self, reason=None, fetched_from="server",
message="Sorry, something went wrong.\n" +
"Safety CLI can not read the data fetched from {fetched_from} because is malformed.\n"):
info = "Reason, {reason}".format(reason=reason)
self.message = message.format(fetched_from=fetched_from) + (info if reason else "")
super().__init__(self.message)
def get_exit_code(self):
return EXIT_CODE_MALFORMED_DB
class DatabaseFetchError(SafetyError):
def __init__(self, message="Unable to load vulnerability database"):
self.message = message
super().__init__(self.message)
def get_exit_code(self):
return EXIT_CODE_UNABLE_TO_FETCH_VULNERABILITY_DB
class DatabaseFileNotFoundError(DatabaseFetchError):
def __init__(self, db=None, message="Unable to find vulnerability database in {db}"):
self.db = db
self.message = message.format(db=db)
super().__init__(self.message)
def get_exit_code(self):
return EXIT_CODE_UNABLE_TO_LOAD_LOCAL_VULNERABILITY_DB
class InvalidKeyError(DatabaseFetchError):
def __init__(self, key=None, message="Your API Key '{key}' is invalid. See {link}.", reason=None):
self.key = key
self.link = 'https://bit.ly/3OY2wEI'
self.message = message.format(key=key, link=self.link) if key else message
info = f" Reason: {reason}"
self.message = self.message + (info if reason else "")
super().__init__(self.message)
def get_exit_code(self):
return EXIT_CODE_INVALID_API_KEY
class TooManyRequestsError(DatabaseFetchError):
def __init__(self, reason=None,
message="Too many requests."):
info = f" Reason: {reason}"
self.message = message + (info if reason else "")
super().__init__(self.message)
def get_exit_code(self):
return EXIT_CODE_TOO_MANY_REQUESTS
class NetworkConnectionError(DatabaseFetchError):
def __init__(self, message="Check your network connection, unable to reach the server."):
self.message = message
super().__init__(self.message)
class RequestTimeoutError(DatabaseFetchError):
def __init__(self, message="Check your network connection, the request timed out."):
self.message = message
super().__init__(self.message)
class ServerError(DatabaseFetchError):
def __init__(self, reason=None,
message="Sorry, something went wrong.\n" + "Safety CLI can not connect to the server.\n" +
"Our engineers are working quickly to resolve the issue."):
info = f" Reason: {reason}"
self.message = message + (info if reason else "")
super().__init__(self.message)