code: def summary(obj, stream=None, *args, **kwds):
      """Prints a summary of object o to a given stream
  
      Positional and keyword arguments not explicitly mentioned here are passed
      on to the underlying C{summary()} method of the object if it has any.
  
      @param obj: the object about which a human-readable summary is requested.
      @param stream: the stream to be used. If C{None}, the standard output
        will be used.
      """
      if stream is None:
          stream = sys.stdout
      if hasattr(obj, "summary"):
          stream.write(obj.summary(*args, **kwds))
      else:
          stream.write(str(obj))
      stream.write("\n")
  
imports: import sys
  from igraph.statistics import median
  from itertools import islice
  from math import ceil
  from texttable import Texttable
  from textwrap import TextWrapper
label_desc: Use image node_id 2 for calling a global function with example usage: summary(obj, stream) without return types