code: def finish(self, code=None, message=None, perfdata=None, extdata=None):
          
          if code is None:
              code = self.get_code()
          if message is None:
              message = self.get_message(msglevels=[code])
          if perfdata is None:
              perfdata = self.get_perfdata()
          if extdata is None:
              extdata = self.get_extdata()
          self.exit(code=code, message=message,
                    perfdata=perfdata, extdata=extdata)
docs: exit when using internal function to add results
          automatically generates output, but each parameter can be overriden
  
          all parameters are optional
  
          arguments:
              code: exit status code
              message: a short, one-line message to display
              perfdata: perfdata, if any
              extdata: multi-line message to give more details