nucliadb 6.2.1.post2803__py3-none-any.whl → 6.2.1.post2814__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.
- migrations/0028_extracted_vectors_reference.py +61 -0
- nucliadb/writer/api/constants.py +20 -16
- nucliadb/writer/api/v1/field.py +6 -6
- nucliadb/writer/api/v1/resource.py +10 -10
- nucliadb/writer/api/v1/upload.py +29 -33
- {nucliadb-6.2.1.post2803.dist-info → nucliadb-6.2.1.post2814.dist-info}/METADATA +5 -5
- {nucliadb-6.2.1.post2803.dist-info → nucliadb-6.2.1.post2814.dist-info}/RECORD +11 -10
- {nucliadb-6.2.1.post2803.dist-info → nucliadb-6.2.1.post2814.dist-info}/WHEEL +0 -0
- {nucliadb-6.2.1.post2803.dist-info → nucliadb-6.2.1.post2814.dist-info}/entry_points.txt +0 -0
- {nucliadb-6.2.1.post2803.dist-info → nucliadb-6.2.1.post2814.dist-info}/top_level.txt +0 -0
- {nucliadb-6.2.1.post2803.dist-info → nucliadb-6.2.1.post2814.dist-info}/zip-safe +0 -0
@@ -0,0 +1,61 @@
|
|
1
|
+
# Copyright (C) 2021 Bosutech XXI S.L.
|
2
|
+
#
|
3
|
+
# nucliadb is offered under the AGPL v3.0 and as commercial software.
|
4
|
+
# For commercial licensing, contact us at info@nuclia.com.
|
5
|
+
#
|
6
|
+
# AGPL:
|
7
|
+
# This program is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU Affero General Public License as
|
9
|
+
# published by the Free Software Foundation, either version 3 of the
|
10
|
+
# License, or (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This program is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU Affero General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU Affero General Public License
|
18
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
"""Migration #28
|
22
|
+
|
23
|
+
Add a key to each vectorset to know how to build the storage key for extracted vectors
|
24
|
+
"""
|
25
|
+
|
26
|
+
import logging
|
27
|
+
|
28
|
+
from nucliadb.common import datamanagers
|
29
|
+
from nucliadb.migrator.context import ExecutionContext
|
30
|
+
from nucliadb_protos import knowledgebox_pb2
|
31
|
+
|
32
|
+
logger = logging.getLogger(__name__)
|
33
|
+
|
34
|
+
|
35
|
+
async def migrate(context: ExecutionContext) -> None: ...
|
36
|
+
|
37
|
+
|
38
|
+
async def migrate_kb(context: ExecutionContext, kbid: str) -> None:
|
39
|
+
async with datamanagers.with_rw_transaction() as txn:
|
40
|
+
vectorsets = [vs async for (_vid, vs) in datamanagers.vectorsets.iter(txn, kbid=kbid)]
|
41
|
+
|
42
|
+
if len(vectorsets) == 0: # pragma: nocover
|
43
|
+
# should never happen, everyone should have at least one
|
44
|
+
logger.warning(f"KB has no vectorsets!", extra={"kbid": kbid})
|
45
|
+
return
|
46
|
+
|
47
|
+
elif len(vectorsets) == 1:
|
48
|
+
logger.info(f"Migrating KB with a single vectorset", extra={"kbid": kbid})
|
49
|
+
vectorset = vectorsets[0]
|
50
|
+
vectorset.storage_key_kind = knowledgebox_pb2.VectorSetConfig.StorageKeyKind.LEGACY
|
51
|
+
await datamanagers.vectorsets.set(txn, kbid=kbid, config=vectorset)
|
52
|
+
|
53
|
+
else:
|
54
|
+
logger.info(f"Migrating KB with {len(vectorsets)} vectorsets", extra={"kbid": kbid})
|
55
|
+
for vectorset in vectorsets:
|
56
|
+
vectorset.storage_key_kind = (
|
57
|
+
knowledgebox_pb2.VectorSetConfig.StorageKeyKind.VECTORSET_PREFIX
|
58
|
+
)
|
59
|
+
await datamanagers.vectorsets.set(txn, kbid=kbid, config=vectorset)
|
60
|
+
|
61
|
+
await txn.commit()
|
nucliadb/writer/api/constants.py
CHANGED
@@ -17,21 +17,25 @@
|
|
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 TYPE_CHECKING
|
21
|
-
|
22
20
|
from fastapi.params import Header
|
23
21
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
22
|
+
X_SKIP_STORE = Header(
|
23
|
+
description="If set to true, file fields will not be saved in the blob storage. They will only be sent to process.",
|
24
|
+
)
|
25
|
+
X_NUCLIADB_USER = Header()
|
26
|
+
X_FILE_PASSWORD = Header(
|
27
|
+
description="If a file is password protected, the password must be provided here for the file to be processed",
|
28
|
+
)
|
29
|
+
X_EXTRACT_STRATEGY = Header(
|
30
|
+
description="Extract strategy to use when uploading a file. If not provided, the default strategy will be used.",
|
31
|
+
)
|
32
|
+
X_FILENAME = Header(min_length=1, description="Name of the file being uploaded.")
|
33
|
+
X_MD5 = Header(
|
34
|
+
min_length=32,
|
35
|
+
max_length=32,
|
36
|
+
description="MD5 hash of the file being uploaded. This is used to check if the file has been uploaded before.",
|
37
|
+
)
|
38
|
+
X_PASSWORD = Header(
|
39
|
+
min_length=1, description="If the file is password protected, the password must be provided here."
|
40
|
+
)
|
41
|
+
X_LANGUAGE = Header()
|
nucliadb/writer/api/v1/field.py
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
from inspect import iscoroutinefunction
|
21
|
-
from typing import TYPE_CHECKING, Callable, Optional, Type, Union
|
21
|
+
from typing import TYPE_CHECKING, Annotated, Callable, Optional, Type, Union
|
22
22
|
|
23
23
|
from fastapi import HTTPException, Response
|
24
24
|
from fastapi_versioning import version
|
@@ -30,9 +30,9 @@ from nucliadb.ingest.orm.knowledgebox import KnowledgeBox
|
|
30
30
|
from nucliadb.ingest.processing import PushPayload, Source
|
31
31
|
from nucliadb.writer import SERVICE_NAME
|
32
32
|
from nucliadb.writer.api.constants import (
|
33
|
-
SKIP_STORE_DEFAULT,
|
34
33
|
X_FILE_PASSWORD,
|
35
34
|
X_NUCLIADB_USER,
|
35
|
+
X_SKIP_STORE,
|
36
36
|
)
|
37
37
|
from nucliadb.writer.api.v1 import transaction
|
38
38
|
from nucliadb.writer.api.v1.resource import (
|
@@ -380,7 +380,7 @@ async def add_resource_field_file_rslug_prefix(
|
|
380
380
|
rslug: str,
|
381
381
|
field_id: FieldIdString,
|
382
382
|
field_payload: models.FileField,
|
383
|
-
x_skip_store: bool =
|
383
|
+
x_skip_store: Annotated[bool, X_SKIP_STORE] = False,
|
384
384
|
) -> ResourceFieldAdded:
|
385
385
|
return await add_field_to_resource_by_slug(
|
386
386
|
request, kbid, rslug, field_id, field_payload, skip_store=x_skip_store
|
@@ -402,7 +402,7 @@ async def add_resource_field_file_rid_prefix(
|
|
402
402
|
rid: str,
|
403
403
|
field_id: FieldIdString,
|
404
404
|
field_payload: models.FileField,
|
405
|
-
x_skip_store: bool =
|
405
|
+
x_skip_store: Annotated[bool, X_SKIP_STORE] = False,
|
406
406
|
) -> ResourceFieldAdded:
|
407
407
|
return await add_field_to_resource(
|
408
408
|
request, kbid, rid, field_id, field_payload, skip_store=x_skip_store
|
@@ -503,8 +503,8 @@ async def reprocess_file_field(
|
|
503
503
|
kbid: str,
|
504
504
|
rid: str,
|
505
505
|
field_id: FieldIdString,
|
506
|
-
x_nucliadb_user: str =
|
507
|
-
x_file_password: Optional[str] =
|
506
|
+
x_nucliadb_user: Annotated[str, X_NUCLIADB_USER] = "",
|
507
|
+
x_file_password: Annotated[Optional[str], X_FILE_PASSWORD] = None,
|
508
508
|
) -> ResourceUpdated:
|
509
509
|
await maybe_back_pressure(request, kbid, resource_uuid=rid)
|
510
510
|
|
@@ -20,7 +20,7 @@
|
|
20
20
|
import asyncio
|
21
21
|
import contextlib
|
22
22
|
from time import time
|
23
|
-
from typing import Optional
|
23
|
+
from typing import Annotated, Optional
|
24
24
|
from uuid import uuid4
|
25
25
|
|
26
26
|
from fastapi import HTTPException, Query, Response
|
@@ -35,7 +35,7 @@ from nucliadb.common.maindb.utils import get_driver
|
|
35
35
|
from nucliadb.ingest.orm.knowledgebox import KnowledgeBox
|
36
36
|
from nucliadb.ingest.processing import ProcessingInfo, PushPayload, Source
|
37
37
|
from nucliadb.writer import SERVICE_NAME, logger
|
38
|
-
from nucliadb.writer.api.constants import
|
38
|
+
from nucliadb.writer.api.constants import X_NUCLIADB_USER, X_SKIP_STORE
|
39
39
|
from nucliadb.writer.api.v1 import transaction
|
40
40
|
from nucliadb.writer.api.v1.router import (
|
41
41
|
KB_PREFIX,
|
@@ -90,8 +90,8 @@ async def create_resource(
|
|
90
90
|
request: Request,
|
91
91
|
item: CreateResourcePayload,
|
92
92
|
kbid: str,
|
93
|
-
x_skip_store: bool =
|
94
|
-
x_nucliadb_user: str =
|
93
|
+
x_skip_store: Annotated[bool, X_SKIP_STORE] = False,
|
94
|
+
x_nucliadb_user: Annotated[str, X_NUCLIADB_USER] = "",
|
95
95
|
):
|
96
96
|
kb_config = await datamanagers.atomic.kb.get_config(kbid=kbid)
|
97
97
|
if item.hidden and not (kb_config and kb_config.hidden_resources_enabled):
|
@@ -180,8 +180,8 @@ async def modify_resource_rslug_prefix(
|
|
180
180
|
kbid: str,
|
181
181
|
rslug: str,
|
182
182
|
item: UpdateResourcePayload,
|
183
|
-
x_skip_store: bool =
|
184
|
-
x_nucliadb_user: str =
|
183
|
+
x_skip_store: Annotated[bool, X_SKIP_STORE] = False,
|
184
|
+
x_nucliadb_user: Annotated[str, X_NUCLIADB_USER] = "",
|
185
185
|
):
|
186
186
|
rid = await get_rid_from_slug_or_raise_error(kbid, rslug)
|
187
187
|
return await modify_resource_endpoint(
|
@@ -208,8 +208,8 @@ async def modify_resource_rid_prefix(
|
|
208
208
|
kbid: str,
|
209
209
|
rid: str,
|
210
210
|
item: UpdateResourcePayload,
|
211
|
-
|
212
|
-
|
211
|
+
x_nucliadb_user: Annotated[str, X_NUCLIADB_USER] = "",
|
212
|
+
x_skip_store: Annotated[bool, X_SKIP_STORE] = False,
|
213
213
|
):
|
214
214
|
return await modify_resource_endpoint(
|
215
215
|
request,
|
@@ -371,7 +371,7 @@ async def reprocess_resource_rslug_prefix(
|
|
371
371
|
request: Request,
|
372
372
|
kbid: str,
|
373
373
|
rslug: str,
|
374
|
-
x_nucliadb_user: str =
|
374
|
+
x_nucliadb_user: Annotated[str, X_NUCLIADB_USER] = "",
|
375
375
|
):
|
376
376
|
rid = await get_rid_from_slug_or_raise_error(kbid, rslug)
|
377
377
|
return await _reprocess_resource(request, kbid, rid, x_nucliadb_user=x_nucliadb_user)
|
@@ -390,7 +390,7 @@ async def reprocess_resource_rid_prefix(
|
|
390
390
|
request: Request,
|
391
391
|
kbid: str,
|
392
392
|
rid: str,
|
393
|
-
x_nucliadb_user: str =
|
393
|
+
x_nucliadb_user: Annotated[str, X_NUCLIADB_USER] = "",
|
394
394
|
):
|
395
395
|
return await _reprocess_resource(request, kbid, rid, x_nucliadb_user=x_nucliadb_user)
|
396
396
|
|
nucliadb/writer/api/v1/upload.py
CHANGED
@@ -26,7 +26,6 @@ from io import BytesIO
|
|
26
26
|
from typing import Annotated, Optional
|
27
27
|
|
28
28
|
from fastapi import HTTPException
|
29
|
-
from fastapi.params import Header
|
30
29
|
from fastapi.requests import Request
|
31
30
|
from fastapi.responses import Response
|
32
31
|
from fastapi_versioning import version
|
@@ -37,6 +36,7 @@ from nucliadb.ingest.orm.utils import set_title
|
|
37
36
|
from nucliadb.ingest.processing import PushPayload, Source
|
38
37
|
from nucliadb.models.responses import HTTPClientError
|
39
38
|
from nucliadb.writer import SERVICE_NAME
|
39
|
+
from nucliadb.writer.api.constants import X_EXTRACT_STRATEGY, X_FILENAME, X_LANGUAGE, X_MD5, X_PASSWORD
|
40
40
|
from nucliadb.writer.api.v1 import transaction
|
41
41
|
from nucliadb.writer.api.v1.resource import (
|
42
42
|
get_rid_from_slug_or_raise_error,
|
@@ -82,10 +82,6 @@ TUS_HEADERS = {
|
|
82
82
|
"Tus-Extension": "creation-defer-length",
|
83
83
|
}
|
84
84
|
|
85
|
-
ExtractStrategyHeader = Header(
|
86
|
-
description="Extract strategy to use when uploading a file. If not provided, the default strategy will be used.",
|
87
|
-
)
|
88
|
-
|
89
85
|
|
90
86
|
@api.options(
|
91
87
|
f"/{KB_PREFIX}/{{kbid}}/{RSLUG_PREFIX}/{{rslug}}/file/{{field}}/{TUSUPLOAD}/{{upload_id}}",
|
@@ -146,7 +142,7 @@ async def tus_post_rslug_prefix(
|
|
146
142
|
rslug: str,
|
147
143
|
field: FieldIdString,
|
148
144
|
item: Optional[CreateResourcePayload] = None,
|
149
|
-
x_extract_strategy: Annotated[Optional[str],
|
145
|
+
x_extract_strategy: Annotated[Optional[str], X_EXTRACT_STRATEGY] = None,
|
150
146
|
) -> Response:
|
151
147
|
rid = await get_rid_from_slug_or_raise_error(kbid, rslug)
|
152
148
|
return await _tus_post(
|
@@ -168,7 +164,7 @@ async def tus_post_rid_prefix(
|
|
168
164
|
path_rid: str,
|
169
165
|
field: FieldIdString,
|
170
166
|
item: Optional[CreateResourcePayload] = None,
|
171
|
-
x_extract_strategy: Annotated[Optional[str],
|
167
|
+
x_extract_strategy: Annotated[Optional[str], X_EXTRACT_STRATEGY] = None,
|
172
168
|
) -> Response:
|
173
169
|
return await _tus_post(
|
174
170
|
request, kbid, item, path_rid=path_rid, field_id=field, extract_strategy=x_extract_strategy
|
@@ -187,7 +183,7 @@ async def tus_post(
|
|
187
183
|
request: Request,
|
188
184
|
kbid: str,
|
189
185
|
item: Optional[CreateResourcePayload] = None,
|
190
|
-
x_extract_strategy: Annotated[Optional[str],
|
186
|
+
x_extract_strategy: Annotated[Optional[str], X_EXTRACT_STRATEGY] = None,
|
191
187
|
) -> Response:
|
192
188
|
return await _tus_post(request, kbid, item, extract_strategy=x_extract_strategy)
|
193
189
|
|
@@ -616,11 +612,11 @@ async def upload_rslug_prefix(
|
|
616
612
|
kbid: str,
|
617
613
|
rslug: str,
|
618
614
|
field: FieldIdString,
|
619
|
-
x_filename: Optional[
|
620
|
-
x_password: Optional[
|
621
|
-
x_language: Optional[
|
622
|
-
x_md5: Optional[
|
623
|
-
x_extract_strategy: Annotated[Optional[str],
|
615
|
+
x_filename: Annotated[Optional[str], X_FILENAME] = None,
|
616
|
+
x_password: Annotated[Optional[str], X_PASSWORD] = None,
|
617
|
+
x_language: Annotated[Optional[str], X_LANGUAGE] = None,
|
618
|
+
x_md5: Annotated[Optional[str], X_MD5] = None,
|
619
|
+
x_extract_strategy: Annotated[Optional[str], X_EXTRACT_STRATEGY] = None,
|
624
620
|
) -> ResourceFileUploaded:
|
625
621
|
rid = await get_rid_from_slug_or_raise_error(kbid, rslug)
|
626
622
|
return await _upload(
|
@@ -650,11 +646,11 @@ async def upload_rid_prefix(
|
|
650
646
|
kbid: str,
|
651
647
|
path_rid: str,
|
652
648
|
field: FieldIdString,
|
653
|
-
x_filename: Optional[
|
654
|
-
x_password: Optional[
|
655
|
-
x_language: Optional[
|
656
|
-
x_md5: Optional[
|
657
|
-
x_extract_strategy: Annotated[Optional[str],
|
649
|
+
x_filename: Annotated[Optional[str], X_FILENAME] = None,
|
650
|
+
x_password: Annotated[Optional[str], X_PASSWORD] = None,
|
651
|
+
x_language: Annotated[Optional[str], X_LANGUAGE] = None,
|
652
|
+
x_md5: Annotated[Optional[str], X_MD5] = None,
|
653
|
+
x_extract_strategy: Annotated[Optional[str], X_EXTRACT_STRATEGY] = None,
|
658
654
|
) -> ResourceFileUploaded:
|
659
655
|
return await _upload(
|
660
656
|
request,
|
@@ -681,11 +677,11 @@ async def upload_rid_prefix(
|
|
681
677
|
async def upload(
|
682
678
|
request: StarletteRequest,
|
683
679
|
kbid: str,
|
684
|
-
x_filename: Optional[
|
685
|
-
x_password: Optional[
|
686
|
-
x_language: Optional[
|
687
|
-
x_md5: Optional[
|
688
|
-
x_extract_strategy: Annotated[Optional[str],
|
680
|
+
x_filename: Annotated[Optional[str], X_FILENAME] = None,
|
681
|
+
x_password: Annotated[Optional[str], X_PASSWORD] = None,
|
682
|
+
x_language: Annotated[Optional[str], X_LANGUAGE] = None,
|
683
|
+
x_md5: Annotated[Optional[str], X_MD5] = None,
|
684
|
+
x_extract_strategy: Annotated[Optional[str], X_EXTRACT_STRATEGY] = None,
|
689
685
|
) -> ResourceFileUploaded:
|
690
686
|
return await _upload(
|
691
687
|
request,
|
@@ -704,10 +700,10 @@ async def _upload(
|
|
704
700
|
kbid: str,
|
705
701
|
path_rid: Optional[str] = None,
|
706
702
|
field: Optional[str] = None,
|
707
|
-
x_filename: Optional[
|
708
|
-
x_password: Optional[
|
709
|
-
x_language: Optional[
|
710
|
-
x_md5: Optional[
|
703
|
+
x_filename: Optional[str] = None,
|
704
|
+
x_password: Optional[str] = None,
|
705
|
+
x_language: Optional[str] = None,
|
706
|
+
x_md5: Optional[str] = None,
|
711
707
|
x_extract_strategy: Optional[str] = None,
|
712
708
|
) -> ResourceFileUploaded:
|
713
709
|
if path_rid is not None:
|
@@ -715,7 +711,7 @@ async def _upload(
|
|
715
711
|
|
716
712
|
await maybe_back_pressure(request, kbid, resource_uuid=path_rid)
|
717
713
|
|
718
|
-
md5_user = x_md5
|
714
|
+
md5_user = x_md5
|
719
715
|
path, rid, valid_field = await validate_field_upload(kbid, path_rid, field, md5_user)
|
720
716
|
dm = get_dm()
|
721
717
|
storage_manager = get_storage_manager()
|
@@ -736,8 +732,8 @@ async def _upload(
|
|
736
732
|
|
737
733
|
await dm.start(request)
|
738
734
|
|
739
|
-
if x_filename
|
740
|
-
filename = maybe_b64decode(x_filename
|
735
|
+
if x_filename is not None:
|
736
|
+
filename = maybe_b64decode(x_filename)
|
741
737
|
else:
|
742
738
|
filename = uuid.uuid4().hex
|
743
739
|
|
@@ -793,9 +789,9 @@ async def _upload(
|
|
793
789
|
content_type=content_type,
|
794
790
|
override_resource_title=implies_resource_creation,
|
795
791
|
filename=filename,
|
796
|
-
password=x_password
|
797
|
-
language=x_language
|
798
|
-
md5=x_md5
|
792
|
+
password=x_password,
|
793
|
+
language=x_language,
|
794
|
+
md5=x_md5,
|
799
795
|
field=valid_field,
|
800
796
|
source=storage_manager.storage.source,
|
801
797
|
rid=rid,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: nucliadb
|
3
|
-
Version: 6.2.1.
|
3
|
+
Version: 6.2.1.post2814
|
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.2.1.
|
26
|
-
Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.2.1.
|
27
|
-
Requires-Dist: nucliadb-protos>=6.2.1.
|
28
|
-
Requires-Dist: nucliadb-models>=6.2.1.
|
25
|
+
Requires-Dist: nucliadb-telemetry[all]>=6.2.1.post2814
|
26
|
+
Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.2.1.post2814
|
27
|
+
Requires-Dist: nucliadb-protos>=6.2.1.post2814
|
28
|
+
Requires-Dist: nucliadb-models>=6.2.1.post2814
|
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: nuclia-models>=0.24.2
|
@@ -23,6 +23,7 @@ migrations/0023_backfill_pg_catalog.py,sha256=gw22pU5cAtg2a7n7xVaVqT2itjAoDMNtzW
|
|
23
23
|
migrations/0025_assign_models_to_kbs_v2.py,sha256=QC6nDF2Wyc6zQMqNoKzvz-3507UpDyJztlbIsvlwHss,4678
|
24
24
|
migrations/0026_fix_high_cardinality_content_types.py,sha256=BsbBkvZDzjRHQfoouZNNtHA1xMxTKm8wOVnp_WAS9j4,2322
|
25
25
|
migrations/0027_rollover_texts3.py,sha256=UQDaMOayVuqDisf82NDrPStoEVveHvdjkSmzbIcU9o4,2730
|
26
|
+
migrations/0028_extracted_vectors_reference.py,sha256=49DHCIlBpjofU8cYVHTdWv0EBIlnPTWV2WCezf0rJUo,2392
|
26
27
|
migrations/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
27
28
|
migrations/pg/0001_bootstrap.py,sha256=Fsqkeof50m7fKiJN05kmNEMwiKDlOrAgcAS5sLLkutA,1256
|
28
29
|
migrations/pg/0002_catalog.py,sha256=Rsleecu351Ty19kYZgOpqX5G3MEAY8nMxCJrAeuS2Mw,1690
|
@@ -308,19 +309,19 @@ nucliadb/writer/settings.py,sha256=32Umt2SqeIL8PW4_C6hkuq01QT1YmcROiWpmoy1D5Wk,3
|
|
308
309
|
nucliadb/writer/utilities.py,sha256=AZ5qEny1Xm0IDsFtH13oJa2usvJZK8f0FdgF1LrnLCw,1036
|
309
310
|
nucliadb/writer/vectorsets.py,sha256=ocUTieBzStbNRgKX32wzrNJIuSaS9NjntMYbpzbBbQ4,5520
|
310
311
|
nucliadb/writer/api/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
311
|
-
nucliadb/writer/api/constants.py,sha256=
|
312
|
+
nucliadb/writer/api/constants.py,sha256=qWEDjFUycrEZnSJyLnNK4PQNodU2oVmkO4NycaEZtio,1738
|
312
313
|
nucliadb/writer/api/utils.py,sha256=wIQHlU8RQiIGVLI72suvyVIKlCU44Unh0Ae0IiN6Qwo,1313
|
313
314
|
nucliadb/writer/api/v1/__init__.py,sha256=FVn7N9VJ6bsEoy4TRnkclr4Umd5hECiwPXVqRnJ8BME,1095
|
314
315
|
nucliadb/writer/api/v1/export_import.py,sha256=6_gn0-emCjmK6bCUX5kgMvG0qkZr4HlfGmBXhhngsxo,8243
|
315
|
-
nucliadb/writer/api/v1/field.py,sha256=
|
316
|
+
nucliadb/writer/api/v1/field.py,sha256=gYa2SMYGSr9ORi_lrN9EQpek7nj4-PW1JEoJ_hJzMGc,17274
|
316
317
|
nucliadb/writer/api/v1/knowledgebox.py,sha256=Mr1vJSWOtiraDdtoTqQ1V2rSirMdojL4wN0Q3cOiX4k,10929
|
317
318
|
nucliadb/writer/api/v1/learning_config.py,sha256=GaYaagjBrVG9ZxrWQyVQfqGMQV3tAJjqJ5CStaKhktU,2058
|
318
|
-
nucliadb/writer/api/v1/resource.py,sha256=
|
319
|
+
nucliadb/writer/api/v1/resource.py,sha256=bXaksvUoyYcHMrLmv3Ufrc_nA9hywuonfV6U6kL5kdE,18429
|
319
320
|
nucliadb/writer/api/v1/router.py,sha256=RjuoWLpZer6Kl2BW_wznpNo6XL3BOpdTGqXZCn3QrrQ,1034
|
320
321
|
nucliadb/writer/api/v1/services.py,sha256=U8OGxhA1tdt-wxw2uDAjFpwFXFEXSDTfBe1iV5nfmx8,9897
|
321
322
|
nucliadb/writer/api/v1/slug.py,sha256=xlVBDBpRi9bNulpBHZwhyftVvulfE0zFm1XZIWl-AKY,2389
|
322
323
|
nucliadb/writer/api/v1/transaction.py,sha256=d2Vbgnkk_-FLGSTt3vfldwiJIUf0XoyD0wP1jQNz_DY,2430
|
323
|
-
nucliadb/writer/api/v1/upload.py,sha256=
|
324
|
+
nucliadb/writer/api/v1/upload.py,sha256=Lb5yTh8MfpyhFYT4UCn26NfaYohu44mK_em3v4NUp6Q,32869
|
324
325
|
nucliadb/writer/resource/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
325
326
|
nucliadb/writer/resource/audit.py,sha256=FvxMZPzrNHtd31HgpZEvxzwAkbxJTZRhPLqRYYJi3tA,1426
|
326
327
|
nucliadb/writer/resource/basic.py,sha256=l9zD-Qiq4eUkHezMf0w1Ksx2izKYLYuNoMIlXcNxxpM,11163
|
@@ -335,9 +336,9 @@ nucliadb/writer/tus/local.py,sha256=7jYa_w9b-N90jWgN2sQKkNcomqn6JMVBOVeDOVYJHto,
|
|
335
336
|
nucliadb/writer/tus/s3.py,sha256=vF0NkFTXiXhXq3bCVXXVV-ED38ECVoUeeYViP8uMqcU,8357
|
336
337
|
nucliadb/writer/tus/storage.py,sha256=ToqwjoYnjI4oIcwzkhha_MPxi-k4Jk3Lt55zRwaC1SM,2903
|
337
338
|
nucliadb/writer/tus/utils.py,sha256=MSdVbRsRSZVdkaum69_0wku7X3p5wlZf4nr6E0GMKbw,2556
|
338
|
-
nucliadb-6.2.1.
|
339
|
-
nucliadb-6.2.1.
|
340
|
-
nucliadb-6.2.1.
|
341
|
-
nucliadb-6.2.1.
|
342
|
-
nucliadb-6.2.1.
|
343
|
-
nucliadb-6.2.1.
|
339
|
+
nucliadb-6.2.1.post2814.dist-info/METADATA,sha256=gq5C5Cq45euXf1PEyx2sYbBYezmItHclxAPtqmNhRkg,4689
|
340
|
+
nucliadb-6.2.1.post2814.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
341
|
+
nucliadb-6.2.1.post2814.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
|
342
|
+
nucliadb-6.2.1.post2814.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
|
343
|
+
nucliadb-6.2.1.post2814.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
344
|
+
nucliadb-6.2.1.post2814.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|