finalsa-common-models 2.0.3__py3-none-any.whl → 2.0.4__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.
@@ -9,6 +9,9 @@ from finalsa.common.models.models import (
9
9
  to_sqs_message_attributes,
10
10
  to_sns_message_attributes,
11
11
  )
12
+ from finalsa.common.models.exceptions import (
13
+ BaseDomainException,
14
+ )
12
15
 
13
16
 
14
17
  __all__ = [
@@ -21,4 +24,5 @@ __all__ = [
21
24
  "parse_sqs_message_attributes",
22
25
  "to_sqs_message_attributes",
23
26
  "to_sns_message_attributes",
27
+ "BaseDomainException",
24
28
  ]
@@ -0,0 +1,5 @@
1
+ from .base_domain_exception import BaseDomainException
2
+
3
+ __all__ = [
4
+ "BaseDomainException",
5
+ ]
@@ -0,0 +1,43 @@
1
+ from typing import Optional
2
+ import functools
3
+
4
+
5
+ def from_camel_case_to_snake_case(name: str) -> str:
6
+ """
7
+ Convert a camelCase string to snake_case.
8
+ """
9
+ if not name:
10
+ return name
11
+ result = []
12
+ for char in name:
13
+ if char.isupper():
14
+ if result:
15
+ result.append('_')
16
+ result.append(char.lower())
17
+ else:
18
+ result.append(char)
19
+ return ''.join(result)
20
+
21
+
22
+ class BaseDomainException(Exception):
23
+ response_code = 500
24
+
25
+ @classmethod
26
+ @property
27
+ @functools.lru_cache(maxsize=None)
28
+ def __class_name__(cls):
29
+ return from_camel_case_to_snake_case(cls.__name__)
30
+
31
+ def __init__(
32
+ self,
33
+ message: str,
34
+ response_code: Optional[int] = 500,
35
+ name: Optional[str] = None
36
+ ) -> None:
37
+ super().__init__(message)
38
+ self.message = message
39
+ self.response_code = response_code
40
+ if name is None:
41
+ self.name = self.__class_name__
42
+ else:
43
+ self.name = name
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: finalsa-common-models
3
- Version: 2.0.3
3
+ Version: 2.0.4
4
4
  Summary: Common models for Finalsa
5
5
  Project-URL: Homepage, https://github.com/finalsa/finalsa-common-models
6
6
  Author-email: Luis Jimenez <luis@finalsa.com>
@@ -28,8 +28,8 @@ License: MIT License
28
28
  License-File: LICENSE.md
29
29
  Keywords: common,finalsa,models
30
30
  Requires-Python: >=3.10
31
- Requires-Dist: orjson>=3.10.16
32
- Requires-Dist: pydantic>=2.11.1
31
+ Requires-Dist: orjson>=3.11.2
32
+ Requires-Dist: pydantic>=2.11.7
33
33
  Requires-Dist: python-dateutil>=2.9.0.post0
34
34
  Description-Content-Type: text/markdown
35
35
 
@@ -0,0 +1,11 @@
1
+ finalsa/common/models/__init__.py,sha256=bhw87n6l-6a4tfGGwg1mZXfjoS1sbf94akZpuVaCZ8I,588
2
+ finalsa/common/models/exceptions/__init__.py,sha256=Gu9bclVmdSnNTXhcRrVICkCzQK9HT0xRCr0zRvrXJE8,96
3
+ finalsa/common/models/exceptions/base_domain_exception.py,sha256=SWp6B41nfAxQyOF2X9SlwRMB7z4z_NS4lvSdO7PPkaA,1027
4
+ finalsa/common/models/models/__init__.py,sha256=idkn9Md7ApwVAelmOh7sd1V5Qa2V9AqwqpkMbXhY2_A,468
5
+ finalsa/common/models/models/functions.py,sha256=vKUrhl3AVfnYBqqKYpZbZevrBpUx7ywqhtU3KKPqWUE,2983
6
+ finalsa/common/models/models/meta.py,sha256=VKBmzkBs1W6so9bmTXO5kIIQ2f3MzrTdZhz4bHG1FsQ,711
7
+ finalsa/common/models/models/sqs_response.py,sha256=GKkDyWYeYEUCRHp2H8MjxvzFuwWL1ngzpf5zILhVUNg,2258
8
+ finalsa_common_models-2.0.4.dist-info/METADATA,sha256=nG4rqT1mwp_OCq-J-8TRtCv_1Jmj1bIxL--hov2gonM,3053
9
+ finalsa_common_models-2.0.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
10
+ finalsa_common_models-2.0.4.dist-info/licenses/LICENSE.md,sha256=yqzhfnTBr2S4lUBx-yibVPOIXRUDPrSUN9-_7AsC6OU,1084
11
+ finalsa_common_models-2.0.4.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- finalsa/common/models/__init__.py,sha256=cJQBAlbwE0zC6yaqPPD4XsQjxBbg5uR--WpNIPro0Tw,487
2
- finalsa/common/models/models/__init__.py,sha256=idkn9Md7ApwVAelmOh7sd1V5Qa2V9AqwqpkMbXhY2_A,468
3
- finalsa/common/models/models/functions.py,sha256=vKUrhl3AVfnYBqqKYpZbZevrBpUx7ywqhtU3KKPqWUE,2983
4
- finalsa/common/models/models/meta.py,sha256=VKBmzkBs1W6so9bmTXO5kIIQ2f3MzrTdZhz4bHG1FsQ,711
5
- finalsa/common/models/models/sqs_response.py,sha256=GKkDyWYeYEUCRHp2H8MjxvzFuwWL1ngzpf5zILhVUNg,2258
6
- finalsa_common_models-2.0.3.dist-info/METADATA,sha256=SO0_gLyS-7nRStPN3y-DGsKmYXnFwJc3YRMjXhszAhI,3054
7
- finalsa_common_models-2.0.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8
- finalsa_common_models-2.0.3.dist-info/licenses/LICENSE.md,sha256=yqzhfnTBr2S4lUBx-yibVPOIXRUDPrSUN9-_7AsC6OU,1084
9
- finalsa_common_models-2.0.3.dist-info/RECORD,,