diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-05-13 15:15:57 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-05-13 15:15:57 -0700 |
commit | 2209b21e0ee6c14f9293d589cf0ddba44ee816f4 (patch) | |
tree | f437761d8c3e4639d0a06523e683670702964571 | |
parent | 9007f3699d8ca63d800340e9c269b4d4233f4866 (diff) | |
download | portage-2209b21e0ee6c14f9293d589cf0ddba44ee816f4.tar.gz portage-2209b21e0ee6c14f9293d589cf0ddba44ee816f4.tar.bz2 portage-2209b21e0ee6c14f9293d589cf0ddba44ee816f4.zip |
cpv_sort_key: use _pkg_str
-rw-r--r-- | pym/portage/versions.py | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/pym/portage/versions.py b/pym/portage/versions.py index 85928a847..50eba56bd 100644 --- a/pym/portage/versions.py +++ b/pym/portage/versions.py @@ -421,22 +421,32 @@ def cpv_sort_key(eapi=None): split1 = split_cache.get(cpv1, False) if split1 is False: - split1 = catpkgsplit(cpv1, eapi=eapi) - if split1 is not None: - split1 = (split1[:2], '-'.join(split1[2:])) + split1 = None + try: + split1 = cpv1.cpv + except AttributeError: + try: + split1 = _pkg_str(cpv1, eapi=eapi) + except InvalidData: + pass split_cache[cpv1] = split1 split2 = split_cache.get(cpv2, False) if split2 is False: - split2 = catpkgsplit(cpv2, eapi=eapi) - if split2 is not None: - split2 = (split2[:2], '-'.join(split2[2:])) + split2 = None + try: + split2 = cpv2.cpv + except AttributeError: + try: + split2 = _pkg_str(cpv2, eapi=eapi) + except InvalidData: + pass split_cache[cpv2] = split2 - if split1 is None or split2 is None or split1[0] != split2[0]: + if split1 is None or split2 is None or split1.cp != split2.cp: return (cpv1 > cpv2) - (cpv1 < cpv2) - return vercmp(split1[1], split2[1]) + return vercmp(split1.version, split2.version) return cmp_sort_key(cmp_cpv) |