qwak-sdk 0.5.74__py3-none-any.whl → 0.5.75__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.
Potentially problematic release.
This version of qwak-sdk might be problematic. Click here for more details.
- qwak_sdk/__init__.py +1 -1
- qwak_sdk/commands/feature_store/register/_logic.py +14 -2
- qwak_sdk/commands/feature_store/register/ui.py +8 -1
- {qwak_sdk-0.5.74.dist-info → qwak_sdk-0.5.75.dist-info}/METADATA +2 -2
- {qwak_sdk-0.5.74.dist-info → qwak_sdk-0.5.75.dist-info}/RECORD +7 -7
- {qwak_sdk-0.5.74.dist-info → qwak_sdk-0.5.75.dist-info}/WHEEL +0 -0
- {qwak_sdk-0.5.74.dist-info → qwak_sdk-0.5.75.dist-info}/entry_points.txt +0 -0
qwak_sdk/__init__.py
CHANGED
|
@@ -14,6 +14,9 @@ from qwak.exceptions import QwakException
|
|
|
14
14
|
from qwak.feature_store.data_sources.base import BaseSource
|
|
15
15
|
from qwak.feature_store.entities.entity import Entity
|
|
16
16
|
from qwak.feature_store.feature_sets.base_feature_set import BaseFeatureSet
|
|
17
|
+
from qwak.feature_store.validations.validation_options import (
|
|
18
|
+
FeatureSetValidationOptions,
|
|
19
|
+
)
|
|
17
20
|
from qwak.feature_store.validations.validation_response import (
|
|
18
21
|
SuccessValidationResponse,
|
|
19
22
|
ValidationResponse,
|
|
@@ -158,6 +161,7 @@ def _register_features_sets(
|
|
|
158
161
|
git_commit: str,
|
|
159
162
|
no_validation: bool,
|
|
160
163
|
ignore_validation_errors: bool,
|
|
164
|
+
data_source_limit: Optional[int] = None,
|
|
161
165
|
):
|
|
162
166
|
"""
|
|
163
167
|
Register Feature Store Feature Set Objects
|
|
@@ -209,6 +213,7 @@ def _register_features_sets(
|
|
|
209
213
|
featureset=featureset,
|
|
210
214
|
no_validation=no_validation,
|
|
211
215
|
ignore_validation_errors=ignore_validation_errors,
|
|
216
|
+
data_source_limit=data_source_limit,
|
|
212
217
|
)
|
|
213
218
|
|
|
214
219
|
proto_feature_set, _ = featureset._to_proto(
|
|
@@ -273,6 +278,7 @@ def _register_new_feature_set(
|
|
|
273
278
|
|
|
274
279
|
def _handle_featureset_validation(
|
|
275
280
|
featureset: BaseFeatureSet,
|
|
281
|
+
data_source_limit: Optional[int] = None,
|
|
276
282
|
) -> Tuple[List[ProtoFeature], Optional[str]]:
|
|
277
283
|
print(f"Validating '{featureset.name}' feature set")
|
|
278
284
|
with qwak_spinner(begin_text="", print_callback=print):
|
|
@@ -281,8 +287,13 @@ def _handle_featureset_validation(
|
|
|
281
287
|
v = FeaturesOperatorValidator()
|
|
282
288
|
response: ValidationResponse
|
|
283
289
|
artifact_url: Optional[str]
|
|
290
|
+
validation_options = FeatureSetValidationOptions(
|
|
291
|
+
data_source_limit=data_source_limit
|
|
292
|
+
)
|
|
284
293
|
|
|
285
|
-
response, artifact_url = v.validate_featureset(
|
|
294
|
+
response, artifact_url = v.validate_featureset(
|
|
295
|
+
featureset=featureset, validation_options=validation_options
|
|
296
|
+
)
|
|
286
297
|
if isinstance(response, SuccessValidationResponse):
|
|
287
298
|
print_validation_outputs(response.stdout, response.stderr)
|
|
288
299
|
print("✅ Validation completed successfully, got data source columns:")
|
|
@@ -297,6 +308,7 @@ def _validate_featureset(
|
|
|
297
308
|
featureset: BaseFeatureSet,
|
|
298
309
|
no_validation: bool,
|
|
299
310
|
ignore_validation_errors: bool,
|
|
311
|
+
data_source_limit: Optional[int] = None,
|
|
300
312
|
) -> Tuple[List[ProtoFeature], Optional[str]]:
|
|
301
313
|
"""
|
|
302
314
|
Validates featureset transformation
|
|
@@ -313,7 +325,7 @@ def _validate_featureset(
|
|
|
313
325
|
if not no_validation:
|
|
314
326
|
try:
|
|
315
327
|
features, artifact_url = _handle_featureset_validation(
|
|
316
|
-
featureset=featureset
|
|
328
|
+
featureset=featureset, data_source_limit=data_source_limit
|
|
317
329
|
)
|
|
318
330
|
except Exception as e:
|
|
319
331
|
print(str(e))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from pathlib import Path
|
|
3
|
-
from typing import List, Tuple
|
|
3
|
+
from typing import List, Optional, Tuple
|
|
4
4
|
|
|
5
5
|
import click
|
|
6
6
|
from qwak.clients.feature_store import FeatureRegistryClient
|
|
@@ -52,11 +52,17 @@ from qwak_sdk.tools.utils import qwak_spinner
|
|
|
52
52
|
metavar="FLAG",
|
|
53
53
|
help="Ignore validation errors. Continue registering even if an error occurs",
|
|
54
54
|
)
|
|
55
|
+
@click.option(
|
|
56
|
+
"--fs-validation-ds-limit",
|
|
57
|
+
type=click.IntRange(1, 10000),
|
|
58
|
+
help="Limit the number of records to be fetched from each datasource during featureset validation",
|
|
59
|
+
)
|
|
55
60
|
def register_fs_objects(
|
|
56
61
|
path: Path,
|
|
57
62
|
force: bool,
|
|
58
63
|
no_validation: bool,
|
|
59
64
|
ignore_validation_errors: bool,
|
|
65
|
+
fs_validation_ds_limit: Optional[int],
|
|
60
66
|
**kwargs,
|
|
61
67
|
):
|
|
62
68
|
qwak_python_files: List[Tuple[str, str]]
|
|
@@ -101,4 +107,5 @@ def register_fs_objects(
|
|
|
101
107
|
git_commit,
|
|
102
108
|
no_validation,
|
|
103
109
|
ignore_validation_errors,
|
|
110
|
+
fs_validation_ds_limit,
|
|
104
111
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qwak-sdk
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.75
|
|
4
4
|
Summary: Qwak SDK and CLI for qwak models
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: mlops,ml,deployment,serving,model
|
|
@@ -38,7 +38,7 @@ Requires-Dist: pandas (>=1.4.0) ; (python_version >= "3.10" and python_version <
|
|
|
38
38
|
Requires-Dist: pyarrow (>=6.0.0,<11.0.0) ; extra == "batch"
|
|
39
39
|
Requires-Dist: python-json-logger (>=2.0.2)
|
|
40
40
|
Requires-Dist: qwak-core (==0.4.45)
|
|
41
|
-
Requires-Dist: qwak-inference (>=0.1.
|
|
41
|
+
Requires-Dist: qwak-inference (>=0.1.18,<0.2.0)
|
|
42
42
|
Requires-Dist: rich (>=13.0.0)
|
|
43
43
|
Requires-Dist: tabulate (>=0.8.0)
|
|
44
44
|
Requires-Dist: yaspin (>=2.0.0)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
qwak_sdk/__init__.py,sha256=
|
|
1
|
+
qwak_sdk/__init__.py,sha256=LiutEyvKfxYgadR1ZI_6ydX8O2nAOdsIRtzXCSnNmGU,135
|
|
2
2
|
qwak_sdk/cli.py,sha256=FIK1dUNxR57ypb-CeD7fKSJnPJ02lrjR9G4aj2qMLPU,2458
|
|
3
3
|
qwak_sdk/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
qwak_sdk/commands/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -92,8 +92,8 @@ qwak_sdk/commands/feature_store/list/ui.py,sha256=NuXnQ3cdXSDCFAcC2jmgx4sAdjNuyI
|
|
|
92
92
|
qwak_sdk/commands/feature_store/pause/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
93
|
qwak_sdk/commands/feature_store/pause/ui.py,sha256=C89yl4ly-RpyZub30q5xV5g1UDnI_GmHSndvXAkXkw4,695
|
|
94
94
|
qwak_sdk/commands/feature_store/register/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
95
|
-
qwak_sdk/commands/feature_store/register/_logic.py,sha256=
|
|
96
|
-
qwak_sdk/commands/feature_store/register/ui.py,sha256=
|
|
95
|
+
qwak_sdk/commands/feature_store/register/_logic.py,sha256=xCMHnyTYA4UbPm0sxiJ-j1bej00YVHZfUAgJMdv1K9s,13153
|
|
96
|
+
qwak_sdk/commands/feature_store/register/ui.py,sha256=F9bCsV13ZdmzHw470Bfso48LzjABLmYx5p8sISJNPh0,2997
|
|
97
97
|
qwak_sdk/commands/feature_store/resume/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
98
|
qwak_sdk/commands/feature_store/resume/ui.py,sha256=nI87xvA30qNQVJnT67lYJgwKGBtvZAurC6XX9ttpCZA,700
|
|
99
99
|
qwak_sdk/commands/feature_store/trigger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -319,7 +319,7 @@ qwak_sdk/tools/colors.py,sha256=7pui_GGjC4uZKYFsIyXaJjYsjLxJVHb4OrfTgr93hqo,287
|
|
|
319
319
|
qwak_sdk/tools/files.py,sha256=AyKJTOy7NhvP3SrqwIw_lxYNCOy1CvLgMmSJpWZ0OKM,2257
|
|
320
320
|
qwak_sdk/tools/log_handling.py,sha256=Aa1EmxUPCX8YWiZRutUvnqPv6K_z1zoGMwIWsEv24mM,6327
|
|
321
321
|
qwak_sdk/tools/utils.py,sha256=SHmU4r_m2ABZyFYMC03P17GvltPbYbmB39hvalIZEtI,1168
|
|
322
|
-
qwak_sdk-0.5.
|
|
323
|
-
qwak_sdk-0.5.
|
|
324
|
-
qwak_sdk-0.5.
|
|
325
|
-
qwak_sdk-0.5.
|
|
322
|
+
qwak_sdk-0.5.75.dist-info/entry_points.txt,sha256=vSl0ELYDyj640oMM57u0AjBP87wtLYxCcGOendhEx80,47
|
|
323
|
+
qwak_sdk-0.5.75.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
|
|
324
|
+
qwak_sdk-0.5.75.dist-info/METADATA,sha256=4pavp9WVUVDi7r76pmyVsGovNndgfEKEVrOO2bT9F08,2600
|
|
325
|
+
qwak_sdk-0.5.75.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|