code: def _deprefix(line, prefix, callback=None):
      
      try:
          assert line.upper().startswith(u''.join(prefix).upper())
      except AssertionError:
          log.debug("Line doesn't start with prefix '%s':\n%s" % (prefix, line))
          return line
      else:
          newline = line[len(prefix):]
          if callback is not None:
              try:
                  callback(newline)
              except Exception as exc:
                  log.exception(exc)
          return newline
docs: Remove the prefix string from the beginning of line, if it exists.
  
      :param string line: A line, such as one output by GnuPG's status-fd.
      :param string prefix: A substring to remove from the beginning of
          ``line``. Case insensitive.
      :type callback: callable
      :param callback: Function to call if the prefix is found. The signature to
          callback will be only one argument, the ``line`` without the ``prefix``, i.e.
          ``callback(line)``.
      :rtype: string
      :returns: If the prefix was found, the ``line`` without the prefix is
          returned. Otherwise, the original ``line`` is returned.