internal 1.1.32__tar.gz → 1.1.32.2__tar.gz

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.

Potentially problematic release.


This version of internal might be problematic. Click here for more details.

Files changed (40) hide show
  1. {internal-1.1.32 → internal-1.1.32.2}/PKG-INFO +1 -1
  2. {internal-1.1.32 → internal-1.1.32.2}/pyproject.toml +1 -1
  3. {internal-1.1.32 → internal-1.1.32.2}/src/internal/database.py +17 -1
  4. {internal-1.1.32 → internal-1.1.32.2}/README.md +0 -0
  5. {internal-1.1.32 → internal-1.1.32.2}/src/internal/__init__.py +0 -0
  6. {internal-1.1.32 → internal-1.1.32.2}/src/internal/base_config.py +0 -0
  7. {internal-1.1.32 → internal-1.1.32.2}/src/internal/base_factory.py +0 -0
  8. {internal-1.1.32 → internal-1.1.32.2}/src/internal/cache_redis.py +0 -0
  9. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/__init__.py +0 -0
  10. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/car_relation_type.py +0 -0
  11. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/description_type.py +0 -0
  12. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/device_code.py +0 -0
  13. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/event_code.py +0 -0
  14. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/lpr_direction.py +0 -0
  15. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/notify_type.py +0 -0
  16. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/operator_type.py +0 -0
  17. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/order_type.py +0 -0
  18. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/point_type.py +0 -0
  19. {internal-1.1.32 → internal-1.1.32.2}/src/internal/common_enum/websocket_channel.py +0 -0
  20. {internal-1.1.32 → internal-1.1.32.2}/src/internal/const.py +0 -0
  21. {internal-1.1.32 → internal-1.1.32.2}/src/internal/exception/__init__.py +0 -0
  22. {internal-1.1.32 → internal-1.1.32.2}/src/internal/exception/app_exception.py +0 -0
  23. {internal-1.1.32 → internal-1.1.32.2}/src/internal/exception/base_exception.py +0 -0
  24. {internal-1.1.32 → internal-1.1.32.2}/src/internal/exception/internal_exception.py +0 -0
  25. {internal-1.1.32 → internal-1.1.32.2}/src/internal/ext/__init__.py +0 -0
  26. {internal-1.1.32 → internal-1.1.32.2}/src/internal/ext/amazon/__init__.py +0 -0
  27. {internal-1.1.32 → internal-1.1.32.2}/src/internal/ext/amazon/aws/__init__.py +0 -0
  28. {internal-1.1.32 → internal-1.1.32.2}/src/internal/ext/amazon/aws/const.py +0 -0
  29. {internal-1.1.32 → internal-1.1.32.2}/src/internal/http/__init__.py +0 -0
  30. {internal-1.1.32 → internal-1.1.32.2}/src/internal/http/requests.py +0 -0
  31. {internal-1.1.32 → internal-1.1.32.2}/src/internal/http/responses.py +0 -0
  32. {internal-1.1.32 → internal-1.1.32.2}/src/internal/interface/__init__.py +0 -0
  33. {internal-1.1.32 → internal-1.1.32.2}/src/internal/interface/base_interface.py +0 -0
  34. {internal-1.1.32 → internal-1.1.32.2}/src/internal/middleware/__init__.py +0 -0
  35. {internal-1.1.32 → internal-1.1.32.2}/src/internal/middleware/log_request.py +0 -0
  36. {internal-1.1.32 → internal-1.1.32.2}/src/internal/model/__init__.py +0 -0
  37. {internal-1.1.32 → internal-1.1.32.2}/src/internal/model/base_model.py +0 -0
  38. {internal-1.1.32 → internal-1.1.32.2}/src/internal/model/operate.py +0 -0
  39. {internal-1.1.32 → internal-1.1.32.2}/src/internal/utils.py +0 -0
  40. {internal-1.1.32 → internal-1.1.32.2}/src/internal/validator_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: internal
3
- Version: 1.1.32
3
+ Version: 1.1.32.2
4
4
  Summary:
5
5
  Author: Ray
6
6
  Author-email: ray@cruisys.com
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "internal"
3
- version = "1.1.32"
3
+ version = "1.1.32.2"
4
4
  description = ""
5
5
  authors = [{ name = "Ray", email = "ray@cruisys.com" }]
6
6
  readme = "README.md"
@@ -2,6 +2,18 @@ from motor.motor_asyncio import AsyncIOMotorClient
2
2
  from pymongo.errors import ServerSelectionTimeoutError
3
3
 
4
4
  from .exception.internal_exception import DatabaseInitializeFailureException, DatabaseConnectFailureException
5
+ from bson import Decimal128
6
+ from bson.codec_options import CodecOptions, TypeDecoder, TypeRegistry
7
+ from decimal import Decimal
8
+
9
+
10
+ class Decimal128Decoder(TypeDecoder):
11
+ """自定義 Decimal128 解碼器,自動轉換為 Python Decimal"""
12
+ bson_type = Decimal128
13
+ python_type = Decimal
14
+
15
+ def transform_bson(self, value):
16
+ return value.to_decimal()
5
17
 
6
18
 
7
19
  class MongoDB:
@@ -42,7 +54,11 @@ class MongoDB:
42
54
  def get_database(self):
43
55
  if not self.client:
44
56
  raise DatabaseConnectFailureException()
45
- return self.client[self.db_name]
57
+
58
+ type_registry = TypeRegistry([Decimal128Decoder()])
59
+ codec_options = CodecOptions(type_registry=type_registry)
60
+
61
+ return self.client.get_database(self.db_name, codec_options=codec_options)
46
62
 
47
63
  async def get_mongodb_uri(self) -> str:
48
64
  if self.user_name and self.password:
File without changes