Module aws_lambda_powertools.utilities.serialization
Standalone functions to serialize/deserialize common data structures
Expand source code
"""Standalone functions to serialize/deserialize common data structures"""
import base64
import json
from typing import Any, Callable
def base64_encode(data: str) -> str:
"""Encode a string and returns Base64-encoded encoded value.
Parameters
----------
data: str
The string to encode.
Returns
-------
str
The Base64-encoded encoded value.
"""
return base64.b64encode(data.encode()).decode("utf-8")
def base64_decode(data: str) -> str:
"""Decodes a Base64-encoded string and returns the decoded value.
Parameters
----------
data: str
The Base64-encoded string to decode.
Returns
-------
str
The decoded string value.
"""
return base64.b64decode(data).decode("utf-8")
def base64_from_str(data: str) -> str:
"""Encode str as base64 string"""
return base64.b64encode(data.encode()).decode("utf-8")
def base64_from_json(data: Any, json_serializer: Callable[..., str] = json.dumps) -> str:
"""Encode JSON serializable data as base64 string
Parameters
----------
data: Any
JSON serializable (dict, list, boolean, etc.)
json_serializer: Callable
function to serialize `obj` to a JSON formatted `str`, by default json.dumps
Returns
-------
str:
JSON string as base64 string
"""
return base64_from_str(data=json_serializer(data))
Functions
def base64_decode(data: str) ‑> str
-
Decodes a Base64-encoded string and returns the decoded value.
Parameters
data
:str
- The Base64-encoded string to decode.
Returns
str
- The decoded string value.
Expand source code
def base64_decode(data: str) -> str: """Decodes a Base64-encoded string and returns the decoded value. Parameters ---------- data: str The Base64-encoded string to decode. Returns ------- str The decoded string value. """ return base64.b64decode(data).decode("utf-8")
def base64_encode(data: str) ‑> str
-
Encode a string and returns Base64-encoded encoded value.
Parameters
data
:str
- The string to encode.
Returns
str
- The Base64-encoded encoded value.
Expand source code
def base64_encode(data: str) -> str: """Encode a string and returns Base64-encoded encoded value. Parameters ---------- data: str The string to encode. Returns ------- str The Base64-encoded encoded value. """ return base64.b64encode(data.encode()).decode("utf-8")
def base64_from_json(data: Any, json_serializer: Callable[..., str] = <function dumps>) ‑> str
-
Encode JSON serializable data as base64 string
Parameters
data
:Any
- JSON serializable (dict, list, boolean, etc.)
json_serializer
:Callable
- function to serialize
obj
to a JSON formattedstr
, by default json.dumps
Returns
str:
- JSON string as base64 string
Expand source code
def base64_from_json(data: Any, json_serializer: Callable[..., str] = json.dumps) -> str: """Encode JSON serializable data as base64 string Parameters ---------- data: Any JSON serializable (dict, list, boolean, etc.) json_serializer: Callable function to serialize `obj` to a JSON formatted `str`, by default json.dumps Returns ------- str: JSON string as base64 string """ return base64_from_str(data=json_serializer(data))
def base64_from_str(data: str) ‑> str
-
Encode str as base64 string
Expand source code
def base64_from_str(data: str) -> str: """Encode str as base64 string""" return base64.b64encode(data.encode()).decode("utf-8")