docs: def show(self, *values, **data):
          """
          :type values: str arguments
          :param values: A list of variable or attribute names you want to print.
                         At most one argument can be something other than a
                         string.  Strings are interpreted as the
                         variable/attribute names you want to print. If a single
                         non-string argument is provided, it must be an object
                         having attributes named in the string variables.  If no
                         object is provided, the strings must be the names of
                         variables in the local scope.
  
          :type data: keyword args
          :param data: A set of keyword arguments.  The key provided will be the
                       name of the printed variables.  The value associated with
                       that key will have its str() representation printed. You
                       can think of these keyword args as attatching additional
                       attributes to any object that was passed in args.  If no
                       object was passed, then these kwargs will be used to create
                       an object.
  
          This method will return ``True`` if all the filters passed, otherwise it
          will return ``False``.  This allows you to perform additional logic in
          your debugging code if you wish.  Here are some examples.
  
          .. code-block:: python
  
             from behold import Behold, Item
             a, b = 1, 2
             my_list = [a, b]
  
             # show arguments from local scope
             Behold().show('a', 'b')
  
             # show values from local scope using keyword arguments
             Behold.show(a=my_list[0], b=my_list[1])
  
             # show values from local scope using keyword arguments, but
             # force them to be printed in a specified order
             Behold.show('b', 'a', a=my_list[0], b=my_list[1])
  
             # show attributes on an object
             item = Item(a=1, b=2)
             Behold.show(item, 'a', 'b')
  
             # use the boolean returned by show to control more debugging
             a = 1
             if Behold.when(a > 1).show('a'):
                 import pdb; pdb.set_trace()
          """
          item, att_names = self._get_item_and_att_names(*values, **data)
          if not item:
              self.reset()
              return False
  
          self._strict_checker(att_names, item=item)
  
          # set the string value
          self._str = self.stringify_item(item, att_names)
          self.stream.write(self._str + '\n')
  
          passes_all = self._passes_all
          self.reset()
          return passes_all