qwak-sdk 0.5.62__py3-none-any.whl → 0.5.63__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/models/build/ui.py +5 -0
- qwak_sdk/commands/models/deployments/deploy/_logic/deployment_message_helpers.py +1 -1
- qwak_sdk/commands/models/deployments/deploy/_logic/deployment_size_mapper.py +41 -3
- qwak_sdk/commands/models/deployments/deploy/_logic/local_deployment.py +193 -0
- qwak_sdk/commands/models/deployments/deploy/batch/ui.py +1 -1
- qwak_sdk/commands/models/deployments/deploy/realtime/ui.py +25 -5
- {qwak_sdk-0.5.62.dist-info → qwak_sdk-0.5.63.dist-info}/METADATA +5 -3
- {qwak_sdk-0.5.62.dist-info → qwak_sdk-0.5.63.dist-info}/RECORD +11 -10
- {qwak_sdk-0.5.62.dist-info → qwak_sdk-0.5.63.dist-info}/WHEEL +0 -0
- {qwak_sdk-0.5.62.dist-info → qwak_sdk-0.5.63.dist-info}/entry_points.txt +0 -0
qwak_sdk/__init__.py
CHANGED
|
@@ -110,6 +110,11 @@ from qwak_sdk.inner.tools.config_handler import config_handler
|
|
|
110
110
|
type=str,
|
|
111
111
|
help="[REMOTE BUILD] Custom IAM Role ARN.",
|
|
112
112
|
)
|
|
113
|
+
@click.option(
|
|
114
|
+
"--service-account-key-secret-name",
|
|
115
|
+
type=str,
|
|
116
|
+
help="Custom service account for Gcp.",
|
|
117
|
+
)
|
|
113
118
|
@click.option(
|
|
114
119
|
"--cache/--no-cache",
|
|
115
120
|
default=None,
|
|
@@ -45,7 +45,7 @@ def get_env_to_deployment_message(
|
|
|
45
45
|
instance_template_client: InstanceTemplateManagementClient,
|
|
46
46
|
) -> Dict[str, EnvironmentDeploymentMessage]:
|
|
47
47
|
deployment_size = deployment_size_from_deploy_config(
|
|
48
|
-
deploy_config, instance_template_client
|
|
48
|
+
deploy_config, instance_template_client, ecosystem_client
|
|
49
49
|
)
|
|
50
50
|
advanced_deployment_options = get_advanced_deployment_options_from_deploy_config(
|
|
51
51
|
deploy_config, kube_deployment_type
|
|
@@ -7,8 +7,11 @@ from _qwak_proto.qwak.user_application.common.v0.resources_pb2 import (
|
|
|
7
7
|
GpuResources,
|
|
8
8
|
PodComputeResourceTemplateSpec,
|
|
9
9
|
)
|
|
10
|
+
from qwak.clients.administration.eco_system.client import EcosystemClient
|
|
10
11
|
from qwak.clients.instance_template.client import InstanceTemplateManagementClient
|
|
12
|
+
from qwak.exceptions import QwakException
|
|
11
13
|
from qwak.inner.instance_template.verify_template_id import verify_template_id
|
|
14
|
+
from qwak.inner.provider import Provider
|
|
12
15
|
|
|
13
16
|
from qwak_sdk.commands.models.deployments.deploy._logic.deploy_config import (
|
|
14
17
|
DeployConfig,
|
|
@@ -18,14 +21,37 @@ from qwak_sdk.commands.models.deployments.deploy._logic.deploy_config import (
|
|
|
18
21
|
def deployment_size_from_deploy_config(
|
|
19
22
|
deploy_config: DeployConfig,
|
|
20
23
|
instance_template_client: InstanceTemplateManagementClient,
|
|
24
|
+
ecosystem_client: EcosystemClient,
|
|
21
25
|
) -> DeploymentSize:
|
|
22
26
|
if deploy_config.resources.instance_size:
|
|
23
27
|
deploy_config.resources.instance_size = (
|
|
24
28
|
deploy_config.resources.instance_size.lower()
|
|
25
29
|
)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
account_details = ecosystem_client.get_account_details()
|
|
31
|
+
if deploy_config.environments:
|
|
32
|
+
environments_config = list(
|
|
33
|
+
ecosystem_client.get_environments_names_to_details(
|
|
34
|
+
deploy_config.environments
|
|
35
|
+
).values()
|
|
36
|
+
)
|
|
37
|
+
else:
|
|
38
|
+
environments_config = [
|
|
39
|
+
account_details.environment_by_id[
|
|
40
|
+
account_details.default_environment_id
|
|
41
|
+
]
|
|
42
|
+
]
|
|
43
|
+
for environment_config in environments_config:
|
|
44
|
+
provider = __get_provider(environment_config)
|
|
45
|
+
try:
|
|
46
|
+
verify_template_id(
|
|
47
|
+
deploy_config.resources.instance_size,
|
|
48
|
+
instance_template_client,
|
|
49
|
+
provider=provider,
|
|
50
|
+
)
|
|
51
|
+
except QwakException as e:
|
|
52
|
+
raise QwakException(
|
|
53
|
+
f"Error with template {deploy_config.resources.instance_size} for environment {environment_config.name}: {e.message}"
|
|
54
|
+
)
|
|
29
55
|
|
|
30
56
|
return DeploymentSize(
|
|
31
57
|
number_of_pods=deploy_config.resources.pods,
|
|
@@ -56,3 +82,15 @@ def deployment_size_from_deploy_config(
|
|
|
56
82
|
)
|
|
57
83
|
),
|
|
58
84
|
)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def __get_provider(environment_config):
|
|
88
|
+
provider = None
|
|
89
|
+
cloud_type = environment_config.configuration.cloud_configuration.WhichOneof(
|
|
90
|
+
"configuration"
|
|
91
|
+
)
|
|
92
|
+
if cloud_type == "aws_cloud_configuration":
|
|
93
|
+
provider = Provider.AWS
|
|
94
|
+
elif cloud_type == "gcp_cloud_configuration":
|
|
95
|
+
provider = Provider.GCP
|
|
96
|
+
return provider
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import base64
|
|
2
|
+
|
|
3
|
+
from _qwak_proto.qwak.ecosystem.v0.ecosystem_runtime_service_pb2 import (
|
|
4
|
+
GetCloudCredentialsParameters,
|
|
5
|
+
GetCloudCredentialsRequest,
|
|
6
|
+
PermissionSet,
|
|
7
|
+
PullModelsContainerRegistry,
|
|
8
|
+
)
|
|
9
|
+
from google.protobuf.duration_pb2 import Duration
|
|
10
|
+
from qwak.clients.administration.eco_system.client import EcosystemClient
|
|
11
|
+
from qwak.clients.build_orchestrator import BuildOrchestratorClient
|
|
12
|
+
from qwak.exceptions import QwakException
|
|
13
|
+
from rich.console import Console
|
|
14
|
+
from rich.layout import Layout
|
|
15
|
+
from rich.panel import Panel
|
|
16
|
+
from rich.progress import Progress
|
|
17
|
+
|
|
18
|
+
from qwak_sdk.commands.models.deployments.deploy._logic.deploy_config import (
|
|
19
|
+
DeployConfig,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
tasks = {}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def local_deploy(config: DeployConfig):
|
|
26
|
+
try:
|
|
27
|
+
import docker
|
|
28
|
+
except ImportError:
|
|
29
|
+
raise QwakException(
|
|
30
|
+
"Error: 'docker' package is required to for local model deployment."
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
console = Console()
|
|
34
|
+
console.print(Panel(f"Deploying model {config.model_id} locally", style="green"))
|
|
35
|
+
|
|
36
|
+
client = docker.from_env()
|
|
37
|
+
build_image = _get_build_image(config)
|
|
38
|
+
|
|
39
|
+
if not client.images.list(name=build_image):
|
|
40
|
+
console.print(
|
|
41
|
+
"Pulling serving image from Qwak's remote repository. Might take a few minutes...",
|
|
42
|
+
style="yellow",
|
|
43
|
+
)
|
|
44
|
+
_docker_login(client)
|
|
45
|
+
_image_pull(client, build_image)
|
|
46
|
+
|
|
47
|
+
try:
|
|
48
|
+
container = start_local_qwak_container(build_image, client, config)
|
|
49
|
+
container.reload()
|
|
50
|
+
host_port = container.ports.get("5000/tcp")[0]["HostPort"]
|
|
51
|
+
|
|
52
|
+
layout = example_usage_layout(host_port)
|
|
53
|
+
console.print(layout)
|
|
54
|
+
|
|
55
|
+
for line in container.logs(stream=True):
|
|
56
|
+
console.print(str(line.strip().decode()), style="blue")
|
|
57
|
+
|
|
58
|
+
except KeyboardInterrupt:
|
|
59
|
+
console.print(Panel("Stopping container...", style="red"))
|
|
60
|
+
container.stop()
|
|
61
|
+
container.remove()
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def example_usage_layout(host_port: str):
|
|
65
|
+
layout = Layout(size=6)
|
|
66
|
+
layout.split_row(
|
|
67
|
+
Layout(name="left"),
|
|
68
|
+
Layout(name="right"),
|
|
69
|
+
)
|
|
70
|
+
layout["left"].update(
|
|
71
|
+
Panel(
|
|
72
|
+
f"[bold]cURL usage:[bold]\n\n"
|
|
73
|
+
f"curl --location\n"
|
|
74
|
+
f"--request POST http://localhost:{host_port}/predict\n"
|
|
75
|
+
f"--header 'Content-Type: application/json'\n"
|
|
76
|
+
f"--data '...'",
|
|
77
|
+
style="green",
|
|
78
|
+
)
|
|
79
|
+
)
|
|
80
|
+
layout["right"].update(
|
|
81
|
+
Panel(
|
|
82
|
+
f"[bold]Python client usage:[bold]\n\n"
|
|
83
|
+
f"from qwak_inference import RealtimeClient\n\nfeature_vector=[...]\n"
|
|
84
|
+
f"client = RealTimeClient(model_api='http://localhost:{host_port}/predict')\n"
|
|
85
|
+
f"client.predict(feature_vector)",
|
|
86
|
+
style="green",
|
|
87
|
+
)
|
|
88
|
+
)
|
|
89
|
+
return layout
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def start_local_qwak_container(build_image: str, docker_client, config: DeployConfig):
|
|
93
|
+
return docker_client.containers.run(
|
|
94
|
+
build_image,
|
|
95
|
+
command=["bentoml", "serve-gunicorn", "./"],
|
|
96
|
+
entrypoint="./docker-entrypoint.sh",
|
|
97
|
+
environment=[
|
|
98
|
+
"BENTOML_GUNICORN_WORKERS=2",
|
|
99
|
+
"QWAK_DEBUG_MODE=True",
|
|
100
|
+
f"QWAK_MODEL_ID={config.model_id}",
|
|
101
|
+
"BENTOML_DO_NOT_TRACK=True",
|
|
102
|
+
"PYTHONPATH=/qwak/model_dir:/qwak/model_dir/main:$PYTHONPATH",
|
|
103
|
+
f"QWAK_BUILD_ID={config.build_id}",
|
|
104
|
+
"BUNDLE_PATH=/home/bentoml/bundle",
|
|
105
|
+
"BENTOML_HOME=/home/bentoml/",
|
|
106
|
+
],
|
|
107
|
+
stream=True,
|
|
108
|
+
detach=True,
|
|
109
|
+
publish_all_ports=True,
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def _get_build_image(config: DeployConfig):
|
|
114
|
+
return (
|
|
115
|
+
BuildOrchestratorClient().get_build(config.build_id).build.build_destined_image
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def _show_progress(line, progress):
|
|
120
|
+
if line["status"] == "Downloading":
|
|
121
|
+
idx = f'[red][Download {line["id"]}]'
|
|
122
|
+
elif line["status"] == "Extracting":
|
|
123
|
+
idx = f'[green][Extract {line["id"]}]'
|
|
124
|
+
else:
|
|
125
|
+
# skip other statuses
|
|
126
|
+
return
|
|
127
|
+
|
|
128
|
+
if idx not in tasks.keys():
|
|
129
|
+
tasks[idx] = progress.add_task(f"{idx}", total=line["progressDetail"]["total"])
|
|
130
|
+
else:
|
|
131
|
+
progress.update(tasks[idx], completed=line["progressDetail"]["current"])
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def _image_pull(docker_client, image_name: str):
|
|
135
|
+
with Progress() as progress:
|
|
136
|
+
resp = docker_client.api.pull(image_name, stream=True, decode=True)
|
|
137
|
+
for line in resp:
|
|
138
|
+
_show_progress(line, progress)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def _docker_login(docker_client):
|
|
142
|
+
try:
|
|
143
|
+
import boto3
|
|
144
|
+
except ImportError:
|
|
145
|
+
raise QwakException(
|
|
146
|
+
"Error: The 'boto3' package is necessary for local model deployment. Install it directly or by running"
|
|
147
|
+
" 'pip install qwak[local-deployment]'"
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
# TODO: block if not an AWS based container registry
|
|
151
|
+
credentials = _get_aws_credentials()
|
|
152
|
+
|
|
153
|
+
aws_credentials = credentials.cloud_credentials.aws_temporary_credentials
|
|
154
|
+
ecr_client = boto3.Session(
|
|
155
|
+
aws_access_key_id=aws_credentials.access_key_id,
|
|
156
|
+
aws_secret_access_key=aws_credentials.secret_access_key,
|
|
157
|
+
aws_session_token=aws_credentials.session_token,
|
|
158
|
+
region_name=aws_credentials.region,
|
|
159
|
+
).client("ecr")
|
|
160
|
+
|
|
161
|
+
ecr_credentials = ecr_client.get_authorization_token()["authorizationData"][0]
|
|
162
|
+
|
|
163
|
+
try:
|
|
164
|
+
docker_client.login(
|
|
165
|
+
username="AWS",
|
|
166
|
+
registry=ecr_credentials["proxyEndpoint"],
|
|
167
|
+
password=base64.b64decode(ecr_credentials["authorizationToken"])
|
|
168
|
+
.replace(b"AWS:", b"")
|
|
169
|
+
.decode("utf-8"),
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
except Exception as e:
|
|
173
|
+
raise QwakException(f"Failed to login to Qwak's container registry: {e}")
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
def _get_aws_credentials():
|
|
177
|
+
try:
|
|
178
|
+
eco_client = EcosystemClient()
|
|
179
|
+
credentials = eco_client.get_cloud_credentials(
|
|
180
|
+
request=GetCloudCredentialsRequest(
|
|
181
|
+
parameters=GetCloudCredentialsParameters(
|
|
182
|
+
duration=Duration(seconds=60 * 60, nanos=0), # 6 hours
|
|
183
|
+
permission_set=PermissionSet(
|
|
184
|
+
pull_models_container_registry=PullModelsContainerRegistry()
|
|
185
|
+
),
|
|
186
|
+
)
|
|
187
|
+
)
|
|
188
|
+
)
|
|
189
|
+
return credentials
|
|
190
|
+
except Exception as e:
|
|
191
|
+
raise QwakException(
|
|
192
|
+
f"Failed to get credentials to pull image from Qwak's container registry: {e}."
|
|
193
|
+
)
|
|
@@ -14,6 +14,9 @@ from qwak_sdk.commands.models.deployments.deploy._logic.deploy_config import (
|
|
|
14
14
|
from qwak_sdk.commands.models.deployments.deploy._logic.deployment_response_handler import (
|
|
15
15
|
client_deployment,
|
|
16
16
|
)
|
|
17
|
+
from qwak_sdk.commands.models.deployments.deploy._logic.local_deployment import (
|
|
18
|
+
local_deploy,
|
|
19
|
+
)
|
|
17
20
|
from qwak_sdk.commands.models.deployments.deploy.realtime._logic.deploy_executor import (
|
|
18
21
|
RealtimeDeployExecutor,
|
|
19
22
|
)
|
|
@@ -87,7 +90,7 @@ logger = get_qwak_logger()
|
|
|
87
90
|
@click.option(
|
|
88
91
|
"--service-account-key-secret-name",
|
|
89
92
|
type=str,
|
|
90
|
-
help="Custom service
|
|
93
|
+
help="Custom service account for Gcp.",
|
|
91
94
|
)
|
|
92
95
|
@click.option(
|
|
93
96
|
"--max-batch-size",
|
|
@@ -113,6 +116,12 @@ logger = get_qwak_logger()
|
|
|
113
116
|
default=False,
|
|
114
117
|
help="Waiting for deployments to be ready",
|
|
115
118
|
)
|
|
119
|
+
@click.option(
|
|
120
|
+
"--local",
|
|
121
|
+
is_flag=True,
|
|
122
|
+
default=False,
|
|
123
|
+
help="Deploy the model container locally, for development purposes only",
|
|
124
|
+
)
|
|
116
125
|
@click.option(
|
|
117
126
|
"-v",
|
|
118
127
|
"--verbose",
|
|
@@ -170,13 +179,20 @@ logger = get_qwak_logger()
|
|
|
170
179
|
help="Whether the deployment variation is protected. Default is false",
|
|
171
180
|
)
|
|
172
181
|
def realtime(
|
|
173
|
-
verbose: bool,
|
|
182
|
+
verbose: bool,
|
|
183
|
+
from_file: Optional[str],
|
|
184
|
+
out_conf: bool,
|
|
185
|
+
sync: bool,
|
|
186
|
+
local: bool,
|
|
187
|
+
**kwargs,
|
|
174
188
|
):
|
|
175
189
|
set_qwak_logger_stdout_verbosity_level(verbose + 1)
|
|
176
|
-
deploy_realtime(from_file, out_conf, sync, **kwargs)
|
|
190
|
+
deploy_realtime(from_file, out_conf, sync, local, **kwargs)
|
|
177
191
|
|
|
178
192
|
|
|
179
|
-
def deploy_realtime(
|
|
193
|
+
def deploy_realtime(
|
|
194
|
+
from_file: Optional[str], out_conf: bool, sync: bool, local: bool, **kwargs
|
|
195
|
+
):
|
|
180
196
|
config: DeployConfig = config_handler(
|
|
181
197
|
config=DeployConfig,
|
|
182
198
|
from_file=from_file,
|
|
@@ -184,6 +200,10 @@ def deploy_realtime(from_file: Optional[str], out_conf: bool, sync: bool, **kwar
|
|
|
184
200
|
sections=("realtime", "autoscaling"),
|
|
185
201
|
**kwargs,
|
|
186
202
|
)
|
|
187
|
-
|
|
203
|
+
|
|
204
|
+
if local:
|
|
205
|
+
local_deploy(config)
|
|
206
|
+
|
|
207
|
+
elif not out_conf:
|
|
188
208
|
deploy_executor = RealtimeDeployExecutor(config)
|
|
189
209
|
client_deployment(deploy=deploy_executor, sync=sync)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qwak-sdk
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.63
|
|
4
4
|
Summary: Qwak SDK and CLI for qwak models
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: mlops,ml,deployment,serving,model
|
|
@@ -19,7 +19,8 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
|
19
19
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
20
20
|
Provides-Extra: batch
|
|
21
21
|
Provides-Extra: feedback
|
|
22
|
-
|
|
22
|
+
Provides-Extra: local-deployment
|
|
23
|
+
Requires-Dist: boto3 (>=1.24.116,<2.0.0) ; extra == "batch" or extra == "feedback" or extra == "local-deployment"
|
|
23
24
|
Requires-Dist: cookiecutter
|
|
24
25
|
Requires-Dist: croniter (==1.4.1)
|
|
25
26
|
Requires-Dist: gitpython (>=2.1.0)
|
|
@@ -28,8 +29,9 @@ Requires-Dist: pandas (<1.4) ; (python_full_version >= "3.7.1" and python_versio
|
|
|
28
29
|
Requires-Dist: pandas (>=1.4.3,<2.0.0) ; (python_version >= "3.8" and python_version < "3.10") and (extra == "batch" or extra == "feedback")
|
|
29
30
|
Requires-Dist: pyarrow (>=6.0.0,<11.0.0) ; extra == "batch"
|
|
30
31
|
Requires-Dist: python-json-logger (>=2.0.2)
|
|
31
|
-
Requires-Dist: qwak-core (==0.3.
|
|
32
|
+
Requires-Dist: qwak-core (==0.3.143)
|
|
32
33
|
Requires-Dist: qwak-inference (>=0.1,<0.2)
|
|
34
|
+
Requires-Dist: rich (>=13.0.0)
|
|
33
35
|
Requires-Dist: tabulate (>=0.8.0)
|
|
34
36
|
Requires-Dist: yaspin (>=2.0.0)
|
|
35
37
|
Project-URL: Home page, https://www.qwak.com/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
qwak_sdk/__init__.py,sha256=
|
|
1
|
+
qwak_sdk/__init__.py,sha256=DvLhnDek6NhPz-utUF7CqWYXDSHVe5YadFGNLVr3Soc,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
|
|
@@ -123,7 +123,7 @@ qwak_sdk/commands/models/build/_logic/util/__init__.py,sha256=47DEQpj8HBSa-_TImW
|
|
|
123
123
|
qwak_sdk/commands/models/build/_logic/util/protobuf_factory.py,sha256=ar_oY38w_x0sxgVF7EBs5h7gchNsDntvtKK5sSYxb24,1686
|
|
124
124
|
qwak_sdk/commands/models/build/_logic/util/step_decorator.py,sha256=HLZyCGdqe3Ir7SaPWp1YNRHJpjXG-e-bbAvnOFysAVM,1913
|
|
125
125
|
qwak_sdk/commands/models/build/_logic/util/text.py,sha256=tH-v19Mt8l90sMVxku5XRtrderT0qdRqJ-jLijqannA,188
|
|
126
|
-
qwak_sdk/commands/models/build/ui.py,sha256=
|
|
126
|
+
qwak_sdk/commands/models/build/ui.py,sha256=MX4OpBHh3X83JXc0FFsx4PP_4IZVVGe2bBS1Z5VK36o,8967
|
|
127
127
|
qwak_sdk/commands/models/builds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
128
128
|
qwak_sdk/commands/models/builds/builds_commands_group.py,sha256=0nSfTY8TracXG61rFboQWUTXJisHO6dgtJKeijy6ru8,491
|
|
129
129
|
qwak_sdk/commands/models/builds/cancel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -147,23 +147,24 @@ qwak_sdk/commands/models/deployments/deploy/_logic/advance_deployment_options_ha
|
|
|
147
147
|
qwak_sdk/commands/models/deployments/deploy/_logic/base_deploy_executor.py,sha256=HYKUG5s4ZrpFwoxJYn3EuTYU71lmM0cFOOjbHqd9ajY,2706
|
|
148
148
|
qwak_sdk/commands/models/deployments/deploy/_logic/deploy_config.py,sha256=n7jSImcKw28xvXHoSRrtxKiGbxpqhovKv6sa7_-LYoQ,8979
|
|
149
149
|
qwak_sdk/commands/models/deployments/deploy/_logic/deployment.py,sha256=zBTjeeEVtTnTwUMwUfGTI3Ip9AgqKDvHAZ6_Wi22XVo,13221
|
|
150
|
-
qwak_sdk/commands/models/deployments/deploy/_logic/deployment_message_helpers.py,sha256=
|
|
150
|
+
qwak_sdk/commands/models/deployments/deploy/_logic/deployment_message_helpers.py,sha256=QJSoyqeHPB9pydBNDsNpicOhKFIlKT_AZn78FGiM6ZU,4870
|
|
151
151
|
qwak_sdk/commands/models/deployments/deploy/_logic/deployment_response_handler.py,sha256=cHa2iF_2A8e1wx2a4UZuTjQ5IHgPvua1xziFJwzP_6s,5837
|
|
152
|
-
qwak_sdk/commands/models/deployments/deploy/_logic/deployment_size_mapper.py,sha256=
|
|
152
|
+
qwak_sdk/commands/models/deployments/deploy/_logic/deployment_size_mapper.py,sha256=sfECrq-6Emt-qY6K3J-hf8-PYw8TP4EgpjynTPstDUE,3655
|
|
153
153
|
qwak_sdk/commands/models/deployments/deploy/_logic/get_latest_successful_build.py,sha256=fsahuSvgGzVjkZGaTH9YyNSOtRWBHYlyAU3wTriyCgI,978
|
|
154
|
+
qwak_sdk/commands/models/deployments/deploy/_logic/local_deployment.py,sha256=n42Hc-FnA3ODKok-_Nmnbjj1aPGW2P-DJ2dGDSZpSrE,6270
|
|
154
155
|
qwak_sdk/commands/models/deployments/deploy/_logic/variations.py,sha256=n3OGHTYgjnmLYbafZbAOaudaGbeKjw8jbX4MhZX47fE,3256
|
|
155
156
|
qwak_sdk/commands/models/deployments/deploy/batch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
156
157
|
qwak_sdk/commands/models/deployments/deploy/batch/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
157
158
|
qwak_sdk/commands/models/deployments/deploy/batch/_logic/advanced_deployment_mapper.py,sha256=bwvPIoKCNaJmaNsPYL_dhK04FCRZvlj_jkwhCZM-eks,599
|
|
158
159
|
qwak_sdk/commands/models/deployments/deploy/batch/_logic/deploy_executor.py,sha256=oOKPotp37qdLupYau5Fv2voki4SAIFitHMn_U4ZaJP8,946
|
|
159
|
-
qwak_sdk/commands/models/deployments/deploy/batch/ui.py,sha256=
|
|
160
|
+
qwak_sdk/commands/models/deployments/deploy/batch/ui.py,sha256=Sek4sZ-XiFAJ7-bCakMX1BlOB7zrOLYHF1QyRo6LETw,3542
|
|
160
161
|
qwak_sdk/commands/models/deployments/deploy/deploy_commands_group.py,sha256=LnfdnfeSTCO90SrJfgXf21xiVRry6Y2sfj_JfdBQu_U,500
|
|
161
162
|
qwak_sdk/commands/models/deployments/deploy/realtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
162
163
|
qwak_sdk/commands/models/deployments/deploy/realtime/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
163
164
|
qwak_sdk/commands/models/deployments/deploy/realtime/_logic/advanced_deployment_mapper.py,sha256=LDJR2XzSG3QkHaAY4cSeDOb6e1-Aw-p5ZbRiLy2BXsU,1006
|
|
164
165
|
qwak_sdk/commands/models/deployments/deploy/realtime/_logic/deploy_executor.py,sha256=KClooUmWbt4Iym7_PC8jg8oHCFRWNvno-16-aFWwutA,950
|
|
165
166
|
qwak_sdk/commands/models/deployments/deploy/realtime/_logic/serving_strategy_mapper.py,sha256=4UWpT6RMHvYCxnAxOcaSrvkEIz7v4oGCA-3Iz2KGNxs,3943
|
|
166
|
-
qwak_sdk/commands/models/deployments/deploy/realtime/ui.py,sha256=
|
|
167
|
+
qwak_sdk/commands/models/deployments/deploy/realtime/ui.py,sha256=hiVte3GkLZp3Iio6TsOs6B1RmkGmsslCXyABGZPiT5A,5509
|
|
167
168
|
qwak_sdk/commands/models/deployments/deploy/streaming/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
168
169
|
qwak_sdk/commands/models/deployments/deploy/streaming/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
169
170
|
qwak_sdk/commands/models/deployments/deploy/streaming/_logic/deploy_executor.py,sha256=RRkNzFcPhfj70pjFJE5DQDMxDi-gJOiaH5C9ofHEQUA,948
|
|
@@ -326,7 +327,7 @@ qwak_sdk/tools/colors.py,sha256=7pui_GGjC4uZKYFsIyXaJjYsjLxJVHb4OrfTgr93hqo,287
|
|
|
326
327
|
qwak_sdk/tools/files.py,sha256=AyKJTOy7NhvP3SrqwIw_lxYNCOy1CvLgMmSJpWZ0OKM,2257
|
|
327
328
|
qwak_sdk/tools/log_handling.py,sha256=Aa1EmxUPCX8YWiZRutUvnqPv6K_z1zoGMwIWsEv24mM,6327
|
|
328
329
|
qwak_sdk/tools/utils.py,sha256=SHmU4r_m2ABZyFYMC03P17GvltPbYbmB39hvalIZEtI,1168
|
|
329
|
-
qwak_sdk-0.5.
|
|
330
|
-
qwak_sdk-0.5.
|
|
331
|
-
qwak_sdk-0.5.
|
|
332
|
-
qwak_sdk-0.5.
|
|
330
|
+
qwak_sdk-0.5.63.dist-info/entry_points.txt,sha256=vSl0ELYDyj640oMM57u0AjBP87wtLYxCcGOendhEx80,47
|
|
331
|
+
qwak_sdk-0.5.63.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
|
|
332
|
+
qwak_sdk-0.5.63.dist-info/METADATA,sha256=cqytmWDDFp8xVxa-VJfzngK2NN6Wyhud0yW6-BzJAmM,1984
|
|
333
|
+
qwak_sdk-0.5.63.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|