boto3-assist 0.2.8__tar.gz → 0.2.10__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.
Files changed (101) hide show
  1. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/PKG-INFO +1 -1
  2. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/pyproject.toml +1 -1
  3. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb.py +10 -1
  4. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_index.py +13 -1
  5. boto3_assist-0.2.10/src/boto3_assist/version.py +1 -0
  6. boto3_assist-0.2.8/src/boto3_assist/version.py +0 -1
  7. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/.env.docker +0 -0
  8. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/.env.docker.001 +0 -0
  9. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/.env.docker.nosql.workbench +0 -0
  10. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/.env.unittest +0 -0
  11. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/.gitignore +0 -0
  12. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/.vscode/launch.json +0 -0
  13. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/.vscode/settings.json +0 -0
  14. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/.vscode/tasks.json +0 -0
  15. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/LICENSE-EXPLAINED.txt +0 -0
  16. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/LICENSE.txt +0 -0
  17. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/README.md +0 -0
  18. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/aws_regions_with_status.csv +0 -0
  19. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/aws_regions_with_status.json +0 -0
  20. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/devops/build.py +0 -0
  21. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/devops/readme.md +0 -0
  22. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/__init__.py +0 -0
  23. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/cloudwatch/log_report.py +0 -0
  24. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/models/order_item_model.py +0 -0
  25. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/models/order_model.py +0 -0
  26. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/models/product_model.py +0 -0
  27. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/models/user_model.py +0 -0
  28. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/models/user_post_model.py +0 -0
  29. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/order_example/main.py +0 -0
  30. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/order_example/products.json +0 -0
  31. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/services/order_item_service.py +0 -0
  32. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/services/order_service.py +0 -0
  33. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/services/product_service.py +0 -0
  34. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/services/table_service.py +0 -0
  35. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/services/user_post_service.py +0 -0
  36. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/services/user_service.py +0 -0
  37. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/services/user_service_client_example.py +0 -0
  38. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/services/user_service_resource_example.py +0 -0
  39. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/dynamodb/user_post_example/main.py +0 -0
  40. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/examples/ec2/regions_report.py +0 -0
  41. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/module-headers.txt +0 -0
  42. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/mypy.ini +0 -0
  43. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/requirements-dev.txt +0 -0
  44. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/requirements.txt +0 -0
  45. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/run-checks.sh +0 -0
  46. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/__init__.py +0 -0
  47. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/boto3session.py +0 -0
  48. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/cloudwatch/cloudwatch_connection.py +0 -0
  49. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/cloudwatch/cloudwatch_connection_tracker.py +0 -0
  50. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/cloudwatch/cloudwatch_log_connection.py +0 -0
  51. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/cloudwatch/cloudwatch_logs.py +0 -0
  52. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/cloudwatch/cloudwatch_query.py +0 -0
  53. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/connection.py +0 -0
  54. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/connection_tracker.py +0 -0
  55. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_connection.py +0 -0
  56. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_connection_tracker.py +0 -0
  57. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_helpers.py +0 -0
  58. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_importer.py +0 -0
  59. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_iservice.py +0 -0
  60. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_key.py +0 -0
  61. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_model_base.py +0 -0
  62. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_model_base_interfaces.py +0 -0
  63. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_reindexer.py +0 -0
  64. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_reserved_words.py +0 -0
  65. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/dynamodb_reserved_words.txt +0 -0
  66. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/readme.md +0 -0
  67. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/dynamodb/troubleshooting.md +0 -0
  68. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/ec2/ec2_connection.py +0 -0
  69. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/environment_services/__init__.py +0 -0
  70. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/environment_services/environment_loader.py +0 -0
  71. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/environment_services/environment_variables.py +0 -0
  72. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/errors/custom_exceptions.py +0 -0
  73. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/s3/s3.py +0 -0
  74. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/s3/s3_connection.py +0 -0
  75. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/utilities/datetime_utility.py +0 -0
  76. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/utilities/file_operations.py +0 -0
  77. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/utilities/http_utility.py +0 -0
  78. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/utilities/logging_utility.py +0 -0
  79. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/utilities/serialization_utility.py +0 -0
  80. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/src/boto3_assist/utilities/string_utility.py +0 -0
  81. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/__init__.py +0 -0
  82. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/__top/__init__.py +0 -0
  83. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/__init__.py +0 -0
  84. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/dynamodb_model_base_test.py +0 -0
  85. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/dynamodb_model_projections_test.py +0 -0
  86. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/dynamodb_model_serializtion_test.py +0 -0
  87. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/dynamodb_moto_sorting_test.py +0 -0
  88. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/dynamodb_reindex_test.py +0 -0
  89. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/models/cms/base.py +0 -0
  90. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/models/cms/content_block.py +0 -0
  91. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/models/cms/page.py +0 -0
  92. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/models/cms/template.py +0 -0
  93. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/models/simple_model.py +0 -0
  94. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/dynamodb/models/user_model.py +0 -0
  95. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/examples_test/__init__.py +0 -0
  96. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/examples_test/user_service_test.py +0 -0
  97. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/s3/__init__.py +0 -0
  98. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/s3/files/test.txt +0 -0
  99. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/s3/s3_file_upload_test.py +0 -0
  100. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/utilities/__init__.py +0 -0
  101. {boto3_assist-0.2.8 → boto3_assist-0.2.10}/tests/utilities/serialization_utility_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boto3_assist
