def _init_structures()

in tensorflow_similarity/indexer.py [0:0]


    def _init_structures(self) -> None:
        "(re)initialize internal storage structure"

        if self.search_type == 'nmslib':
            self.search: Search = NMSLibSearch(distance=self.distance,
                                               dims=self.embedding_size)
        elif isinstance(self.search_type, Search):
            self.search = self.search_type
        else:
            raise ValueError("You need to either supply a known search "
                             "framework name or a Search() object")

        # mapper from id to record data
        if self.kv_store_type == 'memory':
            self.kv_store: Store = MemoryStore()
        elif isinstance(self.kv_store_type, Store):
            self.kv_store = self.kv_store_type
        else:
            raise ValueError("You need to either supply a know key value "
                             "store name or a Store() object")

        # code used to evaluate indexer performance
        if self.evaluator_type == 'memory':
            self.evaluator: Evaluator = MemoryEvaluator()
        elif isinstance(self.evaluator_type, Evaluator):
            self.evaluator = self.evaluator_type
        else:
            raise ValueError("You need to either supply a know evaluator name "
                             "or an Evaluator() object")
        # stats
        self._stats: DefaultDict[str, int] = defaultdict(int)
        self._lookup_timings_buffer: Deque = deque([], maxlen=self.stat_buffer_size)  # noqa

        # calibration data
        self.is_calibrated = False
        self.calibration_metric = F1Score()
        self.cutpoints = {}
        self.calibration_thresholds = {}