qwak-sdk 0.5.82__py3-none-any.whl → 0.5.86__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/cli.py +65 -8
- qwak_sdk/commands/feature_store/trigger/ui.py +10 -3
- qwak_sdk/commands/models/build/ui.py +2 -2
- {qwak_sdk-0.5.82.dist-info → qwak_sdk-0.5.86.dist-info}/METADATA +3 -4
- {qwak_sdk-0.5.82.dist-info → qwak_sdk-0.5.86.dist-info}/RECORD +8 -8
- {qwak_sdk-0.5.82.dist-info → qwak_sdk-0.5.86.dist-info}/WHEEL +0 -0
- {qwak_sdk-0.5.82.dist-info → qwak_sdk-0.5.86.dist-info}/entry_points.txt +0 -0
qwak_sdk/__init__.py
CHANGED
qwak_sdk/cli.py
CHANGED
|
@@ -4,6 +4,7 @@ import click
|
|
|
4
4
|
from packaging import version
|
|
5
5
|
from qwak.inner.di_configuration import UserAccountConfiguration
|
|
6
6
|
from qwak.inner.di_configuration.account import UserAccount
|
|
7
|
+
from qwak.inner.tool.auth import FrogMLAuthClient
|
|
7
8
|
|
|
8
9
|
from qwak_sdk import __version__ as sdk_version
|
|
9
10
|
from qwak_sdk.commands.admin.admin_commands_group import admin_commands_group
|
|
@@ -41,7 +42,32 @@ def create_qwak_cli():
|
|
|
41
42
|
|
|
42
43
|
@qwak_cli.command("configure", short_help="Configure the Qwak environment")
|
|
43
44
|
@click.option(
|
|
44
|
-
"--api-key",
|
|
45
|
+
"--api-key",
|
|
46
|
+
metavar="QWAK_API_KEY",
|
|
47
|
+
required=False,
|
|
48
|
+
help="Qwak assigned API key",
|
|
49
|
+
)
|
|
50
|
+
@click.option(
|
|
51
|
+
"--url", metavar="BASE_URL", required=False, help="Artifactory base url"
|
|
52
|
+
)
|
|
53
|
+
@click.option(
|
|
54
|
+
"--username", metavar="USERNAME", required=False, help="The user's username"
|
|
55
|
+
)
|
|
56
|
+
@click.option(
|
|
57
|
+
"--password", metavar="PASSWORD", required=False, help="The user's password"
|
|
58
|
+
)
|
|
59
|
+
@click.option(
|
|
60
|
+
"--token",
|
|
61
|
+
metavar="TOKEN",
|
|
62
|
+
required=False,
|
|
63
|
+
help="Access token to authenticate",
|
|
64
|
+
)
|
|
65
|
+
@click.option(
|
|
66
|
+
"--interactive",
|
|
67
|
+
metavar="INTERACTIVE",
|
|
68
|
+
required=False,
|
|
69
|
+
help="Login with interactive flow",
|
|
70
|
+
default=False,
|
|
45
71
|
)
|
|
46
72
|
@click.option(
|
|
47
73
|
"--environment",
|
|
@@ -51,15 +77,46 @@ def create_qwak_cli():
|
|
|
51
77
|
is_eager=True,
|
|
52
78
|
help="Qwak environment's name",
|
|
53
79
|
)
|
|
80
|
+
@click.option(
|
|
81
|
+
"--type",
|
|
82
|
+
metavar="TYPE",
|
|
83
|
+
default="qwak",
|
|
84
|
+
required=False,
|
|
85
|
+
type=click.Choice(["qwak", "jfrog"], case_sensitive=False),
|
|
86
|
+
is_eager=True,
|
|
87
|
+
help="Login type (qwak/jfrog)",
|
|
88
|
+
)
|
|
54
89
|
@profile_setter_wrapper
|
|
55
|
-
def set_configuration(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
90
|
+
def set_configuration(
|
|
91
|
+
api_key: Optional[str],
|
|
92
|
+
url: Optional[str],
|
|
93
|
+
username: Optional[str],
|
|
94
|
+
password: Optional[str],
|
|
95
|
+
token: Optional[str],
|
|
96
|
+
interactive: bool,
|
|
97
|
+
environment: str,
|
|
98
|
+
type: str,
|
|
99
|
+
**_,
|
|
100
|
+
):
|
|
101
|
+
if type.lower() == "jfrog":
|
|
102
|
+
account_config = UserAccountConfiguration(auth_client=FrogMLAuthClient)
|
|
103
|
+
account_config.configure_user(
|
|
104
|
+
UserAccount(
|
|
105
|
+
url=url,
|
|
106
|
+
username=username,
|
|
107
|
+
password=password,
|
|
108
|
+
api_key=token,
|
|
109
|
+
anonymous=False,
|
|
110
|
+
is_interactive=interactive,
|
|
111
|
+
)
|
|
112
|
+
)
|
|
113
|
+
elif type.lower() == "qwak":
|
|
114
|
+
if api_key is None:
|
|
115
|
+
api_key = click.prompt("Please enter your API key", type=str)
|
|
61
116
|
|
|
62
|
-
|
|
117
|
+
account_config = UserAccountConfiguration()
|
|
118
|
+
account_config.configure_user(UserAccount(api_key=api_key))
|
|
119
|
+
print(f"User successfully configured for the '{environment}' environment")
|
|
63
120
|
|
|
64
121
|
qwak_cli.add_command(projects_command_group)
|
|
65
122
|
qwak_cli.add_command(models_command_group)
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import click
|
|
2
|
+
from _qwak_proto.qwak.feature_store.features.feature_set_service_pb2 import (
|
|
3
|
+
RunBatchFeatureSetResponse,
|
|
4
|
+
)
|
|
2
5
|
from qwak.clients.feature_store import FeatureRegistryClient
|
|
3
6
|
from qwak.exceptions import QwakException
|
|
4
7
|
|
|
@@ -15,10 +18,12 @@ def trigger_feature_set(name, **kwargs):
|
|
|
15
18
|
Trigger a batch feature set ingestion job
|
|
16
19
|
|
|
17
20
|
Args:
|
|
18
|
-
name:
|
|
21
|
+
name: Feature set name that will be triggered.
|
|
19
22
|
"""
|
|
20
23
|
try:
|
|
21
|
-
FeatureRegistryClient().run_feature_set(
|
|
24
|
+
result: RunBatchFeatureSetResponse = FeatureRegistryClient().run_feature_set(
|
|
25
|
+
feature_set_name=name
|
|
26
|
+
)
|
|
22
27
|
except Exception as e:
|
|
23
28
|
print(
|
|
24
29
|
f"{Color.RED} Failed to trigger a batch feature set ingestion for feature set {name} {Color.END}"
|
|
@@ -28,5 +33,7 @@ def trigger_feature_set(name, **kwargs):
|
|
|
28
33
|
) from e
|
|
29
34
|
|
|
30
35
|
print(
|
|
31
|
-
f"{Color.GREEN}Successfully triggered a batch feature set ingestion for feature set {Color.YELLOW}{name}"
|
|
36
|
+
f"{Color.GREEN}Successfully triggered a batch feature set ingestion for feature set: {Color.YELLOW}{name}"
|
|
32
37
|
)
|
|
38
|
+
if result.execution_id:
|
|
39
|
+
print(f"{Color.WHITE} Execution ID: {Color.YELLOW}{result.execution_id}")
|
|
@@ -132,8 +132,8 @@ from qwak_sdk.inner.tools.config_handler import config_handler
|
|
|
132
132
|
)
|
|
133
133
|
@click.option(
|
|
134
134
|
"--cache/--no-cache",
|
|
135
|
-
default=
|
|
136
|
-
help="Disable docker build cache. [Default: Cache
|
|
135
|
+
default=False,
|
|
136
|
+
help="Disable docker build cache. [Default: Cache disabled]",
|
|
137
137
|
)
|
|
138
138
|
@click.option(
|
|
139
139
|
"-v",
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qwak-sdk
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.86
|
|
4
4
|
Summary: Qwak SDK and CLI for qwak models
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: mlops,ml,deployment,serving,model
|
|
7
7
|
Author: Qwak
|
|
8
8
|
Author-email: info@qwak.com
|
|
9
|
-
Requires-Python: >=3.
|
|
9
|
+
Requires-Python: >=3.9,<3.12
|
|
10
10
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
11
|
Classifier: Operating System :: OS Independent
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.9
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
@@ -41,7 +40,7 @@ Requires-Dist: pyarrow (>=6.0.0,<11.0.0) ; extra == "batch" or extra == "feature
|
|
|
41
40
|
Requires-Dist: pyathena (>=2.2.0,!=2.18.0) ; extra == "feature-store"
|
|
42
41
|
Requires-Dist: pyspark (==3.4.2) ; extra == "feature-store"
|
|
43
42
|
Requires-Dist: python-json-logger (>=2.0.2)
|
|
44
|
-
Requires-Dist: qwak-core (==0.4.
|
|
43
|
+
Requires-Dist: qwak-core (==0.4.165)
|
|
45
44
|
Requires-Dist: qwak-inference (>=0.1.18,<0.2.0)
|
|
46
45
|
Requires-Dist: rich (>=13.0.0)
|
|
47
46
|
Requires-Dist: tabulate (>=0.8.0)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
qwak_sdk/__init__.py,sha256=
|
|
2
|
-
qwak_sdk/cli.py,sha256=
|
|
1
|
+
qwak_sdk/__init__.py,sha256=9eYJ9BVyrth4Dyzyk3AYq0iWC7Z31TrbdZLJm9iJbrY,135
|
|
2
|
+
qwak_sdk/cli.py,sha256=frMefF0AmLI1g5A9aADNueUkMDjRHikKlmXIA2i4kYA,4510
|
|
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
|
|
5
5
|
qwak_sdk/commands/_logic/tools.py,sha256=uJOSfpifONXjFJjaHvm_7ivTs8K0PO56YoxhU0dktPU,239
|
|
@@ -97,7 +97,7 @@ qwak_sdk/commands/feature_store/register/ui.py,sha256=F9bCsV13ZdmzHw470Bfso48Lzj
|
|
|
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
|
|
100
|
-
qwak_sdk/commands/feature_store/trigger/ui.py,sha256=
|
|
100
|
+
qwak_sdk/commands/feature_store/trigger/ui.py,sha256=NvFfnZn-Idddt5fkO8nWvu-nP8PazN5tAb7vHyRgeck,1298
|
|
101
101
|
qwak_sdk/commands/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
102
|
qwak_sdk/commands/models/build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
103
103
|
qwak_sdk/commands/models/build/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -122,7 +122,7 @@ qwak_sdk/commands/models/build/_logic/util/protobuf_factory.py,sha256=ar_oY38w_x
|
|
|
122
122
|
qwak_sdk/commands/models/build/_logic/util/step_decorator.py,sha256=HLZyCGdqe3Ir7SaPWp1YNRHJpjXG-e-bbAvnOFysAVM,1913
|
|
123
123
|
qwak_sdk/commands/models/build/_logic/util/text.py,sha256=tH-v19Mt8l90sMVxku5XRtrderT0qdRqJ-jLijqannA,188
|
|
124
124
|
qwak_sdk/commands/models/build/_logic/wait_until_finished.py,sha256=DxIyNK-MFjxSh9xe7dJx-znmz8ZOqelK-cJQvr7YI9g,1220
|
|
125
|
-
qwak_sdk/commands/models/build/ui.py,sha256=
|
|
125
|
+
qwak_sdk/commands/models/build/ui.py,sha256=lBuRa-DpEKnHBz6xs2ZGWr6JzZkwGSXDNeK8LDJCM4A,9871
|
|
126
126
|
qwak_sdk/commands/models/builds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
127
|
qwak_sdk/commands/models/builds/builds_commands_group.py,sha256=0nSfTY8TracXG61rFboQWUTXJisHO6dgtJKeijy6ru8,491
|
|
128
128
|
qwak_sdk/commands/models/builds/cancel/__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.86.dist-info/entry_points.txt,sha256=vSl0ELYDyj640oMM57u0AjBP87wtLYxCcGOendhEx80,47
|
|
323
|
+
qwak_sdk-0.5.86.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
|
|
324
|
+
qwak_sdk-0.5.86.dist-info/METADATA,sha256=LP4ousAyUlpzuorwgdCGPtAVLw9r_a4W53Oc7uVloyM,2926
|
|
325
|
+
qwak_sdk-0.5.86.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|