summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-03-11 06:45:33 +0000
committerZac Medico <zmedico@gentoo.org>2009-03-11 06:45:33 +0000
commit7b9fa50aefd35192abac9eebf15fd9e0ada47b0e (patch)
treeeff8bafbea38083ca051903b0a0fdd7073a3714a /pym
parent4f7909794bd378a997204d1e6eba80c057312445 (diff)
downloadportage-7b9fa50aefd35192abac9eebf15fd9e0ada47b0e.tar.gz
portage-7b9fa50aefd35192abac9eebf15fd9e0ada47b0e.tar.bz2
portage-7b9fa50aefd35192abac9eebf15fd9e0ada47b0e.zip
Add keyword argument support to LazyItemsDict.update(). (trunk r12771)
svn path=/main/branches/2.1.6/; revision=13015
Diffstat (limited to 'pym')
-rw-r--r--pym/portage/util.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/pym/portage/util.py b/pym/portage/util.py
index 11fdd21fe..bc181ba37 100644
--- a/pym/portage/util.py
+++ b/pym/portage/util.py
@@ -1084,8 +1084,19 @@ class LazyItemsDict(dict):
self.addLazyItem(item_key,
self._SingletonWrapper(self, item_key, value_callable,
*pargs, **kwargs))
- def update(self, map_obj):
- if isinstance(map_obj, LazyItemsDict):
+
+ def update(self, *args, **kwargs):
+ if len(args) > 1:
+ raise TypeError(
+ "expected at most 1 positional argument, got " + \
+ repr(len(args)))
+ if args:
+ map_obj = args[0]
+ else:
+ map_obj = None
+ if map_obj is None:
+ pass
+ elif isinstance(map_obj, LazyItemsDict):
for k in map_obj:
if k in map_obj.lazy_items:
dict.__setitem__(self, k, None)
@@ -1094,6 +1105,9 @@ class LazyItemsDict(dict):
self.lazy_items.update(map_obj.lazy_items)
else:
dict.update(self, map_obj)
+ if kwargs:
+ dict.update(self, kwargs)
+
def __getitem__(self, item_key):
if item_key in self.lazy_items:
value_callable, pargs, kwargs = self.lazy_items[item_key]