code: def callgraph(func):
      ''' Makes a call graph
      Note: be sure to install GraphViz prior to printing the dot graph!
      '''
      import pycallgraph
      @functools.wraps(func)
      def wrapper(*args, **kwargs):
          pycallgraph.start_trace()
          func(*args, **kwargs)
          pycallgraph.save_dot('callgraph.log')
          pycallgraph.make_dot_graph('callgraph.png')
          #pycallgraph.make_dot_graph('callgraph.jpg', format='jpg', tool='neato')
      return wrappef callgraph(func):
      ''' Makes a call graph
      Note: be sure to install GraphViz prior to printing the dot graph!
      '''
      import pycallgraph
      @functools.wraps(func)
      def wrapper(*args, **kwargs):
          pycallgraph.start_trace()
          func(*args, **kwargs)
          pycallgraph.save_dot('callgraph.log')
          pycallgraph.make_dot_graph('callgraph.png')
          #pycallgraph.make_dot_graph('callgraph.jpg', format='jpg', tool='neato')
      return wrapper
docs: Makes a call graph
      Note: be sure to install GraphViz prior to printing the dot graph!