code: def dir2(obj):
      """dir2(obj) -> list of strings
  
      Extended version of the Python builtin dir(), which does a few extra
      checks.
  
      This version is guaranteed to return only a list of true strings, whereas
      dir() returns anything that objects inject into themselves, even if they
      are later not really valid for attribute access (many extension libraries
      have such bugs).
      """
  
      # Start building the attribute list via dir(), and then complete it
      # with a few extra special-purpose calls.
  
      try:
          words = set(dir(obj))
      except Exception:
          # TypeError: dir(obj) does not return a list
          words = set()
  
      # filter out non-string attributes which may be stuffed by dir() calls
      # and poor coding in third-party modules
  
      words = [w for w in words if isinstance(w, string_types)]
      return sorted(words)
  
imports: import inspect
  from .py3compat import string_types
label_desc: Use image node_id 2 for calling a global function with example usage: dir2(obj) and returns: sorted