code: def __init__(
      self,
      ffi,
      preamble,
      tmpdir=None,
      modulename=None,
      ext_package=None,
      tag="",
      force_generic_engine=False,
      source_extension=".c",
      flags=None,
      relative_to=None,
      **kwds,
  ):
      if ffi._parser._uses_new_feature:
          raise VerificationError(
              "feature not supported with ffi.verify(), but only "
              "with ffi.set_source(): %s"
              % (ffi._parser._uses_new_feature,)
          )
      self.ffi = ffi
      self.preamble = preamble
      if not modulename:
          flattened_kwds = ffiplatform.flatten(kwds)
      vengine_class = _locate_engine_class(ffi, force_generic_engine)
      self._vengine = vengine_class(self)
      self._vengine.patch_extension_kwds(kwds)
      self.flags = flags
      self.kwds = self.make_relative_to(kwds, relative_to)
      #
      if modulename:
          if tag:
              raise TypeError(
                  "can't specify both 'modulename' and 'tag'"
              )
      else:
          key = "\x00".join(
              [
                  "%d.%d" % sys.version_info[:2],
                  __version_verifier_modules__,
                  preamble,
                  flattened_kwds,
              ]
              + ffi._cdefsources
          )
          if sys.version_info >= (3,):
              key = key.encode("utf-8")
          k1 = hex(binascii.crc32(key[0::2]) & 0xFFFFFFFF)
          k1 = k1.lstrip("0x").rstrip("L")
          k2 = hex(binascii.crc32(key[1::2]) & 0xFFFFFFFF)
          k2 = k2.lstrip("0").rstrip("L")
          modulename = "_cffi_%s_%s%s%s" % (
              tag,
              self._vengine._class_key,
              k1,
              k2,
          )
      suffix = _get_so_suffixes()[0]
      self.tmpdir = tmpdir or _caller_dir_pycache()
      self.sourcefilename = os.path.join(
          self.tmpdir, modulename + source_extension
      )
      self.modulefilename = os.path.join(
          self.tmpdir, modulename + suffix
      )
      self.ext_package = ext_package
      self._has_source = False
      self._has_module = False
  
imports: import sys, os, binascii, shutil, io
  from .None import __version_verifier_modules__
  from .None import ffiplatform
  from .error import VerificationError
label_desc: Use image node_id 1 to create a new Verifier object from inherited base classes: object with example: obj = Verifier(ffi, preamble, tmpdir, modulename, ext_package, tag, force_generic_engine, source_extension, flags, relative_to)