File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -147,6 +147,24 @@ def __getattr__(self, name):
147147 raise AttributeError (name )
148148 return arg
149149
150+
151+ # Ensure there is no __dir__ override in the base class.
152+ assert (getattr (Observable , '__dir__' , None ) is
153+ getattr (Configurable , '__dir__' , None ) is
154+ getattr (Validatable , '__dir__' , None ) is
155+ getattr (object , '__dir__' , None ))
156+
157+ def __dir__ (self ):
158+ "Return sorted list of attributes for this object."
159+ rv = set (dir (type (self )))
160+ rv .update (self .__dict__ .keys ())
161+ # self.get fetches looks up for items in all managed dictionaries.
162+ # Add keys from each dictionary in self.__managed.
163+ rv .update (* self .__managed )
164+ rv = sorted (rv )
165+ return rv
166+
167+
150168 # Needed by __setattr__
151169 _parameters = {}
152170 __managed = {}
You can’t perform that action at this time.
0 commit comments