AWS Lambda and Compression

I've looked online repeatedly for code samples that discuss using gzip compression with AWS Lambdas, specifically with Python code, and I couldn't find any, so I decided to provide this code sample. I'm sure there's things that are missing with it, but this solves my underlying problem and does so in a manner that works well enough.

import json
import base64
import gzip
from decimal import *

class DecimalEncoder(json.JSONEncoder):
    def default(self, obj):
        # 👇️ if passed in object is instance of Decimal
        # convert it to a string
        if isinstance(obj, Decimal):
            return str(obj)
        # 👇️ otherwise use the default behavior
        return json.JSONEncoder.default(self, obj)

def respond(statusCode: int = 200, body: dict = {}, headers: dict = {}, event: dict = {}):
    isBase64Encoded = False

    if 'Content-Type' not in headers or headers['Content-Type'] == 'application/json':
        body = json.dumps(body, cls=DecimalEncoder)


    if isinstance(body, str):
        originalSize = len(body)

        if event is not None and 'headers' in event and 'accept-encoding' in event['headers'] and 'gzip' in event['headers']['accept-encoding']:
            body = base64.b64encode(gzip.compress(bytes(body, 'utf-8')))
            isBase64Encoded = True
            headers['Content-Encoding'] = 'gzip'
            headers['Content-Length'] = len(body)
            headers['X-Original-Content-Length'] = originalSize

    return {
        "statusCode": statusCode,
        "body": body,
        "headers": headers,
        "isBase64Encoded": isBase64Encoded,
    }