nucliadb 6.3.1.post3560__py3-none-any.whl → 6.3.1.post3571__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.
@@ -17,7 +17,6 @@
17
17
  # You should have received a copy of the GNU Affero General Public License
18
18
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
19
  #
20
- from nucliadb.common.context import ApplicationContext
21
20
  from nucliadb.export_import.exporter import export_kb_to_blob_storage
22
21
  from nucliadb.export_import.importer import import_kb_from_blob_storage
23
22
  from nucliadb.export_import.models import NatsTaskMessage
@@ -60,14 +59,13 @@ def get_exports_consumer() -> NatsTaskConsumer[NatsTaskMessage]:
60
59
  )
61
60
 
62
61
 
63
- async def get_exports_producer(context: ApplicationContext) -> NatsTaskProducer[NatsTaskMessage]:
62
+ def get_exports_producer() -> NatsTaskProducer[NatsTaskMessage]:
64
63
  producer = create_producer(
65
64
  name="exports_producer",
66
65
  stream=ExportsNatsConfig.stream,
67
66
  producer_subject=ExportsNatsConfig.consumer.subject,
68
67
  msg_type=NatsTaskMessage,
69
68
  )
70
- await producer.initialize(context)
71
69
  return producer
72
70
 
73
71
 
@@ -82,12 +80,11 @@ def get_imports_consumer() -> NatsTaskConsumer[NatsTaskMessage]:
82
80
  )
83
81
 
84
82
 
85
- async def get_imports_producer(context: ApplicationContext) -> NatsTaskProducer[NatsTaskMessage]:
83
+ def get_imports_producer() -> NatsTaskProducer[NatsTaskMessage]:
86
84
  producer = create_producer(
87
85
  name="imports_producer",
88
86
  stream=ImportsNatsConfig.stream,
89
87
  producer_subject=ImportsNatsConfig.consumer.subject,
90
88
  msg_type=NatsTaskMessage,
91
89
  )
92
- await producer.initialize(context)
93
90
  return producer
@@ -45,6 +45,7 @@ from nucliadb_protos.resources_pb2 import (
45
45
  Metadata,
46
46
  Origin,
47
47
  Paragraph,
48
+ Relations,
48
49
  UserFieldMetadata,
49
50
  UserMetadata,
50
51
  )
@@ -375,10 +376,10 @@ class ResourceBrain:
375
376
  return "EMPTY"
376
377
  return METADATA_STATUS_PB_TYPE_TO_NAME_MAP[metadata.status]
377
378
 
378
- def set_resource_metadata(self, basic: Basic, origin: Optional[Origin]):
379
+ def set_resource_metadata(self, basic: Basic, origin: Optional[Origin], user_relations: Relations):
379
380
  self._set_resource_dates(basic, origin)
380
381
  self._set_resource_labels(basic, origin)
381
- self._set_resource_relations(basic, origin)
382
+ self._set_resource_relations(basic, origin, user_relations)
382
383
 
383
384
  def _set_resource_dates(self, basic: Basic, origin: Optional[Origin]):
384
385
  if basic.created.seconds > 0:
@@ -401,7 +402,7 @@ class ResourceBrain:
401
402
  if origin.HasField("modified") and origin.modified.seconds > 0:
402
403
  self.brain.metadata.modified.CopyFrom(origin.modified)
403
404
 
404
- def _set_resource_relations(self, basic: Basic, origin: Optional[Origin]):
405
+ def _set_resource_relations(self, basic: Basic, origin: Optional[Origin], user_relations: Relations):
405
406
  relationnodedocument = RelationNode(value=self.rid, ntype=RelationNode.NodeType.RESOURCE)
406
407
  if origin is not None:
407
408
  # origin contributors
@@ -430,7 +431,7 @@ class ResourceBrain:
430
431
  )
431
432
 
432
433
  # relations
433
- self.brain.relations.extend(basic.usermetadata.relations)
434
+ self.brain.relations.extend(user_relations.relations)
434
435
 
435
436
  def _set_resource_labels(self, basic: Basic, origin: Optional[Origin]):
436
437
  if origin is not None:
