nucliadb 6.2.1.post3355__py3-none-any.whl → 6.2.1.post3369__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.
@@ -31,7 +31,7 @@ from nucliadb_telemetry.utils import setup_telemetry
31
31
  from nucliadb_utils.fastapi.run import serve_metrics
32
32
 
33
33
  from .settings import settings
34
- from .utils import delete_resource_from_shard, index_resource_to_shard, wait_for_node
34
+ from .utils import delete_resource_from_shard, index_resource_to_shard
35
35
 
36
36
  logger = logging.getLogger(__name__)
37
37
 
@@ -151,14 +151,6 @@ async def move_set_of_kb_resources(
151
151
  extra={"kbid": kbid, "resource_id": resource_id},
152
152
  )
153
153
 
154
- node_ids = set()
155
- for replica in from_shard.replicas:
156
- node_ids.add(replica.node)
157
- for replica in to_shard.replicas:
158
- node_ids.add(replica.node)
159
- for node_id in node_ids:
160
- await wait_for_node(context, node_id)
161
-
162
154
 
163
155
  async def rebalance_kb(context: ApplicationContext, kbid: str) -> None:
164
156
  await maybe_add_shard(kbid)
@@ -39,7 +39,6 @@ from .utils import (
39
39
  get_resource,
40
40
  get_resource_index_message,
41
41
  index_resource_to_shard,
42
- wait_for_node,
43
42
  )
44
43
 
45
44
  logger = logging.getLogger(__name__)
