nucliadb-utils 3.2.0.post513__py3-none-any.whl → 4.0.0.post516__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_utils/cache/settings.py +1 -1
- nucliadb_utils/featureflagging.py +3 -3
- nucliadb_utils/settings.py +9 -6
- nucliadb_utils/storages/settings.py +1 -1
- nucliadb_utils/tests/unit/test_utilities.py +13 -4
- {nucliadb_utils-3.2.0.post513.dist-info → nucliadb_utils-4.0.0.post516.dist-info}/METADATA +5 -4
- {nucliadb_utils-3.2.0.post513.dist-info → nucliadb_utils-4.0.0.post516.dist-info}/RECORD +10 -10
- {nucliadb_utils-3.2.0.post513.dist-info → nucliadb_utils-4.0.0.post516.dist-info}/WHEEL +0 -0
- {nucliadb_utils-3.2.0.post513.dist-info → nucliadb_utils-4.0.0.post516.dist-info}/top_level.txt +0 -0
- {nucliadb_utils-3.2.0.post513.dist-info → nucliadb_utils-4.0.0.post516.dist-info}/zip-safe +0 -0
nucliadb_utils/cache/settings.py
CHANGED
@@ -21,14 +21,14 @@ import json
|
|
21
21
|
from typing import Any, Optional
|
22
22
|
|
23
23
|
import mrflagly
|
24
|
-
import
|
24
|
+
import pydantic_settings
|
25
25
|
|
26
26
|
from nucliadb_utils import const
|
27
27
|
from nucliadb_utils.settings import nuclia_settings, running_settings
|
28
28
|
|
29
29
|
|
30
|
-
class Settings(
|
31
|
-
flag_settings_url: Optional[str]
|
30
|
+
class Settings(pydantic_settings.BaseSettings):
|
31
|
+
flag_settings_url: Optional[str] = None
|
32
32
|
|
33
33
|
|
34
34
|
DEFAULT_FLAG_DATA: dict[str, Any] = {
|
nucliadb_utils/settings.py
CHANGED
@@ -20,8 +20,8 @@
|
|
20
20
|
from enum import Enum
|
21
21
|
from typing import Dict, List, Optional
|
22
22
|
|
23
|
-
from pydantic import
|
24
|
-
from
|
23
|
+
from pydantic import AliasChoices, Field, model_validator
|
24
|
+
from pydantic_settings import BaseSettings
|
25
25
|
|
26
26
|
|
27
27
|
class RunningSettings(BaseSettings):
|
@@ -29,7 +29,7 @@ class RunningSettings(BaseSettings):
|
|
29
29
|
sentry_url: Optional[str] = None
|
30
30
|
running_environment: str = Field(
|
31
31
|
default="local",
|
32
|
-
|
32
|
+
validation_alias=AliasChoices("environment", "running_environment"),
|
33
33
|
description="Running environment. One of: local, test, stage, prod",
|
34
34
|
)
|
35
35
|
metrics_port: int = 3030
|
@@ -48,7 +48,7 @@ class HTTPSettings(BaseSettings):
|
|
48
48
|
http_settings = HTTPSettings()
|
49
49
|
|
50
50
|
|
51
|
-
class FileBackendConfig(
|
51
|
+
class FileBackendConfig(Enum):
|
52
52
|
GCS = "gcs"
|
53
53
|
S3 = "s3"
|
54
54
|
PG = "pg"
|
@@ -130,7 +130,9 @@ class NucliaSettings(BaseSettings):
|
|
130
130
|
"http://processing-api.processing.svc.cluster.local:8080"
|
131
131
|
)
|
132
132
|
nuclia_inner_predict_url: str = "http://predict.learning.svc.cluster.local:8080"
|
133
|
-
learning_internal_svc_base_url =
|
133
|
+
learning_internal_svc_base_url: str = (
|
134
|
+
"http://{service}.learning.svc.cluster.local:8080"
|
135
|
+
)
|
134
136
|
|
135
137
|
nuclia_zone: str = "europe-1"
|
136
138
|
onprem: bool = True
|
@@ -145,7 +147,8 @@ class NucliaSettings(BaseSettings):
|
|
145
147
|
local_predict: bool = False
|
146
148
|
local_predict_headers: Dict[str, str] = {}
|
147
149
|
|
148
|
-
@
|
150
|
+
@model_validator(mode="before")
|
151
|
+
@classmethod
|
149
152
|
def check_onprem_does_not_use_jwt_key(cls, values):
|
150
153
|
if values.get("onprem") and values.get("jwt_key") is not None:
|
151
154
|
raise ValueError("Invalid validation")
|
@@ -24,6 +24,7 @@ import pytest
|
|
24
24
|
|
25
25
|
from nucliadb_utils import featureflagging, utilities
|
26
26
|
from nucliadb_utils.exceptions import ConfigurationError
|
27
|
+
from nucliadb_utils.settings import FileBackendConfig
|
27
28
|
|
28
29
|
|
29
30
|
@pytest.fixture(autouse=True)
|
@@ -42,7 +43,9 @@ def test_clean_utility():
|
|
42
43
|
async def test_get_storage_s3():
|
43
44
|
s3 = AsyncMock()
|
44
45
|
with (
|
45
|
-
patch.object(
|
46
|
+
patch.object(
|
47
|
+
utilities.storage_settings, "file_backend", FileBackendConfig("s3")
|
48
|
+
),
|
46
49
|
patch("nucliadb_utils.storages.s3.S3Storage", return_value=s3),
|
47
50
|
):
|
48
51
|
assert await utilities.get_storage() == s3
|
@@ -52,7 +55,9 @@ async def test_get_storage_s3():
|
|
52
55
|
async def test_get_storage_gcs():
|
53
56
|
gcs = AsyncMock()
|
54
57
|
with (
|
55
|
-
patch.object(
|
58
|
+
patch.object(
|
59
|
+
utilities.storage_settings, "file_backend", FileBackendConfig("gcs")
|
60
|
+
),
|
56
61
|
patch("nucliadb_utils.storages.gcs.GCSStorage", return_value=gcs),
|
57
62
|
):
|
58
63
|
assert await utilities.get_storage() == gcs
|
@@ -62,7 +67,9 @@ async def test_get_storage_gcs():
|
|
62
67
|
async def test_get_storage_pg():
|
63
68
|
pg = AsyncMock()
|
64
69
|
with (
|
65
|
-
patch.object(
|
70
|
+
patch.object(
|
71
|
+
utilities.storage_settings, "file_backend", FileBackendConfig("pg")
|
72
|
+
),
|
66
73
|
patch("nucliadb_utils.storages.pg.PostgresStorage", return_value=pg),
|
67
74
|
):
|
68
75
|
assert await utilities.get_storage() == pg
|
@@ -72,7 +79,9 @@ async def test_get_storage_pg():
|
|
72
79
|
async def test_get_storage_local():
|
73
80
|
local = AsyncMock()
|
74
81
|
with (
|
75
|
-
patch.object(
|
82
|
+
patch.object(
|
83
|
+
utilities.storage_settings, "file_backend", FileBackendConfig("local")
|
84
|
+
),
|
76
85
|
patch.object(utilities.storage_settings, "local_files", "/files"),
|
77
86
|
patch("nucliadb_utils.storages.local.LocalStorage", return_value=local),
|
78
87
|
):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: nucliadb-utils
|
3
|
-
Version:
|
3
|
+
Version: 4.0.0.post516
|
4
4
|
Home-page: https://nuclia.com
|
5
5
|
License: BSD
|
6
6
|
Classifier: Development Status :: 4 - Beta
|
@@ -11,7 +11,8 @@ Classifier: Programming Language :: Python :: 3.11
|
|
11
11
|
Classifier: Programming Language :: Python :: 3 :: Only
|
12
12
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
13
13
|
Requires-Python: >=3.9, <4
|
14
|
-
Requires-Dist: pydantic
|
14
|
+
Requires-Dist: pydantic >=2.7
|
15
|
+
Requires-Dist: pydantic-settings >=2.2
|
15
16
|
Requires-Dist: aiohttp >=3.9.4
|
16
17
|
Requires-Dist: prometheus-client >=0.12.0
|
17
18
|
Requires-Dist: types-requests >=2.27.7
|
@@ -20,8 +21,8 @@ Requires-Dist: nats-py[nkeys] >=2.6.0
|
|
20
21
|
Requires-Dist: pyjwt >=2.4.0
|
21
22
|
Requires-Dist: memorylru >=1.1.2
|
22
23
|
Requires-Dist: mrflagly
|
23
|
-
Requires-Dist: nucliadb-protos >=
|
24
|
-
Requires-Dist: nucliadb-telemetry >=
|
24
|
+
Requires-Dist: nucliadb-protos >=4.0.0.post516
|
25
|
+
Requires-Dist: nucliadb-telemetry >=4.0.0.post516
|
25
26
|
Provides-Extra: cache
|
26
27
|
Requires-Dist: redis >=4.3.4 ; extra == 'cache'
|
27
28
|
Requires-Dist: orjson >=3.6.7 ; extra == 'cache'
|
@@ -4,7 +4,7 @@ nucliadb_utils/authentication.py,sha256=HTj6kFFrfdN4-DW_MNqldAPqNPdPwGHnSWl-Sigi
|
|
4
4
|
nucliadb_utils/const.py,sha256=V9SWXB_Nfy0qqgPkQcEYN_zj90WkOpLubeixRKUprfM,2391
|
5
5
|
nucliadb_utils/debug.py,sha256=saSfh_CDQoQl-35KCyqef5hdB_OVdrIEnlmWnZU18vg,2470
|
6
6
|
nucliadb_utils/exceptions.py,sha256=y_3wk77WLVUtdo-5FtbBsdSkCtK_DsJkdWb5BoPn3qo,1094
|
7
|
-
nucliadb_utils/featureflagging.py,sha256=
|
7
|
+
nucliadb_utils/featureflagging.py,sha256=M94p2qQROCmeMX_N3PPvzAR3iaNBGvjwdE1-aAAWp1k,2740
|
8
8
|
nucliadb_utils/grpc.py,sha256=USXwPRuCJiSyLf0JW4isIKZne6od8gM_GGLWaHHjknk,3336
|
9
9
|
nucliadb_utils/helpers.py,sha256=fOL6eImdvKO3NV39ymmo2UOCT-GAK1dfXKoMKdzdmFo,1599
|
10
10
|
nucliadb_utils/indexing.py,sha256=ELJ9bTnrxcb6tmO77HzzO1SDLPmKXTc_nBiLnJocz5I,3462
|
@@ -12,7 +12,7 @@ nucliadb_utils/nats.py,sha256=7hRKMflwxK-p_L0KFO5jibOGhzSw2F24mKvPG-A_iN8,8224
|
|
12
12
|
nucliadb_utils/partition.py,sha256=0tmXuwRM_v-OmKoRkB--OMDzomVEkmgxqMmNNomI_24,1173
|
13
13
|
nucliadb_utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
14
|
nucliadb_utils/run.py,sha256=bKMfsPEK6WdWfiPyWPUxCqcLo4tq6eOwyaf910TOwBk,1713
|
15
|
-
nucliadb_utils/settings.py,sha256=
|
15
|
+
nucliadb_utils/settings.py,sha256=sFvYT903OFoIz1do0kDnxVLLucQ1nJDxPPJZJyofqow,7280
|
16
16
|
nucliadb_utils/signals.py,sha256=KxV4UUNWf4wrEbt1iJzy6PxYuTEhi6IRisKlYlq5OtM,2702
|
17
17
|
nucliadb_utils/store.py,sha256=kQ35HemE0v4_Qg6xVqNIJi8vSFAYQtwI3rDtMsNy62Y,890
|
18
18
|
nucliadb_utils/transaction.py,sha256=CQpsuF-E2omh4gGMxXCn0dv7vL9ctxooWpSgWGbGfBA,7212
|
@@ -25,7 +25,7 @@ nucliadb_utils/cache/__init__.py,sha256=itSI7dtTwFP55YMX4iK7JzdMHS5CQVUiB1XzQu4U
|
|
25
25
|
nucliadb_utils/cache/exceptions.py,sha256=Zu-O_-0-yctOEgoDGI92gPzWfBMRrpiAyESA62ld6MA,975
|
26
26
|
nucliadb_utils/cache/nats.py,sha256=h0x894QNLkkvyOcmqH8ncC-d0AiHm9SjDgvPPiwxYao,7089
|
27
27
|
nucliadb_utils/cache/pubsub.py,sha256=l8i_RwRf7OPzfmPy-gyn66xgYFs5aHidCIjEaU9VOHE,1654
|
28
|
-
nucliadb_utils/cache/settings.py,sha256=
|
28
|
+
nucliadb_utils/cache/settings.py,sha256=WVeHOE6Re5i4k2hUHdFKfkoL4n83v_Z6UPBK6GHYb8g,1059
|
29
29
|
nucliadb_utils/fastapi/__init__.py,sha256=itSI7dtTwFP55YMX4iK7JzdMHS5CQVUiB1XzQu4UBh8,833
|
30
30
|
nucliadb_utils/fastapi/openapi.py,sha256=b0pLuri0QuzQd0elDyOVXM42YYmES_cmT-jEfsQ1G6Y,1737
|
31
31
|
nucliadb_utils/fastapi/run.py,sha256=n6vOX64QqF1I5n4UlKnpm_ZJ24rmwfRGi-J9YMGpZzA,3631
|
@@ -37,7 +37,7 @@ nucliadb_utils/storages/local.py,sha256=SZrBkxnGg8DoMHlT4GaBP5LqMwi6QAe-d_eLU2MJ
|
|
37
37
|
nucliadb_utils/storages/nuclia.py,sha256=UfvRu92eqG1v-PE-UWH2x8KEJFqDqATMmUGFmEuqSSs,2097
|
38
38
|
nucliadb_utils/storages/pg.py,sha256=vxx8FQIToA_C6CO1uu9W080yZl0SgUVtTEWd6lQhPJc,18610
|
39
39
|
nucliadb_utils/storages/s3.py,sha256=EYfn2CjoVL0tPFUqMaHgJYHjrSQaIUzLeNYoRa1qp-A,18809
|
40
|
-
nucliadb_utils/storages/settings.py,sha256=
|
40
|
+
nucliadb_utils/storages/settings.py,sha256=ugCPy1zxBOmA2KosT-4tsjpvP002kg5iQyi42yCGCJA,1285
|
41
41
|
nucliadb_utils/storages/storage.py,sha256=W8pDa5pXTvfDY5ugEPVESpnkpDE7hnj7jnQQaKdlXk8,20559
|
42
42
|
nucliadb_utils/tests/__init__.py,sha256=Oo9CAE7B0eW5VHn8sHd6o30SQzOWUhktLPRXdlDOleA,1456
|
43
43
|
nucliadb_utils/tests/asyncbenchmark.py,sha256=rN_NNDk4ras0qgFp0QlRyAi9ZU9xITdzxl2s5CigzBo,10698
|
@@ -57,14 +57,14 @@ nucliadb_utils/tests/unit/test_run.py,sha256=VHeojVBj_AfV_uNch9eEi4zCT-O94VKjwb_
|
|
57
57
|
nucliadb_utils/tests/unit/test_signals.py,sha256=Br3BjBZpAtKPqeSmfHSGf1Seu4mB2OBWFCgLcNEH0PQ,2647
|
58
58
|
nucliadb_utils/tests/unit/test_tests.py,sha256=-YHgVMKJr_3WYwrBj9TnwpVLIkP80PLZpWnvAIYvnz8,1189
|
59
59
|
nucliadb_utils/tests/unit/test_transaction.py,sha256=ULVALWbMWEkH2Gq5Q8olEL8k8Kqyh5RAe0Lp9qdF1V4,3917
|
60
|
-
nucliadb_utils/tests/unit/test_utilities.py,sha256=
|
60
|
+
nucliadb_utils/tests/unit/test_utilities.py,sha256=KcHSPp3RZyKAnscJrIwc2M3PCD3l1DWb6WuqtI6cl5o,5377
|
61
61
|
nucliadb_utils/tests/unit/storages/__init__.py,sha256=itSI7dtTwFP55YMX4iK7JzdMHS5CQVUiB1XzQu4UBh8,833
|
62
62
|
nucliadb_utils/tests/unit/storages/test_aws.py,sha256=GCsB_jwCUNV3Ogt8TZZEmNKAHvOlR0HGU7blrFbtJqs,1924
|
63
63
|
nucliadb_utils/tests/unit/storages/test_gcs.py,sha256=2XzJwgNpfjVGjtE-QdZhu3ayuT1EMEXINdM-_SatPCY,3554
|
64
64
|
nucliadb_utils/tests/unit/storages/test_pg.py,sha256=sJfUttMSzq8W1XYolAUcMxl_R5HcEzb5fpCklPeMJiY,17000
|
65
65
|
nucliadb_utils/tests/unit/storages/test_storage.py,sha256=VFpRq6Q6BjnIrBQCumYzR8DQUacwhxt5CzTKSlqqD24,6892
|
66
|
-
nucliadb_utils-
|
67
|
-
nucliadb_utils-
|
68
|
-
nucliadb_utils-
|
69
|
-
nucliadb_utils-
|
70
|
-
nucliadb_utils-
|
66
|
+
nucliadb_utils-4.0.0.post516.dist-info/METADATA,sha256=LNMe6roe8eKyLIbxDOI5aPaOLus4afnwlVPt0Kk3pTM,1957
|
67
|
+
nucliadb_utils-4.0.0.post516.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
68
|
+
nucliadb_utils-4.0.0.post516.dist-info/top_level.txt,sha256=fE3vJtALTfgh7bcAWcNhcfXkNPp_eVVpbKK-2IYua3E,15
|
69
|
+
nucliadb_utils-4.0.0.post516.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
70
|
+
nucliadb_utils-4.0.0.post516.dist-info/RECORD,,
|
File without changes
|
{nucliadb_utils-3.2.0.post513.dist-info → nucliadb_utils-4.0.0.post516.dist-info}/top_level.txt
RENAMED
File without changes
|
File without changes
|