in src/aws_encryption_sdk_cli/internal/arg_parsing.py [0:0]
def _parse_kwargs(args):
# type: (RAW_CONFIG) -> PARSED_CONFIG
"""Parses a list of CLI arguments of "key=value" form into key/values pairs.
:param iterable args: arguments to unpack
:returns: parsed arguments
:rtype: dict
:raises ParameterParseError: if a badly formed parameter if found
"""
value_error_message = 'Argument parameter must follow the format "key=value"'
kwargs = defaultdict(list) # type: Dict[str, List[str]]
for arg in args:
_LOGGER.debug("Attempting to parse argument: %s", arg)
try:
key, value = arg.split("=", 1)
if not (key and value):
raise ParameterParseError(value_error_message)
kwargs[key].append(value)
except ValueError:
_LOGGER.debug("Failed to parse argument")
raise ParameterParseError(value_error_message)
return dict(kwargs)