summaryrefslogtreecommitdiffstats
path: root/pym/portage/versions.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-05-13 15:15:57 -0700
committerZac Medico <zmedico@gentoo.org>2012-05-13 15:15:57 -0700
commit2209b21e0ee6c14f9293d589cf0ddba44ee816f4 (patch)
treef437761d8c3e4639d0a06523e683670702964571 /pym/portage/versions.py
parent9007f3699d8ca63d800340e9c269b4d4233f4866 (diff)
downloadportage-2209b21e0ee6c14f9293d589cf0ddba44ee816f4.tar.gz
portage-2209b21e0ee6c14f9293d589cf0ddba44ee816f4.tar.bz2
portage-2209b21e0ee6c14f9293d589cf0ddba44ee816f4.zip
cpv_sort_key: use _pkg_str
Diffstat (limited to 'pym/portage/versions.py')
-rw-r--r--pym/portage/versions.py26
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)