From 512b456df7dfc87acbe1046d610d016d2006bb66 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 11 Mar 2009 06:06:19 +0000 Subject: Make the UserDict and LazyItemsDict constructors use an optional positional argument instead of a keyword argument. (trunk r12674) svn path=/main/branches/2.1.6/; revision=12934 --- pym/portage/__init__.py | 2 +- pym/portage/cache/mappings.py | 14 ++++++++++---- pym/portage/util.py | 17 ++++++++++++++--- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 1026f9ba2..5ab44d762 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -7680,7 +7680,7 @@ def create_trees(config_root=None, target_root=None, trees=None): myroots.append((settings["ROOT"], settings)) for myroot, mysettings in myroots: - trees[myroot] = portage.util.LazyItemsDict(trees.get(myroot, None)) + trees[myroot] = portage.util.LazyItemsDict(trees.get(myroot, {})) trees[myroot].addLazySingleton("virtuals", mysettings.getvirtuals, myroot) trees[myroot].addLazySingleton( "vartree", vartree, myroot, categories=mysettings.categories, diff --git a/pym/portage/cache/mappings.py b/pym/portage/cache/mappings.py index a632ce61d..1117b855b 100644 --- a/pym/portage/cache/mappings.py +++ b/pym/portage/cache/mappings.py @@ -139,10 +139,16 @@ class UserDict(MutableMapping): http://bugs.python.org/issue2876 """ - def __init__(self, dict=None, **kwargs): - self.data = {} - if dict is not None: - self.update(dict) + def __init__(self, *args, **kwargs): + + if len(args) > 1: + raise TypeError( + "expected at most 1 positional argument, got " + \ + repr(len(args))) + + if args: + self.update(args[0]) + if kwargs: self.update(kwargs) diff --git a/pym/portage/util.py b/pym/portage/util.py index ce226a4f7..d18faff2a 100644 --- a/pym/portage/util.py +++ b/pym/portage/util.py @@ -1201,11 +1201,22 @@ class LazyItemsDict(dict): __slots__ = ('lazy_items',) - def __init__(self, initial_items=None): + def __init__(self, *args, **kwargs): + + if len(args) > 1: + raise TypeError( + "expected at most 1 positional argument, got " + \ + repr(len(args))) + dict.__init__(self) self.lazy_items = {} - if initial_items is not None: - self.update(initial_items) + + if args: + self.update(args[0]) + + if kwargs: + self.update(kwargs) + def addLazyItem(self, item_key, value_callable, *pargs, **kwargs): """Add a lazy item for the given key. When the item is requested, value_callable will be called with *pargs and **kwargs arguments.""" -- cgit v1.2.3-1-g7c22