code: def see(obj=DEFAULT_ARG, *args, **kwargs):
      
      use_locals = obj is DEFAULT_ARG
  
      if use_locals:
          # Get the local scope from the caller's stack frame.
          # Typically this is the scope of an interactive Python session.
          obj = Namespace(inspect.currentframe().f_back.f_locals)
  
      tokens = []
      attrs = dir(obj)
  
      if not use_locals:
  
          for name, func in INSPECT_FUNCS:
              if func(obj):
                  tokens.append(name)
  
          for feature in FEATURES:
              if feature.match(obj, attrs):
                  tokens.append(feature.symbol)
  
      for attr in filter(lambda a: not a.startswith('_'), attrs):
          try:
              prop = getattr(obj, attr)
          except (AttributeError, Exception):  # pylint: disable=broad-except
              prop = SeeError()
          action = output.display_name(name=attr, obj=prop, local=use_locals)
          tokens.append(action)
  
      if args or kwargs:
          tokens = handle_deprecated_args(tokens, args, kwargs)
  
      return output.SeeResult(tokens)
docs: see(obj=anything)
  
      Show the features and attributes of an object.
  
      This function takes a single argument, ``obj``, which can be of any type.
      A summary of the object is printed immediately in the Python interpreter.
      For example::
  
          >>> see([])
              []            in            +             +=            *
              *=            <             <=            ==            !=
              >             >=            dir()         hash()
              help()        iter()        len()         repr()
              reversed()    str()         .append()     .clear()
              .copy()       .count()      .extend()     .index()
              .insert()     .pop()        .remove()     .reverse()
              .sort()
  
      If this function is run without arguments, it will instead list the objects
      that are available in the current scope. ::
  
          >>> see()
              os        random    see()     sys
  
      The return value is an instance of :class:`SeeResult`.