in src/sagemaker/apiutils/_boto_functions.py [0:0]
def to_boto(member_vars, member_name_to_boto_name, member_name_to_type):
"""Convert a dict of of snake case names to values into a boto UpperCamelCase representation.
Args:
member_vars dict[str, ?]: A map from snake case name to value.
member_name_to_boto_name dict[str, ?]: A map from snake_case name to boto name.
Returns:
dict: boto dict converted to snake case
"""
to_boto_values = {}
# Strip out all entries in member_vars that have a None value. None values are treated as
# not having a value
# set, required as API operations can have optional parameters that may not take a null value.
member_vars = {k: v for k, v in member_vars.items() if v is not None}
# Iterate over each snake_case name and its value and map to a camel case name. If the value
# is an ApiObject subclass then recursively map its entries.
for member_name, member_value in member_vars.items():
boto_name = member_name_to_boto_name.get(member_name, to_camel_case(member_name))
api_type, is_api_collection_type = member_name_to_type.get(member_name, (None, None))
if is_api_collection_type and isinstance(member_value, dict):
boto_value = {
k: api_type.to_boto(v) if api_type else v for k, v in member_value.items()
}
elif is_api_collection_type and isinstance(member_value, list):
boto_value = [api_type.to_boto(v) if api_type else v for v in member_value]
else:
boto_value = api_type.to_boto(member_value) if api_type else member_value
to_boto_values[boto_name] = boto_value
return to_boto_values