nucliadb 6.2.1.post3277__py3-none-any.whl → 6.2.1.post3296__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.
- nucliadb/common/cluster/manager.py +3 -12
- nucliadb/common/cluster/rebalance.py +0 -5
- nucliadb/ingest/consumer/consumer.py +1 -8
- nucliadb/ingest/orm/entities.py +1 -7
- nucliadb/ingest/orm/resource.py +3 -17
- nucliadb/ingest/serialize.py +15 -26
- nucliadb/ingest/service/writer.py +1 -1
- nucliadb/search/api/v1/catalog.py +0 -2
- nucliadb/search/api/v1/resource/search.py +1 -4
- nucliadb/search/api/v1/search.py +1 -5
- nucliadb/search/predict.py +2 -7
- nucliadb/search/requesters/utils.py +1 -43
- nucliadb/search/search/chat/ask.py +0 -2
- nucliadb/search/search/chat/query.py +0 -7
- nucliadb/search/search/find.py +1 -1
- nucliadb/search/search/graph_strategy.py +0 -3
- {nucliadb-6.2.1.post3277.dist-info → nucliadb-6.2.1.post3296.dist-info}/METADATA +6 -6
- {nucliadb-6.2.1.post3277.dist-info → nucliadb-6.2.1.post3296.dist-info}/RECORD +21 -21
- {nucliadb-6.2.1.post3277.dist-info → nucliadb-6.2.1.post3296.dist-info}/WHEEL +0 -0
- {nucliadb-6.2.1.post3277.dist-info → nucliadb-6.2.1.post3296.dist-info}/entry_points.txt +0 -0
- {nucliadb-6.2.1.post3277.dist-info → nucliadb-6.2.1.post3296.dist-info}/top_level.txt +0 -0
@@ -82,14 +82,12 @@ class KBShardManager:
|
|
82
82
|
kbid: str,
|
83
83
|
aw: Callable[[AbstractIndexNode, str], Awaitable[Any]],
|
84
84
|
timeout: float,
|
85
|
-
*,
|
86
|
-
use_read_replica_nodes: bool = False,
|
87
85
|
) -> list[Any]:
|
88
86
|
shards = await self.get_shards_by_kbid(kbid)
|
89
87
|
ops = []
|
90
88
|
|
91
89
|
for shard_obj in shards:
|
92
|
-
node, shard_id = choose_node(shard_obj
|
90
|
+
node, shard_id = choose_node(shard_obj)
|
93
91
|
if shard_id is None:
|
94
92
|
raise ShardNotFound("Found a node but not a shard")
|
95
93
|
|
@@ -280,9 +278,7 @@ class KBShardManager:
|
|
280
278
|
f"Unable to create vectorset {vectorset_id} in kb {kbid} shard {shard_id}"
|
281
279
|
)
|
282
280
|
|
283
|
-
await self.apply_for_all_shards(
|
284
|
-
kbid, _create_vectorset, timeout=10, use_read_replica_nodes=False
|
285
|
-
)
|
281
|
+
await self.apply_for_all_shards(kbid, _create_vectorset, timeout=10)
|
286
282
|
|
287
283
|
async def delete_vectorset(self, kbid: str, vectorset_id: str):
|
288
284
|
"""Delete a vectorset from all KB shards"""
|
@@ -294,9 +290,7 @@ class KBShardManager:
|
|
294
290
|
f"Unable to delete vectorset {vectorset_id} in kb {kbid} shard {shard_id}"
|
295
291
|
)
|
296
292
|
|
297
|
-
await self.apply_for_all_shards(
|
298
|
-
kbid, _delete_vectorset, timeout=10, use_read_replica_nodes=False
|
299
|
-
)
|
293
|
+
await self.apply_for_all_shards(kbid, _delete_vectorset, timeout=10)
|
300
294
|
|
301
295
|
|
302
296
|
class StandaloneKBShardManager(KBShardManager):
|
@@ -370,9 +364,6 @@ class StandaloneKBShardManager(KBShardManager):
|
|
370
364
|
|
371
365
|
def choose_node(
|
372
366
|
shard: writer_pb2.ShardObject,
|
373
|
-
*,
|
374
|
-
target_shard_replicas: Optional[list[str]] = None,
|
375
|
-
use_read_replica_nodes: bool = False,
|
376
367
|
) -> tuple[AbstractIndexNode, str]:
|
377
368
|
fake_node = get_nidx_fake_node()
|
378
369
|
return fake_node, shard.nidx_shard_id
|
@@ -28,9 +28,7 @@ from nucliadb_protos import nodereader_pb2, noderesources_pb2
|
|
28
28
|
from nucliadb_telemetry import errors
|
29
29
|
from nucliadb_telemetry.logs import setup_logging
|
30
30
|
from nucliadb_telemetry.utils import setup_telemetry
|
31
|
-
from nucliadb_utils import const
|
32
31
|
from nucliadb_utils.fastapi.run import serve_metrics
|
33
|
-
from nucliadb_utils.utilities import has_feature
|
34
32
|
|
35
33
|
from .settings import settings
|
36
34
|
from .utils import delete_resource_from_shard, index_resource_to_shard, wait_for_node
|
@@ -163,9 +161,6 @@ async def move_set_of_kb_resources(
|
|
163
161
|
|
164
162
|
|
165
163
|
async def rebalance_kb(context: ApplicationContext, kbid: str) -> None:
|
166
|
-
if not has_feature(const.Features.REBALANCE_KB, context={"kbid": kbid}):
|
167
|
-
return
|
168
|
-
|
169
164
|
await maybe_add_shard(kbid)
|
170
165
|
|
171
166
|
shard_paragraphs = await get_shards_paragraphs(kbid)
|
@@ -42,7 +42,6 @@ from nucliadb_utils.cache.pubsub import PubSubDriver
|
|
42
42
|
from nucliadb_utils.nats import MessageProgressUpdater, NatsConnectionManager
|
43
43
|
from nucliadb_utils.settings import nats_consumer_settings
|
44
44
|
from nucliadb_utils.storages.storage import Storage
|
45
|
-
from nucliadb_utils.utilities import has_feature
|
46
45
|
|
47
46
|
consumer_observer = metrics.Observer(
|
48
47
|
"message_processor",
|
@@ -89,13 +88,7 @@ class IngestConsumer:
|
|
89
88
|
self.subscription: Optional[JetStreamContext.PullSubscription] = None
|
90
89
|
|
91
90
|
async def ack_message(self, msg: Msg, kbid: Optional[str] = None):
|
92
|
-
|
93
|
-
if kbid:
|
94
|
-
context["kbid"] = kbid
|
95
|
-
if has_feature(const.Features.NATS_SYNC_ACK, default=False, context=context):
|
96
|
-
await msg.ack_sync(timeout=10)
|
97
|
-
else:
|
98
|
-
await msg.ack()
|
91
|
+
await msg.ack()
|
99
92
|
|
100
93
|
async def initialize(self):
|
101
94
|
await self.setup_nats_subscription()
|
nucliadb/ingest/orm/entities.py
CHANGED
@@ -65,12 +65,10 @@ class EntitiesManager:
|
|
65
65
|
self,
|
66
66
|
knowledgebox: KnowledgeBox,
|
67
67
|
txn: Transaction,
|
68
|
-
use_read_replica_nodes: bool = False,
|
69
68
|
):
|
70
69
|
self.kb = knowledgebox
|
71
70
|
self.txn = txn
|
72
71
|
self.kbid = self.kb.kbid
|
73
|
-
self.use_read_replica_nodes = use_read_replica_nodes
|
74
72
|
|
75
73
|
async def create_entities_group(self, group: str, entities: EntitiesGroup):
|
76
74
|
if await self.entities_group_exists(group):
|
@@ -222,7 +220,6 @@ class EntitiesManager:
|
|
222
220
|
self.kbid,
|
223
221
|
do_entities_search,
|
224
222
|
settings.relation_search_timeout,
|
225
|
-
use_read_replica_nodes=self.use_read_replica_nodes,
|
226
223
|
)
|
227
224
|
|
228
225
|
entities = {}
|
@@ -318,10 +315,7 @@ class EntitiesManager:
|
|
318
315
|
return {facet.tag.split("/")[-1] for facet in facetresults}
|
319
316
|
|
320
317
|
results = await shard_manager.apply_for_all_shards(
|
321
|
-
self.kbid,
|
322
|
-
query_indexed_entities_group_names,
|
323
|
-
settings.relation_types_timeout,
|
324
|
-
use_read_replica_nodes=self.use_read_replica_nodes,
|
318
|
+
self.kbid, query_indexed_entities_group_names, settings.relation_types_timeout
|
325
319
|
)
|
326
320
|
|
327
321
|
if not results:
|
nucliadb/ingest/orm/resource.py
CHANGED
@@ -69,9 +69,7 @@ from nucliadb_protos.resources_pb2 import Origin as PBOrigin
|
|
69
69
|
from nucliadb_protos.resources_pb2 import Relations as PBRelations
|
70
70
|
from nucliadb_protos.utils_pb2 import Relation as PBRelation
|
71
71
|
from nucliadb_protos.writer_pb2 import BrokerMessage
|
72
|
-
from nucliadb_utils import const
|
73
72
|
from nucliadb_utils.storages.storage import Storage
|
74
|
-
from nucliadb_utils.utilities import has_feature
|
75
73
|
|
76
74
|
if TYPE_CHECKING: # pragma: no cover
|
77
75
|
from nucliadb.ingest.orm.knowledgebox import KnowledgeBox
|
@@ -602,12 +600,6 @@ class Resource:
|
|
602
600
|
|
603
601
|
@processor_observer.wrap({"type": "apply_extracted"})
|
604
602
|
async def apply_extracted(self, message: BrokerMessage):
|
605
|
-
if not has_feature(const.Features.FIELD_STATUS):
|
606
|
-
field_obj: Field
|
607
|
-
for error in message.errors:
|
608
|
-
field_obj = await self.get_field(error.field, error.field_type, load=False)
|
609
|
-
await field_obj.set_error(error)
|
610
|
-
|
611
603
|
await self.get_basic()
|
612
604
|
if self.basic is None:
|
613
605
|
raise KeyError("Resource Not Found")
|
@@ -628,15 +620,9 @@ class Resource:
|
|
628
620
|
|
629
621
|
# Update field and resource status depending on processing results
|
630
622
|
await self.apply_fields_status(message, self._modified_extracted_text)
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
else:
|
635
|
-
# Old code path, compute resource status based on the presence of errors in this BrokerMessage
|
636
|
-
if message.errors:
|
637
|
-
self.basic.metadata.status = PBMetadata.Status.ERROR
|
638
|
-
elif message.source is message.MessageSource.PROCESSOR:
|
639
|
-
self.basic.metadata.status = PBMetadata.Status.PROCESSED
|
623
|
+
|
624
|
+
# Compute resource status based on all fields statuses
|
625
|
+
await self.update_status()
|
640
626
|
|
641
627
|
extracted_languages = []
|
642
628
|
|
nucliadb/ingest/serialize.py
CHANGED
@@ -52,8 +52,7 @@ from nucliadb_models.resource import (
|
|
52
52
|
from nucliadb_models.search import ResourceProperties
|
53
53
|
from nucliadb_models.security import ResourceSecurity
|
54
54
|
from nucliadb_protos.writer_pb2 import FieldStatus
|
55
|
-
from nucliadb_utils import
|
56
|
-
from nucliadb_utils.utilities import get_storage, has_feature
|
55
|
+
from nucliadb_utils.utilities import get_storage
|
57
56
|
|
58
57
|
|
59
58
|
async def set_resource_field_extracted_data(
|
@@ -154,32 +153,22 @@ async def serialize_field_errors(
|
|
154
153
|
TextFieldData, FileFieldData, LinkFieldData, ConversationFieldData, GenericFieldData
|
155
154
|
],
|
156
155
|
):
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
created=error.created.ToDatetime(),
|
171
|
-
)
|
156
|
+
status = await field.get_status()
|
157
|
+
if status is None:
|
158
|
+
status = FieldStatus()
|
159
|
+
serialized.status = status.Status.Name(status.status)
|
160
|
+
if status.errors:
|
161
|
+
serialized.errors = []
|
162
|
+
for error in status.errors:
|
163
|
+
serialized.errors.append(
|
164
|
+
Error(
|
165
|
+
body=error.source_error.error,
|
166
|
+
code=error.source_error.code,
|
167
|
+
code_str=error.source_error.ErrorCode.Name(error.source_error.code),
|
168
|
+
created=error.created.ToDatetime(),
|
172
169
|
)
|
173
|
-
serialized.error = serialized.errors[-1]
|
174
|
-
else:
|
175
|
-
field_error = await field.get_error()
|
176
|
-
if field_error is not None:
|
177
|
-
serialized.error = Error(
|
178
|
-
body=field_error.error,
|
179
|
-
code=field_error.code,
|
180
|
-
code_str=field_error.ErrorCode.Name(field_error.code),
|
181
|
-
created=None,
|
182
170
|
)
|
171
|
+
serialized.error = serialized.errors[-1]
|
183
172
|
|
184
173
|
|
185
174
|
async def managed_serialize(
|
@@ -272,7 +272,7 @@ class WriterServicer(writer_pb2_grpc.WriterServicer):
|
|
272
272
|
response.status = ListEntitiesGroupsResponse.Status.NOTFOUND
|
273
273
|
return response
|
274
274
|
|
275
|
-
entities_manager = EntitiesManager(kbobj, txn
|
275
|
+
entities_manager = EntitiesManager(kbobj, txn)
|
276
276
|
try:
|
277
277
|
entities_groups = await entities_manager.list_entities_groups()
|
278
278
|
except Exception as e:
|
@@ -79,7 +79,6 @@ async def catalog_get(
|
|
79
79
|
sort_order: SortOrder = fastapi_query(SearchParamDefaults.sort_order),
|
80
80
|
page_number: int = fastapi_query(SearchParamDefaults.catalog_page_number),
|
81
81
|
page_size: int = fastapi_query(SearchParamDefaults.catalog_page_size),
|
82
|
-
shards: list[str] = fastapi_query(SearchParamDefaults.shards, deprecated=True),
|
83
82
|
with_status: Optional[ResourceProcessingStatus] = fastapi_query(
|
84
83
|
SearchParamDefaults.with_status, deprecated="Use filters instead"
|
85
84
|
),
|
@@ -100,7 +99,6 @@ async def catalog_get(
|
|
100
99
|
faceted=faceted,
|
101
100
|
page_number=page_number,
|
102
101
|
page_size=page_size,
|
103
|
-
shards=shards,
|
104
102
|
debug=debug,
|
105
103
|
with_status=with_status,
|
106
104
|
range_creation_start=range_creation_start,
|
@@ -76,7 +76,6 @@ async def resource_search(
|
|
76
76
|
highlight: bool = fastapi_query(SearchParamDefaults.highlight),
|
77
77
|
x_ndb_client: NucliaDBClientType = Header(NucliaDBClientType.API),
|
78
78
|
debug: bool = fastapi_query(SearchParamDefaults.debug),
|
79
|
-
shards: list[str] = fastapi_query(SearchParamDefaults.shards),
|
80
79
|
) -> Union[ResourceSearchResults, HTTPClientError]:
|
81
80
|
top_k = top_k or SearchParamDefaults.top_k # type: ignore
|
82
81
|
top_k = cast(int, top_k)
|
@@ -101,9 +100,7 @@ async def resource_search(
|
|
101
100
|
except InvalidQueryError as exc:
|
102
101
|
return HTTPClientError(status_code=412, detail=str(exc))
|
103
102
|
|
104
|
-
results, incomplete_results, queried_nodes = await node_query(
|
105
|
-
kbid, Method.SEARCH, pb_query, shards
|
106
|
-
)
|
103
|
+
results, incomplete_results, queried_nodes = await node_query(kbid, Method.SEARCH, pb_query)
|
107
104
|
|
108
105
|
# We need to merge
|
109
106
|
search_results = await merge_paragraphs_results(
|
nucliadb/search/api/v1/search.py
CHANGED
@@ -146,7 +146,6 @@ async def search_knowledgebox(
|
|
146
146
|
SearchParamDefaults.field_type_filter, alias="field_type"
|
147
147
|
),
|
148
148
|
extracted: list[ExtractedDataTypeName] = fastapi_query(SearchParamDefaults.extracted),
|
149
|
-
shards: list[str] = fastapi_query(SearchParamDefaults.shards),
|
150
149
|
with_duplicates: bool = fastapi_query(SearchParamDefaults.with_duplicates),
|
151
150
|
with_synonyms: bool = fastapi_query(SearchParamDefaults.with_synonyms),
|
152
151
|
autofilter: bool = fastapi_query(SearchParamDefaults.autofilter),
|
@@ -183,7 +182,6 @@ async def search_knowledgebox(
|
|
183
182
|
show=show,
|
184
183
|
field_type_filter=field_type_filter,
|
185
184
|
extracted=extracted,
|
186
|
-
shards=shards,
|
187
185
|
with_duplicates=with_duplicates,
|
188
186
|
with_synonyms=with_synonyms,
|
189
187
|
autofilter=autofilter,
|
@@ -295,9 +293,7 @@ async def search(
|
|
295
293
|
)
|
296
294
|
pb_query, incomplete_results, autofilters, _ = await query_parser.parse()
|
297
295
|
|
298
|
-
results, query_incomplete_results, queried_nodes = await node_query(
|
299
|
-
kbid, Method.SEARCH, pb_query, target_shard_replicas=item.shards
|
300
|
-
)
|
296
|
+
results, query_incomplete_results, queried_nodes = await node_query(kbid, Method.SEARCH, pb_query)
|
301
297
|
|
302
298
|
incomplete_results = incomplete_results or query_incomplete_results
|
303
299
|
|
nucliadb/search/predict.py
CHANGED
@@ -49,10 +49,9 @@ from nucliadb_models.search import (
|
|
49
49
|
)
|
50
50
|
from nucliadb_protos.utils_pb2 import RelationNode
|
51
51
|
from nucliadb_telemetry import errors, metrics
|
52
|
-
from nucliadb_utils.const import Features
|
53
52
|
from nucliadb_utils.exceptions import LimitsExceededError
|
54
53
|
from nucliadb_utils.settings import nuclia_settings
|
55
|
-
from nucliadb_utils.utilities import Utility,
|
54
|
+
from nucliadb_utils.utilities import Utility, set_utility
|
56
55
|
|
57
56
|
|
58
57
|
class SendToPredictError(Exception):
|
@@ -89,7 +88,6 @@ DUMMY_LEARNING_MODEL = "chatgpt"
|
|
89
88
|
|
90
89
|
PUBLIC_PREDICT = "/api/v1/predict"
|
91
90
|
PRIVATE_PREDICT = "/api/internal/predict"
|
92
|
-
VERSIONED_PRIVATE_PREDICT = "/api/v1/internal/predict"
|
93
91
|
SENTENCE = "/sentence"
|
94
92
|
TOKENS = "/tokens"
|
95
93
|
QUERY = "/query"
|
@@ -199,10 +197,7 @@ class PredictEngine:
|
|
199
197
|
# /api/v1/predict/rephrase/{kbid}
|
200
198
|
return f"{self.public_url}{PUBLIC_PREDICT}{endpoint}/{kbid}"
|
201
199
|
else:
|
202
|
-
|
203
|
-
return f"{self.cluster_url}{VERSIONED_PRIVATE_PREDICT}{endpoint}"
|
204
|
-
else:
|
205
|
-
return f"{self.cluster_url}{PRIVATE_PREDICT}{endpoint}"
|
200
|
+
return f"{self.cluster_url}{PRIVATE_PREDICT}{endpoint}"
|
206
201
|
|
207
202
|
def get_predict_headers(self, kbid: str) -> dict[str, str]:
|
208
203
|
if self.onprem:
|
@@ -45,8 +45,6 @@ from nucliadb_protos.nodereader_pb2 import (
|
|
45
45
|
)
|
46
46
|
from nucliadb_protos.writer_pb2 import ShardObject as PBShardObject
|
47
47
|
from nucliadb_telemetry import errors
|
48
|
-
from nucliadb_utils import const
|
49
|
-
from nucliadb_utils.utilities import has_feature
|
50
48
|
|
51
49
|
|
52
50
|
class Method(Enum):
|
@@ -73,10 +71,7 @@ async def node_query(
|
|
73
71
|
kbid: str,
|
74
72
|
method: Method,
|
75
73
|
pb_query: SuggestRequest,
|
76
|
-
target_shard_replicas: Optional[list[str]] = None,
|
77
|
-
use_read_replica_nodes: bool = True,
|
78
74
|
timeout: Optional[float] = None,
|
79
|
-
retry_on_primary: bool = True,
|
80
75
|
) -> tuple[list[SuggestResponse], bool, list[tuple[AbstractIndexNode, str]]]: ...
|
81
76
|
|
82
77
|
|
@@ -85,10 +80,7 @@ async def node_query(
|
|
85
80
|
kbid: str,
|
86
81
|
method: Method,
|
87
82
|
pb_query: SearchRequest,
|
88
|
-
target_shard_replicas: Optional[list[str]] = None,
|
89
|
-
use_read_replica_nodes: bool = True,
|
90
83
|
timeout: Optional[float] = None,
|
91
|
-
retry_on_primary: bool = True,
|
92
84
|
) -> tuple[list[SearchResponse], bool, list[tuple[AbstractIndexNode, str]]]: ...
|
93
85
|
|
94
86
|
|
@@ -96,16 +88,9 @@ async def node_query(
|
|
96
88
|
kbid: str,
|
97
89
|
method: Method,
|
98
90
|
pb_query: REQUEST_TYPE,
|
99
|
-
target_shard_replicas: Optional[list[str]] = None,
|
100
|
-
use_read_replica_nodes: bool = True,
|
101
91
|
timeout: Optional[float] = None,
|
102
|
-
retry_on_primary: bool = True,
|
103
92
|
) -> tuple[Sequence[Union[T, BaseException]], bool, list[tuple[AbstractIndexNode, str]]]:
|
104
93
|
timeout = timeout or settings.search_timeout
|
105
|
-
use_read_replica_nodes = use_read_replica_nodes and has_feature(
|
106
|
-
const.Features.READ_REPLICA_SEARCHES, context={"kbid": kbid}
|
107
|
-
)
|
108
|
-
|
109
94
|
shard_manager = get_shard_manager()
|
110
95
|
try:
|
111
96
|
shard_groups: list[PBShardObject] = await shard_manager.get_shards_by_kbid(kbid)
|
@@ -121,11 +106,7 @@ async def node_query(
|
|
121
106
|
|
122
107
|
for shard_obj in shard_groups:
|
123
108
|
try:
|
124
|
-
node, shard_id = cluster_manager.choose_node(
|
125
|
-
shard_obj,
|
126
|
-
use_read_replica_nodes=use_read_replica_nodes,
|
127
|
-
target_shard_replicas=target_shard_replicas,
|
128
|
-
)
|
109
|
+
node, shard_id = cluster_manager.choose_node(shard_obj)
|
129
110
|
except KeyError:
|
130
111
|
incomplete_results = True
|
131
112
|
else:
|
@@ -166,29 +147,6 @@ async def node_query(
|
|
166
147
|
"query": json.dumps(query_dict),
|
167
148
|
},
|
168
149
|
)
|
169
|
-
if (
|
170
|
-
error.status_code >= 500
|
171
|
-
and use_read_replica_nodes
|
172
|
-
and any([node.is_read_replica() for node, _ in queried_nodes])
|
173
|
-
and retry_on_primary
|
174
|
-
):
|
175
|
-
# We had an error querying a secondary node, instead of raising an
|
176
|
-
# error directly, retry query to primaries and hope it works
|
177
|
-
logger.warning(
|
178
|
-
"Query to read replica failed. Trying again with primary",
|
179
|
-
extra={"nodes": debug_nodes_info(queried_nodes)},
|
180
|
-
)
|
181
|
-
|
182
|
-
results, incomplete_results, primary_queried_nodes = await node_query( # type: ignore
|
183
|
-
kbid,
|
184
|
-
method,
|
185
|
-
pb_query,
|
186
|
-
target_shard_replicas,
|
187
|
-
use_read_replica_nodes=False,
|
188
|
-
)
|
189
|
-
queried_nodes.extend(primary_queried_nodes)
|
190
|
-
return results, incomplete_results, queried_nodes
|
191
|
-
|
192
150
|
raise error
|
193
151
|
|
194
152
|
return results, incomplete_results, queried_nodes
|
@@ -383,7 +383,6 @@ class AskResult:
|
|
383
383
|
self._relations = await get_relations_results(
|
384
384
|
kbid=self.kbid,
|
385
385
|
text_answer=self._answer_text,
|
386
|
-
target_shard_replicas=self.ask_request.shards,
|
387
386
|
timeout=5.0,
|
388
387
|
)
|
389
388
|
return self._relations
|
@@ -741,7 +740,6 @@ async def retrieval_in_kb(
|
|
741
740
|
origin=origin,
|
742
741
|
graph_strategy=graph_strategy,
|
743
742
|
metrics=metrics,
|
744
|
-
shards=ask_request.shards,
|
745
743
|
)
|
746
744
|
|
747
745
|
if prequeries_results is None:
|
@@ -173,7 +173,6 @@ def find_request_from_ask_request(item: AskRequest, query: str) -> FindRequest:
|
|
173
173
|
find_request.range_modification_end = item.range_modification_end
|
174
174
|
find_request.show = item.show
|
175
175
|
find_request.extracted = item.extracted
|
176
|
-
find_request.shards = item.shards
|
177
176
|
find_request.autofilter = item.autofilter
|
178
177
|
find_request.highlight = item.highlight
|
179
178
|
find_request.security = item.security
|
@@ -219,7 +218,6 @@ async def get_relations_results(
|
|
219
218
|
*,
|
220
219
|
kbid: str,
|
221
220
|
text_answer: str,
|
222
|
-
target_shard_replicas: Optional[list[str]],
|
223
221
|
timeout: Optional[float] = None,
|
224
222
|
only_with_metadata: bool = False,
|
225
223
|
only_agentic_relations: bool = False,
|
@@ -231,7 +229,6 @@ async def get_relations_results(
|
|
231
229
|
return await get_relations_results_from_entities(
|
232
230
|
kbid=kbid,
|
233
231
|
entities=detected_entities,
|
234
|
-
target_shard_replicas=target_shard_replicas,
|
235
232
|
timeout=timeout,
|
236
233
|
only_with_metadata=only_with_metadata,
|
237
234
|
only_agentic_relations=only_agentic_relations,
|
@@ -246,7 +243,6 @@ async def get_relations_results_from_entities(
|
|
246
243
|
*,
|
247
244
|
kbid: str,
|
248
245
|
entities: Iterable[RelationNode],
|
249
|
-
target_shard_replicas: Optional[list[str]],
|
250
246
|
timeout: Optional[float] = None,
|
251
247
|
only_with_metadata: bool = False,
|
252
248
|
only_agentic_relations: bool = False,
|
@@ -269,10 +265,7 @@ async def get_relations_results_from_entities(
|
|
269
265
|
kbid,
|
270
266
|
Method.SEARCH,
|
271
267
|
request,
|
272
|
-
target_shard_replicas=target_shard_replicas,
|
273
268
|
timeout=timeout,
|
274
|
-
use_read_replica_nodes=True,
|
275
|
-
retry_on_primary=False,
|
276
269
|
)
|
277
270
|
relations_results: list[RelationSearchResponse] = [result.relation for result in results]
|
278
271
|
return await merge_relations_results(
|
nucliadb/search/search/find.py
CHANGED
@@ -110,7 +110,7 @@ async def _index_node_retrieval(
|
|
110
110
|
|
111
111
|
with metrics.time("node_query"):
|
112
112
|
results, query_incomplete_results, queried_nodes = await node_query(
|
113
|
-
kbid, Method.SEARCH, pb_query
|
113
|
+
kbid, Method.SEARCH, pb_query
|
114
114
|
)
|
115
115
|
incomplete_results = incomplete_results or query_incomplete_results
|
116
116
|
|
@@ -368,7 +368,6 @@ async def get_graph_results(
|
|
368
368
|
new_relations = await get_relations_results_from_entities(
|
369
369
|
kbid=kbid,
|
370
370
|
entities=entities_to_explore,
|
371
|
-
target_shard_replicas=shards,
|
372
371
|
timeout=5.0,
|
373
372
|
only_with_metadata=True,
|
374
373
|
only_agentic_relations=graph_strategy.agentic_graph_only,
|
@@ -455,8 +454,6 @@ async def fuzzy_search_entities(
|
|
455
454
|
kbid,
|
456
455
|
Method.SEARCH,
|
457
456
|
request,
|
458
|
-
use_read_replica_nodes=True,
|
459
|
-
retry_on_primary=False,
|
460
457
|
)
|
461
458
|
return merge_relation_prefix_results(results)
|
462
459
|
except Exception as e:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: nucliadb
|
3
|
-
Version: 6.2.1.
|
3
|
+
Version: 6.2.1.post3296
|
4
4
|
Summary: NucliaDB
|
5
5
|
Author-email: Nuclia <nucliadb@nuclia.com>
|
6
6
|
License: AGPL
|
@@ -20,11 +20,11 @@ Classifier: Programming Language :: Python :: 3.12
|
|
20
20
|
Classifier: Programming Language :: Python :: 3 :: Only
|
21
21
|
Requires-Python: <4,>=3.9
|
22
22
|
Description-Content-Type: text/markdown
|
23
|
-
Requires-Dist: nucliadb-telemetry[all]>=6.2.1.
|
24
|
-
Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.2.1.
|
25
|
-
Requires-Dist: nucliadb-protos>=6.2.1.
|
26
|
-
Requires-Dist: nucliadb-models>=6.2.1.
|
27
|
-
Requires-Dist: nidx-protos>=6.2.1.
|
23
|
+
Requires-Dist: nucliadb-telemetry[all]>=6.2.1.post3296
|
24
|
+
Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.2.1.post3296
|
25
|
+
Requires-Dist: nucliadb-protos>=6.2.1.post3296
|
26
|
+
Requires-Dist: nucliadb-models>=6.2.1.post3296
|
27
|
+
Requires-Dist: nidx-protos>=6.2.1.post3296
|
28
28
|
Requires-Dist: nucliadb-admin-assets>=1.0.0.post1224
|
29
29
|
Requires-Dist: nuclia-models>=0.24.2
|
30
30
|
Requires-Dist: uvicorn
|
@@ -48,8 +48,8 @@ nucliadb/common/cluster/base.py,sha256=kklDqyvsubNX0W494ttl9f3E58lGaX6AXqAd8XX8Z
|
|
48
48
|
nucliadb/common/cluster/exceptions.py,sha256=V3c_fgH00GyJ-a5CaGLhwTuhwhUNR9YAGvS5jaRuc_Y,1495
|
49
49
|
nucliadb/common/cluster/grpc_node_dummy.py,sha256=L85wBnfab7Rev0CfsfUjPxQC6DiHPsETKrZAOLx9XHg,3510
|
50
50
|
nucliadb/common/cluster/index_node.py,sha256=g38H1kiAliF3Y6et_CWYInpn_xPxf7THAFJ7RtgLNZo,3246
|
51
|
-
nucliadb/common/cluster/manager.py,sha256
|
52
|
-
nucliadb/common/cluster/rebalance.py,sha256=
|
51
|
+
nucliadb/common/cluster/manager.py,sha256=-y5PCUzxrvvUCBopmi8JztPiSBYYbUBeLer0XtO4Ukk,15383
|
52
|
+
nucliadb/common/cluster/rebalance.py,sha256=P3P45m390ImOYBmjuufNpBRXijWvcNpkYqPiDPcdbHg,8960
|
53
53
|
nucliadb/common/cluster/rollover.py,sha256=dx6AF9ywKP10iBNlcoJgRV40921fOPpVWaCUU54hztE,25823
|
54
54
|
nucliadb/common/cluster/settings.py,sha256=TMoym-cZsQ2soWfLAce0moSa2XncttQyhahL43LrWTo,3384
|
55
55
|
nucliadb/common/cluster/utils.py,sha256=Vu0f6026EBELe-ff3d5B0ihD0HtjSWKDCr4dy7LmKqg,5848
|
@@ -106,12 +106,12 @@ nucliadb/ingest/cache.py,sha256=w7jMMzamOmQ7gwXna6Dqm6isRNBVv6l5BTBlTxaYWjE,1005
|
|
106
106
|
nucliadb/ingest/partitions.py,sha256=2NIhMYbNT0TNBL6bX1UMSi7vxFGICstCKEqsB0TXHOE,2410
|
107
107
|
nucliadb/ingest/processing.py,sha256=gg1DqbMFwqdOsmCSGsZc2abRdYz86xOZJun9vrHOCzs,20618
|
108
108
|
nucliadb/ingest/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
109
|
-
nucliadb/ingest/serialize.py,sha256=
|
109
|
+
nucliadb/ingest/serialize.py,sha256=lIxPbt-Kz0eXXrefDltKbCRiyvkhHTR_AFwPUC6-nHU,16151
|
110
110
|
nucliadb/ingest/settings.py,sha256=0B-wQNa8FLqtNcQgRzh-fuIuGptM816XHcbH1NQKfmE,3050
|
111
111
|
nucliadb/ingest/utils.py,sha256=l1myURu3r8oA11dx3GpHw-gNTUc1AFX8xdPm9Lgl2rA,2275
|
112
112
|
nucliadb/ingest/consumer/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
113
113
|
nucliadb/ingest/consumer/auditing.py,sha256=QLffHz49oz9h9P080oBB7eTBL4cqWI-JTTDeg3SmFQ8,7264
|
114
|
-
nucliadb/ingest/consumer/consumer.py,sha256=
|
114
|
+
nucliadb/ingest/consumer/consumer.py,sha256=YIfkUmBqKeyAkJU1y1Vlld4pwFAKDdC_sX-snKsPH8E,13848
|
115
115
|
nucliadb/ingest/consumer/materializer.py,sha256=7ofLbwjldJA8TWXDRZRM4U5EviZt3qNSQ8oadmkzS0Y,3840
|
116
116
|
nucliadb/ingest/consumer/metrics.py,sha256=ji1l_4cKiHJthQd8YNem1ft4iMbw9KThmVvJmLcv3Xg,1075
|
117
117
|
nucliadb/ingest/consumer/pull.py,sha256=EYT0ImngMQgatStG68p2GSrPQBbJxeuq8nFm8DdAbwk,9280
|
@@ -129,11 +129,11 @@ nucliadb/ingest/fields/text.py,sha256=tFvSQJAe0W7ePpp2_WDfLiE2yglR1OTU0Zht9acvOF
|
|
129
129
|
nucliadb/ingest/orm/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
130
130
|
nucliadb/ingest/orm/brain.py,sha256=UND5EsNUdd7XdjScYqRqg4r_xCx3l-My8alGw5M9CWg,28398
|
131
131
|
nucliadb/ingest/orm/broker_message.py,sha256=ZEMueoGuuRKO4tHgzc0P0AM1Ls1TTYey_4UvRQf0BpY,6915
|
132
|
-
nucliadb/ingest/orm/entities.py,sha256=
|
132
|
+
nucliadb/ingest/orm/entities.py,sha256=3_n6lKhBy2GsdmNmkh0_mvxP8md20OZsbtTNEmfJ8Hg,14888
|
133
133
|
nucliadb/ingest/orm/exceptions.py,sha256=k4Esv4NtL4TrGTcsQpwrSfDhPQpiYcRbB1SpYmBX5MY,1432
|
134
134
|
nucliadb/ingest/orm/knowledgebox.py,sha256=IGOPvBR1qXqDxE5DeiOdYCLdPgjzOVVpsASJ2zYvWwQ,23651
|
135
135
|
nucliadb/ingest/orm/metrics.py,sha256=OkwMSPKLZcKba0ZTwtTiIxwBgaLMX5ydhGieKvi2y7E,1096
|
136
|
-
nucliadb/ingest/orm/resource.py,sha256=
|
136
|
+
nucliadb/ingest/orm/resource.py,sha256=9J1O9VW2ZNTEbJ9Fv0J3yIGR5Gf_FFJJjiBzO0SeRXE,44219
|
137
137
|
nucliadb/ingest/orm/utils.py,sha256=vCe_9UxHu26JDFGLwQ0wH-XyzJIpQCTK-Ow9dtZR5Vg,2716
|
138
138
|
nucliadb/ingest/orm/processor/__init__.py,sha256=Aqd9wCNTvggkMkCY3WvoI8spdr94Jnqk-0iq9XpLs18,922
|
139
139
|
nucliadb/ingest/orm/processor/auditing.py,sha256=TeYhXGJRyQ7ROytbb2u8R0fIh_FYi3HgTu3S1ribY3U,4623
|
@@ -143,7 +143,7 @@ nucliadb/ingest/orm/processor/processor.py,sha256=2FxAetUvtHvg6l-24xYrmBdsyqc0RU
|
|
143
143
|
nucliadb/ingest/orm/processor/sequence_manager.py,sha256=uqEphtI1Ir_yk9jRl2gPf7BlzzXWovbARY5MNZSBI_8,1704
|
144
144
|
nucliadb/ingest/service/__init__.py,sha256=MME_G_ERxzJR6JW_hfE2qcfXpmpH1kdG-S0a-M0qRm8,2043
|
145
145
|
nucliadb/ingest/service/exceptions.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
146
|
-
nucliadb/ingest/service/writer.py,sha256=
|
146
|
+
nucliadb/ingest/service/writer.py,sha256=yLFQhB1vruKviO1Lo4vgGkNw8pidQahDyQ0IVehqWL0,20377
|
147
147
|
nucliadb/middleware/__init__.py,sha256=A8NBlBuEkunCFMKpR9gnfNELsVn0Plc55BIQMbWDM8Q,2202
|
148
148
|
nucliadb/migrator/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
149
149
|
nucliadb/migrator/command.py,sha256=dKbJ1tAmP6X4lMVRSSlz351euaqs2wBPpOczLjATUes,2089
|
@@ -181,7 +181,7 @@ nucliadb/search/__init__.py,sha256=tnypbqcH4nBHbGpkINudhKgdLKpwXQCvDtPchUlsyY4,1
|
|
181
181
|
nucliadb/search/app.py,sha256=6UV7rO0f3w5bNFXLdQM8bwUwXayMGnM4hF6GGv7WPv4,4260
|
182
182
|
nucliadb/search/lifecycle.py,sha256=DW8v4WUi4rZqc7xTOi3rE67W7877WG7fH9oTZbolHdE,2099
|
183
183
|
nucliadb/search/openapi.py,sha256=t3Wo_4baTrfPftg2BHsyLWNZ1MYn7ZRdW7ht-wFOgRs,1016
|
184
|
-
nucliadb/search/predict.py,sha256=
|
184
|
+
nucliadb/search/predict.py,sha256=j51l_Zb8K9j6YAXIx1aafspqvdeZuANpyv96_pVfUEg,20641
|
185
185
|
nucliadb/search/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
186
186
|
nucliadb/search/run.py,sha256=aFb-CXRi_C8YMpP_ivNj8KW1BYhADj88y8K9Lr_nUPI,1402
|
187
187
|
nucliadb/search/settings.py,sha256=vem3EcyYlTPSim0kEK-xe-erF4BZg0CT_LAb8ZRQAE8,1684
|
@@ -189,30 +189,30 @@ nucliadb/search/utilities.py,sha256=9SsRDw0rJVXVoLBfF7rBb6q080h-thZc7u8uRcTiBeY,
|
|
189
189
|
nucliadb/search/api/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
190
190
|
nucliadb/search/api/v1/__init__.py,sha256=NSbOVF6toiHX9WMpGgqpFrjJKT50EcHzOILp-2iHk5I,1249
|
191
191
|
nucliadb/search/api/v1/ask.py,sha256=F2dR3-swb3Xz8MfZPYL3G65KY2R_mgef4YVBbu8kLi4,4352
|
192
|
-
nucliadb/search/api/v1/catalog.py,sha256=
|
192
|
+
nucliadb/search/api/v1/catalog.py,sha256=TF19WN-qgZZLkqBwVH5xNsMxYTrmdEflPvy7qft_4lE,7010
|
193
193
|
nucliadb/search/api/v1/feedback.py,sha256=kNLc4dHz2SXHzV0PwC1WiRAwY88fDptPcP-kO0q-FrQ,2620
|
194
194
|
nucliadb/search/api/v1/find.py,sha256=DsnWkySu_cFajDWJIxN8DYvLL_Rm2yiCjHD8TsqPfRk,9304
|
195
195
|
nucliadb/search/api/v1/knowledgebox.py,sha256=rWhx3PYWryingu19qwwFDbVvVYynq5Ky23FSlzmTutQ,8721
|
196
196
|
nucliadb/search/api/v1/predict_proxy.py,sha256=QrGzo0hKjtmyGZ6pjlJHYAh4hxwVUIOTcVcerRCw7eE,3047
|
197
197
|
nucliadb/search/api/v1/router.py,sha256=mtT07rBZcVfpa49doaw9b1tj3sdi3qLH0gn9Io6NYM0,988
|
198
|
-
nucliadb/search/api/v1/search.py,sha256=
|
198
|
+
nucliadb/search/api/v1/search.py,sha256=k80su3UaucHiYflQFSilW10QW4ZxRVRp0kT8zrJXbcU,13498
|
199
199
|
nucliadb/search/api/v1/suggest.py,sha256=S0YUTAWukzZSYZJzN3T5MUgPM3599HQvG76GOCBuAbQ,5907
|
200
200
|
nucliadb/search/api/v1/summarize.py,sha256=VAHJvE6V3xUgEBfqNKhgoxmDqCvh30RnrEIBVhMcNLU,2499
|
201
201
|
nucliadb/search/api/v1/utils.py,sha256=5Ve-frn7LAE2jqAgB85F8RSeqxDlyA08--gS-AdOLS4,1434
|
202
202
|
nucliadb/search/api/v1/resource/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
203
203
|
nucliadb/search/api/v1/resource/ask.py,sha256=XMEP9_Uwy37yaXLcIYKMXGiZYNASD8RTByzQGjd9LPQ,3847
|
204
|
-
nucliadb/search/api/v1/resource/search.py,sha256=
|
204
|
+
nucliadb/search/api/v1/resource/search.py,sha256=oSU5lwG7XRnD7oBFct31JaECGjTjX5R8mxNF1mskINc,4715
|
205
205
|
nucliadb/search/requesters/__init__.py,sha256=itSI7dtTwFP55YMX4iK7JzdMHS5CQVUiB1XzQu4UBh8,833
|
206
|
-
nucliadb/search/requesters/utils.py,sha256=
|
206
|
+
nucliadb/search/requesters/utils.py,sha256=qL81UVPNgBftUMLpcxIYVr7ILsMqpKCo-9SY2EvAaXw,6681
|
207
207
|
nucliadb/search/search/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
208
208
|
nucliadb/search/search/cache.py,sha256=n9vkN6Y6Xnr2RBJyoH0WzjzGTJOMfKekU9tfPTWWCPc,6810
|
209
209
|
nucliadb/search/search/cut.py,sha256=ytY0_GY7ocNjfxTb4aosxEp4ZfhQNDP--JkhEMGD298,1153
|
210
210
|
nucliadb/search/search/exceptions.py,sha256=klGLgAGGrXcSGix_W6418ZBMqDchAIGjN77ofkOScEI,1039
|
211
211
|
nucliadb/search/search/fetch.py,sha256=XJHIFnZmXM_8Kb37lb4lg1GYG7cZ1plT-qAIb_QziX4,6184
|
212
212
|
nucliadb/search/search/filters.py,sha256=1MkHlJjAQqoRCj7e5cEzK2HvBxGLE17I_omsjiklbtw,6476
|
213
|
-
nucliadb/search/search/find.py,sha256=
|
213
|
+
nucliadb/search/search/find.py,sha256=AocqiH_mWvF_szUaW0ONqWrZAbX-k_VhM0Lpv7D669M,10030
|
214
214
|
nucliadb/search/search/find_merge.py,sha256=3FnzKFEnVemg6FO_6zveulbAU7klvsiPEBvLrpBBMg8,17450
|
215
|
-
nucliadb/search/search/graph_strategy.py,sha256=
|
215
|
+
nucliadb/search/search/graph_strategy.py,sha256=ahwcUTQZ0Ll-rnS285DO9PmRyiM-1p4BM3UvmOYVwhM,31750
|
216
216
|
nucliadb/search/search/hydrator.py,sha256=-R37gCrGxkyaiHQalnTWHNG_FCx11Zucd7qA1vQCxuw,6985
|
217
217
|
nucliadb/search/search/merge.py,sha256=i_PTBFRqC5iTTziOMEltxLIlmokIou5hjjgR4BnoLBE,22635
|
218
218
|
nucliadb/search/search/metrics.py,sha256=81X-tahGW4n2CLvUzCPdNxNClmZqUWZjcVOGCUHoiUM,2872
|
@@ -226,11 +226,11 @@ nucliadb/search/search/shards.py,sha256=JSRSrHgHcF4sXyuZZoJdMfK0v_LHpoSRf1lCr5-K
|
|
226
226
|
nucliadb/search/search/summarize.py,sha256=ksmYPubEQvAQgfPdZHfzB_rR19B2ci4IYZ6jLdHxZo8,4996
|
227
227
|
nucliadb/search/search/utils.py,sha256=iF2tbBA56gRMJH1TlE2hMrqeXqjoeOPt4KgRdp2m9Ek,3313
|
228
228
|
nucliadb/search/search/chat/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
229
|
-
nucliadb/search/search/chat/ask.py,sha256=
|
229
|
+
nucliadb/search/search/chat/ask.py,sha256=SfnixWdSdwCE8o8zN0_bYpRuqw0VPc62DF4Wbft_GvQ,36303
|
230
230
|
nucliadb/search/search/chat/exceptions.py,sha256=Siy4GXW2L7oPhIR86H3WHBhE9lkV4A4YaAszuGGUf54,1356
|
231
231
|
nucliadb/search/search/chat/images.py,sha256=PA8VWxT5_HUGfW1ULhKTK46UBsVyINtWWqEM1ulzX1E,3095
|
232
232
|
nucliadb/search/search/chat/prompt.py,sha256=Jnja-Ss7skgnnDY8BymVfdeYsFPnIQFL8tEvcRXTKUE,47356
|
233
|
-
nucliadb/search/search/chat/query.py,sha256=
|
233
|
+
nucliadb/search/search/chat/query.py,sha256=sFRJag80ahpXA7q3oP0XfIsUyRMNz0Y6K6nz8q4wP2A,15371
|
234
234
|
nucliadb/search/search/query_parser/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
235
235
|
nucliadb/search/search/query_parser/exceptions.py,sha256=szAOXUZ27oNY-OSa9t2hQ5HHkQQC0EX1FZz_LluJHJE,1224
|
236
236
|
nucliadb/search/search/query_parser/fetcher.py,sha256=jhr__J0KmAzjdsTTadWQmD9qf6lZvqlKAfZdYjZH_UY,15742
|
@@ -331,8 +331,8 @@ nucliadb/writer/tus/local.py,sha256=7jYa_w9b-N90jWgN2sQKkNcomqn6JMVBOVeDOVYJHto,
|
|
331
331
|
nucliadb/writer/tus/s3.py,sha256=vF0NkFTXiXhXq3bCVXXVV-ED38ECVoUeeYViP8uMqcU,8357
|
332
332
|
nucliadb/writer/tus/storage.py,sha256=ToqwjoYnjI4oIcwzkhha_MPxi-k4Jk3Lt55zRwaC1SM,2903
|
333
333
|
nucliadb/writer/tus/utils.py,sha256=MSdVbRsRSZVdkaum69_0wku7X3p5wlZf4nr6E0GMKbw,2556
|
334
|
-
nucliadb-6.2.1.
|
335
|
-
nucliadb-6.2.1.
|
336
|
-
nucliadb-6.2.1.
|
337
|
-
nucliadb-6.2.1.
|
338
|
-
nucliadb-6.2.1.
|
334
|
+
nucliadb-6.2.1.post3296.dist-info/METADATA,sha256=TDoMA6irRbYsnChG3RoK87mms3OC5qqBt-MibTiwllQ,4291
|
335
|
+
nucliadb-6.2.1.post3296.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
336
|
+
nucliadb-6.2.1.post3296.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
|
337
|
+
nucliadb-6.2.1.post3296.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
|
338
|
+
nucliadb-6.2.1.post3296.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|