[docs]defparse_tags(data:TagSetType)->TagType:""" Convert the tag set in boto3 API response into pythonic dictionary key value pairs. - get_bucket_tagging_: it's a tag set. - get_object_tagging_: it's a tag set. :param data: the tag set in boto3 API response. :return: the pythonic dictionary key value pairs. """ifisinstance(data,list):return{dct["Key"]:dct["Value"]fordctindata}else:# pragma: no coverraiseNotImplementedError
[docs]defencode_tag_set(tags:TagType)->TagSetType:""" Some API requires: ``[{"Key": "name", "Value": "Alice"}, {...}, ...]`` for tagging parameter. Example:: >>> encode_tag_set({"name": "Alice", ...}) [{"Key": "name", "Value": "Alice"}, ...] """return[{"Key":k,"Value":v}fork,vintags.items()]
[docs]defencode_url_query(tags:TagType)->str:""" Some API requires: ``Key1=Value1&Key2=Value2`` for tagging parameter. Example:: >>> encode_url_query({"name": "Alice", ...}) "name=Alice&..." """returnurlencode(tags)
[docs]defencode_for_put_object(tags:TagType)->str:""" Encode tags for put_object_. """returnencode_url_query(tags)
[docs]defencode_for_put_bucket_tagging(tags:TagType)->TagSetType:""" Encode tags for put_bucket_tagging_. """returnencode_tag_set(tags)
[docs]defencode_for_put_object_tagging(tags:TagType)->TagSetType:""" Encode tags for put_object_tagging_. """returnencode_tag_set(tags)