nucliadb 6.1.0.post2567__py3-none-any.whl → 6.1.0.post2572__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.
@@ -37,6 +37,7 @@ from nucliadb.export_import.utils import (
37
37
  )
38
38
  from nucliadb_protos import knowledgebox_pb2 as kb_pb2
39
39
  from nucliadb_protos import resources_pb2, writer_pb2
40
+ from nucliadb_utils.utilities import _create_storage
40
41
 
41
42
  BinaryStream = AsyncGenerator[bytes, None]
42
43
  BinaryStreamGenerator = Callable[[int], BinaryStream]
@@ -97,17 +98,28 @@ async def import_kb_from_blob_storage(context: ApplicationContext, msg: NatsTask
97
98
  """
98
99
  Imports to a knowledgebox from an export stored in the blob storage service.
99
100
  """
100
- kbid, import_id = msg.kbid, msg.id
101
- dm = ExportImportDataManager(context.kv_driver, context.blob_storage)
102
- metadata = await dm.get_metadata(type="import", kbid=kbid, id=import_id)
103
-
104
- retry_handler = TaskRetryHandler("import", dm, metadata)
105
-
106
- @retry_handler.wrap
107
- async def import_kb_retried(context, kbid, metadata):
108
- stream = dm.download_import(kbid, import_id)
109
- await import_kb(context, kbid, stream, metadata)
110
-
111
- await import_kb_retried(context, kbid, metadata)
112
-
113
- await dm.try_delete_from_storage("import", kbid, import_id)
101
+ try:
102
+ # There is an issue when using the same aiobotocore client to download and upload files concurrently.
103
+ # https://github.com/aio-libs/aiobotocore/issues/1235
104
+ #
105
+ # As a workaround, we use a newly created client for the download of the import file, while using
106
+ # the normally configured storage for the uploads:
107
+ # - The `ExportImportDataManager` is used for the downloads and gets the new storage
108
+ # - `import_kb` gets the `context` with the default blob storage to use in uploads
109
+ download_storage = await _create_storage()
110
+ kbid, import_id = msg.kbid, msg.id
111
+ dm = ExportImportDataManager(context.kv_driver, download_storage)
112
+ metadata = await dm.get_metadata(type="import", kbid=kbid, id=import_id)
113
+
114
+ retry_handler = TaskRetryHandler("import", dm, metadata)
115
+
116
+ @retry_handler.wrap
117
+ async def import_kb_retried(context, kbid, metadata):
118
+ stream = dm.download_import(kbid, import_id)
119
+ await import_kb(context, kbid, stream, metadata)
120
+
121
+ await import_kb_retried(context, kbid, metadata)
122
+
123
+ await dm.try_delete_from_storage("import", kbid, import_id)
124
+ finally:
125
+ await download_storage.finalize()
@@ -1160,12 +1160,20 @@ def add_field_classifications(basic: PBBasic, fcmw: FieldComputedMetadataWrapper
1160
1160
  """
1161
1161
  Returns whether some new field classifications were added
1162
1162
  """
1163
- if len(fcmw.metadata.metadata.classifications) == 0:
1163
+ if len(fcmw.metadata.metadata.classifications) == 0 and all(
1164
+ len(split.classifications) == 0 for split in fcmw.metadata.split_metadata.values()
1165
+ ):
1164
1166
  return False
1167
+
1165
1168
  remove_field_classifications(basic, [fcmw.field])
1166
1169
  fcfs = FieldClassifications()
1167
1170
  fcfs.field.CopyFrom(fcmw.field)
1168
1171
  fcfs.classifications.extend(fcmw.metadata.metadata.classifications)
1172
+
1173
+ for split_id, split in fcmw.metadata.split_metadata.items():
1174
+ if split_id not in fcmw.metadata.deleted_splits:
1175
+ fcfs.classifications.extend(split.classifications)
1176
+
1169
1177
  basic.computedmetadata.field_classifications.append(fcfs)
1170
1178
  return True
1171
1179
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nucliadb
3
- Version: 6.1.0.post2567
3
+ Version: 6.1.0.post2572
4
4
  Home-page: https://docs.nuclia.dev/docs/management/nucliadb/intro
5
5
  Author: NucliaDB Community
6
6
  Author-email: nucliadb@nuclia.com
@@ -22,10 +22,10 @@ Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Programming Language :: Python :: 3 :: Only
23
23
  Requires-Python: >=3.9, <4
24
24
  Description-Content-Type: text/markdown
25
- Requires-Dist: nucliadb-telemetry[all]>=6.1.0.post2567
26
- Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.1.0.post2567
27
- Requires-Dist: nucliadb-protos>=6.1.0.post2567
28
- Requires-Dist: nucliadb-models>=6.1.0.post2567
25
+ Requires-Dist: nucliadb-telemetry[all]>=6.1.0.post2572
26
+ Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.1.0.post2572
27
+ Requires-Dist: nucliadb-protos>=6.1.0.post2572
28
+ Requires-Dist: nucliadb-models>=6.1.0.post2572
29
29
  Requires-Dist: nucliadb-admin-assets>=1.0.0.post1224
30
30
  Requires-Dist: nucliadb-node-binding>=2.26.0
31
31
  Requires-Dist: uvicorn
@@ -100,7 +100,7 @@ nucliadb/export_import/__init__.py,sha256=y-Is0Bxa8TMV6UiOW0deC_D3U465P65CQ5RjBj
100
100
  nucliadb/export_import/datamanager.py,sha256=b9Vhf-WqJ8HosTdNpKXlGj-Vi7MHyMoPxL0VpfPlYlE,6720
101
101
  nucliadb/export_import/exceptions.py,sha256=Dw8WqfG4r6MPJc5TPfbjMvCgXXWTcTOecGHRVU1h3kM,1949
102
102
  nucliadb/export_import/exporter.py,sha256=kgbW-B7FNW7mlc9rBVEfwkkFTqD58TWSTDe9zkmEnBc,7098
103
- nucliadb/export_import/importer.py,sha256=v5cq9Nn8c2zrY_K_00mydR52f8mdFxR7tLdtNLQ0qvk,4229
103
+ nucliadb/export_import/importer.py,sha256=_tzoE2dUfLPivjp8CPE5BMMRCCr_1heOrWmqIe89_LQ,4964
104
104
  nucliadb/export_import/models.py,sha256=VHetyHlofHH5yzcV5q6hN15zGKJTRAu7GOTNveN-tGA,2063
105
105
  nucliadb/export_import/tasks.py,sha256=fpCBeFYPReyLIdk38LDM9Tpnw_VczeMrobT4n1RAIp4,2507
106
106
  nucliadb/export_import/utils.py,sha256=zrNrkkc9i3uT-R6Ju4J_0WNrzayln3KuQFCz-_qIaIA,19613
@@ -137,7 +137,7 @@ nucliadb/ingest/orm/entities.py,sha256=xWhp_JXxHjUJ-m3I08tLqkpIrThHH0LJDvIVgK4q7
137
137
  nucliadb/ingest/orm/exceptions.py,sha256=k4Esv4NtL4TrGTcsQpwrSfDhPQpiYcRbB1SpYmBX5MY,1432
138
138
  nucliadb/ingest/orm/knowledgebox.py,sha256=hKKqvZUG4tdPO3Z29_qvz5-dcX5_X2x5pkNQhDGnR7Q,22746
139
139
  nucliadb/ingest/orm/metrics.py,sha256=OkwMSPKLZcKba0ZTwtTiIxwBgaLMX5ydhGieKvi2y7E,1096
140
- nucliadb/ingest/orm/resource.py,sha256=yCSpJyFYZkBCVNO9Opwaz_LXLnsPvDJuDY3cbm9E6Ws,53478
140
+ nucliadb/ingest/orm/resource.py,sha256=cW_19P2grUOY255pZXvgF13SEyPCy_e8JMogIRqWXxA,53772
141
141
  nucliadb/ingest/orm/utils.py,sha256=vCe_9UxHu26JDFGLwQ0wH-XyzJIpQCTK-Ow9dtZR5Vg,2716
142
142
  nucliadb/ingest/orm/processor/__init__.py,sha256=Aqd9wCNTvggkMkCY3WvoI8spdr94Jnqk-0iq9XpLs18,922
143
143
  nucliadb/ingest/orm/processor/auditing.py,sha256=TeYhXGJRyQ7ROytbb2u8R0fIh_FYi3HgTu3S1ribY3U,4623
@@ -331,9 +331,9 @@ 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.1.0.post2567.dist-info/METADATA,sha256=XMUKY9sqMxtxKBbcjyY3nFz3CeHhcSeR-yQa_lsY-9I,4390
335
- nucliadb-6.1.0.post2567.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
336
- nucliadb-6.1.0.post2567.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
337
- nucliadb-6.1.0.post2567.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
338
- nucliadb-6.1.0.post2567.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
339
- nucliadb-6.1.0.post2567.dist-info/RECORD,,
334
+ nucliadb-6.1.0.post2572.dist-info/METADATA,sha256=Xgkb6zYf-w9Ys2nS1-c4wPB-fhPrlrsoH9KXB44Vfto,4390
335
+ nucliadb-6.1.0.post2572.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
336
+ nucliadb-6.1.0.post2572.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
337
+ nucliadb-6.1.0.post2572.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
338
+ nucliadb-6.1.0.post2572.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
339
+ nucliadb-6.1.0.post2572.dist-info/RECORD,,