Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r10754 - main/trunk/pym/portage/sets
Date: Sat, 21 Jun 2008 14:58:19
Message-Id: E1KA4Xd-0007g2-VX@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-06-21 14:58:13 +0000 (Sat, 21 Jun 2008)
3 New Revision: 10754
4
5 Modified:
6 main/trunk/pym/portage/sets/libs.py
7 Log:
8 Make LibraryConsumerSet.mapPathsToAtoms() use the contents index for more
9 efficient owner lookups.
10
11
12 Modified: main/trunk/pym/portage/sets/libs.py
13 ===================================================================
14 --- main/trunk/pym/portage/sets/libs.py 2008-06-21 11:58:44 UTC (rev 10753)
15 +++ main/trunk/pym/portage/sets/libs.py 2008-06-21 14:58:13 UTC (rev 10754)
16 @@ -4,11 +4,8 @@
17
18 from portage.sets.base import PackageSet
19 from portage.sets import get_boolean
20 -from portage.dbapi.vartree import dblink
21 -from portage.versions import catsplit, catpkgsplit
22 +from portage.versions import catpkgsplit
23
24 -import os
25 -
26 class LibraryConsumerSet(PackageSet):
27 _operations = ["merge", "unmerge"]
28
29 @@ -19,17 +16,13 @@
30
31 def mapPathsToAtoms(self, paths):
32 rValue = set()
33 - for cpv in self.dbapi.cpv_all():
34 - mysplit = catsplit(cpv)
35 - link = dblink(mysplit[0], mysplit[1], myroot=self.dbapi.root, \
36 - mysettings=self.dbapi.settings, treetype='vartree', \
37 - vartree=self.dbapi.vartree)
38 - if paths.intersection(link.getcontents()):
39 - cat, pn = catpkgsplit(cpv)[:2]
40 - slot = self.dbapi.aux_get(cpv, ["SLOT"])[0]
41 - rValue.add("%s/%s:%s" % (cat, pn, slot))
42 + root_len = len(self.dbapi.root)
43 + for link, relative_p in self.dbapi._owners.iter_owners(
44 + p[root_len:] for p in paths):
45 + cat, pn = catpkgsplit(link.mycpv)[:2]
46 + slot = self.dbapi.aux_get(link.mycpv, ["SLOT"])[0]
47 + rValue.add("%s/%s:%s" % (cat, pn, slot))
48 return rValue
49 -
50
51 class PreservedLibraryConsumerSet(LibraryConsumerSet):
52 def load(self):
53
54 --
55 gentoo-commits@l.g.o mailing list