from rpm_version import Evr, EvrSortKey
key_a = EvrSortKey.from_values("1", "2.0", "3.fc40")
key_b = EvrSortKey.from_values("1", "3.0", "1.fc40")
assert key_a < key_b
print(f"{key_a!r} < {key_b!r}")
key_c = EvrSortKey.parse("1:2.0-3.fc40")
assert key_a == key_c
print(f"from_values and parse produce identical keys: {key_a == key_c}")
versions = ["2.0-1", "1:0.1-1", "1.0~rc1-1", "1.0-1"]
sorted_versions = sorted(versions, key=EvrSortKey.parse)
print(f"\nSorted by sort key: {sorted_versions}")
sorted_by_evr = sorted(versions, key=Evr.parse)
assert sorted_versions == sorted_by_evr
print(f"Sorted by Evr: {sorted_by_evr}")
evr = Evr.parse("1:2.0-3.fc40")
assert evr.sortkey() == EvrSortKey.from_values("1", "2.0", "3.fc40")