-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexceptions.py
More file actions
126 lines (84 loc) · 4.49 KB
/
exceptions.py
File metadata and controls
126 lines (84 loc) · 4.49 KB
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
from typing import List
from abc import abstractmethod
class DataParsingException(Exception):
@abstractmethod
def __init__(self):
pass
@abstractmethod
def __str__(self):
pass
class ConfigException(DataParsingException):
def __init__(self):
self.error_message = None
def __str__(self):
pass
class SimDataException(DataParsingException):
def __init__(self):
pass
def __str__(self):
pass
class IncorrectConfigFormatException(ConfigException):
def __init__(self, incorrect_line_number: str, incorrect_line: str):
self.error_message = (f'Некорректный формат файла конфигурации, ошибка в строке {incorrect_line_number}\n'
f'{incorrect_line}')
def __str__(self):
return self.error_message
class IncorrectConfigParameterException(ConfigException):
def __init__(self, incorrect_param: str, valid_params: List[str]):
error_message = f'Некорректный параметр симуляции {incorrect_param}, доступные опции:'
valid_params = '\n'.join(valid_params)
self.error_message = '\n'.join([error_message, valid_params])
def __str__(self):
return self.error_message
class DuplicateConfigParameterException(ConfigException):
def __init__(self, dup_param: str, incorrect_line_number: str):
self.error_message = f'Повторяющийся параметр симуляции {dup_param} в строке {incorrect_line_number}'
def __str__(self):
return self.error_message
class MissingConfigParameterException(ConfigException):
def __init__(self, missing_params: List[str]):
error_message = f'В конфигурационном файле отсутствуют обязательные параметры симуляции:'
missing_params = '\n'.join(missing_params)
self.error_message = '\n'.join([error_message, missing_params])
def __str__(self):
return self.error_message
class IncorrectConfigParameterTypeException(ConfigException):
def __init__(self, incorrect_param: str, correct_type: str):
self.error_message = f'Некорректный тип параметра {incorrect_param}, требуется {correct_type}'
def __str__(self):
return self.error_message
class PositiveConfigParameterException(ConfigException):
def __init__(self, incorrect_param: str):
self.error_message = f'Параметр {incorrect_param} должен быть положительным'
def __str__(self):
return self.error_message
class IncorrectSimDataPathException(ConfigException):
def __init__(self):
self.error_message = 'Введён некорректный путь к файлу данных симуляции'
def __str__(self):
return self.error_message
class IncorrectSimScenarioException(ConfigException):
def __init__(self, incorrect_scenario: str, valid_options: List[str]):
error_message = f'Введён некорректный сценарий симуляции {incorrect_scenario}, доступные опции:'
valid_options = '\n'.join(valid_options)
self.error_message = '\n'.join([error_message, valid_options])
def __str__(self):
return self.error_message
class IncorrectSimDataFormatException(SimDataException):
def __init__(self, parser_message: str):
error_message = 'Некорректный формат файла данных симуляции, сообщение парсера pandas:'
self.error_message = '\n'.join([error_message, parser_message])
def __str__(self):
return self.error_message
class IncorrectSimDataExtException(SimDataException):
def __init__(self, valid_extensions: List[str]):
error_message = 'Неподдерживаемое расширение файла данных симуляции, cписок поддерживаемых расширений:'
valid_extensions = '\n'.join(valid_extensions)
self.error_message = '\n'.join([error_message, valid_extensions])
def __str__(self):
return self.error_message
class DuplicateSimDataColumnsException(SimDataException):
def __init__(self):
self.error_message = 'Обнаружены дубликаты в названиях столбцов в файле данных симуляции'
def __str__(self):
return self.error_message