class_docstr: An AttrTree offers convenient, multi-level attribute access for
  collections of objects. AttrTree objects may also be combined
  together using the update method or merge classmethod. Here is an
  example of adding a ViewableElement to an AttrTree and accessing it:
  
  >>> t = AttrTree()
  >>> t.Example.Path = 1
  >>> t.Example.Path                             #doctest: +ELLIPSIS
  1
class_docstr_tok: ["An","AttrTree","offers","convenient",",","multi-level","attribute","access","for","collections","of","objects",".","AttrTree","objects","may","also","be","combined","together","using","the","update","method","or","merge","classmethod",".","Here","is","an","example","of","adding","a","ViewableElement","to","an","AttrTree","and","accessing","it",":",">",">",">","t","=","AttrTree","(",")",">",">",">","t.Example.Path","=","1",">",">",">","t.Example.Path","#","doctest",":","+ELLIPSIS","1"]
docstr: The _dir_mode may be set to 'default' or 'user' in which case
  only the child nodes added by the user are listed.
docstr_tok: ["The","_dir_mode","may","be","set","to","'default","'","or","'user","'","in","which","case","only","the","child","nodes","added","by","the","user","are","listed","."]
code: def __dir__(self):
      """
      The _dir_mode may be set to 'default' or 'user' in which case
      only the child nodes added by the user are listed.
      """
      dict_keys = self.__dict__.keys()
      if self.__dict__["_dir_mode"] == "user":
          return self.__dict__["children"]
      else:
          return dir(type(self)) + list(dict_keys)
  
imports: from .None import util
  from .pprint import PrettyPrinter
label_desc: Use image node_id 2 for calling the AttrTree obj's underlying member method code with example usage: obj.__dir__() and returns: self, unknown