nucliadb 6.3.4.post3632__py3-none-any.whl → 6.3.4.post3656__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/backups/const.py +2 -0
- nucliadb/backups/create.py +30 -3
- nucliadb/backups/restore.py +36 -5
- nucliadb/export_import/utils.py +85 -19
- nucliadb/ingest/orm/broker_message.py +19 -1
- {nucliadb-6.3.4.post3632.dist-info → nucliadb-6.3.4.post3656.dist-info}/METADATA +6 -6
- {nucliadb-6.3.4.post3632.dist-info → nucliadb-6.3.4.post3656.dist-info}/RECORD +10 -10
- {nucliadb-6.3.4.post3632.dist-info → nucliadb-6.3.4.post3656.dist-info}/WHEEL +0 -0
- {nucliadb-6.3.4.post3632.dist-info → nucliadb-6.3.4.post3656.dist-info}/entry_points.txt +0 -0
- {nucliadb-6.3.4.post3632.dist-info → nucliadb-6.3.4.post3656.dist-info}/top_level.txt +0 -0
nucliadb/backups/const.py
CHANGED
@@ -37,6 +37,8 @@ class StorageKeys:
|
|
37
37
|
RESOURCE = "backups/{backup_id}/resources/{resource_id}.tar"
|
38
38
|
ENTITIES = "backups/{backup_id}/entities.pb"
|
39
39
|
LABELS = "backups/{backup_id}/labels.pb"
|
40
|
+
SYNONYMS = "backups/{backup_id}/synonyms.pb"
|
41
|
+
SEARCH_CONFIGURATIONS = "backups/{backup_id}/search_configurations.pb"
|
40
42
|
|
41
43
|
|
42
44
|
class BackupFinishedStream:
|
nucliadb/backups/create.py
CHANGED
@@ -18,6 +18,7 @@
|
|
18
18
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
import asyncio
|
21
|
+
import json
|
21
22
|
import logging
|
22
23
|
import tarfile
|
23
24
|
from datetime import datetime, timezone
|
@@ -38,6 +39,8 @@ from nucliadb.export_import.utils import (
|
|
38
39
|
get_cloud_files,
|
39
40
|
get_entities,
|
40
41
|
get_labels,
|
42
|
+
get_search_configurations,
|
43
|
+
get_synonyms,
|
41
44
|
)
|
42
45
|
from nucliadb.tasks.retries import TaskRetryHandler
|
43
46
|
from nucliadb_protos import backups_pb2, resources_pb2, writer_pb2
|
@@ -74,6 +77,8 @@ async def backup_kb(context: ApplicationContext, kbid: str, backup_id: str):
|
|
74
77
|
await backup_resources(context, kbid, backup_id)
|
75
78
|
await backup_labels(context, kbid, backup_id)
|
76
79
|
await backup_entities(context, kbid, backup_id)
|
80
|
+
await backup_synonyms(context, kbid, backup_id)
|
81
|
+
await backup_search_configurations(context, kbid, backup_id)
|
77
82
|
await notify_backup_completed(context, kbid, backup_id)
|
78
83
|
await delete_metadata(context, kbid, backup_id)
|
79
84
|
|
@@ -216,7 +221,7 @@ async def backup_resource_with_binaries(
|
|
216
221
|
await upload_to_bucket(
|
217
222
|
context,
|
218
223
|
resource_data_iterator(),
|
219
|
-
key=StorageKeys.RESOURCE.format(
|
224
|
+
key=StorageKeys.RESOURCE.format(backup_id=backup_id, resource_id=rid),
|
220
225
|
)
|
221
226
|
return total_size
|
222
227
|
|
@@ -225,7 +230,7 @@ async def backup_labels(context: ApplicationContext, kbid: str, backup_id: str):
|
|
225
230
|
labels = await get_labels(context, kbid)
|
226
231
|
await context.blob_storage.upload_object(
|
227
232
|
bucket=settings.backups_bucket,
|
228
|
-
key=StorageKeys.LABELS.format(
|
233
|
+
key=StorageKeys.LABELS.format(backup_id=backup_id),
|
229
234
|
data=labels.SerializeToString(),
|
230
235
|
)
|
231
236
|
|
@@ -234,11 +239,33 @@ async def backup_entities(context: ApplicationContext, kbid: str, backup_id: str
|
|
234
239
|
entities = await get_entities(context, kbid)
|
235
240
|
await context.blob_storage.upload_object(
|
236
241
|
bucket=settings.backups_bucket,
|
237
|
-
key=StorageKeys.ENTITIES.format(
|
242
|
+
key=StorageKeys.ENTITIES.format(backup_id=backup_id),
|
238
243
|
data=entities.SerializeToString(),
|
239
244
|
)
|
240
245
|
|
241
246
|
|
247
|
+
async def backup_synonyms(context: ApplicationContext, kbid: str, backup_id: str):
|
248
|
+
synonyms = await get_synonyms(context, kbid)
|
249
|
+
await context.blob_storage.upload_object(
|
250
|
+
bucket=settings.backups_bucket,
|
251
|
+
key=StorageKeys.SYNONYMS.format(backup_id=backup_id),
|
252
|
+
data=synonyms.SerializeToString(),
|
253
|
+
)
|
254
|
+
|
255
|
+
|
256
|
+
async def backup_search_configurations(context: ApplicationContext, kbid: str, backup_id: str):
|
257
|
+
search_configurations = await get_search_configurations(context, kbid=kbid)
|
258
|
+
serialized_search_configs = {
|
259
|
+
config_id: config.model_dump(mode="python", exclude_unset=True)
|
260
|
+
for config_id, config in search_configurations.items()
|
261
|
+
}
|
262
|
+
await context.blob_storage.upload_object(
|
263
|
+
bucket=settings.backups_bucket,
|
264
|
+
key=StorageKeys.SEARCH_CONFIGURATIONS.format(backup_id=backup_id),
|
265
|
+
data=json.dumps(serialized_search_configs).encode(),
|
266
|
+
)
|
267
|
+
|
268
|
+
|
242
269
|
async def get_metadata(
|
243
270
|
context: ApplicationContext, kbid: str, backup_id: str
|
244
271
|
) -> Optional[BackupMetadata]:
|
nucliadb/backups/restore.py
CHANGED
@@ -21,9 +21,12 @@
|
|
21
21
|
|
22
22
|
import asyncio
|
23
23
|
import functools
|
24
|
+
import json
|
24
25
|
import logging
|
25
26
|
import tarfile
|
26
|
-
from typing import AsyncIterator, Callable, Optional, Union
|
27
|
+
from typing import Any, AsyncIterator, Callable, Optional, Union
|
28
|
+
|
29
|
+
from pydantic import TypeAdapter
|
27
30
|
|
28
31
|
from nucliadb.backups.const import MaindbKeys, StorageKeys
|
29
32
|
from nucliadb.backups.models import RestoreBackupRequest
|
@@ -34,8 +37,11 @@ from nucliadb.export_import.utils import (
|
|
34
37
|
restore_broker_message,
|
35
38
|
set_entities_groups,
|
36
39
|
set_labels,
|
40
|
+
set_search_configurations,
|
41
|
+
set_synonyms,
|
37
42
|
)
|
38
43
|
from nucliadb.tasks.retries import TaskRetryHandler
|
44
|
+
from nucliadb_models.configuration import SearchConfiguration
|
39
45
|
from nucliadb_protos import knowledgebox_pb2 as kb_pb2
|
40
46
|
from nucliadb_protos.resources_pb2 import CloudFile
|
41
47
|
from nucliadb_protos.writer_pb2 import BrokerMessage
|
@@ -69,6 +75,8 @@ async def restore_kb(context: ApplicationContext, kbid: str, backup_id: str):
|
|
69
75
|
await restore_resources(context, kbid, backup_id)
|
70
76
|
await restore_labels(context, kbid, backup_id)
|
71
77
|
await restore_entities(context, kbid, backup_id)
|
78
|
+
await restore_synonyms(context, kbid, backup_id)
|
79
|
+
await restore_search_configurations(context, kbid, backup_id)
|
72
80
|
await delete_last_restored(context, kbid, backup_id)
|
73
81
|
|
74
82
|
|
@@ -77,7 +85,7 @@ async def restore_resources(context: ApplicationContext, kbid: str, backup_id: s
|
|
77
85
|
tasks = []
|
78
86
|
async for object_info in context.blob_storage.iterate_objects(
|
79
87
|
bucket=settings.backups_bucket,
|
80
|
-
prefix=StorageKeys.RESOURCES_PREFIX.format(
|
88
|
+
prefix=StorageKeys.RESOURCES_PREFIX.format(backup_id=backup_id),
|
81
89
|
start=last_restored,
|
82
90
|
):
|
83
91
|
key = object_info.name
|
@@ -210,7 +218,7 @@ class ResourceBackupReader:
|
|
210
218
|
async def restore_resource(context: ApplicationContext, kbid: str, backup_id: str, resource_id: str):
|
211
219
|
download_stream = context.blob_storage.download(
|
212
220
|
bucket=settings.backups_bucket,
|
213
|
-
key=StorageKeys.RESOURCE.format(
|
221
|
+
key=StorageKeys.RESOURCE.format(backup_id=backup_id, resource_id=resource_id),
|
214
222
|
)
|
215
223
|
reader = ResourceBackupReader(download_stream)
|
216
224
|
bm = None
|
@@ -242,7 +250,7 @@ async def restore_resource(context: ApplicationContext, kbid: str, backup_id: st
|
|
242
250
|
async def restore_labels(context: ApplicationContext, kbid: str, backup_id: str):
|
243
251
|
raw = await context.blob_storage.downloadbytes(
|
244
252
|
bucket=settings.backups_bucket,
|
245
|
-
key=StorageKeys.LABELS.format(
|
253
|
+
key=StorageKeys.LABELS.format(backup_id=backup_id),
|
246
254
|
)
|
247
255
|
labels = kb_pb2.Labels()
|
248
256
|
labels.ParseFromString(raw.getvalue())
|
@@ -252,8 +260,31 @@ async def restore_labels(context: ApplicationContext, kbid: str, backup_id: str)
|
|
252
260
|
async def restore_entities(context: ApplicationContext, kbid: str, backup_id: str):
|
253
261
|
raw = await context.blob_storage.downloadbytes(
|
254
262
|
bucket=settings.backups_bucket,
|
255
|
-
key=StorageKeys.ENTITIES.format(
|
263
|
+
key=StorageKeys.ENTITIES.format(backup_id=backup_id),
|
256
264
|
)
|
257
265
|
entities = kb_pb2.EntitiesGroups()
|
258
266
|
entities.ParseFromString(raw.getvalue())
|
259
267
|
await set_entities_groups(context, kbid, entities)
|
268
|
+
|
269
|
+
|
270
|
+
async def restore_synonyms(context: ApplicationContext, kbid: str, backup_id: str):
|
271
|
+
raw = await context.blob_storage.downloadbytes(
|
272
|
+
bucket=settings.backups_bucket,
|
273
|
+
key=StorageKeys.SYNONYMS.format(backup_id=backup_id),
|
274
|
+
)
|
275
|
+
synonyms = kb_pb2.Synonyms()
|
276
|
+
synonyms.ParseFromString(raw.getvalue())
|
277
|
+
await set_synonyms(context, kbid, synonyms)
|
278
|
+
|
279
|
+
|
280
|
+
async def restore_search_configurations(context: ApplicationContext, kbid: str, backup_id: str):
|
281
|
+
raw = await context.blob_storage.downloadbytes(
|
282
|
+
bucket=settings.backups_bucket,
|
283
|
+
key=StorageKeys.SEARCH_CONFIGURATIONS.format(backup_id=backup_id),
|
284
|
+
)
|
285
|
+
as_dict: dict[str, dict[str, Any]] = json.loads(raw.getvalue())
|
286
|
+
search_configurations: dict[str, SearchConfiguration] = {}
|
287
|
+
for name, data in as_dict.items():
|
288
|
+
config: SearchConfiguration = TypeAdapter(SearchConfiguration).validate_python(data)
|
289
|
+
search_configurations[name] = config
|
290
|
+
await set_search_configurations(context, kbid, search_configurations)
|
nucliadb/export_import/utils.py
CHANGED
@@ -34,6 +34,7 @@ from nucliadb.export_import.exceptions import (
|
|
34
34
|
)
|
35
35
|
from nucliadb.export_import.models import ExportedItemType, ExportItem, Metadata
|
36
36
|
from nucliadb.ingest.orm.broker_message import generate_broker_message
|
37
|
+
from nucliadb_models.configuration import SearchConfiguration
|
37
38
|
from nucliadb_models.export_import import Status
|
38
39
|
from nucliadb_protos import knowledgebox_pb2 as kb_pb2
|
39
40
|
from nucliadb_protos import resources_pb2, writer_pb2
|
@@ -45,23 +46,61 @@ BinaryStream = AsyncIterator[bytes]
|
|
45
46
|
BinaryStreamGenerator = Callable[[int], BinaryStream]
|
46
47
|
|
47
48
|
|
48
|
-
#
|
49
|
-
|
50
|
-
|
51
|
-
"
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
49
|
+
# Map that indicates which fields are written by the writer
|
50
|
+
# and which are written by the processor.
|
51
|
+
BM_FIELDS = {
|
52
|
+
"common": [
|
53
|
+
"kbid",
|
54
|
+
"uuid",
|
55
|
+
"type",
|
56
|
+
"source",
|
57
|
+
"reindex",
|
58
|
+
],
|
59
|
+
"writer": [
|
60
|
+
"slug",
|
61
|
+
"basic",
|
62
|
+
"origin",
|
63
|
+
"user_relations",
|
64
|
+
"conversations",
|
65
|
+
"texts",
|
66
|
+
"links",
|
67
|
+
"files",
|
68
|
+
"extra",
|
69
|
+
"security",
|
70
|
+
],
|
71
|
+
"processor": [
|
72
|
+
"link_extracted_data",
|
73
|
+
"file_extracted_data",
|
74
|
+
"extracted_text",
|
75
|
+
"field_metadata",
|
76
|
+
"field_vectors",
|
77
|
+
"field_large_metadata",
|
78
|
+
"question_answers",
|
79
|
+
"relations",
|
80
|
+
"field_statuses",
|
81
|
+
],
|
82
|
+
# These fields are mostly used for internal purposes and they are not part of
|
83
|
+
# the representation of the exported resource as broker message.
|
84
|
+
"ignored": [
|
85
|
+
"audit",
|
86
|
+
"multiid",
|
87
|
+
"origin_seq",
|
88
|
+
"slow_processing_time",
|
89
|
+
"pre_processing_time",
|
90
|
+
"done_time",
|
91
|
+
"processing_id",
|
92
|
+
"account_seq",
|
93
|
+
"delete_fields",
|
94
|
+
"delete_question_answers",
|
95
|
+
"errors",
|
96
|
+
"generated_by",
|
97
|
+
],
|
98
|
+
# No longer used fields
|
99
|
+
"deprecated": [
|
100
|
+
"txseqid",
|
101
|
+
"user_vectors",
|
102
|
+
],
|
103
|
+
}
|
65
104
|
|
66
105
|
|
67
106
|
async def import_broker_message(
|
@@ -125,7 +164,7 @@ async def transaction_commit(
|
|
125
164
|
def get_writer_bm(bm: writer_pb2.BrokerMessage) -> writer_pb2.BrokerMessage:
|
126
165
|
wbm = writer_pb2.BrokerMessage()
|
127
166
|
wbm.CopyFrom(bm)
|
128
|
-
for field in
|
167
|
+
for field in BM_FIELDS["processor"]:
|
129
168
|
wbm.ClearField(field) # type: ignore
|
130
169
|
wbm.type = writer_pb2.BrokerMessage.MessageType.AUTOCOMMIT
|
131
170
|
wbm.source = writer_pb2.BrokerMessage.MessageSource.WRITER
|
@@ -135,7 +174,7 @@ def get_writer_bm(bm: writer_pb2.BrokerMessage) -> writer_pb2.BrokerMessage:
|
|
135
174
|
def get_processor_bm(bm: writer_pb2.BrokerMessage) -> writer_pb2.BrokerMessage:
|
136
175
|
pbm = writer_pb2.BrokerMessage()
|
137
176
|
pbm.CopyFrom(bm)
|
138
|
-
for field in
|
177
|
+
for field in BM_FIELDS["writer"]:
|
139
178
|
pbm.ClearField(field) # type: ignore
|
140
179
|
pbm.type = writer_pb2.BrokerMessage.MessageType.AUTOCOMMIT
|
141
180
|
pbm.source = writer_pb2.BrokerMessage.MessageSource.PROCESSOR
|
@@ -173,6 +212,21 @@ async def set_entities_groups(
|
|
173
212
|
await txn.commit()
|
174
213
|
|
175
214
|
|
215
|
+
async def set_synonyms(context: ApplicationContext, kbid: str, synonyms: kb_pb2.Synonyms) -> None:
|
216
|
+
async with datamanagers.with_transaction() as txn:
|
217
|
+
await datamanagers.synonyms.set(txn, kbid=kbid, synonyms=synonyms)
|
218
|
+
await txn.commit()
|
219
|
+
|
220
|
+
|
221
|
+
async def set_search_configurations(
|
222
|
+
context: ApplicationContext, kbid: str, search_configurations: dict[str, SearchConfiguration]
|
223
|
+
) -> None:
|
224
|
+
async with datamanagers.with_transaction() as txn:
|
225
|
+
for name, config in search_configurations.items():
|
226
|
+
await datamanagers.search_configurations.set(txn, kbid=kbid, name=name, config=config)
|
227
|
+
await txn.commit()
|
228
|
+
|
229
|
+
|
176
230
|
async def set_labels(context: ApplicationContext, kbid: str, labels: kb_pb2.Labels) -> None:
|
177
231
|
async with datamanagers.with_transaction() as txn:
|
178
232
|
await datamanagers.labels.set_labels(txn, kbid=kbid, labels=labels)
|
@@ -273,6 +327,18 @@ async def get_labels(context: ApplicationContext, kbid: str) -> kb_pb2.Labels:
|
|
273
327
|
return await datamanagers.labels.get_labels(txn, kbid=kbid)
|
274
328
|
|
275
329
|
|
330
|
+
async def get_synonyms(context: ApplicationContext, kbid: str) -> kb_pb2.Synonyms:
|
331
|
+
async with datamanagers.with_ro_transaction() as txn:
|
332
|
+
return await datamanagers.synonyms.get(txn, kbid=kbid) or kb_pb2.Synonyms()
|
333
|
+
|
334
|
+
|
335
|
+
async def get_search_configurations(
|
336
|
+
context: ApplicationContext, kbid: str
|
337
|
+
) -> dict[str, SearchConfiguration]:
|
338
|
+
async with datamanagers.with_ro_transaction() as txn:
|
339
|
+
return await datamanagers.search_configurations.list(txn, kbid=kbid)
|
340
|
+
|
341
|
+
|
276
342
|
class EndOfStream(Exception): ...
|
277
343
|
|
278
344
|
|
@@ -26,6 +26,7 @@ from nucliadb.ingest.fields.conversation import Conversation
|
|
26
26
|
from nucliadb.ingest.fields.file import File
|
27
27
|
from nucliadb.ingest.fields.link import Link
|
28
28
|
from nucliadb.ingest.orm.resource import Resource
|
29
|
+
from nucliadb_protos import writer_pb2
|
29
30
|
from nucliadb_protos.knowledgebox_pb2 import VectorSetConfig
|
30
31
|
from nucliadb_protos.resources_pb2 import (
|
31
32
|
ExtractedTextWrapper,
|
@@ -34,7 +35,7 @@ from nucliadb_protos.resources_pb2 import (
|
|
34
35
|
FieldType,
|
35
36
|
LargeComputedMetadataWrapper,
|
36
37
|
)
|
37
|
-
from nucliadb_protos.writer_pb2 import BrokerMessage
|
38
|
+
from nucliadb_protos.writer_pb2 import BrokerMessage, FieldIDStatus
|
38
39
|
|
39
40
|
|
40
41
|
async def generate_broker_message(resource: Resource) -> BrokerMessage:
|
@@ -102,8 +103,25 @@ class _BrokerMessageBuilder:
|
|
102
103
|
# Large metadata
|
103
104
|
await self.generate_field_large_computed_metadata(type_id, field_id, field)
|
104
105
|
|
106
|
+
# Field status
|
107
|
+
await self.generate_field_status(type_id, field_id, field)
|
108
|
+
|
105
109
|
return self.bm
|
106
110
|
|
111
|
+
async def generate_field_status(
|
112
|
+
self,
|
113
|
+
type_id: FieldType.ValueType,
|
114
|
+
field_id: str,
|
115
|
+
field: Field,
|
116
|
+
):
|
117
|
+
fid = writer_pb2.FieldID(field_type=type_id, field=field_id)
|
118
|
+
status = await field.get_status()
|
119
|
+
if status is not None:
|
120
|
+
field_id_status = FieldIDStatus()
|
121
|
+
field_id_status.id.CopyFrom(fid)
|
122
|
+
field_id_status.status = status.status
|
123
|
+
self.bm.field_statuses.append(field_id_status)
|
124
|
+
|
107
125
|
async def generate_field(
|
108
126
|
self,
|
109
127
|
type_id: FieldType.ValueType,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: nucliadb
|
3
|
-
Version: 6.3.4.
|
3
|
+
Version: 6.3.4.post3656
|
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.3.4.
|
24
|
-
Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.3.4.
|
25
|
-
Requires-Dist: nucliadb-protos>=6.3.4.
|
26
|
-
Requires-Dist: nucliadb-models>=6.3.4.
|
27
|
-
Requires-Dist: nidx-protos>=6.3.4.
|
23
|
+
Requires-Dist: nucliadb-telemetry[all]>=6.3.4.post3656
|
24
|
+
Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.3.4.post3656
|
25
|
+
Requires-Dist: nucliadb-protos>=6.3.4.post3656
|
26
|
+
Requires-Dist: nucliadb-models>=6.3.4.post3656
|
27
|
+
Requires-Dist: nidx-protos>=6.3.4.post3656
|
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
|
@@ -40,11 +40,11 @@ nucliadb/metrics_exporter.py,sha256=6u0geEYFxgE5I2Fhl_sxsvGN-ZkaFZNGutSXwrzrsVs,
|
|
40
40
|
nucliadb/openapi.py,sha256=wDiw0dVEvTpJvbatkJ0JZLkKm9RItZT5PWRHjqRfqTA,2272
|
41
41
|
nucliadb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
42
42
|
nucliadb/backups/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
43
|
-
nucliadb/backups/const.py,sha256=
|
44
|
-
nucliadb/backups/create.py,sha256=
|
43
|
+
nucliadb/backups/const.py,sha256=AaIsBB04WerR-V6t8NoCUScxO1ojMYJzfHgdkF2qh4M,2018
|
44
|
+
nucliadb/backups/create.py,sha256=D0MEpIYu74AhbZXeybinQo8cm_A2-T9JxDGLrp5lavA,12507
|
45
45
|
nucliadb/backups/delete.py,sha256=AAs-WP-ujejj6c1LJgiMn7Ht67N_j0a1sKQlUepHpEA,2659
|
46
46
|
nucliadb/backups/models.py,sha256=-hITU4Mv6AxePu12toBu_fjpEv6vVGcwNVxV22O9jQA,1273
|
47
|
-
nucliadb/backups/restore.py,sha256=
|
47
|
+
nucliadb/backups/restore.py,sha256=KAly9iTXUP32mFFnW6neJm7qyNSZJ7fO5LGbC46vSAM,11416
|
48
48
|
nucliadb/backups/settings.py,sha256=SyzsInj1BRbBI0atg5IXWbMbOZ_eVg4eSQ3IcnUhCxQ,1357
|
49
49
|
nucliadb/backups/tasks.py,sha256=WkL1LgdYBHbV_A5ilyYv5p3zmXwxH68TDudytN5f7zk,4225
|
50
50
|
nucliadb/backups/utils.py,sha256=_Vogjqcru5oqNZM-bZ0q7Ju79Bv1PD-LVFEa7Z-Q13I,1261
|
@@ -110,7 +110,7 @@ nucliadb/export_import/exporter.py,sha256=k2QVx1EjqFlDYiggriWiEJzwtMXzHbldsqWdpG
|
|
110
110
|
nucliadb/export_import/importer.py,sha256=v5cq9Nn8c2zrY_K_00mydR52f8mdFxR7tLdtNLQ0qvk,4229
|
111
111
|
nucliadb/export_import/models.py,sha256=dbjScNkiMRv4X3Ktudy1JRliD25bfoDTy3JmEZgQSCc,2121
|
112
112
|
nucliadb/export_import/tasks.py,sha256=DWbdqY97ffoyfipelGXz3Jqz1iam6JCjQSh367Fc3NA,2947
|
113
|
-
nucliadb/export_import/utils.py,sha256=
|
113
|
+
nucliadb/export_import/utils.py,sha256=aBBB7p05GfKknpb9LQa8Krtz0LlFoP5NUTiPy7PwPBY,22840
|
114
114
|
nucliadb/ingest/__init__.py,sha256=fsw3C38VP50km3R-nHL775LNGPpJ4JxqXJ2Ib1f5SqE,1011
|
115
115
|
nucliadb/ingest/app.py,sha256=TaVgh5B2riFVmcsrbPb7a5YCzmnybjx-NK0BXgTwGAY,7535
|
116
116
|
nucliadb/ingest/partitions.py,sha256=2NIhMYbNT0TNBL6bX1UMSi7vxFGICstCKEqsB0TXHOE,2410
|
@@ -138,7 +138,7 @@ nucliadb/ingest/fields/link.py,sha256=kN_gjRUEEj5cy8K_BwPijYg3TiWhedc24apXYlTbRJ
|
|
138
138
|
nucliadb/ingest/fields/text.py,sha256=tFvSQJAe0W7ePpp2_WDfLiE2yglR1OTU0Zht9acvOFw,1594
|
139
139
|
nucliadb/ingest/orm/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
140
140
|
nucliadb/ingest/orm/brain.py,sha256=JwHRneyE2sAo6PwYJnnyUMXKiGBWXLv4JI_aemodB3U,28479
|
141
|
-
nucliadb/ingest/orm/broker_message.py,sha256=
|
141
|
+
nucliadb/ingest/orm/broker_message.py,sha256=vFDdfo_kz_GRai2MGq_3qKRynRXOGR7lawogNx6ZsfA,7553
|
142
142
|
nucliadb/ingest/orm/entities.py,sha256=3_n6lKhBy2GsdmNmkh0_mvxP8md20OZsbtTNEmfJ8Hg,14888
|
143
143
|
nucliadb/ingest/orm/exceptions.py,sha256=k4Esv4NtL4TrGTcsQpwrSfDhPQpiYcRbB1SpYmBX5MY,1432
|
144
144
|
nucliadb/ingest/orm/knowledgebox.py,sha256=IGOPvBR1qXqDxE5DeiOdYCLdPgjzOVVpsASJ2zYvWwQ,23651
|
@@ -352,8 +352,8 @@ nucliadb/writer/tus/local.py,sha256=7jYa_w9b-N90jWgN2sQKkNcomqn6JMVBOVeDOVYJHto,
|
|
352
352
|
nucliadb/writer/tus/s3.py,sha256=vF0NkFTXiXhXq3bCVXXVV-ED38ECVoUeeYViP8uMqcU,8357
|
353
353
|
nucliadb/writer/tus/storage.py,sha256=ToqwjoYnjI4oIcwzkhha_MPxi-k4Jk3Lt55zRwaC1SM,2903
|
354
354
|
nucliadb/writer/tus/utils.py,sha256=MSdVbRsRSZVdkaum69_0wku7X3p5wlZf4nr6E0GMKbw,2556
|
355
|
-
nucliadb-6.3.4.
|
356
|
-
nucliadb-6.3.4.
|
357
|
-
nucliadb-6.3.4.
|
358
|
-
nucliadb-6.3.4.
|
359
|
-
nucliadb-6.3.4.
|
355
|
+
nucliadb-6.3.4.post3656.dist-info/METADATA,sha256=spsdbVapfZnp-QuN7s9NBMX7yMWkHmsKvcgPAwKrckk,4291
|
356
|
+
nucliadb-6.3.4.post3656.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
357
|
+
nucliadb-6.3.4.post3656.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
|
358
|
+
nucliadb-6.3.4.post3656.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
|
359
|
+
nucliadb-6.3.4.post3656.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|