@@ -577,6 +577,9 @@ class Processor:
577
577
  if message.HasField("security"):
578
578
  await resource.set_security(message.security)
579
579
 
580
+ if message.HasField("user_relations"):
581
+ await resource.set_user_relations(message.user_relations)
582
+
580
583
  await resource.apply_fields(message)
581
584
  await resource.apply_extracted(message)
582
585
 
@@ -129,6 +129,7 @@ class Resource:
129
129
  self.basic = basic
130
130
  self.disable_vectors = disable_vectors
131
131
  self._previous_status: Optional[Metadata.Status.ValueType] = None
132
+ self.user_relations: Optional[PBRelations] = None
132
133
 
133
134
  @property
134
135
  def indexer(self) -> ResourceBrain:
@@ -301,6 +302,23 @@ class Resource:
301
302
  self.modified = True
302
303
  self.relations = relations
303
304
 
305
+ async def get_user_relations(self) -> PBRelations:
306
+ if self.user_relations is None:
307
+ sf = self.storage.user_relations(self.kb.kbid, self.uuid)
308
+ relations = await self.storage.download_pb(sf, PBRelations)
309
+ if relations is None:
310
+ # Key not found = no relations
311
+ self.user_relations = PBRelations()
312
+ else:
313
+ self.user_relations = relations
314
+ return self.user_relations
315
+
316
+ async def set_user_relations(self, payload: PBRelations):
317
+ sf = self.storage.user_relations(self.kb.kbid, self.uuid)
318
+ await self.storage.upload_pb(sf, payload)
319
+ self.modified = True
320
+ self.user_relations = payload
321
+
304
322
  @processor_observer.wrap({"type": "generate_index_message"})
305
323
  async def generate_index_message(self, reindex: bool = False) -> ResourceBrain:
306
324
  brain = ResourceBrain(rid=self.uuid)
@@ -930,11 +948,12 @@ class Resource:
930
948
  async def compute_global_tags(self, brain: ResourceBrain):
931
949
  origin = await self.get_origin()
932
950
  basic = await self.get_basic()
951
+ user_relations = await self.get_user_relations()
933
952
  if basic is None:
934
953
  raise KeyError("Resource not found")
935
954
 
936
955
  brain.set_processing_status(basic=basic, previous_status=self._previous_status)
937
- brain.set_resource_metadata(basic=basic, origin=origin)
956
+ brain.set_resource_metadata(basic=basic, origin=origin, user_relations=user_relations)
938
957
  for type, field in await self.get_fields_ids(force=True):
939
958
  fieldobj = await self.get_field(field, type, load=False)
940
959
  fieldid = FieldID(field_type=type, field=field)
@@ -227,6 +227,12 @@ async def managed_serialize(
227
227
  )
228
228
  resource.queue = QueueType[orm_resource.basic.QueueType.Name(orm_resource.basic.queue)]
229
229
 
230
+ if ResourceProperties.RELATIONS in show:
231
+ relations = await orm_resource.get_user_relations()
232
+ resource.usermetadata.relations = [
233
+ from_proto.relation(rel) for rel in relations.relations
234
+ ]
235
+
230
236
  if ResourceProperties.RELATIONS in show:
231
237
  await orm_resource.get_relations()
232
238
  if orm_resource.relations is not None:
@@ -17,13 +17,13 @@
17
17
  # You should have received a copy of the GNU Affero General Public License
18
18
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
19
  #
20
- from typing import Generic, Optional, Type
20
+ from typing import Generic, Type
21
21
 
22
- from nucliadb.common.context import ApplicationContext
23
22
  from nucliadb.tasks.logger import logger
24
23
  from nucliadb.tasks.models import MsgType
25
- from nucliadb.tasks.utils import NatsStream, create_nats_stream_if_not_exists
24
+ from nucliadb.tasks.utils import NatsStream
26
25
  from nucliadb_telemetry import errors
26
+ from nucliadb_utils.utilities import get_nats_manager
27
27
 
28
28
 
29
29
  class NatsTaskProducer(Generic[MsgType]):
@@ -38,29 +38,17 @@ class NatsTaskProducer(Generic[MsgType]):
38
38
  self.stream = stream
