1 |
Author: zmedico |
2 |
Date: 2008-06-25 08:42:02 +0000 (Wed, 25 Jun 2008) |
3 |
New Revision: 10780 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/__init__.py |
7 |
Log: |
8 |
Implement __contains__, pop() and clear() for Package.metadata attributes. |
9 |
|
10 |
|
11 |
Modified: main/trunk/pym/_emerge/__init__.py |
12 |
=================================================================== |
13 |
--- main/trunk/pym/_emerge/__init__.py 2008-06-25 07:49:58 UTC (rev 10779) |
14 |
+++ main/trunk/pym/_emerge/__init__.py 2008-06-25 08:42:02 UTC (rev 10780) |
15 |
@@ -1446,6 +1446,29 @@ |
16 |
except KeyError: |
17 |
return default |
18 |
|
19 |
+ def __contains__(self, k): |
20 |
+ return hasattr(self, "_val_" + k) |
21 |
+ |
22 |
+ def pop(self, key, *args): |
23 |
+ if len(args) > 1: |
24 |
+ raise TypeError("pop expected at most 2 arguments, got " + \ |
25 |
+ repr(1 + len(args))) |
26 |
+ try: |
27 |
+ value = self[key] |
28 |
+ except KeyError: |
29 |
+ if args: |
30 |
+ return args[0] |
31 |
+ raise |
32 |
+ del self[key] |
33 |
+ return value |
34 |
+ |
35 |
+ def clear(self): |
36 |
+ for k in self._keys: |
37 |
+ try: |
38 |
+ delattr(self, "_val_" + k) |
39 |
+ except AttributError: |
40 |
+ pass |
41 |
+ |
42 |
def _set_inherited(self, k, v): |
43 |
if isinstance(v, basestring): |
44 |
v = frozenset(v.split()) |
45 |
|
46 |
-- |
47 |
gentoo-commits@l.g.o mailing list |