From e76160b01db52f9e750a605983eb85ae97305629 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Sat, 19 Jul 2008 21:51:07 +0000 Subject: 8: Experimental work on more OO definition of what gets pluged into API.commands --- ipalib/base.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'ipalib/base.py') diff --git a/ipalib/base.py b/ipalib/base.py index 51324f938..62949eef5 100644 --- a/ipalib/base.py +++ b/ipalib/base.py @@ -101,7 +101,7 @@ class NameSpace(object): __locked = False # Whether __setattr__ has been locked - def __init__(self, kw): + def __init__(self, kw, order=None): """ The single constructor argument `kw` is a dict of the (key, value) pairs to be in this NameSpace instance. @@ -111,7 +111,11 @@ class NameSpace(object): for (key, value) in self.__kw.items(): assert not key.startswith('_') setattr(self, key, value) - self.__keys = sorted(self.__kw) + if order is None: + self.__keys = sorted(self.__kw) + else: + self.__keys = list(order) + assert set(self.__keys) == set(self.__kw) self.__locked = True def __setattr__(self, name, value): -- cgit