Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/
Date: Fri, 18 Nov 2011 03:26:37
Message-Id: 2793d2259c34e32bc3f208f5c6f402ebd71e1077.zmedico@gentoo
1 commit: 2793d2259c34e32bc3f208f5c6f402ebd71e1077
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Fri Nov 18 03:26:18 2011 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Fri Nov 18 03:26:18 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=2793d225
7
8 config: centralize mapping impl in _getitem/pop
9
10 ---
11 pym/portage/package/ebuild/config.py | 36 +++++++++++++++++++--------------
12 1 files changed, 21 insertions(+), 15 deletions(-)
13
14 diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py
15 index 6d5de92..b722a21 100644
16 --- a/pym/portage/package/ebuild/config.py
17 +++ b/pym/portage/package/ebuild/config.py
18 @@ -2076,13 +2076,15 @@ class config(object):
19 self._virtuals_manager._treeVirtuals = {}
20
21 def __delitem__(self,mykey):
22 - self.modifying()
23 - for x in self.lookuplist:
24 - if x != None:
25 - if mykey in x:
26 - del x[mykey]
27 + self.pop(mykey)
28 +
29 + def __getitem__(self, key):
30 + try:
31 + return self._getitem(key)
32 + except KeyError:
33 + return '' # for backward compat, don't raise KeyError
34
35 - def __getitem__(self,mykey):
36 + def _getitem(self, mykey):
37
38 # These ones point to temporary values when
39 # portage plans to update itself.
40 @@ -2094,15 +2096,17 @@ class config(object):
41 for d in self.lookuplist:
42 if mykey in d:
43 return d[mykey]
44 - return '' # for backward compat, don't raise KeyError
45 +
46 + raise KeyError(mykey)
47
48 def get(self, k, x=None):
49 - for d in self.lookuplist:
50 - if k in d:
51 - return d[k]
52 - return x
53 + try:
54 + return self._getitem(k)
55 + except KeyError:
56 + return x
57
58 def pop(self, key, *args):
59 + self.modifying()
60 if len(args) > 1:
61 raise TypeError(
62 "pop expected at most 2 arguments, got " + \
63 @@ -2118,10 +2122,12 @@ class config(object):
64
65 def __contains__(self, mykey):
66 """Called to implement membership test operators (in and not in)."""
67 - for d in self.lookuplist:
68 - if mykey in d:
69 - return True
70 - return False
71 + try:
72 + self._getitem(mykey)
73 + except KeyError:
74 + return False
75 + else:
76 + return True
77
78 def setdefault(self, k, x=None):
79 v = self.get(k)