File size: 3,070 Bytes
3e848bc f36740b c006992 3e848bc f36740b 3e848bc 65c7dd4 3e848bc f36740b c006992 3e848bc f36740b c006992 3e848bc a06172d 3e848bc f06c14e a3c0252 f36740b c006992 f06c14e a3c0252 f06c14e 82f3d24 f36740b c006992 82f3d24 f06c14e f36740b c006992 f36740b f06c14e f36740b c006992 f36740b c006992 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
class BaseError(Exception):
"""
base error structure class
"""
def __init__(self, val, message):
"""
@param val: actual value
@param message: message shown to the user
"""
self.val = val
self.message = message
super().__init__()
def __str__(self):
return "{} --> {}".format(self.val, self.message)
class LanguageNotSupportedException(BaseError):
"""
exception thrown if the user uses a language that is not supported by the deep_translator
"""
def __init__(self, val, message="There is no support for the chosen language"):
super().__init__(val, message)
class NotValidPayload(BaseError):
"""
exception thrown if the user enters an invalid payload
"""
def __init__(self,
val,
message='text must be a valid text with maximum 5000 character, otherwise it cannot be translated'):
super(NotValidPayload, self).__init__(val, message)
class TranslationNotFound(BaseError):
"""
exception thrown if no translation was found for the text provided by the user
"""
def __init__(self,
val,
message='No translation was found using the current translator. Try another translator?'):
super(TranslationNotFound, self).__init__(val, message)
class ElementNotFoundInGetRequest(BaseError):
"""
exception thrown if the html element was not found in the body parsed by beautifulsoup
"""
def __init__(self,
val,
message='Required element was not found in the API response'):
super(ElementNotFoundInGetRequest, self).__init__(val, message)
class NotValidLength(BaseError):
"""
exception thrown if the provided text exceed the length limit of the translator
"""
def __init__(self, val, min_chars, max_chars):
message = "Text length need to be between {} and {} characters".format(min_chars, max_chars)
super(NotValidLength, self).__init__(val, message)
class RequestError(Exception):
"""
exception thrown if an error occured during the request call, e.g a connection problem.
"""
def __init__(self, message="Request exception can happen due to an api connection error. "
"Please check your connection and try again"):
self.message = message
def __str__(self):
return self.message
class YandexDefaultException(Exception):
"""
Default YandexTranslate exception from the official website
"""
errors = {
401: "ERR_KEY_INVALID",
402: "ERR_KEY_BLOCKED",
403: "ERR_DAILY_REQ_LIMIT_EXCEEDED",
404: "ERR_DAILY_CHAR_LIMIT_EXCEEDED",
413: "ERR_TEXT_TOO_LONG",
422: "ERR_UNPROCESSABLE_TEXT",
501: "ERR_LANG_NOT_SUPPORTED",
503: "ERR_SERVICE_NOT_AVAIBLE",
}
def __init__(self, status_code, *args):
message = self.errors.get(status_code)
super(YandexDefaultException, self).__init__(message, *args)
|