code: def show(self, start=0, geometry=None, output=None):
          
          if output is None:
              output = sys.stdout
  
          if geometry is None:
              geometry = q.value(kp("\\c"))
          else:
              geometry = self._I(geometry)
  
          if start < 0:
              start += q.count(self)
  
          # Make sure nil is not passed to a q function
          if self._id() != nil._id():
              r = self._show(geometry, start)
          else:
              r = '::\n'
  
          if isinstance(output, type):
              return output(r)
          try:
              output.write(r)
          except TypeError:
              output.write(str(r))
docs: pretty-print data to the console
  
          (similar to q.show, but uses python stdout by default)
  
          >>> x = q('([k:`x`y`z]a:1 2 3;b:10 20 30)')
          >>> x.show()  # doctest: +NORMALIZE_WHITESPACE
          k| a b
          -| ----
          x| 1 10
          y| 2 20
          z| 3 30
  
          the first optional argument, 'start' specifies the first row to be
          printed (negative means from the end)
  
          >>> x.show(2)  # doctest: +NORMALIZE_WHITESPACE
          k| a b
          -| ----
          z| 3 30
  
          >>> x.show(-2)  # doctest: +NORMALIZE_WHITESPACE
          k| a b
          -| ----
          y| 2 20
          z| 3 30
  
          the geometry is the height and width of the console
  
          >>> x.show(geometry=[4, 6])
          k| a..
          -| -..
          x| 1..
          ..