in alibabacloud_oss_v2/serde_utils.py [0:0]
def deserialize_encode_type(result: serde.Model, _: OperationOutput) -> serde.Model:
"""
do url decode
"""
if not hasattr(result, 'encoding_type'):
raise exceptions.DeserializationError(
error=f'{result.__class__} has not encoding_type attribute')
if result.encoding_type is None or result.encoding_type != 'url':
return result
if isinstance(result, ListObjectsResult):
# fields
fields = ['prefix', 'marker', 'delimiter', 'next_marker']
# Contents.Key
if isinstance(result.contents, List):
for i, _ in enumerate(result.contents):
result.contents[i].key = unquote(result.contents[i].key)
# CommonPrefixes.Prefix
if isinstance(result.common_prefixes, List):
for i, _ in enumerate(result.common_prefixes):
result.common_prefixes[i].prefix = unquote(
result.common_prefixes[i].prefix)
elif isinstance(result, ListObjectsV2Result):
# fields
fields = ['prefix', 'start_after', 'continuation_token', 'delimiter', 'next_continuation_token']
# Contents.Key
if isinstance(result.contents, List):
for i, _ in enumerate(result.contents):
result.contents[i].key = unquote(result.contents[i].key)
# CommonPrefixes.Prefix
if isinstance(result.common_prefixes, List):
for i, _ in enumerate(result.common_prefixes):
result.common_prefixes[i].prefix = unquote(
result.common_prefixes[i].prefix)
elif isinstance(result, ListObjectVersionsResult):
# fields
fields = ['prefix', 'key_marker', 'delimiter', 'next_key_marker']
# Version.Key
if isinstance(result.version, List):
for i, _ in enumerate(result.version):
result.version[i].key = unquote(result.version[i].key)
# DeleteMarker.Key
if isinstance(result.delete_marker, List):
for i, _ in enumerate(result.delete_marker):
result.delete_marker[i].key = unquote(result.delete_marker[i].key)
# CommonPrefixes.Prefix
if isinstance(result.common_prefixes, List):
for i, _ in enumerate(result.common_prefixes):
result.common_prefixes[i].prefix = unquote(
result.common_prefixes[i].prefix)
elif isinstance(result, DeleteMultipleObjectsResult):
# fields
fields = []
# deleted_objects.Key
if isinstance(result.deleted_objects, List):
for i, _ in enumerate(result.deleted_objects):
result.deleted_objects[i].key = unquote(result.deleted_objects[i].key)
elif isinstance(result, InitiateMultipartUploadResult):
# fields
fields = ['key']
elif isinstance(result, CompleteMultipartUploadResult):
# fields
fields = ['key']
elif isinstance(result, ListMultipartUploadsResult):
# fields
fields = ['key_marker', 'next_key_marker', 'prefix', 'delimiter']
# Upload.Key
if isinstance(result.uploads, List):
for i, _ in enumerate(result.uploads):
result.uploads[i].key = unquote(result.uploads[i].key)
elif isinstance(result, ListPartsResult):
# fields
fields = ['key']
else:
fields = []
for field in fields:
val = getattr(result, field)
if val is not None:
setattr(result, field, unquote(val))
return result