docs: def exception(function):
      """
      A decorator that wraps the passed in function and prints exception should one occur
      """
      @functools.wraps(function)
      def wrapper(*args, **kwargs):
          try:
              return function(*args, **kwargs)
          except Exception as e:
              # print 
              err = "There was an exception in %s():"%(function.__name__)
              print(("%s \n %s \n%s"%(err,e,sys.exc_info())))
              return -1
   
      return wrapper