From d206044abba9c61557cb41ee1484af2159bb3401 Mon Sep 17 00:00:00 2001
From: Drew Pearce <drew@caffdev.com>
Date: Fri, 24 May 2024 16:37:11 -0400
Subject: [PATCH] Cast floats to decimal.Decimal for dynamodb put

---
 CHANGELOG.md                      | 4 ++++
 abnosql/plugins/table/dynamodb.py | 1 +
 abnosql/version.py                | 2 +-
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c7adf10..7ab2bc4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
 Changelog
 =========
 
+## [v0.0.26] - 2024-05-24
+
+- Cast floats to decimal.Decimal for dynamodb put
+
 ## [v0.0.25] - 2024-05-21
 - Azure Cosmos update fix
 
diff --git a/abnosql/plugins/table/dynamodb.py b/abnosql/plugins/table/dynamodb.py
index 60c4719..669ee26 100644
--- a/abnosql/plugins/table/dynamodb.py
+++ b/abnosql/plugins/table/dynamodb.py
@@ -197,6 +197,7 @@ def put_item(
         audit_user: t.Optional[str] = None
     ) -> t.Dict:
         item, _ = put_item_pre(self, item, update, audit_user)
+        item = json.loads(json.dumps(item), parse_float=Decimal)
 
         # do update
         if update is True:
diff --git a/abnosql/version.py b/abnosql/version.py
index bad0140..e585376 100644
--- a/abnosql/version.py
+++ b/abnosql/version.py
@@ -1,4 +1,4 @@
-__version__ = '0.0.25'
+__version__ = '0.0.26'
 
 
 if __name__ == '__main__':