From 7b9fa50aefd35192abac9eebf15fd9e0ada47b0e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 11 Mar 2009 06:45:33 +0000 Subject: Add keyword argument support to LazyItemsDict.update(). (trunk r12771) svn path=/main/branches/2.1.6/; revision=13015 --- pym/portage/util.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'pym') 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] -- cgit v1.2.3-1-g7c22