rename vendor dir to pkgs

This commit is contained in:
Nick Sweeting 2024-10-28 20:05:20 -07:00
parent 7d75867650
commit dee4eb7992
No known key found for this signature in database
168 changed files with 47 additions and 54 deletions

View file

@ -0,0 +1,40 @@
import abc
from typing import Iterable, List, Dict, cast
import abx
from abx_spec_config import ConfigPluginSpec
class BaseSearchBackend(abc.ABC):
name: str
@staticmethod
@abc.abstractmethod
def index(snapshot_id: str, texts: List[str]):
return
@staticmethod
@abc.abstractmethod
def flush(snapshot_ids: Iterable[str]):
return
@staticmethod
@abc.abstractmethod
def search(text: str) -> List[str]:
raise NotImplementedError("search method must be implemented by subclass")
class SearchBackendPluginSpec:
@abx.hookspec
@abx.hookimpl
def get_SEARCHBACKENDS() -> Dict[abx.PluginId, BaseSearchBackend]:
return {}
class ExpectedPluginSpec(SearchBackendPluginSpec, ConfigPluginSpec):
pass
PLUGIN_SPEC = SearchBackendPluginSpec
TypedPluginManager = abx.ABXPluginManager[ExpectedPluginSpec]
pm = cast(TypedPluginManager, abx.pm)