most-client 1.0.37__py3-none-any.whl → 1.0.39__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- most/api.py +10 -10
- most/async_api.py +15 -10
- most/score_calculation.py +53 -1
- most/search_types.py +92 -10
- most/types.py +2 -19
- {most_client-1.0.37.dist-info → most_client-1.0.39.dist-info}/METADATA +1 -2
- most_client-1.0.39.dist-info/RECORD +16 -0
- most_client-1.0.37.dist-info/RECORD +0 -16
- {most_client-1.0.37.dist-info → most_client-1.0.39.dist-info}/WHEEL +0 -0
- {most_client-1.0.37.dist-info → most_client-1.0.39.dist-info}/top_level.txt +0 -0
- {most_client-1.0.37.dist-info → most_client-1.0.39.dist-info}/zip-safe +0 -0
most/api.py
CHANGED
@@ -24,8 +24,8 @@ from most.types import (
|
|
24
24
|
|
25
25
|
class MostClient(object):
|
26
26
|
retort = Retort(recipe=[
|
27
|
-
loader(int, lambda x: int(x)),
|
28
|
-
loader(float, lambda x: float(x)),
|
27
|
+
loader(int, lambda x: x if isinstance(x, int) else int(x)),
|
28
|
+
loader(float, lambda x: x if isinstance(x, float) else float(x)),
|
29
29
|
loader(datetime, lambda x: datetime.fromtimestamp(x).astimezone(tz=timezone.utc) if isinstance(x, (int, float)) else datetime.fromisoformat(x)),
|
30
30
|
],)
|
31
31
|
|
@@ -264,7 +264,7 @@ class MostClient(object):
|
|
264
264
|
params={"overwrite": overwrite})
|
265
265
|
result = self.retort.load(resp.json(), Result)
|
266
266
|
if modify_scores:
|
267
|
-
result = self.
|
267
|
+
result = self.get_score_modifier().modify(result)
|
268
268
|
return result
|
269
269
|
|
270
270
|
def apply_on_text(self, text_id,
|
@@ -280,7 +280,7 @@ class MostClient(object):
|
|
280
280
|
params={"overwrite": overwrite})
|
281
281
|
result = self.retort.load(resp.json(), Result)
|
282
282
|
if modify_scores:
|
283
|
-
result = self.
|
283
|
+
result = self.get_score_modifier().modify(result)
|
284
284
|
return result
|
285
285
|
|
286
286
|
def transcribe_later(self, audio_id,
|
@@ -308,7 +308,7 @@ class MostClient(object):
|
|
308
308
|
params={"overwrite": overwrite})
|
309
309
|
result = self.retort.load(resp.json(), Result)
|
310
310
|
if modify_scores:
|
311
|
-
result = self.
|
311
|
+
result = self.get_score_modifier().modify(result)
|
312
312
|
return result
|
313
313
|
|
314
314
|
def apply_on_text_later(self, text_id,
|
@@ -324,7 +324,7 @@ class MostClient(object):
|
|
324
324
|
params={"overwrite": overwrite})
|
325
325
|
result = self.retort.load(resp.json(), Result)
|
326
326
|
if modify_scores:
|
327
|
-
result = self.
|
327
|
+
result = self.get_score_modifier().modify(result)
|
328
328
|
return result
|
329
329
|
|
330
330
|
def get_job_status(self, audio_id) -> JobStatus:
|
@@ -348,7 +348,7 @@ class MostClient(object):
|
|
348
348
|
resp = self.get(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/results")
|
349
349
|
result = self.retort.load(resp.json(), Result)
|
350
350
|
if modify_scores:
|
351
|
-
result = self.
|
351
|
+
result = self.get_score_modifier().modify(result)
|
352
352
|
return result
|
353
353
|
|
354
354
|
def fetch_text(self, audio_id: str) -> Result:
|
@@ -401,7 +401,7 @@ class MostClient(object):
|
|
401
401
|
|
402
402
|
def store_info(self,
|
403
403
|
audio_id: str,
|
404
|
-
data: Dict[str, str]) -> StoredAudioData:
|
404
|
+
data: Dict[str, Union[str, int, float]]) -> StoredAudioData:
|
405
405
|
if not is_valid_id(audio_id):
|
406
406
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
407
407
|
|
@@ -409,14 +409,14 @@ class MostClient(object):
|
|
409
409
|
json={
|
410
410
|
"data": data,
|
411
411
|
})
|
412
|
-
return
|
412
|
+
return StoredAudioData.from_dict(resp.json())
|
413
413
|
|
414
414
|
def fetch_info(self, audio_id: str) -> StoredAudioData:
|
415
415
|
if not is_valid_id(audio_id):
|
416
416
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
417
417
|
|
418
418
|
resp = self.get(f"/{self.client_id}/audio/{audio_id}/info")
|
419
|
-
return
|
419
|
+
return StoredAudioData.from_dict(resp.json())
|
420
420
|
|
421
421
|
def __call__(self, audio_path: Path,
|
422
422
|
modify_scores: bool = False) -> Result:
|
most/async_api.py
CHANGED
@@ -24,8 +24,8 @@ from most.types import (
|
|
24
24
|
|
25
25
|
class AsyncMostClient(object):
|
26
26
|
retort = Retort(recipe=[
|
27
|
-
loader(int, lambda x: int(x)),
|
28
|
-
loader(float, lambda x: float(x)),
|
27
|
+
loader(int, lambda x: x if isinstance(x, int) else int(x)),
|
28
|
+
loader(float, lambda x: x if isinstance(x, float) else float(x)),
|
29
29
|
loader(datetime, lambda x: datetime.fromtimestamp(x).astimezone(tz=timezone.utc) if isinstance(x, (int, float)) else datetime.fromisoformat(x)),
|
30
30
|
])
|
31
31
|
|
@@ -274,7 +274,8 @@ class AsyncMostClient(object):
|
|
274
274
|
params={"overwrite": overwrite})
|
275
275
|
result = self.retort.load(resp.json(), Result)
|
276
276
|
if modify_scores:
|
277
|
-
|
277
|
+
score_modifier = await self.get_score_modifier()
|
278
|
+
result = score_modifier.modify(result)
|
278
279
|
return result
|
279
280
|
|
280
281
|
async def apply_on_text(self, text_id,
|
@@ -290,7 +291,8 @@ class AsyncMostClient(object):
|
|
290
291
|
params={"overwrite": overwrite})
|
291
292
|
result = self.retort.load(resp.json(), Result)
|
292
293
|
if modify_scores:
|
293
|
-
|
294
|
+
score_modifier = await self.get_score_modifier()
|
295
|
+
result = score_modifier.modify(result)
|
294
296
|
return result
|
295
297
|
|
296
298
|
async def transcribe_later(self, audio_id,
|
@@ -318,7 +320,8 @@ class AsyncMostClient(object):
|
|
318
320
|
params={"overwrite": overwrite})
|
319
321
|
result = self.retort.load(resp.json(), Result)
|
320
322
|
if modify_scores:
|
321
|
-
|
323
|
+
score_modifier = await self.get_score_modifier()
|
324
|
+
result = score_modifier.modify(result)
|
322
325
|
return result
|
323
326
|
|
324
327
|
async def apply_on_text_later(self, text_id,
|
@@ -334,7 +337,8 @@ class AsyncMostClient(object):
|
|
334
337
|
params={"overwrite": overwrite})
|
335
338
|
result = self.retort.load(resp.json(), Result)
|
336
339
|
if modify_scores:
|
337
|
-
|
340
|
+
score_modifier = await self.get_score_modifier()
|
341
|
+
result = score_modifier.modify(result)
|
338
342
|
return result
|
339
343
|
|
340
344
|
async def get_job_status(self, audio_id) -> JobStatus:
|
@@ -358,7 +362,8 @@ class AsyncMostClient(object):
|
|
358
362
|
resp = await self.get(f"/{self.client_id}/audio/{audio_id}/model/{self.model_id}/results")
|
359
363
|
result = self.retort.load(resp.json(), Result)
|
360
364
|
if modify_scores:
|
361
|
-
|
365
|
+
score_modifier = await self.get_score_modifier()
|
366
|
+
result = score_modifier.modify(result)
|
362
367
|
return result
|
363
368
|
|
364
369
|
async def fetch_text(self, audio_id) -> Result:
|
@@ -411,18 +416,18 @@ class AsyncMostClient(object):
|
|
411
416
|
|
412
417
|
async def store_info(self,
|
413
418
|
audio_id: str,
|
414
|
-
data: Dict[str, str]) -> StoredAudioData:
|
419
|
+
data: Dict[str, Union[str, int, float]]) -> StoredAudioData:
|
415
420
|
resp = await self.post(f"/{self.client_id}/audio/{audio_id}/info",
|
416
421
|
json={
|
417
422
|
"data": data,
|
418
423
|
})
|
419
|
-
return
|
424
|
+
return StoredAudioData.from_dict(resp.json())
|
420
425
|
|
421
426
|
async def fetch_info(self, audio_id: str) -> StoredAudioData:
|
422
427
|
if not is_valid_id(audio_id):
|
423
428
|
raise RuntimeError("Please use valid audio_id. [try audio.id from list_audios()]")
|
424
429
|
resp = await self.get(f"/{self.client_id}/audio/{audio_id}/info")
|
425
|
-
return
|
430
|
+
return StoredAudioData.from_dict(resp.json())
|
426
431
|
|
427
432
|
async def __call__(self, audio_path: Path,
|
428
433
|
modify_scores: bool = False) -> Result:
|
most/score_calculation.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Dict, Tuple, List, Optional
|
1
|
+
from typing import Dict, Tuple, List, Optional, Literal
|
2
2
|
from dataclasses_json import dataclass_json, DataClassJsonMixin
|
3
3
|
from dataclasses import dataclass, replace
|
4
4
|
from .types import Result, ScriptScoreMapping
|
@@ -25,3 +25,55 @@ class ScoreCalculation(DataClassJsonMixin):
|
|
25
25
|
subcolumn_result.score)
|
26
26
|
|
27
27
|
return result
|
28
|
+
|
29
|
+
def unmodify(self, result: Optional[Result]):
|
30
|
+
score_mapping = {
|
31
|
+
(sm.column, sm.subcolumn, sm.to_score): sm.from_score
|
32
|
+
for sm in self.score_mapping
|
33
|
+
}
|
34
|
+
if result is None:
|
35
|
+
return None
|
36
|
+
result = replace(result)
|
37
|
+
for column_result in result.results:
|
38
|
+
for subcolumn_result in column_result.subcolumns:
|
39
|
+
subcolumn_result.score = score_mapping.get((column_result.name,
|
40
|
+
subcolumn_result.name,
|
41
|
+
subcolumn_result.score),
|
42
|
+
subcolumn_result.score)
|
43
|
+
|
44
|
+
return result
|
45
|
+
|
46
|
+
def modify_single(self,
|
47
|
+
column: str, subcolumn: str,
|
48
|
+
from_score: int):
|
49
|
+
for sm in self.score_mapping:
|
50
|
+
if sm.column == column and sm.subcolumn == subcolumn and sm.from_score == from_score:
|
51
|
+
return sm.to_score
|
52
|
+
|
53
|
+
def unmodify_single(self,
|
54
|
+
column: str, subcolumn: str,
|
55
|
+
to_score: int,
|
56
|
+
bound: Literal["strict", "upper", "lower"] = "strict"):
|
57
|
+
upper_from_score = None
|
58
|
+
lower_from_score = None
|
59
|
+
|
60
|
+
for sm in self.score_mapping:
|
61
|
+
if sm.column == column and sm.subcolumn == subcolumn:
|
62
|
+
if sm.to_score == to_score:
|
63
|
+
return sm.from_score
|
64
|
+
|
65
|
+
if sm.to_score > to_score:
|
66
|
+
if upper_from_score is None or sm.to_score < upper_from_score[1]:
|
67
|
+
upper_from_score = (sm.from_score, sm.to_score)
|
68
|
+
elif sm.to_score < to_score:
|
69
|
+
if lower_from_score is None or sm.to_score > lower_from_score[1]:
|
70
|
+
lower_from_score = (sm.from_score, sm.to_score)
|
71
|
+
|
72
|
+
if bound == "strict":
|
73
|
+
return None
|
74
|
+
elif bound == "upper" and upper_from_score is not None:
|
75
|
+
return upper_from_score[0]
|
76
|
+
elif bound == "lower" and lower_from_score is not None:
|
77
|
+
return lower_from_score[0]
|
78
|
+
else:
|
79
|
+
return None
|
most/search_types.py
CHANGED
@@ -1,19 +1,15 @@
|
|
1
|
-
import re
|
2
1
|
from dataclasses import dataclass, field
|
3
|
-
from
|
4
|
-
from typing import Dict, List, Literal, Optional, Union
|
5
|
-
|
6
|
-
from bson import ObjectId
|
2
|
+
from typing import List, Optional
|
7
3
|
from dataclasses_json import DataClassJsonMixin, dataclass_json
|
8
4
|
|
9
5
|
|
10
6
|
@dataclass_json
|
11
7
|
@dataclass
|
12
8
|
class IDCondition(DataClassJsonMixin):
|
13
|
-
equal: Optional[
|
14
|
-
in_set: Optional[List[
|
15
|
-
greater_than: Optional[
|
16
|
-
less_than: Optional[
|
9
|
+
equal: Optional[str] = None
|
10
|
+
in_set: Optional[List[str]] = None
|
11
|
+
greater_than: Optional[str] = None
|
12
|
+
less_than: Optional[str] = None
|
17
13
|
|
18
14
|
|
19
15
|
@dataclass_json
|
@@ -33,9 +29,11 @@ class DurationCondition(DataClassJsonMixin):
|
|
33
29
|
@dataclass
|
34
30
|
class StoredInfoCondition(DataClassJsonMixin):
|
35
31
|
key: str
|
36
|
-
match: Optional[str] = None
|
32
|
+
match: Optional[int | str | float] = None
|
37
33
|
starts_with: Optional[str] = None
|
38
34
|
ends_with: Optional[str] = None
|
35
|
+
greater_than: Optional[int | str | float] = None
|
36
|
+
less_than: Optional[int | str | float] = None
|
39
37
|
|
40
38
|
|
41
39
|
@dataclass_json
|
@@ -49,6 +47,90 @@ class ResultsCondition(DataClassJsonMixin):
|
|
49
47
|
score_greater_than: Optional[int] = None
|
50
48
|
score_less_than: Optional[int] = None
|
51
49
|
|
50
|
+
def create_from(self, client,
|
51
|
+
column: str, subcolumn: str,
|
52
|
+
score_equal: Optional[int] = None,
|
53
|
+
score_in_set: Optional[List[int]] = None,
|
54
|
+
score_greater_than: Optional[int] = None,
|
55
|
+
score_less_than: Optional[int] = None,
|
56
|
+
modified_scores: bool = False) -> 'ResultsCondition':
|
57
|
+
from .api import MostClient
|
58
|
+
client: MostClient
|
59
|
+
script = client.get_model_script()
|
60
|
+
column_idx = [column.name for column in script.columns].index(column)
|
61
|
+
subcolumn_idx = script.columns[column_idx].subcolumns.index(subcolumn)
|
62
|
+
|
63
|
+
if modified_scores:
|
64
|
+
score_modifier = client.get_score_modifier()
|
65
|
+
if score_equal is not None:
|
66
|
+
score_equal = score_modifier.unmodify_single(column, subcolumn,
|
67
|
+
score_equal,
|
68
|
+
bound="strict")
|
69
|
+
if score_in_set is not None:
|
70
|
+
score_in_set = [score_modifier.unmodify_single(column, subcolumn,
|
71
|
+
score,
|
72
|
+
bound="strict")
|
73
|
+
for score in score_in_set]
|
74
|
+
if score_greater_than is not None:
|
75
|
+
score_greater_than = score_modifier.unmodify_single(column, subcolumn,
|
76
|
+
score_greater_than,
|
77
|
+
bound="upper")
|
78
|
+
|
79
|
+
if score_less_than is not None:
|
80
|
+
score_less_than = score_modifier.unmodify_single(column, subcolumn,
|
81
|
+
score_less_than,
|
82
|
+
bound="lower")
|
83
|
+
|
84
|
+
return ResultsCondition(model_id=client.model_id,
|
85
|
+
column_idx=column_idx,
|
86
|
+
subcolumn_idx=subcolumn_idx,
|
87
|
+
score_equal=score_equal,
|
88
|
+
score_in_set=score_in_set,
|
89
|
+
score_greater_than=score_greater_than,
|
90
|
+
score_less_than=score_less_than)
|
91
|
+
|
92
|
+
async def acreate_from(self, client,
|
93
|
+
column: str, subcolumn: str,
|
94
|
+
score_equal: Optional[int] = None,
|
95
|
+
score_in_set: Optional[List[int]] = None,
|
96
|
+
score_greater_than: Optional[int] = None,
|
97
|
+
score_less_than: Optional[int] = None,
|
98
|
+
modified_scores: bool = False) -> 'ResultsCondition':
|
99
|
+
from .async_api import AsyncMostClient
|
100
|
+
client: AsyncMostClient
|
101
|
+
script = await client.get_model_script()
|
102
|
+
column_idx = [column.name for column in script.columns].index(column)
|
103
|
+
subcolumn_idx = script.columns[column_idx].subcolumns.index(subcolumn)
|
104
|
+
|
105
|
+
if modified_scores:
|
106
|
+
score_modifier = await client.get_score_modifier()
|
107
|
+
if score_equal is not None:
|
108
|
+
score_equal = score_modifier.unmodify_single(column, subcolumn,
|
109
|
+
score_equal,
|
110
|
+
bound="strict")
|
111
|
+
if score_in_set is not None:
|
112
|
+
score_in_set = [score_modifier.unmodify_single(column, subcolumn,
|
113
|
+
score,
|
114
|
+
bound="strict")
|
115
|
+
for score in score_in_set]
|
116
|
+
if score_greater_than is not None:
|
117
|
+
score_greater_than = score_modifier.unmodify_single(column, subcolumn,
|
118
|
+
score_greater_than,
|
119
|
+
bound="upper")
|
120
|
+
|
121
|
+
if score_less_than is not None:
|
122
|
+
score_less_than = score_modifier.unmodify_single(column, subcolumn,
|
123
|
+
score_less_than,
|
124
|
+
bound="lower")
|
125
|
+
|
126
|
+
return ResultsCondition(model_id=client.model_id,
|
127
|
+
column_idx=column_idx,
|
128
|
+
subcolumn_idx=subcolumn_idx,
|
129
|
+
score_equal=score_equal,
|
130
|
+
score_in_set=score_in_set,
|
131
|
+
score_greater_than=score_greater_than,
|
132
|
+
score_less_than=score_less_than)
|
133
|
+
|
52
134
|
|
53
135
|
@dataclass_json
|
54
136
|
@dataclass
|
most/types.py
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
import re
|
2
2
|
from dataclasses import dataclass
|
3
3
|
from datetime import datetime
|
4
|
-
from typing import Dict, List, Literal, Optional
|
5
|
-
from .search_types import ResultsCondition
|
4
|
+
from typing import Dict, List, Literal, Optional, Union
|
6
5
|
from dataclasses_json import DataClassJsonMixin, dataclass_json
|
7
6
|
|
8
7
|
|
@@ -10,7 +9,7 @@ from dataclasses_json import DataClassJsonMixin, dataclass_json
|
|
10
9
|
@dataclass
|
11
10
|
class StoredAudioData(DataClassJsonMixin):
|
12
11
|
id: str
|
13
|
-
data: Dict[str, str]
|
12
|
+
data: Dict[str, Union[str, int, float]]
|
14
13
|
|
15
14
|
|
16
15
|
@dataclass_json
|
@@ -53,22 +52,6 @@ class Column(DataClassJsonMixin):
|
|
53
52
|
class Script(DataClassJsonMixin):
|
54
53
|
columns: List[Column]
|
55
54
|
|
56
|
-
def create_results_condition(self,
|
57
|
-
model_id: str,
|
58
|
-
column: str, subcolumn: str,
|
59
|
-
score_equal: Optional[int] = None,
|
60
|
-
score_greater_than: Optional[int] = None,
|
61
|
-
score_less_than: Optional[int] = None) -> ResultsCondition:
|
62
|
-
|
63
|
-
column_idx = [column.name for column in self.columns].index(column)
|
64
|
-
subcolumn_idx = self.columns[column_idx].subcolumns.index(subcolumn)
|
65
|
-
return ResultsCondition(model_id=model_id,
|
66
|
-
column_idx=column_idx,
|
67
|
-
subcolumn_idx=subcolumn_idx,
|
68
|
-
score_equal=score_equal,
|
69
|
-
score_greater_than=score_greater_than,
|
70
|
-
score_less_than=score_less_than)
|
71
|
-
|
72
55
|
|
73
56
|
@dataclass_json
|
74
57
|
@dataclass
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: most-client
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.39
|
4
4
|
Summary: Most AI API for https://the-most.ai
|
5
5
|
Home-page: https://github.com/the-most-ai/most-client
|
6
6
|
Author: George Kasparyants
|
@@ -27,7 +27,6 @@ Requires-Dist: tox
|
|
27
27
|
Requires-Dist: twine
|
28
28
|
Requires-Dist: httpx
|
29
29
|
Requires-Dist: pydub
|
30
|
-
Requires-Dist: bson
|
31
30
|
Dynamic: author
|
32
31
|
Dynamic: author-email
|
33
32
|
Dynamic: classifier
|
@@ -0,0 +1,16 @@
|
|
1
|
+
most/__init__.py,sha256=yoPKMxjZYAzrVqZ7l9rN0Skh0HPuttPX7ub0wlZMby4,351
|
2
|
+
most/_constrants.py,sha256=SlHKcBoXwe_sPzk8tdbb7lqhQz-Bfo__FhSoeFWodZE,217
|
3
|
+
most/api.py,sha256=HmJSAwLVuy7uaeVAM3y1nd-F-UDZ2kOVww_i2EY0Sjs,19145
|
4
|
+
most/async_api.py,sha256=Xyo1sGN4QstqIZh_4YDT6FStaXR0HRy6fbtbqc7uqK8,20562
|
5
|
+
most/async_searcher.py,sha256=C0zViW20K7OhKO1BzBZktTbMJYBBvor3uK6LAHZTxz0,2238
|
6
|
+
most/async_trainer_api.py,sha256=99rED8RjnOn8VezeEgrTgoVfQrO7DdmOE2Jajumno2g,1052
|
7
|
+
most/score_calculation.py,sha256=vLtGqXrR43xZhGjrH5dpQZfWX1q3s74LvTaHn-SKBAg,3254
|
8
|
+
most/search_types.py,sha256=OAtLDdpAPqH-ZYe0KxBuDbB-mUHp8eQM6-ZXUNvvBWU,6682
|
9
|
+
most/searcher.py,sha256=9UdiSlScsE6EPc6RpK8xkRLeB5gHNxgPQpXTJ17i3lQ,2135
|
10
|
+
most/trainer_api.py,sha256=ZwOv4mhROfY97n6i7IY_ZpafsuNRazOqMBAf2dh708k,992
|
11
|
+
most/types.py,sha256=AU74VqYilM9DXfBwptliRbhV5urLAf4BygdIY3wlAN8,4309
|
12
|
+
most_client-1.0.39.dist-info/METADATA,sha256=_0QPeMj75k6GrnBCLMeiyLAjrE5Mq17B3rmSy41E8dQ,1027
|
13
|
+
most_client-1.0.39.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
|
14
|
+
most_client-1.0.39.dist-info/top_level.txt,sha256=2g5fk02LKkM1hV3pVVti_LQ60TToLBcR2zQ3JEKGVk8,5
|
15
|
+
most_client-1.0.39.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
16
|
+
most_client-1.0.39.dist-info/RECORD,,
|
@@ -1,16 +0,0 @@
|
|
1
|
-
most/__init__.py,sha256=yoPKMxjZYAzrVqZ7l9rN0Skh0HPuttPX7ub0wlZMby4,351
|
2
|
-
most/_constrants.py,sha256=SlHKcBoXwe_sPzk8tdbb7lqhQz-Bfo__FhSoeFWodZE,217
|
3
|
-
most/api.py,sha256=fwVmqyuCGhALQFOsgRW7IyX7ELY4sePPA5uHFRprCKQ,19052
|
4
|
-
most/async_api.py,sha256=Kgy4sHZMLr4FD3dOop1BwfrNHeg5n7Ny0v7ZiYv1_ig,20219
|
5
|
-
most/async_searcher.py,sha256=C0zViW20K7OhKO1BzBZktTbMJYBBvor3uK6LAHZTxz0,2238
|
6
|
-
most/async_trainer_api.py,sha256=99rED8RjnOn8VezeEgrTgoVfQrO7DdmOE2Jajumno2g,1052
|
7
|
-
most/score_calculation.py,sha256=1XU1LfIH5LSCwAbAaKkr-EjH5qOTXrJKOUvhCCawka4,1054
|
8
|
-
most/search_types.py,sha256=fuuIkWEuYPTqljl-EMcoNgL5SOiHOVx9j5iH46ecVp8,1857
|
9
|
-
most/searcher.py,sha256=9UdiSlScsE6EPc6RpK8xkRLeB5gHNxgPQpXTJ17i3lQ,2135
|
10
|
-
most/trainer_api.py,sha256=ZwOv4mhROfY97n6i7IY_ZpafsuNRazOqMBAf2dh708k,992
|
11
|
-
most/types.py,sha256=og32qmGnUGTvC0qTH2wzLnhYKeFTIcEmkpIDnclmhYM,5226
|
12
|
-
most_client-1.0.37.dist-info/METADATA,sha256=VdEUqqsSRBSfiCdpwYh3bGdKcundkUeHReMTjCbHd2s,1047
|
13
|
-
most_client-1.0.37.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
|
14
|
-
most_client-1.0.37.dist-info/top_level.txt,sha256=2g5fk02LKkM1hV3pVVti_LQ60TToLBcR2zQ3JEKGVk8,5
|
15
|
-
most_client-1.0.37.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
16
|
-
most_client-1.0.37.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|