docs: def verify(self, data, signature=None, keyrings=None, homedir=None):
          '''
          `data` <string> the data to verify.
          `signature` <string> The signature, if detached from the data.
          `keyrings` <list of string> Additional keyrings to search in.
          `homedir` <string> Override the configured homedir.
          '''
  
          if isinstance(data, six.text_type):
              data = data.encode('utf-8')
  
          tmpdir = tempfile.mkdtemp()
          data_file, data_path = tempfile.mkstemp(dir=tmpdir)
          data_file = os.fdopen(data_file, 'wb')
          data_file.write(data)
          data_file.close()
          if signature:
              sig_file, sig_path = tempfile.mkstemp(dir=tmpdir)
              sig_file = os.fdopen(sig_file, 'wb')
              sig_file.write(signature)
              sig_file.close()
          else:
              sig_path = None
          try:
              return self.verify_from_file(
                  data_path,
                  sig_path=sig_path,
                  keyrings=keyrings,
                  homedir=homedir
              )
          finally:
              shutil.rmtree(tmpdir)