tp-common 0.0.1__py3-none-any.whl → 0.0.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tp_common/__init__.py +52 -52
- tp_common/base_client/base_client.py +585 -585
- tp_common/base_client/base_exception.py +2 -2
- tp_common/base_client/base_request.py +12 -12
- tp_common/base_client/base_response.py +11 -11
- tp_common/base_client/client_exceptions.py +76 -76
- tp_common/base_client/domain_exceptions.py +63 -63
- tp_common/logging.py +339 -339
- {tp_common-0.0.1.dist-info → tp_common-0.0.2.dist-info}/METADATA +1 -1
- tp_common-0.0.2.dist-info/RECORD +11 -0
- tp_common/base_client/__init__.py +0 -0
- tp_common-0.0.1.dist-info/RECORD +0 -12
- {tp_common-0.0.1.dist-info → tp_common-0.0.2.dist-info}/WHEEL +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
class BaseInfrastructureException(Exception):
|
|
2
|
-
pass
|
|
1
|
+
class BaseInfrastructureException(Exception):
|
|
2
|
+
pass
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
from pydantic import BaseModel, ConfigDict
|
|
2
|
-
from pydantic.alias_generators import to_camel
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class BaseRequest(BaseModel):
|
|
6
|
-
model_config = ConfigDict(
|
|
7
|
-
alias_generator=to_camel,
|
|
8
|
-
validate_by_name=True,
|
|
9
|
-
validate_by_alias=True,
|
|
10
|
-
serialize_by_alias=True,
|
|
11
|
-
populate_by_name=True,
|
|
12
|
-
)
|
|
1
|
+
from pydantic import BaseModel, ConfigDict
|
|
2
|
+
from pydantic.alias_generators import to_camel
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class BaseRequest(BaseModel):
|
|
6
|
+
model_config = ConfigDict(
|
|
7
|
+
alias_generator=to_camel,
|
|
8
|
+
validate_by_name=True,
|
|
9
|
+
validate_by_alias=True,
|
|
10
|
+
serialize_by_alias=True,
|
|
11
|
+
populate_by_name=True,
|
|
12
|
+
)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
from pydantic import BaseModel, ConfigDict
|
|
2
|
-
from pydantic.alias_generators import to_camel
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class BaseResponse(BaseModel):
|
|
6
|
-
model_config = ConfigDict(
|
|
7
|
-
alias_generator=to_camel,
|
|
8
|
-
validate_by_name=True,
|
|
9
|
-
validate_by_alias=True,
|
|
10
|
-
serialize_by_alias=True,
|
|
11
|
-
)
|
|
1
|
+
from pydantic import BaseModel, ConfigDict
|
|
2
|
+
from pydantic.alias_generators import to_camel
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class BaseResponse(BaseModel):
|
|
6
|
+
model_config = ConfigDict(
|
|
7
|
+
alias_generator=to_camel,
|
|
8
|
+
validate_by_name=True,
|
|
9
|
+
validate_by_alias=True,
|
|
10
|
+
serialize_by_alias=True,
|
|
11
|
+
)
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
"""Исключения для базового HTTP клиента."""
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class BaseClientException(Exception):
|
|
5
|
-
"""Базовое исключение для всех ошибок клиента."""
|
|
6
|
-
|
|
7
|
-
def __init__(
|
|
8
|
-
self,
|
|
9
|
-
message: str,
|
|
10
|
-
url: str | None = None,
|
|
11
|
-
status_code: int | None = None,
|
|
12
|
-
response_body: str | None = None,
|
|
13
|
-
) -> None:
|
|
14
|
-
super().__init__(message)
|
|
15
|
-
self.url = url
|
|
16
|
-
self.status_code = status_code
|
|
17
|
-
self.response_body = response_body
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
class ClientResponseErrorException(BaseClientException):
|
|
21
|
-
"""Исключение при неуспешном HTTP статусе (>=400)."""
|
|
22
|
-
|
|
23
|
-
def __init__(
|
|
24
|
-
self,
|
|
25
|
-
message: str,
|
|
26
|
-
url: str | None = None,
|
|
27
|
-
status_code: int | None = None,
|
|
28
|
-
response_body: str | None = None,
|
|
29
|
-
) -> None:
|
|
30
|
-
super().__init__(message, url, status_code, response_body)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class ClientTimeoutException(BaseClientException):
|
|
34
|
-
"""Исключение при таймауте соединения."""
|
|
35
|
-
|
|
36
|
-
def __init__(
|
|
37
|
-
self,
|
|
38
|
-
message: str,
|
|
39
|
-
url: str | None = None,
|
|
40
|
-
) -> None:
|
|
41
|
-
super().__init__(message, url)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
class ClientProxyException(BaseClientException):
|
|
45
|
-
"""Исключение при ошибке прокси."""
|
|
46
|
-
|
|
47
|
-
def __init__(
|
|
48
|
-
self,
|
|
49
|
-
message: str,
|
|
50
|
-
url: str | None = None,
|
|
51
|
-
proxy: str | None = None,
|
|
52
|
-
) -> None:
|
|
53
|
-
super().__init__(message, url)
|
|
54
|
-
self.proxy = proxy
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
class ClientConnectionException(BaseClientException):
|
|
58
|
-
"""Исключение при ошибке соединения (не удалось установить соединение)."""
|
|
59
|
-
|
|
60
|
-
def __init__(
|
|
61
|
-
self,
|
|
62
|
-
message: str,
|
|
63
|
-
url: str | None = None,
|
|
64
|
-
) -> None:
|
|
65
|
-
super().__init__(message, url)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
class ClientDNSException(BaseClientException):
|
|
69
|
-
"""Исключение при ошибке DNS (не удалось разрешить доменное имя)."""
|
|
70
|
-
|
|
71
|
-
def __init__(
|
|
72
|
-
self,
|
|
73
|
-
message: str,
|
|
74
|
-
url: str | None = None,
|
|
75
|
-
) -> None:
|
|
76
|
-
super().__init__(message, url)
|
|
1
|
+
"""Исключения для базового HTTP клиента."""
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class BaseClientException(Exception):
|
|
5
|
+
"""Базовое исключение для всех ошибок клиента."""
|
|
6
|
+
|
|
7
|
+
def __init__(
|
|
8
|
+
self,
|
|
9
|
+
message: str,
|
|
10
|
+
url: str | None = None,
|
|
11
|
+
status_code: int | None = None,
|
|
12
|
+
response_body: str | None = None,
|
|
13
|
+
) -> None:
|
|
14
|
+
super().__init__(message)
|
|
15
|
+
self.url = url
|
|
16
|
+
self.status_code = status_code
|
|
17
|
+
self.response_body = response_body
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ClientResponseErrorException(BaseClientException):
|
|
21
|
+
"""Исключение при неуспешном HTTP статусе (>=400)."""
|
|
22
|
+
|
|
23
|
+
def __init__(
|
|
24
|
+
self,
|
|
25
|
+
message: str,
|
|
26
|
+
url: str | None = None,
|
|
27
|
+
status_code: int | None = None,
|
|
28
|
+
response_body: str | None = None,
|
|
29
|
+
) -> None:
|
|
30
|
+
super().__init__(message, url, status_code, response_body)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class ClientTimeoutException(BaseClientException):
|
|
34
|
+
"""Исключение при таймауте соединения."""
|
|
35
|
+
|
|
36
|
+
def __init__(
|
|
37
|
+
self,
|
|
38
|
+
message: str,
|
|
39
|
+
url: str | None = None,
|
|
40
|
+
) -> None:
|
|
41
|
+
super().__init__(message, url)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class ClientProxyException(BaseClientException):
|
|
45
|
+
"""Исключение при ошибке прокси."""
|
|
46
|
+
|
|
47
|
+
def __init__(
|
|
48
|
+
self,
|
|
49
|
+
message: str,
|
|
50
|
+
url: str | None = None,
|
|
51
|
+
proxy: str | None = None,
|
|
52
|
+
) -> None:
|
|
53
|
+
super().__init__(message, url)
|
|
54
|
+
self.proxy = proxy
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class ClientConnectionException(BaseClientException):
|
|
58
|
+
"""Исключение при ошибке соединения (не удалось установить соединение)."""
|
|
59
|
+
|
|
60
|
+
def __init__(
|
|
61
|
+
self,
|
|
62
|
+
message: str,
|
|
63
|
+
url: str | None = None,
|
|
64
|
+
) -> None:
|
|
65
|
+
super().__init__(message, url)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class ClientDNSException(BaseClientException):
|
|
69
|
+
"""Исключение при ошибке DNS (не удалось разрешить доменное имя)."""
|
|
70
|
+
|
|
71
|
+
def __init__(
|
|
72
|
+
self,
|
|
73
|
+
message: str,
|
|
74
|
+
url: str | None = None,
|
|
75
|
+
) -> None:
|
|
76
|
+
super().__init__(message, url)
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
"""Доменные исключения для обработки ошибок в воркерах."""
|
|
2
|
-
|
|
3
|
-
from tp_common.base.base_client.client_exceptions import BaseClientException
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class BaseBusinessErrorException(BaseClientException):
|
|
7
|
-
"""Базовое исключение для бизнес-ошибок (400, 401, 403, 404, 422)."""
|
|
8
|
-
|
|
9
|
-
pass
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class BaseServerErrorException(BaseClientException):
|
|
13
|
-
"""Базовое исключение для ошибок сервера (500, 502, 503, 504)."""
|
|
14
|
-
|
|
15
|
-
pass
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class BaseNetworkErrorException(BaseClientException):
|
|
19
|
-
"""Базовое исключение для сетевых ошибок (таймауты, соединение, DNS)."""
|
|
20
|
-
|
|
21
|
-
pass
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class BaseProxyErrorException(BaseClientException):
|
|
25
|
-
"""Базовое исключение для ошибок прокси."""
|
|
26
|
-
|
|
27
|
-
pass
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
class AuthorizationException(BaseBusinessErrorException):
|
|
31
|
-
"""Исключение при ошибке авторизации (401, 403)."""
|
|
32
|
-
|
|
33
|
-
pass
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
class ValidationException(BaseBusinessErrorException):
|
|
37
|
-
"""Исключение при ошибке валидации данных (400, 422)."""
|
|
38
|
-
|
|
39
|
-
pass
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
class ResourceNotFoundException(BaseBusinessErrorException):
|
|
43
|
-
"""Исключение при отсутствии ресурса (404)."""
|
|
44
|
-
|
|
45
|
-
pass
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
class ServerException(BaseServerErrorException):
|
|
49
|
-
"""Исключение при ошибке сервера (500, 502, 503, 504)."""
|
|
50
|
-
|
|
51
|
-
pass
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
class TooManyRequestsException(BaseProxyErrorException):
|
|
55
|
-
"""Исключение при превышении лимита запросов (429)."""
|
|
56
|
-
|
|
57
|
-
pass
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
class ServiceUnavailableException(BaseServerErrorException):
|
|
61
|
-
"""Исключение при недоступности сервиса (502, 503, 504)."""
|
|
62
|
-
|
|
63
|
-
pass
|
|
1
|
+
"""Доменные исключения для обработки ошибок в воркерах."""
|
|
2
|
+
|
|
3
|
+
from tp_common.base.base_client.client_exceptions import BaseClientException
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class BaseBusinessErrorException(BaseClientException):
|
|
7
|
+
"""Базовое исключение для бизнес-ошибок (400, 401, 403, 404, 422)."""
|
|
8
|
+
|
|
9
|
+
pass
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class BaseServerErrorException(BaseClientException):
|
|
13
|
+
"""Базовое исключение для ошибок сервера (500, 502, 503, 504)."""
|
|
14
|
+
|
|
15
|
+
pass
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class BaseNetworkErrorException(BaseClientException):
|
|
19
|
+
"""Базовое исключение для сетевых ошибок (таймауты, соединение, DNS)."""
|
|
20
|
+
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class BaseProxyErrorException(BaseClientException):
|
|
25
|
+
"""Базовое исключение для ошибок прокси."""
|
|
26
|
+
|
|
27
|
+
pass
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class AuthorizationException(BaseBusinessErrorException):
|
|
31
|
+
"""Исключение при ошибке авторизации (401, 403)."""
|
|
32
|
+
|
|
33
|
+
pass
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class ValidationException(BaseBusinessErrorException):
|
|
37
|
+
"""Исключение при ошибке валидации данных (400, 422)."""
|
|
38
|
+
|
|
39
|
+
pass
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class ResourceNotFoundException(BaseBusinessErrorException):
|
|
43
|
+
"""Исключение при отсутствии ресурса (404)."""
|
|
44
|
+
|
|
45
|
+
pass
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class ServerException(BaseServerErrorException):
|
|
49
|
+
"""Исключение при ошибке сервера (500, 502, 503, 504)."""
|
|
50
|
+
|
|
51
|
+
pass
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class TooManyRequestsException(BaseProxyErrorException):
|
|
55
|
+
"""Исключение при превышении лимита запросов (429)."""
|
|
56
|
+
|
|
57
|
+
pass
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class ServiceUnavailableException(BaseServerErrorException):
|
|
61
|
+
"""Исключение при недоступности сервиса (502, 503, 504)."""
|
|
62
|
+
|
|
63
|
+
pass
|