in src/sagemaker_training/mapping.py [0:0]
def to_cmd_args(mapping): # type: (dict) -> list
"""Transform a dictionary in a list of cmd arguments.
Example:
>>>args = mapping.to_cmd_args({'model_dir': '/opt/ml/model', 'batch_size': 25})
>>>
>>>print(args)
['--model_dir', '/opt/ml/model', '--batch_size', 25]
Args:
mapping (dict[str, object]): A Python mapping.
Returns:
(list): List of cmd arguments.
"""
sorted_keys = sorted(mapping.keys())
def arg_name(obj):
string = _decode(obj)
if string:
return "--%s" % string if len(string) > 1 else "-%s" % string
else:
return ""
arg_names = [arg_name(argument) for argument in sorted_keys]
def arg_value(value):
if hasattr(value, "items"):
map_items = ["%s=%s" % (k, v) for k, v in sorted(value.items())]
return ",".join(map_items)
return _decode(value)
arg_values = [arg_value(mapping[key]) for key in sorted_keys]
items = zip(arg_names, arg_values)
return [item for item in itertools.chain.from_iterable(items)]