39
39
  self.producer_subject = producer_subject
40
40
  self.msg_type = msg_type
41
- self.context: Optional[ApplicationContext] = None
42
- self.initialized = False
43
-
44
- async def initialize(self, context: ApplicationContext):
45
- self.context = context
46
- await create_nats_stream_if_not_exists(
47
- self.context,
48
- self.stream.name,
49
- subjects=self.stream.subjects,
50
- )
51
- self.initialized = True
41
+ self.nats_manager = get_nats_manager()
52
42
 
53
43
  async def send(self, msg: MsgType) -> int:
54
44
  """
55
45
  Publish message to the producer's nats stream.
56
46
  Returns the sequence number of the published message.
57
47
  """
58
- if not self.initialized:
59
- raise RuntimeError("NatsTaskProducer not initialized")
60
48
  try:
61
- pub_ack = await self.context.nats_manager.js.publish( # type: ignore
49
+ pub_ack = await self.nats_manager.js.publish(
62
50
  self.producer_subject,
63
- msg.model_dump_json().encode("utf-8"), # type: ignore
51
+ msg.model_dump_json().encode("utf-8"),
64
52
  )
65
53
  logger.info(
66
54
  "Message sent to Nats",
@@ -195,7 +195,7 @@ async def start_export_task(context: ApplicationContext, kbid: str, export_id: s
195
195
  metadata.task.status = Status.SCHEDULED
196
196
  await dm.set_metadata("export", metadata)
197
197
  try:
198
- producer = await get_exports_producer(context)
198
+ producer = get_exports_producer()
199
199
  msg = NatsTaskMessage(kbid=kbid, id=export_id)
200
200
  seqid = await producer.send(msg)
201
201
  logger.info(f"Export task produced. seqid={seqid} kbid={kbid} export_id={export_id}")
@@ -212,7 +212,7 @@ async def start_import_task(context: ApplicationContext, kbid: str, import_id: s
212
212
  metadata.total = import_size or 0
213
213
  await dm.set_metadata("import", metadata)
214
214
  try:
215
- producer = await get_imports_producer(context)
215
+ producer = get_imports_producer()
216
216
  msg = NatsTaskMessage(kbid=kbid, id=import_id)
217
217
  seqid = await producer.send(msg)
218
218
  logger.info(f"Import task produced. seqid={seqid} kbid={kbid} import_id={import_id}")
@@ -195,8 +195,8 @@ def parse_basic_modify(bm: BrokerMessage, item: ComingResourcePayload, toprocess
195
195
 
196
196
  # protobuferrs repeated fields don't support assignment so
197
197
  # in order to replace relations, we need to clear them first
198
- bm.basic.usermetadata.ClearField("relations")
199
- bm.basic.usermetadata.relations.extend(relations)
198
+ bm.user_relations.ClearField("relations")
199
+ bm.user_relations.relations.extend(relations)
200
200
 
201
201
  if item.security is not None:
202
202
  unique_groups = list(set(item.security.access_groups))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: nucliadb
3
- Version: 6.3.1.post3560
3
+ Version: 6.3.1.post3571
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.1.post3560
24
- Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.3.1.post3560
25
- Requires-Dist: nucliadb-protos>=6.3.1.post3560
26
- Requires-Dist: nucliadb-models>=6.3.1.post3560
27
- Requires-Dist: nidx-protos>=6.3.1.post3560
23
+ Requires-Dist: nucliadb-telemetry[all]>=6.3.1.post3571
24
+ Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.3.1.post3571
25
+ Requires-Dist: nucliadb-protos>=6.3.1.post3571
26
+ Requires-Dist: nucliadb-models>=6.3.1.post3571
27
+ Requires-Dist: nidx-protos>=6.3.1.post3571
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
@@ -108,14 +108,14 @@ nucliadb/export_import/exceptions.py,sha256=Dw8WqfG4r6MPJc5TPfbjMvCgXXWTcTOecGHR
108
108
  nucliadb/export_import/exporter.py,sha256=k2QVx1EjqFlDYiggriWiEJzwtMXzHbldsqWdpGQM3_U,7074
109
109
  nucliadb/export_import/importer.py,sha256=v5cq9Nn8c2zrY_K_00mydR52f8mdFxR7tLdtNLQ0qvk,4229
110
110
  nucliadb/export_import/models.py,sha256=dbjScNkiMRv4X3Ktudy1JRliD25bfoDTy3JmEZgQSCc,2121
111
- nucliadb/export_import/tasks.py,sha256=4JX3bygyLCLSuGxMCStYyoclh_CL8rPxrVVWuGqvcmM,3146
111
+ nucliadb/export_import/tasks.py,sha256=DWbdqY97ffoyfipelGXz3Jqz1iam6JCjQSh367Fc3NA,2947
112
112
  nucliadb/export_import/utils.py,sha256=iAQAjYuNx0dhM2b5-1A0NEs8tSRsznuT-izysUrTwS0,19986
113
113
  nucliadb/ingest/__init__.py,sha256=fsw3C38VP50km3R-nHL775LNGPpJ4JxqXJ2Ib1f5SqE,1011
114
114
  nucliadb/ingest/app.py,sha256=rX1KE5vsAzG9hlArBk8WE2SOlvdYylcb-jNkMQNPJdQ,7407
115
115
  nucliadb/ingest/partitions.py,sha256=2NIhMYbNT0TNBL6bX1UMSi7vxFGICstCKEqsB0TXHOE,2410
116
116
  nucliadb/ingest/processing.py,sha256=8OggvuxNzktTTKDTUwsIuazhDParEWhn46CBZaMYAy8,20659
117
117
  nucliadb/ingest/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
- nucliadb/ingest/serialize.py,sha256=pTXpfoADsKax2gF5Xw5XAmn0ygRGxSC9vETv9y8xVH0,16147
118
+ nucliadb/ingest/serialize.py,sha256=42zNKu-O6g9EmLnQOXwhfagD76FSmWD6xRf69LrJxfA,16415
119
119
  nucliadb/ingest/settings.py,sha256=0B-wQNa8FLqtNcQgRzh-fuIuGptM816XHcbH1NQKfmE,3050
120
120
  nucliadb/ingest/utils.py,sha256=l1myURu3r8oA11dx3GpHw-gNTUc1AFX8xdPm9Lgl2rA,2275
121
121
  nucliadb/ingest/consumer/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
@@ -136,19 +136,19 @@ nucliadb/ingest/fields/generic.py,sha256=elgtqv15aJUq3zY7X_g0bli_2BpcwPArVvzhe54
136
136
  nucliadb/ingest/fields/link.py,sha256=kN_gjRUEEj5cy8K_BwPijYg3TiWhedc24apXYlTbRJs,4172
137
137
  nucliadb/ingest/fields/text.py,sha256=tFvSQJAe0W7ePpp2_WDfLiE2yglR1OTU0Zht9acvOFw,1594
138
138
  nucliadb/ingest/orm/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
139
- nucliadb/ingest/orm/brain.py,sha256=UND5EsNUdd7XdjScYqRqg4r_xCx3l-My8alGw5M9CWg,28398
139
+ nucliadb/ingest/orm/brain.py,sha256=JwHRneyE2sAo6PwYJnnyUMXKiGBWXLv4JI_aemodB3U,28479
140
140
  nucliadb/ingest/orm/broker_message.py,sha256=ZEMueoGuuRKO4tHgzc0P0AM1Ls1TTYey_4UvRQf0BpY,6915
141
141
  nucliadb/ingest/orm/entities.py,sha256=3_n6lKhBy2GsdmNmkh0_mvxP8md20OZsbtTNEmfJ8Hg,14888
142
142
  nucliadb/ingest/orm/exceptions.py,sha256=k4Esv4NtL4TrGTcsQpwrSfDhPQpiYcRbB1SpYmBX5MY,1432
143
143
  nucliadb/ingest/orm/knowledgebox.py,sha256=IGOPvBR1qXqDxE5DeiOdYCLdPgjzOVVpsASJ2zYvWwQ,23651
144
144
  nucliadb/ingest/orm/metrics.py,sha256=OkwMSPKLZcKba0ZTwtTiIxwBgaLMX5ydhGieKvi2y7E,1096
145
- nucliadb/ingest/orm/resource.py,sha256=t2raRJpkJb5O8K4UhQdfyHx2e4JagcHS0eZqHV-a0io,44625
145
+ nucliadb/ingest/orm/resource.py,sha256=waSV2GWJ_o9gzBObY8JNCR5mVJmWCJ1oQOGUsY1AVTQ,45489
146
146
  nucliadb/ingest/orm/utils.py,sha256=vCe_9UxHu26JDFGLwQ0wH-XyzJIpQCTK-Ow9dtZR5Vg,2716
147
147
  nucliadb/ingest/orm/processor/__init__.py,sha256=Aqd9wCNTvggkMkCY3WvoI8spdr94Jnqk-0iq9XpLs18,922
148
148
  nucliadb/ingest/orm/processor/auditing.py,sha256=TeYhXGJRyQ7ROytbb2u8R0fIh_FYi3HgTu3S1ribY3U,4623
149
149
  nucliadb/ingest/orm/processor/data_augmentation.py,sha256=HpSU9olDHcTfECDYCsmm4yA-Hu0mBrd_zTtx50XDGFE,5164
150
150
  nucliadb/ingest/orm/processor/pgcatalog.py,sha256=f32PIEXWktWzGDws6Ffife37OAfrseP5IOti_Cb4ir8,3012
151
- nucliadb/ingest/orm/processor/processor.py,sha256=oaiZ9HUszhUbvNMCmDq5Xj_jtXiCDjMEyw2GqqQxFdY,31550
151
+ nucliadb/ingest/orm/processor/processor.py,sha256=wjZmfJumypdGoKVB0BEJ51ha3xNRs1CzDZbFGj7z4_8,31668
152
152
  nucliadb/ingest/orm/processor/sequence_manager.py,sha256=uqEphtI1Ir_yk9jRl2gPf7BlzzXWovbARY5MNZSBI_8,1704
153
153
  nucliadb/ingest/service/__init__.py,sha256=MME_G_ERxzJR6JW_hfE2qcfXpmpH1kdG-S0a-M0qRm8,2043
154
154
  nucliadb/ingest/service/exceptions.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
@@ -271,7 +271,7 @@ nucliadb/tasks/__init__.py,sha256=oFJ3A8HD7w11mBu-IixYE_KxA7juMGlYQb7YD_y6WPM,97
271
271
  nucliadb/tasks/consumer.py,sha256=xc0Ql3N1Iq52dJ3t4YYGJFj1NCQAly0J5W_brfLa_F8,6894
272
272
  nucliadb/tasks/logger.py,sha256=C7keOEO_mjLVp5VbqAZ2QXfqVB2Hot7NgBlUP_SDSMw,924
273
273
  nucliadb/tasks/models.py,sha256=qrZKi5DNDQ07waMsp5L4_Fi7WRs57YiO-kmXlrBzEAA,1168
274
- nucliadb/tasks/producer.py,sha256=JRGnATkALyr_iLHq0OAjzVbfxZ_SOUa6sx-smU5p6SQ,3136
274
+ nucliadb/tasks/producer.py,sha256=UnpJAzhj_GElsCoO5G6T4m6MshsgOaqR2tVzJmEta64,2625
275
275
  nucliadb/tasks/retries.py,sha256=Zv-3Hys-SKayG9VQ7_7EIflkegE5j-xPGrf-nwaxsfY,5075
276
276
  nucliadb/tasks/utils.py,sha256=tV1AbWdFc3qfIULX44Veqj41FCD1B6XYjG6brULBeiw,1459
277
277
  nucliadb/tests/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
@@ -322,7 +322,7 @@ nucliadb/writer/api/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20
322
322
  nucliadb/writer/api/constants.py,sha256=qWEDjFUycrEZnSJyLnNK4PQNodU2oVmkO4NycaEZtio,1738
323
323
  nucliadb/writer/api/utils.py,sha256=wIQHlU8RQiIGVLI72suvyVIKlCU44Unh0Ae0IiN6Qwo,1313
324
324
  nucliadb/writer/api/v1/__init__.py,sha256=akI9A_jloNLb0dU4T5zjfdyvmSAiDeIdjAlzNx74FlU,1128
325
- nucliadb/writer/api/v1/export_import.py,sha256=FxGY_rofj3AH-HQReoMDOYfEpACeWB5bsmxrT03QUtQ,8227
325
+ nucliadb/writer/api/v1/export_import.py,sha256=elf-EQY5DD3mhw8kWb9tQpDcbrF9sY6VFYqxQOjuVP0,8201
326
326
  nucliadb/writer/api/v1/field.py,sha256=OsWOYA0WQ6onE5Rkl20QIEdtrSi7Jgnu62fUt90Ziy8,17503
327
327
  nucliadb/writer/api/v1/knowledgebox.py,sha256=MLeIuym4jPrJgfy1NTcN9CpUGwuBiqDHMcx0hY9DR7g,9530
328
328
  nucliadb/writer/api/v1/learning_config.py,sha256=CKBjqcbewkfPwGUPLDWzZSpro6XkmCaVppe5Qtpu5Go,3117
@@ -335,7 +335,7 @@ nucliadb/writer/api/v1/upload.py,sha256=VOeqNTrZx1_z8iaKjM7p8fVlVcIYMtnQNK1dm72c
335
335
  nucliadb/writer/api/v1/vectorsets.py,sha256=mESaXkkI9f-jWWMW61ZZgv7E5YWXKemyc6vwT0lFXns,6747
336
336
  nucliadb/writer/resource/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
337
337
  nucliadb/writer/resource/audit.py,sha256=FvxMZPzrNHtd31HgpZEvxzwAkbxJTZRhPLqRYYJi3tA,1426
338
- nucliadb/writer/resource/basic.py,sha256=wo5VDyp9VBekoJaQAbhE7uPFkpB5auAoRnsdrh3Ny3s,11222
338
+ nucliadb/writer/resource/basic.py,sha256=cHhh5hQRHFIoKd-6fEteHuGWW6fGN56ornIWPBuSpHg,11214
339
339
  nucliadb/writer/resource/field.py,sha256=HsOERELyAsb9e0dx2IkSQ9lk0SThALFRcDKCVBw8ifU,15478
340
340
  nucliadb/writer/resource/origin.py,sha256=pvhUDdU0mlWPUcpoQi4LDUJaRtfjzVVrA8XcGVI_N8k,2021
341
341
  nucliadb/writer/tus/__init__.py,sha256=huWpKnDnjsrKlBBJk30ta5vamlA-4x0TbPs_2Up8hyM,5443
@@ -347,8 +347,8 @@ nucliadb/writer/tus/local.py,sha256=7jYa_w9b-N90jWgN2sQKkNcomqn6JMVBOVeDOVYJHto,
347
347
  nucliadb/writer/tus/s3.py,sha256=vF0NkFTXiXhXq3bCVXXVV-ED38ECVoUeeYViP8uMqcU,8357
348
348
  nucliadb/writer/tus/storage.py,sha256=ToqwjoYnjI4oIcwzkhha_MPxi-k4Jk3Lt55zRwaC1SM,2903
349
349
  nucliadb/writer/tus/utils.py,sha256=MSdVbRsRSZVdkaum69_0wku7X3p5wlZf4nr6E0GMKbw,2556
350
- nucliadb-6.3.1.post3560.dist-info/METADATA,sha256=xRmPeYhCFeFqvdPnWCIqn232dIiuJleIE7T6YZqbTPE,4291
351
- nucliadb-6.3.1.post3560.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
352
- nucliadb-6.3.1.post3560.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
353
- nucliadb-6.3.1.post3560.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
354
- nucliadb-6.3.1.post3560.dist-info/RECORD,,
350
+ nucliadb-6.3.1.post3571.dist-info/METADATA,sha256=s2P-Covs_cwHf5pNszgsGypGofi5r1zgIOV7ccxAh6M,4291
351
+ nucliadb-6.3.1.post3571.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
352
+ nucliadb-6.3.1.post3571.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
353
+ nucliadb-6.3.1.post3571.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
354
+ nucliadb-6.3.1.post3571.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.2)
2
+ Generator: setuptools (76.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5