"""Common utils module.""" import time import json import gzip import base64 def data_as_kinesis_records(data): """Convert data to kinesis records.""" return [ { 'kinesis': { 'data': data, 'sequenceNumber': '49630869663206379057764630213697086073881148560949379154', 'kinesisSchemaVersion': '1.0', 'approximateArrivalTimestamp': time.time() } } ] def compress_payload(data): """Compress json payload size and encode.""" json_bytes = json.dumps(data).encode('utf-8') gzip_bytes = gzip.compress(json_bytes) b85_encoded = base64.b85encode(gzip_bytes) return b85_encoded.decode('utf-8') def decompress_payload(data): """Decompress payload to json.""" b85_decoded = base64.b85decode(data.encode('utf-8')) decompress_gzip = gzip.decompress(b85_decoded) return json.loads(decompress_gzip)