@@ -232,7 +231,6 @@ async def index_to_rollover_index(
232
231
  return
233
232
 
234
233
  logger.info("Indexing to rollover index", extra=extra)
235
- wait_index_batch: list[writer_pb2.ShardObject] = []
236
234
  # now index on all new shards only
237
235
  while True:
238
236
  async with datamanagers.with_transaction() as txn:
@@ -288,16 +286,6 @@ async def index_to_rollover_index(
288
286
  modification_time=_to_ts(resource.basic.modified.ToDatetime()), # type: ignore
289
287
  )
290
288
  await txn.commit()
291
- wait_index_batch.append(shard)
292
-
293
- if len(wait_index_batch) > 10:
294
- node_ids = set()
295
- for shard_batch in wait_index_batch:
296
- for replica in shard_batch.replicas:
297
- node_ids.add(replica.node)
298
- for node_id in node_ids:
299
- await wait_for_node(app_context, node_id)
300
- wait_index_batch = []
301
289
 
302
290
  async with datamanagers.with_transaction() as txn:
303
291
  state.resources_indexed = True
@@ -30,8 +30,6 @@ from nucliadb.common.cluster.manager import (
30
30
  from nucliadb.common.cluster.settings import settings
31
31
  from nucliadb.ingest.orm.resource import Resource
32
32
  from nucliadb_protos import nodereader_pb2, writer_pb2
33
- from nucliadb_utils import const
34
- from nucliadb_utils.settings import is_onprem_nucliadb
35
33
  from nucliadb_utils.utilities import Utility, clean_utility, get_utility, set_utility
36
34
 
37
35
  if TYPE_CHECKING: # pragma: no cover
@@ -76,34 +74,6 @@ def get_shard_manager() -> KBShardManager:
76
74
  return get_utility(Utility.SHARD_MANAGER) # type: ignore
77
75
 
78
76
 
79
- async def wait_for_node(app_context: ApplicationContext, node_id: str) -> None:
80
- if is_onprem_nucliadb():
81
- # On onprem deployments indexing is synchronous right now, so we don't need to wait
82
- return
83
-
84
- logged = False
85
- while True:
86
- # get raw js client
87
- js = app_context.nats_manager.js
88
- consumer_info = await js.consumer_info(
89
- const.Streams.INDEX.name, const.Streams.INDEX.group.format(node=node_id)
90
- )
91
- if consumer_info.num_pending < 5:
92
- return
93
-
94
- if not logged:
95
- logger.info(
96
- f"Waiting for node to consume messages. {consumer_info.num_pending} messages left.",
97
- extra={"node": node_id},
98
- )
99
- logged = True
100
- # usually we consume around 3-4 messages/s with some eventual peaks of
101
- # 10-30. If there are too many pending messages, we can wait more.
102
- # We suppose 5 messages/s and don't wait more than 60s
103
- sleep = min(max(2, consumer_info.num_pending / 5), 60)
104
- await asyncio.sleep(sleep)
105
-
106
-
107
77
  async def get_resource(kbid: str, resource_id: str) -> Optional[Resource]:
108
78
  async with datamanagers.with_ro_transaction() as txn:
109
79
  return await datamanagers.resources.get_resource(txn, kbid=kbid, rid=resource_id)
@@ -25,18 +25,15 @@ from nucliadb.common.cluster.utils import setup_cluster, teardown_cluster
25
25
  from nucliadb.common.maindb.driver import Driver
26
26
  from nucliadb.common.maindb.utils import setup_driver, teardown_driver
27
27
  from nucliadb.common.nidx import start_nidx_utility, stop_nidx_utility
28
- from nucliadb_utils.indexing import IndexingUtility
29
28
  from nucliadb_utils.nats import NatsConnectionManager
30
29
  from nucliadb_utils.partition import PartitionUtility
31
30
  from nucliadb_utils.settings import indexing_settings
32
31
  from nucliadb_utils.storages.storage import Storage
33
32
  from nucliadb_utils.utilities import (
34
33
  get_storage,
35
- start_indexing_utility,
36
34
  start_nats_manager,
37
35
  start_partitioning_utility,
38
36
  start_transaction_utility,
39
- stop_indexing_utility,
40
37
  stop_nats_manager,
41
38
  stop_partitioning_utility,
42
39
  stop_transaction_utility,
@@ -49,7 +46,6 @@ class ApplicationContext:
49
46
  shard_manager: KBShardManager
50
47
  blob_storage: Storage
51
48
  partitioning: PartitionUtility
52
- indexing: IndexingUtility
53
49
  nats_manager: NatsConnectionManager
54
50
 
55
51
  def __init__(self, service_name: str = "service") -> None:
@@ -77,7 +73,6 @@ class ApplicationContext:
77
73
  indexing_settings.index_jetstream_servers,
78
74
  indexing_settings.index_jetstream_auth,
79
75
  )
80
- self.indexing = await start_indexing_utility()
81
76
  self.transaction = await start_transaction_utility(self.service_name)
82
77
  self.nidx = await start_nidx_utility()
83
78
 
@@ -88,7 +83,6 @@ class ApplicationContext:
88
83
  await stop_nidx_utility()
89
84
  await stop_transaction_utility()
90
85
  if not in_standalone_mode():
91
- await stop_indexing_utility()
92
86
  await stop_nats_manager()
93
87
 
94
88
  stop_partitioning_utility()
nucliadb/ingest/app.py CHANGED
@@ -22,7 +22,6 @@ import importlib.metadata
22
22
  from typing import Awaitable, Callable
23
23
 
24
24
  from nucliadb import health
25
- from nucliadb.common.cluster.settings import settings as cluster_settings
26
25
  from nucliadb.common.cluster.utils import setup_cluster, teardown_cluster
27
26
  from nucliadb.common.context import ApplicationContext
28
27
  from nucliadb.common.nidx import start_nidx_utility
@@ -38,15 +37,13 @@ from nucliadb_telemetry.logs import setup_logging
38
37
  from nucliadb_telemetry.utils import setup_telemetry
39
38
  from nucliadb_utils.fastapi.run import serve_metrics
40
39
  from nucliadb_utils.run import run_until_exit
41
- from nucliadb_utils.settings import indexing_settings, transaction_settings
40
+ from nucliadb_utils.settings import transaction_settings
42
41
  from nucliadb_utils.utilities import (
43
42
  start_audit_utility,
44
- start_indexing_utility,
45
43
  start_nats_manager,
46
44
  start_partitioning_utility,
47
45
  start_transaction_utility,
48
46
  stop_audit_utility,
49
- stop_indexing_utility,
50
47
  stop_nats_manager,
51
48
  stop_partitioning_utility,
52
49
  stop_transaction_utility,
@@ -58,8 +55,6 @@ async def initialize() -> list[Callable[[], Awaitable[None]]]:
58
55
 
59
56
  await setup_cluster()
60
57
  await start_transaction_utility(SERVICE_NAME)
61
- if not cluster_settings.standalone_mode and indexing_settings.index_jetstream_servers is not None:
62
- await start_indexing_utility(SERVICE_NAME)
63
58
 
64
59
  start_partitioning_utility()
65
60
 
@@ -70,7 +65,6 @@ async def initialize() -> list[Callable[[], Awaitable[None]]]:
70
65
  finalizers = [
71
66
  stop_partitioning_utility,
72
67
  stop_transaction_utility,
73
- stop_indexing_utility,
74
68
  stop_audit_utility,
75
69
  teardown_cluster,
76
70
  ]
@@ -236,11 +236,7 @@ async def _retriable_proxied_request(
236
236
  params: dict[str, Any],
237
237
  ) -> httpx.Response:
238
238
  return await client.request(
239
- method=method.upper(),
240
- url=url,
241
- params=params,
242
- content=content,
243
- headers=headers,
239
+ method=method.upper(), url=url, params=params, content=content, headers=headers
244
240
  )
245
241
 
246
242
 
@@ -414,12 +410,7 @@ class DummyClient(httpx.AsyncClient):
414
410
  return self.get_config(*args, **kwargs)
415
411
 
416
412
  async def request( # type: ignore
417
- self,
418
- method: str,
419
- url: str,
420
- params=None,
421
- content=None,
422
- headers=None,
413
+ self, method: str, url: str, params=None, content=None, headers=None, *args, **kwargs
423
414
  ) -> httpx.Response:
424
415
  return self._handle_request(method, url, params=params, content=content, headers=headers)
425
416
 
@@ -17,8 +17,11 @@
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 Dict
21
+
20
22
  from fastapi import Request
21
23
  from fastapi_versioning import version
24
+ from nuclia_models.config.proto import ExtractConfig
22
25
 
23
26
  from nucliadb.learning_proxy import learning_config_proxy
24
27
  from nucliadb.models.responses import HTTPClientError
@@ -143,3 +146,40 @@ async def get_schema_for_configuration_creation(
143
146
  if not is_onprem_nucliadb():
144
147
  return HTTPClientError(status_code=404, detail="Endpoint not available for Hosted NucliaDB")
145
148
  return await learning_config_proxy(request, "GET", f"/schema")
149
+
150
+
151
+ @api.get(
152
+ path=f"/{KB_PREFIX}/{{kbid}}/extract_strategies",
153
+ status_code=200,
154
+ summary="Learning extract strategies",
155
+ description="Get available extract strategies ",
156
+ response_model=Dict[str, ExtractConfig],
157
+ tags=["Extract Strategies"],
158
+ )
159
+ @requires(NucliaDBRoles.READER)
160
+ @version(1)
161
+ async def get_extract_strategies(
162
+ request: Request,
163
+ kbid: str,
164
+ ):
165
+ return await learning_config_proxy(request, "GET", f"/extract_strategies/{kbid}")
166
+
167
+
168
+ @api.get(
169
+ path=f"/{KB_PREFIX}/{{kbid}}/extract_strategies/strategy/{{strategy_id}}",
170
+ status_code=200,
171
+ summary="Extract strategy configuration",
172
+ description="Get extract strategy for a given id",
173
+ response_model=None,
174
+ tags=["Extract Strategies"],
175
+ )
176
+ @requires(NucliaDBRoles.READER)
177
+ @version(1)
178
+ async def get_extract_strategy_from_id(
179
+ request: Request,
180
+ kbid: str,
181
+ strategy_id: str,
182
+ ):
183
+ return await learning_config_proxy(
184
+ request, "GET", f"/extract_strategies/{kbid}/strategies/{strategy_id}"
185
+ )
@@ -19,6 +19,7 @@
19
19
  #
20
20
  from fastapi import Request
21
21
  from fastapi_versioning import version
22
+ from nuclia_models.config.proto import ExtractConfig
22
23
 
23
24
  from nucliadb.learning_proxy import learning_config_proxy
24
25
  from nucliadb.writer.api.v1.router import KB_PREFIX, api
@@ -58,3 +59,41 @@ async def patch_configuration(
58
59
  kbid: str,
59
60
  ):
60
61
  return await learning_config_proxy(request, "PATCH", f"/config/{kbid}")
62
+
63
+
64
+ @api.post(
65
+ path=f"/{KB_PREFIX}/{{kbid}}/extract_strategies",
66
+ status_code=200,
67
+ summary="Add a extract strategy to a KB",
68
+ description="Add a extract strategy to a KB",
69
+ response_model=str,
70
+ tags=["Extract Strategies"],
71
+ )
72
+ @requires(NucliaDBRoles.WRITER)
73
+ @version(1)
74
+ async def add_strategy(
75
+ request: Request,
76
+ kbid: str,
77
+ item: ExtractConfig,
78
+ ):
79
+ return await learning_config_proxy(request, "POST", f"/extract_strategies/{kbid}")
80
+
81
+
82
+ @api.delete(
83
+ path=f"/{KB_PREFIX}/{{kbid}}/extract_strategies/strategy/{{strategy_id}}",
84
+ status_code=204,
85
+ summary="Remove a extract strategy from a KB",
86
+ description="Removes a extract strategy from a KB",
87
+ response_model=None,
88
+ tags=["Extract Strategies"],
89
+ )
90
+ @requires(NucliaDBRoles.WRITER)
91
+ @version(1)
92
+ async def delete_strategy(
93
+ request: Request,
94
+ kbid: str,
95
+ strategy_id: str,
96
+ ):
97
+ return await learning_config_proxy(
98
+ request, "POST", f"/extract_strategies/{kbid}/strategies/{strategy_id}"
99
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: nucliadb
3
- Version: 6.2.1.post3355
3
+ Version: 6.2.1.post3369
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.post3355
24
- Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.2.1.post3355
25
- Requires-Dist: nucliadb-protos>=6.2.1.post3355
26
- Requires-Dist: nucliadb-models>=6.2.1.post3355
27
- Requires-Dist: nidx-protos>=6.2.1.post3355
23
+ Requires-Dist: nucliadb-telemetry[all]>=6.2.1.post3369
24
+ Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.2.1.post3369
25
+ Requires-Dist: nucliadb-protos>=6.2.1.post3369
26
+ Requires-Dist: nucliadb-models>=6.2.1.post3369
27
+ Requires-Dist: nidx-protos>=6.2.1.post3369
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
@@ -33,7 +33,7 @@ migrations/pg/0003_catalog_kbid_index.py,sha256=uKq_vtnuf73GVf0mtl2rhzdk_czAoEU1
33
33
  migrations/pg/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
34
34
  nucliadb/__init__.py,sha256=_abCmDJ_0ku483Os4UAjPX7Nywm39cQgAV_DiyjsKeQ,891
35
35
  nucliadb/health.py,sha256=UIxxA4oms4HIsCRZM_SZsdkIZIlgzmOxw-qSHLlWuak,3465
36
- nucliadb/learning_proxy.py,sha256=rQ9gOLy_NwcVgsSi4jyYYHFdo6Vnb-1tEJ4kz2PIo_4,19411
36
+ nucliadb/learning_proxy.py,sha256=Gf76qXxjl1lrHEFaCpOUfjjf0ab6eGLNxLMJz3-M_mo,19354
37
37
  nucliadb/metrics_exporter.py,sha256=Rz6G7V_C_GTZCFzd0xEtIfixtZgUuffnr4rDKCbXXWM,5595
38
38
  nucliadb/openapi.py,sha256=wDiw0dVEvTpJvbatkJ0JZLkKm9RItZT5PWRHjqRfqTA,2272
39
39
  nucliadb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -49,13 +49,13 @@ nucliadb/common/cluster/exceptions.py,sha256=V3c_fgH00GyJ-a5CaGLhwTuhwhUNR9YAGvS
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
51
  nucliadb/common/cluster/manager.py,sha256=-y5PCUzxrvvUCBopmi8JztPiSBYYbUBeLer0XtO4Ukk,15383
52
- nucliadb/common/cluster/rebalance.py,sha256=P3P45m390ImOYBmjuufNpBRXijWvcNpkYqPiDPcdbHg,8960
53
- nucliadb/common/cluster/rollover.py,sha256=dx6AF9ywKP10iBNlcoJgRV40921fOPpVWaCUU54hztE,25823
52
+ nucliadb/common/cluster/rebalance.py,sha256=cGrqc6GQ6Y2X1moW7NzIdLLsij0cbKySiu-qUa3fA-o,8700
53
+ nucliadb/common/cluster/rollover.py,sha256=iTJ9EQmHbzXL34foNFto-hqdC0Kq1pF1mNxqv0jqhBs,25362
54
54
  nucliadb/common/cluster/settings.py,sha256=TMoym-cZsQ2soWfLAce0moSa2XncttQyhahL43LrWTo,3384
55
- nucliadb/common/cluster/utils.py,sha256=Vu0f6026EBELe-ff3d5B0ihD0HtjSWKDCr4dy7LmKqg,5848
55
+ nucliadb/common/cluster/utils.py,sha256=7nQvnVFxM4XV7J560R8hUA-GPzrgD19UlQxHrl4mZUc,4687
56
56
  nucliadb/common/cluster/standalone/__init__.py,sha256=itSI7dtTwFP55YMX4iK7JzdMHS5CQVUiB1XzQu4UBh8,833
57
57
  nucliadb/common/cluster/standalone/utils.py,sha256=af3r-x_GF7A6dwIAhZLR-r-SZQEVxsFrDKeMfUTA6G0,1908
58
- nucliadb/common/context/__init__.py,sha256=gPwX1cZHPV9r-fLl3ZCZMYBTAwo6Q_xvSlQtd4qPd4c,3592
58
+ nucliadb/common/context/__init__.py,sha256=ZLUvKuIPaolKeA3aeZa2JcHwCIaEauNu8WpdKsiINXo,3354
59
59
  nucliadb/common/context/fastapi.py,sha256=j3HZ3lne6mIfw1eEar2het8RWzv6UruUZpXaKieSLOs,1527
60
60
  nucliadb/common/datamanagers/__init__.py,sha256=U1cg-KvqbfzN5AnL_tFFrERmPb81w_0MNiTmxObmla4,2062
61
61
  nucliadb/common/datamanagers/atomic.py,sha256=DU7RihO8WaGNuh_GTEpQ-8hkoinY5GSpNSzVpLsZh30,3225
@@ -101,7 +101,7 @@ nucliadb/export_import/models.py,sha256=dbjScNkiMRv4X3Ktudy1JRliD25bfoDTy3JmEZgQ
101
101
  nucliadb/export_import/tasks.py,sha256=fpCBeFYPReyLIdk38LDM9Tpnw_VczeMrobT4n1RAIp4,2507
102
102
  nucliadb/export_import/utils.py,sha256=zrNrkkc9i3uT-R6Ju4J_0WNrzayln3KuQFCz-_qIaIA,19613
103
103
  nucliadb/ingest/__init__.py,sha256=fsw3C38VP50km3R-nHL775LNGPpJ4JxqXJ2Ib1f5SqE,1011
104
- nucliadb/ingest/app.py,sha256=kZ8RgZNumzVEssVGnSZIh8jyCYKYotGhxBYz3EWx6Cc,7361
104
+ nucliadb/ingest/app.py,sha256=n5PlZyrf-bJsrc6jMRSO4DTjGyZLb4q6EA6Y4x6TYfQ,7028
105
105
  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
@@ -170,7 +170,7 @@ nucliadb/reader/api/v1/__init__.py,sha256=ieP8lsCCwG66Jupv8II5MSTj6nh3eCtLcF4utH
170
170
  nucliadb/reader/api/v1/download.py,sha256=rGv1c5CjrJheDgGwAnNWy76A_4V2shqqHYvwmKGFlpk,10758
171
171
  nucliadb/reader/api/v1/export_import.py,sha256=x4VBNDFjnlY1nIt5kdq0eZTB_DeRzGzT8T7uB7wUhNU,6448
172
172
  nucliadb/reader/api/v1/knowledgebox.py,sha256=Uu-yPB8KKZt1VaFrFNMMaXOvLsclBJDK9dzZ9lF2ctI,3645
173
- nucliadb/reader/api/v1/learning_config.py,sha256=w5a_miobPGakKmyLXkmuz1e6tXyIMSas-qLngqzVQTw,4436
173
+ nucliadb/reader/api/v1/learning_config.py,sha256=CZ7pFXzBZkJE2dXbC1wArszJw_ZLpuEb6gnsz2MKEz0,5525
174
174
  nucliadb/reader/api/v1/resource.py,sha256=SFIv_vpgkdJQv7L_UgYZS5FvubipJ0ligpExGDjKHV0,14064
175
175
  nucliadb/reader/api/v1/router.py,sha256=eyNmEGSP9zHkCIG5XlAXl6sukq950B7gFT3X2peMtIE,1011
176
176
  nucliadb/reader/api/v1/services.py,sha256=B8fD4zcUydZ5Fl1DDxfXGNuW6C8rhGYc920O5Zy5Yv8,11716
@@ -314,7 +314,7 @@ nucliadb/writer/api/v1/__init__.py,sha256=akI9A_jloNLb0dU4T5zjfdyvmSAiDeIdjAlzNx
314
314
  nucliadb/writer/api/v1/export_import.py,sha256=Cv4DNtqoR_x2LMNx80C9ehyaCaFIxhq2eutEk2uzcZg,8249
315
315
  nucliadb/writer/api/v1/field.py,sha256=OsWOYA0WQ6onE5Rkl20QIEdtrSi7Jgnu62fUt90Ziy8,17503
316
316
  nucliadb/writer/api/v1/knowledgebox.py,sha256=MLeIuym4jPrJgfy1NTcN9CpUGwuBiqDHMcx0hY9DR7g,9530
317
- nucliadb/writer/api/v1/learning_config.py,sha256=GaYaagjBrVG9ZxrWQyVQfqGMQV3tAJjqJ5CStaKhktU,2058
317
+ nucliadb/writer/api/v1/learning_config.py,sha256=i9fkyZfHYLFEQGqdF98yWnucIES8HzMyh9OtBlxRooo,3115
318
318
  nucliadb/writer/api/v1/resource.py,sha256=A8fAHlN5XFsg6XFYKhfWJS8czgNH6yXr-PsnUqz2WUE,18757
319
319
  nucliadb/writer/api/v1/router.py,sha256=RjuoWLpZer6Kl2BW_wznpNo6XL3BOpdTGqXZCn3QrrQ,1034
320
320
  nucliadb/writer/api/v1/services.py,sha256=THnBnRxiHrEZPpBTL-E-vplEUfcD-fZpuslKRonM6xs,10286
@@ -336,8 +336,8 @@ nucliadb/writer/tus/local.py,sha256=7jYa_w9b-N90jWgN2sQKkNcomqn6JMVBOVeDOVYJHto,
336
336
  nucliadb/writer/tus/s3.py,sha256=vF0NkFTXiXhXq3bCVXXVV-ED38ECVoUeeYViP8uMqcU,8357
337
337
  nucliadb/writer/tus/storage.py,sha256=ToqwjoYnjI4oIcwzkhha_MPxi-k4Jk3Lt55zRwaC1SM,2903
338
338
  nucliadb/writer/tus/utils.py,sha256=MSdVbRsRSZVdkaum69_0wku7X3p5wlZf4nr6E0GMKbw,2556
339
- nucliadb-6.2.1.post3355.dist-info/METADATA,sha256=5voWRxy1CYmuSCrFf0QA-p4Lgxy7lCaEhIfGOdJyjYc,4291
340
- nucliadb-6.2.1.post3355.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
341
- nucliadb-6.2.1.post3355.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
342
- nucliadb-6.2.1.post3355.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
343
- nucliadb-6.2.1.post3355.dist-info/RECORD,,
339
+ nucliadb-6.2.1.post3369.dist-info/METADATA,sha256=MShoNVRoW-R-kToBe3MIltX2f904xqn_z-iD6xDRgxo,4291
340
+ nucliadb-6.2.1.post3369.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
341
+ nucliadb-6.2.1.post3369.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
342
+ nucliadb-6.2.1.post3369.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
343
+ nucliadb-6.2.1.post3369.dist-info/RECORD,,