File size: 2,453 Bytes
3e848bc
f36740b
3e848bc
f36740b
 
 
3e848bc
f36740b
 
 
 
3e848bc
 
 
 
 
65c7dd4
3e848bc
 
 
f36740b
 
 
3e848bc
 
 
 
 
f36740b
 
 
3e848bc
 
a06172d
3e848bc
 
f06c14e
a3c0252
f36740b
 
 
f06c14e
 
a3c0252
 
f06c14e
 
82f3d24
f36740b
 
 
82f3d24
 
 
 
 
 
f06c14e
f36740b
 
 
 
 
f06c14e
f36740b
 
 
 
 
 
 
 
 
 
 
 
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


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