MCPcopy Create free account
hub / github.com/MinishLab/vicinity / get_backend_class

Function get_backend_class

vicinity/backends/__init__.py:22–63  ·  view source on GitHub ↗

Get the requested backend and ensure its dependencies are installed.

(backend: Backend | str)

Source from the content-addressed store, hash-verified

20
21
22def get_backend_class(backend: Backend | str) -> type[AbstractBackend]:
23 """Get the requested backend and ensure its dependencies are installed."""
24 backend = Backend(backend)
25
26 if backend == Backend.BASIC:
27 return BasicBackend
28
29 elif backend == Backend.HNSW:
30 _require("hnswlib", backend, "hnsw")
31 from vicinity.backends.hnsw import HNSWBackend
32
33 return HNSWBackend
34
35 elif backend == Backend.ANNOY:
36 _require("annoy", backend, "annoy")
37 from vicinity.backends.annoy import AnnoyBackend
38
39 return AnnoyBackend
40
41 elif backend == Backend.PYNNDESCENT:
42 _require("pynndescent", backend, "pynndescent")
43 from vicinity.backends.pynndescent import PyNNDescentBackend
44
45 return PyNNDescentBackend
46
47 elif backend == Backend.FAISS:
48 _require("faiss", backend, "faiss")
49 from vicinity.backends.faiss import FaissBackend
50
51 return FaissBackend
52
53 elif backend == Backend.USEARCH:
54 _require("usearch", backend, "usearch")
55 from vicinity.backends.usearch import UsearchBackend
56
57 return UsearchBackend
58
59 elif backend == Backend.VOYAGER:
60 _require("voyager", backend, "voyager")
61 from vicinity.backends.voyager import VoyagerBackend
62
63 return VoyagerBackend
64
65
66__all__ = ["get_backend_class", "AbstractBackend", "BasicVectorStore"]

Callers 3

loadMethod · 0.90
load_from_hubFunction · 0.90

Calls 2

BackendClass · 0.90
_requireFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…