class_docstr: Neighbouring points are KNN retrieved using an Annoy Index.
  
  :param AnnoyIndex index: AnnoyIndex instance to use when retrieving KNN
  :param tuple nrows: Number of rows in data matrix was built on
  :param string index_path: Location of the AnnoyIndex file on disk
  :param int k: The number of neighbours to retrieve for each point
  :param int search_k: Controls the number of nodes searched - higher is more
      expensive but more accurate. Default of -1 defaults to n_trees * k
  :param boolean precompute: Whether to precompute the KNN index and store the matrix in memory.
      Much faster when training, but consumes more memory.
  :param boolean include_distances: Whether to return the distances along with the indexes of
      the neighbouring points
  :param boolean verbose: Controls verbosity of output to console when building index. If
      False, nothing will be printed to the terminal.
class_docstr_tok: ["Neighbouring","points","are","KNN","retrieved","using","an","Annoy","Index",".",":","param","AnnoyIndex","index",":","AnnoyIndex","instance","to","use","when","retrieving","KNN",":","param","tuple","nrows",":","Number","of","rows","in","data","matrix","was","built","on",":","param","string","index_path",":","Location","of","the","AnnoyIndex","file","on","disk",":","param","int","k",":","The","number","of","neighbours","to","retrieve","for","each","point",":","param","int","search_k",":","Controls","the","number","of","nodes","searched","-","higher","is","more","expensive","but","more","accurate",".","Default","of","-1","defaults","to","n_trees","*","k",":","param","boolean","precompute",":","Whether","to","precompute","the","KNN","index","and","store","the","matrix","in","memory",".","Much","faster","when","training",",","but","consumes","more","memory",".",":","param","boolean","include_distances",":","Whether","to","return","the","distances","along","with","the","indexes","of","the","neighbouring","points",":","param","boolean","verbose",":","Controls","verbosity","of","output","to","console","when","building","index",".","If","False",",","nothing","will","be","printed","to","the","terminal","."]
docstr: Cleans up disk resources used by the index, rendering it unusable.
  First will `unload` the index, then recursively removes the files at index path.
  If parent is True, will recursively remove parent folder.
docstr_tok: ["Cleans","up","disk","resources","used","by","the","index",",","rendering","it","unusable",".","First","will","`","unload","`","the","index",",","then","recursively","removes","the","files","at","index","path",".","If","parent","is","True",",","will","recursively","remove","parent","folder","."]
code: def delete_index(self, parent=False):
      """Cleans up disk resources used by the index, rendering it unusable.
      First will `unload` the index, then recursively removes the files at index path.
      If parent is True, will recursively remove parent folder."""
      path = (
          self.index_path
          if not parent
          else str(Path(self.index_path).parent)
      )
      self.index.unload()
      shutil.rmtree(path)
  
imports: from concurrent.futures import ThreadPoolExecutor
  import os
  import shutil
  import time
  from abc import abstractmethod
  from threading import Thread
  from collections.abc import Sequence
  from pathlib import Path
  from scipy.sparse import issparse
  from annoy import AnnoyIndex
  from tqdm import tqdm
  import numpy
  from ..data import get_uint_ctype
label_desc: Use image node_id 12 for calling the AnnoyKnnMatrix obj's underlying member method code with example usage: obj.delete_index(parent) without return types