boto3-assist 0.36.0__tar.gz → 0.37.0__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 (201) hide show
  1. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/PKG-INFO +1 -1
  2. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/pyproject.toml +1 -1
  3. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_key.py +9 -4
  4. boto3_assist-0.37.0/src/boto3_assist/version.py +1 -0
  5. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_model_base_test.py +3 -3
  6. boto3_assist-0.36.0/src/boto3_assist/version.py +0 -1
  7. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/.env.docker +0 -0
  8. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/.env.docker.001 +0 -0
  9. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/.env.docker.nosql.workbench +0 -0
  10. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/.env.unittest +0 -0
  11. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/.gitignore +0 -0
  12. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/.vscode/launch.json +0 -0
  13. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/.vscode/settings.json +0 -0
  14. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/.vscode/tasks.json +0 -0
  15. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/.windsurf/rules/cascade.yaml +0 -0
  16. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/CHANGELOG.md +0 -0
  17. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/LICENSE-EXPLAINED.txt +0 -0
  18. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/LICENSE.txt +0 -0
  19. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/README.md +0 -0
  20. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/aws_regions_with_status.csv +0 -0
  21. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/aws_regions_with_status.json +0 -0
  22. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/devops/build.py +0 -0
  23. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/devops/readme.md +0 -0
  24. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/design-patterns.md +0 -0
  25. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/help/dynamodb/001-guide-single-table-design.md +0 -0
  26. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/help/dynamodb/002-guide-defining-models.md +0 -0
  27. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/help/dynamodb/003-guide-service-layers.md +0 -0
  28. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/help/dynamodb/004-guide-testing-with-moto.md +0 -0
  29. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/help/dynamodb/005-guide-projections-and-reserved-keywords.md +0 -0
  30. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/help/dynamodb/006-guide-how-dynamodb-stores-data.md +0 -0
  31. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/help/dynamodb/007-guide-batch-operations.md +0 -0
  32. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/help/dynamodb/008-guide-transactions.md +0 -0
  33. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/help/dynamodb/009-guide-conditional-writes.md +0 -0
  34. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/help/dynamodb/010-guide-update-expressions.md +0 -0
  35. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/issues/BOTO3_ASSIST_BEFORE_AFTER.md +0 -0
  36. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/issues/BOTO3_ASSIST_DECIMAL_PATTERN.md +0 -0
  37. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/issues/BOTO3_ASSIST_IMPLEMENTATION_CHECKLIST.md +0 -0
  38. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/overview.md +0 -0
  39. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/roadmap.md +0 -0
  40. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/tech-debt.md +0 -0
  41. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/docs/unit-test-patterns.md +0 -0
  42. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/__init__.py +0 -0
  43. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/cloudwatch/log_report.py +0 -0
  44. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/QUICK_REFERENCE_KEY_DEBUGGING.md +0 -0
  45. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/batch_operations_example.py +0 -0
  46. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/conditional_writes_example.py +0 -0
  47. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/debug_keys_example.py +0 -0
  48. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/decimal_conversion_example.py +0 -0
  49. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/models/order_item_model.py +0 -0
  50. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/models/order_model.py +0 -0
  51. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/models/product_model.py +0 -0
  52. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/models/user_model.py +0 -0
  53. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/models/user_post_model.py +0 -0
  54. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/order_example/main.py +0 -0
  55. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/order_example/products.json +0 -0
  56. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/services/order_item_service.py +0 -0
  57. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/services/order_service.py +0 -0
  58. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/services/product_service.py +0 -0
  59. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/services/table_service.py +0 -0
  60. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/services/user_post_service.py +0 -0
  61. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/services/user_service.py +0 -0
  62. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/services/user_service_client_example.py +0 -0
  63. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/services/user_service_resource_example.py +0 -0
  64. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/transactions_example.py +0 -0
  65. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/update_expressions_example.py +0 -0
  66. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/dynamodb/user_post_example/main.py +0 -0
  67. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/examples/ec2/regions_report.py +0 -0
  68. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/module-headers.txt +0 -0
  69. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/mypy.ini +0 -0
  70. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/publish_to_pypi.py +0 -0
  71. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/publish_to_pypi.sh +0 -0
  72. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/pysetup.py +0 -0
  73. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/pysetup.sh +0 -0
  74. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/requirements.dev.txt +0 -0
  75. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/requirements.txt +0 -0
  76. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/run-checks.sh +0 -0
  77. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/run-unit-tests.sh +0 -0
  78. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/__init__.py +0 -0
  79. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/aws_config.py +0 -0
  80. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/aws_lambda/event_info.py +0 -0
  81. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/aws_lambda/mock_context.py +0 -0
  82. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/boto3session.py +0 -0
  83. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/cloudwatch/cloudwatch_connection.py +0 -0
  84. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/cloudwatch/cloudwatch_connection_tracker.py +0 -0
  85. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/cloudwatch/cloudwatch_log_connection.py +0 -0
  86. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/cloudwatch/cloudwatch_logs.py +0 -0
  87. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/cloudwatch/cloudwatch_query.py +0 -0
  88. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/cognito/cognito_authorizer.py +0 -0
  89. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/cognito/cognito_connection.py +0 -0
  90. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/cognito/cognito_utility.py +0 -0
  91. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/cognito/jwks_cache.py +0 -0
  92. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/cognito/user.py +0 -0
  93. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/connection.py +0 -0
  94. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/connection_pool.py +0 -0
  95. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/connection_tracker.py +0 -0
  96. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/__init__.py +0 -0
  97. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb.py +0 -0
  98. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_connection.py +0 -0
  99. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_helpers.py +0 -0
  100. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_importer.py +0 -0
  101. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_index.py +0 -0
  102. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_iservice.py +0 -0
  103. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_model_base.py +0 -0
  104. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_model_base_interfaces.py +0 -0
  105. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_re_indexer.py +0 -0
  106. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_reindexer.py +0 -0
  107. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_reserved_words.py +0 -0
  108. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/dynamodb_reserved_words.txt +0 -0
  109. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/readme.md +0 -0
  110. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/dynamodb/troubleshooting.md +0 -0
  111. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/ec2/ec2_connection.py +0 -0
  112. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/environment_services/__init__.py +0 -0
  113. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/environment_services/environment_loader.py +0 -0
  114. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/environment_services/environment_variables.py +0 -0
  115. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/erc/__init__.py +0 -0
  116. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/erc/ecr_connection.py +0 -0
  117. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/errors/custom_exceptions.py +0 -0
  118. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/http_status_codes.py +0 -0
  119. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/models/serializable_model.py +0 -0
  120. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/role_assumption_mixin.py +0 -0
  121. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/s3/__init__.py +0 -0
  122. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/s3/s3.py +0 -0
  123. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/s3/s3_bucket.py +0 -0
  124. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/s3/s3_connection.py +0 -0
  125. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/s3/s3_event_data.py +0 -0
  126. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/s3/s3_object.py +0 -0
  127. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/securityhub/securityhub.py +0 -0
  128. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/securityhub/securityhub_connection.py +0 -0
  129. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/session_setup_mixin.py +0 -0
  130. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/sqs/__init__.py +0 -0
  131. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/sqs/sqs_connection.py +0 -0
  132. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/sqs/sqs_queue.py +0 -0
  133. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/ssm/connection.py +0 -0
  134. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/ssm/parameter_store/parameter_store.py +0 -0
  135. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/utilities/datetime_utility.py +0 -0
  136. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/utilities/decimal_conversion_utility.py +0 -0
  137. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/utilities/dictionary_utility.py +0 -0
  138. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/utilities/file_operations.py +0 -0
  139. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/utilities/http_utility.py +0 -0
  140. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/utilities/logging_utility.py +0 -0
  141. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/utilities/numbers_utility.py +0 -0
  142. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/utilities/serialization_utility.py +0 -0
  143. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/src/boto3_assist/utilities/string_utility.py +0 -0
  144. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/__init__.py +0 -0
  145. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/integration/cross_account_connection_test.py +0 -0
  146. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/integration/tenant.py +0 -0
  147. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/integration/tenant_services.py +0 -0
  148. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/test_connection_pool.py +0 -0
  149. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/aws_config_test.py +0 -0
  150. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/common/db_test_helpers.py +0 -0
  151. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb/decimal_backward_compatibility_test.py +0 -0
  152. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb/decimal_conversion_integration_test.py +0 -0
  153. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb/test_dynamodb_key_to_dict.py +0 -0
  154. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/__init__.py +0 -0
  155. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/db_models/cms/base.py +0 -0
  156. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/db_models/cms/content_block.py +0 -0
  157. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/db_models/cms/page.py +0 -0
  158. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/db_models/cms/template.py +0 -0
  159. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/db_models/simple_model.py +0 -0
  160. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/db_models/task.py +0 -0
  161. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/db_models/user_model.py +0 -0
  162. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/db_models/user_required_fields_model.py +0 -0
  163. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_batch_operations_test.py +0 -0
  164. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_conditional_test.py +0 -0
  165. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_fail_if_exists_test.py +0 -0
  166. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_model_merge_test.py +0 -0
  167. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_model_projections_test.py +0 -0
  168. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_model_serializtion_test.py +0 -0
  169. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_moto_sorting_test.py +0 -0
  170. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_primary_key_get_test.py +0 -0
  171. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_primary_key_sort_test.py +0 -0
  172. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_query_test.py +0 -0
  173. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_reindex_test.py +0 -0
  174. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_transactions_test.py +0 -0
  175. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/dynamodb_tests/dynamodb_update_expressions_test.py +0 -0
  176. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/examples_test/README.md +0 -0
  177. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/examples_test/__init__.py +0 -0
  178. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/examples_test/order_service_test.py +0 -0
  179. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/examples_test/user_service_test.py +0 -0
  180. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/lambda_tests/__init__.py +0 -0
  181. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/lambda_tests/event_info_test.py +0 -0
  182. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/models_tests/__init__.py +0 -0
  183. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/models_tests/models/person.py +0 -0
  184. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/models_tests/models/user.py +0 -0
  185. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/models_tests/serializable_model_person_test.py +0 -0
  186. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/models_tests/serializable_model_user_test.py +0 -0
  187. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/models_tests/serializable_model_wide_test.py +0 -0
  188. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/parameter_store/__init__.py +0 -0
  189. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/parameter_store/parameter_store_test.py +0 -0
  190. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/s3/__init__.py +0 -0
  191. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/s3/files/test.txt +0 -0
  192. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/s3/s3_event_data_test.py +0 -0
  193. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/s3/s3_file_delete_test.py +0 -0
  194. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/s3/s3_file_upload_test.py +0 -0
  195. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/session_tests/test_boto3_session_manager.py +0 -0
  196. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/utilities/__init__.py +0 -0
  197. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/utilities/case_transformation/files/user_import.json +0 -0
  198. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/utilities/case_transformation/test_case_transformation.py +0 -0
  199. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/utilities/decimal_conversion_utility_test.py +0 -0
  200. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/utilities/serialization_utility_test.py +0 -0
  201. {boto3_assist-0.36.0 → boto3_assist-0.37.0}/tests/unit/utilities/string_utility_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boto3_assist
