X-Git-Url: http://git.maemo.org/git/?p=theonering;a=blobdiff_plain;f=src%2Futil%2Fmisc.py;h=cf5c22a63c862cf1102f09af56774938f5dd4dbe;hp=69a5b0986e5c53c4bd9f67131b31749c2c296ef4;hb=074b7adedaeba92d5993f8015be26c684f8bbfd8;hpb=143205c6b83d3ba4ca82d799838c629dafa194c7;ds=sidebyside diff --git a/src/util/misc.py b/src/util/misc.py index 69a5b09..cf5c22a 100644 --- a/src/util/misc.py +++ b/src/util/misc.py @@ -718,3 +718,40 @@ def is_valid_number(number): @returns If This number be called ( syntax validation only ) """ return _VALIDATE_RE.match(number) is not None + + +def parse_version(versionText): + """ + >>> parse_version("0.5.2") + [0, 5, 2] + """ + return [ + int(number) + for number in versionText.split(".") + ] + + +def compare_versions(leftParsedVersion, rightParsedVersion): + """ + >>> compare_versions([0, 1, 2], [0, 1, 2]) + 0 + >>> compare_versions([0, 1, 2], [0, 1, 3]) + -1 + >>> compare_versions([0, 1, 2], [0, 2, 2]) + -1 + >>> compare_versions([0, 1, 2], [1, 1, 2]) + -1 + >>> compare_versions([0, 1, 3], [0, 1, 2]) + 1 + >>> compare_versions([0, 2, 2], [0, 1, 2]) + 1 + >>> compare_versions([1, 1, 2], [0, 1, 2]) + 1 + """ + for left, right in zip(leftParsedVersion, rightParsedVersion): + if left < right: + return -1 + elif right < left: + return 1 + else: + return 0