in oss2/xml_utils.py [0:0]
def parse_list_object_versions(result, body):
root = ElementTree.fromstring(body)
url_encoded = _is_url_encoding(root)
result.is_truncated = _find_bool(root, 'IsTruncated')
if result.is_truncated:
result.next_key_marker = _find_object(root, 'NextKeyMarker', url_encoded)
result.next_versionid_marker = _find_object(root, "NextVersionIdMarker", url_encoded)
result.name = _find_tag(root, "Name")
result.prefix = _find_object(root, "Prefix", url_encoded)
result.key_marker = _find_object(root, "KeyMarker", url_encoded)
result.versionid_marker = _find_object(root, "VersionIdMarker", url_encoded)
result.max_keys = _find_int(root, "MaxKeys")
result.delimiter = _find_object(root, "Delimiter", url_encoded)
for delete_marker in root.findall("DeleteMarker"):
deleteInfo = DeleteMarkerInfo()
deleteInfo.key = _find_object(delete_marker, "Key", url_encoded)
deleteInfo.versionid = _find_tag(delete_marker, "VersionId")
deleteInfo.is_latest = _find_bool(delete_marker, "IsLatest")
deleteInfo.last_modified = iso8601_to_unixtime(_find_tag(delete_marker, "LastModified"))
deleteInfo.owner.id = _find_tag(delete_marker, "Owner/ID")
deleteInfo.owner.display_name = _find_tag(delete_marker, "Owner/DisplayName")
result.delete_marker.append(deleteInfo)
for version in root.findall("Version"):
versionInfo = ObjectVersionInfo()
versionInfo.key = _find_object(version, "Key", url_encoded)
versionInfo.versionid = _find_tag(version, "VersionId")
versionInfo.is_latest = _find_bool(version, "IsLatest")
versionInfo.last_modified = iso8601_to_unixtime(_find_tag(version, "LastModified"))
versionInfo.owner.id = _find_tag(version, "Owner/ID")
versionInfo.owner.display_name = _find_tag(version, "Owner/DisplayName")
versionInfo.type = _find_tag(version, "Type")
versionInfo.storage_class = _find_tag(version, "StorageClass")
versionInfo.size = _find_int(version, "Size")
versionInfo.etag = _find_tag(version, "ETag").strip('"')
versionInfo.restore_info = _find_tag_with_default(version, 'RestoreInfo', None)
result.versions.append(versionInfo)
for common_prefix in root.findall("CommonPrefixes"):
result.common_prefix.append(_find_object(common_prefix, "Prefix", url_encoded))
return result