def _latest_version_from_object_names(object_names: typing.Iterator[str]) -> str:
dead_versions = set() # type: typing.Set[str]
all_versions = set() # type: typing.Set[str]
set_checks = [
(DSS_BUNDLE_TOMBSTONE_REGEX, dead_versions),
(DSS_BUNDLE_KEY_REGEX, all_versions),
]
for object_name in object_names:
for regex, version_set in set_checks:
match = regex.match(object_name)
if match:
_, version = match.groups()
version_set.add(version)
break
version = None
for current_version in (all_versions - dead_versions):
if version is None or current_version > version:
version = current_version
return version
评论列表
文章目录