parameters: (self, expression, thread, cur_frame, frame_kind)
return_statement: return self.collect_members(val, members, getattr_func)
docstring: returns a tuple of the type name, instance members, and type members
docstring_summary: returns a tuple of the type name, instance members, and type members
docstring_tokens: returns a tuple of the type name instance members and type members
function: def get_members_for_frame(self, expression, thread, cur_frame, frame_kind):
          """returns a tuple of the type name, instance members, and type members"""
          getattr_func = getattr
          if not expression:
              all_members = {}
              if sys.platform == 'cli':
                  code = python_context.CreateSnippet('vars()', None, SourceCodeKind.AutoDetect)
                  globals = code.Execute(Scope(cur_frame.f_globals))
                  locals = code.Execute(Scope(thread.get_locals(cur_frame, frame_kind)))
              else:
                  globals = cur_frame.f_globals
                  locals = thread.get_locals(cur_frame, frame_kind)
  
              for key, value in globals.items():
                  all_members[key] = self.get_type_name(value)
  
              for key, value in locals.items():
                  all_members[key] = self.get_type_name(value)
  
              return '', all_members, {}
          else:
              if sys.platform == 'cli':
                  scope = Scope(cur_frame.f_globals)
  
                  code = python_context.CreateSnippet(expression, None, SourceCodeKind.AutoDetect)
                  val = code.Execute(scope)
  
                  code = python_context.CreateSnippet('dir(' + expression + ')', None, SourceCodeKind.AutoDetect)
                  members = code.Execute(scope)
  
                  code = python_context.CreateSnippet('lambda value, name: getattr(value, name)', None, SourceCodeKind.AutoDetect)
                  getattr_func = code.Execute(scope)
              else:
                  val = eval(expression, cur_frame.f_globals, thread.get_locals(cur_frame, frame_kind))
                  members = dir(val)
  
          return self.collect_members(val, members, getattr_func)
function_tokens: def get_members_for_frame ( self , expression , thread , cur_frame , frame_kind ) : getattr_func = getattr if not expression : all_members = { } if sys . platform == 'cli' : code = python_context . CreateSnippet ( 'vars()' , None , SourceCodeKind . AutoDetect ) globals = code . Execute ( Scope ( cur_frame . f_globals ) ) locals = code . Execute ( Scope ( thread . get_locals ( cur_frame , frame_kind ) ) ) else : globals = cur_frame . f_globals locals = thread . get_locals ( cur_frame , frame_kind ) for key , value in globals . items ( ) : all_members [ key ] = self . get_type_name ( value ) for key , value in locals . items ( ) : all_members [ key ] = self . get_type_name ( value ) return '' , all_members , { } else : if sys . platform == 'cli' : scope = Scope ( cur_frame . f_globals ) code = python_context . CreateSnippet ( expression , None , SourceCodeKind . AutoDetect ) val = code . Execute ( scope ) code = python_context . CreateSnippet ( 'dir(' + expression + ')' , None , SourceCodeKind . AutoDetect ) members = code . Execute ( scope ) code = python_context . CreateSnippet ( 'lambda value, name: getattr(value, name)' , None , SourceCodeKind . AutoDetect ) getattr_func = code . Execute ( scope ) else : val = eval ( expression , cur_frame . f_globals , thread . get_locals ( cur_frame , frame_kind ) ) members = dir ( val ) return self . collect_members ( val , members , getattr_func )