diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-03-11 06:45:33 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-03-11 06:45:33 +0000 |
commit | 7b9fa50aefd35192abac9eebf15fd9e0ada47b0e (patch) | |
tree | eff8bafbea38083ca051903b0a0fdd7073a3714a | |
parent | 4f7909794bd378a997204d1e6eba80c057312445 (diff) | |
download | portage-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
-rw-r--r-- | pym/portage/util.py | 18 |
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] |