3
- Version: 0.36.0
3
+ Version: 0.37.0
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
@@ -15,7 +15,7 @@ addopts = "-m 'not integration'"
15
15
 
16
16
  [project]
17
17
  name = "boto3_assist"
18
- version = "0.36.0"
18
+ version = "0.37.0"
19
19
 
20
20
  authors = [
21
21
  { name="Eric Wilson", email="boto3-assist@geekcafe.com" }
@@ -48,15 +48,15 @@ class DynamoDBKey:
48
48
  def to_dict(self) -> dict[str, str]:
49
49
  """
50
50
  Return a dictionary representation of this key for debugging.
51
-
51
+
52
52
  Returns:
53
53
  Dictionary with attribute name as key and value as the value.
54
-
54
+
55
55
  Example:
56
56
  >>> key = DynamoDBKey(attribute_name="pk", value="user#123")
57
57
  >>> key.to_dict()
58
58
  {'pk': 'user#123'}
59
-
59
+
60
60
  >>> # With lambda
61
61
  >>> key = DynamoDBKey(attribute_name="pk", value=lambda: "user#456")
62
62
  >>> key.to_dict()
@@ -119,8 +119,13 @@ class DynamoDBKey:
119
119
  for key, value in key_value_pairs:
120
120
  prefix = f"{key}#" if key else ""
121
121
  if value is None:
122
- parts.append(f"{prefix}")
122
+ # don't add the prefix we may want loose begins with and compound here will break it
123
+ # parts.append(f"{prefix}")
124
+ if len(parts) == 0:
125
+ parts.append(f"{prefix}")
126
+ # exit after the first None
123
127
  break
128
+
124
129
  elif len(str(value).strip()) == 0:
125
130
  parts.append(f"{key}")
126
131
  else:
@@ -0,0 +1 @@
1
+ __version__ = "0.37.0"
@@ -112,7 +112,7 @@ class DynamoDBModelUnitTest(unittest.TestCase):
112
112
 
113
113
  key_1: Dict = keys[1].get("key")
114
114
  self.assertEqual(key_1.get("name"), "gsi3_sk")
115
- self.assertEqual(key_1.get("key"), "firstname#John#lastname#")
115
+ self.assertEqual(key_1.get("key"), "firstname#John")
116
116
 
117
117
  resource = user.to_resource_dictionary()
118
118
  self.assertIsNotNone(resource)
@@ -159,7 +159,7 @@ class DynamoDBModelUnitTest(unittest.TestCase):
159
159
  self.assertEqual(keys[3].partition_key.attribute_name, "gsi3_pk")
160
160
  self.assertEqual(keys[3].partition_key.value, "users#")
161
161
  self.assertEqual(keys[3].sort_key.attribute_name, "gsi3_sk")
162
- self.assertEqual(keys[3].sort_key.value, "firstname#John#lastname#")
162
+ self.assertEqual(keys[3].sort_key.value, "firstname#John")
163
163
 
164
164
  print("stop")
165
165
 
@@ -224,6 +224,6 @@ class DynamoDBModelUnitTest(unittest.TestCase):
224
224
  self.assertEqual(dictionary.get("gsi2_sk"), "lastname#")
225
225
 
226
226
  self.assertEqual(dictionary.get("gsi3_pk"), "users#")
227
- self.assertEqual(dictionary.get("gsi3_sk"), "firstname#John#lastname#")
227
+ self.assertEqual(dictionary.get("gsi3_sk"), "firstname#John")
228
228
 
229
229
  print("stop")
@@ -1 +0,0 @@
1
- __version__ = "0.36.0"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes