clear-skies-aws 1.9.11__py3-none-any.whl → 1.9.13__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: clear-skies-aws
3
- Version: 1.9.11
3
+ Version: 1.9.13
4
4
  Summary: clearskies bindings for working in AWS
5
5
  Home-page: https://github.com/cmancone/clearskies-aws
6
6
  License: MIT
@@ -11,6 +11,8 @@ Classifier: License :: OSI Approved :: MIT License
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.10
13
13
  Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
14
16
  Provides-Extra: akeyless
15
17
  Provides-Extra: ses
16
18
  Requires-Dist: boto3 (>=1.26.148,<2.0.0)
@@ -12,7 +12,7 @@ clearskies_aws/actions/sqs_test.py,sha256=aazVN-bY6E17Pu3hDwLldj6YPirbqXjM6LfYFo
12
12
  clearskies_aws/actions/step_function.py,sha256=0Sz1CVVeKJi3IohtLnnNmhAbuxR7Gl9ic56ml0K3Qmg,2363
13
13
  clearskies_aws/actions/step_function_test.py,sha256=3xrNYFQ8fCe3CqPEnVnJsE0rIUlnnFez4rfPzphYVUU,2742
14
14
  clearskies_aws/backends/__init__.py,sha256=kS6pmMKZuWzBefO7qQu1fkFdcXo180t76-a-pPc1YX8,83
15
- clearskies_aws/backends/dynamo_db_backend.py,sha256=YCpIlDWbYfuVsYnPOUhP8M0G6uFDMu8gf3b7dLYw9B0,29333
15
+ clearskies_aws/backends/dynamo_db_backend.py,sha256=Ng8IORbYVSh6Sj-mjpret3qmdSeI1U9t3GJ1uUdaGd4,29574
16
16
  clearskies_aws/backends/dynamo_db_backend_test.py,sha256=iAT8d5lOho8Kv70up7wkLuf2VJhdR7qdJ-TxHsupjQI,13150
17
17
  clearskies_aws/backends/sqs_backend.py,sha256=hT1JCvCMU76Q4Ir7OeX8U8eAMLIu1_tMwGgaN9rpsPk,2726
18
18
  clearskies_aws/backends/sqs_backend_test.py,sha256=iCuHVVqZIR_PDGUUMZIkpir8yyJy3dcPR00AWR2N25U,1138
@@ -41,8 +41,8 @@ clearskies_aws/input_outputs/lambda_api_gateway_web_socket.py,sha256=kG2fys9X7Ta
41
41
  clearskies_aws/input_outputs/lambda_elb.py,sha256=b675h0DxTGo9YscXN4mwzRGzP3hNSie4iPRKOg3kKPI,750
42
42
  clearskies_aws/input_outputs/lambda_http_gateway.py,sha256=YQk7GlQWtQjDiKWhX5jvXc3un1eq2sm1v_jl6iseNoQ,692
43
43
  clearskies_aws/input_outputs/lambda_invocation.py,sha256=YB1DvtpOAQjIZ6Vu-vAecbbkHQ9YheGMYHAZozN4Dzs,928
44
- clearskies_aws/input_outputs/lambda_sns.py,sha256=Q1J98aQRyH9m8mWzOHnsbHOSLzVbD6dC19PwV6HFrEA,2163
45
- clearskies_aws/input_outputs/lambda_sqs_standard.py,sha256=4xfHFetUiDZe6XrmwQ28bZUnVDLQs8s6i5vNdSbz8Z8,2082
44
+ clearskies_aws/input_outputs/lambda_sns.py,sha256=t1iWH1OaOm23ZSQoKgS6l53FTExFziPVju3wf86D0WY,2266
45
+ clearskies_aws/input_outputs/lambda_sqs_standard.py,sha256=8UlYNi3DHZB9i8OXy8LsM13OIHtbOFxVh-LvyNN0yao,2185
46
46
  clearskies_aws/mocks/__init__.py,sha256=mn764gINN667tYoJfnsM6HjAAhCsO_kZ6E-fUwdLY50,22
47
47
  clearskies_aws/mocks/actions/__init__.py,sha256=to1r8B365Et2PRVfUWWnJGt7Hdr8vwwQuNyZvTSTP6g,152
48
48
  clearskies_aws/mocks/actions/ses.py,sha256=sCCNk_WdnQbINOzg8E31xyoeoEuUQeX-RwPbJ9ueNik,937
@@ -61,7 +61,7 @@ clearskies_aws/secrets/parameter_store_test.py,sha256=UyqKE4AZYlldj9ww5f0fR15qsV
61
61
  clearskies_aws/secrets/secrets_manager.py,sha256=jlpfAFC23EeSpm50L8B-yrXg4IROQq-M_90zzXDp_ak,3056
62
62
  clearskies_aws/secrets/secrets_manager_test.py,sha256=mlNWtDm1wWS5C8aV0vJAzZVZB82KFR6NGRAPEkLtTyk,786
63
63
  clearskies_aws/web_socket_connection_model.py,sha256=d_Au_Pu7YXBfc7_lbuI7zz4MZ8ZOOwGM0oooppEofcI,1776
64
- clear_skies_aws-1.9.11.dist-info/LICENSE,sha256=3Ehd0g3YOpCj8sqj0Xjq5qbOtjjgk9qzhhD9YjRQgOA,1053
65
- clear_skies_aws-1.9.11.dist-info/METADATA,sha256=PeznbUMEZNFuStdlMSLKopC4NXW6caxpCaUQ18F89a4,8481
66
- clear_skies_aws-1.9.11.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
67
- clear_skies_aws-1.9.11.dist-info/RECORD,,
64
+ clear_skies_aws-1.9.13.dist-info/LICENSE,sha256=3Ehd0g3YOpCj8sqj0Xjq5qbOtjjgk9qzhhD9YjRQgOA,1053
65
+ clear_skies_aws-1.9.13.dist-info/METADATA,sha256=1RFOINl2a5ar7NqszZYfzerQ6lSp0KH9TynbpvNyBHM,8583
66
+ clear_skies_aws-1.9.13.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
67
+ clear_skies_aws-1.9.13.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.7.0
2
+ Generator: poetry-core 1.9.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -138,6 +138,8 @@ class DynamoDBBackend(Backend):
138
138
  )
139
139
  table = self._dynamodb.Table(model.table_name())
140
140
 
141
+ data = self.excessive_type_casting(data)
142
+
141
143
  updated = table.update_item(
142
144
  Key=key,
143
145
  UpdateExpression='SET ' + ', '.join([f"#{column_name} = :{column_name}" for column_name in data.keys()]),
@@ -158,6 +160,12 @@ class DynamoDBBackend(Backend):
158
160
  table.put_item(Item=data)
159
161
  return {**data}
160
162
 
163
+ def excessive_type_casting(self, data):
164
+ for (key, value) in data.items():
165
+ if isinstance(value, float):
166
+ data[key] = Decimal(value)
167
+ return data
168
+
161
169
  def delete(self, id, model):
162
170
  table = self._dynamodb.Table(model.table_name())
163
171
  table.delete_item(Key={model.id_column_name: model.__getattr__(model.id_column_name)})
@@ -17,10 +17,10 @@ class LambdaSns(LambdaAPIGateway):
17
17
  def get_body(self):
18
18
  return self._record
19
19
 
20
- def request_data(self, required=True):
21
- return self.json_body(required=required)
20
+ def request_data(self, required=True, allow_non_json_bodies=False):
21
+ return self.json_body(required=required, allow_non_json_bodies=allow_non_json_bodies)
22
22
 
23
- def json_body(self, required=True):
23
+ def json_body(self, required=True, allow_non_json_bodies=False):
24
24
  if not self._record:
25
25
  if required:
26
26
  raise ClientError("No SNS message found")
@@ -16,10 +16,10 @@ class LambdaSqsStandard(LambdaAPIGateway):
16
16
  def has_body(self):
17
17
  return True
18
18
 
19
- def request_data(self, required=True):
20
- return self.json_body(required=required)
19
+ def request_data(self, required=True, allow_non_json_bodies=False):
20
+ return self.json_body(required=required, allow_non_json_bodies=allow_non_json_bodies)
21
21
 
22
- def json_body(self, required=True):
22
+ def json_body(self, required=True, allow_non_json_bodies=False):
23
23
  if not self._record:
24
24
  if required:
25
25
  raise ClientError("SQS message was not valid JSON")