From 1cf348f016d10e3cabe5909646de283562e21f24 Mon Sep 17 00:00:00 2001 From: "Shane R. Spencer" <305301+whardier@users.noreply.github.com> Date: Fri, 29 Oct 2021 17:22:05 -0800 Subject: [PATCH] Update invoke.py Parity with how AWS Bootstrap Operates. --- lib/plugins/aws/invokeLocal/runtimeWrappers/invoke.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/plugins/aws/invokeLocal/runtimeWrappers/invoke.py b/lib/plugins/aws/invokeLocal/runtimeWrappers/invoke.py index 0df5bc4bc27..5279f5e53c9 100755 --- a/lib/plugins/aws/invokeLocal/runtimeWrappers/invoke.py +++ b/lib/plugins/aws/invokeLocal/runtimeWrappers/invoke.py @@ -3,9 +3,17 @@ import json import logging import sys +import decimal from time import strftime, time from importlib import import_module +def decimal_serializer(o): + if isinstance(o, decimal.Decimal): + f = float(o) + if f.is_integer(): + return int(f) + return f + class FakeLambdaContext(object): def __init__(self, name='Fake', version='LATEST', timeout=6, **kwargs): self.name = name @@ -84,4 +92,4 @@ def log(self): context = FakeLambdaContext(**input.get('context', {})) result = handler(input['event'], context) - sys.stdout.write(json.dumps(result, indent=4)) + sys.stdout.write(json.dumps(result, default=decimal_serializer, indent=4))