docs: def rethrow(exception, additional_message):
      """
      Re-raise the last exception that was active in the current scope
      without losing the stacktrace but adding an additional message.
      This is hacky because it has to be compatible with both python 2/3
      """
      e = exception
      m = additional_message
      if not e.args:
          e.args = (m,)
      else:
          e.args = (e.args[0] + m,) + e.args[1:]
      raise e