コード例 #1
0
ファイル: dep.py プロジェクト: berkerovic/entropy
def entropy_compare_package_tags(tag_a, tag_b):
    """
    Compare two Entropy package tags using builtin cmp().

    @param tag_a: Entropy package tag
    @type tag_a: string
    @param tag_b: Entropy package tag
    @type tag_b: string
    return: negative number if tag_a < tag_b, positive number if tag_a > tag_b.
        zero if tag_a == tag_b.
    rtype: int
    """
    return const_cmp(_nat_sort_key(tag_a), _nat_sort_key(tag_b))
コード例 #2
0
ファイル: dep.py プロジェクト: skwerlman/entropy
def entropy_compare_versions(ver_data, ver_data2):
    """
    @description: compare two lists composed by
        [version,tag,revision] and [version,tag,revision]
        if ver_data > ver_data2 --> positive number
        if ver_data == ver_data2 --> 0
        if ver_data < ver_data2 --> negative number
    @input package: ver_data[version,tag,rev] and ver_data2[version,tag,rev]
    @output: integer number
    """
    a_ver, a_tag, a_rev = ver_data
    b_ver, b_tag, b_rev = ver_data2

    # if both are tagged, check tag first
    rc = 0
    if a_tag and b_tag:
        rc = const_cmp(a_tag, b_tag)
    if rc == 0:
        rc = compare_versions(a_ver, b_ver)

    if rc == 0:
        # check tag
        tag_cmp = entropy_compare_package_tags(a_tag, b_tag)
        if tag_cmp < 0:
            return -1
        elif tag_cmp > 0:
            return 1
        else:
            # check rev
            if a_rev > b_rev:
                return 1
            elif a_rev < b_rev:
                return -1
            return 0

    return rc