Use catsplit() instead of a regex to generate dbapi._categories. Thanks to
authorZac Medico <zmedico@gentoo.org>
Sun, 27 Sep 2009 19:07:57 +0000 (19:07 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 27 Sep 2009 19:07:57 +0000 (19:07 -0000)
Marat Radchenko <marat@slonopotamus.org> for this patch.

svn path=/main/trunk/; revision=14448

pym/portage/dbapi/__init__.py

index c904d5d2cb43887a87e9eee1ce63b5e76cec21e2..53358c8295e987715f1a22f0d475d729b9d2d361 100644 (file)
@@ -12,7 +12,7 @@ portage.proxy.lazyimport.lazyimport(globals(),
        'portage.locks:unlockfile',
        'portage.output:colorize',
        'portage.util:cmp_sort_key,writemsg',
-       'portage.versions:catpkgsplit,vercmp',
+       'portage.versions:catsplit,catpkgsplit,vercmp',
 )
 
 from portage import os
@@ -39,11 +39,8 @@ class dbapi(object):
                """
                if self._categories is not None:
                        return self._categories
-               categories = set()
-               cat_pattern = re.compile(r'(.*)/.*')
-               for cp in self.cp_all():
-                       categories.add(cat_pattern.match(cp).group(1))
-               self._categories = tuple(sorted(categories))
+               self._categories = tuple(sorted(set(catsplit(x)[0] \
+                       for x in self.cp_all())))
                return self._categories
 
        def close_caches(self):