-
Notifications
You must be signed in to change notification settings - Fork 0
/
ffzf.pyi
160 lines (150 loc) · 6.05 KB
/
ffzf.pyi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
def closest(
target: str,
candidates: list[str],
algorithm: str = "levenshtein",
case_sensitive: bool = False,
remove_whitespace: bool = False) -> str:
"""
Find the closest match to the target string in the list of candidates.
:param target: The target string to find a match for.
:param candidates: The list of strings to find a match in.
:param algorithm: The algorithm to use for finding the closest match. Options are:
- "levenshtein"
- "jaro"
- "jarowinkler"
- "hamming"
:param case_sensitive: Whether or not to use case sensitivity when finding the closest match.
:param remove_whitespace: Whether or not to remove whitespace when finding the closest match.
"""
...
def n_closest(
target: str,
candidates: list[str],
n: int, algorithm: str = "levenshtein",
case_senstive: bool = False,
remove_whitespace: bool = False) -> list[str]:
"""
Find the n closest matches to the target string in the list of candidates.
:param target: The target string to find a match for.
:param candidates: The list of strings to find a match in.
:param n: The number of closest matches to return.
:param algorithm: The algorithm to use for finding the closest match. Options are:
- "levenshtein"
- "jaro"
- "jarowinkler"
- "hamming"
:param case_sensitive: Whether or not to use case sensitivity when finding the closest matches.
:param remove_whitespace: Whether or not to remove whitespace when finding the closest matches.
"""
...
def closest_index_pair(
target: str,
text: str,
algorithm: str = "levenshtein",
case_sensitive: bool = False,
remove_whitespace: bool = False) -> tuple[int, int]:
"""
Find the the start and end index of the closest match to the target in the text.
:param target: The target string to find a match for.
:param text: The list of strings to find a match in.
:param algorithm: The algorithm to use for finding the closest match. Options are:
- "levenshtein"
- "jaro"
- "jarowinkler"
- "hamming"
:param case_sensitive: Whether or not to use case sensitivity when finding the closest match.
:param remove_whitespace: Whether or not to remove whitespace when finding the closest match.
"""
...
def closest_with_score(
target: str,
candidates: list[str],
algorithm: str = "levenshtein",
case_sensitive: bool = False,
remove_whitespace: bool = False) -> tuple[str, float]:
"""
Find the closest match to the target string in the list of candidates and the similarity/difference score.
:param target: The target string to find a match for.
:param candidates: The list of strings to find a match in.
:param algorithm: The algorithm to use for finding the closest match. Options are:
- "levenshtein"
- "jaro"
- "jarowinkler"
- "hamming"
:param case_sensitive: Whether or not to use case sensitivity when finding the closest match.
:param remove_whitespace: Whether or not to remove whitespace when finding the closest match.
"""
def n_closest_with_score(
target: str,
candidates: list[str],
n: int,
algorithm: str = "levenshtein",
case_sensitive: bool = False,
remove_whitespace: bool = False) -> list[tuple[str, float]]:
"""
Find the n closest matches to the target string in the list of candidates and the similarity/difference score.
:param target: The target string to find a match for.
:param candidates: The list of strings to find a match in.
:param n: The number of closest matches to return.
:param algorithm: The algorithm to use for finding the closest match. Options are:
- "levenshtein"
- "jaro"
- "jarowinkler"
- "hamming"
:param case_sensitive: Whether or not to use case sensitivity when finding the closest matches.
:param remove_whitespace: Whether or not to remove whitespace when finding the closest matches.
"""
...
...
def levenshtein_distance(
a: str,
b: str,
case_sensitive: bool = False,
remove_whitespace: bool = False) -> int:
"""
Calculate the Levenshtein distance between two strings.
:param a: The first string to compare.
:param b: The second string to compare.
:param case_sensitive: Whether or not to use case sensitivity when calculating the Levenshtein distance.
:param remove_whitespace: Whether or not to remove whitespace when calculating the Levenshtein distance.
"""
...
def jaro_similarity(
a: str,
b: str,
case_sensitive: bool = False,
remove_whitespace: bool = False) -> float:
"""
Calculate the Jaro similarity between two strings.
:param a: The first string to compare.
:param b: The second string to compare.
:param case_sensitive: Whether or not to use case sensitivity when calculating the Jaro similarity.
:param remove_whitespace: Whether or not to remove whitespace when calculating the Jaro similarity.
"""
...
def jaro_winkler_similarity(
a: str,
b: str,
case_sensitive: bool = False,
remove_whitespace: bool = False) -> float:
"""
Calculate the Jaro-Winkler similarity between two strings.
:param a: The first string to compare.
:param b: The second string to compare.
:param case_sensitive: Whether or not to use case sensitivity when calculating the Jaro-Winkler similarity.
:param remove_whitespace: Whether or not to remove whitespace when calculating the Jaro-Winkler similarity.
"""
...
def hamming_distance(
a: str,
b: str,
case_sensitive: bool = False,
remove_whitespace: bool = False) -> int:
"""
Calculate the Hamming distance between two strings.
:param a: The first string to compare.
:param b: The second string to compare.
:param case_sensitive: Whether or not to use case sensitivity when calculating the Hamming distance.
:param remove_whitespace: Whether or not to remove whitespace when calculating the Hamming distance.
"""
...