3
- Version: 0.2.8
3
+ Version: 0.2.10
4
4
  Summary: Additional boto3 wrappers to make your life a little easier
5
5
  Author-email: Eric Wilson <boto3-assist@geekcafe.com>
6
6
  License-File: LICENSE-EXPLAINED.txt
@@ -7,7 +7,7 @@ packages = ["src/boto3_assist"]
7
7
 
8
8
  [project]
9
9
  name = "boto3_assist"
10
- version = "0.2.8"
10
+ version = "0.2.10"
11
11
 
12
12
  authors = [
13
13
  { name="Eric Wilson", email="boto3-assist@geekcafe.com" }
@@ -82,11 +82,20 @@ class DynamoDB(DynamoDBConnection):
82
82
  try:
83
83
  if not isinstance(item, dict):
84
84
  # attemp to convert it
85
+ if not isinstance(item, DynamoDBModelBase):
86
+ raise RuntimeError(
87
+ f"Item is not a dictionary or DynamoDBModelBase. Type: {type(item).__name__}. "
88
+ "In order to prep the model for saving, it needs to already be dictionary or support "
89
+ "the to_resource_dictionary() method, which is available when you inherit from DynamoDBModelBase. "
90
+ "Unable to save item to DynamoDB. The entry was not saved."
91
+ )
85
92
  try:
86
93
  item = item.to_resource_dictionary()
87
94
  except Exception as e: # pylint: disable=w0718
88
95
  logger.exception(e)
89
- raise ValueError("Unsupported item or module was passed.") from e
96
+ raise RuntimeError(
97
+ "An error occured during model converation. The entry was not saved. "
98
+ ) from e
90
99
 
91
100
  if isinstance(item, dict):
92
101
  self.__log_item_size(item=item)
@@ -28,6 +28,14 @@ class DynamoDBIndexes:
28
28
  def add_primary(self, index: DynamoDBIndex):
29
29
  """Add an index"""
30
30
  index.name = DynamoDBIndexes.PRIMARY_INDEX
31
+
32
+ if index.name in self.__indexes:
33
+ raise ValueError(
34
+ f"The index {index.name} is already defined in your model somewhere. "
35
+ "This error is generated to protect you from unforseen issues. "
36
+ "If you models are inheriting from other models, you may have the primary defined twice."
37
+ )
38
+
31
39
  self.__indexes[DynamoDBIndexes.PRIMARY_INDEX] = index
32
40
 
33
41
  def add_secondary(self, index: DynamoDBIndex):
@@ -37,7 +45,11 @@ class DynamoDBIndexes:
37
45
 
38
46
  # if the index already exists, raise an exception
39
47
  if index.name in self.__indexes:
40
- raise ValueError(f"Index {index.name} already exists")
48
+ raise ValueError(
49
+ f"The index {index.name} is already defined in your model somewhere. "
50
+ "This error is generated to protect you from unforseen issues. "
51
+ "If you models are inheriting from other models, you may have the primary defined twice."
52
+ )
41
53
  if index.name == DynamoDBIndexes.PRIMARY_INDEX:
42
54
  raise ValueError(f"Index {index.name} is reserved for the primary index")
43
55
  if index.partition_key is None:
@@ -0,0 +1 @@
1
+ __version__ = '0.2.10'
@@ -1 +0,0 @@
1
- __version__ = '0.2.8'
File without changes
File without changes
File without changes
File without changes
File without changes