108 lines
2.8 KiB
Python
108 lines
2.8 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import (
|
|
Any,
|
|
Callable,
|
|
Collection,
|
|
Generator,
|
|
Hashable,
|
|
Iterable,
|
|
Mapping,
|
|
Sequence,
|
|
TypeVar,
|
|
overload,
|
|
)
|
|
|
|
from rapidfuzz.fuzz import WRatio, ratio
|
|
|
|
_StringType = Sequence[Hashable]
|
|
_S1 = TypeVar("_S1")
|
|
_S2 = TypeVar("_S2")
|
|
_ResultType = int | float
|
|
|
|
@overload
|
|
def extractOne(
|
|
query: _S1,
|
|
choices: Iterable[_S2],
|
|
*,
|
|
scorer: Callable[..., _ResultType] = WRatio,
|
|
processor: Callable[..., _StringType] | None = None,
|
|
score_cutoff: _ResultType | None = None,
|
|
score_hint: _ResultType | None = None,
|
|
**kwargs: Any,
|
|
) -> tuple[_S2, _ResultType, int]: ...
|
|
@overload
|
|
def extractOne(
|
|
query: _S1,
|
|
choices: Mapping[Any, _S2],
|
|
*,
|
|
scorer: Callable[..., _ResultType] = WRatio,
|
|
processor: Callable[..., _StringType] | None = None,
|
|
score_cutoff: _ResultType | None = None,
|
|
score_hint: _ResultType | None = None,
|
|
**kwargs: Any,
|
|
) -> tuple[_S2, _ResultType, Any]: ...
|
|
@overload
|
|
def extract(
|
|
query: _S1,
|
|
choices: Collection[_S2],
|
|
*,
|
|
scorer: Callable[..., _ResultType] = WRatio,
|
|
processor: Callable[..., _StringType] | None = None,
|
|
limit: int | None = None,
|
|
score_cutoff: _ResultType | None = None,
|
|
score_hint: _ResultType | None = None,
|
|
**kwargs: Any,
|
|
) -> list[tuple[_S2, _ResultType, int]]: ...
|
|
@overload
|
|
def extract(
|
|
query: _S1,
|
|
choices: Mapping[Any, _S2],
|
|
*,
|
|
scorer: Callable[..., _ResultType] = WRatio,
|
|
processor: Callable[..., _StringType] | None = None,
|
|
score_cutoff: _ResultType | None = None,
|
|
score_hint: _ResultType | None = None,
|
|
**kwargs: Any,
|
|
) -> list[tuple[_S2, _ResultType, Any]]: ...
|
|
@overload
|
|
def extract_iter(
|
|
query: _S1,
|
|
choices: Iterable[_S2],
|
|
*,
|
|
scorer: Callable[..., _ResultType] = WRatio,
|
|
processor: Callable[..., _StringType] | None = None,
|
|
score_cutoff: _ResultType | None = None,
|
|
score_hint: _ResultType | None = None,
|
|
**kwargs: Any,
|
|
) -> Generator[tuple[_S2, _ResultType, int], None, None]: ...
|
|
@overload
|
|
def extract_iter(
|
|
query: _S1,
|
|
choices: Mapping[Any, _S2],
|
|
*,
|
|
scorer: Callable[..., _ResultType] = WRatio,
|
|
processor: Callable[..., _StringType] | None = None,
|
|
score_cutoff: _ResultType | None = None,
|
|
score_hint: _ResultType | None = None,
|
|
**kwargs: Any,
|
|
) -> Generator[tuple[_S2, _ResultType, Any], None, None]: ...
|
|
|
|
try:
|
|
import numpy as np
|
|
|
|
def cdist(
|
|
queries: Iterable[_S1],
|
|
choices: Iterable[_S2],
|
|
*,
|
|
scorer: Callable[..., _ResultType] = ratio,
|
|
processor: Callable[..., _StringType] | None = None,
|
|
score_cutoff: _ResultType | None = None,
|
|
score_hint: _ResultType | None = None,
|
|
dtype: np.dtype | None = None,
|
|
workers: int = 1,
|
|
**kwargs: Any,
|
|
) -> np.ndarray: ...
|
|
|
|
except ImportError:
|
|
pass
|