def METHOD_NAME(self):
    if self._objptr != ffi.NULL:
        # Already initialized
        return
    if (
        self.signature_paths is None
        and not self._signatures
        and self._objptr == ffi.NULL
    ):
        raise ValueError("No signatures provided")
    elif (self.signature_paths or self._signatures) and self._objptr != ffi.NULL:
        raise NotImplementedError("Need to update RevIndex")
    attached_refs = weakref.WeakKeyDictionary()
    queries_ptr = ffi.NULL
    queries_size = 0
    if self.queries:
        # get list of rust objects
        collected = []
        for obj in queries:
            rv = obj._get_objptr()
            attached_refs[rv] = obj
            collected.append(rv)
        queries_ptr = ffi.new("SourmashSignature*[]", collected)
        queries_size = len(queries)
    template_ptr = ffi.NULL
    if self.template:
        if isinstance(self.template, MinHash):
            template_ptr = self.template._get_objptr()
        else:
            raise ValueError("Template must be a MinHash")
    search_sigs_ptr = ffi.NULL
    sigs_size = 0
    collected = []
    if self.signature_paths:
        for path in self.signature_paths:
            collected.append(encode_str(path))
        search_sigs_ptr = ffi.new("SourmashStr*[]", collected)
        sigs_size = len(signature_paths)
        self._objptr = rustcall(
            lib.revindex_new_with_paths,
            search_sigs_ptr,
            sigs_size,
            template_ptr,
            self.threshold,
            queries_ptr,
            queries_size,
            self.keep_sigs,
        )
    elif self._signatures:
        # force keep_sigs=True, and pass SourmashSignature directly to RevIndex.
        for sig in self._signatures:
            collected.append(sig._get_objptr())
        search_sigs_ptr = ffi.new("SourmashSignature*[]", collected)
        sigs_size = len(self._signatures)
        self._objptr = rustcall(
            lib.revindex_new_with_sigs,
            search_sigs_ptr,
            sigs_size,
            template_ptr,
            self.threshold,
            queries_ptr,
            queries_size,
        )